From 7b99aec79b7e209922efcd564207fd1027b76afe Mon Sep 17 00:00:00 2001 From: wang1163 <1163568462@qq.com> Date: Wed, 9 Sep 2026 21:59:53 +0800 Subject: [PATCH] 1 --- BJDCache.cs | 9476 +++++++++ BJDEntity.cs | 3581 ++++ Help/image002.jpg | Bin 0 -> 86288 bytes MAC8.cs | 62 + N_XLXSBJ8.suo | Bin 0 -> 8192 bytes U20261363_N_XLXSBJ8.csproj | 141 + U20261363_N_XLXSBJ8.csproj.user | 30 + XLBJD.cs | 255 + XLBJDCalcUtils.cs | 5050 +++++ XLBJDInfo.aspx | 1931 ++ XLBJDInfo.aspx.cs | 30647 ++++++++++++++++++++++++++++++ XLBJDInfo.aspx.designer.cs | 2446 +++ XLBJDList.aspx | 372 + XLBJDList.aspx.cs | 1065 ++ XLBJDList.aspx.designer.cs | 43 + XLBJDQuery.aspx | 690 + XLBJDQuery.aspx.cs | 587 + XLBJDQuery.aspx.designer.cs | 2689 +++ XLBJDUtils.cs | 18648 ++++++++++++++++++ XLBJD_BDOBill.cs | 4529 +++++ XLBJD_M.cs | 95 + 21 files changed, 82337 insertions(+) create mode 100644 BJDCache.cs create mode 100644 BJDEntity.cs create mode 100644 Help/image002.jpg create mode 100644 MAC8.cs create mode 100644 N_XLXSBJ8.suo create mode 100644 U20261363_N_XLXSBJ8.csproj create mode 100644 U20261363_N_XLXSBJ8.csproj.user create mode 100644 XLBJD.cs create mode 100644 XLBJDCalcUtils.cs create mode 100644 XLBJDInfo.aspx create mode 100644 XLBJDInfo.aspx.cs create mode 100644 XLBJDInfo.aspx.designer.cs create mode 100644 XLBJDList.aspx create mode 100644 XLBJDList.aspx.cs create mode 100644 XLBJDList.aspx.designer.cs create mode 100644 XLBJDQuery.aspx create mode 100644 XLBJDQuery.aspx.cs create mode 100644 XLBJDQuery.aspx.designer.cs create mode 100644 XLBJDUtils.cs create mode 100644 XLBJD_BDOBill.cs create mode 100644 XLBJD_M.cs diff --git a/BJDCache.cs b/BJDCache.cs new file mode 100644 index 0000000..653cc2e --- /dev/null +++ b/BJDCache.cs @@ -0,0 +1,9476 @@ +using GThinking.N_COMPRESS; +using GThinking.N_CONTROL; +using GThinking.N_MISPRO; +using GThinking.N_MISPRO.Caching; +using GThinking.N_MISPRO.Data; +using GThinking.N_MISPRO.MISPROAS; +using GThinking.N_MISPRO.TableCache; +using GThinking.N_MISPRO.Utility; +using GThinking.N_MISPROAS; +using GThinking.N_MISPROAS.Caching; +using GThinking.N_MISPROAS.Services; +using GThinking.N_MISPROAS.SysData; +using GThinking.N_MODEL.Dialog; +using GThinking.N_MODEL.Page; +using GThinking.N_PUBLIC; +using GThinking.N_PUBLIC2; +using GThinking.N_WORKFLOW; +using PdfSharp; +using PdfSharp.Drawing; +using PdfSharp.Drawing.Layout; +using PdfSharp.Pdf; +using System; +using System.Collections; +using System.Collections.Generic; +using System.Configuration; +using System.Data; +using System.Data.Common; +using System.Data.OleDb; +using System.Drawing; +using System.Drawing.Text; +using System.IO; +using System.Net; +using System.Net.Security; +using System.Security.Cryptography.X509Certificates; +using System.Text; +using System.Web; +using System.Web.Script.Serialization; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.HtmlControls; +using System.Web.UI.MobileControls; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Xml; + +namespace GThinking.U20261363_N_XLXSBJ +{ + internal class BJFLCache : DbDataCacheBase + { + public DataTable dtXLXSBJFL; + public DataView dvXLXSBJFLBy_BJFLID; + + public BJFLCache() + : base("DBERP", "U20261363_N_XLXSBJ_XLXSBJFL", "XLXSBJFL") + { + } + + protected override void FillData(string subKey) + { + TDatabase db = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(db); + SQL.Clear(); + SQL.Add(@"select XLXSBJFL_BJFLID,XLXSBJFL_BJFLMC,XLXSBJFL_QYRQ,XLXSBJFL_TYBZ,XLXSBJFL_TYRQ,XLXSBJFL_BZ, + XLXSBJFL_WHR,XLXSBJFL_WHRID,XLXSBJFL_WHSJ,XLXSBJFL_XSQYIDS,XLXSBJFL_JGBTJYSS,XLXSBJFL_MRCKC, + XLXSBJFL_JGBIDS,XLXSBJFL_CPMLID,XLXSBJFL_XSJGBJJ,XLXSBJFL_XSJGBBJJCE,XLXSBJFL_BJJCLLX,XLXSBJFL_JSJJCLLX, + XLXSBJFL_LJJCLLX,XLXSBJFL_TZCLHQ,XLXSBJFL_TZWLHQ,XLXSBJFL_TZJGBBJ,XLXSBJFL_TZBJBJBB,XLXSBJFL_XSTZCPBJ, + XLXSBJFL_XSTZBJJE,XLXSBJFL_SDJGBCLHQFW,XLXSBJFL_BJDHQLY,XLXSBJFL_BJCPFZJS,XLXSBJFL_XHABJCSDP, + XLXSBJFL_JYF,XLXSBJFL_YFWLID,XLXSBJFL_BJHYF,XLXSBJFL_MXBH,XLXSBJFL_TBJCLID,XLXSBJFL_LBJCLID, + XLXSBJFL_ZLGZCLS,XLXSBJFL_BJDYBJTXS,XLXSBJFL_XJDYBJTXS,XLXSBJFL_BJQSTXS,XLXSBJFL_CPBJMRXSWS,XLXSBJFL_XTCPBJYZ, + XLXSBJFL_ZDXJGS,XLXSBJFL_XSZDXJ,XLXSBJFL_ZDXJJCLLX,XLXSBJFL_JLRBJCP,XLXSBJFL_JGBBJBM,XLXSBJFL_XSCPBJXJ, + XLXSBJFL_JLBJDHQ,XLXSBJFL_XHGGYMHJS,XLXSBJFL_XSXH,XLXSBJFL_BJFLTZM,XLXSBJFL_LJJCLPLTJFW,XLXSBJFL_ST, + XLXSBJFL_BABZFGDY,XLXSBJFL_JMBGSYZID,XLXSBJFL_TZQCPBJGS,XLXSBJFL_XSYXJ,XLXSBJFL_XSXLBZMS,XLXSBJFL_TZBJDHQLJ, + XLXSBJFL_TZBJ,XLXSBJFL_JGMBGRPID,XLXSBJFL_ZDXJJCLXX,XLXSBJFL_ZDXJJCLTXS,XLXSBJFL_BJLJJCLLX,XLXSBJFL_JSJBM,XLXSBJFL_JSJXSWS, + XLXSBJFL_XSYZ,XLXSBJFL_XSYSCP,XLXSBJFL_ZDXJQZBJDFL,XLXSBJFL_TLJTZGXQTCL,XLXSBJFL_BJDHQLJBM,XLXSBJFL_ABJDHQJSBJ,XLXSBJFL_FJGBCPBJSBJ,XLXSBJFL_JMBGSBM, + XLXSBJFL_BJBM,XLXSBJFL_XSTZZDXJ,XLXSBJFL_JSJGS,XLXSBJFL_JJZJGBXH,XLXSBJFL_YXJJCLLX,XLXSBJFL_XSFBH,XLXSBJFL_XSYLRYZID,XLXSBJFL_XSYKJJGHJ,XLXSBJFL_XSYKJJGLM,XLXSBJFL_XSLSBJ, + XLXSBJFL_JGBBJZDWPID,XLXSBJFL_CPBJZDWPID,XLXSBJFL_LRBJCPWPID,XLXSBJFL_TZYLBL,XLXSBJFL_MYHSSX,XLXSBJFL_BJJCLBJRQDWCP,XLXSBJFL_LJJCLBJRQDWCP,XLXSBJFL_ZDXJJCLBJRQDWCP "); + SQL.Add(" from XLXSBJFL "); + SQL.Add(" where 1=1 "); + SQL.ClassId = "U20261363_N_XLXSBJ.BJFLCache"; + SQL.SqlId = "FillData_1"; + DataSet ds = db.OpenDataSet(SQL); + if (ds.Tables.Count > 0) + { + dtXLXSBJFL = ds.Tables[0]; + dvXLXSBJFLBy_BJFLID = new DataView(dtXLXSBJFL, "", "XLXSBJFL_BJFLID", DataViewRowState.CurrentRows); + } + } + } + + internal class BJFLJSLMCache : DbDataCacheBase + { + public DataTable dtXLXSBJFLJSLM; + public DataView dvXLXSBJFLJSLMLBy_BJFLID; + + public BJFLJSLMCache() + : base("DBERP", "U20261363_N_XLXSBJ_XLXSBJFLJSLM", "XLXSBJFLJSLM") + { + } + + protected override void FillData(string subKey) + { + TDatabase db = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(db); + SQL.Clear(); + SQL.Add(@"select XLXSBJFLJSLM_BJFLID,XLXSBJFLJSLM_JSLX,XLXSBJFLJSLM_LMLX,XLXSBJFLJSLM_LMID,XLXSBJFLJSLM_YCBZ"); + SQL.Add(" from XLXSBJFLJSLM "); + SQL.Add(" where 1=1 "); + SQL.ClassId = "U20261363_N_XLXSBJ.BJFLJSLMCache"; + SQL.SqlId = "FillData_1"; + DataSet ds = db.OpenDataSet(SQL); + if (ds.Tables.Count > 0) + { + dtXLXSBJFLJSLM = ds.Tables[0]; + dvXLXSBJFLJSLMLBy_BJFLID = new DataView(dtXLXSBJFLJSLM, "", "XLXSBJFLJSLM_BJFLID", DataViewRowState.CurrentRows); + } + } + } + + internal class BJFLYZCache : DbDataCacheBase + { + public DataTable dtXLXSBJFLYZ; + public DataView dvXLXSBJFLYZBy_BJFLID; + + public BJFLYZCache() + : base("DBERP", "U20261363_N_XLXSBJ_XLXSBJFLYZ", "XLXSBJFLYZ") + { + } + + protected override void FillData(string subKey) + { + TDatabase db = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(db); + SQL.Clear(); + SQL.Add(@"select XLXSBJFLYZ_BJFLID,XLXSBJFLYZ_YZID "); + SQL.Add(" from XLXSBJFLYZ "); + SQL.Add(" where 1=1 "); + SQL.ClassId = "U20261363_N_XLXSBJ.BJFLYZCache"; + SQL.SqlId = "FillData_1"; + DataSet ds = db.OpenDataSet(SQL); + if (ds.Tables.Count > 0) + { + dtXLXSBJFLYZ = ds.Tables[0]; + dvXLXSBJFLYZBy_BJFLID = new DataView(dtXLXSBJFLYZ, "", "XLXSBJFLYZ_BJFLID", DataViewRowState.CurrentRows); + } + } + } + + internal class JGBMLCache : DbDataCacheBase + { + public DataTable dtJGBML; + public DataView dvJGBMLBy_MXBH; + public DataView dvJGBMLBy_IDMX; + public DataView dvJGBMLBy_JGBID; + + public JGBMLCache() + : base("DBERP", "U20261363_N_XLXSBJ_XLXSJGB", "XLXSJGB") + { + } + + protected override void FillData(string subKey) + { + TDatabase db = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(db); + SQL.Clear(); + SQL.Add(@"select XLXSJGB_JGBID,XLXSJGB_YXQS,XLXSJGB_YXQZ,XLXSJGB_BZ,XLXSJGB_WHRID,XLXSJGB_WHR,XLXSJGB_WHSJ,XLXSJGB_MXBH, + XLXSJGB_TJYS,XLXSJGB_JGBIDS,XLXSJGB_XSQYIDS,XLXSJGB_JGBMC,XLXSJGB_JGCIDS,XLXSJGB_CPMLID,XLXSJGB_BJLY,XLXSJGB_JSBLFS, + XLXSJGB_JJLY,XLXSJGB_TJRGH,XLXSJGB_TJZT,XLXSJGB_TJKSSJ,XLXSJGB_TJWCSJ,XLXSJGB_JSGS,XLXSJGB_WSJGJSLY,XLXSJGB_ZZSL,XLXSJGB_MXPXFS "); + SQL.Add(" from XLXSJGB "); + SQL.Add(" where 1=1 "); + SQL.ClassId = "U20261363_N_XLXSBJ.JGBMLCache"; + SQL.SqlId = "FillData_1"; + DataSet ds = db.OpenDataSet(SQL); + if (ds.Tables.Count > 0) + { + dtJGBML = ds.Tables[0]; + dvJGBMLBy_MXBH = new DataView(dtJGBML, "", "XLXSJGB_MXBH", DataViewRowState.CurrentRows); + dvJGBMLBy_IDMX = new DataView(dtJGBML, "", "XLXSJGB_JGBID,XLXSJGB_MXBH", DataViewRowState.CurrentRows); + dvJGBMLBy_JGBID = new DataView(dtJGBML, "", "XLXSJGB_JGBID", DataViewRowState.CurrentRows); + } + } + } + + internal class JGBYZCache : DbDataCacheBase + { + public DataTable dtXLXSJGBYZ; + public DataView dvXLXSJGBYZBy_JGBID; + + public JGBYZCache() + : base("DBERP", "U20261363_N_XLXSBJ_XLXSJGBYZ", "XLXSJGBYZ") + { + } + + protected override void FillData(string subKey) + { + TDatabase db = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(db); + SQL.Clear(); + SQL.Add(@"select XLXSJGBYZ_JGBID,XLXSJGBYZ_YZID "); + SQL.Add(" from XLXSJGBYZ "); + SQL.Add(" where 1=1 "); + SQL.ClassId = "U20261363_N_XLXSBJ.JGBYZCache"; + SQL.SqlId = "FillData_1"; + DataSet ds = db.OpenDataSet(SQL); + if (ds.Tables.Count > 0) + { + dtXLXSJGBYZ = ds.Tables[0]; + dvXLXSJGBYZBy_JGBID = new DataView(dtXLXSJGBYZ, "", "XLXSJGBYZ_JGBID", DataViewRowState.CurrentRows); + } + } + } + + internal class KZXXCache : DbDataCacheBase + { + public DataSet dsXLXSBJKZXXSZ; + + public KZXXCache() + : base("DBERP", "U20261363_N_XLXSBJ_XLXSBJKZXXSZ", "XLXSBJKZXXSZ") + { + } + + protected override void FillData(string subKey) + { + + TDatabase db = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(db); + SQL.Clear(); + SQL.Add("select XLXSBJKZXXSZ_MC, XLXSBJKZXXSZ_SJLX, XLXSBJKZXXSZ_DYZD, isnull(XLXSBJKZXXSZ_BT,'N') as BT, XLXSBJKZXXSZ_SRFS, "); + SQL.Add("XLXSBJKZXXSZ_MJLB,XLXSBJKZXXSZ_MJSQL,XLXSBJKZXXSZ_WIDTH, XLXSBJKZXXSZ_ROWS, XLXSBJKZXXSZ_JLDW,XLXSBJKZXXSZ_QSZ, "); + SQL.Add("XLXSBJKZXXSZ_WHBZ,XLXSBJKZXXSZ_XSBZ,XLXSBJKZXXSZ_SYBJFLID,XLXSBJKZXXSZ_ZWCXTJ "); + SQL.Add("from XLXSBJKZXXSZ "); + SQL.Add("where 1=1 "); + SQL.Add("order by XLXSBJKZXXSZ_BJSX, XLXSBJKZXXSZ_BH "); + SQL.ClassId = "U20261363_N_XLXSBJ.KZXXCache"; + SQL.SqlId = "FillData_1"; + DataSet ds = db.OpenDataSet(SQL); + if (ds.Tables.Count > 0) + { + dsXLXSBJKZXXSZ = ds; + } + } + } + + internal class TZYZCache : DbDataCacheBase + { + public DataTable dtXLXSTZYZ; + public DataView dvXLXSTZYZBy_YZID; + public DataView dvYZBy_MXBHAndTJYS; + + public TZYZCache() + : base("DBERP", "U20261363_N_XLXSBJ_XLXSTZYZ", "XLXSTZYZ") + { + } + + protected override void FillData(string subKey) + { + TDatabase db = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(db); + SQL.Clear(); + SQL.Add(@"select XLXSTZYZ_MXBH,XLXSTZYZ_YZID,XLXSTZYZ_YZMC,XLXSTZYZ_MRZ,XLXSTZYZ_XSXH,XLXSTZYZ_JJFS, + XLXSTZYZ_MINC,XLXSTZYZ_TJYS,XLXSTZYZ_JGBID,XLXSTZYZ_TJYZID,XLXSTZYZ_BCYTJ,XLXSTZYZ_WPIDLIST,XLXSTZYZ_HCBZ , + XLXSTZYZ_TJLX,XLXSTZYZ_TYZZYZID,XLXSTZYZ_YZZZD,XLXSTZYZ_ABJCPJYYZZ,XLXSTZYZ_ZDWPIDLIST,XLXSTZYZ_MRTJFW,XLXSTZYZ_YZZBT,XLXSTZYZ_TJMDID, + XLXSTZYZ_FGQCP,XLXSTZYZ_BJCLID"); + SQL.Add(" from XLXSTZYZ "); + SQL.Add(" where 1=1 "); + SQL.ClassId = "U20261363_N_XLXSBJ.TZYZCache"; + SQL.SqlId = "FillData_1"; + DataSet ds = db.OpenDataSet(SQL); + if (ds.Tables.Count > 0) + { + dtXLXSTZYZ = ds.Tables[0]; + dvXLXSTZYZBy_YZID = new DataView(dtXLXSTZYZ, "", "XLXSTZYZ_YZID", DataViewRowState.CurrentRows); + dvYZBy_MXBHAndTJYS = new DataView(dtXLXSTZYZ, "", "XLXSTZYZ_MXBH,XLXSTZYZ_TJYS", DataViewRowState.CurrentRows); + } + } + } + + internal class XLXSBJPZCache : DbDataCacheBase + { + public DataTable dtXLXSBJPZ; + public DataView dvXLXSBJPZBy_MDID; + + public XLXSBJPZCache() + : base("DBERP", "U20261363_N_XLXSBJ_XLXSBJPZ", "XLXSBJPZ") + { + } + + protected override void FillData(string subKey) + { + TDatabase db = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(db); + SQL.Clear(); + SQL.Add(@"select XLXSBJPZ_MDID,XLXSBJPZ_BJFLIDS,XLXSBJPZ_KHJSLY,XLXSBJPZ_WHR,XLXSBJPZ_WHRID,XLXSBJPZ_WHSJ,XLXSBJPZ_PFBJRBJ,XLXSBJPZ_MRCPYT,XLXSBJPZ_XSPWQD, + XLXSBJPZ_XMJSLY,XLXSBJPZ_KHBT,XLXSBJPZ_XMBT,XLXSBJPZ_CLYLZJFS,XLXSBJPZ_ALMXZBJCL,XLXSBJPZ_ZDBMIDS,XLXSBJPZ_BJSLMRYZ,XLXSBJPZ_TCPBSYS,XLXSBJPZ_LCPBSYS, + XLXSBJPZ_XZKHYQ,XLXSBJPZ_XZXMYQ,XLXSBJPZ_BMYSLIST,XLXSBJPZ_SQXMBAGL,XLXSBJPZ_KHTXYXZ,XLXSBJPZ_KHMCCF,XLXSBJPZ_BJY,XLXSBJPZ_KHMCXMMCCF,XLXSBJPZ_CPSLCFBL, + XLXSBJPZ_XMMCCF,XLXSBJPZ_XMMCCZCF,XLXSBJPZ_XMMCCZCFGS,XLXSBJPZ_XMMCTSCZ,XLXSBJPZ_CPCF,XLXSBJPZ_CPCFBL,XLXSBJPZ_ZDZDLX,XLXSBJPZ_ZDZDYF,XLXSBJPZ_ZDQRWPID, + XLXSBJPZ_CPCFGS,XLXSBJPZ_CPSLCF,XLXSBJPZ_CPSLCFGS,XLXSBJPZ_XHGGCF,XLXSBJPZ_XHGGCFBL,XLXSBJPZ_BAXMKHMCCF,XLXSBJPZ_MRZDR,XLXSBJPZ_YLZDMXTZ,XLXSBJPZ_BCYZDKH,XLXSBJPZ_BCYZDXM, + XLXSBJPZ_BAXMMCCF,XLXSBJPZ_BAXMMCTXYCF,XLXSBJPZ_WBPPZXSX,XLXSBJPZ_TBJCLID,XLXSBJPZ_LBJCLID,XLXSBJPZ_LHJBJCLID,XLXSBJPZ_SJJLYBJCP,XLXSBJPZ_XSGYKH, + XLXSBJPZ_MRGXLR,XLXSBJPZ_XHJQSX,XLXSBJPZ_GGJQSX,XLXSBJPZ_YXFCDJLDW,XLXSBJPZ_JLDWS,XLXSBJPZ_ZDYJLDWS,XLXSBJPZ_XSCPML,XLXSBJPZ_YXQCPWL,XLXSBJPZ_PJZLSFJRYZ, + XLXSBJPZ_CPMLIDS,XLXSBJPZ_TDTGSCLID,XLXSBJPZ_LDTGSCLID,XLXSBJPZ_FJSCGS,XLXSBJPZ_APPCJSXFS,XLXSBJPZ_BJSFTJFS,XLXSBJPZ_BJXFTJFS,XLXSBJPZ_JLXJXXHZFS, + XLXSBJPZ_ZDRGHS,XLXSBJPZ_MRXLBZID,XLXSBJPZ_XZMXKXX,XLXSBJPZ_YJTZRYLIST,XLXSBJPZ_PLTJKXX,XLXSBJPZ_TJBXYGHJGML,XLXSBJPZ_ZDZD,XLXSBJPZ_XSZBXX,XLXSBJPZ_CFCPBQFBZ, + XLXSBJPZ_QYBJCPFZJS,XLXSBJPZ_XMKHMCXZ,XLXSBJPZ_JGBID,XLXSBJPZ_BBYSXH,XLXSBJPZ_MRJSFS,XLXSBJPZ_JGBJJFP,XLXSBJPZ_JLTZHCP,XLXSBJPZ_XJYROLEID,XLXSBJPZ_ZBLRGS, + XLXSBJPZ_SJYROLEID,XLXSBJPZ_HJYROLEID,XLXSBJPZ_WXHYJGBID,XLXSBJPZ_TZBLYZID,XLXSBJPZ_KSDYZID,XLXSBJPZ_TZBLYZZLX,XLXSBJPZ_KSDYZZLX,XLXSBJPZ_JLBJWCSJ, + XLXSBJPZ_TBFKZ3BB,XLXSBJPZ_FKSZDSCGCXM,XLXSBJPZ_MRDYDJ,XLXSBJPZ_JGBMRBSX,XLXSBJPZ_KSDREJCD,XLXSBJPZ_FZCHYZZ,XLXSBJPZ_THSFTGKBXH,XLXSBJPZ_BJDWQFZ,XLXSBJPZ_YFJSGS, + XLXSBJPZ_YSCPCLCBGS1,XLXSBJPZ_CPCFXLBZ,XLXSBJPZ_WLQSTZBMIDS,XLXSBJPZ_WLQSTZRGHS,XLXSBJPZ_JGPSTZBMIDS,XLXSBJPZ_JGPSTZRGHS,XLXSBJPZ_YXTZCZBFZR,XLXSBJPZ_BZDPPDY,XLXSBJPZ_FKWLPPTX, + XLXSBJPZ_BQKTZZDXJ,XLXSBJPZ_BQKTZBJ,XLXSBJPZ_KHLXRCF,XLXSBJPZ_LXDHCF,XLXSBJPZ_YCJGXGLM,XLXSBJPZ_CPFDCF,XLXSBJPZ_MXTMCBL,XLXSBJPZ_MXFDS,XLXSBJPZ_XYFDSCFBL,XLXSBJPZ_DYFDSCFBL, + XLXSBJPZ_JGFKZD,XLXSBJPZ_KHJFKZD,XLXSBJPZ_JGBJGFKZD,XLXSBJPZ_WBBJDJXYS,XLXSBJPZ_QYBJDXTH,XLXSBJPZ_WBBJDDRYZ,XLXSBJPZ_KHMCXSBL,XLXSBJPZ_GXXSBJXDWL,XLXSBJPZ_XHZJSR,XLXSBJPZ_FZNRDRLM,XLXSBJPZ_TJGBFZBLBJ,XLXSBJPZ_ZCCF,XLXSBJPZ_CLJGXSWS "); + SQL.Add(" from XLXSBJPZ "); + SQL.Add(" where 1=1 "); + SQL.ClassId = "U20261363_N_XLXSBJ.XLXSBJPZCache"; + SQL.SqlId = "FillData_1"; + DataSet ds = db.OpenDataSet(SQL); + if (ds.Tables.Count > 0) + { + dtXLXSBJPZ = ds.Tables[0]; + dvXLXSBJPZBy_MDID = new DataView(dtXLXSBJPZ, "", "XLXSBJPZ_MDID", DataViewRowState.CurrentRows); + } + } + } + + internal static class ZDFXPZHelper + { + public const int ZDFX_MDID = 100860068; + + public static string GetPZColumn(int iMDID, string sColumn) + { + if (string.IsNullOrEmpty(sColumn) || !sColumn.StartsWith("XLXSBJPZ_")) + return string.Empty; + try + { + XLXSBJPZCache pzxxCache = new XLXSBJPZCache(); + if (pzxxCache.CacheEnabled) + { + pzxxCache = (XLXSBJPZCache)pzxxCache.GetData(null); + if (pzxxCache.dvXLXSBJPZBy_MDID != null) + { + foreach (DataRowView row in pzxxCache.dvXLXSBJPZBy_MDID.FindRows(iMDID)) + { + if (row.Row.Table.Columns.Contains(sColumn)) + return row[sColumn].ToString().Trim(); + } + } + } + TDatabase db = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(db); + SQL.Add(string.Format("select isnull({0},'') as PZVAL from XLXSBJPZ where XLXSBJPZ_MDID=:pMDID", sColumn)); + SQL.ParamByName("pMDID").Value = iMDID; + DataSet ds = db.OpenDataSet(SQL); + if (ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) + return ds.Tables[0].Rows[0]["PZVAL"].ToString().Trim(); + } + catch + { + } + return string.Empty; + } + + public static bool IsGGSLCFEnabled() + { + return GetPZColumn(ZDFX_MDID, "XLXSBJPZ_GGSLCF") == "Y"; + } + + public static double GetGGSLCFGS() + { + return CMISproConvert.StrToFloat(GetPZColumn(ZDFX_MDID, "XLXSBJPZ_GGSLCFGS"), 0); + } + + public static double GetGGSLCFBL() + { + return CMISproConvert.StrToFloat(GetPZColumn(ZDFX_MDID, "XLXSBJPZ_GGSLCFBL"), 0); + } + } + + public class SendFJ + { + + public static void UploadFile(string sBJDID) + { + + WriteLog("报价单附件发送", "报价单号:" + sBJDID); + //BIP必须变量 + string accessToken = string.Empty; + string businessType = "yonbip-scm-scmmp%2BYonSuite"; + string businessId = string.Empty; + bool usePrivateBucket = false; + + string strPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "work\\temp\\BJDFJ");//金思维temp目录 + if (!Directory.Exists(strPath)) + Directory.CreateDirectory(strPath); + + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + + SQL.Clear(); + SQL.Add("select JKZHPZ_TOKEN from JKZHPZ WHERE JKZHPZ_RZZH='BIP' "); + DataSet dsBIP = dberp.OpenDataSet(SQL); + if (dsBIP.Tables[0].Rows.Count > 0) + { + accessToken = dsBIP.Tables[0].Rows[0]["JKZHPZ_TOKEN"].ToString().Trim(); + } + WriteLog("报价单附件发送", "accessToken:" + accessToken); + if (!String.IsNullOrEmpty(accessToken)) + { + SQL.Clear(); + SQL.Add("SELECT HLXTDZZ_DFDZZ from HLXTDZZ where HLXTDZZ_DZLXID='12' and HLXTDZZ_DZZ=:pBJDID "); + SQL.ParamByName("pBJDID").Value = sBJDID; + DataSet dsDZZ = dberp.OpenDataSet(SQL); + if (dsDZZ.Tables[0].Rows.Count > 0) + { + businessId = dsDZZ.Tables[0].Rows[0]["HLXTDZZ_DFDZZ"].ToString().Trim(); + } + WriteLog("报价单附件发送", "businessId:" + businessId); + double GRPID = 0; + string sWJMC = string.Empty; + SQL.Clear(); + SQL.Add("select distinct convert(char(10),XLXSBJD_DOCGRPID) as WJID, "); + SQL.Add(" rtrim(WDWJ_MC)||'.'||WDWJ_KZM as WJMC "); + SQL.Add("from WDSL,WDWJ,XLXSBJD "); + SQL.Add("where WDSL_WJID=WDWJ_WJID and XLXSBJD_DOCGRPID=WDSL_FZID "); + SQL.Add("AND XLXSBJD_BJDID=:pBJDID "); + SQL.ParamByName("pBJDID").Value = sBJDID; + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + GRPID = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["WJID"].ToString().Trim()); + sWJMC = ds.Tables[0].Rows[0]["WJMC"].ToString().Trim(); + } + if (GRPID > 0) + { + DocFileInfo[] arrayWDSX = FileService.GetFilesInfo(GRPID); + if (arrayWDSX.Length > 0) + { + for (int j = 0; j < arrayWDSX.Length; j++) + { + double WJID = arrayWDSX[j].FileId; + string fPath = strPath + "\\" + arrayWDSX[j].FileName; + FileService.GetFile(WJID, fPath); + } + } + } + + // 遍历下载目录,输出文件路径并删除文件 + if (Directory.Exists(strPath)) + { + WriteLog("报价单附件发送", "准备发送,文件目录:" + strPath); + string[] downloadedFiles = Directory.GetFiles(strPath); + foreach (string filePath in downloadedFiles) + { + WriteLog("报价单附件发送", "文件名及其位置:" + filePath); + + try + { + // 强制TLS 1.2(.NET 2.0兼容写法) + try + { + ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072; + } + catch + { + // 如果系统不支持TLS 1.2,直接抛出异常 + throw new Exception("当前系统不支持TLS 1.2协议,无法建立安全连接"); + } + // 跳过证书验证(测试环境使用) + ServicePointManager.ServerCertificateValidationCallback = delegate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) + { + return true; + }; + + // 1. 文件校验 + string fullRealPath = filePath; + if (!File.Exists(fullRealPath)) + { + WriteLog("报价单附件发送", "文件不存在:" + fullRealPath); + continue; + } + + string fileName = Path.GetFileName(fullRealPath); + byte[] fileBytes = File.ReadAllBytes(fullRealPath); + WriteLog("报价单附件发送", "文件大小:" + fileBytes.Length + " 字节"); + + // 2. 拼接Query参数 + StringBuilder querySb = new StringBuilder(); + querySb.Append("access_token="); + querySb.Append(HttpUtility.UrlEncode(accessToken)); + querySb.Append("&businessType="); + querySb.Append(HttpUtility.UrlEncode(businessType)); + querySb.Append("&businessId="); + querySb.Append(HttpUtility.UrlEncode(businessId)); + querySb.Append("&usePrivateBucket="); + querySb.Append(usePrivateBucket.ToString().ToLower()); + + string baseUrl = "https://bip-sit.hnhlxl.cn:9443/iuap-api-gateway/yonbip/uspace/iuap-apcom-file/rest/v1/file"; + string fullUrl = baseUrl + "?" + querySb.ToString(); + + // 3. 构建multipart/form-data请求体(.NET 2.0兼容写法) + string boundary = "----YonBipUploadBoundary" + DateTime.Now.Ticks.ToString(); + MemoryStream ms = new MemoryStream(); + + // 写入文件段头部 + string header = "--" + boundary + "\r\n"; + header += "Content-Disposition: form-data; name=\"files\"; filename=\"" + fileName + "\"\r\n"; + header += "Content-Type: application/octet-stream\r\n"; + header += "\r\n"; + byte[] headerBytes = Encoding.UTF8.GetBytes(header); + ms.Write(headerBytes, 0, headerBytes.Length); + + // 写入文件二进制 + ms.Write(fileBytes, 0, fileBytes.Length); + + // 写入结束分隔符 + string footer = "\r\n--" + boundary + "--\r\n"; + byte[] footerBytes = Encoding.UTF8.GetBytes(footer); + ms.Write(footerBytes, 0, footerBytes.Length); + + byte[] postData = ms.ToArray(); + ms.Close(); + + // 4. 发送请求 + HttpWebRequest request = (HttpWebRequest)WebRequest.Create(fullUrl); + request.Method = "POST"; + request.ContentType = "multipart/form-data; boundary=" + boundary; + request.ContentLength = postData.Length; + request.Timeout = 60000; // 60秒超时 + + // 写入请求体 + using (Stream requestStream = request.GetRequestStream()) + { + requestStream.Write(postData, 0, postData.Length); + } + + // 获取响应 + using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) + { + using (Stream responseStream = response.GetResponseStream()) + { + byte[] buffer = new byte[4096]; + StringBuilder resultBuilder = new StringBuilder(); + int bytesRead = 0; + do + { + bytesRead = responseStream.Read(buffer, 0, buffer.Length); + if (bytesRead > 0) + { + resultBuilder.Append(Encoding.UTF8.GetString(buffer, 0, bytesRead)); + } + } while (bytesRead > 0); + + string resultJson = resultBuilder.ToString(); + WriteLog("报价单附件发送", "上传成功,响应:" + resultJson); + } + } + + // 上传成功后删除文件 + File.Delete(filePath); + WriteLog("报价单附件发送", "文件已删除:" + filePath); + } + catch (Exception ex) + { + WriteLog("报价单附件发送", "发送失败,文件名:" + filePath + ",错误:" + ex.Message); + if (ex.InnerException != null) + { + WriteLog("报价单附件发送", "内部错误:" + ex.InnerException.Message); + } + } + } + } + } + + } + + /// + /// 测试环境忽略SSL证书校验,兼容.NET3.5/4.0 + /// + private static bool CheckServerCertificate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) + { + // SIT测试环境直接返回true跳过证书校验;生产删除此段,自行判断sslPolicyErrors + return true; + } + + + private static void WriteLog(string sYWName, string sLogText) + { + try + { + if (!Directory.Exists(AppConfig.WorkPath)) + { + DirectoryInfo dirInfo = Directory.CreateDirectory(AppConfig.WorkPath); + } + string filename = WorkDirectory.CombineLogPath(sYWName + "_" + DateTime.Now.ToString("yyyyMM") + ".log"); + if (!File.Exists(filename)) + { + using (File.Create(filename)) + { } + } + + File.AppendAllText(filename, DateTime.Now.ToString() + sLogText + "\r\n"); + + } + catch { }; + } + + } + + public class XLXSBJFJXX + { + //标签单元格 + public static void createLabel(TableRow parentControl, string sDYZD, string sMC, int iRow) + { + TableCell CellFJXX = new TableCell(); + CellFJXX.ColumnSpan = 1; + if (iRow > 1) + { + CellFJXX.Attributes.Add("align", "right"); + CellFJXX.Attributes.Add("valign", "top"); + } + else + CellFJXX.Attributes.Add("align", "right"); + //CellFJXX.Style.Add("width", "12%"); + gtLabel lblMC = new gtLabel(); + lblMC.ID = "lbl" + sDYZD; + lblMC.Text = sMC + ":"; + lblMC.Width = 100; + CellFJXX.Controls.Add(lblMC); + parentControl.Cells.Add(CellFJXX); + } + + //数值框控件 + public static void createNumTextBox(TableRow parentControl, string sDYZD, bool bBT, double fValue, string sJLDW) + { + TableCell CellFJXX = new TableCell(); + CellFJXX.ColumnSpan = 1; + CellFJXX.Attributes.Add("align", "left"); + gtNumTextBox txtKZSZ = new gtNumTextBox(); + txtKZSZ.ID = "txt" + sDYZD; + txtKZSZ.DecimalPlaces = 2; + txtKZSZ.Value = fValue; + txtKZSZ.Width = 100; + if (bBT) + txtKZSZ.Tag = gtNumTextBox.DTagStates.Star; + CellFJXX.Controls.Add(txtKZSZ); + if (!sJLDW.Trim().Equals("")) + { + gtLabel lblJLDW = new gtLabel(); + lblJLDW.ID = "txtJLDW" + sDYZD; + lblJLDW.Text = sJLDW; + CellFJXX.Controls.Add(lblJLDW); + } + parentControl.Cells.Add(CellFJXX); + } + + //编辑框控件 + public static void createTextBox(TableRow parentControl, string sDYZD, bool bBT, string sValue, int iRow, int iWidth, int iColumnSpan,int itotalWidth) + { + TableCell CellFJXX = new TableCell(); + CellFJXX.ColumnSpan = 1; + CellFJXX.Attributes.Add("align", "left"); + gtTextBox txtKZZF = new gtTextBox(); + txtKZZF.ID = "txt" + sDYZD; + txtKZZF.Text = sValue; + if(iRow>0) + txtKZZF.MaxLength = 4000; + else + txtKZZF.MaxLength = 250; + if (bBT) + txtKZZF.Tag = gtTextBox.DTagStates.Star; + if (iRow > 0) + { + txtKZZF.TextMode = TextBoxMode.MultiLine; + txtKZZF.Rows = iRow > 6 ? 6 : iRow; + if (itotalWidth > 0) + { + txtKZZF.Width = itotalWidth - 150; + } + else + { + txtKZZF.Style.Add("width", "90%"); + } + CellFJXX.ColumnSpan = iColumnSpan; + } + else + { + if (iWidth == 0) + txtKZZF.Width = 120; + else + txtKZZF.Width = iWidth; + } + CellFJXX.Controls.Add(txtKZZF); + parentControl.Cells.Add(CellFJXX); + } + + //下拉单选 + public static void createComboBox(TableRow parentControl, string sDYZD, bool bBT, string sValue, string sMJLB, string sMJSQL, int iWidth) + { + TableCell CellFJXX = new TableCell(); + CellFJXX.ColumnSpan = 1; + CellFJXX.Attributes.Add("align", "left"); + gtComboBox cbxKZZF = new gtComboBox(); + cbxKZZF.ID = "cbx" + sDYZD; + if (iWidth == 0) + cbxKZZF.Width = 120; + else + cbxKZZF.Width = iWidth; + if (bBT) + cbxKZZF.Tag = gtComboBox.DTagStates.Star; + if (!sMJLB.Trim().Equals("")) + { + string[] array = sMJLB.Trim().Replace("\r\n", ",").Split(','); + if (!bBT) + cbxKZZF.Items.Add(new ListItem("", "")); + foreach (string sItem in array) + { + cbxKZZF.Items.Add(new ListItem(sItem, sItem)); + } + cbxKZZF.ShowValue = false; + } + else if (!sMJSQL.Trim().Equals("")) + TComboBox.SetComboBox("DBERP", cbxKZZF, sMJSQL.Trim(), !bBT); + cbxKZZF.SelectedValue = sValue; + CellFJXX.Controls.Add(cbxKZZF); + parentControl.Cells.Add(CellFJXX); + } + + //下拉多选 + public static void createCheckedDropDownList(TableRow parentControl, string sDYZD, bool bBT, string sValue, string sMJLB, string sMJSQL, int iWidth) + { + TableCell CellFJXX = new TableCell(); + CellFJXX.ColumnSpan = 1; + CellFJXX.Attributes.Add("align", "left"); + gtCheckedDropDownList cbxKZZF = new gtCheckedDropDownList(); + cbxKZZF.ID = "cbx" + sDYZD; + if (iWidth == 0) + cbxKZZF.Width = 120; + else + cbxKZZF.Width = iWidth; + if (bBT) + cbxKZZF.Tag = gtCheckedDropDownList.DTagStates.Star; + if (!sMJLB.Trim().Equals("")) + { + string[] array = sMJLB.Trim().Replace("\r\n", ",").Split(','); + foreach (string sItem in array) + { + cbxKZZF.Items.Add(new ListItem(sItem, sItem)); + } + cbxKZZF.ShowValue = false; + } + else if (!sMJSQL.Trim().Equals("")) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sSQL = new TSQL(dberp); + sSQL.Clear(); + sSQL.Add(sMJSQL); + DataSet dsSQL = dberp.OpenDataSet(sSQL); + for (int j = 0; j < dsSQL.Tables[0].Rows.Count; j++) + { + cbxKZZF.Items.Add(new ListItem(dsSQL.Tables[0].Rows[j][1].ToString().Trim(), dsSQL.Tables[0].Rows[j][0].ToString().Trim())); + } + } + cbxKZZF.SelectedValue = sValue; + CellFJXX.Controls.Add(cbxKZZF); + parentControl.Cells.Add(CellFJXX); + } + + //日期控件 + public static void createDateTimeTextBox(TableRow parentControl, string sDYZD, bool bBT, string sValue) + { + TableCell CellFJXX = new TableCell(); + CellFJXX.ColumnSpan = 1; + CellFJXX.Attributes.Add("align", "left"); + gtDateTimeTextBox datKZRQ = new gtDateTimeTextBox(); + datKZRQ.ID = "dat" + sDYZD; + datKZRQ.Width = 72; + if (bBT) + datKZRQ.Tag = gtDateTimeTextBox.DTagStates.Star; + datKZRQ.Text = CMISproConvert.ConvertDate(sValue); + CellFJXX.Controls.Add(datKZRQ); + parentControl.Cells.Add(CellFJXX); + } + + //空白单元格 + public static void createTableCell(TableRow parentControl, int iColumnSpan, int irow) + { + TableCell CellFJXX = new TableCell(); + CellFJXX.ColumnSpan = iColumnSpan; + gtLabel lblMC = new gtLabel(); + lblMC.ID = "lblKZXXKBG" + irow.ToString().Trim(); + lblMC.Text = ""; + lblMC.Width = 100 * iColumnSpan; + CellFJXX.Controls.Add(lblMC); + parentControl.Cells.Add(CellFJXX); + } + + public static void UpdateLBXSFJXX(string sBJDID) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add(" select XLXSBJKZXXSZ_DYZD,XLXSBJKZXXSZ_MC,XLXSBJKZXXSZ_SJLX,XLXSBJKZXXSZ_SRFS,XLXSBJKZXXSZ_MJLB,XLXSBJKZXXSZ_MJSQL "); + SQL.Add(" from XLXSBJKZXXSZ where isnull(XLXSBJKZXXSZ_LBXS,'N') = 'Y' order by XLXSBJKZXXSZ_BJSX,XLXSBJKZXXSZ_BH "); + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + string sLBXSFJXX = ""; + SQL.Clear(); + SQL.Add(" select XLXSBJKZXX_BJDID "); + for (int i = 1; i <= 5; i++) + { + SQL.Add(" ,XLXSBJKZXX_KZSZ" + i.ToString().PadLeft(2, '0')); + } + for (int j = 1; j <= 10; j++) + { + SQL.Add(" ,XLXSBJKZXX_KZZF" + j.ToString().PadLeft(2, '0')); + } + for (int k = 1; k <= 5; k++) + { + SQL.Add(" ,XLXSBJKZXX_KZRQ" + k.ToString().PadLeft(2, '0')); + } + for (int l = 1; l <= 5; l++) + { + SQL.Add(" ,XLXSBJKZXX_KZWB" + l.ToString().PadLeft(2, '0')); + } + SQL.Add(" from XLXSBJKZXX where XLXSBJKZXX_BJDID = :pBJDID "); + SQL.ParamByName("pBJDID").Value = sBJDID; + DataSet dsKZXX = dberp.OpenDataSet(SQL); + if (dsKZXX.Tables[0].Rows.Count > 0) + { + foreach (DataRow trow in ds.Tables[0].Rows) + { + if (!sLBXSFJXX.Equals("")) + sLBXSFJXX += "\r\n"; + string sDYZD = trow["XLXSBJKZXXSZ_DYZD"].ToString().Trim(); + string sMC = trow["XLXSBJKZXXSZ_MC"].ToString().Trim(); + string sSJLX = trow["XLXSBJKZXXSZ_SJLX"].ToString().Trim(); + string sSRFS = trow["XLXSBJKZXXSZ_SRFS"].ToString().Trim(); + string sValues = dsKZXX.Tables[0].Rows[0]["XLXSBJKZXX_" + sDYZD].ToString().Trim(); + if (sSJLX.Equals("A")) + { + if (sValues.Equals("") || sValues.Equals("0")) + sValues = ""; + else + sValues = strPadRight(sValues, 2); + } + else if (sSJLX.Equals("B")) + { + if (!sSRFS.Equals("A")) + { + string sMJLB = trow["XLXSBJKZXXSZ_MJLB"].ToString().Trim(); + if (sMJLB.Equals("")) + { + string sMJSQL = trow["XLXSBJKZXXSZ_MJSQL"].ToString().Trim(); + SQL.Clear(); + SQL.Add(sMJSQL); + DataSet dsMJ = dberp.OpenDataSet(SQL); + if (dsMJ.Tables[0].Rows.Count > 0) + { + string sMJNAME = ""; + string sMJValue = "," + sValues + ","; + foreach (DataRow mjROW in dsMJ.Tables[0].Rows) + { + string sMJID = mjROW[0].ToString().Trim(); + string sMJMC = mjROW[1].ToString().Trim(); + if (sMJValue.Contains("," + sMJID + ",")) + { + if (!sMJNAME.Equals("")) + sMJNAME += ","; + sMJNAME += sMJMC; + } + } + sValues = sMJNAME; + } + } + } + } + else if (sSJLX.Equals("C")) + { + if (!sValues.Equals("")) + sValues = CMISproConvert.StrToDateTime(sValues).ToShortDateString().Trim(); + } + sLBXSFJXX += sMC + ":" + sValues; + } + } + SQL.Clear(); + SQL.Add(" update XLXSBJD set XLXSBJD_LBXSFJXX = :pLBXSFJXX where XLXSBJD_BJDID = :pBJDID "); + SQL.ParamByName("pLBXSFJXX").Value = sLBXSFJXX; + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + } + } + + public static string strPadRight(string s, int x) + { + string str = s; + if (str.Split('.').Length == 2) + { + str = str.Split('.')[0] + "." + str.Split('.')[1].PadRight(x, '0'); + } + else + { + string tmp = "0"; + if (x > 0) + { + tmp = tmp.PadRight(x, '0'); + str = str + "." + tmp; + } + } + return str; + } + } + +public class JGBMLInfo +{ + + + public static void GetTLBJCLID(TDatabase dberp, TSQL SQL, ref string sTBJCLID, ref string sLBJCLID) + { + XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860018); + + if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_TBJCLID)) + sTBJCLID = pzxx.XLXSBJPZ_TBJCLID; + + if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_LBJCLID)) + sLBJCLID = pzxx.XLXSBJPZ_LBJCLID; + } + + + + public static bool IsJGBMRBSX() + { + XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860018); + if (pzxx.XLXSBJPZ_JGBMRBSX == "Y") + return true; + return false; + } + + + + public static void UpdateJGBMXXSXH(TDatabase dberp, string sJGBID, string sMXBH, string sPXFS) + { + + + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add(" update XLXSJGB set XLXSJGB_MXPXFS = :pPXFS where XLXSJGB_JGBID = :pJGBID and XLXSJGB_MXBH = :pMXBH "); + SQL.ParamByName("pPXFS").Value = sPXFS; + SQL.ParamByName("pJGBID").Value = sJGBID; + SQL.ParamByName("pMXBH").Value = sMXBH; + dberp.ExecSQL(SQL); + + SQL.Clear(); + SQL.Add(" merge into XLXSJGBMX tag "); + SQL.Add(" using ( "); + SQL.Add(" select XLXSJGBMX_JGBID,XLXSJGBMX_XH ,"); + if (sPXFS.Equals("A")) + SQL.Add(" row_number() over(order by XLXSJGBMX_XH) as XH"); + else if (sPXFS.Equals("B")) + SQL.Add(" row_number() over(order by XLXSJGBMX_XLXHID,XLXSJGBMX_XLBZID,XLGGB_XH,XLXSJGBMX_XLGGID,XLXSJGBMX_DYDJID) as XH "); + else if (sPXFS.Equals("C")) + SQL.Add(" row_number() over(order by XLXSJGBMX_XLXHID,XLXSJGBMX_DYDJID,XLGGB_XH,XLXSJGBMX_XLGGID,XLXSJGBMX_XLBZID) as XH "); + else if (sPXFS.Equals("D")) + SQL.Add(" row_number() over(order by XLXSJGBMX_XLBZID,XLXSJGBMX_XLXHID,XLGGB_XH,XLXSJGBMX_XLGGID,XLXSJGBMX_DYDJID) as XH "); + else if (sPXFS.Equals("E")) + SQL.Add(@" row_number() over(order by XLXSJGBMX_XLXHID,XLXSJGBMX_DYDJID,XLXSJGBMX_XLBZID, + XLXXJGB_SFXD7,XLXXJGB_SFXD6,XLXXJGB_SFXD5,XLXXJGB_SFXD4,XLXXJGB_SFXD3,XLXXJGB_SFXD2,XLXXJGB_SFXD1,XLXXJGB_SL7,XLXXJGB_SL6, + XLXXJGB_SL5,XLXXJGB_SL4,XLXXJGB_SL3,XLXXJGB_SL2,XLXXJGB_SL1, + + XLDTJMZHB_DTJM1,XLDTJMZHB_DTJM2,XLDTJMZHB_DTJM3,XLDTJMZHB_DTJM4,XLDTJMZHB_DTJM5,XLDTJMZHB_DTJM6,XLDTJMZHB_DTJM7,XLXSJGBMX_XLGGID) as XH "); + + else if (sPXFS.Equals("F")) + SQL.Add(@" row_number() over(order by XLXSJGBMX_XLXHID,XLXSJGBMX_DYDJID, + XLXXJGB_SFXD7,XLXXJGB_SFXD6,XLXXJGB_SFXD5,XLXXJGB_SFXD4,XLXXJGB_SFXD3,XLXXJGB_SFXD2,XLXXJGB_SFXD1,XLXXJGB_SL7,XLXXJGB_SL6, + XLXXJGB_SL5,XLXXJGB_SL4,XLXXJGB_SL3,XLXXJGB_SL2,XLXXJGB_SL1, + XLDTJMZHB_DTJM1,XLDTJMZHB_DTJM2,XLDTJMZHB_DTJM3,XLDTJMZHB_DTJM4,XLDTJMZHB_DTJM5,XLDTJMZHB_DTJM6,XLDTJMZHB_DTJM7,XLXSJGBMX_XLGGID) as XH,XLXSJGBMX_XLBZID "); + else + SQL.Add(" row_number() over(order by XLXSJGBMX_XLXHID,XLXSJGBMX_XLBZID,XLGGB_XH,XLXSJGBMX_XLGGID,XLXSJGBMX_DYDJID) as XH "); + SQL.Add(" from XLXSJGBMX "); + if (!sPXFS.Equals("A")) + { + SQL.Add(" left join XLXHB on XLXHB_XLXHID=XLXSJGBMX_XLXHID"); + SQL.Add(" left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSJGBMX_XLGGID "); + SQL.Add(" left join XLGGB on XLGGB_XLGGID = XLXSBJXLGGTHB_XLGGIDCH and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); + + } + if (sPXFS.Equals("E") || sPXFS.Equals("F")) + { + SQL.Add(" left join XLXXJGB on XLXXJGB_XXJGID=XLGGB_XXJGID "); + SQL.Add(" left join XLDTJMZHB on XLDTJMZHB_DTJMZHID=XLGGB_DTJMZHID "); + + } + + + SQL.Add(" where 1=1 and XLXSJGBMX_JGBID = :pJGBID "); + SQL.Add(" ) sor "); + SQL.Add(" on (sor.XLXSJGBMX_JGBID = tag.XLXSJGBMX_JGBID and sor.XLXSJGBMX_XH = tag.XLXSJGBMX_XH ) "); + SQL.Add(" when matched then update set tag.XLXSJGBMX_XSXH = sor.XH "); + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + } + + + + public static void UpdateJGBMXXSXH(TDatabase dberp, string sJGBID, string sMXBH) + { + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add(" select XLXSJGB_MXPXFS from XLXSJGB where XLXSJGB_JGBID = :pJGBID "); + if (!sMXBH.Trim().Equals("")) + { + SQL.Add(" and XLXSJGB_MXBH = :pMXBH "); + SQL.ParamByName("pMXBH").Value = sMXBH; + } + SQL.ParamByName("pJGBID").Value = sJGBID; + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + string sPXFS = ds.Tables[0].Rows[0]["XLXSJGB_MXPXFS"].ToString().Trim(); + UpdateJGBMXXSXH(dberp, sJGBID, sMXBH, sPXFS); + } + } + + + + + + //不管JGB\JGC\JGE\JGF,都按JGB进行编码,否则两者编码重复,后续所有明细表都得加MXBH + public static string getNewJGBBH() + { + string sPrefix = DateTime.Now.Year.ToString().Substring(2, 2) + DateTime.Now.Month.ToString().PadLeft(2, '0'); + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Add("select max(XLXSJGB_JGBID) from XLXSJGB where XLXSJGB_MXBH in ('JGB','JGC','JGE','JGF') and XLXSJGB_JGBID like :pPrefix"); + SQL.ParamByName("pPrefix").Value = sPrefix + '%'; + DataSet ds = dberp.OpenDataSet(SQL); + if (!string.IsNullOrEmpty(ds.Tables[0].Rows[0][0].ToString().Trim())) + { + double dTemp = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0][0].ToString().Trim().Substring(4, 4)); + return sPrefix + Convert.ToString(dTemp + 1).PadLeft(4, '0'); + } + else + { + return sPrefix + "0001"; + } + } +} + +public class XLBJD_YZZCheck +{ + + + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// 值域:exists|校验是否存在、selectBJDXH|查出短米点数不相等的明细序号、selectBJCP|查询短米点数不相等的报价产品小计行 + public static void GetBJSLTJYS_SQL(TSQL SQL, string sBJDID, string sBJFLID, string sTJYS, string sYZID, string sBJU003, string useFor) + { + string sBJU003JSDW = XLBJDUtils.GetsJSDW(sBJU003, sBJU003); + Dictionary dicLenJLDWTD = XLBJDUtils.GetLenJLDWTD(); + + if (sTJYS.Equals("2")) + { + if (useFor.Equals("exists")) + { + SQL.Add(" select top 1 tmp.XLXSBJDMX_XH"); + } + else if (useFor.Equals("selectBJDXH")) + { + SQL.Add(" select tmp.XLXSBJDMX_XH as BJDXH,"); + SQL.Add(" (case when isnull(b.YZID,' ')<>' ' then isnull(b.YZZ,0) when isnull(a.YZID,' ')<>' ' then isnull(a.YZZ,0)"); + SQL.Add(" else 0.0 end)"); + SQL.Add(" *(case when isnull(XLXSBJDYZZ2BSY1_CPYT, ' ')=' ' then 1.0 else 0.0 end) as YZZ"); + } + else if (useFor.Equals("selectBJCP")) + {//研发自测:王威 2025/09/12 01:21:15 + SQL.Add(" select distinct upper(tmp.XLXSBJDMX_XLXHID) as XLXHID,tmp.XLXSBJDMX_XLGGID as XLGGID,tmp.XLXSBJDMX_XLBZID as XLBZID,isnull(tmp.XLXSBJDMX_DYDJID,' ') as DYDJID,' ' as XLXSBJDMX_XLYSID,"); + for (int k = 1; k <= 20; k++) + { + if (sYZID.Equals("BJ" + k.ToString().PadLeft(2, '0'))) + { + SQL.Add(" (case when isnull(b.YZID,' ')<>' ' then isnull(b.YZZ,0) when isnull(a.YZID,' ')<>' ' then isnull(a.YZZ,0)"); + SQL.Add(" else 0.0 end)"); + SQL.Add(string.Format("*(case when isnull(XLXSBJDYZZ2BSY1_CPYT, ' ')=' ' then 1.0 else 0.0 end) as YZZ{0},", k.ToString().PadLeft(2, '0'))); + } + else + SQL.Add(string.Format(" 0.0 as YZZ{0},", k.ToString().PadLeft(2, '0'))); + } + SQL.Add(string.Format(" BJD.sumBJSL,'{0}' as JLDW,'{1}' as YZID ", sBJU003, sYZID)); + } + SQL.Add(" from XLXSBJDMX tmp"); + SQL.Add(" left join XLXSBJDYZZ0 on XLXSBJDYZZ0_BJDID=tmp.XLXSBJDMX_BJDID and XLXSBJDYZZ0_XH=tmp.XLXSBJDMX_XH"); + SQL.Add(" left join "); + SQL.Add(" (select XLXSBJDMX_BJDID as BJDID,upper(XLXSBJDMX_XLXHID)as XLXHID,XLXSBJDMX_XLGGID as XLGGID,XLXSBJDMX_XLBZID as XLBZID,isnull(XLXSBJDMX_DYDJID,' ') as DYDJID,"); + if (sBJU003JSDW.Equals("M")) + { + SQL.Add(" sum(case when XLXSBJDMX_JLDW in('Km','千米')then 1000*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when XLXSBJDMX_JLDW='{0}' then {1}*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end)as sumBJSL"); + } + else if (sBJU003JSDW.Equals("Km")) + { + SQL.Add(" sum(case when XLXSBJDMX_JLDW in('M','米')then 0.001*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when XLXSBJDMX_JLDW='{0}' then 0.001*{1}*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end)as sumBJSL"); + } + //取报价单明细因子值之和 + SQL.Add(string.Format(" ,sum(XLXSBJDYZZ0_YZZ{0}) as sumYZZ", sYZID.Replace("BJ", ""))); + SQL.Add(" from XLXSBJDMX"); + //关联报价单明细因子值 + SQL.Add(" left join XLXSBJDYZZ0 on XLXSBJDYZZ0_BJDID= XLXSBJDMX_BJDID and XLXSBJDYZZ0_XH= XLXSBJDMX_XH "); + SQL.Add(string.Format(" where XLXSBJDMX_BJDID='{0}'", sBJDID)); + SQL.Add(" and (XLXSBJDMX_JLDW in('Km','M','千米','米')"); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" or XLXSBJDMX_JLDW='{0}'", sKey)); + } + SQL.Add(" )"); + SQL.Add(" group by XLXSBJDMX_BJDID,upper(XLXSBJDMX_XLXHID),XLXSBJDMX_XLGGID,XLXSBJDMX_XLBZID,isnull(XLXSBJDMX_DYDJID,' ')"); + SQL.Add(" )BJD on BJD.XLXHID=upper(tmp.XLXSBJDMX_XLXHID) and BJD.XLGGID=tmp.XLXSBJDMX_XLGGID and BJD.XLBZID=tmp.XLXSBJDMX_XLBZID and BJD.DYDJID=isnull(tmp.XLXSBJDMX_DYDJID,' ')"); + SQL.Add(" left join XLXHB on XLXHB_XLXHID=XLXHID "); + SQL.Add(" left join XLXSBJDYZZ2BSY1 on XLXSBJDYZZ2BSY1_CPYT= isnull(XLXHB_CPYT,' ')"); + SQL.Add(" left join"); + SQL.Add(" ("); + SQL.Add(" select XLXSBJDYZZ2_DTCLID as DTCLID,XLXSBJDYZZ2_YZID as YZID,XLXSBJDYZZ2_YZZ as YZZ,DYDJB.XLDYDJB_DYDJID,"); + SQL.Add(" XLXSBJDYZZ2_BJSLXX,XLXSBJDYZZ2_BJSLSX"); + SQL.Add(" from XLXSBJDYZZ2,XLXSTZYZ,"); + SQL.Add(" ("); + SQL.Add(" select (case when XLDYDJB_XXLXDY>XLDYDJB_XXXXDY then XLDYDJB_XXLXDY else XLDYDJB_XXXXDY end)"); + SQL.Add(" *(case XLDYDJB_DYJLDW when 'V' then 1 else 1000 end) as DY,XLDYDJB_DYDJID "); + SQL.Add(" from XLDYDJB"); + SQL.Add(" where 1=1"); + SQL.Add(" ) DYDJB "); + SQL.Add(" where XLXSTZYZ_MXBH='BJD' and XLXSTZYZ_TJYS='2' and XLXSBJDYZZ2_JGBID=XLXSTZYZ_JGBID and XLXSTZYZ_YZID=XLXSBJDYZZ2_YZID"); + SQL.Add(string.Format(" and exists(select 1 from XLXSBJFLYZ where XLXSBJFLYZ_BJFLID='{0}' and XLXSBJFLYZ_YZID=XLXSTZYZ_YZID)", sBJFLID)); + SQL.Add(" and XLXSBJDYZZ2_DYXX<=DY and ((XLXSBJDYZZ2_DYSX<>0 and XLXSBJDYZZ2_DYSX>DY) or XLXSBJDYZZ2_DYSX=0)"); + SQL.Add(string.Format(" and XLXSBJDYZZ2_YZID='{0}'", sYZID)); + SQL.Add(" and XLXSBJDYZZ2_DTCLID=' '"); + SQL.Add(" ) a on a.XLDYDJB_DYDJID = DYDJID "); + SQL.Add(" and a.XLXSBJDYZZ2_BJSLXX<=BJD.sumBJSL"); + SQL.Add(" and ((a.XLXSBJDYZZ2_BJSLSX<>0 and a.XLXSBJDYZZ2_BJSLSX>BJD.sumBJSL) or a.XLXSBJDYZZ2_BJSLSX=0) "); + SQL.Add(" left join"); + SQL.Add(" ("); + SQL.Add(" select XLXSBJDYZZ2_DTCLID as DTCLID,XLXSBJDYZZ2_YZID as YZID,XLXSBJDYZZ2_YZZ as YZZ,DYDJB.XLDYDJB_DYDJID,"); + SQL.Add(" XLXSBJDYZZ2_BJSLXX,XLXSBJDYZZ2_BJSLSX"); + SQL.Add(" from XLXSBJDYZZ2,XLXSTZYZ,"); + SQL.Add(" ("); + SQL.Add(" select (case when XLDYDJB_XXLXDY>XLDYDJB_XXXXDY then XLDYDJB_XXLXDY else XLDYDJB_XXXXDY end)"); + SQL.Add(" *(case XLDYDJB_DYJLDW when 'V' then 1 else 1000 end) as DY,XLDYDJB_DYDJID "); + SQL.Add(" from XLDYDJB"); + SQL.Add(" where 1=1"); + SQL.Add(" ) DYDJB "); + SQL.Add(" where XLXSTZYZ_MXBH='BJD' and XLXSTZYZ_TJYS='2' and XLXSBJDYZZ2_JGBID=XLXSTZYZ_JGBID and XLXSTZYZ_YZID=XLXSBJDYZZ2_YZID"); + SQL.Add(string.Format(" and exists(select 1 from XLXSBJFLYZ where XLXSBJFLYZ_BJFLID='{0}' and XLXSBJFLYZ_YZID=XLXSTZYZ_YZID)", sBJFLID)); + SQL.Add(" and XLXSBJDYZZ2_DYXX<=DY and ((XLXSBJDYZZ2_DYSX<>0 and XLXSBJDYZZ2_DYSX>DY) or XLXSBJDYZZ2_DYSX=0)"); + SQL.Add(string.Format(" and XLXSBJDYZZ2_YZID='{0}'", sYZID)); + SQL.Add(" and XLXSBJDYZZ2_DTCLID<>' '"); + SQL.Add(" ) b on b.DTCLID=isnull(XLXHB_DTCLID,' ') and b.XLDYDJB_DYDJID = DYDJID"); + SQL.Add(" and b.XLXSBJDYZZ2_BJSLXX<=BJD.sumBJSL"); + SQL.Add(" and ((b.XLXSBJDYZZ2_BJSLSX<>0 and b.XLXSBJDYZZ2_BJSLSX>BJD.sumBJSL) or b.XLXSBJDYZZ2_BJSLSX=0)"); + SQL.Add(string.Format(" where tmp.XLXSBJDMX_BJDID='{0}'", sBJDID)); + SQL.Add(" and (case when isnull(b.YZID,' ')<>' ' then isnull(b.YZZ,0) when isnull(a.YZID,' ')<>' ' then isnull(a.YZZ,0)"); + SQL.Add(" else 0.0 end)"); + SQL.Add(string.Format("*(case when isnull(XLXSBJDYZZ2BSY1_CPYT, ' ')=' ' then 1.0 else 0.0 end)<>XLXSBJDYZZ0_YZZ{0}", sYZID.Replace("BJ", ""))); + SQL.Add(" and BJD.sumYZZ > 0 "); + } + else if (sTJYS.Equals("3")) + { + if (useFor.Equals("exists")) + { + SQL.Add(" select top 1 tmp.XLXSBJDMX_XH"); + } + else if (useFor.Equals("selectBJDXH")) + { + SQL.Add(" select tmp.XLXSBJDMX_XH as BJDXH,"); + SQL.Add(" (case when isnull(d.YZID,' ')<>' ' then isnull(d.YZZ,0)when isnull(c.YZID,' ')<>' ' then isnull(c.YZZ,0)"); + SQL.Add(" when isnull(b.YZID,' ')<>' ' then isnull(b.YZZ,0)when isnull(a.YZID,' ')<>' ' then isnull(a.YZZ,0)"); + SQL.Add(" else 0.0 end)"); + SQL.Add(" *(case when isnull(XLXSBJDYZZ3BSY1_CPYT, ' ')=' ' then 1.0 else 0.0 end)*(case when isnull(XLXSBJDYZZ3BSY2_XLXHID, ' ')=' ' then 1.0 else 0.0 end)*(case when isnull(XLXSBJDYZZ3BSY3_XLJBXHID, ' ')=' ' then 1.0 else 0.0 end) as YZZ"); + } + else if (useFor.Equals("selectBJCP")) + {//研发自测:王威 2025/09/12 01:21:15 + SQL.Add(" select distinct upper(tmp.XLXSBJDMX_XLXHID) as XLXHID,tmp.XLXSBJDMX_XLGGID as XLGGID,tmp.XLXSBJDMX_XLBZID as XLBZID,isnull(tmp.XLXSBJDMX_DYDJID,' ') as DYDJID,' ' as XLXSBJDMX_XLYSID,"); + for (int k = 1; k <= 20; k++) + { + if (sYZID.Equals("BJ" + k.ToString().PadLeft(2, '0'))) + { + SQL.Add(" (case when isnull(d.YZID,' ')<>' ' then isnull(d.YZZ,0) when isnull(c.YZID,' ')<>' ' then isnull(c.YZZ,0)"); + SQL.Add(" when isnull(b.YZID,' ')<>' ' then isnull(b.YZZ,0) when isnull(a.YZID,' ')<>' ' then isnull(a.YZZ,0)"); + SQL.Add(" else 0.0 end)"); + SQL.Add(string.Format("*(case when isnull(XLXSBJDYZZ3BSY1_CPYT, ' ')=' ' then 1.0 else 0.0 end)*(case when isnull(XLXSBJDYZZ3BSY2_XLXHID, ' ')=' ' then 1.0 else 0.0 end)*(case when isnull(XLXSBJDYZZ3BSY3_XLJBXHID, ' ')=' ' then 1.0 else 0.0 end) as YZZ{0},", k.ToString().PadLeft(2, '0'))); + } + else + SQL.Add(string.Format(" 0.0 as YZZ{0},", k.ToString().PadLeft(2, '0'))); + } + SQL.Add(string.Format(" BJD.sumBJSL,'{0}' as JLDW,'{1}' as YZID ", sBJU003, sYZID)); + } + SQL.Add(" from XLXSBJDMX tmp"); + SQL.Add(" left join XLXSBJDYZZ0 on XLXSBJDYZZ0_BJDID=tmp.XLXSBJDMX_BJDID and XLXSBJDYZZ0_XH=tmp.XLXSBJDMX_XH"); + SQL.Add(" left join "); + SQL.Add(" (select XLXSBJDMX_BJDID as BJDID,upper(XLXSBJDMX_XLXHID)as XLXHID,XLXSBJDMX_XLGGID as XLGGID,XLXSBJDMX_XLBZID as XLBZID,isnull(XLXSBJDMX_DYDJID,' ')as DYDJID,"); + if (sBJU003JSDW.Equals("M")) + { + SQL.Add(" sum(case when XLXSBJDMX_JLDW in('Km','千米')then 1000*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when XLXSBJDMX_JLDW='{0}' then {1}*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end)as sumBJSL"); + } + else if (sBJU003JSDW.Equals("Km")) + { + SQL.Add(" sum(case when XLXSBJDMX_JLDW in('M','米') then 0.001*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when XLXSBJDMX_JLDW='{0}' then 0.001*{1}*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end) as sumBJSL"); + + } + //取报价单明细因子值之和 + SQL.Add(string.Format(" ,sum(XLXSBJDYZZ0_YZZ{0}) as sumYZZ", sYZID.Replace("BJ", ""))); + SQL.Add(" from XLXSBJDMX"); + //关联报价单明细因子值 + SQL.Add(" left join XLXSBJDYZZ0 on XLXSBJDYZZ0_BJDID= XLXSBJDMX_BJDID and XLXSBJDYZZ0_XH= XLXSBJDMX_XH "); + SQL.Add(string.Format(" where XLXSBJDMX_BJDID='{0}'", sBJDID)); + SQL.Add(" and (XLXSBJDMX_JLDW in('Km','M','千米','米')"); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" or XLXSBJDMX_JLDW='{0}'", sKey)); + } + SQL.Add(" )"); + SQL.Add(" group by XLXSBJDMX_BJDID,upper(XLXSBJDMX_XLXHID),XLXSBJDMX_XLGGID,XLXSBJDMX_XLBZID,isnull(XLXSBJDMX_DYDJID,' ')"); + SQL.Add(" )BJD on BJD.XLXHID=upper(tmp.XLXSBJDMX_XLXHID) and BJD.XLGGID=tmp.XLXSBJDMX_XLGGID and BJD.XLBZID=tmp.XLXSBJDMX_XLBZID and BJD.DYDJID=isnull(tmp.XLXSBJDMX_DYDJID,' ')"); + SQL.Add(" left join XLXHB on XLXHB_XLXHID=XLXHID "); + SQL.Add(" left join XLDYDJB on XLDYDJB_DYDJID=DYDJID"); + SQL.Add(" left join XLXSBJDYZZ3BSY1 on XLXSBJDYZZ3BSY1_CPYT= isnull(XLXHB_CPYT,' ')"); + SQL.Add(" left join XLXSBJDYZZ3BSY2 on XLXSBJDYZZ3BSY2_XLXHID= XLXSBJDMX_XLXHID and XLXSBJDYZZ3BSY2_XLGGID= XLXSBJDMX_XLGGID and XLXSBJDYZZ3BSY2_XLBZID= XLXSBJDMX_XLBZID and XLXSBJDYZZ3BSY2_DYDJID= XLXSBJDMX_DYDJID "); + SQL.Add(" left join XLXSBJDYZZ3BSY3 on XLXSBJDYZZ3BSY3_XLJBXHID= isnull(XLXHB_XLJBXHID,' ')"); + SQL.Add(" left join"); + SQL.Add(" ("); + SQL.Add(" select XLXSBJDYZZ3_CPYT as CPYT,XLXSBJDYZZ3_DYDJFL as DYDJFL,XLXSBJDYZZ3_YZID as YZID,XLXSBJDYZZ3_YZZ as YZZ,"); + SQL.Add(" XLXSBJDYZZ3_BJSLXX,XLXSBJDYZZ3_BJSLSX"); + SQL.Add(" from XLXSBJDYZZ3,XLXSTZYZ"); + SQL.Add(" where XLXSTZYZ_MXBH='BJD' and XLXSTZYZ_TJYS='3' and XLXSBJDYZZ3_JGBID=XLXSTZYZ_JGBID and XLXSTZYZ_YZID=XLXSBJDYZZ3_YZID"); + SQL.Add(string.Format(" and exists(select 1 from XLXSBJFLYZ where XLXSBJFLYZ_BJFLID='{0}' and XLXSBJFLYZ_YZID=XLXSTZYZ_YZID)", sBJFLID)); + SQL.Add(string.Format(" and XLXSBJDYZZ3_YZID='{0}'", sYZID)); + SQL.Add(" and XLXSBJDYZZ3_CPYT=' ' and XLXSBJDYZZ3_DYDJFL=' '"); + SQL.Add(" )a on "); + SQL.Add(" a.XLXSBJDYZZ3_BJSLXX<=BJD.sumBJSL"); + SQL.Add(" and((a.XLXSBJDYZZ3_BJSLSX<>0 and a.XLXSBJDYZZ3_BJSLSX>BJD.sumBJSL)or a.XLXSBJDYZZ3_BJSLSX=0) "); + SQL.Add(" left join"); + SQL.Add(" ("); + SQL.Add(" select XLXSBJDYZZ3_CPYT as CPYT,XLXSBJDYZZ3_DYDJFL as DYDJFL,XLXSBJDYZZ3_YZID as YZID,XLXSBJDYZZ3_YZZ as YZZ,"); + SQL.Add(" XLXSBJDYZZ3_BJSLXX,XLXSBJDYZZ3_BJSLSX"); + SQL.Add(" from XLXSBJDYZZ3,XLXSTZYZ"); + SQL.Add(" where XLXSTZYZ_MXBH='BJD' and XLXSTZYZ_TJYS='3' and XLXSBJDYZZ3_JGBID=XLXSTZYZ_JGBID and XLXSTZYZ_YZID=XLXSBJDYZZ3_YZID"); + SQL.Add(string.Format(" and exists(select 1 from XLXSBJFLYZ where XLXSBJFLYZ_BJFLID='{0}' and XLXSBJFLYZ_YZID=XLXSTZYZ_YZID)", sBJFLID)); + SQL.Add(string.Format(" and XLXSBJDYZZ3_YZID='{0}'", sYZID)); + SQL.Add(" and XLXSBJDYZZ3_CPYT=' ' and XLXSBJDYZZ3_DYDJFL<>' '"); + SQL.Add(" )b on b.DYDJFL=XLDYDJB_DYDJFL"); + SQL.Add(" and b.XLXSBJDYZZ3_BJSLXX<=BJD.sumBJSL"); + SQL.Add(" and((b.XLXSBJDYZZ3_BJSLSX<>0 and b.XLXSBJDYZZ3_BJSLSX>BJD.sumBJSL)or b.XLXSBJDYZZ3_BJSLSX=0)"); + SQL.Add(" left join"); + SQL.Add(" ("); + SQL.Add(" select XLXSBJDYZZ3_CPYT as CPYT,XLXSBJDYZZ3_DYDJFL as DYDJFL,XLXSBJDYZZ3_YZID as YZID,XLXSBJDYZZ3_YZZ as YZZ,"); + SQL.Add(" XLXSBJDYZZ3_BJSLXX,XLXSBJDYZZ3_BJSLSX"); + SQL.Add(" from XLXSBJDYZZ3,XLXSTZYZ"); + SQL.Add(" where XLXSTZYZ_MXBH='BJD' and XLXSTZYZ_TJYS='3' and XLXSBJDYZZ3_JGBID=XLXSTZYZ_JGBID and XLXSTZYZ_YZID=XLXSBJDYZZ3_YZID"); + SQL.Add(string.Format(" and exists(select 1 from XLXSBJFLYZ where XLXSBJFLYZ_BJFLID='{0}' and XLXSBJFLYZ_YZID=XLXSTZYZ_YZID)", sBJFLID)); + SQL.Add(string.Format(" and XLXSBJDYZZ3_YZID='{0}'", sYZID)); + SQL.Add(" and XLXSBJDYZZ3_CPYT<>' ' and XLXSBJDYZZ3_DYDJFL=' '"); + SQL.Add(" )c on c.CPYT=XLXHB_CPYT"); + SQL.Add(" and c.XLXSBJDYZZ3_BJSLXX<=BJD.sumBJSL"); + SQL.Add(" and((c.XLXSBJDYZZ3_BJSLSX<>0 and c.XLXSBJDYZZ3_BJSLSX>BJD.sumBJSL)or c.XLXSBJDYZZ3_BJSLSX=0)"); + SQL.Add(" left join"); + SQL.Add(" ("); + SQL.Add(" select XLXSBJDYZZ3_CPYT as CPYT,XLXSBJDYZZ3_DYDJFL as DYDJFL,XLXSBJDYZZ3_YZID as YZID,XLXSBJDYZZ3_YZZ as YZZ,"); + SQL.Add(" XLXSBJDYZZ3_BJSLXX,XLXSBJDYZZ3_BJSLSX"); + SQL.Add(" from XLXSBJDYZZ3,XLXSTZYZ"); + SQL.Add(" where XLXSTZYZ_MXBH='BJD' and XLXSTZYZ_TJYS='3' and XLXSBJDYZZ3_JGBID=XLXSTZYZ_JGBID and XLXSTZYZ_YZID=XLXSBJDYZZ3_YZID"); + SQL.Add(string.Format(" and exists(select 1 from XLXSBJFLYZ where XLXSBJFLYZ_BJFLID='{0}' and XLXSBJFLYZ_YZID=XLXSTZYZ_YZID)", sBJFLID)); + SQL.Add(string.Format(" and XLXSBJDYZZ3_YZID='{0}'", sYZID)); + SQL.Add(" and XLXSBJDYZZ3_CPYT<>' ' and XLXSBJDYZZ3_DYDJFL<>' '"); + SQL.Add(" )d on d.CPYT=XLXHB_CPYT and d.DYDJFL=XLDYDJB_DYDJFL"); + SQL.Add(" and d.XLXSBJDYZZ3_BJSLXX<=BJD.sumBJSL"); + SQL.Add(" and((d.XLXSBJDYZZ3_BJSLSX<>0 and d.XLXSBJDYZZ3_BJSLSX>BJD.sumBJSL)or d.XLXSBJDYZZ3_BJSLSX=0)"); + SQL.Add(string.Format(" where tmp.XLXSBJDMX_BJDID='{0}'", sBJDID)); + SQL.Add(" and (case when isnull(d.YZID,' ')<>' ' then isnull(d.YZZ,0)when isnull(c.YZID,' ')<>' ' then isnull(c.YZZ,0)"); + SQL.Add(" when isnull(b.YZID,' ')<>' ' then isnull(b.YZZ,0)when isnull(a.YZID,' ')<>' ' then isnull(a.YZZ,0)"); + SQL.Add(" else 0.0 end)"); + SQL.Add(string.Format("*(case when isnull(XLXSBJDYZZ3BSY1_CPYT, ' ')=' ' then 1.0 else 0.0 end)*(case when isnull(XLXSBJDYZZ3BSY2_XLXHID, ' ')=' ' then 1.0 else 0.0 end)*(case when isnull(XLXSBJDYZZ3BSY3_XLJBXHID, ' ')=' ' then 1.0 else 0.0 end)<>XLXSBJDYZZ0_YZZ{0}", sYZID.Replace("BJ", ""))); + SQL.Add(" and BJD.sumYZZ > 0 "); + } + else if (sTJYS.Equals("6")) + { + if (useFor.Equals("exists")) + { + SQL.Add(" select top 1 tmp.XLXSBJDMX_XH"); + } + else if (useFor.Equals("selectBJDXH")) + { + SQL.Add(" select tmp.XLXSBJDMX_XH as BJDXH,"); + SQL.Add(" (case when isnull(a.YZID,' ')<>' ' then isnull(a.YZZ,0)*100.0/BJD.sumBJSL"); + SQL.Add(" else 0.0 end) as YZZ"); + } + else if (useFor.Equals("selectBJCP")) + {//研发自测:王威 2025/09/12 01:21:15 + SQL.Add(" select distinct upper(tmp.XLXSBJDMX_XLXHID) as XLXHID,tmp.XLXSBJDMX_XLGGID as XLGGID,tmp.XLXSBJDMX_XLBZID as XLBZID,isnull(tmp.XLXSBJDMX_DYDJID,' ') as DYDJID,' ' as XLXSBJDMX_XLYSID,"); + for (int k = 1; k <= 20; k++) + { + if (sYZID.Equals("BJ" + k.ToString().PadLeft(2, '0'))) + { + SQL.Add(" (case when isnull(a.YZID,' ')<>' ' then isnull(a.YZZ,0)*100.0/BJD.sumBJSL"); + SQL.Add(string.Format(" else 0.0 end) as YZZ{0},", k.ToString().PadLeft(2, '0'))); + } + else + SQL.Add(string.Format(" 0.0 as YZZ{0},", k.ToString().PadLeft(2, '0'))); + } + SQL.Add(string.Format(" BJD.sumBJSL,'{0}' as JLDW,'{1}' as YZID ", sBJU003, sYZID)); + } + SQL.Add(" from XLXSBJDMX tmp"); + SQL.Add(" left join XLXSBJDYZZ0 on XLXSBJDYZZ0_BJDID=tmp.XLXSBJDMX_BJDID and XLXSBJDYZZ0_XH=tmp.XLXSBJDMX_XH"); + SQL.Add(" left join "); + SQL.Add(" (select XLXSBJDMX_BJDID as BJDID,upper(XLXSBJDMX_XLXHID)as XLXHID,XLXSBJDMX_XLGGID as XLGGID,XLXSBJDMX_XLBZID as XLBZID,isnull(XLXSBJDMX_DYDJID,' ')as DYDJID,"); + if (sBJU003JSDW.Equals("M")) + { + SQL.Add(" sum(case when XLXSBJDMX_JLDW in('Km','千米')then 1000*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when XLXSBJDMX_JLDW='{0}' then {1}*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end)as sumBJSL"); + } + else if (sBJU003JSDW.Equals("Km")) + { + SQL.Add(" sum(case when XLXSBJDMX_JLDW in('M','米') then 0.001*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when XLXSBJDMX_JLDW='{0}' then 0.001*{1}*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end) as sumBJSL"); + } + //取报价单明细因子值之和 + SQL.Add(string.Format(" ,sum(XLXSBJDYZZ0_YZZ{0}) as sumYZZ", sYZID.Replace("BJ", ""))); + SQL.Add(" from XLXSBJDMX"); + //关联报价单明细因子值 + SQL.Add(" left join XLXSBJDYZZ0 on XLXSBJDYZZ0_BJDID= XLXSBJDMX_BJDID and XLXSBJDYZZ0_XH= XLXSBJDMX_XH "); + SQL.Add(string.Format(" where XLXSBJDMX_BJDID='{0}'", sBJDID)); + SQL.Add(" and (XLXSBJDMX_JLDW in('Km','M','千米','米')"); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" or XLXSBJDMX_JLDW='{0}'", sKey)); + } + SQL.Add(" )"); + SQL.Add(" and XLXSBJDMX_BJSL<>0");//因素6需要限制报价数量不为0 + SQL.Add(" group by XLXSBJDMX_BJDID,upper(XLXSBJDMX_XLXHID),XLXSBJDMX_XLGGID,XLXSBJDMX_XLBZID,isnull(XLXSBJDMX_DYDJID,' ')"); + SQL.Add(" )BJD on BJD.XLXHID=upper(tmp.XLXSBJDMX_XLXHID) and BJD.XLGGID=tmp.XLXSBJDMX_XLGGID and BJD.XLBZID=tmp.XLXSBJDMX_XLBZID and BJD.DYDJID=isnull(tmp.XLXSBJDMX_DYDJID,' ')"); + SQL.Add(" left join"); + SQL.Add(" ("); + SQL.Add(" select XLXSBJDYZZ6_YZID as YZID,XLXSBJDYZZ6_YZZ as YZZ,"); + SQL.Add(" XLXSBJDYZZ6_BJSLXX,XLXSBJDYZZ6_BJSLSX"); + SQL.Add(" from XLXSBJDYZZ6,XLXSTZYZ"); + SQL.Add(" where XLXSTZYZ_MXBH='BJD' and XLXSTZYZ_TJYS='6' and XLXSBJDYZZ6_JGBID=XLXSTZYZ_JGBID and XLXSTZYZ_YZID=XLXSBJDYZZ6_YZID"); + SQL.Add(string.Format(" and exists(select 1 from XLXSBJFLYZ where XLXSBJFLYZ_BJFLID='{0}' and XLXSBJFLYZ_YZID=XLXSTZYZ_YZID)", sBJFLID)); + SQL.Add(string.Format(" and XLXSBJDYZZ6_YZID='{0}'", sYZID)); + SQL.Add(" ) a on "); + SQL.Add(" a.XLXSBJDYZZ6_BJSLXX<=BJD.sumBJSL"); + SQL.Add(" and ((a.XLXSBJDYZZ6_BJSLSX<>0 and a.XLXSBJDYZZ6_BJSLSX>BJD.sumBJSL) or a.XLXSBJDYZZ6_BJSLSX=0) "); + SQL.Add(string.Format(" where tmp.XLXSBJDMX_BJDID='{0}'", sBJDID)); + SQL.Add(" and (case when isnull(a.YZID,' ')<>' ' then RoundFix(isnull(a.YZZ,0)*100.0/BJD.sumBJSL,6)"); + SQL.Add(string.Format(" else 0.0 end)<>RoundFix(XLXSBJDYZZ0_YZZ{0},6)", sYZID.Replace("BJ", ""))); + SQL.Add(" and BJD.sumYZZ > 0 "); + } + else if (sTJYS.Equals("E")) + { + if (useFor.Equals("exists")) + { + SQL.Add(" select top 1 tmp.XLXSBJDMX_XH"); + } + else if (useFor.Equals("selectBJDXH")) + { + SQL.Add(" select tmp.XLXSBJDMX_XH as BJDXH,"); + SQL.Add(" (case when isnull(c.YZID,' ')<>' ' then isnull(c.YZZ,0) when isnull(b.YZID,' ')<>' ' then isnull(b.YZZ,0) when isnull(a.YZID,' ')<>' ' then isnull(a.YZZ,0)"); + SQL.Add(" else 0.0 end)"); + SQL.Add(" *(case when isnull(XLXSBJDYZZEBSY1_CPYT, ' ')=' ' then 1.0 else 0.0 end)*(case when isnull(XLXSBJDYZZEBSY2_XLJBXHID, ' ')=' ' then 1.0 else 0.0 end) as YZZ "); + } + else if (useFor.Equals("selectBJCP")) + {//研发自测:王威 2025/09/12 01:21:15 + SQL.Add(" select distinct upper(tmp.XLXSBJDMX_XLXHID) as XLXHID,tmp.XLXSBJDMX_XLGGID as XLGGID,tmp.XLXSBJDMX_XLBZID as XLBZID,isnull(tmp.XLXSBJDMX_DYDJID,' ') as DYDJID,' ' as XLXSBJDMX_XLYSID,"); + for (int k = 1; k <= 20; k++) + { + if (sYZID.Equals("BJ" + k.ToString().PadLeft(2, '0'))) + { + SQL.Add(" (case when isnull(c.YZID,' ')<>' ' then isnull(c.YZZ,0) when isnull(b.YZID,' ')<>' ' then isnull(b.YZZ,0) when isnull(a.YZID,' ')<>' ' then isnull(a.YZZ,0)"); + SQL.Add(" else 0.0 end) "); + SQL.Add(string.Format(" *(case when isnull(XLXSBJDYZZEBSY1_CPYT, ' ')=' ' then 1.0 else 0.0 end)*(case when isnull(XLXSBJDYZZEBSY2_XLJBXHID, ' ')=' ' then 1.0 else 0.0 end) as YZZ{0},", k.ToString().PadLeft(2, '0'))); + } + else + SQL.Add(string.Format(" 0.0 as YZZ{0},", k.ToString().PadLeft(2, '0'))); + } + SQL.Add(string.Format(" BJD.sumBJSL,'{0}' as JLDW,'{1}' as YZID ", sBJU003, sYZID)); + } + SQL.Add(" from XLXSBJDMX tmp"); + SQL.Add(" left join XLXSBJDYZZ0 on XLXSBJDYZZ0_BJDID=tmp.XLXSBJDMX_BJDID and XLXSBJDYZZ0_XH=tmp.XLXSBJDMX_XH"); + SQL.Add(" left join "); + SQL.Add(" (select XLXSBJDMX_BJDID as BJDID,upper(XLXSBJDMX_XLXHID)as XLXHID,XLXSBJDMX_XLGGID as XLGGID,XLXSBJDMX_XLBZID as XLBZID,isnull(XLXSBJDMX_DYDJID,' ') as DYDJID,"); + if (sBJU003JSDW.Equals("M")) + { + SQL.Add(" sum(case when XLXSBJDMX_JLDW in('Km','千米')then 1000*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when XLXSBJDMX_JLDW='{0}' then {1}*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end)as sumBJSL"); + } + else if (sBJU003JSDW.Equals("Km")) + { + SQL.Add(" sum(case when XLXSBJDMX_JLDW in('M','米')then 0.001*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when XLXSBJDMX_JLDW='{0}' then 0.001*{1}*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end)as sumBJSL"); + } + //取报价单明细因子值之和 + SQL.Add(string.Format(" ,sum(XLXSBJDYZZ0_YZZ{0}) as sumYZZ", sYZID.Replace("BJ", ""))); + SQL.Add(" from XLXSBJDMX"); + //关联报价单明细因子值 + SQL.Add(" left join XLXSBJDYZZ0 on XLXSBJDYZZ0_BJDID= XLXSBJDMX_BJDID and XLXSBJDYZZ0_XH= XLXSBJDMX_XH "); + SQL.Add(string.Format(" where XLXSBJDMX_BJDID='{0}'", sBJDID)); + SQL.Add(" and (XLXSBJDMX_JLDW in('Km','M','千米','米')"); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" or XLXSBJDMX_JLDW='{0}'", sKey)); + } + SQL.Add(" )"); + SQL.Add(" group by XLXSBJDMX_BJDID,upper(XLXSBJDMX_XLXHID),XLXSBJDMX_XLGGID,XLXSBJDMX_XLBZID,isnull(XLXSBJDMX_DYDJID,' ')"); + SQL.Add(" )BJD on BJD.XLXHID=upper(tmp.XLXSBJDMX_XLXHID) and BJD.XLGGID=tmp.XLXSBJDMX_XLGGID and BJD.XLBZID=tmp.XLXSBJDMX_XLBZID and BJD.DYDJID=isnull(tmp.XLXSBJDMX_DYDJID,' ')"); + SQL.Add(" left join XLXHB on XLXHB_XLXHID=BJD.XLXHID "); + SQL.Add(" left join XLXSBJDYZZEBSY1 on XLXSBJDYZZEBSY1_CPYT= isnull(XLXHB_CPYT,' ')"); + SQL.Add(" left join XLXSBJDYZZEBSY2 on XLXSBJDYZZEBSY2_XLJBXHID= isnull(XLXHB_XLJBXHID,' ')"); + SQL.Add(" left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSBJDMX_XLGGID "); + SQL.Add(" left join XLGGB on XLGGB_XLGGID = XLXSBJXLGGTHB_XLGGIDCH and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); + SQL.Add(" left join XLDTJMZHB on XLDTJMZHB_DTJMZHID=XLGGB_DTJMZHID "); + SQL.Add(" left join"); + SQL.Add(" ("); + SQL.Add(" select XLXSBJDYZZE_XLXHID,XLXSBJDYZZE_DYDJID,XLXSBJDYZZE_YZID as YZID,XLXSBJDYZZE_YZZ as YZZ,"); + SQL.Add(" XLXSBJDYZZE_ZXJMXX,XLXSBJDYZZE_ZXJMSX,XLXSBJDYZZE_BJSLXX,XLXSBJDYZZE_BJSLSX"); + SQL.Add(" from XLXSBJDYZZE"); + SQL.Add(" where exists(select 1 from XLXSTZYZ where XLXSTZYZ_MXBH='BJD' and XLXSTZYZ_TJYS='E' and XLXSTZYZ_JGBID=XLXSBJDYZZE_JGBID and XLXSTZYZ_YZID=XLXSBJDYZZE_YZID ) "); + SQL.Add(string.Format(" and exists(select 1 from XLXSBJFLYZ where XLXSBJFLYZ_BJFLID='{0}' and XLXSBJFLYZ_YZID=XLXSBJDYZZE_YZID)", sBJFLID)); + SQL.Add(string.Format(" and XLXSBJDYZZE_YZID='{0}'", sYZID)); + SQL.Add(" and XLXSBJDYZZE_XLXHID=' ' and XLXSBJDYZZE_DYDJID=' '"); + SQL.Add(" ) a on "); + SQL.Add(" a.XLXSBJDYZZE_ZXJMXX<=isnull(XLDTJMZHB_DTJM1,0) and ((a.XLXSBJDYZZE_ZXJMSX<>0 and a.XLXSBJDYZZE_ZXJMSX>=isnull(XLDTJMZHB_DTJM1,0)) or a.XLXSBJDYZZE_ZXJMSX=0) "); + SQL.Add(" and a.XLXSBJDYZZE_BJSLXX<=BJD.sumBJSL"); + SQL.Add(" and ((a.XLXSBJDYZZE_BJSLSX<>0 and a.XLXSBJDYZZE_BJSLSX>BJD.sumBJSL) or a.XLXSBJDYZZE_BJSLSX=0) "); + SQL.Add(" left join"); + SQL.Add(" ("); + SQL.Add(" select XLXSBJDYZZE_XLXHID,XLXSBJDYZZE_DYDJID,XLXSBJDYZZE_YZID as YZID,XLXSBJDYZZE_YZZ as YZZ,"); + SQL.Add(" XLXSBJDYZZE_ZXJMXX,XLXSBJDYZZE_ZXJMSX,XLXSBJDYZZE_BJSLXX,XLXSBJDYZZE_BJSLSX"); + SQL.Add(" from XLXSBJDYZZE"); + SQL.Add(" where exists(select 1 from XLXSTZYZ where XLXSTZYZ_MXBH='BJD' and XLXSTZYZ_TJYS='E' and XLXSTZYZ_JGBID=XLXSBJDYZZE_JGBID and XLXSTZYZ_YZID=XLXSBJDYZZE_YZID ) "); + SQL.Add(string.Format(" and exists(select 1 from XLXSBJFLYZ where XLXSBJFLYZ_BJFLID='{0}' and XLXSBJFLYZ_YZID=XLXSBJDYZZE_YZID)", sBJFLID)); + SQL.Add(string.Format(" and XLXSBJDYZZE_YZID='{0}'", sYZID)); + SQL.Add(" and XLXSBJDYZZE_XLXHID<>' ' and XLXSBJDYZZE_DYDJID=' '"); + SQL.Add(" ) b on b.XLXSBJDYZZE_XLXHID = XLXHID "); + SQL.Add(" and b.XLXSBJDYZZE_ZXJMXX<=isnull(XLDTJMZHB_DTJM1,0) and ((b.XLXSBJDYZZE_ZXJMSX<>0 and b.XLXSBJDYZZE_ZXJMSX>=isnull(XLDTJMZHB_DTJM1,0)) or b.XLXSBJDYZZE_ZXJMSX=0) "); + SQL.Add(" and b.XLXSBJDYZZE_BJSLXX<=BJD.sumBJSL"); + SQL.Add(" and ((b.XLXSBJDYZZE_BJSLSX<>0 and b.XLXSBJDYZZE_BJSLSX>BJD.sumBJSL) or b.XLXSBJDYZZE_BJSLSX=0) "); + SQL.Add(" left join"); + SQL.Add(" ("); + SQL.Add(" select XLXSBJDYZZE_XLXHID,XLXSBJDYZZE_DYDJID,XLXSBJDYZZE_YZID as YZID,XLXSBJDYZZE_YZZ as YZZ,"); + SQL.Add(" XLXSBJDYZZE_ZXJMXX,XLXSBJDYZZE_ZXJMSX,XLXSBJDYZZE_BJSLXX,XLXSBJDYZZE_BJSLSX"); + SQL.Add(" from XLXSBJDYZZE"); + SQL.Add(" where exists(select 1 from XLXSTZYZ where XLXSTZYZ_MXBH='BJD' and XLXSTZYZ_TJYS='E' and XLXSTZYZ_JGBID=XLXSBJDYZZE_JGBID and XLXSTZYZ_YZID=XLXSBJDYZZE_YZID ) "); + SQL.Add(string.Format(" and exists(select 1 from XLXSBJFLYZ where XLXSBJFLYZ_BJFLID='{0}' and XLXSBJFLYZ_YZID=XLXSBJDYZZE_YZID)", sBJFLID)); + SQL.Add(string.Format(" and XLXSBJDYZZE_YZID='{0}'", sYZID)); + SQL.Add(" and XLXSBJDYZZE_XLXHID<>' ' and XLXSBJDYZZE_DYDJID<>' '"); + SQL.Add(" ) c on c.XLXSBJDYZZE_XLXHID=XLXHID and c.XLXSBJDYZZE_DYDJID = DYDJID"); + SQL.Add(" and c.XLXSBJDYZZE_ZXJMXX<=isnull(XLDTJMZHB_DTJM1,0) and ((c.XLXSBJDYZZE_ZXJMSX<>0 and c.XLXSBJDYZZE_ZXJMSX>=isnull(XLDTJMZHB_DTJM1,0)) or c.XLXSBJDYZZE_ZXJMSX=0) "); + SQL.Add(" and c.XLXSBJDYZZE_BJSLXX<=BJD.sumBJSL"); + SQL.Add(" and ((c.XLXSBJDYZZE_BJSLSX<>0 and c.XLXSBJDYZZE_BJSLSX>BJD.sumBJSL) or c.XLXSBJDYZZE_BJSLSX=0)"); + SQL.Add(string.Format(" where tmp.XLXSBJDMX_BJDID='{0}'", sBJDID)); + SQL.Add(" and (case when isnull(c.YZID,' ')<>' ' then isnull(c.YZZ,0) when isnull(b.YZID,' ')<>' ' then isnull(b.YZZ,0) when isnull(a.YZID,' ')<>' ' then isnull(a.YZZ,0)"); + SQL.Add(" else 0.0 end)"); + SQL.Add(string.Format("*(case when isnull(XLXSBJDYZZEBSY1_CPYT, ' ')=' ' then 1.0 else 0.0 end)*(case when isnull(XLXSBJDYZZEBSY2_XLJBXHID, ' ')=' ' then 1.0 else 0.0 end)<>XLXSBJDYZZ0_YZZ{0}", sYZID.Replace("BJ", ""))); + SQL.Add(" and BJD.sumYZZ > 0 "); + } + else if (sTJYS.Equals("G")) + { + if (useFor.Equals("exists")) + { + SQL.Add(" select top 1 tmp.XLXSBJDMX_XH"); + } + else if (useFor.Equals("selectBJDXH")) + { + SQL.Add(" select tmp.XLXSBJDMX_XH as BJDXH,"); + SQL.Add(" (case when isnull(b.YZID,' ')<>' ' then isnull(b.YZZ,0) when isnull(a.YZID,' ')<>' ' then isnull(a.YZZ,0)"); + SQL.Add(" else 0.0 end) as YZZ" ); + } + else if (useFor.Equals("selectBJCP")) + {//研发自测:王威 2025/09/12 01:21:15 + SQL.Add(" select distinct upper(tmp.XLXSBJDMX_XLXHID) as XLXHID,tmp.XLXSBJDMX_XLGGID as XLGGID,tmp.XLXSBJDMX_XLBZID as XLBZID,isnull(tmp.XLXSBJDMX_DYDJID,' ') as DYDJID,' ' as XLXSBJDMX_XLYSID,"); + for (int k = 1; k <= 20; k++) + { + if (sYZID.Equals("BJ" + k.ToString().PadLeft(2, '0'))) + { + SQL.Add(" (case when isnull(b.YZID,' ')<>' ' then isnull(b.YZZ,0) when isnull(a.YZID,' ')<>' ' then isnull(a.YZZ,0)"); + SQL.Add(" else 0.0 end) "); + SQL.Add(string.Format(" as YZZ{0},", k.ToString().PadLeft(2, '0'))); + } + else + SQL.Add(string.Format(" 0.0 as YZZ{0},", k.ToString().PadLeft(2, '0'))); + } + SQL.Add(string.Format(" BJD.sumBJSL,'{0}' as JLDW,'{1}' as YZID ", sBJU003, sYZID)); + } + SQL.Add(" from XLXSBJDMX tmp"); + SQL.Add(" left join XLXSBJDYZZ0 on XLXSBJDYZZ0_BJDID=tmp.XLXSBJDMX_BJDID and XLXSBJDYZZ0_XH=tmp.XLXSBJDMX_XH"); + SQL.Add(" left join "); + SQL.Add(" (select XLXSBJDMX_BJDID as BJDID,upper(XLXSBJDMX_XLXHID)as XLXHID,XLXSBJDMX_XLGGID as XLGGID,XLXSBJDMX_XLBZID as XLBZID,isnull(XLXSBJDMX_DYDJID,' ') as DYDJID,"); + if (sBJU003JSDW.Equals("M")) + { + SQL.Add(" sum(case when XLXSBJDMX_JLDW in('Km','千米')then 1000*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when XLXSBJDMX_JLDW='{0}' then {1}*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end)as sumBJSL"); + } + else if (sBJU003JSDW.Equals("Km")) + { + SQL.Add(" sum(case when XLXSBJDMX_JLDW in('M','米')then 0.001*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when XLXSBJDMX_JLDW='{0}' then 0.001*{1}*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end)as sumBJSL"); + } + //取报价单明细因子值之和 + SQL.Add(string.Format(" ,sum(XLXSBJDYZZ0_YZZ{0}) as sumYZZ", sYZID.Replace("BJ", ""))); + SQL.Add(" from XLXSBJDMX"); + //关联报价单明细因子值 + SQL.Add(" left join XLXSBJDYZZ0 on XLXSBJDYZZ0_BJDID= XLXSBJDMX_BJDID and XLXSBJDYZZ0_XH= XLXSBJDMX_XH "); + SQL.Add(string.Format(" where XLXSBJDMX_BJDID='{0}'", sBJDID)); + SQL.Add(" and (XLXSBJDMX_JLDW in('Km','M','千米','米')"); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" or XLXSBJDMX_JLDW='{0}'", sKey)); + } + SQL.Add(" )"); + SQL.Add(" group by XLXSBJDMX_BJDID,upper(XLXSBJDMX_XLXHID),XLXSBJDMX_XLGGID,XLXSBJDMX_XLBZID,isnull(XLXSBJDMX_DYDJID,' ')"); + SQL.Add(" )BJD on BJD.XLXHID=upper(tmp.XLXSBJDMX_XLXHID) and BJD.XLGGID=tmp.XLXSBJDMX_XLGGID and BJD.XLBZID=tmp.XLXSBJDMX_XLBZID and BJD.DYDJID=isnull(tmp.XLXSBJDMX_DYDJID,' ')"); + SQL.Add(" left join XLXHB on XLXHB_XLXHID=BJD.XLXHID "); + SQL.Add(" left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSBJDMX_XLGGID "); + SQL.Add(" left join XLGGB on XLGGB_XLGGID = XLXSBJXLGGTHB_XLGGIDCH and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); + SQL.Add(" left join XLDTJMZHB on XLDTJMZHB_DTJMZHID=XLGGB_DTJMZHID "); + SQL.Add(" left join"); + SQL.Add(" ("); + SQL.Add(" select XLXSBJDYZZG_DTCLID,XLXSBJDYZZG_XXJGID,XLXSBJDYZZG_DYDJID,XLXSBJDYZZG_YZID as YZID,XLXSBJDYZZG_YZZ as YZZ,"); + SQL.Add(" XLXSBJDYZZG_ZXJMXX,XLXSBJDYZZG_ZXJMSX,XLXSBJDYZZG_BJSLXX,XLXSBJDYZZG_BJSLSX"); + SQL.Add(" from XLXSBJDYZZG"); + SQL.Add(" where exists(select 1 from XLXSTZYZ where XLXSTZYZ_MXBH='BJD' and XLXSTZYZ_TJYS='G' and XLXSTZYZ_JGBID=XLXSBJDYZZG_JGBID and XLXSTZYZ_YZID=XLXSBJDYZZG_YZID ) "); + SQL.Add(string.Format(" and exists(select 1 from XLXSBJFLYZ where XLXSBJFLYZ_BJFLID='{0}' and XLXSBJFLYZ_YZID=XLXSBJDYZZG_YZID)", sBJFLID)); + SQL.Add(string.Format(" and XLXSBJDYZZG_YZID='{0}'", sYZID)); + SQL.Add(" and XLXSBJDYZZG_DTCLID=' ' "); + SQL.Add(" ) a on "); + SQL.Add(" a.XLXSBJDYZZG_ZXJMXX<=isnull(XLDTJMZHB_DTJM1,0) and ((a.XLXSBJDYZZG_ZXJMSX<>0 and a.XLXSBJDYZZG_ZXJMSX>=isnull(XLDTJMZHB_DTJM1,0)) or a.XLXSBJDYZZG_ZXJMSX=0) "); + SQL.Add(" and a.XLXSBJDYZZG_BJSLXX<=BJD.sumBJSL"); + SQL.Add(" and ((a.XLXSBJDYZZG_BJSLSX<>0 and a.XLXSBJDYZZG_BJSLSX>BJD.sumBJSL) or a.XLXSBJDYZZG_BJSLSX=0) and a.XLXSBJDYZZG_DYDJID=isnull(XLXSBJDMX_DYDJID,' ') and a.XLXSBJDYZZG_XXJGID=XLGGB_XXJGID "); + SQL.Add(" left join"); + SQL.Add(" ("); + SQL.Add(" select XLXSBJDYZZG_DTCLID,XLXSBJDYZZG_XXJGID,XLXSBJDYZZG_DYDJID,XLXSBJDYZZG_YZID as YZID,XLXSBJDYZZG_YZZ as YZZ,"); + SQL.Add(" XLXSBJDYZZG_ZXJMXX,XLXSBJDYZZG_ZXJMSX,XLXSBJDYZZG_BJSLXX,XLXSBJDYZZG_BJSLSX"); + SQL.Add(" from XLXSBJDYZZG"); + SQL.Add(" where exists(select 1 from XLXSTZYZ where XLXSTZYZ_MXBH='BJD' and XLXSTZYZ_TJYS='G' and XLXSTZYZ_JGBID=XLXSBJDYZZG_JGBID and XLXSTZYZ_YZID=XLXSBJDYZZG_YZID ) "); + SQL.Add(string.Format(" and exists(select 1 from XLXSBJFLYZ where XLXSBJFLYZ_BJFLID='{0}' and XLXSBJFLYZ_YZID=XLXSBJDYZZG_YZID)", sBJFLID)); + SQL.Add(string.Format(" and XLXSBJDYZZG_YZID='{0}'", sYZID)); + SQL.Add(" and XLXSBJDYZZG_DTCLID<>' ' "); + SQL.Add(" ) b on b.XLXSBJDYZZG_DTCLID=XLXHB_DTCLID and "); + SQL.Add(" b.XLXSBJDYZZG_ZXJMXX<=isnull(XLDTJMZHB_DTJM1,0) and ((b.XLXSBJDYZZG_ZXJMSX<>0 and b.XLXSBJDYZZG_ZXJMSX>=isnull(XLDTJMZHB_DTJM1,0)) or b.XLXSBJDYZZG_ZXJMSX=0) "); + SQL.Add(" and b.XLXSBJDYZZG_BJSLXX<=BJD.sumBJSL"); + SQL.Add(" and ((b.XLXSBJDYZZG_BJSLSX<>0 and b.XLXSBJDYZZG_BJSLSX>BJD.sumBJSL) or b.XLXSBJDYZZG_BJSLSX=0) and b.XLXSBJDYZZG_DYDJID=isnull(XLXSBJDMX_DYDJID,' ') and b.XLXSBJDYZZG_XXJGID=XLGGB_XXJGID "); + SQL.Add(string.Format(" where tmp.XLXSBJDMX_BJDID='{0}'", sBJDID)); + SQL.Add(" and (case when isnull(b.YZID,' ')<>' ' then isnull(b.YZZ,0) when isnull(a.YZID,' ')<>' ' then isnull(a.YZZ,0)"); + SQL.Add(" else 0.0 end)"); + SQL.Add(string.Format(" <>XLXSBJDYZZ0_YZZ{0}", sYZID.Replace("BJ", ""))); + SQL.Add(" and BJD.sumYZZ > 0 "); + } + else if (sTJYS.Equals("F")) + { + if (useFor.Equals("exists")) + { + SQL.Add(" select top 1 tmp.XLXSBJDMX_XH"); + } + else if (useFor.Equals("selectBJDXH")) + { + SQL.Add(" select tmp.XLXSBJDMX_XH as BJDXH,tmp.XLXSBJDMX_JLDW AS XLXSBJDMX_JLDW,"); + SQL.Add(" (case when isnull(b.YZID,' ')<>' ' then RoundFix(isnull(b.YZZ,0)/BJD.sumBJSL,6) when isnull(a.YZID,' ')<>' ' then RoundFix(isnull(a.YZZ,0)/BJD.sumBJSL,6)"); + SQL.Add(" else 0.0 end) as YZZ"); + } + else if (useFor.Equals("selectBJCP")) + {//研发自测:王威 2025/09/12 01:21:15 + SQL.Add(" select distinct upper(tmp.XLXSBJDMX_XLXHID) as XLXHID,tmp.XLXSBJDMX_XLGGID as XLGGID,tmp.XLXSBJDMX_XLBZID as XLBZID,isnull(tmp.XLXSBJDMX_DYDJID,' ') as DYDJID,' ' as XLXSBJDMX_XLYSID,"); + for (int k = 1; k <= 20; k++) + { + if (sYZID.Equals("BJ" + k.ToString().PadLeft(2, '0'))) + { + SQL.Add(" (case when isnull(b.YZID,' ')<>' ' then RoundFix(isnull(b.YZZ,0)/BJD.sumBJSL,6) when isnull(a.YZID,' ')<>' ' then RoundFix(isnull(a.YZZ,0)/BJD.sumBJSL,6)"); + SQL.Add(string.Format(" else 0.0 end) as YZZ{0},", k.ToString().PadLeft(2, '0'))); + } + else + SQL.Add(string.Format(" 0.0 as YZZ{0},", k.ToString().PadLeft(2, '0'))); + } + SQL.Add(string.Format(" BJD.sumBJSL,'{0}' as JLDW,'{1}' as YZID ", sBJU003, sYZID)); + } + SQL.Add(" from XLXSBJDMX tmp"); + SQL.Add(" left join XLXSBJDYZZ0 on XLXSBJDYZZ0_BJDID=tmp.XLXSBJDMX_BJDID and XLXSBJDYZZ0_XH=tmp.XLXSBJDMX_XH"); + SQL.Add(" left join "); + SQL.Add(" (select XLXSBJDMX_BJDID as BJDID,upper(XLXSBJDMX_XLXHID)as XLXHID,XLXSBJDMX_XLGGID as XLGGID,XLXSBJDMX_XLBZID as XLBZID,isnull(XLXSBJDMX_DYDJID,' ') as DYDJID,"); + if (sBJU003JSDW.Equals("M")) + { + SQL.Add(" sum(case when XLXSBJDMX_JLDW in('Km','千米')then 1000*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when XLXSBJDMX_JLDW='{0}' then {1}*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end)as sumBJSL"); + } + + else if (sBJU003JSDW.Equals("Km")) + { + SQL.Add(" sum(case when XLXSBJDMX_JLDW in('M','米')then 0.001*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when XLXSBJDMX_JLDW='{0}' then 0.001*{1}*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end)as sumBJSL"); + } + //取报价单明细因子值之和 + SQL.Add(string.Format(" ,sum(XLXSBJDYZZ0_YZZ{0}) as sumYZZ", sYZID.Replace("BJ", ""))); + SQL.Add(" from XLXSBJDMX"); + //关联报价单明细因子值 + SQL.Add(" left join XLXSBJDYZZ0 on XLXSBJDYZZ0_BJDID= XLXSBJDMX_BJDID and XLXSBJDYZZ0_XH= XLXSBJDMX_XH "); + SQL.Add(string.Format(" where XLXSBJDMX_BJDID='{0}'", sBJDID)); + SQL.Add(" and (XLXSBJDMX_JLDW in('Km','M','千米','米')"); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" or XLXSBJDMX_JLDW='{0}'", sKey)); + } + SQL.Add(" )"); + SQL.Add(" and XLXSBJDMX_BJSL<>0");//因素F需要限制报价数量不为0 + SQL.Add(" group by XLXSBJDMX_BJDID,upper(XLXSBJDMX_XLXHID),XLXSBJDMX_XLGGID,XLXSBJDMX_XLBZID,isnull(XLXSBJDMX_DYDJID,' ')"); + SQL.Add(" )BJD on BJD.XLXHID=upper(tmp.XLXSBJDMX_XLXHID) and BJD.XLGGID=tmp.XLXSBJDMX_XLGGID and BJD.XLBZID=tmp.XLXSBJDMX_XLBZID and BJD.DYDJID=isnull(tmp.XLXSBJDMX_DYDJID,' ')"); + SQL.Add(" left join XLXHB on XLXHB_XLXHID=tmp.XLXSBJDMX_XLXHID "); + SQL.Add(" left join XLGGB on XLGGB_XLGGID = replace(tmp.XLXSBJDMX_XLGGID , '*','×') and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); + SQL.Add(" left join"); + SQL.Add(" ("); + SQL.Add(" select XLXSBJDYZZF_DYDJID,XLXSBJDYZZF_YZID as YZID,XLXSBJDYZZF_YZZ as YZZ,"); + SQL.Add(" XLXSBJDYZZF_XXJGID,XLXSBJDYZZF_DTCLID,XLXSBJDYZZF_BJSLXX,XLXSBJDYZZF_BJSLSX"); + SQL.Add(" from XLXSBJDYZZF"); + SQL.Add(" where exists(select 1 from XLXSTZYZ where XLXSTZYZ_MXBH='BJD' and XLXSTZYZ_TJYS='F' and XLXSTZYZ_JGBID=XLXSBJDYZZF_JGBID and XLXSTZYZ_YZID=XLXSBJDYZZF_YZID ) "); + SQL.Add(string.Format(" and exists(select 1 from XLXSBJFLYZ where XLXSBJFLYZ_BJFLID='{0}' and XLXSBJFLYZ_YZID=XLXSBJDYZZF_YZID)", sBJFLID)); + SQL.Add(string.Format(" and XLXSBJDYZZF_YZID='{0}'", sYZID)); + SQL.Add(" and XLXSBJDYZZF_XXJGID=' ' and XLXSBJDYZZF_DYDJID<>' '"); + SQL.Add(" ) a on a.XLXSBJDYZZF_DYDJID = DYDJID AND a.XLXSBJDYZZF_DTCLID = XLXHB_DTCLID "); + SQL.Add(" and a.XLXSBJDYZZF_BJSLXX<=BJD.sumBJSL"); + SQL.Add(" and ((a.XLXSBJDYZZF_BJSLSX<>0 and a.XLXSBJDYZZF_BJSLSX>BJD.sumBJSL) or a.XLXSBJDYZZF_BJSLSX=0) "); + SQL.Add(" left join"); + SQL.Add(" ("); + SQL.Add(" select XLXSBJDYZZF_DYDJID,XLXSBJDYZZF_YZID as YZID,XLXSBJDYZZF_YZZ as YZZ,"); + SQL.Add(" XLXSBJDYZZF_XXJGID,XLXSBJDYZZF_DTCLID,XLXSBJDYZZF_BJSLXX,XLXSBJDYZZF_BJSLSX"); + SQL.Add(" from XLXSBJDYZZF"); + SQL.Add(" where exists(select 1 from XLXSTZYZ where XLXSTZYZ_MXBH='BJD' and XLXSTZYZ_TJYS='F' and XLXSTZYZ_JGBID=XLXSBJDYZZF_JGBID and XLXSTZYZ_YZID=XLXSBJDYZZF_YZID ) "); + SQL.Add(string.Format(" and exists(select 1 from XLXSBJFLYZ where XLXSBJFLYZ_BJFLID='{0}' and XLXSBJFLYZ_YZID=XLXSBJDYZZF_YZID)", sBJFLID)); + SQL.Add(string.Format(" and XLXSBJDYZZF_YZID='{0}'", sYZID)); + SQL.Add(" and XLXSBJDYZZF_XXJGID<>' ' and XLXSBJDYZZF_DYDJID<>' '");//需要查芯线结构ID + SQL.Add(" ) b on b.XLXSBJDYZZF_XXJGID=XLGGB_XXJGID and b.XLXSBJDYZZF_DYDJID = DYDJID AND b.XLXSBJDYZZF_DTCLID = XLXHB_DTCLID "); + SQL.Add(" and b.XLXSBJDYZZF_BJSLXX<=BJD.sumBJSL"); + SQL.Add(" and ((b.XLXSBJDYZZF_BJSLSX<>0 and b.XLXSBJDYZZF_BJSLSX>BJD.sumBJSL) or b.XLXSBJDYZZF_BJSLSX=0)"); + SQL.Add(string.Format(" where tmp.XLXSBJDMX_BJDID='{0}'", sBJDID)); + SQL.Add(" and (case when isnull(b.YZID,' ')<>' ' then RoundFix(isnull(b.YZZ,0)/sumBJSL,6) when isnull(a.YZID,' ')<>' ' then RoundFix(isnull(a.YZZ,0)/sumBJSL,6) "); + if (sBJU003JSDW.Equals("M")) + { + SQL.Add(string.Format(" else 0.0 end)<> (case when tmp.XLXSBJDMX_JLDW in('Km','千米') then RoundFix(0.001*XLXSBJDYZZ0_YZZ{0},6) ", sYZID.Replace("BJ", ""))); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when tmp.XLXSBJDMX_JLDW='{0}' then RoundFix(XLXSBJDYZZ0_YZZ{2}/{1},6) ", sKey, dicLenJLDWTD[sKey], sYZID.Replace("BJ", ""))); + } + SQL.Add(string.Format(" else XLXSBJDYZZ0_YZZ{0} end) ", sYZID.Replace("BJ", ""))); + } + + else if (sBJU003JSDW.Equals("Km")) + { + SQL.Add(string.Format(" else 0.0 end)<> (case when tmp.XLXSBJDMX_JLDW in('M','米') then RoundFix(1000*XLXSBJDYZZ0_YZZ{0},6) ", sYZID.Replace("BJ", ""))); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when tmp.XLXSBJDMX_JLDW='{0}' then RoundFix(XLXSBJDYZZ0_YZZ{2}*{1},6) ", sKey, dicLenJLDWTD[sKey], sYZID.Replace("BJ", ""))); + } + SQL.Add(string.Format(" else XLXSBJDYZZ0_YZZ{0} end) ", sYZID.Replace("BJ", ""))); + } + SQL.Add(" and BJD.sumYZZ > 0 "); + } + else if (sTJYS.Equals("H")) + { + if (useFor.Equals("exists")) + { + SQL.Add(" select top 1 tmp.XLXSBJDMX_XH"); + } + else if (useFor.Equals("selectBJDXH")) + {//研发自测:王威 2025/09/12 01:21:15 + SQL.Add(" select tmp.XLXSBJDMX_XH as BJDXH,tmp.XLXSBJDMX_JLDW AS XLXSBJDMX_JLDW,"); + SQL.Add(" (case when isnull(a.YZID,' ')<>' ' then RoundFix(isnull(a.YZZ,0)/BJD.sumBJSL,6) when isnull(b.YZID,' ')<>' ' then RoundFix(isnull(b.YZZ,0)/BJD.sumBJSL,6) "); + SQL.Add(" when isnull(c.YZID,' ')<>' ' then RoundFix(isnull(c.YZZ,0)/BJD.sumBJSL,6) when isnull(d.YZID,' ')<>' ' then RoundFix(isnull(d.YZZ,0)/BJD.sumBJSL,6) "); + SQL.Add(" else 0.0 end) as YZZ"); + } + else if (useFor.Equals("selectBJCP")) + { + SQL.Add(" select distinct upper(tmp.XLXSBJDMX_XLXHID) as XLXHID,tmp.XLXSBJDMX_XLGGID as XLGGID,tmp.XLXSBJDMX_XLBZID as XLBZID,isnull(tmp.XLXSBJDMX_DYDJID,' ') as DYDJID,XLXSBJDMX_XLYSID,"); + for (int k = 1; k <= 20; k++) + { + if (sYZID.Equals("BJ" + k.ToString().PadLeft(2, '0'))) + { + SQL.Add(" (case when isnull(a.YZID,' ')<>' ' then RoundFix(isnull(a.YZZ,0)/BJD.sumBJSL,6) when isnull(b.YZID,' ')<>' ' then RoundFix(isnull(b.YZZ,0)/BJD.sumBJSL,6) "); + SQL.Add(" when isnull(c.YZID,' ')<>' ' then RoundFix(isnull(c.YZZ,0)/BJD.sumBJSL,6) when isnull(d.YZID,' ')<>' ' then RoundFix(isnull(d.YZZ,0)/BJD.sumBJSL,6) "); + SQL.Add(string.Format(" else 0.0 end) as YZZ{0},", k.ToString().PadLeft(2, '0'))); + } + else + SQL.Add(string.Format(" 0.0 as YZZ{0},", k.ToString().PadLeft(2, '0'))); + } + SQL.Add(string.Format(" BJD.sumBJSL,'{0}' as JLDW,'{1}' as YZID ", sBJU003, sYZID)); + } + SQL.Add(" from XLXSBJDMX tmp"); + SQL.Add(" left join XLXSBJDYZZ0 on XLXSBJDYZZ0_BJDID=tmp.XLXSBJDMX_BJDID and XLXSBJDYZZ0_XH=tmp.XLXSBJDMX_XH"); + SQL.Add(" left join "); + SQL.Add(" (select XLXSBJDMX_BJDID as BJDID,upper(XLXSBJDMX_XLXHID)as XLXHID,XLXSBJDMX_XLGGID as XLGGID,XLXSBJDMX_XLBZID as XLBZID,isnull(XLXSBJDMX_DYDJID,' ') as DYDJID,XLXSBJDMX_XLYSID as XLYSID,"); + if (sBJU003JSDW.Equals("M")) + { + SQL.Add(" sum(case when XLXSBJDMX_JLDW in('Km','千米')then 1000*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when XLXSBJDMX_JLDW='{0}' then {1}*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end)as sumBJSL"); + } + + else if (sBJU003JSDW.Equals("Km")) + { + SQL.Add(" sum(case when XLXSBJDMX_JLDW in('M','米')then 0.001*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when XLXSBJDMX_JLDW='{0}' then 0.001*{1}*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end)as sumBJSL"); + } + //取报价单明细因子值之和 + SQL.Add(string.Format(" ,sum(XLXSBJDYZZ0_YZZ{0}) as sumYZZ", sYZID.Replace("BJ", ""))); + SQL.Add(" from XLXSBJDMX"); + //关联报价单明细因子值 + SQL.Add(" left join XLXSBJDYZZ0 on XLXSBJDYZZ0_BJDID= XLXSBJDMX_BJDID and XLXSBJDYZZ0_XH= XLXSBJDMX_XH "); + SQL.Add(string.Format(" where XLXSBJDMX_BJDID='{0}'", sBJDID)); + SQL.Add(" and (XLXSBJDMX_JLDW in('Km','M','千米','米')"); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" or XLXSBJDMX_JLDW='{0}'", sKey)); + } + SQL.Add(" )"); + SQL.Add(" and XLXSBJDMX_BJSL<>0");//因素H需要限制报价数量不为0 + SQL.Add(" group by XLXSBJDMX_BJDID,upper(XLXSBJDMX_XLXHID),XLXSBJDMX_XLGGID,XLXSBJDMX_XLBZID,isnull(XLXSBJDMX_DYDJID,' '),XLXSBJDMX_XLYSID"); + SQL.Add(" )BJD on BJD.XLXHID=upper(tmp.XLXSBJDMX_XLXHID) and BJD.XLGGID=tmp.XLXSBJDMX_XLGGID and BJD.XLBZID=tmp.XLXSBJDMX_XLBZID and BJD.DYDJID=isnull(tmp.XLXSBJDMX_DYDJID,' ') and BJD.XLYSID=tmp.XLXSBJDMX_XLYSID "); + SQL.Add(" left join XLXHB on XLXHB_XLXHID=tmp.XLXSBJDMX_XLXHID "); + SQL.Add(" left join XLGGB on XLGGB_XLGGID = replace(tmp.XLXSBJDMX_XLGGID , '*','×') and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); + SQL.Add(" left join XLDTJMZHB on XLDTJMZHB_DTJMZHID=XLGGB_DTJMZHID "); + SQL.Add(" left join"); + SQL.Add(" ("); + SQL.Add(" select XLXSBJDYZZH_XLXHID,XLXSBJDYZZH_DYDJID,XLXSBJDYZZH_XLYSID,XLXSBJDYZZH_YZID as YZID,XLXSBJDYZZH_YZZ as YZZ,"); + SQL.Add(" XLXSBJDYZZH_ZXJMXX,XLXSBJDYZZH_ZXJMSX,XLXSBJDYZZH_BJSLXX,XLXSBJDYZZH_BJSLSX"); + SQL.Add(" from XLXSBJDYZZH"); + SQL.Add(" where exists(select 1 from XLXSTZYZ where XLXSTZYZ_MXBH='BJD' and XLXSTZYZ_TJYS='H' and XLXSTZYZ_JGBID=XLXSBJDYZZH_JGBID and XLXSTZYZ_YZID=XLXSBJDYZZH_YZID ) "); + SQL.Add(string.Format(" and exists(select 1 from XLXSBJFLYZ where XLXSBJFLYZ_BJFLID='{0}' and XLXSBJFLYZ_YZID=XLXSBJDYZZH_YZID)", sBJFLID)); + SQL.Add(string.Format(" and XLXSBJDYZZH_YZID='{0}'", sYZID)); + SQL.Add(" and isnull(XLXSBJDYZZH_DYDJID,' ') <> ' ' and isnull(XLXSBJDYZZH_XLYSID,' ') <> ' ' "); + SQL.Add(" ) a on a.XLXSBJDYZZH_XLXHID = XLXHID and a.XLXSBJDYZZH_DYDJID = DYDJID and a.XLXSBJDYZZH_XLYSID = XLYSID "); + SQL.Add(" and a.XLXSBJDYZZH_ZXJMXX<=isnull(XLDTJMZHB_DTJM1,0) and ((a.XLXSBJDYZZH_ZXJMSX<>0 and a.XLXSBJDYZZH_ZXJMSX>=isnull(XLDTJMZHB_DTJM1,0)) or a.XLXSBJDYZZH_ZXJMSX=0) "); + SQL.Add(" and a.XLXSBJDYZZH_BJSLXX<=BJD.sumBJSL"); + SQL.Add(" and ((a.XLXSBJDYZZH_BJSLSX<>0 and a.XLXSBJDYZZH_BJSLSX>BJD.sumBJSL) or a.XLXSBJDYZZH_BJSLSX=0) "); + SQL.Add(" left join"); + SQL.Add(" ("); + SQL.Add(" select XLXSBJDYZZH_XLXHID,XLXSBJDYZZH_DYDJID,XLXSBJDYZZH_XLYSID,XLXSBJDYZZH_YZID as YZID,XLXSBJDYZZH_YZZ as YZZ,"); + SQL.Add(" XLXSBJDYZZH_ZXJMXX,XLXSBJDYZZH_ZXJMSX,XLXSBJDYZZH_BJSLXX,XLXSBJDYZZH_BJSLSX"); + SQL.Add(" from XLXSBJDYZZH"); + SQL.Add(" where exists(select 1 from XLXSTZYZ where XLXSTZYZ_MXBH='BJD' and XLXSTZYZ_TJYS='H' and XLXSTZYZ_JGBID=XLXSBJDYZZH_JGBID and XLXSTZYZ_YZID=XLXSBJDYZZH_YZID ) "); + SQL.Add(string.Format(" and exists(select 1 from XLXSBJFLYZ where XLXSBJFLYZ_BJFLID='{0}' and XLXSBJFLYZ_YZID=XLXSBJDYZZH_YZID)", sBJFLID)); + SQL.Add(string.Format(" and XLXSBJDYZZH_YZID='{0}'", sYZID)); + SQL.Add(" and isnull(XLXSBJDYZZH_DYDJID,' ') = ' ' and isnull(XLXSBJDYZZH_XLYSID,' ') <> ' ' "); + SQL.Add(" ) b on b.XLXSBJDYZZH_XLXHID = XLXHID and b.XLXSBJDYZZH_XLYSID = XLYSID "); + SQL.Add(" and b.XLXSBJDYZZH_ZXJMXX<=isnull(XLDTJMZHB_DTJM1,0) and ((b.XLXSBJDYZZH_ZXJMSX<>0 and b.XLXSBJDYZZH_ZXJMSX>=isnull(XLDTJMZHB_DTJM1,0)) or b.XLXSBJDYZZH_ZXJMSX=0) "); + SQL.Add(" and b.XLXSBJDYZZH_BJSLXX<=BJD.sumBJSL"); + SQL.Add(" and ((b.XLXSBJDYZZH_BJSLSX<>0 and b.XLXSBJDYZZH_BJSLSX>BJD.sumBJSL) or b.XLXSBJDYZZH_BJSLSX=0) "); + SQL.Add(" left join"); + SQL.Add(" ("); + SQL.Add(" select XLXSBJDYZZH_XLXHID,XLXSBJDYZZH_DYDJID,XLXSBJDYZZH_XLYSID,XLXSBJDYZZH_YZID as YZID,XLXSBJDYZZH_YZZ as YZZ,"); + SQL.Add(" XLXSBJDYZZH_ZXJMXX,XLXSBJDYZZH_ZXJMSX,XLXSBJDYZZH_BJSLXX,XLXSBJDYZZH_BJSLSX"); + SQL.Add(" from XLXSBJDYZZH"); + SQL.Add(" where exists(select 1 from XLXSTZYZ where XLXSTZYZ_MXBH='BJD' and XLXSTZYZ_TJYS='H' and XLXSTZYZ_JGBID=XLXSBJDYZZH_JGBID and XLXSTZYZ_YZID=XLXSBJDYZZH_YZID ) "); + SQL.Add(string.Format(" and exists(select 1 from XLXSBJFLYZ where XLXSBJFLYZ_BJFLID='{0}' and XLXSBJFLYZ_YZID=XLXSBJDYZZH_YZID)", sBJFLID)); + SQL.Add(string.Format(" and XLXSBJDYZZH_YZID='{0}'", sYZID)); + SQL.Add(" and isnull(XLXSBJDYZZH_DYDJID,' ') <> ' ' and isnull(XLXSBJDYZZH_XLYSID,' ') = ' ' "); + SQL.Add(" ) c on c.XLXSBJDYZZH_XLXHID = XLXHID and c.XLXSBJDYZZH_DYDJID = DYDJID "); + SQL.Add(" and c.XLXSBJDYZZH_ZXJMXX<=isnull(XLDTJMZHB_DTJM1,0) and ((c.XLXSBJDYZZH_ZXJMSX<>0 and c.XLXSBJDYZZH_ZXJMSX>=isnull(XLDTJMZHB_DTJM1,0)) or c.XLXSBJDYZZH_ZXJMSX=0) "); + SQL.Add(" and c.XLXSBJDYZZH_BJSLXX<=BJD.sumBJSL"); + SQL.Add(" and ((c.XLXSBJDYZZH_BJSLSX<>0 and c.XLXSBJDYZZH_BJSLSX>BJD.sumBJSL) or c.XLXSBJDYZZH_BJSLSX=0) "); + SQL.Add(" left join"); + SQL.Add(" ("); + SQL.Add(" select XLXSBJDYZZH_XLXHID,XLXSBJDYZZH_DYDJID,XLXSBJDYZZH_XLYSID,XLXSBJDYZZH_YZID as YZID,XLXSBJDYZZH_YZZ as YZZ,"); + SQL.Add(" XLXSBJDYZZH_ZXJMXX,XLXSBJDYZZH_ZXJMSX,XLXSBJDYZZH_BJSLXX,XLXSBJDYZZH_BJSLSX"); + SQL.Add(" from XLXSBJDYZZH"); + SQL.Add(" where exists(select 1 from XLXSTZYZ where XLXSTZYZ_MXBH='BJD' and XLXSTZYZ_TJYS='H' and XLXSTZYZ_JGBID=XLXSBJDYZZH_JGBID and XLXSTZYZ_YZID=XLXSBJDYZZH_YZID ) "); + SQL.Add(string.Format(" and exists(select 1 from XLXSBJFLYZ where XLXSBJFLYZ_BJFLID='{0}' and XLXSBJFLYZ_YZID=XLXSBJDYZZH_YZID)", sBJFLID)); + SQL.Add(string.Format(" and XLXSBJDYZZH_YZID='{0}'", sYZID)); + SQL.Add(" and isnull(XLXSBJDYZZH_DYDJID,' ') = ' ' and isnull(XLXSBJDYZZH_XLYSID,' ') = ' ' "); + SQL.Add(" ) d on d.XLXSBJDYZZH_XLXHID = XLXHID "); + SQL.Add(" and d.XLXSBJDYZZH_ZXJMXX<=isnull(XLDTJMZHB_DTJM1,0) and ((d.XLXSBJDYZZH_ZXJMSX<>0 and d.XLXSBJDYZZH_ZXJMSX>=isnull(XLDTJMZHB_DTJM1,0)) or d.XLXSBJDYZZH_ZXJMSX=0) "); + SQL.Add(" and d.XLXSBJDYZZH_BJSLXX<=BJD.sumBJSL"); + SQL.Add(" and ((d.XLXSBJDYZZH_BJSLSX<>0 and d.XLXSBJDYZZH_BJSLSX>BJD.sumBJSL) or d.XLXSBJDYZZH_BJSLSX=0) "); + SQL.Add(string.Format(" where tmp.XLXSBJDMX_BJDID='{0}'", sBJDID)); + SQL.Add(" and (case when isnull(a.YZID,' ')<>' ' then RoundFix(isnull(a.YZZ,0)/sumBJSL,6) when isnull(b.YZID,' ')<>' ' then RoundFix(isnull(b.YZZ,0)/sumBJSL,6) "); + SQL.Add(" when isnull(d.YZID,' ')<>' ' then RoundFix(isnull(d.YZZ,0)/sumBJSL,6) when isnull(d.YZID,' ')<>' ' then RoundFix(isnull(d.YZZ,0)/sumBJSL,6) "); + if (sBJU003JSDW.Equals("M")) + { + SQL.Add(string.Format(" else 0.0 end)<> (case when tmp.XLXSBJDMX_JLDW in('Km','千米') then RoundFix(0.001*XLXSBJDYZZ0_YZZ{0},6) ", sYZID.Replace("BJ", ""))); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when tmp.XLXSBJDMX_JLDW='{0}' then RoundFix(XLXSBJDYZZ0_YZZ{2}/{1},6) ", sKey, dicLenJLDWTD[sKey], sYZID.Replace("BJ", ""))); + } + SQL.Add(string.Format(" else XLXSBJDYZZ0_YZZ{0} end) ", sYZID.Replace("BJ", ""))); + } + + else if (sBJU003JSDW.Equals("Km")) + { + SQL.Add(string.Format(" else 0.0 end)<> (case when tmp.XLXSBJDMX_JLDW in('M','米') then RoundFix(1000*XLXSBJDYZZ0_YZZ{0},6) ", sYZID.Replace("BJ", ""))); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when tmp.XLXSBJDMX_JLDW='{0}' then RoundFix(XLXSBJDYZZ0_YZZ{2}*{1},6) ", sKey, dicLenJLDWTD[sKey], sYZID.Replace("BJ", ""))); + } + SQL.Add(string.Format(" else XLXSBJDYZZ0_YZZ{0} end) ", sYZID.Replace("BJ", ""))); + } + SQL.Add(" and BJD.sumYZZ > 0 "); + } + } +} + +public class XLBJD_ZDTJYSInfo +{ + + + //1|付款方式 + public static void updBJDYZZ1(TDatabase dberp, TSQL sql, string sPJLX, string sBJFLID, string sBJDID) + { + sql.Clear(); + sql.Add("select XLXSTZYZ_YZID,isnull(XLXSBJDYZZ1_YZZ,0) as YZZ from XLXSTZYZ"); + sql.Add(" left join XLXSBJDYZZ1 on XLXSBJDYZZ1_JGBID=XLXSTZYZ_JGBID and XLXSBJDYZZ1_YZID=XLXSTZYZ_YZID and XLXSBJDYZZ1_PJLX=:pPJLX"); + sql.Add(" where XLXSTZYZ_MXBH='BJD' and XLXSTZYZ_TJYS='1'"); + sql.Add(" and exists(select 1 from XLXSBJFLYZ where XLXSBJFLYZ_BJFLID=:pBJFLID and XLXSBJFLYZ_YZID=XLXSTZYZ_YZID)"); + sql.Add(" order by XLXSTZYZ_XSXH,XLXSTZYZ_YZID"); + sql.ParamByName("pPJLX").Value = sPJLX; + sql.ParamByName("pBJFLID").Value = sBJFLID; + DataSet ds = dberp.OpenDataSet(sql); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + string sYZID = ds.Tables[0].Rows[i]["XLXSTZYZ_YZID"].ToString().Trim(); + string sYZZ = ds.Tables[0].Rows[i]["YZZ"].ToString().Trim(); + + dberp.ExecSQL(string.Format("update XLXSBJDYZZ0 set XLXSBJDYZZ0_YZZ{0}={1} where XLXSBJDYZZ0_BJDID='{2}'", sYZID.Replace("BJ", ""), sYZZ, sBJDID)); + } + } + + + + //8|付款期限 + public static void updBJDYZZ8(TDatabase dberp, TSQL sql, string sFKQXNR, string sBJFLID, string sBJDID) + { + sql.Clear(); + sql.Add("select XLXSTZYZ_YZID,isnull(XLXSBJDYZZ8_YZZ,0) as YZZ from XLXSTZYZ"); + sql.Add(" left join XLXSBJDYZZ8 on XLXSBJDYZZ8_JGBID=XLXSTZYZ_JGBID and XLXSBJDYZZ8_YZID=XLXSTZYZ_YZID and XLXSBJDYZZ8_FKQXNR=:pFKQXNR"); + sql.Add(" where XLXSTZYZ_MXBH='BJD' and XLXSTZYZ_TJYS='8'"); + sql.Add(" and exists(select 1 from XLXSBJFLYZ where XLXSBJFLYZ_BJFLID=:pBJFLID and XLXSBJFLYZ_YZID=XLXSTZYZ_YZID)"); + sql.Add(" order by XLXSTZYZ_XSXH,XLXSTZYZ_YZID"); + sql.ParamByName("pFKQXNR").Value = sFKQXNR; + sql.ParamByName("pBJFLID").Value = sBJFLID; + DataSet ds = dberp.OpenDataSet(sql); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + string sYZID = ds.Tables[0].Rows[i]["XLXSTZYZ_YZID"].ToString().Trim(); + string sYZZ = ds.Tables[0].Rows[i]["YZZ"].ToString().Trim(); + + dberp.ExecSQL(string.Format("update XLXSBJDYZZ0 set XLXSBJDYZZ0_YZZ{0}={1} where XLXSBJDYZZ0_BJDID='{2}'", sYZID.Replace("BJ", ""), sYZZ, sBJDID)); + } + } + + + + //B|销售单位 + public static void updBJDYZZB(TDatabase dberp, TSQL sql, string sSYDWID, string sBJFLID, string sBJDID) + { + sql.Clear(); + sql.Add("select XLXSTZYZ_YZID,isnull(XLXSBJDYZZB_YZZ,0) as YZZ from XLXSTZYZ"); + sql.Add(" left join XLXSBJDYZZB on XLXSBJDYZZB_JGBID=XLXSTZYZ_JGBID and XLXSBJDYZZB_YZID=XLXSTZYZ_YZID and XLXSBJDYZZB_SYDWID=:pSYDWID"); + sql.Add(" where XLXSTZYZ_MXBH='BJD' and XLXSTZYZ_TJYS='B'"); + sql.Add(" and exists(select 1 from XLXSBJFLYZ where XLXSBJFLYZ_BJFLID=:pBJFLID and XLXSBJFLYZ_YZID=XLXSTZYZ_YZID)"); + sql.Add(" order by XLXSTZYZ_XSXH,XLXSTZYZ_YZID"); + sql.ParamByName("pSYDWID").Value = sSYDWID; + sql.ParamByName("pBJFLID").Value = sBJFLID; + DataSet ds = dberp.OpenDataSet(sql); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + string sYZID = ds.Tables[0].Rows[i]["XLXSTZYZ_YZID"].ToString().Trim(); + string sYZZ = ds.Tables[0].Rows[i]["YZZ"].ToString().Trim(); + + dberp.ExecSQL(string.Format("update XLXSBJDYZZ0 set XLXSBJDYZZ0_YZZ{0}={1} where XLXSBJDYZZ0_BJDID='{2}'", sYZID.Replace("BJ", ""), sYZZ, sBJDID)); + } + } +} + +public class XLJGB_CLJGTZList +{ + + + public static void AddXLXSJGBYZZ0(TDatabase dberp, string sMXBH, string sJGBID, string sTJYSList_, string sTJYSList1, string sTJYSList3, string sTJYSList4, string sTJYSList5, string sTJYSList8, string sTJYSList9, bool bInsertXLXSJGBYZZ0, string sJGCZBID, string sJGCZBBBID, double maxXH) + { + CMISproSession tSession = CMISproApp.GetSession(); + TSQL SQL = new TSQL(dberp); + + //插入XLXSJGBMX记录后需要自动补齐XLXSJGBYZZ0记录 + if (bInsertXLXSJGBYZZ0) + { + Mac.MacLog.TraceFormat(String.Format("AddXLXSJGBYZZ0-InsXLXSJGBYZZ0-Begin")); + //如果存在调价因素为空的因子 + if (!sTJYSList_.Trim().Equals("")) + { + string[] sTJYZs = sTJYSList_.Split(','); + + SQL.Clear(); + SQL.Add("insert into XLXSJGBYZZ0(XLXSJGBYZZ0_JGBID,XLXSJGBYZZ0_XH"); + for (int i = 0; i < sTJYZs.Length; i++) + { + SQL.Add(string.Format(",XLXSJGBYZZ0_YZZ{0}", sTJYZs[i].Trim().Replace("JZ", ""))); + } + SQL.Add(") "); + SQL.Add("select XLXSJGBMX_JGBID as JGBID,XLXSJGBMX_XH as XH"); + for (int i = 0; i < sTJYZs.Length; i++) + { + SQL.Add(string.Format(",sum(CASE XLXSTZYZ_YZID WHEN '{0}' THEN XLXSJGBYZZ_YZZ ELSE 0 END) as YZZ{1}", sTJYZs[i].Trim(), sTJYZs[i].Trim().Replace("JZ", ""))); + } + + SQL.Add(" from XLXSJGBMX,XLXSTZYZ,XLXSJGBYZZ "); + SQL.Add("where XLXSJGBMX_JGBID=:pJGBID "); + if (maxXH != 0) + { + SQL.Add(" and XLXSJGBMX_XH > :pmaxXH "); + SQL.ParamByName("pmaxXH").Value = maxXH; + } + SQL.Add("and XLXSTZYZ_MXBH='JZJ' and " + CMISproDataBase.GetWhereEqual("XLXSTZYZ_YZID", sTJYSList_.Trim())); + SQL.Add("and XLXSTZYZ_TJYS=' ' and XLXSJGBYZZ_JGBID=XLXSTZYZ_JGBID and XLXSJGBYZZ_YZID=XLXSTZYZ_YZID "); + SQL.Add("and not exists "); + SQL.Add("( "); + SQL.Add("select 1 "); + SQL.Add("from XLXSJGBYZZ0 "); + SQL.Add("where XLXSJGBYZZ0_JGBID=:pJGBID "); + SQL.Add("and XLXSJGBYZZ0_XH=XLXSJGBMX_XH "); + SQL.Add(") "); + SQL.Add(" group by XLXSJGBMX_JGBID,XLXSJGBMX_XH,XLXSJGBMX_JLDW"); + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + Mac.MacLog.TraceFormat(String.Format("AddXLXSJGBYZZ0-InsXLXSJGBYZZ0-调价因素为空1-end")); + } + else + { + SQL.Clear(); + SQL.Add("insert into XLXSJGBYZZ0(XLXSJGBYZZ0_JGBID,XLXSJGBYZZ0_XH) "); + SQL.Add("select XLXSJGBMX_JGBID as JGBID,XLXSJGBMX_XH as XH"); + SQL.Add(" from XLXSJGBMX "); + SQL.Add("where XLXSJGBMX_JGBID=:pJGBID "); + if (maxXH != 0) + { + SQL.Add(" and XLXSJGBMX_XH > :pmaxXH "); + SQL.ParamByName("pmaxXH").Value = maxXH; + } + SQL.Add("and not exists "); + SQL.Add("( "); + SQL.Add("select 1 "); + SQL.Add("from XLXSJGBYZZ0 "); + SQL.Add("where XLXSJGBYZZ0_JGBID=:pJGBID "); + SQL.Add("and XLXSJGBYZZ0_XH=XLXSJGBMX_XH "); + SQL.Add(") "); + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + Mac.MacLog.TraceFormat(String.Format("AddXLXSJGBYZZ0-InsXLXSJGBYZZ0-调价因素为空2-end")); + } + } + + //先清空TJYS<>' '的调价因子值 + if (!sTJYSList1.Trim().Equals("") || !sTJYSList3.Trim().Equals("") || !sTJYSList4.Trim().Equals("") || !sTJYSList5.Trim().Equals("") || !sTJYSList8.Trim().Equals("") || !sTJYSList9.Trim().Equals("")) + { + Dictionary dicJGBFGQCPYZ = XLBJDInfo.GetJGBFGQCPYZ(sJGBID); + string[] sTJYZ1 = sTJYSList1.Split(','); + string[] sTJYZ3 = sTJYSList3.Split(','); + string[] sTJYZ4 = sTJYSList4.Split(','); + string[] sTJYZ5 = sTJYSList5.Split(','); + string[] sTJYZ8 = sTJYSList8.Split(','); + string[] sTJYZ9 = sTJYSList9.Split(','); + bool bflag = false; + SQL.Clear(); + SQL.Add("update XLXSJGBYZZ0 set "); + if (!sTJYSList1.Trim().Equals("")) + { + for (int i = 0; i < sTJYZ1.Length; i++) + { + int iYZZ = 0; + if (dicJGBFGQCPYZ.ContainsKey(sTJYZ1[i].Trim())) + iYZZ = -9999; + if (i == 0) + SQL.Add(string.Format("XLXSJGBYZZ0_YZZ{0}={1}", sTJYZ1[i].Trim().Replace("JZ", ""), iYZZ)); + else + SQL.Add(string.Format(",XLXSJGBYZZ0_YZZ{0}={1}", sTJYZ1[i].Trim().Replace("JZ", ""), iYZZ)); + bflag = true; + } + } + if (!sTJYSList3.Trim().Equals("")) + { + for (int i = 0; i < sTJYZ3.Length; i++) + { + int iYZZ = 0; + if (dicJGBFGQCPYZ.ContainsKey(sTJYZ3[i].Trim())) + iYZZ = -9999; + if (bflag) + { + SQL.Add(string.Format(",XLXSJGBYZZ0_YZZ{0}={1}", sTJYZ3[i].Trim().Replace("JZ", ""), iYZZ)); + } + else + { + if (i == 0) + SQL.Add(string.Format("XLXSJGBYZZ0_YZZ{0}={1}", sTJYZ3[i].Trim().Replace("JZ", ""), iYZZ)); + else + SQL.Add(string.Format(",XLXSJGBYZZ0_YZZ{0}={1}", sTJYZ3[i].Trim().Replace("JZ", ""), iYZZ)); + } + bflag = true; + } + } + if (!sTJYSList4.Trim().Equals("")) + { + for (int i = 0; i < sTJYZ4.Length; i++) + { + int iYZZ = 0; + if (dicJGBFGQCPYZ.ContainsKey(sTJYZ4[i].Trim())) + iYZZ = -9999; + if (bflag) + { + SQL.Add(string.Format(",XLXSJGBYZZ0_YZZ{0}={1}", sTJYZ4[i].Trim().Replace("JZ", ""), iYZZ)); + } + else + { + if (i == 0) + SQL.Add(string.Format("XLXSJGBYZZ0_YZZ{0}={1}", sTJYZ4[i].Trim().Replace("JZ", ""), iYZZ)); + else + SQL.Add(string.Format(",XLXSJGBYZZ0_YZZ{0}={1}", sTJYZ4[i].Trim().Replace("JZ", ""), iYZZ)); + } + + bflag = true; + } + } + if (!sTJYSList5.Trim().Equals("")) + { + for (int i = 0; i < sTJYZ5.Length; i++) + { + int iYZZ = 0; + if (dicJGBFGQCPYZ.ContainsKey(sTJYZ5[i].Trim())) + iYZZ = -9999; + if (bflag) + { + SQL.Add(string.Format(",XLXSJGBYZZ0_YZZ{0}={1}", sTJYZ5[i].Trim().Replace("JZ", ""), iYZZ)); + } + else + { + if (i == 0) + SQL.Add(string.Format("XLXSJGBYZZ0_YZZ{0}={1}", sTJYZ5[i].Trim().Replace("JZ", ""), iYZZ)); + else + SQL.Add(string.Format(",XLXSJGBYZZ0_YZZ{0}={1}", sTJYZ5[i].Trim().Replace("JZ", ""), iYZZ)); + } + + bflag = true; + } + } + if (!sTJYSList8.Trim().Equals("")) + { + for (int i = 0; i < sTJYZ8.Length; i++) + { + int iYZZ = 0; + if (dicJGBFGQCPYZ.ContainsKey(sTJYZ8[i].Trim())) + iYZZ = -9999; + if (bflag) + { + SQL.Add(string.Format(",XLXSJGBYZZ0_YZZ{0}={1}", sTJYZ8[i].Trim().Replace("JZ", ""), iYZZ)); + } + else + { + if (i == 0) + SQL.Add(string.Format("XLXSJGBYZZ0_YZZ{0}={1}", sTJYZ8[i].Trim().Replace("JZ", ""), iYZZ)); + else + SQL.Add(string.Format(",XLXSJGBYZZ0_YZZ{0}={1}", sTJYZ8[i].Trim().Replace("JZ", ""), iYZZ)); + } + bflag = true; + } + } + if (!sTJYSList9.Trim().Equals("")) + { + for (int i = 0; i < sTJYZ9.Length; i++) + { + int iYZZ = 0; + if (dicJGBFGQCPYZ.ContainsKey(sTJYZ9[i].Trim())) + iYZZ = -9999; + if (bflag) + { + SQL.Add(string.Format(",XLXSJGBYZZ0_YZZ{0}={1}", sTJYZ9[i].Trim().Replace("JZ", ""), iYZZ)); + } + else + { + if (i == 0) + SQL.Add(string.Format("XLXSJGBYZZ0_YZZ{0}={1}", sTJYZ9[i].Trim().Replace("JZ", ""), iYZZ)); + else + SQL.Add(string.Format(",XLXSJGBYZZ0_YZZ{0}={1}", sTJYZ9[i].Trim().Replace("JZ", ""), iYZZ)); + } + bflag = true; + } + } + SQL.Add(" where XLXSJGBYZZ0_JGBID=:pJGBID "); + if (maxXH != 0) + { + SQL.Add(" and XLXSJGBYZZ0_XH > :pmaxXH "); + SQL.ParamByName("pmaxXH").Value = maxXH; + } + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Add(" and exists(select 1 from XLXSJGBMX"); + SQL.Add(" left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSJGBMX_XLXHID and XLXSCLQD_XLGGID=XLXSJGBMX_XLGGID and XLXSCLQD_XLBZID=XLXSJGBMX_XLBZID and XLXSCLQD_DYDJID=XLXSJGBMX_DYDJID "); + SQL.Add(" where XLXSJGBMX_JGBID=:pJGBID and XLXSJGBMX_XH=XLXSJGBYZZ0_XH "); + SQL.Add(" and XLXSCLQD_JGCZBID=:pJGCZBID and XLXSCLQD_JGCZBBBID=:pJGCZBBBID"); + SQL.Add(" )"); + SQL.ParamByName("pJGCZBID").Value = sJGCZBID.Trim(); + SQL.ParamByName("pJGCZBBBID").Value = sJGCZBBBID.Trim(); + } + SQL.ParamByName("pJGBID").Value = sJGBID; + Mac.MacLog.TraceFormat(String.Format("AddXLXSJGBYZZ0-清空TJYS<>' '的调价因子值-begin")); + dberp.ExecSQL(SQL); + Mac.MacLog.TraceFormat(String.Format("AddXLXSJGBYZZ0-清空TJYS<>' '的调价因子值-end")); + } + + int VID = CMISproDataBase.NewID("DBERP", "V_XLXSBJTJ"); + DateTime TimeStamp = MISproUtils.GetServerTime(); + //自动插入TJYS=1的调价因子值 + if (!sTJYSList1.Trim().Equals("")) + { + string[] sTJYZ = sTJYSList1.Split(','); + for (int i = 0; i < sTJYZ.Length; i++) + { + if (!sTJYZ[i].Trim().Equals("")) + { + TZYZXX yzxx = XLBJDUtils.GetYZXXByYZID(sTJYZ[i].Trim()); + /* + merge into 目标表 a + using 源表 b + on(a.条件字段1=b.条件字段1 and a.条件字段2=b.条件字段2 ……) + when matched then update set a.更新字段=b.字段 + when not matched then insert into a(字段1,字段2……)values(值1,值2……) + */ + SQL.Clear(); + SQL.Add(" insert into V_XLXSBJTJ(V_XLXSBJTJ_ID,V_XLXSBJTJ_JGBID,V_XLXSBJTJ_XH,V_XLXSBJTJ_YZZ,V_XLXSBJTJ_TIMESTAMP,V_XLXSBJTJ_WHR,V_XLXSBJTJ_WHRID,V_XLXSBJTJ_WHSJ) "); + SQL.Add(" select :pID, XLXSJGBMX_JGBID as JGBID,XLXSJGBMX_XH as XH"); + SQL.Add(string.Format(",XLXSJGBYZZ1_YZZ as YZZ{0},:pTIMESTAMP,:pWHR,:pWHRID,:pWHSJ", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.Add(" from XLXSJGBMX "); + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Add(" left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSJGBMX_XLXHID and XLXSCLQD_XLGGID=XLXSJGBMX_XLGGID and XLXSCLQD_XLBZID=XLXSJGBMX_XLBZID and XLXSCLQD_DYDJID=XLXSJGBMX_DYDJID "); + } + SQL.Add(" ,XLXSJGBYZZ1 "); + SQL.Add(" where XLXSJGBMX_JGBID=:pJGBID "); + if (maxXH != 0) + { + SQL.Add(" and XLXSJGBMX_XH > :pmaxXH "); + SQL.ParamByName("pmaxXH").Value = maxXH; + } + SQL.Add(" and XLXSJGBYZZ1_JGBID=:pTJJGBID and XLXSJGBYZZ1_YZID=:pYZID "); + SQL.Add(" and XLXSJGBYZZ1_XLXHID=XLXSJGBMX_XLXHID and XLXSJGBYZZ1_XLGGID=XLXSJGBMX_XLGGID and XLXSJGBYZZ1_XLBZID=' ' and XLXSJGBYZZ1_DYDJID=XLXSJGBMX_DYDJID "); + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Add(" and XLXSCLQD_JGCZBID=:pJGCZBID and XLXSCLQD_JGCZBBBID=:pJGCZBBBID"); + SQL.ParamByName("pJGCZBID").Value = sJGCZBID.Trim(); + SQL.ParamByName("pJGCZBBBID").Value = sJGCZBBBID.Trim(); + } + SQL.ParamByName("pTJJGBID").Value = yzxx.XLXSTZYZ_JGBID.Trim(); + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pJGBID").Value = sJGBID; + SQL.ParamByName("pID").Value = VID; + SQL.ParamByName("pTIMESTAMP").Value = TimeStamp; + SQL.ParamByName("pWHR").Value = tSession.UserName; + SQL.ParamByName("pWHRID").Value = tSession.UserName; + SQL.ParamByName("pWHSJ").Value = DateTime.Now; + + dberp.ExecSQL(SQL); + + + + SQL.Clear(); + SQL.Add(" merge into XLXSJGBYZZ0 tar "); + SQL.Add(" using V_XLXSBJTJ sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSJGBYZZ0_JGBID=:pJGBID and V_XLXSBJTJ_ID=:pID and XLXSJGBYZZ0_JGBID=V_XLXSBJTJ_JGBID and XLXSJGBYZZ0_XH=V_XLXSBJTJ_XH "); + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSJGBYZZ0_YZZ{0}=V_XLXSBJTJ_YZZ ", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.ParamByName("pID").Value = VID; + SQL.ParamByName("pJGBID").Value = sJGBID; + Mac.MacLog.TraceFormat(String.Format("AddXLXSJGBYZZ0-TJYS=1-begin")); + dberp.ExecSQL(SQL); + Mac.MacLog.TraceFormat(String.Format("AddXLXSJGBYZZ0-TJYS=1-end")); + + + SQL.Clear(); + SQL.Add("delete from V_XLXSBJTJ where V_XLXSBJTJ_ID=:pID "); + SQL.ParamByName("pID").Value = VID; + dberp.ExecSQL(SQL); + + + SQL.Clear(); + SQL.Add(" insert into V_XLXSBJTJ(V_XLXSBJTJ_ID,V_XLXSBJTJ_JGBID,V_XLXSBJTJ_XH,V_XLXSBJTJ_YZZ,V_XLXSBJTJ_TIMESTAMP,V_XLXSBJTJ_WHR,V_XLXSBJTJ_WHRID,V_XLXSBJTJ_WHSJ) "); + SQL.Add(" select :pID, XLXSJGBMX_JGBID as JGBID,XLXSJGBMX_XH as XH"); + SQL.Add(string.Format(",XLXSJGBYZZ1_YZZ as YZZ{0},:pTIMESTAMP,:pWHR,:pWHRID,:pWHSJ", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.Add(" from XLXSJGBMX,XLXSJGBYZZ1 "); + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Add(" left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSJGBYZZ1_XLXHID and XLXSCLQD_XLGGID=XLXSJGBYZZ1_XLGGID and XLXSCLQD_XLBZID=XLXSJGBYZZ1_XLBZID and XLXSCLQD_DYDJID=XLXSJGBYZZ1_DYDJID "); + } + SQL.Add(" where XLXSJGBMX_JGBID=:pJGBID "); + if (maxXH != 0) + { + SQL.Add(" and XLXSJGBMX_XH > :pmaxXH "); + SQL.ParamByName("pmaxXH").Value = maxXH; + } + SQL.Add(" and XLXSJGBYZZ1_JGBID=:pTJJGBID and XLXSJGBYZZ1_YZID=:pYZID "); + SQL.Add(" and XLXSJGBYZZ1_XLXHID=XLXSJGBMX_XLXHID and XLXSJGBYZZ1_XLGGID=XLXSJGBMX_XLGGID and XLXSJGBYZZ1_XLBZID=XLXSJGBMX_XLBZID and XLXSJGBYZZ1_DYDJID=XLXSJGBMX_DYDJID "); + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Add(" and XLXSCLQD_JGCZBID=:pJGCZBID and XLXSCLQD_JGCZBBBID=:pJGCZBBBID"); + SQL.ParamByName("pJGCZBID").Value = sJGCZBID.Trim(); + SQL.ParamByName("pJGCZBBBID").Value = sJGCZBBBID.Trim(); + } + SQL.ParamByName("pTJJGBID").Value = yzxx.XLXSTZYZ_JGBID.Trim(); + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pJGBID").Value = sJGBID; + SQL.ParamByName("pID").Value = VID; + SQL.ParamByName("pTIMESTAMP").Value = TimeStamp; + SQL.ParamByName("pWHR").Value = tSession.UserName; + SQL.ParamByName("pWHRID").Value = tSession.UserName; + SQL.ParamByName("pWHSJ").Value = DateTime.Now; + + dberp.ExecSQL(SQL); + + + + SQL.Clear(); + SQL.Add(" merge into XLXSJGBYZZ0 tar "); + SQL.Add(" using V_XLXSBJTJ sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSJGBYZZ0_JGBID=:pJGBID and V_XLXSBJTJ_ID=:pID and XLXSJGBYZZ0_JGBID=V_XLXSBJTJ_JGBID and XLXSJGBYZZ0_XH=V_XLXSBJTJ_XH "); + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSJGBYZZ0_YZZ{0}=V_XLXSBJTJ_YZZ ", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.ParamByName("pID").Value = VID; + SQL.ParamByName("pJGBID").Value = sJGBID; + Mac.MacLog.TraceFormat(String.Format("AddXLXSJGBYZZ0-TJYS=1-begin")); + dberp.ExecSQL(SQL); + Mac.MacLog.TraceFormat(String.Format("AddXLXSJGBYZZ0-TJYS=1-end")); + + + SQL.Clear(); + SQL.Add("delete from V_XLXSBJTJ where V_XLXSBJTJ_ID=:pID "); + SQL.ParamByName("pID").Value = VID; + dberp.ExecSQL(SQL); + + } + } + } + + //自动插入TJYS=3的调价因子值 + if (!sTJYSList3.Trim().Equals("")) + { + string[] sTJYZ = sTJYSList3.Split(','); + + SQL.Clear(); + SQL.Add("select XLXSJGB_XSQYIDS from XLXSJGB where XLXSJGB_MXBH=:pMXBH and XLXSJGB_JGBID=:pJGBID"); + SQL.ParamByName("pMXBH").Value = sMXBH; + SQL.ParamByName("pJGBID").Value = sJGBID; + DataSet dsJGB = dberp.OpenDataSet(SQL); + string sXSQYIDS = dsJGB.Tables[0].Rows[0][0].ToString().Trim(); + sXSQYIDS = sXSQYIDS.Split(',')[0].Trim();//只取第一个区域设置的因子值 + + for (int i = 0; i < sTJYZ.Length; i++) + { + if (!sTJYZ[i].Trim().Equals("")) + { + SQL.Clear(); + SQL.Add(" insert into V_XLXSBJTJ(V_XLXSBJTJ_ID,V_XLXSBJTJ_JGBID,V_XLXSBJTJ_XH,V_XLXSBJTJ_YZZ,V_XLXSBJTJ_TIMESTAMP,V_XLXSBJTJ_WHR,V_XLXSBJTJ_WHRID,V_XLXSBJTJ_WHSJ) "); + SQL.Add("select :pID, XLXSJGBMX_JGBID as JGBID,XLXSJGBMX_XH as XH "); + SQL.Add(string.Format(",isnull(YZZ,0) as YZZ{0},:pTIMESTAMP,:pWHR,:pWHRID,:pWHSJ ", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.Add(" from XLXSJGBMX "); + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Add(" left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSJGBMX_XLXHID and XLXSCLQD_XLGGID=XLXSJGBMX_XLGGID and XLXSCLQD_XLBZID=XLXSJGBMX_XLBZID and XLXSCLQD_DYDJID=XLXSJGBMX_DYDJID "); + } + SQL.Add("left join XLXHB on XLXHB_XLXHID=XLXSJGBMX_XLXHID "); + SQL.Add("left join "); + SQL.Add("( "); + SQL.Add(" select XLXSJGBYZZ3_XSQYID as XSQYID,XLXSJGBYZZ3_DTCLID as DTCLID,XLXSJGBYZZ3_YZID as YZID,XLXSJGBYZZ3_YZZ as YZZ"); + SQL.Add(" from XLXSJGBYZZ3,XLXSTZYZ"); + SQL.Add(" where XLXSTZYZ_MXBH='JZJ' and XLXSTZYZ_TJYS='3' and XLXSJGBYZZ3_JGBID=XLXSTZYZ_JGBID and XLXSJGBYZZ3_YZID=XLXSTZYZ_YZID"); + //型号、主芯截面都没有匹配 + SQL.Add(" and XLXSJGBYZZ3_XLXHID=' '"); + SQL.Add(" and XLXSJGBYZZ3_ZXJM=0"); + SQL.Add(" and XLXSJGBYZZ3_XSQYID='" + sXSQYIDS + "'"); + SQL.Add(" and XLXSJGBYZZ3_YZID=:pYZID"); + SQL.Add(" ) a on a.DTCLID=XLXHB_DTCLID"); + SQL.Add("where XLXSJGBMX_JGBID=:pJGBID and isnull(YZID,' ')<>' ' "); + if (maxXH != 0) + { + SQL.Add(" and XLXSJGBMX_XH > :pmaxXH "); + SQL.ParamByName("pmaxXH").Value = maxXH; + } + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Add(" and XLXSCLQD_JGCZBID=:pJGCZBID and XLXSCLQD_JGCZBBBID=:pJGCZBBBID"); + SQL.ParamByName("pJGCZBID").Value = sJGCZBID.Trim(); + SQL.ParamByName("pJGCZBBBID").Value = sJGCZBBBID.Trim(); + } + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pJGBID").Value = sJGBID; + SQL.ParamByName("pID").Value = VID; + SQL.ParamByName("pTIMESTAMP").Value = TimeStamp; + SQL.ParamByName("pWHR").Value = tSession.UserName; + SQL.ParamByName("pWHRID").Value = tSession.UserName; + SQL.ParamByName("pWHSJ").Value = DateTime.Now; + dberp.ExecSQL(SQL); + + + SQL.Clear(); + SQL.Add(" merge into XLXSJGBYZZ0 tar "); + SQL.Add(" using V_XLXSBJTJ sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSJGBYZZ0_JGBID=:pJGBID and V_XLXSBJTJ_ID=:pID and XLXSJGBYZZ0_JGBID=V_XLXSBJTJ_JGBID and XLXSJGBYZZ0_XH=V_XLXSBJTJ_XH "); + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSJGBYZZ0_YZZ{0}=V_XLXSBJTJ_YZZ ", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.ParamByName("pID").Value = VID; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + + + SQL.Clear(); + SQL.Add("delete from V_XLXSBJTJ where V_XLXSBJTJ_ID=:pID "); + SQL.ParamByName("pID").Value = VID; + dberp.ExecSQL(SQL); + + SQL.Clear(); + SQL.Add(" insert into V_XLXSBJTJ(V_XLXSBJTJ_ID,V_XLXSBJTJ_JGBID,V_XLXSBJTJ_XH,V_XLXSBJTJ_YZZ,V_XLXSBJTJ_TIMESTAMP,V_XLXSBJTJ_WHR,V_XLXSBJTJ_WHRID,V_XLXSBJTJ_WHSJ) "); + SQL.Add("select :pID, XLXSJGBMX_JGBID as JGBID,XLXSJGBMX_XH as XH "); + SQL.Add(string.Format(",isnull(YZZ,0) as YZZ{0},:pTIMESTAMP,:pWHR,:pWHRID,:pWHSJ ", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.Add(" from XLXSJGBMX "); + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Add(" left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSJGBMX_XLXHID and XLXSCLQD_XLGGID=XLXSJGBMX_XLGGID and XLXSCLQD_XLBZID=XLXSJGBMX_XLBZID and XLXSCLQD_DYDJID=XLXSJGBMX_DYDJID "); + } + SQL.Add("left join XLXSBJXLGGTHB XLXSBJXLGGTHB_JGB1 on XLXSBJXLGGTHB_JGB1.XLXSBJXLGGTHB_XLGGID=XLXSJGBMX_XLGGID "); + SQL.Add("left join XLXHB on XLXHB_XLXHID=XLXSJGBMX_XLXHID "); + SQL.Add("left join XLGGB on XLGGB_XLGGID = isnull(XLXSBJXLGGTHB_JGB1.XLXSBJXLGGTHB_XLGGIDCH,' ') and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); + SQL.Add("left join "); + SQL.Add("( "); + SQL.Add(" select XLXSJGBYZZ3_XSQYID as XSQYID,XLXSJGBYZZ3_DTCLID as DTCLID,XLXSJGBYZZ3_ZXJM as ZXJM,XLXSJGBYZZ3_YZID as YZID,XLXSJGBYZZ3_YZZ as YZZ"); + SQL.Add(" from XLXSJGBYZZ3,XLXSTZYZ"); + SQL.Add(" where XLXSTZYZ_MXBH='JZJ' and XLXSTZYZ_TJYS='3' and XLXSJGBYZZ3_JGBID=XLXSTZYZ_JGBID and XLXSJGBYZZ3_YZID=XLXSTZYZ_YZID"); + //主芯截面完全匹配 + SQL.Add(" and XLXSJGBYZZ3_XLXHID=' ' "); + SQL.Add(" and XLXSJGBYZZ3_ZXJM<>0 "); + SQL.Add(" and XLXSJGBYZZ3_XSQYID='" + sXSQYIDS + "'"); + SQL.Add(" and XLXSJGBYZZ3_YZID=:pYZID"); + SQL.Add(" ) a on a.DTCLID=XLXHB_DTCLID"); + SQL.Add(" and ((convert(char,a.ZXJM)=XLGGB_DTJMZHID) or (XLGGB_DTJMZHID like (rtrim(convert(char,a.ZXJM))||'/%'))) "); + SQL.Add("where XLXSJGBMX_JGBID=:pJGBID and isnull(YZID,' ')<>' ' "); + if (maxXH != 0) + { + SQL.Add(" and XLXSJGBMX_XH > :pmaxXH "); + SQL.ParamByName("pmaxXH").Value = maxXH; + } + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Add(" and XLXSCLQD_JGCZBID=:pJGCZBID and XLXSCLQD_JGCZBBBID=:pJGCZBBBID"); + SQL.ParamByName("pJGCZBID").Value = sJGCZBID.Trim(); + SQL.ParamByName("pJGCZBBBID").Value = sJGCZBBBID.Trim(); + } + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pJGBID").Value = sJGBID; + SQL.ParamByName("pID").Value = VID; + SQL.ParamByName("pTIMESTAMP").Value = TimeStamp; + SQL.ParamByName("pWHR").Value = tSession.UserName; + SQL.ParamByName("pWHRID").Value = tSession.UserName; + SQL.ParamByName("pWHSJ").Value = DateTime.Now; + dberp.ExecSQL(SQL); + + SQL.Clear(); + SQL.Add(" merge into XLXSJGBYZZ0 tar "); + SQL.Add(" using V_XLXSBJTJ sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSJGBYZZ0_JGBID=:pJGBID and V_XLXSBJTJ_ID=:pID and XLXSJGBYZZ0_JGBID=V_XLXSBJTJ_JGBID and XLXSJGBYZZ0_XH=V_XLXSBJTJ_XH "); + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSJGBYZZ0_YZZ{0}=V_XLXSBJTJ_YZZ ", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.ParamByName("pID").Value = VID; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + + + SQL.Clear(); + SQL.Add("delete from V_XLXSBJTJ where V_XLXSBJTJ_ID=:pID "); + SQL.ParamByName("pID").Value = VID; + dberp.ExecSQL(SQL); + + + SQL.Clear(); + SQL.Add(" insert into V_XLXSBJTJ(V_XLXSBJTJ_ID,V_XLXSBJTJ_JGBID,V_XLXSBJTJ_XH,V_XLXSBJTJ_YZZ,V_XLXSBJTJ_TIMESTAMP,V_XLXSBJTJ_WHR,V_XLXSBJTJ_WHRID,V_XLXSBJTJ_WHSJ) "); + SQL.Add("select :pID, XLXSJGBMX_JGBID as JGBID,XLXSJGBMX_XH as XH "); + SQL.Add(string.Format(",isnull(YZZ,0) as YZZ{0},:pTIMESTAMP,:pWHR,:pWHRID,:pWHSJ ", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.Add(" from XLXSJGBMX "); + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Add(" left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSJGBMX_XLXHID and XLXSCLQD_XLGGID=XLXSJGBMX_XLGGID and XLXSCLQD_XLBZID=XLXSJGBMX_XLBZID and XLXSCLQD_DYDJID=XLXSJGBMX_DYDJID "); + } + SQL.Add("left join XLXHB on XLXHB_XLXHID=XLXSJGBMX_XLXHID "); + SQL.Add("left join "); + SQL.Add("( "); + SQL.Add(" select XLXSJGBYZZ3_XSQYID as XSQYID,XLXSJGBYZZ3_DTCLID as DTCLID,XLXSJGBYZZ3_XLXHID as XLXHID,XLXSJGBYZZ3_YZID as YZID,XLXSJGBYZZ3_YZZ as YZZ"); + SQL.Add(" from XLXSJGBYZZ3,XLXSTZYZ"); + SQL.Add(" where XLXSTZYZ_MXBH='JZJ' and XLXSTZYZ_TJYS='3' and XLXSJGBYZZ3_JGBID=XLXSTZYZ_JGBID and XLXSJGBYZZ3_YZID=XLXSTZYZ_YZID"); + //型号完全匹配 + SQL.Add(" and XLXSJGBYZZ3_ZXJM=0"); + SQL.Add(" and XLXSJGBYZZ3_XSQYID='" + sXSQYIDS + "'"); + SQL.Add(" and XLXSJGBYZZ3_YZID=:pYZID"); + SQL.Add(" ) a on a.DTCLID=XLXHB_DTCLID"); + SQL.Add(" and a.XLXHID=XLXSJGBMX_XLXHID"); + SQL.Add("where XLXSJGBMX_JGBID=:pJGBID and isnull(YZID,' ')<>' ' "); + if (maxXH != 0) + { + SQL.Add(" and XLXSJGBMX_XH > :pmaxXH "); + SQL.ParamByName("pmaxXH").Value = maxXH; + } + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Add(" and XLXSCLQD_JGCZBID=:pJGCZBID and XLXSCLQD_JGCZBBBID=:pJGCZBBBID"); + SQL.ParamByName("pJGCZBID").Value = sJGCZBID.Trim(); + SQL.ParamByName("pJGCZBBBID").Value = sJGCZBBBID.Trim(); + } + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pJGBID").Value = sJGBID; + SQL.ParamByName("pID").Value = VID; + SQL.ParamByName("pTIMESTAMP").Value = TimeStamp; + SQL.ParamByName("pWHR").Value = tSession.UserName; + SQL.ParamByName("pWHRID").Value = tSession.UserName; + SQL.ParamByName("pWHSJ").Value = DateTime.Now; + dberp.ExecSQL(SQL); + + SQL.Clear(); + SQL.Add(" merge into XLXSJGBYZZ0 tar "); + SQL.Add(" using V_XLXSBJTJ sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSJGBYZZ0_JGBID=:pJGBID and V_XLXSBJTJ_ID=:pID and XLXSJGBYZZ0_JGBID=V_XLXSBJTJ_JGBID and XLXSJGBYZZ0_XH=V_XLXSBJTJ_XH "); + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSJGBYZZ0_YZZ{0}=V_XLXSBJTJ_YZZ ", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.ParamByName("pID").Value = VID; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + + + SQL.Clear(); + SQL.Add("delete from V_XLXSBJTJ where V_XLXSBJTJ_ID=:pID "); + SQL.ParamByName("pID").Value = VID; + dberp.ExecSQL(SQL); + + + SQL.Clear(); + SQL.Add(" insert into V_XLXSBJTJ(V_XLXSBJTJ_ID,V_XLXSBJTJ_JGBID,V_XLXSBJTJ_XH,V_XLXSBJTJ_YZZ,V_XLXSBJTJ_TIMESTAMP,V_XLXSBJTJ_WHR,V_XLXSBJTJ_WHRID,V_XLXSBJTJ_WHSJ) "); + SQL.Add("select :pID, XLXSJGBMX_JGBID as JGBID,XLXSJGBMX_XH as XH "); + SQL.Add(string.Format(",isnull(YZZ,0) as YZZ{0},:pTIMESTAMP,:pWHR,:pWHRID,:pWHSJ ", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.Add(" from XLXSJGBMX "); + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Add(" left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSJGBMX_XLXHID and XLXSCLQD_XLGGID=XLXSJGBMX_XLGGID and XLXSCLQD_XLBZID=XLXSJGBMX_XLBZID and XLXSCLQD_DYDJID=XLXSJGBMX_DYDJID "); + } + SQL.Add("left join XLXHB on XLXHB_XLXHID=XLXSJGBMX_XLXHID "); + SQL.Add("left join XLXSBJXLGGTHB XLXSBJXLGGTHB_JGB2 on XLXSBJXLGGTHB_JGB2.XLXSBJXLGGTHB_XLGGID = XLXSJGBMX_XLGGID left join XLGGB on XLGGB_XLGGID = isnull(XLXSBJXLGGTHB_JGB2.XLXSBJXLGGTHB_XLGGIDCH,' ') and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); + SQL.Add("left join "); + SQL.Add("( "); + SQL.Add(" select XLXSJGBYZZ3_XSQYID as XSQYID,XLXSJGBYZZ3_DTCLID as DTCLID,XLXSJGBYZZ3_XLXHID as XLXHID,XLXSJGBYZZ3_ZXJM as ZXJM,XLXSJGBYZZ3_YZID as YZID,XLXSJGBYZZ3_YZZ as YZZ"); + SQL.Add(" from XLXSJGBYZZ3,XLXSTZYZ"); + SQL.Add(" where XLXSTZYZ_MXBH='JZJ' and XLXSTZYZ_TJYS='3' and XLXSJGBYZZ3_JGBID=XLXSTZYZ_JGBID and XLXSJGBYZZ3_YZID=XLXSTZYZ_YZID"); + //型号、主芯截面完全匹配 + SQL.Add(" and XLXSJGBYZZ3_ZXJM<>0 "); + SQL.Add(" and XLXSJGBYZZ3_XSQYID='" + sXSQYIDS + "'"); + SQL.Add(" and XLXSJGBYZZ3_YZID=:pYZID"); + SQL.Add(" ) a on a.DTCLID=XLXHB_DTCLID"); + SQL.Add(" and a.XLXHID=XLXSJGBMX_XLXHID"); + SQL.Add(" and ((convert(char,a.ZXJM)=XLGGB_DTJMZHID) or (XLGGB_DTJMZHID like (rtrim(convert(char,a.ZXJM))||'/%'))) "); + //SQL.Add(" and ((to_char(a.ZXJM)=XLGGB_DTJMZHID) or (XLGGB_DTJMZHID like (rtrim(to_char(a.ZXJM))||'/%'))) "); + SQL.Add("where XLXSJGBMX_JGBID=:pJGBID and isnull(YZID,' ')<>' ' "); + if (maxXH != 0) + { + SQL.Add(" and XLXSJGBMX_XH > :pmaxXH "); + SQL.ParamByName("pmaxXH").Value = maxXH; + } + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Add(" and XLXSCLQD_JGCZBID=:pJGCZBID and XLXSCLQD_JGCZBBBID=:pJGCZBBBID"); + SQL.ParamByName("pJGCZBID").Value = sJGCZBID.Trim(); + SQL.ParamByName("pJGCZBBBID").Value = sJGCZBBBID.Trim(); + } + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pJGBID").Value = sJGBID; + SQL.ParamByName("pID").Value = VID; + SQL.ParamByName("pTIMESTAMP").Value = TimeStamp; + SQL.ParamByName("pWHR").Value = tSession.UserName; + SQL.ParamByName("pWHRID").Value = tSession.UserName; + SQL.ParamByName("pWHSJ").Value = DateTime.Now; + dberp.ExecSQL(SQL); + + SQL.Clear(); + SQL.Add(" merge into XLXSJGBYZZ0 tar "); + SQL.Add(" using V_XLXSBJTJ sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSJGBYZZ0_JGBID=:pJGBID and V_XLXSBJTJ_ID=:pID and XLXSJGBYZZ0_JGBID=V_XLXSBJTJ_JGBID and XLXSJGBYZZ0_XH=V_XLXSBJTJ_XH "); + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSJGBYZZ0_YZZ{0}=V_XLXSBJTJ_YZZ ", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.ParamByName("pID").Value = VID; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + + + SQL.Clear(); + SQL.Add("delete from V_XLXSBJTJ where V_XLXSBJTJ_ID=:pID "); + SQL.ParamByName("pID").Value = VID; + dberp.ExecSQL(SQL); + + } + } + } + + //自动插入TJYS=4的调价因子值 + if (!sTJYSList4.Trim().Equals("")) + { + string[] sTJYZ = sTJYSList4.Split(','); + for (int i = 0; i < sTJYZ.Length; i++) + { + if (!sTJYZ[i].Trim().Equals("")) + { + TZYZXX yzxx = XLBJDUtils.GetYZXXByYZID(sTJYZ[i].Trim()); + + SQL.Clear(); + SQL.Add(" insert into V_XLXSBJTJ(V_XLXSBJTJ_ID,V_XLXSBJTJ_JGBID,V_XLXSBJTJ_XH,V_XLXSBJTJ_YZZ,V_XLXSBJTJ_TIMESTAMP,V_XLXSBJTJ_WHR,V_XLXSBJTJ_WHRID,V_XLXSBJTJ_WHSJ) "); + SQL.Add(" select :pID,XLXSJGBMX_JGBID as JGBID,XLXSJGBMX_XH as XH"); + SQL.Add(string.Format(",XLXSJGBYZZ4_YZZ as YZZ{0},:pTIMESTAMP,:pWHR,:pWHRID,:pWHSJ ", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.Add(" from XLXSJGBMX "); + + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Add(" left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSJGBMX_XLXHID and XLXSCLQD_XLGGID=XLXSJGBMX_XLGGID and XLXSCLQD_XLBZID=XLXSJGBMX_XLBZID and XLXSCLQD_DYDJID=XLXSJGBMX_DYDJID "); + } + SQL.Add("left join XLXHB on XLXHB_XLXHID=XLXSJGBMX_XLXHID "); + SQL.Add("left join XLXSBJXLGGTHB XLXSBJXLGGTHB_JGB3 on XLXSBJXLGGTHB_JGB3.XLXSBJXLGGTHB_XLGGID = XLXSJGBMX_XLGGID left join XLGGB on XLGGB_XLGGID = isnull(XLXSBJXLGGTHB_JGB3.XLXSBJXLGGTHB_XLGGIDCH,' ') and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); + SQL.Add("left join XLDTJMZHB on XLDTJMZHB_DTJMZHID=XLGGB_DTJMZHID "); + + SQL.Add(" left join ( "); + SQL.Add(" select XLXSJGBYZZ4_XLXHID,XLXSJGBYZZ4_DYDJID,XLXSJGBYZZ4_XXJGID,XLXSJGBYZZ4_ZXJMXX,XLXSJGBYZZ4_ZXJMSX,XLXSJGBYZZ4_YZZ "); + SQL.Add(" from XLXSJGBYZZ4 "); + SQL.Add(" where XLXSJGBYZZ4_JGBID=:pTJJGBID and XLXSJGBYZZ4_YZID=:pYZID "); + //1、优先级由低到高依次更新:电压、芯线结构为空 + SQL.Add(" and XLXSJGBYZZ4_DYDJID=' '"); + SQL.Add(" and XLXSJGBYZZ4_XXJGID=' ' "); + SQL.Add(" ) a "); + SQL.Add(" on XLXSJGBYZZ4_XLXHID=XLXSJGBMX_XLXHID "); + SQL.Add(" and XLXSJGBYZZ4_ZXJMXX<= ISNULL(XLDTJMZHB_DTJM1,0) and ((XLXSJGBYZZ4_ZXJMSX<>0 and XLXSJGBYZZ4_ZXJMSX>=ISNULL(XLDTJMZHB_DTJM1,0)) or XLXSJGBYZZ4_ZXJMSX=0)"); + SQL.Add(" where XLXSJGBMX_JGBID=:pJGBID and XLXSJGBYZZ4_XLXHID<>' ' "); + if (maxXH != 0) + { + SQL.Add(" and XLXSJGBMX_XH > :pmaxXH "); + SQL.ParamByName("pmaxXH").Value = maxXH; + } + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Add(" and XLXSCLQD_JGCZBID=:pJGCZBID and XLXSCLQD_JGCZBBBID=:pJGCZBBBID"); + SQL.ParamByName("pJGCZBID").Value = sJGCZBID.Trim(); + SQL.ParamByName("pJGCZBBBID").Value = sJGCZBBBID.Trim(); + } + SQL.ParamByName("pTJJGBID").Value = yzxx.XLXSTZYZ_JGBID.Trim(); + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pJGBID").Value = sJGBID; + SQL.ParamByName("pID").Value = VID; + SQL.ParamByName("pTIMESTAMP").Value = TimeStamp; + SQL.ParamByName("pWHR").Value = tSession.UserName; + SQL.ParamByName("pWHRID").Value = tSession.UserName; + SQL.ParamByName("pWHSJ").Value = DateTime.Now; + dberp.ExecSQL(SQL); + + + SQL.Clear(); + SQL.Add(" merge into XLXSJGBYZZ0 tar "); + SQL.Add(" using V_XLXSBJTJ sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSJGBYZZ0_JGBID=:pJGBID and V_XLXSBJTJ_ID=:pID and XLXSJGBYZZ0_JGBID=V_XLXSBJTJ_JGBID and XLXSJGBYZZ0_XH=V_XLXSBJTJ_XH "); + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSJGBYZZ0_YZZ{0}=V_XLXSBJTJ_YZZ ", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.ParamByName("pID").Value = VID; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + + + SQL.Clear(); + SQL.Add("delete from V_XLXSBJTJ where V_XLXSBJTJ_ID=:pID "); + SQL.ParamByName("pID").Value = VID; + dberp.ExecSQL(SQL); + + + + SQL.Clear(); + SQL.Add(" insert into V_XLXSBJTJ(V_XLXSBJTJ_ID,V_XLXSBJTJ_JGBID,V_XLXSBJTJ_XH,V_XLXSBJTJ_YZZ,V_XLXSBJTJ_TIMESTAMP,V_XLXSBJTJ_WHR,V_XLXSBJTJ_WHRID,V_XLXSBJTJ_WHSJ) "); + SQL.Add(" select :pID,XLXSJGBMX_JGBID as JGBID,XLXSJGBMX_XH as XH"); + SQL.Add(string.Format(",XLXSJGBYZZ4_YZZ as YZZ{0},:pTIMESTAMP,:pWHR,:pWHRID,:pWHSJ ", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.Add(" from XLXSJGBMX "); + + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Add(" left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSJGBMX_XLXHID and XLXSCLQD_XLGGID=XLXSJGBMX_XLGGID and XLXSCLQD_XLBZID=XLXSJGBMX_XLBZID and XLXSCLQD_DYDJID=XLXSJGBMX_DYDJID "); + } + SQL.Add("left join XLXHB on XLXHB_XLXHID=XLXSJGBMX_XLXHID "); + SQL.Add("left join XLXSBJXLGGTHB XLXSBJXLGGTHB_JGB4 on XLXSBJXLGGTHB_JGB4.XLXSBJXLGGTHB_XLGGID = XLXSJGBMX_XLGGID left join XLGGB on XLGGB_XLGGID = isnull(XLXSBJXLGGTHB_JGB4.XLXSBJXLGGTHB_XLGGIDCH,' ') and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); + SQL.Add("left join XLDTJMZHB on XLDTJMZHB_DTJMZHID=XLGGB_DTJMZHID "); + SQL.Add(" left join ( "); + SQL.Add(" select XLXSJGBYZZ4_XLXHID,XLXSJGBYZZ4_DYDJID,XLXSJGBYZZ4_XXJGID,XLXSJGBYZZ4_ZXJMXX,XLXSJGBYZZ4_ZXJMSX,XLXSJGBYZZ4_YZZ "); + SQL.Add(" from XLXSJGBYZZ4 "); + SQL.Add(" where XLXSJGBYZZ4_JGBID=:pTJJGBID and XLXSJGBYZZ4_YZID=:pYZID "); + //2、优先级由低到高依次更新:电压为空、芯线结构不为空 + SQL.Add(" and XLXSJGBYZZ4_DYDJID=' '"); + SQL.Add(" ) a "); + SQL.Add(" on XLXSJGBYZZ4_XLXHID=XLXSJGBMX_XLXHID "); + SQL.Add(" and XLXSJGBYZZ4_ZXJMXX<= ISNULL(XLDTJMZHB_DTJM1,0) and ((XLXSJGBYZZ4_ZXJMSX<>0 and XLXSJGBYZZ4_ZXJMSX>=ISNULL(XLDTJMZHB_DTJM1,0)) or XLXSJGBYZZ4_ZXJMSX=0)"); + SQL.Add(" and XLXSJGBYZZ4_XXJGID=XLGGB_XXJGID "); + SQL.Add(" where XLXSJGBMX_JGBID=:pJGBID and XLXSJGBYZZ4_XLXHID<>' ' "); + if (maxXH != 0) + { + SQL.Add(" and XLXSJGBMX_XH > :pmaxXH "); + SQL.ParamByName("pmaxXH").Value = maxXH; + } + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Add(" and XLXSCLQD_JGCZBID=:pJGCZBID and XLXSCLQD_JGCZBBBID=:pJGCZBBBID"); + SQL.ParamByName("pJGCZBID").Value = sJGCZBID.Trim(); + SQL.ParamByName("pJGCZBBBID").Value = sJGCZBBBID.Trim(); + } + SQL.ParamByName("pTJJGBID").Value = yzxx.XLXSTZYZ_JGBID.Trim(); + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pJGBID").Value = sJGBID; + SQL.ParamByName("pID").Value = VID; + SQL.ParamByName("pTIMESTAMP").Value = TimeStamp; + SQL.ParamByName("pWHR").Value = tSession.UserName; + SQL.ParamByName("pWHRID").Value = tSession.UserName; + SQL.ParamByName("pWHSJ").Value = DateTime.Now; + dberp.ExecSQL(SQL); + + + SQL.Clear(); + SQL.Add(" merge into XLXSJGBYZZ0 tar "); + SQL.Add(" using V_XLXSBJTJ sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSJGBYZZ0_JGBID=:pJGBID and V_XLXSBJTJ_ID=:pID and XLXSJGBYZZ0_JGBID=V_XLXSBJTJ_JGBID and XLXSJGBYZZ0_XH=V_XLXSBJTJ_XH "); + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSJGBYZZ0_YZZ{0}=V_XLXSBJTJ_YZZ ", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.ParamByName("pID").Value = VID; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + + + SQL.Clear(); + SQL.Add("delete from V_XLXSBJTJ where V_XLXSBJTJ_ID=:pID "); + SQL.ParamByName("pID").Value = VID; + dberp.ExecSQL(SQL); + + + SQL.Clear(); + SQL.Add(" insert into V_XLXSBJTJ(V_XLXSBJTJ_ID,V_XLXSBJTJ_JGBID,V_XLXSBJTJ_XH,V_XLXSBJTJ_YZZ,V_XLXSBJTJ_TIMESTAMP,V_XLXSBJTJ_WHR,V_XLXSBJTJ_WHRID,V_XLXSBJTJ_WHSJ) "); + SQL.Add(" select :pID,XLXSJGBMX_JGBID as JGBID,XLXSJGBMX_XH as XH"); + SQL.Add(string.Format(",XLXSJGBYZZ4_YZZ as YZZ{0},:pTIMESTAMP,:pWHR,:pWHRID,:pWHSJ ", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.Add(" from XLXSJGBMX "); + + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Add(" left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSJGBMX_XLXHID and XLXSCLQD_XLGGID=XLXSJGBMX_XLGGID and XLXSCLQD_XLBZID=XLXSJGBMX_XLBZID and XLXSCLQD_DYDJID=XLXSJGBMX_DYDJID "); + } + SQL.Add(" left join XLXHB on XLXHB_XLXHID=XLXSJGBMX_XLXHID "); + SQL.Add("left join XLXSBJXLGGTHB XLXSBJXLGGTHB_JGB7 on XLXSBJXLGGTHB_JGB7.XLXSBJXLGGTHB_XLGGID=XLXSJGBMX_XLGGID "); + SQL.Add("left join XLGGB on XLGGB_XLGGID = isnull(XLXSBJXLGGTHB_JGB7.XLXSBJXLGGTHB_XLGGIDCH,' ') and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); + SQL.Add("left join XLDTJMZHB on XLDTJMZHB_DTJMZHID=XLGGB_DTJMZHID "); + SQL.Add(" left join ( "); + SQL.Add(" select XLXSJGBYZZ4_XLXHID,XLXSJGBYZZ4_DYDJID,XLXSJGBYZZ4_XXJGID,XLXSJGBYZZ4_ZXJMXX,XLXSJGBYZZ4_ZXJMSX,XLXSJGBYZZ4_YZZ "); + SQL.Add(" from XLXSJGBYZZ4 "); + SQL.Add(" where XLXSJGBYZZ4_JGBID=:pTJJGBID and XLXSJGBYZZ4_YZID=:pYZID "); + //3、优先级由低到高依次更新:电压不为空、芯线结构为空 + SQL.Add(" and XLXSJGBYZZ4_XXJGID=' '"); + SQL.Add(" ) a "); + SQL.Add(" on XLXSJGBYZZ4_XLXHID=XLXSJGBMX_XLXHID "); + SQL.Add(" and XLXSJGBYZZ4_ZXJMXX<= ISNULL(XLDTJMZHB_DTJM1,0) and ((XLXSJGBYZZ4_ZXJMSX<>0 and XLXSJGBYZZ4_ZXJMSX>=ISNULL(XLDTJMZHB_DTJM1,0)) or XLXSJGBYZZ4_ZXJMSX=0)"); + SQL.Add(" and XLXSJGBYZZ4_DYDJID=XLXSJGBMX_DYDJID "); + SQL.Add(" where XLXSJGBMX_JGBID=:pJGBID and XLXSJGBYZZ4_XLXHID<>' ' "); + if (maxXH != 0) + { + SQL.Add(" and XLXSJGBMX_XH > :pmaxXH "); + SQL.ParamByName("pmaxXH").Value = maxXH; + } + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Add(" and XLXSCLQD_JGCZBID=:pJGCZBID and XLXSCLQD_JGCZBBBID=:pJGCZBBBID"); + SQL.ParamByName("pJGCZBID").Value = sJGCZBID.Trim(); + SQL.ParamByName("pJGCZBBBID").Value = sJGCZBBBID.Trim(); + } + SQL.ParamByName("pTJJGBID").Value = yzxx.XLXSTZYZ_JGBID.Trim(); + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pJGBID").Value = sJGBID; + SQL.ParamByName("pID").Value = VID; + SQL.ParamByName("pTIMESTAMP").Value = TimeStamp; + SQL.ParamByName("pWHR").Value = tSession.UserName; + SQL.ParamByName("pWHRID").Value = tSession.UserName; + SQL.ParamByName("pWHSJ").Value = DateTime.Now; + dberp.ExecSQL(SQL); + + + SQL.Clear(); + SQL.Add(" merge into XLXSJGBYZZ0 tar "); + SQL.Add(" using V_XLXSBJTJ sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSJGBYZZ0_JGBID=:pJGBID and V_XLXSBJTJ_ID=:pID and XLXSJGBYZZ0_JGBID=V_XLXSBJTJ_JGBID and XLXSJGBYZZ0_XH=V_XLXSBJTJ_XH "); + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSJGBYZZ0_YZZ{0}=V_XLXSBJTJ_YZZ ", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.ParamByName("pID").Value = VID; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + + + SQL.Clear(); + SQL.Add("delete from V_XLXSBJTJ where V_XLXSBJTJ_ID=:pID "); + SQL.ParamByName("pID").Value = VID; + dberp.ExecSQL(SQL); + + + SQL.Clear(); + SQL.Add(" insert into V_XLXSBJTJ(V_XLXSBJTJ_ID,V_XLXSBJTJ_JGBID,V_XLXSBJTJ_XH,V_XLXSBJTJ_YZZ,V_XLXSBJTJ_TIMESTAMP,V_XLXSBJTJ_WHR,V_XLXSBJTJ_WHRID,V_XLXSBJTJ_WHSJ) "); + SQL.Add(" select :pID,XLXSJGBMX_JGBID as JGBID,XLXSJGBMX_XH as XH"); + SQL.Add(string.Format(",XLXSJGBYZZ4_YZZ as YZZ{0},:pTIMESTAMP,:pWHR,:pWHRID,:pWHSJ ", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.Add(" from XLXSJGBMX "); + + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Add(" left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSJGBMX_XLXHID and XLXSCLQD_XLGGID=XLXSJGBMX_XLGGID and XLXSCLQD_XLBZID=XLXSJGBMX_XLBZID and XLXSCLQD_DYDJID=XLXSJGBMX_DYDJID "); + } + SQL.Add(" left join XLXHB on XLXHB_XLXHID=XLXSJGBMX_XLXHID "); + SQL.Add(" left join XLXSBJXLGGTHB XLXSBJXLGGTHB_JGB8 on XLXSBJXLGGTHB_JGB8.XLXSBJXLGGTHB_XLGGID=XLXSJGBMX_XLGGID "); + SQL.Add(" left join XLGGB on XLGGB_XLGGID = isnull(XLXSBJXLGGTHB_JGB8.XLXSBJXLGGTHB_XLGGIDCH,' ') and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); + SQL.Add(" left join XLDTJMZHB on XLDTJMZHB_DTJMZHID=XLGGB_DTJMZHID "); + SQL.Add(" left join ( "); + SQL.Add(" select XLXSJGBYZZ4_XLXHID,XLXSJGBYZZ4_DYDJID,XLXSJGBYZZ4_XXJGID,XLXSJGBYZZ4_ZXJMXX,XLXSJGBYZZ4_ZXJMSX,XLXSJGBYZZ4_YZZ "); + SQL.Add(" from XLXSJGBYZZ4 "); + SQL.Add(" where XLXSJGBYZZ4_JGBID=:pTJJGBID and XLXSJGBYZZ4_YZID=:pYZID "); + //4、优先级由低到高依次更新:电压不为空、芯线结构不为空 + + SQL.Add(" ) a "); + SQL.Add(" on XLXSJGBYZZ4_XLXHID=XLXSJGBMX_XLXHID "); + SQL.Add(" and XLXSJGBYZZ4_ZXJMXX<= ISNULL(XLDTJMZHB_DTJM1,0) and ((XLXSJGBYZZ4_ZXJMSX<>0 and XLXSJGBYZZ4_ZXJMSX>=ISNULL(XLDTJMZHB_DTJM1,0)) or XLXSJGBYZZ4_ZXJMSX=0)"); + SQL.Add(" and XLXSJGBYZZ4_DYDJID=XLXSJGBMX_DYDJID "); + SQL.Add(" and XLXSJGBYZZ4_XXJGID=XLGGB_XXJGID"); + SQL.Add(" where XLXSJGBMX_JGBID=:pJGBID and XLXSJGBYZZ4_XLXHID<>' ' "); + if (maxXH != 0) + { + SQL.Add(" and XLXSJGBMX_XH > :pmaxXH "); + SQL.ParamByName("pmaxXH").Value = maxXH; + } + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Add(" and XLXSCLQD_JGCZBID=:pJGCZBID and XLXSCLQD_JGCZBBBID=:pJGCZBBBID"); + SQL.ParamByName("pJGCZBID").Value = sJGCZBID.Trim(); + SQL.ParamByName("pJGCZBBBID").Value = sJGCZBBBID.Trim(); + } + SQL.ParamByName("pTJJGBID").Value = yzxx.XLXSTZYZ_JGBID.Trim(); + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pJGBID").Value = sJGBID; + SQL.ParamByName("pID").Value = VID; + SQL.ParamByName("pTIMESTAMP").Value = TimeStamp; + SQL.ParamByName("pWHR").Value = tSession.UserName; + SQL.ParamByName("pWHRID").Value = tSession.UserName; + SQL.ParamByName("pWHSJ").Value = DateTime.Now; + dberp.ExecSQL(SQL); + + + SQL.Clear(); + SQL.Add(" merge into XLXSJGBYZZ0 tar "); + SQL.Add(" using V_XLXSBJTJ sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSJGBYZZ0_JGBID=:pJGBID and V_XLXSBJTJ_ID=:pID and XLXSJGBYZZ0_JGBID=V_XLXSBJTJ_JGBID and XLXSJGBYZZ0_XH=V_XLXSBJTJ_XH "); + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSJGBYZZ0_YZZ{0}=V_XLXSBJTJ_YZZ ", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.ParamByName("pID").Value = VID; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + + + SQL.Clear(); + SQL.Add("delete from V_XLXSBJTJ where V_XLXSBJTJ_ID=:pID "); + SQL.ParamByName("pID").Value = VID; + dberp.ExecSQL(SQL); + + + } + } + } + //自动插入TJYS=5的调价因子值 + if (!sTJYSList5.Trim().Equals("")) + { + string[] sTJYZ = sTJYSList5.Split(','); + for (int i = 0; i < sTJYZ.Length; i++) + { + if (!sTJYZ[i].Trim().Equals("")) + { + + SQL.Clear(); + SQL.Add(" insert into V_XLXSBJTJ(V_XLXSBJTJ_ID,V_XLXSBJTJ_JGBID,V_XLXSBJTJ_XH,V_XLXSBJTJ_YZZ,V_XLXSBJTJ_TIMESTAMP,V_XLXSBJTJ_WHR,V_XLXSBJTJ_WHRID,V_XLXSBJTJ_WHSJ) "); + SQL.Add(" select :pID,XLXSJGBMX_JGBID as JGBID,XLXSJGBMX_XH as XH"); + SQL.Add(string.Format(",XLXSJGBYZZ5_YZZ as YZZ{0},:pTIMESTAMP,:pWHR,:pWHRID,:pWHSJ ", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.Add(" from XLXSTZYZ,XLXSJGBYZZ5,XLXSJGBMX "); + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Add(" left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSJGBMX_XLXHID and XLXSCLQD_XLGGID=XLXSJGBMX_XLGGID and XLXSCLQD_XLBZID=XLXSJGBMX_XLBZID and XLXSCLQD_DYDJID=XLXSJGBMX_DYDJID "); + } + SQL.Add(" left join XLXHB on XLXHB_XLXHID=XLXSJGBMX_XLXHID "); + SQL.Add(" left join XLXSBJXLGGTHB XLXSBJXLGGTHB_JGB9 on XLXSBJXLGGTHB_JGB9.XLXSBJXLGGTHB_XLGGID=XLXSJGBMX_XLGGID "); + SQL.Add(" left join XLGGB on XLGGB_XLGGID = isnull(XLXSBJXLGGTHB_JGB9.XLXSBJXLGGTHB_XLGGIDCH,' ') and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); + SQL.Add(" left join XLDTJMZHB on XLDTJMZHB_DTJMZHID=XLGGB_DTJMZHID "); + SQL.Add(" where XLXSJGBMX_JGBID=:pJGBID "); + if (maxXH != 0) + { + SQL.Add(" and XLXSJGBMX_XH > :pmaxXH "); + SQL.ParamByName("pmaxXH").Value = maxXH; + } + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Add(" and XLXSCLQD_JGCZBID=:pJGCZBID and XLXSCLQD_JGCZBBBID=:pJGCZBBBID"); + SQL.ParamByName("pJGCZBID").Value = sJGCZBID.Trim(); + SQL.ParamByName("pJGCZBBBID").Value = sJGCZBBBID.Trim(); + } + SQL.Add(" and XLXSTZYZ_MXBH='JZJ' and XLXSTZYZ_YZID=:pYZID"); + SQL.Add(" and XLXSTZYZ_TJYS='5' and XLXSJGBYZZ5_JGBID=XLXSTZYZ_JGBID and XLXSJGBYZZ5_YZID=XLXSTZYZ_YZID "); + SQL.Add(" and XLXSJGBYZZ5_XLXHID=XLXSJGBMX_XLXHID "); + SQL.Add(" and XLXSJGBYZZ5_ZXJMXX<=ISNULL(XLDTJMZHB_DTJM1,0) and ((XLXSJGBYZZ5_ZXJMSX<>0 and XLXSJGBYZZ5_ZXJMSX>=ISNULL(XLDTJMZHB_DTJM1,0)) or XLXSJGBYZZ5_ZXJMSX=0)"); + SQL.Add(" and XLXSJGBYZZ5_ZXSXX<=XLGGB_GGZXS and ((XLXSJGBYZZ5_ZXSSX<>0 and XLXSJGBYZZ5_ZXSSX>=XLGGB_GGZXS) or XLXSJGBYZZ5_ZXSSX=0)"); + //1、优先级由低到高依次更新:电压为空 + SQL.Add(" and XLXSJGBYZZ5_DYDJID=' '"); + + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pJGBID").Value = sJGBID; + SQL.ParamByName("pID").Value = VID; + SQL.ParamByName("pTIMESTAMP").Value = TimeStamp; + SQL.ParamByName("pWHR").Value = tSession.UserName; + SQL.ParamByName("pWHRID").Value = tSession.UserName; + SQL.ParamByName("pWHSJ").Value = DateTime.Now; + dberp.ExecSQL(SQL); + + + SQL.Clear(); + SQL.Add(" merge into XLXSJGBYZZ0 tar "); + SQL.Add(" using V_XLXSBJTJ sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSJGBYZZ0_JGBID=:pJGBID and V_XLXSBJTJ_ID=:pID and XLXSJGBYZZ0_JGBID=V_XLXSBJTJ_JGBID and XLXSJGBYZZ0_XH=V_XLXSBJTJ_XH "); + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSJGBYZZ0_YZZ{0}=V_XLXSBJTJ_YZZ ", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.ParamByName("pID").Value = VID; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + + + SQL.Clear(); + SQL.Add("delete from V_XLXSBJTJ where V_XLXSBJTJ_ID=:pID "); + SQL.ParamByName("pID").Value = VID; + dberp.ExecSQL(SQL); + + + SQL.Clear(); + SQL.Add(" insert into V_XLXSBJTJ(V_XLXSBJTJ_ID,V_XLXSBJTJ_JGBID,V_XLXSBJTJ_XH,V_XLXSBJTJ_YZZ,V_XLXSBJTJ_TIMESTAMP,V_XLXSBJTJ_WHR,V_XLXSBJTJ_WHRID,V_XLXSBJTJ_WHSJ) "); + SQL.Add(" select :pID,XLXSJGBMX_JGBID as JGBID,XLXSJGBMX_XH as XH"); + SQL.Add(string.Format(",XLXSJGBYZZ5_YZZ as YZZ{0},:pTIMESTAMP,:pWHR,:pWHRID,:pWHSJ ", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.Add(" from XLXSTZYZ,XLXSJGBYZZ5,XLXSJGBMX "); + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Add(" left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSJGBMX_XLXHID and XLXSCLQD_XLGGID=XLXSJGBMX_XLGGID and XLXSCLQD_XLBZID=XLXSJGBMX_XLBZID and XLXSCLQD_DYDJID=XLXSJGBMX_DYDJID "); + } + SQL.Add("left join XLXHB on XLXHB_XLXHID=XLXSJGBMX_XLXHID "); + SQL.Add("left join XLXSBJXLGGTHB XLXSBJXLGGTHB_JGB10 on XLXSBJXLGGTHB_JGB10.XLXSBJXLGGTHB_XLGGID=XLXSJGBMX_XLGGID "); + SQL.Add("left join XLGGB on XLGGB_XLGGID = isnull(XLXSBJXLGGTHB_JGB10.XLXSBJXLGGTHB_XLGGIDCH,' ') and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); + SQL.Add("left join XLDTJMZHB on XLDTJMZHB_DTJMZHID=XLGGB_DTJMZHID "); + SQL.Add(" where XLXSJGBMX_JGBID=:pJGBID "); + if (maxXH != 0) + { + SQL.Add(" and XLXSJGBMX_XH > :pmaxXH "); + SQL.ParamByName("pmaxXH").Value = maxXH; + } + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Add(" and XLXSCLQD_JGCZBID=:pJGCZBID and XLXSCLQD_JGCZBBBID=:pJGCZBBBID"); + SQL.ParamByName("pJGCZBID").Value = sJGCZBID.Trim(); + SQL.ParamByName("pJGCZBBBID").Value = sJGCZBBBID.Trim(); + } + SQL.Add(" and XLXSTZYZ_MXBH='JZJ' and XLXSTZYZ_YZID=:pYZID"); + SQL.Add(" and XLXSTZYZ_TJYS='5' and XLXSJGBYZZ5_JGBID=XLXSTZYZ_JGBID and XLXSJGBYZZ5_YZID=XLXSTZYZ_YZID "); + SQL.Add(" and XLXSJGBYZZ5_XLXHID=XLXSJGBMX_XLXHID "); + SQL.Add(" and XLXSJGBYZZ5_ZXJMXX<=ISNULL(XLDTJMZHB_DTJM1,0) and ((XLXSJGBYZZ5_ZXJMSX<>0 and XLXSJGBYZZ5_ZXJMSX>=ISNULL(XLDTJMZHB_DTJM1,0)) or XLXSJGBYZZ5_ZXJMSX=0)"); + SQL.Add(" and XLXSJGBYZZ5_ZXSXX<=XLGGB_GGZXS and ((XLXSJGBYZZ5_ZXSSX<>0 and XLXSJGBYZZ5_ZXSSX>=XLGGB_GGZXS) or XLXSJGBYZZ5_ZXSSX=0)"); + //2、优先级由低到高依次更新:电压不为空 + SQL.Add(" and XLXSJGBYZZ5_DYDJID=XLXSJGBMX_DYDJID "); + + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pJGBID").Value = sJGBID; + SQL.ParamByName("pID").Value = VID; + SQL.ParamByName("pTIMESTAMP").Value = TimeStamp; + SQL.ParamByName("pWHR").Value = tSession.UserName; + SQL.ParamByName("pWHRID").Value = tSession.UserName; + SQL.ParamByName("pWHSJ").Value = DateTime.Now; + dberp.ExecSQL(SQL); + + + SQL.Clear(); + SQL.Add(" merge into XLXSJGBYZZ0 tar "); + SQL.Add(" using V_XLXSBJTJ sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSJGBYZZ0_JGBID=:pJGBID and V_XLXSBJTJ_ID=:pID and XLXSJGBYZZ0_JGBID=V_XLXSBJTJ_JGBID and XLXSJGBYZZ0_XH=V_XLXSBJTJ_XH "); + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSJGBYZZ0_YZZ{0}=V_XLXSBJTJ_YZZ ", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.ParamByName("pID").Value = VID; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + + + SQL.Clear(); + SQL.Add("delete from V_XLXSBJTJ where V_XLXSBJTJ_ID=:pID "); + SQL.ParamByName("pID").Value = VID; + dberp.ExecSQL(SQL); + + + + + } + } + } + + + + //自动插入TJYS=8的调价因子值 + if (!sTJYSList8.Trim().Equals("")) + { + string[] sTJYZ = sTJYSList8.Split(','); + for (int i = 0; i < sTJYZ.Length; i++) + { + if (!sTJYZ[i].Trim().Equals("")) + { + + + SQL.Clear(); + SQL.Add(" insert into V_XLXSBJTJ(V_XLXSBJTJ_ID,V_XLXSBJTJ_JGBID,V_XLXSBJTJ_XH,V_XLXSBJTJ_YZZ,V_XLXSBJTJ_TIMESTAMP,V_XLXSBJTJ_WHR,V_XLXSBJTJ_WHRID,V_XLXSBJTJ_WHSJ) "); + SQL.Add(" select :pID,XLXSJGBMX_JGBID as JGBID,XLXSJGBMX_XH as XH"); + SQL.Add(string.Format(",ISNULL(XLXSJGBYZZ8_YZZ * XLXSCLQD_CLZL/1000,0) as YZZ{0},:pTIMESTAMP,:pWHR,:pWHRID,:pWHSJ ", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.Add(" from XLXSJGBMX,XLXSTZYZ,XLXSJGBYZZ8 "); + SQL.Add(" left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSJGBYZZ8_XLXHID and XLXSCLQD_XLGGID=XLXSJGBYZZ8_XLGGID and XLXSCLQD_XLBZID=XLXSJGBYZZ8_XLBZID and XLXSCLQD_DYDJID=XLXSJGBYZZ8_DYDJID "); + SQL.Add(" where XLXSJGBMX_JGBID=:pJGBID "); + if (maxXH != 0) + { + SQL.Add(" and XLXSJGBMX_XH > :pmaxXH "); + SQL.ParamByName("pmaxXH").Value = maxXH; + } + SQL.Add(" and XLXSTZYZ_MXBH='JZJ' and XLXSTZYZ_YZID=:pYZID"); + SQL.Add(" and XLXSTZYZ_TJYS='8' and XLXSJGBYZZ8_JGBID=XLXSTZYZ_JGBID and XLXSJGBYZZ8_YZID=XLXSTZYZ_YZID "); + SQL.Add(" and XLXSJGBYZZ8_XLXHID=XLXSJGBMX_XLXHID and XLXSJGBYZZ8_XLGGID=XLXSJGBMX_XLGGID and XLXSJGBYZZ8_XLBZID=XLXSJGBMX_XLBZID and XLXSJGBYZZ8_DYDJID=XLXSJGBMX_DYDJID "); + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Add(" and XLXSCLQD_JGCZBID=:pJGCZBID and XLXSCLQD_JGCZBBBID=:pJGCZBBBID"); + SQL.ParamByName("pJGCZBID").Value = sJGCZBID.Trim(); + SQL.ParamByName("pJGCZBBBID").Value = sJGCZBBBID.Trim(); + } + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pJGBID").Value = sJGBID; + SQL.ParamByName("pID").Value = VID; + SQL.ParamByName("pTIMESTAMP").Value = TimeStamp; + SQL.ParamByName("pWHR").Value = tSession.UserName; + SQL.ParamByName("pWHRID").Value = tSession.UserName; + SQL.ParamByName("pWHSJ").Value = DateTime.Now; + dberp.ExecSQL(SQL); + + + SQL.Clear(); + SQL.Add(" merge into XLXSJGBYZZ0 tar "); + SQL.Add(" using V_XLXSBJTJ sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSJGBYZZ0_JGBID=:pJGBID and V_XLXSBJTJ_ID=:pID and XLXSJGBYZZ0_JGBID=V_XLXSBJTJ_JGBID and XLXSJGBYZZ0_XH=V_XLXSBJTJ_XH "); + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSJGBYZZ0_YZZ{0}=V_XLXSBJTJ_YZZ ", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.ParamByName("pID").Value = VID; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + + + SQL.Clear(); + SQL.Add("delete from V_XLXSBJTJ where V_XLXSBJTJ_ID=:pID "); + SQL.ParamByName("pID").Value = VID; + dberp.ExecSQL(SQL); + + } + } + } + //自动插入TJYS=9的调价因子值 + if (!sTJYSList9.Trim().Equals("")) + { + string[] sTJYZ = sTJYSList9.Split(','); + for (int i = 0; i < sTJYZ.Length; i++) + { + if (!sTJYZ[i].Trim().Equals("")) + { + TZYZXX yzxx = XLBJDUtils.GetYZXXByYZID(sTJYZ[i].Trim()); + + + SQL.Clear(); + SQL.Add(" insert into V_XLXSBJTJ(V_XLXSBJTJ_ID,V_XLXSBJTJ_JGBID,V_XLXSBJTJ_XH,V_XLXSBJTJ_YZZ,V_XLXSBJTJ_TIMESTAMP,V_XLXSBJTJ_WHR,V_XLXSBJTJ_WHRID,V_XLXSBJTJ_WHSJ) "); + SQL.Add(" select :pID, XLXSJGBMX_JGBID as JGBID,XLXSJGBMX_XH as XH"); + SQL.Add(string.Format(",XLXSJGBYZZ9_YZZ as YZZ{0},:pTIMESTAMP,:pWHR,:pWHRID,:pWHSJ", sTJYZ[i].Trim().Replace("JZ", ""))); + + SQL.Add(" from XLXSJGBMX "); + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Add(" left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSJGBMX_XLXHID and XLXSCLQD_XLGGID=XLXSJGBMX_XLGGID and XLXSCLQD_DYDJID=XLXSJGBMX_DYDJID "); + } + SQL.Add(" ,XLXSJGBYZZ9 "); + SQL.Add(" where XLXSJGBMX_JGBID=:pJGBID "); + if (maxXH != 0) + { + SQL.Add(" and XLXSJGBMX_XH > :pmaxXH "); + SQL.ParamByName("pmaxXH").Value = maxXH; + } + SQL.Add(" and XLXSJGBYZZ9_JGBID=:pTJJGBID and XLXSJGBYZZ9_YZID=:pYZID "); + SQL.Add(" and XLXSJGBYZZ9_XLXHID=XLXSJGBMX_XLXHID and XLXSJGBYZZ9_XLGGID=XLXSJGBMX_XLGGID and XLXSJGBYZZ9_DYDJID=XLXSJGBMX_DYDJID "); + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Add(" and XLXSCLQD_JGCZBID=:pJGCZBID and XLXSCLQD_JGCZBBBID=:pJGCZBBBID"); + SQL.ParamByName("pJGCZBID").Value = sJGCZBID.Trim(); + SQL.ParamByName("pJGCZBBBID").Value = sJGCZBBBID.Trim(); + } + SQL.ParamByName("pTJJGBID").Value = yzxx.XLXSTZYZ_JGBID.Trim(); + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pJGBID").Value = sJGBID; + SQL.ParamByName("pID").Value = VID; + SQL.ParamByName("pTIMESTAMP").Value = TimeStamp; + SQL.ParamByName("pWHR").Value = tSession.UserName; + SQL.ParamByName("pWHRID").Value = tSession.UserName; + SQL.ParamByName("pWHSJ").Value = DateTime.Now; + + dberp.ExecSQL(SQL); + + + + SQL.Clear(); + SQL.Add(" merge into XLXSJGBYZZ0 tar "); + SQL.Add(" using V_XLXSBJTJ sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSJGBYZZ0_JGBID=:pJGBID and V_XLXSBJTJ_ID=:pID and XLXSJGBYZZ0_JGBID=V_XLXSBJTJ_JGBID and XLXSJGBYZZ0_XH=V_XLXSBJTJ_XH "); + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSJGBYZZ0_YZZ{0}=V_XLXSBJTJ_YZZ ", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.ParamByName("pID").Value = VID; + + SQL.ParamByName("pJGBID").Value = sJGBID; + + dberp.ExecSQL(SQL); + + + + SQL.Clear(); + SQL.Add("delete from V_XLXSBJTJ where V_XLXSBJTJ_ID=:pID "); + SQL.ParamByName("pID").Value = VID; + dberp.ExecSQL(SQL); + + + SQL.Clear(); + SQL.Add(" insert into V_XLXSBJTJ(V_XLXSBJTJ_ID,V_XLXSBJTJ_JGBID,V_XLXSBJTJ_XH,V_XLXSBJTJ_YZZ,V_XLXSBJTJ_TIMESTAMP,V_XLXSBJTJ_WHR,V_XLXSBJTJ_WHRID,V_XLXSBJTJ_WHSJ) "); + SQL.Add(" select :pID, XLXSJGBMX_JGBID as JGBID,XLXSJGBMX_XH as XH"); + SQL.Add(string.Format(",XLXSJGBYZZ9_YZZ as YZZ{0},:pTIMESTAMP,:pWHR,:pWHRID,:pWHSJ", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.Add(" from XLXSJGBMX,XLXSJGBYZZ9 "); + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Add(" left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSJGBYZZ9_XLXHID and XLXSCLQD_XLGGID=XLXSJGBYZZ9_XLGGID and XLXSCLQD_DYDJID=XLXSJGBYZZ9_DYDJID "); + } + SQL.Add(" where XLXSJGBMX_JGBID=:pJGBID "); + if (maxXH != 0) + { + SQL.Add(" and XLXSJGBMX_XH > :pmaxXH "); + SQL.ParamByName("pmaxXH").Value = maxXH; + } + SQL.Add(" and XLXSJGBYZZ9_JGBID=:pTJJGBID and XLXSJGBYZZ9_YZID=:pYZID "); + SQL.Add(" and XLXSJGBYZZ9_XLXHID=XLXSJGBMX_XLXHID and XLXSJGBYZZ9_XLGGID=XLXSJGBMX_XLGGID and XLXSJGBYZZ9_DYDJID=XLXSJGBMX_DYDJID "); + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Add(" and XLXSCLQD_JGCZBID=:pJGCZBID and XLXSCLQD_JGCZBBBID=:pJGCZBBBID"); + SQL.ParamByName("pJGCZBID").Value = sJGCZBID.Trim(); + SQL.ParamByName("pJGCZBBBID").Value = sJGCZBBBID.Trim(); + } + SQL.ParamByName("pTJJGBID").Value = yzxx.XLXSTZYZ_JGBID.Trim(); + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pJGBID").Value = sJGBID; + SQL.ParamByName("pID").Value = VID; + SQL.ParamByName("pTIMESTAMP").Value = TimeStamp; + SQL.ParamByName("pWHR").Value = tSession.UserName; + SQL.ParamByName("pWHRID").Value = tSession.UserName; + SQL.ParamByName("pWHSJ").Value = DateTime.Now; + + dberp.ExecSQL(SQL); + + + + SQL.Clear(); + SQL.Add(" merge into XLXSJGBYZZ0 tar "); + SQL.Add(" using V_XLXSBJTJ sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSJGBYZZ0_JGBID=:pJGBID and V_XLXSBJTJ_ID=:pID and XLXSJGBYZZ0_JGBID=V_XLXSBJTJ_JGBID and XLXSJGBYZZ0_XH=V_XLXSBJTJ_XH "); + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSJGBYZZ0_YZZ{0}=V_XLXSBJTJ_YZZ ", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.ParamByName("pID").Value = VID; + + SQL.ParamByName("pJGBID").Value = sJGBID; + + dberp.ExecSQL(SQL); + + + + SQL.Clear(); + SQL.Add("delete from V_XLXSBJTJ where V_XLXSBJTJ_ID=:pID "); + SQL.ParamByName("pID").Value = VID; + dberp.ExecSQL(SQL); + + + + + } + } + } + } + + + + //sTJYSList1:记录调价因素不为空的因子id + //sTJYSList_:记录调价因素为空的因子id + public static void AddXLXSJGBYZZ0(TDatabase dberp, string sMXBH, string sJGBID, string sTJYSList_, string sTJYSList1, string sTJYSList3, string sTJYSList4, string sTJYSList5, string sTJYSList8, string sTJYSList9, bool bInsertXLXSJGBYZZ0, string sJGCZBID, string sJGCZBBBID, double maxXH, string sBJU003) + { + CMISproSession tSession = CMISproApp.GetSession(); + string sJJYZIDList = string.Empty; + Dictionary dicLenJLDWTD = XLBJDUtils.GetLenJLDWTD(); + TSQL SQL = new TSQL(dberp); + + //插入XLXSJGBMX记录后需要自动补齐XLXSJGBYZZ0记录 + if (bInsertXLXSJGBYZZ0) + { + Mac.MacLog.TraceFormat(String.Format("AddXLXSJGBYZZ0-InsXLXSJGBYZZ0-Begin")); + //如果存在调价因素为空的因子 + if (!sTJYSList_.Trim().Equals("")) + { + string[] sTJYZs = sTJYSList_.Split(','); + + SQL.Clear(); + SQL.Add("insert into XLXSJGBYZZ0(XLXSJGBYZZ0_JGBID,XLXSJGBYZZ0_XH"); + for (int i = 0; i < sTJYZs.Length; i++) + { + if (XLBJDUtils.GetYZXXByYZID(sTJYZs[i].Trim()).XLXSTZYZ_JJFS == "JJ") + sJJYZIDList += sTJYZs[i].Trim() + ","; + SQL.Add(string.Format(",XLXSJGBYZZ0_YZZ{0}", sTJYZs[i].Trim().Replace("JZ", ""))); + } + SQL.Add(") "); + SQL.Add("select XLXSJGBMX_JGBID as JGBID,XLXSJGBMX_XH as XH"); + for (int i = 0; i < sTJYZs.Length; i++) + { + SQL.Add(string.Format(",sum(CASE XLXSTZYZ_YZID WHEN '{0}' THEN XLXSJGBYZZ_YZZ ELSE 0 END) as YZZ{1}", sTJYZs[i].Trim(), sTJYZs[i].Trim().Replace("JZ", ""))); + } + + SQL.Add(" from XLXSJGBMX,XLXSTZYZ,XLXSJGBYZZ "); + SQL.Add("where XLXSJGBMX_JGBID=:pJGBID "); + if (maxXH != 0) + { + SQL.Add(" and XLXSJGBMX_XH > :pmaxXH "); + SQL.ParamByName("pmaxXH").Value = maxXH; + } + SQL.Add("and XLXSTZYZ_MXBH='JZJ' and " + CMISproDataBase.GetWhereEqual("XLXSTZYZ_YZID", sTJYSList_.Trim())); + SQL.Add("and XLXSTZYZ_TJYS=' ' and XLXSJGBYZZ_JGBID=XLXSTZYZ_JGBID and XLXSJGBYZZ_YZID=XLXSTZYZ_YZID "); + SQL.Add("and not exists "); + SQL.Add("( "); + SQL.Add("select 1 "); + SQL.Add("from XLXSJGBYZZ0 "); + SQL.Add("where XLXSJGBYZZ0_JGBID=:pJGBID "); + SQL.Add("and XLXSJGBYZZ0_XH=XLXSJGBMX_XH "); + SQL.Add(") "); + SQL.Add(" group by XLXSJGBMX_JGBID,XLXSJGBMX_XH,XLXSJGBMX_JLDW"); + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + Mac.MacLog.TraceFormat(String.Format("AddXLXSJGBYZZ0-InsXLXSJGBYZZ0-调价因素为空1-end")); + } + else + { + SQL.Clear(); + SQL.Add("insert into XLXSJGBYZZ0(XLXSJGBYZZ0_JGBID,XLXSJGBYZZ0_XH) "); + SQL.Add("select XLXSJGBMX_JGBID as JGBID,XLXSJGBMX_XH as XH"); + SQL.Add(" from XLXSJGBMX "); + SQL.Add("where XLXSJGBMX_JGBID=:pJGBID "); + if (maxXH != 0) + { + SQL.Add(" and XLXSJGBMX_XH > :pmaxXH "); + SQL.ParamByName("pmaxXH").Value = maxXH; + } + SQL.Add("and not exists "); + SQL.Add("( "); + SQL.Add("select 1 "); + SQL.Add("from XLXSJGBYZZ0 "); + SQL.Add("where XLXSJGBYZZ0_JGBID=:pJGBID "); + SQL.Add("and XLXSJGBYZZ0_XH=XLXSJGBMX_XH "); + SQL.Add(") "); + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + Mac.MacLog.TraceFormat(String.Format("AddXLXSJGBYZZ0-InsXLXSJGBYZZ0-调价因素为空2-end")); + } + } + + //先清空TJYS<>' '的调价因子值 + if (!sTJYSList1.Trim().Equals("") || !sTJYSList3.Trim().Equals("") || !sTJYSList4.Trim().Equals("") || !sTJYSList5.Trim().Equals("") || !sTJYSList8.Trim().Equals("") || !sTJYSList9.Trim().Equals("")) + { + Dictionary dicJGBFGQCPYZ = XLBJDInfo.GetJGBFGQCPYZ(sJGBID); + string[] sTJYZ1 = sTJYSList1.Split(','); + string[] sTJYZ3 = sTJYSList3.Split(','); + string[] sTJYZ4 = sTJYSList4.Split(','); + string[] sTJYZ5 = sTJYSList5.Split(','); + string[] sTJYZ8 = sTJYSList8.Split(','); + string[] sTJYZ9 = sTJYSList9.Split(','); + bool bflag = false; + SQL.Clear(); + SQL.Add("update XLXSJGBYZZ0 set "); + if (!sTJYSList1.Trim().Equals("")) + { + for (int i = 0; i < sTJYZ1.Length; i++) + { + int iYZZ = 0; + if (dicJGBFGQCPYZ.ContainsKey(sTJYZ1[i].Trim())) + iYZZ = -9999; + if (i == 0) + SQL.Add(string.Format("XLXSJGBYZZ0_YZZ{0}={1}", sTJYZ1[i].Trim().Replace("JZ", ""), iYZZ)); + else + SQL.Add(string.Format(",XLXSJGBYZZ0_YZZ{0}={1}", sTJYZ1[i].Trim().Replace("JZ", ""), iYZZ)); + bflag = true; + } + } + if (!sTJYSList3.Trim().Equals("")) + { + for (int i = 0; i < sTJYZ3.Length; i++) + { + int iYZZ = 0; + if (dicJGBFGQCPYZ.ContainsKey(sTJYZ3[i].Trim())) + iYZZ = -9999; + if (bflag) + { + SQL.Add(string.Format(",XLXSJGBYZZ0_YZZ{0}={1}", sTJYZ3[i].Trim().Replace("JZ", ""), iYZZ)); + } + else + { + if (i == 0) + SQL.Add(string.Format("XLXSJGBYZZ0_YZZ{0}={1}", sTJYZ3[i].Trim().Replace("JZ", ""), iYZZ)); + else + SQL.Add(string.Format(",XLXSJGBYZZ0_YZZ{0}={1}", sTJYZ3[i].Trim().Replace("JZ", ""), iYZZ)); + } + bflag = true; + } + } + if (!sTJYSList4.Trim().Equals("")) + { + for (int i = 0; i < sTJYZ4.Length; i++) + { + int iYZZ = 0; + if (dicJGBFGQCPYZ.ContainsKey(sTJYZ4[i].Trim())) + iYZZ = -9999; + if (bflag) + { + SQL.Add(string.Format(",XLXSJGBYZZ0_YZZ{0}={1}", sTJYZ4[i].Trim().Replace("JZ", ""), iYZZ)); + } + else + { + if (i == 0) + SQL.Add(string.Format("XLXSJGBYZZ0_YZZ{0}={1}", sTJYZ4[i].Trim().Replace("JZ", ""), iYZZ)); + else + SQL.Add(string.Format(",XLXSJGBYZZ0_YZZ{0}={1}", sTJYZ4[i].Trim().Replace("JZ", ""), iYZZ)); + } + + bflag = true; + } + } + if (!sTJYSList5.Trim().Equals("")) + { + for (int i = 0; i < sTJYZ5.Length; i++) + { + int iYZZ = 0; + if (dicJGBFGQCPYZ.ContainsKey(sTJYZ5[i].Trim())) + iYZZ = -9999; + if (bflag) + { + SQL.Add(string.Format(",XLXSJGBYZZ0_YZZ{0}={1}", sTJYZ5[i].Trim().Replace("JZ", ""), iYZZ)); + } + else + { + if (i == 0) + SQL.Add(string.Format("XLXSJGBYZZ0_YZZ{0}={1}", sTJYZ5[i].Trim().Replace("JZ", ""), iYZZ)); + else + SQL.Add(string.Format(",XLXSJGBYZZ0_YZZ{0}={1}", sTJYZ5[i].Trim().Replace("JZ", ""), iYZZ)); + } + + bflag = true; + } + } + if (!sTJYSList8.Trim().Equals("")) + { + for (int i = 0; i < sTJYZ8.Length; i++) + { + int iYZZ = 0; + if (dicJGBFGQCPYZ.ContainsKey(sTJYZ8[i].Trim())) + iYZZ = -9999; + if (bflag) + { + SQL.Add(string.Format(",XLXSJGBYZZ0_YZZ{0}={1}", sTJYZ8[i].Trim().Replace("JZ", ""), iYZZ)); + } + else + { + if (i == 0) + SQL.Add(string.Format("XLXSJGBYZZ0_YZZ{0}={1}", sTJYZ8[i].Trim().Replace("JZ", ""), iYZZ)); + else + SQL.Add(string.Format(",XLXSJGBYZZ0_YZZ{0}={1}", sTJYZ8[i].Trim().Replace("JZ", ""), iYZZ)); + } + bflag = true; + } + } + if (!sTJYSList9.Trim().Equals("")) + { + for (int i = 0; i < sTJYZ9.Length; i++) + { + int iYZZ = 0; + if (dicJGBFGQCPYZ.ContainsKey(sTJYZ9[i].Trim())) + iYZZ = -9999; + if (bflag) + { + SQL.Add(string.Format(",XLXSJGBYZZ0_YZZ{0}={1}", sTJYZ9[i].Trim().Replace("JZ", ""), iYZZ)); + } + else + { + if (i == 0) + SQL.Add(string.Format("XLXSJGBYZZ0_YZZ{0}={1}", sTJYZ9[i].Trim().Replace("JZ", ""), iYZZ)); + else + SQL.Add(string.Format(",XLXSJGBYZZ0_YZZ{0}={1}", sTJYZ9[i].Trim().Replace("JZ", ""), iYZZ)); + } + bflag = true; + } + } + SQL.Add(" where XLXSJGBYZZ0_JGBID=:pJGBID "); + if (maxXH != 0) + { + SQL.Add(" and XLXSJGBYZZ0_XH > :pmaxXH "); + SQL.ParamByName("pmaxXH").Value = maxXH; + } + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Add(" and exists(select 1 from XLXSJGBMX"); + SQL.Add(" left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSJGBMX_XLXHID and XLXSCLQD_XLGGID=XLXSJGBMX_XLGGID and XLXSCLQD_XLBZID=XLXSJGBMX_XLBZID and XLXSCLQD_DYDJID=XLXSJGBMX_DYDJID "); + SQL.Add(" where XLXSJGBMX_JGBID=:pJGBID and XLXSJGBMX_XH=XLXSJGBYZZ0_XH "); + SQL.Add(" and XLXSCLQD_JGCZBID=:pJGCZBID and XLXSCLQD_JGCZBBBID=:pJGCZBBBID"); + SQL.Add(" )"); + SQL.ParamByName("pJGCZBID").Value = sJGCZBID.Trim(); + SQL.ParamByName("pJGCZBBBID").Value = sJGCZBBBID.Trim(); + } + SQL.ParamByName("pJGBID").Value = sJGBID; + Mac.MacLog.TraceFormat(String.Format("AddXLXSJGBYZZ0-清空TJYS<>' '的调价因子值-begin")); + dberp.ExecSQL(SQL); + Mac.MacLog.TraceFormat(String.Format("AddXLXSJGBYZZ0-清空TJYS<>' '的调价因子值-end")); + } + + int VID = CMISproDataBase.NewID("DBERP", "V_XLXSBJTJ"); + DateTime TimeStamp = MISproUtils.GetServerTime(); + //自动插入TJYS=1的调价因子值 + if (!sTJYSList1.Trim().Equals("")) + { + string[] sTJYZ = sTJYSList1.Split(','); + for (int i = 0; i < sTJYZ.Length; i++) + { + if (!sTJYZ[i].Trim().Equals("")) + { + TZYZXX yzxx = XLBJDUtils.GetYZXXByYZID(sTJYZ[i].Trim()); + + + if (yzxx.XLXSTZYZ_JJFS == "JJ") + + sJJYZIDList += sTJYZ[i].Trim() + ","; + + SQL.Clear(); + SQL.Add(" insert into V_XLXSBJTJ(V_XLXSBJTJ_ID,V_XLXSBJTJ_JGBID,V_XLXSBJTJ_XH,V_XLXSBJTJ_YZZ,V_XLXSBJTJ_TIMESTAMP,V_XLXSBJTJ_WHR,V_XLXSBJTJ_WHRID,V_XLXSBJTJ_WHSJ) "); + SQL.Add(" select :pID, XLXSJGBMX_JGBID as JGBID,XLXSJGBMX_XH as XH"); + SQL.Add(string.Format(",XLXSJGBYZZ1_YZZ as YZZ{0},:pTIMESTAMP,:pWHR,:pWHRID,:pWHSJ", sTJYZ[i].Trim().Replace("JZ", ""))); + + SQL.Add(" from XLXSJGBMX "); + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Add(" left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSJGBMX_XLXHID and XLXSCLQD_XLGGID=XLXSJGBMX_XLGGID and XLXSCLQD_XLBZID=XLXSJGBMX_XLBZID and XLXSCLQD_DYDJID=XLXSJGBMX_DYDJID "); + } + SQL.Add(" ,XLXSJGBYZZ1 "); + SQL.Add(" where XLXSJGBMX_JGBID=:pJGBID "); + if (maxXH != 0) + { + SQL.Add(" and XLXSJGBMX_XH > :pmaxXH "); + SQL.ParamByName("pmaxXH").Value = maxXH; + } + SQL.Add(" and XLXSJGBYZZ1_JGBID=:pTJJGBID and XLXSJGBYZZ1_YZID=:pYZID "); + SQL.Add(" and XLXSJGBYZZ1_XLXHID=XLXSJGBMX_XLXHID and XLXSJGBYZZ1_XLGGID=XLXSJGBMX_XLGGID and XLXSJGBYZZ1_XLBZID=' ' and XLXSJGBYZZ1_DYDJID=XLXSJGBMX_DYDJID "); + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Add(" and XLXSCLQD_JGCZBID=:pJGCZBID and XLXSCLQD_JGCZBBBID=:pJGCZBBBID"); + SQL.ParamByName("pJGCZBID").Value = sJGCZBID.Trim(); + SQL.ParamByName("pJGCZBBBID").Value = sJGCZBBBID.Trim(); + } + SQL.ParamByName("pTJJGBID").Value = yzxx.XLXSTZYZ_JGBID.Trim(); + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pJGBID").Value = sJGBID; + SQL.ParamByName("pID").Value = VID; + SQL.ParamByName("pTIMESTAMP").Value = TimeStamp; + SQL.ParamByName("pWHR").Value = tSession.UserName; + SQL.ParamByName("pWHRID").Value = tSession.UserName; + SQL.ParamByName("pWHSJ").Value = DateTime.Now; + + dberp.ExecSQL(SQL); + + + + SQL.Clear(); + SQL.Add(" merge into XLXSJGBYZZ0 tar "); + SQL.Add(" using V_XLXSBJTJ sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSJGBYZZ0_JGBID=:pJGBID and V_XLXSBJTJ_ID=:pID and XLXSJGBYZZ0_JGBID=V_XLXSBJTJ_JGBID and XLXSJGBYZZ0_XH=V_XLXSBJTJ_XH "); + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSJGBYZZ0_YZZ{0}=V_XLXSBJTJ_YZZ ", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.ParamByName("pID").Value = VID; + + SQL.ParamByName("pJGBID").Value = sJGBID; + + dberp.ExecSQL(SQL); + + + + SQL.Clear(); + SQL.Add("delete from V_XLXSBJTJ where V_XLXSBJTJ_ID=:pID "); + SQL.ParamByName("pID").Value = VID; + dberp.ExecSQL(SQL); + + + SQL.Clear(); + SQL.Add(" insert into V_XLXSBJTJ(V_XLXSBJTJ_ID,V_XLXSBJTJ_JGBID,V_XLXSBJTJ_XH,V_XLXSBJTJ_YZZ,V_XLXSBJTJ_TIMESTAMP,V_XLXSBJTJ_WHR,V_XLXSBJTJ_WHRID,V_XLXSBJTJ_WHSJ) "); + SQL.Add(" select :pID, XLXSJGBMX_JGBID as JGBID,XLXSJGBMX_XH as XH"); + SQL.Add(string.Format(",XLXSJGBYZZ1_YZZ as YZZ{0},:pTIMESTAMP,:pWHR,:pWHRID,:pWHSJ", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.Add(" from XLXSJGBMX,XLXSJGBYZZ1 "); + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Add(" left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSJGBYZZ1_XLXHID and XLXSCLQD_XLGGID=XLXSJGBYZZ1_XLGGID and XLXSCLQD_XLBZID=XLXSJGBYZZ1_XLBZID and XLXSCLQD_DYDJID=XLXSJGBYZZ1_DYDJID "); + } + SQL.Add(" where XLXSJGBMX_JGBID=:pJGBID "); + if (maxXH != 0) + { + SQL.Add(" and XLXSJGBMX_XH > :pmaxXH "); + SQL.ParamByName("pmaxXH").Value = maxXH; + } + SQL.Add(" and XLXSJGBYZZ1_JGBID=:pTJJGBID and XLXSJGBYZZ1_YZID=:pYZID "); + SQL.Add(" and XLXSJGBYZZ1_XLXHID=XLXSJGBMX_XLXHID and XLXSJGBYZZ1_XLGGID=XLXSJGBMX_XLGGID and XLXSJGBYZZ1_XLBZID=XLXSJGBMX_XLBZID and XLXSJGBYZZ1_DYDJID=XLXSJGBMX_DYDJID "); + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Add(" and XLXSCLQD_JGCZBID=:pJGCZBID and XLXSCLQD_JGCZBBBID=:pJGCZBBBID"); + SQL.ParamByName("pJGCZBID").Value = sJGCZBID.Trim(); + SQL.ParamByName("pJGCZBBBID").Value = sJGCZBBBID.Trim(); + } + SQL.ParamByName("pTJJGBID").Value = yzxx.XLXSTZYZ_JGBID.Trim(); + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pJGBID").Value = sJGBID; + SQL.ParamByName("pID").Value = VID; + SQL.ParamByName("pTIMESTAMP").Value = TimeStamp; + SQL.ParamByName("pWHR").Value = tSession.UserName; + SQL.ParamByName("pWHRID").Value = tSession.UserName; + SQL.ParamByName("pWHSJ").Value = DateTime.Now; + + dberp.ExecSQL(SQL); + + + + SQL.Clear(); + SQL.Add(" merge into XLXSJGBYZZ0 tar "); + SQL.Add(" using V_XLXSBJTJ sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSJGBYZZ0_JGBID=:pJGBID and V_XLXSBJTJ_ID=:pID and XLXSJGBYZZ0_JGBID=V_XLXSBJTJ_JGBID and XLXSJGBYZZ0_XH=V_XLXSBJTJ_XH "); + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSJGBYZZ0_YZZ{0}=V_XLXSBJTJ_YZZ ", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.ParamByName("pID").Value = VID; + + SQL.ParamByName("pJGBID").Value = sJGBID; + + dberp.ExecSQL(SQL); + + + + SQL.Clear(); + SQL.Add("delete from V_XLXSBJTJ where V_XLXSBJTJ_ID=:pID "); + SQL.ParamByName("pID").Value = VID; + dberp.ExecSQL(SQL); + + + + + } + } + } + + //自动插入TJYS=3的调价因子值 + if (!sTJYSList3.Trim().Equals("")) + { + string[] sTJYZ = sTJYSList3.Split(','); + + SQL.Clear(); + SQL.Add("select XLXSJGB_XSQYIDS from XLXSJGB where XLXSJGB_MXBH=:pMXBH and XLXSJGB_JGBID=:pJGBID"); + SQL.ParamByName("pMXBH").Value = sMXBH; + SQL.ParamByName("pJGBID").Value = sJGBID; + DataSet dsJGB = dberp.OpenDataSet(SQL); + string sXSQYIDS = dsJGB.Tables[0].Rows[0][0].ToString().Trim(); + sXSQYIDS = sXSQYIDS.Split(',')[0].Trim();//只取第一个区域设置的因子值 + + for (int i = 0; i < sTJYZ.Length; i++) + { + if (!sTJYZ[i].Trim().Equals("")) + { + TZYZXX yzxx = XLBJDUtils.GetYZXXByYZID(sTJYZ[i].Trim()); + + if (yzxx.XLXSTZYZ_JJFS == "JJ") + sJJYZIDList += sTJYZ[i].Trim() + ","; + + + + + + + + SQL.Clear(); + SQL.Add(" insert into V_XLXSBJTJ(V_XLXSBJTJ_ID,V_XLXSBJTJ_JGBID,V_XLXSBJTJ_XH,V_XLXSBJTJ_YZZ,V_XLXSBJTJ_TIMESTAMP,V_XLXSBJTJ_WHR,V_XLXSBJTJ_WHRID,V_XLXSBJTJ_WHSJ) "); + SQL.Add("select :pID, XLXSJGBMX_JGBID as JGBID,XLXSJGBMX_XH as XH "); + SQL.Add(string.Format(",isnull(YZZ,0) as YZZ{0},:pTIMESTAMP,:pWHR,:pWHRID,:pWHSJ ", sTJYZ[i].Trim().Replace("JZ", ""))); + + + + + SQL.Add(" from XLXSJGBMX "); + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Add(" left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSJGBMX_XLXHID and XLXSCLQD_XLGGID=XLXSJGBMX_XLGGID and XLXSCLQD_XLBZID=XLXSJGBMX_XLBZID and XLXSCLQD_DYDJID=XLXSJGBMX_DYDJID "); + } + SQL.Add("left join XLXHB on XLXHB_XLXHID=XLXSJGBMX_XLXHID "); + SQL.Add("left join "); + SQL.Add("( "); + SQL.Add(" select XLXSJGBYZZ3_XSQYID as XSQYID,XLXSJGBYZZ3_DTCLID as DTCLID,XLXSJGBYZZ3_YZID as YZID,XLXSJGBYZZ3_YZZ as YZZ"); + SQL.Add(" from XLXSJGBYZZ3,XLXSTZYZ"); + SQL.Add(" where XLXSTZYZ_MXBH='JZJ' and XLXSTZYZ_TJYS='3' and XLXSJGBYZZ3_JGBID=XLXSTZYZ_JGBID and XLXSJGBYZZ3_YZID=XLXSTZYZ_YZID"); + //型号、主芯截面都没有匹配 + SQL.Add(" and XLXSJGBYZZ3_XLXHID=' '"); + SQL.Add(" and XLXSJGBYZZ3_ZXJM=0"); + SQL.Add(" and XLXSJGBYZZ3_XSQYID='" + sXSQYIDS + "'"); + SQL.Add(" and XLXSJGBYZZ3_YZID=:pYZID"); + SQL.Add(" ) a on a.DTCLID=XLXHB_DTCLID"); + SQL.Add("where XLXSJGBMX_JGBID=:pJGBID and isnull(YZID,' ')<>' ' "); + if (maxXH != 0) + { + SQL.Add(" and XLXSJGBMX_XH > :pmaxXH "); + SQL.ParamByName("pmaxXH").Value = maxXH; + } + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Add(" and XLXSCLQD_JGCZBID=:pJGCZBID and XLXSCLQD_JGCZBBBID=:pJGCZBBBID"); + SQL.ParamByName("pJGCZBID").Value = sJGCZBID.Trim(); + SQL.ParamByName("pJGCZBBBID").Value = sJGCZBBBID.Trim(); + } + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pJGBID").Value = sJGBID; + SQL.ParamByName("pID").Value = VID; + SQL.ParamByName("pTIMESTAMP").Value = TimeStamp; + SQL.ParamByName("pWHR").Value = tSession.UserName; + SQL.ParamByName("pWHRID").Value = tSession.UserName; + SQL.ParamByName("pWHSJ").Value = DateTime.Now; + dberp.ExecSQL(SQL); + + + SQL.Clear(); + SQL.Add(" merge into XLXSJGBYZZ0 tar "); + SQL.Add(" using V_XLXSBJTJ sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSJGBYZZ0_JGBID=:pJGBID and V_XLXSBJTJ_ID=:pID and XLXSJGBYZZ0_JGBID=V_XLXSBJTJ_JGBID and XLXSJGBYZZ0_XH=V_XLXSBJTJ_XH "); + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSJGBYZZ0_YZZ{0}=V_XLXSBJTJ_YZZ", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.ParamByName("pID").Value = VID; + SQL.ParamByName("pJGBID").Value = sJGBID; + + + dberp.ExecSQL(SQL); + + + + SQL.Clear(); + SQL.Add("delete from V_XLXSBJTJ where V_XLXSBJTJ_ID=:pID "); + SQL.ParamByName("pID").Value = VID; + dberp.ExecSQL(SQL); + + SQL.Clear(); + SQL.Add(" insert into V_XLXSBJTJ(V_XLXSBJTJ_ID,V_XLXSBJTJ_JGBID,V_XLXSBJTJ_XH,V_XLXSBJTJ_YZZ,V_XLXSBJTJ_TIMESTAMP,V_XLXSBJTJ_WHR,V_XLXSBJTJ_WHRID,V_XLXSBJTJ_WHSJ) "); + SQL.Add("select :pID, XLXSJGBMX_JGBID as JGBID,XLXSJGBMX_XH as XH "); + SQL.Add(string.Format(",isnull(YZZ,0) as YZZ{0},:pTIMESTAMP,:pWHR,:pWHRID,:pWHSJ ", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.Add(" from XLXSJGBMX "); + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Add(" left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSJGBMX_XLXHID and XLXSCLQD_XLGGID=XLXSJGBMX_XLGGID and XLXSCLQD_XLBZID=XLXSJGBMX_XLBZID and XLXSCLQD_DYDJID=XLXSJGBMX_DYDJID "); + } + SQL.Add("left join XLXHB on XLXHB_XLXHID=XLXSJGBMX_XLXHID "); + SQL.Add("left join XLXSBJXLGGTHB XLXSBJXLGGTHB_JGB11 on XLXSBJXLGGTHB_JGB11.XLXSBJXLGGTHB_XLGGID=XLXSJGBMX_XLGGID "); + SQL.Add("left join XLGGB on XLGGB_XLGGID = isnull(XLXSBJXLGGTHB_JGB11.XLXSBJXLGGTHB_XLGGIDCH,' ') and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); + SQL.Add("left join "); + SQL.Add("( "); + SQL.Add(" select XLXSJGBYZZ3_XSQYID as XSQYID,XLXSJGBYZZ3_DTCLID as DTCLID,XLXSJGBYZZ3_ZXJM as ZXJM,XLXSJGBYZZ3_YZID as YZID,XLXSJGBYZZ3_YZZ as YZZ"); + SQL.Add(" from XLXSJGBYZZ3,XLXSTZYZ"); + SQL.Add(" where XLXSTZYZ_MXBH='JZJ' and XLXSTZYZ_TJYS='3' and XLXSJGBYZZ3_JGBID=XLXSTZYZ_JGBID and XLXSJGBYZZ3_YZID=XLXSTZYZ_YZID"); + //主芯截面完全匹配 + SQL.Add(" and XLXSJGBYZZ3_XLXHID=' ' "); + SQL.Add(" and XLXSJGBYZZ3_ZXJM<>0 "); + SQL.Add(" and XLXSJGBYZZ3_XSQYID='" + sXSQYIDS + "'"); + SQL.Add(" and XLXSJGBYZZ3_YZID=:pYZID"); + SQL.Add(" ) a on a.DTCLID=XLXHB_DTCLID"); + SQL.Add(" and ((convert(char,a.ZXJM)=XLGGB_DTJMZHID) or (XLGGB_DTJMZHID like (rtrim(convert(char,a.ZXJM))||'/%'))) "); + SQL.Add("where XLXSJGBMX_JGBID=:pJGBID and isnull(YZID,' ')<>' ' "); + if (maxXH != 0) + { + SQL.Add(" and XLXSJGBMX_XH > :pmaxXH "); + SQL.ParamByName("pmaxXH").Value = maxXH; + } + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Add(" and XLXSCLQD_JGCZBID=:pJGCZBID and XLXSCLQD_JGCZBBBID=:pJGCZBBBID"); + SQL.ParamByName("pJGCZBID").Value = sJGCZBID.Trim(); + SQL.ParamByName("pJGCZBBBID").Value = sJGCZBBBID.Trim(); + } + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pJGBID").Value = sJGBID; + SQL.ParamByName("pID").Value = VID; + SQL.ParamByName("pTIMESTAMP").Value = TimeStamp; + SQL.ParamByName("pWHR").Value = tSession.UserName; + SQL.ParamByName("pWHRID").Value = tSession.UserName; + SQL.ParamByName("pWHSJ").Value = DateTime.Now; + dberp.ExecSQL(SQL); + + SQL.Clear(); + SQL.Add(" merge into XLXSJGBYZZ0 tar "); + SQL.Add(" using V_XLXSBJTJ sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSJGBYZZ0_JGBID=:pJGBID and V_XLXSBJTJ_ID=:pID and XLXSJGBYZZ0_JGBID=V_XLXSBJTJ_JGBID and XLXSJGBYZZ0_XH=V_XLXSBJTJ_XH "); + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSJGBYZZ0_YZZ{0}=V_XLXSBJTJ_YZZ", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.ParamByName("pID").Value = VID; + SQL.ParamByName("pJGBID").Value = sJGBID; + + + dberp.ExecSQL(SQL); + + + + SQL.Clear(); + SQL.Add("delete from V_XLXSBJTJ where V_XLXSBJTJ_ID=:pID "); + SQL.ParamByName("pID").Value = VID; + dberp.ExecSQL(SQL); + + + SQL.Clear(); + SQL.Add(" insert into V_XLXSBJTJ(V_XLXSBJTJ_ID,V_XLXSBJTJ_JGBID,V_XLXSBJTJ_XH,V_XLXSBJTJ_YZZ,V_XLXSBJTJ_TIMESTAMP,V_XLXSBJTJ_WHR,V_XLXSBJTJ_WHRID,V_XLXSBJTJ_WHSJ) "); + SQL.Add("select :pID, XLXSJGBMX_JGBID as JGBID,XLXSJGBMX_XH as XH "); + SQL.Add(string.Format(",isnull(YZZ,0) as YZZ{0},:pTIMESTAMP,:pWHR,:pWHRID,:pWHSJ ", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.Add(" from XLXSJGBMX "); + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Add(" left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSJGBMX_XLXHID and XLXSCLQD_XLGGID=XLXSJGBMX_XLGGID and XLXSCLQD_XLBZID=XLXSJGBMX_XLBZID and XLXSCLQD_DYDJID=XLXSJGBMX_DYDJID "); + } + SQL.Add("left join XLXHB on XLXHB_XLXHID=XLXSJGBMX_XLXHID "); + SQL.Add("left join "); + SQL.Add("( "); + SQL.Add(" select XLXSJGBYZZ3_XSQYID as XSQYID,XLXSJGBYZZ3_DTCLID as DTCLID,XLXSJGBYZZ3_XLXHID as XLXHID,XLXSJGBYZZ3_YZID as YZID,XLXSJGBYZZ3_YZZ as YZZ"); + SQL.Add(" from XLXSJGBYZZ3,XLXSTZYZ"); + SQL.Add(" where XLXSTZYZ_MXBH='JZJ' and XLXSTZYZ_TJYS='3' and XLXSJGBYZZ3_JGBID=XLXSTZYZ_JGBID and XLXSJGBYZZ3_YZID=XLXSTZYZ_YZID"); + //型号完全匹配 + SQL.Add(" and XLXSJGBYZZ3_ZXJM=0"); + SQL.Add(" and XLXSJGBYZZ3_XSQYID='" + sXSQYIDS + "'"); + SQL.Add(" and XLXSJGBYZZ3_YZID=:pYZID"); + SQL.Add(" ) a on a.DTCLID=XLXHB_DTCLID"); + SQL.Add(" and a.XLXHID=XLXSJGBMX_XLXHID"); + SQL.Add("where XLXSJGBMX_JGBID=:pJGBID and isnull(YZID,' ')<>' ' "); + if (maxXH != 0) + { + SQL.Add(" and XLXSJGBMX_XH > :pmaxXH "); + SQL.ParamByName("pmaxXH").Value = maxXH; + } + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Add(" and XLXSCLQD_JGCZBID=:pJGCZBID and XLXSCLQD_JGCZBBBID=:pJGCZBBBID"); + SQL.ParamByName("pJGCZBID").Value = sJGCZBID.Trim(); + SQL.ParamByName("pJGCZBBBID").Value = sJGCZBBBID.Trim(); + } + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pJGBID").Value = sJGBID; + SQL.ParamByName("pID").Value = VID; + SQL.ParamByName("pTIMESTAMP").Value = TimeStamp; + SQL.ParamByName("pWHR").Value = tSession.UserName; + SQL.ParamByName("pWHRID").Value = tSession.UserName; + SQL.ParamByName("pWHSJ").Value = DateTime.Now; + dberp.ExecSQL(SQL); + + SQL.Clear(); + SQL.Add(" merge into XLXSJGBYZZ0 tar "); + SQL.Add(" using V_XLXSBJTJ sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSJGBYZZ0_JGBID=:pJGBID and V_XLXSBJTJ_ID=:pID and XLXSJGBYZZ0_JGBID=V_XLXSBJTJ_JGBID and XLXSJGBYZZ0_XH=V_XLXSBJTJ_XH "); + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSJGBYZZ0_YZZ{0}=V_XLXSBJTJ_YZZ", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.ParamByName("pID").Value = VID; + SQL.ParamByName("pJGBID").Value = sJGBID; + + + dberp.ExecSQL(SQL); + + + + SQL.Clear(); + SQL.Add("delete from V_XLXSBJTJ where V_XLXSBJTJ_ID=:pID "); + SQL.ParamByName("pID").Value = VID; + dberp.ExecSQL(SQL); + + + SQL.Clear(); + SQL.Add(" insert into V_XLXSBJTJ(V_XLXSBJTJ_ID,V_XLXSBJTJ_JGBID,V_XLXSBJTJ_XH,V_XLXSBJTJ_YZZ,V_XLXSBJTJ_TIMESTAMP,V_XLXSBJTJ_WHR,V_XLXSBJTJ_WHRID,V_XLXSBJTJ_WHSJ) "); + SQL.Add("select :pID, XLXSJGBMX_JGBID as JGBID,XLXSJGBMX_XH as XH "); + SQL.Add(string.Format(",isnull(YZZ,0) as YZZ{0},:pTIMESTAMP,:pWHR,:pWHRID,:pWHSJ ", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.Add(" from XLXSJGBMX "); + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Add(" left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSJGBMX_XLXHID and XLXSCLQD_XLGGID=XLXSJGBMX_XLGGID and XLXSCLQD_XLBZID=XLXSJGBMX_XLBZID and XLXSCLQD_DYDJID=XLXSJGBMX_DYDJID "); + } + SQL.Add("left join XLXHB on XLXHB_XLXHID=XLXSJGBMX_XLXHID "); + SQL.Add("left join XLXSBJXLGGTHB XLXSBJXLGGTHB_JGB12 on XLXSBJXLGGTHB_JGB12.XLXSBJXLGGTHB_XLGGID=XLXSJGBMX_XLGGID "); + SQL.Add("left join XLGGB on XLGGB_XLGGID = isnull(XLXSBJXLGGTHB_JGB12.XLXSBJXLGGTHB_XLGGIDCH,' ') and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); + SQL.Add("left join "); + SQL.Add("( "); + SQL.Add(" select XLXSJGBYZZ3_XSQYID as XSQYID,XLXSJGBYZZ3_DTCLID as DTCLID,XLXSJGBYZZ3_XLXHID as XLXHID,XLXSJGBYZZ3_ZXJM as ZXJM,XLXSJGBYZZ3_YZID as YZID,XLXSJGBYZZ3_YZZ as YZZ"); + SQL.Add(" from XLXSJGBYZZ3,XLXSTZYZ"); + SQL.Add(" where XLXSTZYZ_MXBH='JZJ' and XLXSTZYZ_TJYS='3' and XLXSJGBYZZ3_JGBID=XLXSTZYZ_JGBID and XLXSJGBYZZ3_YZID=XLXSTZYZ_YZID"); + //型号、主芯截面完全匹配 + SQL.Add(" and XLXSJGBYZZ3_ZXJM<>0 "); + SQL.Add(" and XLXSJGBYZZ3_XSQYID='" + sXSQYIDS + "'"); + SQL.Add(" and XLXSJGBYZZ3_YZID=:pYZID"); + SQL.Add(" ) a on a.DTCLID=XLXHB_DTCLID"); + SQL.Add(" and a.XLXHID=XLXSJGBMX_XLXHID"); + SQL.Add(" and ((convert(char,a.ZXJM)=XLGGB_DTJMZHID) or (XLGGB_DTJMZHID like (rtrim(convert(char,a.ZXJM))||'/%'))) "); + //SQL.Add(" and ((to_char(a.ZXJM)=XLGGB_DTJMZHID) or (XLGGB_DTJMZHID like (rtrim(to_char(a.ZXJM))||'/%'))) "); + SQL.Add("where XLXSJGBMX_JGBID=:pJGBID and isnull(YZID,' ')<>' ' "); + if (maxXH != 0) + { + SQL.Add(" and XLXSJGBMX_XH > :pmaxXH "); + SQL.ParamByName("pmaxXH").Value = maxXH; + } + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Add(" and XLXSCLQD_JGCZBID=:pJGCZBID and XLXSCLQD_JGCZBBBID=:pJGCZBBBID"); + SQL.ParamByName("pJGCZBID").Value = sJGCZBID.Trim(); + SQL.ParamByName("pJGCZBBBID").Value = sJGCZBBBID.Trim(); + } + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pJGBID").Value = sJGBID; + SQL.ParamByName("pID").Value = VID; + SQL.ParamByName("pTIMESTAMP").Value = TimeStamp; + SQL.ParamByName("pWHR").Value = tSession.UserName; + SQL.ParamByName("pWHRID").Value = tSession.UserName; + SQL.ParamByName("pWHSJ").Value = DateTime.Now; + dberp.ExecSQL(SQL); + + SQL.Clear(); + SQL.Add(" merge into XLXSJGBYZZ0 tar "); + SQL.Add(" using V_XLXSBJTJ sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSJGBYZZ0_JGBID=:pJGBID and V_XLXSBJTJ_ID=:pID and XLXSJGBYZZ0_JGBID=V_XLXSBJTJ_JGBID and XLXSJGBYZZ0_XH=V_XLXSBJTJ_XH "); + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSJGBYZZ0_YZZ{0}=V_XLXSBJTJ_YZZ", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.ParamByName("pID").Value = VID; + SQL.ParamByName("pJGBID").Value = sJGBID; + + + dberp.ExecSQL(SQL); + + + + SQL.Clear(); + SQL.Add("delete from V_XLXSBJTJ where V_XLXSBJTJ_ID=:pID "); + SQL.ParamByName("pID").Value = VID; + dberp.ExecSQL(SQL); + } + } + } + + //自动插入TJYS=4的调价因子值 + if (!sTJYSList4.Trim().Equals("")) + { + string[] sTJYZ = sTJYSList4.Split(','); + for (int i = 0; i < sTJYZ.Length; i++) + { + if (!sTJYZ[i].Trim().Equals("")) + { + TZYZXX yzxx = XLBJDUtils.GetYZXXByYZID(sTJYZ[i].Trim()); + + + if (yzxx.XLXSTZYZ_JJFS == "JJ") + sJJYZIDList += sTJYZ[i].Trim() + ","; + SQL.Clear(); + SQL.Add(" insert into V_XLXSBJTJ(V_XLXSBJTJ_ID,V_XLXSBJTJ_JGBID,V_XLXSBJTJ_XH,V_XLXSBJTJ_YZZ,V_XLXSBJTJ_TIMESTAMP,V_XLXSBJTJ_WHR,V_XLXSBJTJ_WHRID,V_XLXSBJTJ_WHSJ) "); + SQL.Add(" select :pID,XLXSJGBMX_JGBID as JGBID,XLXSJGBMX_XH as XH"); + SQL.Add(string.Format(",XLXSJGBYZZ4_YZZ as YZZ{0},:pTIMESTAMP,:pWHR,:pWHRID,:pWHSJ ", sTJYZ[i].Trim().Replace("JZ", ""))); + + + + + SQL.Add(" from XLXSJGBMX "); + + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Add(" left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSJGBMX_XLXHID and XLXSCLQD_XLGGID=XLXSJGBMX_XLGGID and XLXSCLQD_XLBZID=XLXSJGBMX_XLBZID and XLXSCLQD_DYDJID=XLXSJGBMX_DYDJID "); + } + SQL.Add("left join XLXHB on XLXHB_XLXHID=XLXSJGBMX_XLXHID "); + SQL.Add("left join XLXSBJXLGGTHB XLXSBJXLGGTHB_JGB13 on XLXSBJXLGGTHB_JGB13.XLXSBJXLGGTHB_XLGGID=XLXSJGBMX_XLGGID "); + SQL.Add("left join XLGGB on XLGGB_XLGGID = isnull(XLXSBJXLGGTHB_JGB13.XLXSBJXLGGTHB_XLGGIDCH,' ') and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); + SQL.Add("left join XLDTJMZHB on XLDTJMZHB_DTJMZHID=XLGGB_DTJMZHID "); + + SQL.Add(" left join ( "); + SQL.Add(" select XLXSJGBYZZ4_XLXHID,XLXSJGBYZZ4_DYDJID,XLXSJGBYZZ4_XXJGID,XLXSJGBYZZ4_ZXJMXX,XLXSJGBYZZ4_ZXJMSX,XLXSJGBYZZ4_YZZ "); + SQL.Add(" from XLXSJGBYZZ4 "); + SQL.Add(" where XLXSJGBYZZ4_JGBID=:pTJJGBID and XLXSJGBYZZ4_YZID=:pYZID "); + //1、优先级由低到高依次更新:电压、芯线结构为空 + SQL.Add(" and XLXSJGBYZZ4_DYDJID=' '"); + SQL.Add(" and XLXSJGBYZZ4_XXJGID=' ' "); + SQL.Add(" ) a "); + SQL.Add(" on XLXSJGBYZZ4_XLXHID=XLXSJGBMX_XLXHID "); + SQL.Add(" and XLXSJGBYZZ4_ZXJMXX<= ISNULL(XLDTJMZHB_DTJM1,0) and ((XLXSJGBYZZ4_ZXJMSX<>0 and XLXSJGBYZZ4_ZXJMSX>=ISNULL(XLDTJMZHB_DTJM1,0)) or XLXSJGBYZZ4_ZXJMSX=0)"); + SQL.Add(" where XLXSJGBMX_JGBID=:pJGBID and XLXSJGBYZZ4_XLXHID<>' ' "); + if (maxXH != 0) + { + SQL.Add(" and XLXSJGBMX_XH > :pmaxXH "); + SQL.ParamByName("pmaxXH").Value = maxXH; + } + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Add(" and XLXSCLQD_JGCZBID=:pJGCZBID and XLXSCLQD_JGCZBBBID=:pJGCZBBBID"); + SQL.ParamByName("pJGCZBID").Value = sJGCZBID.Trim(); + SQL.ParamByName("pJGCZBBBID").Value = sJGCZBBBID.Trim(); + } + + + + + SQL.ParamByName("pTJJGBID").Value = yzxx.XLXSTZYZ_JGBID.Trim(); + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pJGBID").Value = sJGBID; + + + SQL.ParamByName("pID").Value = VID; + SQL.ParamByName("pTIMESTAMP").Value = TimeStamp; + SQL.ParamByName("pWHR").Value = tSession.UserName; + SQL.ParamByName("pWHRID").Value = tSession.UserName; + SQL.ParamByName("pWHSJ").Value = DateTime.Now; + dberp.ExecSQL(SQL); + + + + SQL.Clear(); + SQL.Add(" merge into XLXSJGBYZZ0 tar "); + SQL.Add(" using V_XLXSBJTJ sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSJGBYZZ0_JGBID=:pJGBID and V_XLXSBJTJ_ID=:pID and XLXSJGBYZZ0_JGBID=V_XLXSBJTJ_JGBID and XLXSJGBYZZ0_XH=V_XLXSBJTJ_XH "); + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSJGBYZZ0_YZZ{0}=V_XLXSBJTJ_YZZ", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.ParamByName("pID").Value = VID; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + + + SQL.Clear(); + SQL.Add("delete from V_XLXSBJTJ where V_XLXSBJTJ_ID=:pID "); + SQL.ParamByName("pID").Value = VID; + dberp.ExecSQL(SQL); + + + + SQL.Clear(); + SQL.Add(" insert into V_XLXSBJTJ(V_XLXSBJTJ_ID,V_XLXSBJTJ_JGBID,V_XLXSBJTJ_XH,V_XLXSBJTJ_YZZ,V_XLXSBJTJ_TIMESTAMP,V_XLXSBJTJ_WHR,V_XLXSBJTJ_WHRID,V_XLXSBJTJ_WHSJ) "); + SQL.Add(" select :pID,XLXSJGBMX_JGBID as JGBID,XLXSJGBMX_XH as XH"); + SQL.Add(string.Format(",XLXSJGBYZZ4_YZZ as YZZ{0},:pTIMESTAMP,:pWHR,:pWHRID,:pWHSJ ", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.Add(" from XLXSJGBMX "); + + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Add(" left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSJGBMX_XLXHID and XLXSCLQD_XLGGID=XLXSJGBMX_XLGGID and XLXSCLQD_XLBZID=XLXSJGBMX_XLBZID and XLXSCLQD_DYDJID=XLXSJGBMX_DYDJID "); + } + SQL.Add("left join XLXHB on XLXHB_XLXHID=XLXSJGBMX_XLXHID "); + SQL.Add("left join XLXSBJXLGGTHB XLXSBJXLGGTHB_JGB14 on XLXSBJXLGGTHB_JGB14.XLXSBJXLGGTHB_XLGGID=XLXSJGBMX_XLGGID "); + SQL.Add("left join XLGGB on XLGGB_XLGGID = isnull(XLXSBJXLGGTHB_JGB14.XLXSBJXLGGTHB_XLGGIDCH,' ') and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); + SQL.Add("left join XLDTJMZHB on XLDTJMZHB_DTJMZHID=XLGGB_DTJMZHID "); + SQL.Add(" left join ( "); + SQL.Add(" select XLXSJGBYZZ4_XLXHID,XLXSJGBYZZ4_DYDJID,XLXSJGBYZZ4_XXJGID,XLXSJGBYZZ4_ZXJMXX,XLXSJGBYZZ4_ZXJMSX,XLXSJGBYZZ4_YZZ "); + SQL.Add(" from XLXSJGBYZZ4 "); + SQL.Add(" where XLXSJGBYZZ4_JGBID=:pTJJGBID and XLXSJGBYZZ4_YZID=:pYZID "); + //2、优先级由低到高依次更新:电压为空、芯线结构不为空 + SQL.Add(" and XLXSJGBYZZ4_DYDJID=' '"); + SQL.Add(" ) a "); + SQL.Add(" on XLXSJGBYZZ4_XLXHID=XLXSJGBMX_XLXHID "); + SQL.Add(" and XLXSJGBYZZ4_ZXJMXX<= ISNULL(XLDTJMZHB_DTJM1,0) and ((XLXSJGBYZZ4_ZXJMSX<>0 and XLXSJGBYZZ4_ZXJMSX>=ISNULL(XLDTJMZHB_DTJM1,0)) or XLXSJGBYZZ4_ZXJMSX=0)"); + SQL.Add(" and XLXSJGBYZZ4_XXJGID=XLGGB_XXJGID "); + SQL.Add(" where XLXSJGBMX_JGBID=:pJGBID and XLXSJGBYZZ4_XLXHID<>' ' "); + if (maxXH != 0) + { + SQL.Add(" and XLXSJGBMX_XH > :pmaxXH "); + SQL.ParamByName("pmaxXH").Value = maxXH; + } + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Add(" and XLXSCLQD_JGCZBID=:pJGCZBID and XLXSCLQD_JGCZBBBID=:pJGCZBBBID"); + SQL.ParamByName("pJGCZBID").Value = sJGCZBID.Trim(); + SQL.ParamByName("pJGCZBBBID").Value = sJGCZBBBID.Trim(); + } + + + + + SQL.ParamByName("pTJJGBID").Value = yzxx.XLXSTZYZ_JGBID.Trim(); + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pJGBID").Value = sJGBID; + + + SQL.ParamByName("pID").Value = VID; + SQL.ParamByName("pTIMESTAMP").Value = TimeStamp; + SQL.ParamByName("pWHR").Value = tSession.UserName; + SQL.ParamByName("pWHRID").Value = tSession.UserName; + SQL.ParamByName("pWHSJ").Value = DateTime.Now; + dberp.ExecSQL(SQL); + + + + SQL.Clear(); + SQL.Add(" merge into XLXSJGBYZZ0 tar "); + SQL.Add(" using V_XLXSBJTJ sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSJGBYZZ0_JGBID=:pJGBID and V_XLXSBJTJ_ID=:pID and XLXSJGBYZZ0_JGBID=V_XLXSBJTJ_JGBID and XLXSJGBYZZ0_XH=V_XLXSBJTJ_XH "); + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSJGBYZZ0_YZZ{0}=V_XLXSBJTJ_YZZ", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.ParamByName("pID").Value = VID; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + + + SQL.Clear(); + SQL.Add("delete from V_XLXSBJTJ where V_XLXSBJTJ_ID=:pID "); + SQL.ParamByName("pID").Value = VID; + dberp.ExecSQL(SQL); + + + SQL.Clear(); + SQL.Add(" insert into V_XLXSBJTJ(V_XLXSBJTJ_ID,V_XLXSBJTJ_JGBID,V_XLXSBJTJ_XH,V_XLXSBJTJ_YZZ,V_XLXSBJTJ_TIMESTAMP,V_XLXSBJTJ_WHR,V_XLXSBJTJ_WHRID,V_XLXSBJTJ_WHSJ) "); + SQL.Add(" select :pID,XLXSJGBMX_JGBID as JGBID,XLXSJGBMX_XH as XH"); + SQL.Add(string.Format(",XLXSJGBYZZ4_YZZ as YZZ{0},:pTIMESTAMP,:pWHR,:pWHRID,:pWHSJ ", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.Add(" from XLXSJGBMX "); + + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Add(" left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSJGBMX_XLXHID and XLXSCLQD_XLGGID=XLXSJGBMX_XLGGID and XLXSCLQD_XLBZID=XLXSJGBMX_XLBZID and XLXSCLQD_DYDJID=XLXSJGBMX_DYDJID "); + } + SQL.Add(" left join XLXHB on XLXHB_XLXHID=XLXSJGBMX_XLXHID "); + SQL.Add("left join XLXSBJXLGGTHB XLXSBJXLGGTHB_JGB16 on XLXSBJXLGGTHB_JGB16.XLXSBJXLGGTHB_XLGGID=XLXSJGBMX_XLGGID "); + SQL.Add("left join XLGGB on XLGGB_XLGGID = isnull(XLXSBJXLGGTHB_JGB16.XLXSBJXLGGTHB_XLGGIDCH,' ') and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); + SQL.Add("left join XLDTJMZHB on XLDTJMZHB_DTJMZHID=XLGGB_DTJMZHID "); + SQL.Add(" left join ( "); + SQL.Add(" select XLXSJGBYZZ4_XLXHID,XLXSJGBYZZ4_DYDJID,XLXSJGBYZZ4_XXJGID,XLXSJGBYZZ4_ZXJMXX,XLXSJGBYZZ4_ZXJMSX,XLXSJGBYZZ4_YZZ "); + SQL.Add(" from XLXSJGBYZZ4 "); + SQL.Add(" where XLXSJGBYZZ4_JGBID=:pTJJGBID and XLXSJGBYZZ4_YZID=:pYZID "); + //3、优先级由低到高依次更新:电压不为空、芯线结构为空 + SQL.Add(" and XLXSJGBYZZ4_XXJGID=' '"); + SQL.Add(" ) a "); + SQL.Add(" on XLXSJGBYZZ4_XLXHID=XLXSJGBMX_XLXHID "); + SQL.Add(" and XLXSJGBYZZ4_ZXJMXX<= ISNULL(XLDTJMZHB_DTJM1,0) and ((XLXSJGBYZZ4_ZXJMSX<>0 and XLXSJGBYZZ4_ZXJMSX>=ISNULL(XLDTJMZHB_DTJM1,0)) or XLXSJGBYZZ4_ZXJMSX=0)"); + SQL.Add(" and XLXSJGBYZZ4_DYDJID=XLXSJGBMX_DYDJID "); + SQL.Add(" where XLXSJGBMX_JGBID=:pJGBID and XLXSJGBYZZ4_XLXHID<>' ' "); + if (maxXH != 0) + { + SQL.Add(" and XLXSJGBMX_XH > :pmaxXH "); + SQL.ParamByName("pmaxXH").Value = maxXH; + } + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Add(" and XLXSCLQD_JGCZBID=:pJGCZBID and XLXSCLQD_JGCZBBBID=:pJGCZBBBID"); + SQL.ParamByName("pJGCZBID").Value = sJGCZBID.Trim(); + SQL.ParamByName("pJGCZBBBID").Value = sJGCZBBBID.Trim(); + } + + + + + SQL.ParamByName("pTJJGBID").Value = yzxx.XLXSTZYZ_JGBID.Trim(); + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pJGBID").Value = sJGBID; + + + SQL.ParamByName("pID").Value = VID; + SQL.ParamByName("pTIMESTAMP").Value = TimeStamp; + SQL.ParamByName("pWHR").Value = tSession.UserName; + SQL.ParamByName("pWHRID").Value = tSession.UserName; + SQL.ParamByName("pWHSJ").Value = DateTime.Now; + dberp.ExecSQL(SQL); + + + + SQL.Clear(); + SQL.Add(" merge into XLXSJGBYZZ0 tar "); + SQL.Add(" using V_XLXSBJTJ sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSJGBYZZ0_JGBID=:pJGBID and V_XLXSBJTJ_ID=:pID and XLXSJGBYZZ0_JGBID=V_XLXSBJTJ_JGBID and XLXSJGBYZZ0_XH=V_XLXSBJTJ_XH "); + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSJGBYZZ0_YZZ{0}=V_XLXSBJTJ_YZZ ", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.ParamByName("pID").Value = VID; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + + + SQL.Clear(); + SQL.Add("delete from V_XLXSBJTJ where V_XLXSBJTJ_ID=:pID "); + SQL.ParamByName("pID").Value = VID; + dberp.ExecSQL(SQL); + + + SQL.Clear(); + SQL.Add(" insert into V_XLXSBJTJ(V_XLXSBJTJ_ID,V_XLXSBJTJ_JGBID,V_XLXSBJTJ_XH,V_XLXSBJTJ_YZZ,V_XLXSBJTJ_TIMESTAMP,V_XLXSBJTJ_WHR,V_XLXSBJTJ_WHRID,V_XLXSBJTJ_WHSJ) "); + SQL.Add(" select :pID,XLXSJGBMX_JGBID as JGBID,XLXSJGBMX_XH as XH"); + SQL.Add(string.Format(",XLXSJGBYZZ4_YZZ as YZZ{0},:pTIMESTAMP,:pWHR,:pWHRID,:pWHSJ ", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.Add(" from XLXSJGBMX "); + + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Add(" left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSJGBMX_XLXHID and XLXSCLQD_XLGGID=XLXSJGBMX_XLGGID and XLXSCLQD_XLBZID=XLXSJGBMX_XLBZID and XLXSCLQD_DYDJID=XLXSJGBMX_DYDJID "); + } + SQL.Add(" left join XLXHB on XLXHB_XLXHID=XLXSJGBMX_XLXHID "); + SQL.Add(" left join XLXSBJXLGGTHB XLXSBJXLGGTHB_JGB17 on XLXSBJXLGGTHB_JGB17.XLXSBJXLGGTHB_XLGGID=XLXSJGBMX_XLGGID "); + SQL.Add(" left join XLGGB on XLGGB_XLGGID = isnull(XLXSBJXLGGTHB_JGB17.XLXSBJXLGGTHB_XLGGIDCH,' ') and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); + SQL.Add(" left join XLDTJMZHB on XLDTJMZHB_DTJMZHID=XLGGB_DTJMZHID "); + SQL.Add(" left join ( "); + SQL.Add(" select XLXSJGBYZZ4_XLXHID,XLXSJGBYZZ4_DYDJID,XLXSJGBYZZ4_XXJGID,XLXSJGBYZZ4_ZXJMXX,XLXSJGBYZZ4_ZXJMSX,XLXSJGBYZZ4_YZZ "); + SQL.Add(" from XLXSJGBYZZ4 "); + SQL.Add(" where XLXSJGBYZZ4_JGBID=:pTJJGBID and XLXSJGBYZZ4_YZID=:pYZID "); + //4、优先级由低到高依次更新:电压不为空、芯线结构不为空 + + SQL.Add(" ) a "); + SQL.Add(" on XLXSJGBYZZ4_XLXHID=XLXSJGBMX_XLXHID "); + SQL.Add(" and XLXSJGBYZZ4_ZXJMXX<= ISNULL(XLDTJMZHB_DTJM1,0) and ((XLXSJGBYZZ4_ZXJMSX<>0 and XLXSJGBYZZ4_ZXJMSX>=ISNULL(XLDTJMZHB_DTJM1,0)) or XLXSJGBYZZ4_ZXJMSX=0)"); + SQL.Add(" and XLXSJGBYZZ4_DYDJID=XLXSJGBMX_DYDJID "); + SQL.Add(" and XLXSJGBYZZ4_XXJGID=XLGGB_XXJGID"); + SQL.Add(" where XLXSJGBMX_JGBID=:pJGBID and XLXSJGBYZZ4_XLXHID<>' ' "); + if (maxXH != 0) + { + SQL.Add(" and XLXSJGBMX_XH > :pmaxXH "); + SQL.ParamByName("pmaxXH").Value = maxXH; + } + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Add(" and XLXSCLQD_JGCZBID=:pJGCZBID and XLXSCLQD_JGCZBBBID=:pJGCZBBBID"); + SQL.ParamByName("pJGCZBID").Value = sJGCZBID.Trim(); + SQL.ParamByName("pJGCZBBBID").Value = sJGCZBBBID.Trim(); + } + + + + + SQL.ParamByName("pTJJGBID").Value = yzxx.XLXSTZYZ_JGBID.Trim(); + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pJGBID").Value = sJGBID; + + + SQL.ParamByName("pID").Value = VID; + SQL.ParamByName("pTIMESTAMP").Value = TimeStamp; + SQL.ParamByName("pWHR").Value = tSession.UserName; + SQL.ParamByName("pWHRID").Value = tSession.UserName; + SQL.ParamByName("pWHSJ").Value = DateTime.Now; + dberp.ExecSQL(SQL); + + + SQL.Clear(); + SQL.Add(" merge into XLXSJGBYZZ0 tar "); + SQL.Add(" using V_XLXSBJTJ sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSJGBYZZ0_JGBID=:pJGBID and V_XLXSBJTJ_ID=:pID and XLXSJGBYZZ0_JGBID=V_XLXSBJTJ_JGBID and XLXSJGBYZZ0_XH=V_XLXSBJTJ_XH "); + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSJGBYZZ0_YZZ{0}=V_XLXSBJTJ_YZZ ", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.ParamByName("pID").Value = VID; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + + + SQL.Clear(); + SQL.Add("delete from V_XLXSBJTJ where V_XLXSBJTJ_ID=:pID "); + SQL.ParamByName("pID").Value = VID; + dberp.ExecSQL(SQL); + } + } + } + //自动插入TJYS=5的调价因子值 + if (!sTJYSList5.Trim().Equals("")) + { + string[] sTJYZ = sTJYSList5.Split(','); + for (int i = 0; i < sTJYZ.Length; i++) + { + if (!sTJYZ[i].Trim().Equals("")) + { + TZYZXX yzxx = XLBJDUtils.GetYZXXByYZID(sTJYZ[i].Trim()); + if (yzxx.XLXSTZYZ_JJFS == "JJ") + sJJYZIDList += sTJYZ[i].Trim() + ","; + SQL.Clear(); + SQL.Add(" insert into V_XLXSBJTJ(V_XLXSBJTJ_ID,V_XLXSBJTJ_JGBID,V_XLXSBJTJ_XH,V_XLXSBJTJ_YZZ,V_XLXSBJTJ_TIMESTAMP,V_XLXSBJTJ_WHR,V_XLXSBJTJ_WHRID,V_XLXSBJTJ_WHSJ) "); + SQL.Add(" select :pID,XLXSJGBMX_JGBID as JGBID,XLXSJGBMX_XH as XH"); + SQL.Add(string.Format(",XLXSJGBYZZ5_YZZ as YZZ{0},:pTIMESTAMP,:pWHR,:pWHRID,:pWHSJ ", sTJYZ[i].Trim().Replace("JZ", ""))); + + + + + SQL.Add(" from XLXSTZYZ,XLXSJGBYZZ5,XLXSJGBMX "); + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Add(" left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSJGBMX_XLXHID and XLXSCLQD_XLGGID=XLXSJGBMX_XLGGID and XLXSCLQD_XLBZID=XLXSJGBMX_XLBZID and XLXSCLQD_DYDJID=XLXSJGBMX_DYDJID "); + } + SQL.Add(" left join XLXHB on XLXHB_XLXHID=XLXSJGBMX_XLXHID "); + SQL.Add(" left join XLXSBJXLGGTHB XLXSBJXLGGTHB_JGB18 on XLXSBJXLGGTHB_JGB18.XLXSBJXLGGTHB_XLGGID=XLXSJGBMX_XLGGID "); + SQL.Add(" left join XLGGB on XLGGB_XLGGID = isnull(XLXSBJXLGGTHB_JGB18.XLXSBJXLGGTHB_XLGGIDCH,' ') and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); + SQL.Add(" left join XLDTJMZHB on XLDTJMZHB_DTJMZHID=XLGGB_DTJMZHID "); + SQL.Add(" where XLXSJGBMX_JGBID=:pJGBID "); + if (maxXH != 0) + { + SQL.Add(" and XLXSJGBMX_XH > :pmaxXH "); + SQL.ParamByName("pmaxXH").Value = maxXH; + } + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Add(" and XLXSCLQD_JGCZBID=:pJGCZBID and XLXSCLQD_JGCZBBBID=:pJGCZBBBID"); + SQL.ParamByName("pJGCZBID").Value = sJGCZBID.Trim(); + SQL.ParamByName("pJGCZBBBID").Value = sJGCZBBBID.Trim(); + } + SQL.Add(" and XLXSTZYZ_MXBH='JZJ' and XLXSTZYZ_YZID=:pYZID"); + SQL.Add(" and XLXSTZYZ_TJYS='5' and XLXSJGBYZZ5_JGBID=XLXSTZYZ_JGBID and XLXSJGBYZZ5_YZID=XLXSTZYZ_YZID "); + SQL.Add(" and XLXSJGBYZZ5_XLXHID=XLXSJGBMX_XLXHID "); + SQL.Add(" and XLXSJGBYZZ5_ZXJMXX<=ISNULL(XLDTJMZHB_DTJM1,0) and ((XLXSJGBYZZ5_ZXJMSX<>0 and XLXSJGBYZZ5_ZXJMSX>=ISNULL(XLDTJMZHB_DTJM1,0)) or XLXSJGBYZZ5_ZXJMSX=0)"); + SQL.Add(" and XLXSJGBYZZ5_ZXSXX<=XLGGB_GGZXS and ((XLXSJGBYZZ5_ZXSSX<>0 and XLXSJGBYZZ5_ZXSSX>=XLGGB_GGZXS) or XLXSJGBYZZ5_ZXSSX=0)"); + //1、优先级由低到高依次更新:电压为空 + SQL.Add(" and XLXSJGBYZZ5_DYDJID=' '"); + + + + + + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pJGBID").Value = sJGBID; + + + SQL.ParamByName("pID").Value = VID; + SQL.ParamByName("pTIMESTAMP").Value = TimeStamp; + SQL.ParamByName("pWHR").Value = tSession.UserName; + SQL.ParamByName("pWHRID").Value = tSession.UserName; + SQL.ParamByName("pWHSJ").Value = DateTime.Now; + dberp.ExecSQL(SQL); + + + + SQL.Clear(); + SQL.Add(" merge into XLXSJGBYZZ0 tar "); + SQL.Add(" using V_XLXSBJTJ sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSJGBYZZ0_JGBID=:pJGBID and V_XLXSBJTJ_ID=:pID and XLXSJGBYZZ0_JGBID=V_XLXSBJTJ_JGBID and XLXSJGBYZZ0_XH=V_XLXSBJTJ_XH "); + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSJGBYZZ0_YZZ{0}=V_XLXSBJTJ_YZZ ", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.ParamByName("pID").Value = VID; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + + + SQL.Clear(); + SQL.Add("delete from V_XLXSBJTJ where V_XLXSBJTJ_ID=:pID "); + SQL.ParamByName("pID").Value = VID; + dberp.ExecSQL(SQL); + + + SQL.Clear(); + SQL.Add(" insert into V_XLXSBJTJ(V_XLXSBJTJ_ID,V_XLXSBJTJ_JGBID,V_XLXSBJTJ_XH,V_XLXSBJTJ_YZZ,V_XLXSBJTJ_TIMESTAMP,V_XLXSBJTJ_WHR,V_XLXSBJTJ_WHRID,V_XLXSBJTJ_WHSJ) "); + SQL.Add(" select :pID,XLXSJGBMX_JGBID as JGBID,XLXSJGBMX_XH as XH"); + SQL.Add(string.Format(",XLXSJGBYZZ5_YZZ as YZZ{0},:pTIMESTAMP,:pWHR,:pWHRID,:pWHSJ ", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.Add(" from XLXSTZYZ,XLXSJGBYZZ5,XLXSJGBMX "); + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Add(" left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSJGBMX_XLXHID and XLXSCLQD_XLGGID=XLXSJGBMX_XLGGID and XLXSCLQD_XLBZID=XLXSJGBMX_XLBZID and XLXSCLQD_DYDJID=XLXSJGBMX_DYDJID "); + } + SQL.Add("left join XLXHB on XLXHB_XLXHID=XLXSJGBMX_XLXHID "); + SQL.Add("left join XLXSBJXLGGTHB XLXSBJXLGGTHB_JGB15 on XLXSBJXLGGTHB_JGB15.XLXSBJXLGGTHB_XLGGID=XLXSJGBMX_XLGGID "); + SQL.Add("left join XLGGB on XLGGB_XLGGID = isnull(XLXSBJXLGGTHB_JGB15.XLXSBJXLGGTHB_XLGGIDCH,' ') and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); + SQL.Add("left join XLDTJMZHB on XLDTJMZHB_DTJMZHID=XLGGB_DTJMZHID "); + SQL.Add(" where XLXSJGBMX_JGBID=:pJGBID "); + if (maxXH != 0) + { + SQL.Add(" and XLXSJGBMX_XH > :pmaxXH "); + SQL.ParamByName("pmaxXH").Value = maxXH; + } + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Add(" and XLXSCLQD_JGCZBID=:pJGCZBID and XLXSCLQD_JGCZBBBID=:pJGCZBBBID"); + SQL.ParamByName("pJGCZBID").Value = sJGCZBID.Trim(); + SQL.ParamByName("pJGCZBBBID").Value = sJGCZBBBID.Trim(); + } + SQL.Add(" and XLXSTZYZ_MXBH='JZJ' and XLXSTZYZ_YZID=:pYZID"); + SQL.Add(" and XLXSTZYZ_TJYS='5' and XLXSJGBYZZ5_JGBID=XLXSTZYZ_JGBID and XLXSJGBYZZ5_YZID=XLXSTZYZ_YZID "); + SQL.Add(" and XLXSJGBYZZ5_XLXHID=XLXSJGBMX_XLXHID "); + SQL.Add(" and XLXSJGBYZZ5_ZXJMXX<=ISNULL(XLDTJMZHB_DTJM1,0) and ((XLXSJGBYZZ5_ZXJMSX<>0 and XLXSJGBYZZ5_ZXJMSX>=ISNULL(XLDTJMZHB_DTJM1,0)) or XLXSJGBYZZ5_ZXJMSX=0)"); + SQL.Add(" and XLXSJGBYZZ5_ZXSXX<=XLGGB_GGZXS and ((XLXSJGBYZZ5_ZXSSX<>0 and XLXSJGBYZZ5_ZXSSX>=XLGGB_GGZXS) or XLXSJGBYZZ5_ZXSSX=0)"); + //2、优先级由低到高依次更新:电压不为空 + SQL.Add(" and XLXSJGBYZZ5_DYDJID=XLXSJGBMX_DYDJID "); + + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pJGBID").Value = sJGBID; + SQL.ParamByName("pID").Value = VID; + SQL.ParamByName("pTIMESTAMP").Value = TimeStamp; + SQL.ParamByName("pWHR").Value = tSession.UserName; + SQL.ParamByName("pWHRID").Value = tSession.UserName; + SQL.ParamByName("pWHSJ").Value = DateTime.Now; + dberp.ExecSQL(SQL); + + + SQL.Clear(); + SQL.Add(" merge into XLXSJGBYZZ0 tar "); + SQL.Add(" using V_XLXSBJTJ sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSJGBYZZ0_JGBID=:pJGBID and V_XLXSBJTJ_ID=:pID and XLXSJGBYZZ0_JGBID=V_XLXSBJTJ_JGBID and XLXSJGBYZZ0_XH=V_XLXSBJTJ_XH "); + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSJGBYZZ0_YZZ{0}=V_XLXSBJTJ_YZZ ", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.ParamByName("pID").Value = VID; + SQL.ParamByName("pJGBID").Value = sJGBID; + + + dberp.ExecSQL(SQL); + + + + SQL.Clear(); + SQL.Add("delete from V_XLXSBJTJ where V_XLXSBJTJ_ID=:pID "); + SQL.ParamByName("pID").Value = VID; + dberp.ExecSQL(SQL); + } + } + } + + + + //自动插入TJYS=8的调价因子值 + if (!sTJYSList8.Trim().Equals("")) + { + string[] sTJYZ = sTJYSList8.Split(','); + for (int i = 0; i < sTJYZ.Length; i++) + { + if (!sTJYZ[i].Trim().Equals("")) + { + + + + + + + + SQL.Clear(); + SQL.Add(" insert into V_XLXSBJTJ(V_XLXSBJTJ_ID,V_XLXSBJTJ_JGBID,V_XLXSBJTJ_XH,V_XLXSBJTJ_YZZ,V_XLXSBJTJ_TIMESTAMP,V_XLXSBJTJ_WHR,V_XLXSBJTJ_WHRID,V_XLXSBJTJ_WHSJ) "); + SQL.Add(" select :pID,XLXSJGBMX_JGBID as JGBID,XLXSJGBMX_XH as XH,"); + SQL.Add(" case when XLXSJGBMX_JLDW in ('T', '吨') then isnull(XLXSJGBYZZ8_YZZ,0) "); + SQL.Add(" when XLXSJGBMX_JLDW in ('Kg', '千克','公斤') then isnull(XLXSJGBYZZ8_YZZ,0)/1000 "); + SQL.Add(string.Format(" else ISNULL(XLXSJGBYZZ8_YZZ * XLXSCLQD_CLZL/1000,0) end as YZZ{0},:pTIMESTAMP,:pWHR,:pWHRID,:pWHSJ ", sTJYZ[i].Trim().Replace("JZ", ""))); + + + + + + SQL.Add(" from XLXSJGBMX,XLXSTZYZ,XLXSJGBYZZ8 "); + SQL.Add(" left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSJGBYZZ8_XLXHID and XLXSCLQD_XLGGID=XLXSJGBYZZ8_XLGGID and XLXSCLQD_XLBZID=XLXSJGBYZZ8_XLBZID and XLXSCLQD_DYDJID=XLXSJGBYZZ8_DYDJID "); + SQL.Add(" where XLXSJGBMX_JGBID=:pJGBID "); + if (maxXH != 0) + { + SQL.Add(" and XLXSJGBMX_XH > :pmaxXH "); + SQL.ParamByName("pmaxXH").Value = maxXH; + } + SQL.Add(" and XLXSTZYZ_MXBH='JZJ' and XLXSTZYZ_YZID=:pYZID"); + SQL.Add(" and XLXSTZYZ_TJYS='8' and XLXSJGBYZZ8_JGBID=XLXSTZYZ_JGBID and XLXSJGBYZZ8_YZID=XLXSTZYZ_YZID "); + SQL.Add(" and XLXSJGBYZZ8_XLXHID=XLXSJGBMX_XLXHID and XLXSJGBYZZ8_XLGGID=XLXSJGBMX_XLGGID and XLXSJGBYZZ8_XLBZID=XLXSJGBMX_XLBZID and XLXSJGBYZZ8_DYDJID=XLXSJGBMX_DYDJID "); + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Add(" and XLXSCLQD_JGCZBID=:pJGCZBID and XLXSCLQD_JGCZBBBID=:pJGCZBBBID"); + SQL.ParamByName("pJGCZBID").Value = sJGCZBID.Trim(); + SQL.ParamByName("pJGCZBBBID").Value = sJGCZBBBID.Trim(); + } + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pJGBID").Value = sJGBID; + SQL.ParamByName("pID").Value = VID; + SQL.ParamByName("pTIMESTAMP").Value = TimeStamp; + SQL.ParamByName("pWHR").Value = tSession.UserName; + SQL.ParamByName("pWHRID").Value = tSession.UserName; + SQL.ParamByName("pWHSJ").Value = DateTime.Now; + dberp.ExecSQL(SQL); + + + SQL.Clear(); + SQL.Add(" merge into XLXSJGBYZZ0 tar "); + SQL.Add(" using V_XLXSBJTJ sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSJGBYZZ0_JGBID=:pJGBID and V_XLXSBJTJ_ID=:pID and XLXSJGBYZZ0_JGBID=V_XLXSBJTJ_JGBID and XLXSJGBYZZ0_XH=V_XLXSBJTJ_XH "); + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSJGBYZZ0_YZZ{0}=V_XLXSBJTJ_YZZ ", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.ParamByName("pID").Value = VID; + SQL.ParamByName("pJGBID").Value = sJGBID; + + + dberp.ExecSQL(SQL); + + + + SQL.Clear(); + SQL.Add("delete from V_XLXSBJTJ where V_XLXSBJTJ_ID=:pID "); + SQL.ParamByName("pID").Value = VID; + dberp.ExecSQL(SQL); + + + + } + } + } + //自动插入TJYS=9的调价因子值 + if (!sTJYSList9.Trim().Equals("")) + { + string[] sTJYZ = sTJYSList9.Split(','); + for (int i = 0; i < sTJYZ.Length; i++) + { + if (!sTJYZ[i].Trim().Equals("")) + { + TZYZXX yzxx = XLBJDUtils.GetYZXXByYZID(sTJYZ[i].Trim()); + + + if (yzxx.XLXSTZYZ_JJFS == "JJ") + + sJJYZIDList += sTJYZ[i].Trim() + ","; + + SQL.Clear(); + SQL.Add(" insert into V_XLXSBJTJ(V_XLXSBJTJ_ID,V_XLXSBJTJ_JGBID,V_XLXSBJTJ_XH,V_XLXSBJTJ_YZZ,V_XLXSBJTJ_TIMESTAMP,V_XLXSBJTJ_WHR,V_XLXSBJTJ_WHRID,V_XLXSBJTJ_WHSJ) "); + SQL.Add(" select :pID, XLXSJGBMX_JGBID as JGBID,XLXSJGBMX_XH as XH"); + SQL.Add(string.Format(",XLXSJGBYZZ9_YZZ as YZZ{0},:pTIMESTAMP,:pWHR,:pWHRID,:pWHSJ", sTJYZ[i].Trim().Replace("JZ", ""))); + + SQL.Add(" from XLXSJGBMX "); + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Add(" left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSJGBMX_XLXHID and XLXSCLQD_XLGGID=XLXSJGBMX_XLGGID and XLXSCLQD_DYDJID=XLXSJGBMX_DYDJID "); + } + SQL.Add(" ,XLXSJGBYZZ9 "); + SQL.Add(" where XLXSJGBMX_JGBID=:pJGBID "); + if (maxXH != 0) + { + SQL.Add(" and XLXSJGBMX_XH > :pmaxXH "); + SQL.ParamByName("pmaxXH").Value = maxXH; + } + SQL.Add(" and XLXSJGBYZZ9_JGBID=:pTJJGBID and XLXSJGBYZZ9_YZID=:pYZID "); + SQL.Add(" and XLXSJGBYZZ9_XLXHID=XLXSJGBMX_XLXHID and XLXSJGBYZZ9_XLGGID=XLXSJGBMX_XLGGID and XLXSJGBYZZ9_DYDJID=XLXSJGBMX_DYDJID "); + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Add(" and XLXSCLQD_JGCZBID=:pJGCZBID and XLXSCLQD_JGCZBBBID=:pJGCZBBBID"); + SQL.ParamByName("pJGCZBID").Value = sJGCZBID.Trim(); + SQL.ParamByName("pJGCZBBBID").Value = sJGCZBBBID.Trim(); + } + SQL.ParamByName("pTJJGBID").Value = yzxx.XLXSTZYZ_JGBID.Trim(); + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pJGBID").Value = sJGBID; + SQL.ParamByName("pID").Value = VID; + SQL.ParamByName("pTIMESTAMP").Value = TimeStamp; + SQL.ParamByName("pWHR").Value = tSession.UserName; + SQL.ParamByName("pWHRID").Value = tSession.UserName; + SQL.ParamByName("pWHSJ").Value = DateTime.Now; + + dberp.ExecSQL(SQL); + + + + SQL.Clear(); + SQL.Add(" merge into XLXSJGBYZZ0 tar "); + SQL.Add(" using V_XLXSBJTJ sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSJGBYZZ0_JGBID=:pJGBID and V_XLXSBJTJ_ID=:pID and XLXSJGBYZZ0_JGBID=V_XLXSBJTJ_JGBID and XLXSJGBYZZ0_XH=V_XLXSBJTJ_XH "); + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSJGBYZZ0_YZZ{0}=V_XLXSBJTJ_YZZ ", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.ParamByName("pID").Value = VID; + + SQL.ParamByName("pJGBID").Value = sJGBID; + + dberp.ExecSQL(SQL); + + + + SQL.Clear(); + SQL.Add("delete from V_XLXSBJTJ where V_XLXSBJTJ_ID=:pID "); + SQL.ParamByName("pID").Value = VID; + dberp.ExecSQL(SQL); + + + SQL.Clear(); + SQL.Add(" insert into V_XLXSBJTJ(V_XLXSBJTJ_ID,V_XLXSBJTJ_JGBID,V_XLXSBJTJ_XH,V_XLXSBJTJ_YZZ,V_XLXSBJTJ_TIMESTAMP,V_XLXSBJTJ_WHR,V_XLXSBJTJ_WHRID,V_XLXSBJTJ_WHSJ) "); + SQL.Add(" select :pID, XLXSJGBMX_JGBID as JGBID,XLXSJGBMX_XH as XH"); + SQL.Add(string.Format(",XLXSJGBYZZ9_YZZ as YZZ{0},:pTIMESTAMP,:pWHR,:pWHRID,:pWHSJ", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.Add(" from XLXSJGBMX,XLXSJGBYZZ9 "); + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Add(" left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSJGBYZZ9_XLXHID and XLXSCLQD_XLGGID=XLXSJGBYZZ9_XLGGID and XLXSCLQD_DYDJID=XLXSJGBYZZ9_DYDJID "); + } + SQL.Add(" where XLXSJGBMX_JGBID=:pJGBID "); + if (maxXH != 0) + { + SQL.Add(" and XLXSJGBMX_XH > :pmaxXH "); + SQL.ParamByName("pmaxXH").Value = maxXH; + } + SQL.Add(" and XLXSJGBYZZ9_JGBID=:pTJJGBID and XLXSJGBYZZ9_YZID=:pYZID "); + SQL.Add(" and XLXSJGBYZZ9_XLXHID=XLXSJGBMX_XLXHID and XLXSJGBYZZ9_XLGGID=XLXSJGBMX_XLGGID and XLXSJGBYZZ9_DYDJID=XLXSJGBMX_DYDJID "); + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Add(" and XLXSCLQD_JGCZBID=:pJGCZBID and XLXSCLQD_JGCZBBBID=:pJGCZBBBID"); + SQL.ParamByName("pJGCZBID").Value = sJGCZBID.Trim(); + SQL.ParamByName("pJGCZBBBID").Value = sJGCZBBBID.Trim(); + } + SQL.ParamByName("pTJJGBID").Value = yzxx.XLXSTZYZ_JGBID.Trim(); + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pJGBID").Value = sJGBID; + SQL.ParamByName("pID").Value = VID; + SQL.ParamByName("pTIMESTAMP").Value = TimeStamp; + SQL.ParamByName("pWHR").Value = tSession.UserName; + SQL.ParamByName("pWHRID").Value = tSession.UserName; + SQL.ParamByName("pWHSJ").Value = DateTime.Now; + + dberp.ExecSQL(SQL); + + + + SQL.Clear(); + SQL.Add(" merge into XLXSJGBYZZ0 tar "); + SQL.Add(" using V_XLXSBJTJ sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSJGBYZZ0_JGBID=:pJGBID and V_XLXSBJTJ_ID=:pID and XLXSJGBYZZ0_JGBID=V_XLXSBJTJ_JGBID and XLXSJGBYZZ0_XH=V_XLXSBJTJ_XH "); + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSJGBYZZ0_YZZ{0}=V_XLXSBJTJ_YZZ ", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.ParamByName("pID").Value = VID; + + SQL.ParamByName("pJGBID").Value = sJGBID; + + dberp.ExecSQL(SQL); + + + + SQL.Clear(); + SQL.Add("delete from V_XLXSBJTJ where V_XLXSBJTJ_ID=:pID "); + SQL.ParamByName("pID").Value = VID; + dberp.ExecSQL(SQL); + + + + + } + } + } + sJJYZIDList = sJJYZIDList.TrimEnd(','); + if (!string.IsNullOrEmpty(sJJYZIDList)) + { + SQL.Clear(); + SQL.Add("merge into XLXSJGBYZZ0 using( "); + SQL.Add(" select XLXSJGBMX_XH as XH,("); + SQL.Add(" case when :pBJU003 in ('KM', '千米') and XLXSJGBMX_JLDW in ('M', '米') then 0.001"); + SQL.Add(" when :pBJU003 in ('M', '米') and XLXSJGBMX_JLDW in ('Km', '千米') then 1000.0"); + SQL.Add(" when :pBJU003 in ('M', '米') and XLXSJGBMX_JLDW in ('M', '米') then 1.0"); + SQL.Add(" when :pBJU003 in ('KM', '千米') and XLXSJGBMX_JLDW in ('Km', '千米') then 1.0"); + string sTDDWList = "("; + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when :pBJU003 in ('KM', '千米') and XLXSJGBMX_JLDW='{0}' then 0.001*{1} ", sKey, dicLenJLDWTD[sKey])); + SQL.Add(string.Format(" when :pBJU003 in ('M', '米') and XLXSJGBMX_JLDW='{0}' then {1} ", sKey, dicLenJLDWTD[sKey])); + SQL.Add(string.Format(" when :pBJU003 = '{0}' and XLXSJGBMX_JLDW in ('Km', '千米') then 1000.0/{1} ", sKey, dicLenJLDWTD[sKey])); + SQL.Add(string.Format(" when :pBJU003 = '{0}' and XLXSJGBMX_JLDW in ('M', '米') then 1.0/{1} ", sKey, dicLenJLDWTD[sKey])); + sTDDWList += "'" + sKey + "',"; + } + sTDDWList = sTDDWList.TrimEnd(','); + sTDDWList += ")"; + SQL.Add(" when :pBJU003 in " + sTDDWList + " and XLXSJGBMX_JLDW in " + sTDDWList + " then 1.0"); + SQL.Add(" when :pBJU003 in ('T', '吨') and XLXSJGBMX_JLDW in ('Kg', '千克', '公斤') then 0.001"); + SQL.Add(" when :pBJU003 in ('KG', '千克', '公斤') and XLXSJGBMX_JLDW in ('T', '吨') then 1000.0"); + SQL.Add(" when :pBJU003 in ('KG', '千克', '公斤') and XLXSJGBMX_JLDW in ('Kg', '千克', '公斤') then 1.0"); + SQL.Add(" when :pBJU003 in ('T', '吨') and XLXSJGBMX_JLDW in ('T', '吨') then 1.0"); + if (sBJU003.ToUpper().Equals("KM") || sBJU003.ToUpper().Equals("千米")) + { + SQL.Add(" when :pBJU003 in ('KM', '千米') and XLXSJGBMX_JLDW in ('Kg', '千克', '公斤') then (case when XLXSCLQD_CLZL = 0 then 0 else 1.0/XLXSCLQD_CLZL end)"); + SQL.Add(" when :pBJU003 in ('M', '米') and XLXSJGBMX_JLDW in ('Kg', '千克', '公斤') then (case when XLXSCLQD_CLZL = 0 then 0 else (1.0/XLXSCLQD_CLZL)*1000.0 end)"); + SQL.Add(" when :pBJU003 in ('KG', '千克', '公斤') and XLXSJGBMX_JLDW in ('Km', '千米') then XLXSCLQD_CLZL"); + SQL.Add(" when :pBJU003 in ('KM', '千米') and XLXSJGBMX_JLDW in ('T', '吨') then (case when XLXSCLQD_CLZL = 0 then 0 else (1.0/XLXSCLQD_CLZL)*1000.0 end)"); + SQL.Add(" when :pBJU003 in ('M', '米') and XLXSJGBMX_JLDW in ('T', '吨') then (case when XLXSCLQD_CLZL = 0 then 0 else (1.0/XLXSCLQD_CLZL)* 1000.0*1000.0 end)"); + SQL.Add(" when :pBJU003 in ('KG', '千克', '公斤') and XLXSJGBMX_JLDW in ('Km', '千米') then XLXSCLQD_CLZL"); + SQL.Add(" when :pBJU003 in ('T', '吨') and XLXSJGBMX_JLDW in ('Km', '千米') then XLXSCLQD_CLZL/1000.0"); + SQL.Add(" when :pBJU003 in ('KG', '千克', '公斤') and XLXSJGBMX_JLDW in ('M', '米') then XLXSCLQD_CLZL/1000.0"); + SQL.Add(" when :pBJU003 in ('T', '吨') and XLXSJGBMX_JLDW in ('M', '米') then XLXSCLQD_CLZL/1000.0/1000.0"); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when :pBJU003 in ('KG', '千克', '公斤') and XLXSJGBMX_JLDW='{0}' then {1}*XLXSCLQD_CLZL/1000.0 ", sKey, dicLenJLDWTD[sKey])); + SQL.Add(string.Format(" when :pBJU003 in ('T', '吨') and XLXSJGBMX_JLDW='{0}' then {1}*XLXSCLQD_CLZL/1000.0/1000.0 ", sKey, dicLenJLDWTD[sKey])); + SQL.Add(string.Format(" when :pBJU003 = '{0}' and XLXSJGBMX_JLDW in ('KG', '千克', '公斤') then 1000.0/XLXSCLQD_CLZL/{1} ", sKey, dicLenJLDWTD[sKey])); + SQL.Add(string.Format(" when :pBJU003 = '{0}' and XLXSJGBMX_JLDW in ('T', '吨') then 1000.0*1000.0/XLXSCLQD_CLZL/{1} ", sKey, dicLenJLDWTD[sKey])); + } + } + else if (sBJU003.ToUpper().Equals("米") || sBJU003.ToUpper().Equals("M")) + { + SQL.Add(" when :pBJU003 in ('KM', '千米') and XLXSJGBMX_JLDW in ('Kg', '千克', '公斤') then (case when XLXSCLQD_CLZL = 0 then 0 else (1.0/XLXSCLQD_CLZL)*(1/1000.0) end)"); + SQL.Add(" when :pBJU003 in ('M', '米') and XLXSJGBMX_JLDW in ('Kg', '千克', '公斤') then (case when XLXSCLQD_CLZL = 0 then 0 else 1.0/XLXSCLQD_CLZL end)"); + SQL.Add(" when :pBJU003 in ('KG', '千克', '公斤') and XLXSJGBMX_JLDW in ('Km', '千米') then XLXSCLQD_CLZL*1000.0"); + SQL.Add(" when :pBJU003 in ('KM', '千米') and XLXSJGBMX_JLDW in ('T', '吨') then (case when XLXSCLQD_CLZL = 0 then 0 else (1.0/XLXSCLQD_CLZL) end)"); + SQL.Add(" when :pBJU003 in ('M', '米') and XLXSJGBMX_JLDW in ('T', '吨') then (case when XLXSCLQD_CLZL = 0 then 0 else (1.0/XLXSCLQD_CLZL)*1000.0 end)"); + SQL.Add(" when :pBJU003 in ('KG', '千克', '公斤') and XLXSJGBMX_JLDW in ('Km', '千米') then XLXSCLQD_CLZL*1000.0"); + SQL.Add(" when :pBJU003 in ('T', '吨') and XLXSJGBMX_JLDW in ('Km', '千米') then XLXSCLQD_CLZL"); + SQL.Add(" when :pBJU003 in ('KG', '千克', '公斤') and XLXSJGBMX_JLDW in ('M', '米') then XLXSCLQD_CLZL"); + SQL.Add(" when :pBJU003 in ('T', '吨') and XLXSJGBMX_JLDW in ('M', '米') then XLXSCLQD_CLZL/1000.0"); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when :pBJU003 in ('KG', '千克', '公斤') and XLXSJGBMX_JLDW='{0}' then {1}*XLXSCLQD_CLZL ", sKey, dicLenJLDWTD[sKey])); + SQL.Add(string.Format(" when :pBJU003 in ('T', '吨') and XLXSJGBMX_JLDW='{0}' then {1}*XLXSCLQD_CLZL/1000.0 ", sKey, dicLenJLDWTD[sKey])); + SQL.Add(string.Format(" when :pBJU003 = '{0}' and XLXSJGBMX_JLDW in ('KG', '千克', '公斤') then 1/XLXSCLQD_CLZL/{1} ", sKey, dicLenJLDWTD[sKey])); + SQL.Add(string.Format(" when :pBJU003 = '{0}' and XLXSJGBMX_JLDW in ('T', '吨') then 1000.0/XLXSCLQD_CLZL/{1} ", sKey, dicLenJLDWTD[sKey])); + } + } + SQL.Add(" when :pBJU003=upper(XLXSJGBMX_JLDW) and :pBJU003 not in ('M','KM','米','千米','KG','T','千克','公斤','吨') "); + SQL.Add(" and XLXSJGBMX_JLDW not in ('M','Km','米','千米','Kg','T','千克','公斤','吨') "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format("and XLXSJGBMX_JLDW<>'{0}' ", sKey)); + } + SQL.Add(" then 1.0 else 1.0"); + SQL.Add(" end "); + SQL.Add(" ) as HSBL "); + + SQL.Add(" from XLXSJGBMX "); + SQL.Add(" left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSJGBMX_XLXHID and XLXSCLQD_XLGGID=XLXSJGBMX_XLGGID and XLXSCLQD_XLBZID=XLXSJGBMX_XLBZID and XLXSCLQD_DYDJID=XLXSJGBMX_DYDJID and XLXSCLQD_WPID='ZZZZ' "); + SQL.Add("where XLXSJGBMX_JGBID=:pJGBID and isnull(XLXSCLQD_CLZL,0)<>0 "); + if (maxXH != 0) + { + SQL.Add(" and XLXSJGBMX_XH > :pmaxXH "); + SQL.ParamByName("pmaxXH").Value = maxXH; + } + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Add(" and XLXSCLQD_JGCZBID=:pJGCZBID and XLXSCLQD_JGCZBBBID=:pJGCZBBBID"); + SQL.ParamByName("pJGCZBID").Value = sJGCZBID.Trim(); + SQL.ParamByName("pJGCZBBBID").Value = sJGCZBBBID.Trim(); + } + + SQL.Add(" ) sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSJGBYZZ0_JGBID=:pJGBID and XLXSJGBYZZ0_XH=XH "); + if (maxXH != 0) + { + SQL.Add(" and XLXSJGBYZZ0_XH > :pmaxXH "); + SQL.ParamByName("pmaxXH").Value = maxXH; + } + + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + string[] JJYZIDnum = sJJYZIDList.Split(','); + for (int j = 0; j < JJYZIDnum.Length; j++) + { + if (j == 0) + SQL.Add(string.Format(" XLXSJGBYZZ0_YZZ{0}=XLXSJGBYZZ0_YZZ{0}*HSBL", JJYZIDnum[j].Trim().Replace("JZ", ""))); + else + SQL.Add(string.Format(",XLXSJGBYZZ0_YZZ{0}=XLXSJGBYZZ0_YZZ{0}*HSBL", JJYZIDnum[j].Trim().Replace("JZ", ""))); + } + SQL.ParamByName("pJGBID").Value = sJGBID; + SQL.ParamByName("pBJU003").Value = sBJU003; + + dberp.ExecSQL(SQL); + } + + } + + + + //根据价格表专属的材料行情,重新计算价格表的材料成本、无税基准报价、含税基准报价 + public static void DoCLCB(TDatabase dberp, string sMXBH, string sJGBID, string sWHRID, string sWHR, int iXSWS, string sJSBLFS, string sBJU003) + { + DoCLCB(dberp, sMXBH, sJGBID, sWHRID, sWHR, "", "", iXSWS, sJSBLFS,sBJU003); + } + + + + //如果传入结构尺重表号,则只计算该结构尺重表下的产品 + public static void DoCLCB(TDatabase dberp, string sMXBH, string sJGBID, string sWHRID, string sWHR, string sJGCZBID, string sJGCZBBBID, int iXSWS, string sJSBLFS, string sBJU003) + { + DoCLCB(dberp, sMXBH, sJGBID, sWHRID, sWHR, sJGCZBID, sJGCZBBBID, iXSWS, sJSBLFS, "",sBJU003); + } + + + + //价格表调价因素3,则XLXSCLQD_JGBHSCB、XLXSCLQD_JGBWSCB只用来记录材料价价差 + public static void DoCLCB(TDatabase dberp, string sMXBH, string sJGBID, string sWHRID, string sWHR, string sJGCZBID, string sJGCZBBBID, int iXSWS, string sJSBLFS, string sJGBID1,string sBJU003) + { + bool IsJGBID3 = false;//sJGBID1不为空可能是价格表设置了所依出厂价,用于导入基价用的,改为根据调价因素3判断 + if (!sJGBID1.Equals("")) + { + if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSJGB where XLXSJGB_JGBID='{0}' and XLXSJGB_TJYS='3'", sJGBID))) + IsJGBID3 = true; + } + + TSQL SQL = new TSQL(dberp); + + //据材料行情补齐销售价格表的材料行情 + SQL.Clear(); + SQL.Add("insert into XLXSCLHQ(XLXSCLHQ_JGBID,XLXSCLHQ_BJCLID,XLXSCLHQ_WSJG,XLXSCLHQ_HSJG,XLXSCLHQ_HSJGF,XLXSCLHQ_WSJGF,"); + SQL.Add(" XLXSCLHQ_JGYBJCLID1,XLXSCLHQ_HSJG1,XLXSCLHQ_WSJG1,XLXSCLHQ_JGBL1,"); + SQL.Add(" XLXSCLHQ_YXQS,XLXSCLHQ_YXQZ,XLXSCLHQ_BZ,XLXSCLHQ_WHRID,XLXSCLHQ_WHR,XLXSCLHQ_WHSJ)"); + SQL.Add(" select :pJGBID,XLXSBJCL_BJCLID,isnull(XLXSCLHQ_WSJG,0.0),isnull(XLXSCLHQ_HSJG,0.0),isnull(XLXSCLHQ_HSJGF,0.0),isnull(XLXSCLHQ_WSJGF,0.0),"); + SQL.Add(" isnull(XLXSCLHQ_JGYBJCLID1,' '),isnull(XLXSCLHQ_HSJG1,0.0),isnull(XLXSCLHQ_WSJG1,0.0),isnull(XLXSCLHQ_JGBL1,0.0),"); + SQL.Add(" convert(datetime, '1900-01-01'),convert(datetime, '1900-01-01'),"); + SQL.Add(" isnull(XLXSCLHQ_BZ,' '),:pWHRID,:pWHR,:pWHSJ "); + SQL.Add(" from XLXSBJCL,"); + SQL.Add("("); + //取销售价格表没有的材料行情 + SQL.Add("select XLXSCLHQ_BJCLID,XLXSCLHQ_WSJG,XLXSCLHQ_HSJG,XLXSCLHQ_HSJGF,XLXSCLHQ_WSJGF,"); + SQL.Add(" XLXSCLHQ_JGYBJCLID1,XLXSCLHQ_HSJG1,XLXSCLHQ_WSJG1,XLXSCLHQ_JGBL1,"); + SQL.Add(" XLXSCLHQ_BZ"); + SQL.Add(" from XLXSCLHQ,"); + SQL.Add("("); + SQL.Add("select a.XLXSCLHQ_BJCLID as BJCLID,max(a.XLXSCLHQ_YXQS)as maxYXQS"); + SQL.Add(" from XLXSCLHQ a"); + SQL.Add(" where a.XLXSCLHQ_JGBID='ZZZZZZZZ' "); + SQL.Add(" and a.XLXSCLHQ_YXQS<=:pRQ "); + SQL.Add(" and isnull(a.XLXSCLHQ_YXQZ,convert(datetime,'9999-12-31'))>=:pRQ "); + SQL.Add(" and not exists");//排除掉销售价格表已有的材料行情 + SQL.Add("("); + SQL.Add("select 1 from XLXSCLHQ b where b.XLXSCLHQ_JGBID=:pJGBID and b.XLXSCLHQ_BJCLID=a.XLXSCLHQ_BJCLID"); + SQL.Add(")"); + SQL.Add(" group by a.XLXSCLHQ_BJCLID"); + SQL.Add(") c"); + SQL.Add(" where XLXSCLHQ_JGBID='ZZZZZZZZ' "); + SQL.Add(" and XLXSCLHQ_BJCLID=BJCLID "); + SQL.Add(" and XLXSCLHQ_YXQS=maxYXQS"); + SQL.Add(") d"); + SQL.Add(" where XLXSCLHQ_BJCLID=XLXSBJCL_BJCLID"); + SQL.Add(" and isnull(XLXSBJCL_BJCLMC,' ')<>' '"); + //SQL.Add(" order by XLXSCLHQ_BJCLID"); + SQL.ParamByName("pJGBID").Value = sJGBID; + SQL.ParamByName("pWHRID").Value = sWHRID; + SQL.ParamByName("pWHR").Value = sWHR; + SQL.ParamByName("pWHSJ").Value = DateTime.Now; + SQL.ParamByName("pRQ").Value = DateTime.Now.ToShortDateString(); + dberp.ExecSQL(SQL); + + if (XLJGB_CLJGTZList.NeedJGBJJFP()) + { + //据物料行情补齐销售价格表的物料行情 + InsertXLXSJGBWLHQbyJGBCLHQ(dberp, SQL, sJGBID, DateTime.Now.ToShortDateString(), sWHR, sWHRID, false); + } + + //价格表调价因素3,则利用XLXSCLQD_JGBHSCB、XLXSCLQD_JGBWSCB记录的材料价价差更新价格表基价、表价 + if (IsJGBID3) + { + XLBJDCalcUtils.UpdateJGBTJYS_3(dberp, SQL, sJGBID, iXSWS, sJSBLFS, sWHRID, sWHR, sJGBID1, "", 0); + //UpdateCLCB_TJYS(dberp, sMXBH, sJGBID, sJGBID1, "3"); + } + else + { + //据材料行情、材料单耗计算材料成本 + UpdateCLCB(dberp, SQL, sJGBID, sJGCZBID, sJGCZBBBID, iXSWS, sJSBLFS, sWHRID, sWHR, 0, sJGBID1, "", "", 0, 0, "", 0,sBJU003); + } + + DoCPJJ(dberp, sMXBH, sJGBID, false, sJGCZBID, sJGCZBBBID, iXSWS, sJSBLFS, sWHRID, sWHR, 0, sBJU003); + ReCalcWSJG(dberp,SQL,sJGBID,sMXBH,iXSWS,0); + } + + + + + public static void DoCPJJ(TDatabase dberp, string sMXBH, string sJGBID, bool bInsertXLXSJGBYZZ0, string sJGCZBID, string sJGCZBBBID, int iXSWS, string sJSBLFS, string sWHRID, string sWHR, double maxXH) + { + + //据材料成本及调整因子的值计算无税产品单价、含税产品单价 + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add("select XLXSJGBYZ_YZID,XLXSTZYZ_JJFS,XLXSTZYZ_TJYZID,XLXSTZYZ_TJYS,XLXSJGB_JSGS "); + SQL.Add(" from XLXSJGBYZ"); + SQL.Add(" left join XLXSJGB on XLXSJGB_JGBID = XLXSJGBYZ_JGBID "); + SQL.Add(" left join XLXSTZYZ on XLXSTZYZ_MXBH='JZJ' and XLXSTZYZ_YZID=XLXSJGBYZ_YZID"); + SQL.Add(" where XLXSJGBYZ_JGBID=:pJGBID"); + SQL.Add(" order by XLXSTZYZ_TJYZID,XLXSTZYZ_XSXH,XLXSJGBYZ_YZID"); + SQL.ParamByName("pJGBID").Value = sJGBID; + DataSet dsJGBYZ = dberp.OpenDataSet(SQL); + if (dsJGBYZ.Tables[0].Rows.Count > 0) + { + string sJSGS = dsJGBYZ.Tables[0].Rows[0]["XLXSJGB_JSGS"].ToString().Trim(); + string sTJYSList_ = "";//记录调价因素为空的因子id + string sTJYSList1 = "";//记录调价因素为'1'的因子id + string sTJYSList3 = "";//记录调价因素为'3'的因子id + string sTJYSList4 = "";//记录调价因素为'4'的因子id + string sTJYSList5 = "";//记录调价因素为'5'的因子id + string sTJYSList8 = "";//记录调价因素为'8'的因子id + string sTJYSList9 = "";//记录调价因素为'9'的因子id + for (int i = 0; i < dsJGBYZ.Tables[0].Rows.Count; i++) + { + if (dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYS"].ToString().Trim().Equals("")) + { + sTJYSList_ += dsJGBYZ.Tables[0].Rows[i]["XLXSJGBYZ_YZID"].ToString().Trim() + ","; + } + else if (dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYS"].ToString().Trim().Equals("1")) + { + sTJYSList1 += dsJGBYZ.Tables[0].Rows[i]["XLXSJGBYZ_YZID"].ToString().Trim() + ","; + } + else if (dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYS"].ToString().Trim().Equals("3")) + { + sTJYSList3 += dsJGBYZ.Tables[0].Rows[i]["XLXSJGBYZ_YZID"].ToString().Trim() + ","; + } + else if (dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYS"].ToString().Trim().Equals("4")) + { + sTJYSList4 += dsJGBYZ.Tables[0].Rows[i]["XLXSJGBYZ_YZID"].ToString().Trim() + ","; + } + else if (dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYS"].ToString().Trim().Equals("5")) + { + sTJYSList5 += dsJGBYZ.Tables[0].Rows[i]["XLXSJGBYZ_YZID"].ToString().Trim() + ","; + } + else if (dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYS"].ToString().Trim().Equals("8")) + { + sTJYSList8 += dsJGBYZ.Tables[0].Rows[i]["XLXSJGBYZ_YZID"].ToString().Trim() + ","; + } + else if (dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYS"].ToString().Trim().Equals("9")) + { + sTJYSList9 += dsJGBYZ.Tables[0].Rows[i]["XLXSJGBYZ_YZID"].ToString().Trim() + ","; + } + } + sTJYSList_ = sTJYSList_.TrimEnd(','); + sTJYSList1 = sTJYSList1.TrimEnd(','); + sTJYSList3 = sTJYSList3.TrimEnd(','); + sTJYSList4 = sTJYSList4.TrimEnd(','); + sTJYSList5 = sTJYSList5.TrimEnd(','); + sTJYSList8 = sTJYSList8.TrimEnd(','); + sTJYSList9 = sTJYSList9.TrimEnd(','); + Mac.MacLog.TraceFormat(String.Format("AddXLXSJGBYZZ0-Begin")); + + AddXLXSJGBYZZ0(dberp, sMXBH, sJGBID, sTJYSList_, sTJYSList1, sTJYSList3, sTJYSList4, sTJYSList5, sTJYSList8, sTJYSList9, bInsertXLXSJGBYZZ0, sJGCZBID, sJGCZBBBID, maxXH); + + Mac.MacLog.TraceFormat(String.Format("AddXLXSJGBYZZ0-End")); + + if (sJSGS.Trim().Equals("")) + { + string sJDSQL = "1"; + string sKDSQL = "1"; + string sJJSQL = "0"; + string sSXSQL = "1"; + string sTJYZID = dsJGBYZ.Tables[0].Rows[0]["XLXSTZYZ_TJYZID"].ToString().Trim(); + string sJJFS = dsJGBYZ.Tables[0].Rows[0]["XLXSTZYZ_JJFS"].ToString().Trim(); + for (int i = 1; i < dsJGBYZ.Tables[0].Rows.Count; i++) + { + if (!sTJYZID.Equals(dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYZID"].ToString().Trim())) + { + if (sJJFS.Equals("JD")) + sJDSQL = sJDSQL + "*(1+JDYZZ_" + sTJYZID + "/100.0)"; + else if (sJJFS.Equals("KD")) + sKDSQL = sKDSQL + "/(1-KDYZZ_" + sTJYZID + "/100.0)"; + else if (sJJFS.Equals("JJ")) + sJJSQL += "+JJYZZ_" + sTJYZID; + else if (sJJFS.Equals("SX")) + sSXSQL = sSXSQL + "*(case when SXYZZ_" + sTJYZID + ">=0 then 1/(1-SXYZZ_" + sTJYZID + "/100.0) else (1+SXYZZ_" + sTJYZID + "/100.0) end)"; + + sTJYZID = dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYZID"].ToString().Trim(); + sJJFS = dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_JJFS"].ToString().Trim(); + } + } + if (sJJFS.Equals("JD")) + sJDSQL = sJDSQL + "*(1+JDYZZ_" + sTJYZID + "/100.0)"; + else if (sJJFS.Equals("KD")) + sKDSQL = sKDSQL + "/(1-KDYZZ_" + sTJYZID + "/100.0)"; + else if (sJJFS.Equals("JJ")) + sJJSQL += "+JJYZZ_" + sTJYZID; + else if (sJJFS.Equals("SX")) + sSXSQL = sSXSQL + "*(case when SXYZZ_" + sTJYZID + ">=0 then 1/(1-SXYZZ_" + sTJYZID + "/100.0) else (1+SXYZZ_" + sTJYZID + "/100.0) end)"; + /* + merge into 目标表 a + using 源表 b + on(a.条件字段1=b.条件字段1 and a.条件字段2=b.条件字段2 ……) + when matched then update set a.更新字段=b.字段 + when not matched then insert into a(字段1,字段2……)values(值1,值2……) + */ + Dictionary dicJGBTJYZ = XLBJDInfo.GetJGBBTYZ(sJGBID); + Dictionary dicJGBFGQCPYZ = XLBJDInfo.GetJGBFGQCPYZ(sJGBID); + SQL.Clear(); + SQL.Add(" merge into XLXSJGBMX tar "); + SQL.Add(" using ( "); + SQL.Add("select JGBID,XH," + sJDSQL + " as JDYZZ," + sKDSQL + " as KDYZZ," + sJJSQL + " as JJYZZ," + sSXSQL + " as SXYZZ"); + if (dicJGBTJYZ.Count > 0 || dicJGBFGQCPYZ.Count > 0) + SQL.Add(",JSYCBZ"); + //if (dicJGBFGQCPYZ.Count > 0) + // SQL.Add(",JGBTJYZYCBZ"); + SQL.Add(" from "); + SQL.Add("("); + SQL.Add(" select XLXSJGBYZZ0_JGBID as JGBID,XLXSJGBYZZ0_XH as XH,"); + if (dicJGBTJYZ.Count > 0 || dicJGBFGQCPYZ.Count > 0) + { + SQL.Add(" case "); + if (dicJGBTJYZ.Count > 0) + { + foreach (string sKey in dicJGBTJYZ.Keys) + { + SQL.Add(string.Format(" when XLXSJGBYZZ0_YZZ" + sKey.Replace("JZ", "") + " = 0 then '{0}' ", sKey.Substring(3, 1))); + } + } + if (dicJGBFGQCPYZ.Count > 0) + { + foreach (string sKey in dicJGBFGQCPYZ.Keys) + { + SQL.Add(string.Format(" when XLXSJGBYZZ0_YZZ" + sKey.Replace("JZ", "") + " = -9999 then '{0}' ", sKey.Substring(3, 1))); + } + } + + SQL.Add(" else 'S' "); + SQL.Add(" end as JSYCBZ, "); + } + SQL.Add(" ("); + SQL.Add(string.Format("XLXSJGBYZZ0_YZZ{0}", dsJGBYZ.Tables[0].Rows[0]["XLXSJGBYZ_YZID"].ToString().Trim().Replace("JZ", ""))); + + sTJYZID = dsJGBYZ.Tables[0].Rows[0]["XLXSTZYZ_TJYZID"].ToString().Trim(); + sJJFS = dsJGBYZ.Tables[0].Rows[0]["XLXSTZYZ_JJFS"].ToString().Trim(); + for (int i = 1; i < dsJGBYZ.Tables[0].Rows.Count; i++) + { + if (sTJYZID.Equals(dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYZID"].ToString().Trim())) + { + SQL.Add(string.Format("+XLXSJGBYZZ0_YZZ{0}", dsJGBYZ.Tables[0].Rows[i]["XLXSJGBYZ_YZID"].ToString().Trim().Replace("JZ", ""))); + } + else + { + if (sJJFS.Equals("JD")) + SQL.Add(") as " + "JDYZZ_" + sTJYZID); + else if (sJJFS.Equals("KD")) + SQL.Add(") as " + "KDYZZ_" + sTJYZID); + else if (sJJFS.Equals("JJ")) + SQL.Add(") as " + "JJYZZ_" + sTJYZID); + else if (sJJFS.Equals("SX")) + SQL.Add(") as " + "SXYZZ_" + sTJYZID); + + sTJYZID = dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYZID"].ToString().Trim(); + sJJFS = dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_JJFS"].ToString().Trim(); + SQL.Add(",("); + SQL.Add(string.Format("XLXSJGBYZZ0_YZZ{0}", dsJGBYZ.Tables[0].Rows[i]["XLXSJGBYZ_YZID"].ToString().Trim().Replace("JZ", ""))); + } + } + if (sJJFS.Equals("JD")) + SQL.Add(") as " + "JDYZZ_" + sTJYZID); + else if (sJJFS.Equals("KD")) + SQL.Add(") as " + "KDYZZ_" + sTJYZID); + else if (sJJFS.Equals("JJ")) + SQL.Add(") as " + "JJYZZ_" + sTJYZID); + else if (sJJFS.Equals("SX")) + SQL.Add(") as " + "SXYZZ_" + sTJYZID); + + SQL.Add(" from XLXSJGBYZZ0"); + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Add(" left join XLXSJGBMX on XLXSJGBMX_JGBID=:pJGBID and XLXSJGBMX_XH=XLXSJGBYZZ0_XH"); + SQL.Add(" left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSJGBMX_XLXHID and XLXSCLQD_XLGGID=XLXSJGBMX_XLGGID and XLXSCLQD_XLBZID=XLXSJGBMX_XLBZID and XLXSCLQD_DYDJID=XLXSJGBMX_DYDJID "); + } + SQL.Add(" where XLXSJGBYZZ0_JGBID=:pJGBID "); + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Add(" and XLXSCLQD_JGCZBID = :pJGCZBID"); + SQL.Add(" and XLXSCLQD_JGCZBBBID = :pJGCZBBBID"); + SQL.ParamByName("pJGCZBID").Value = sJGCZBID.Trim(); + SQL.ParamByName("pJGCZBBBID").Value = sJGCZBBBID.Trim(); + } + if (maxXH != 0) + { + SQL.Add(" and XLXSJGBYZZ0_XH > :pmaxXH"); + SQL.ParamByName("pmaxXH").Value = maxXH; + } + SQL.Add(" ) a"); + SQL.Add(" ) sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSJGBMX_JGBID=:pJGBID "); + SQL.Add(" and XLXSJGBMX_JGBID=sor.JGBID "); + SQL.Add(" and XLXSJGBMX_XH=XH "); + //此处未传参数区分,暂先默认 + SQL.Add(" and XLXSJGBMX_SYXH=0 "); + //SQL.Add(" and XLXSJGBMX_JLDW in ('M','Km','米','千米') "); 需支持非长度单位导入基价以及计算表价 + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + + if (sJSBLFS.Equals("C1") || sJSBLFS.Equals("C2"))//C1|进一法(材料价各分项进一)、C2|进一法(材料价汇总进一) + { + //此处根据序号区分先加价还是先加点/扣点 + if (XLBJDUtils.JJFirst_JGBYZ(sJGBID)) + { + //先加价 + if (dicJGBTJYZ.Count > 0 || dicJGBFGQCPYZ.Count > 0) + { + SQL.Add("XLXSJGBMX_WSBJ="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add(string.Format("CEILING(RoundFix((abs(isnull(XLXSJGBMX_WSJJ,0))+isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)*{0},8))/{0}", Math.Pow(10.0, iXSWS))); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add(string.Format("CEILING(RoundFix((abs(isnull(XLXSJGBMX_WSJJ,0))+isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)*{0},8))/{0}", Math.Pow(10.0, iXSWS))); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add(" )*-1 end ,"); + + SQL.Add("XLXSJGBMX_HSBJ="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add(string.Format("CEILING(RoundFix((abs(isnull(XLXSJGBMX_HSJJ,0))+isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)*{0},8))/{0}", Math.Pow(10.0, iXSWS))); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add(string.Format("CEILING(RoundFix((abs(isnull(XLXSJGBMX_HSJJ,0))+isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)*{0},8))/{0}", Math.Pow(10.0, iXSWS))); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add(" )*-1 end ,"); + + SQL.Add("XLXSJGBMX_WSBJM="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add("RoundFix((abs(isnull(XLXSJGBMX_WSJJM,0))+ case when XLXSJGBMX_JLDW in ('Km','千米') then 0.001 when XLXSJGBMX_JLDW in ('M','米') then 1 else 0 end * isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0),6) "); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJM,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add("RoundFix((abs(isnull(XLXSJGBMX_WSJJM,0))+ case when XLXSJGBMX_JLDW in ('Km','千米') then 0.001 when XLXSJGBMX_JLDW in ('M','米') then 1 else 0 end * isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0),6) "); + SQL.Add(" )*-1 end ,"); + + SQL.Add("XLXSJGBMX_HSBJM="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add("RoundFix((abs(isnull(XLXSJGBMX_HSJJM,0))+ case when XLXSJGBMX_JLDW in ('Km','千米') then 0.001 when XLXSJGBMX_JLDW in ('M','米') then 1 else 0 end * isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0),6) "); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJM,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add("RoundFix((abs(isnull(XLXSJGBMX_HSJJM,0))+ case when XLXSJGBMX_JLDW in ('Km','千米') then 0.001 when XLXSJGBMX_JLDW in ('M','米') then 1 else 0 end * isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0),6) "); + SQL.Add(" )*-1 end ,"); + } + else + { + SQL.Add(string.Format("XLXSJGBMX_WSBJ=CEILING(RoundFix((abs(isnull(XLXSJGBMX_WSJJ,0))+isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)*{0},8))/{0}", Math.Pow(10.0, iXSWS))); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJ,0) = 0 then 0 else 1 end) ,"); + SQL.Add(string.Format("XLXSJGBMX_HSBJ=CEILING(RoundFix((abs(isnull(XLXSJGBMX_HSJJ,0))+isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)*{0},8))/{0}", Math.Pow(10.0, iXSWS))); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJ,0) = 0 then 0 else 1 end) ,"); + SQL.Add("XLXSJGBMX_WSBJM=RoundFix((abs(isnull(XLXSJGBMX_WSJJM,0))+ case when XLXSJGBMX_JLDW in ('Km','千米') then 0.001 when XLXSJGBMX_JLDW in ('M','米') then 1 else 0 end * isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0),6) "); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJM,0) = 0 then 0 else 1 end) ,"); + SQL.Add("XLXSJGBMX_HSBJM=RoundFix((abs(isnull(XLXSJGBMX_HSJJM,0))+ case when XLXSJGBMX_JLDW in ('Km','千米') then 0.001 when XLXSJGBMX_JLDW in ('M','米') then 1 else 0 end * isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0),6) "); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJM,0) = 0 then 0 else 1 end) ,"); + } + } + else + { + //先加点 + if (dicJGBTJYZ.Count > 0 || dicJGBFGQCPYZ.Count > 0) + { + SQL.Add("XLXSJGBMX_WSBJ="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add(string.Format("CEILING(RoundFix((abs(isnull(XLXSJGBMX_WSJJ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+isnull(JJYZZ,0))*{0},8))/{0}", Math.Pow(10.0, iXSWS))); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add(string.Format("CEILING(RoundFix((abs(isnull(XLXSJGBMX_WSJJ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+isnull(JJYZZ,0))*{0},8))/{0}", Math.Pow(10.0, iXSWS))); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add(" )*-1 end ,"); + + + SQL.Add("XLXSJGBMX_HSBJ="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add(string.Format("CEILING(RoundFix((abs(isnull(XLXSJGBMX_HSJJ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+isnull(JJYZZ,0))*{0},8))/{0}", Math.Pow(10.0, iXSWS))); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add(string.Format("CEILING(RoundFix((abs(isnull(XLXSJGBMX_HSJJ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+isnull(JJYZZ,0))*{0},8))/{0}", Math.Pow(10.0, iXSWS))); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add(" )*-1 end ,"); + + + SQL.Add("XLXSJGBMX_WSBJM="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add("RoundFix((abs(isnull(XLXSJGBMX_WSJJM,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+ case when XLXSJGBMX_JLDW in ('Km','千米') then 0.001 when XLXSJGBMX_JLDW in ('M','米') then 1 else 0 end * isnull(JJYZZ,0)),6) "); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJM,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add("RoundFix((abs(isnull(XLXSJGBMX_WSJJM,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+ case when XLXSJGBMX_JLDW in ('Km','千米') then 0.001 when XLXSJGBMX_JLDW in ('M','米') then 1 else 0 end * isnull(JJYZZ,0)),6) "); + SQL.Add(" )*-1 end ,"); + + + SQL.Add("XLXSJGBMX_HSBJM="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add("RoundFix((abs(isnull(XLXSJGBMX_HSJJM,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+ case when XLXSJGBMX_JLDW in ('Km','千米') then 0.001 when XLXSJGBMX_JLDW in ('M','米') then 1 else 0 end * isnull(JJYZZ,0)),6) "); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJM,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add("RoundFix((abs(isnull(XLXSJGBMX_HSJJM,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+ case when XLXSJGBMX_JLDW in ('Km','千米') then 0.001 when XLXSJGBMX_JLDW in ('M','米') then 1 else 0 end * isnull(JJYZZ,0)),6) "); + SQL.Add(" )*-1 end ,"); + } + else + { + SQL.Add(string.Format("XLXSJGBMX_WSBJ=CEILING(RoundFix((abs(isnull(XLXSJGBMX_WSJJ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+isnull(JJYZZ,0))*{0},8))/{0}", Math.Pow(10.0, iXSWS))); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJ,0) = 0 then 0 else 1 end) ,"); + SQL.Add(string.Format("XLXSJGBMX_HSBJ=CEILING(RoundFix((abs(isnull(XLXSJGBMX_HSJJ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+isnull(JJYZZ,0))*{0},8))/{0}", Math.Pow(10.0, iXSWS))); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJ,0) = 0 then 0 else 1 end) ,"); + SQL.Add("XLXSJGBMX_WSBJM=RoundFix((abs(isnull(XLXSJGBMX_WSJJM,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+ case when XLXSJGBMX_JLDW in ('Km','千米') then 0.001 when XLXSJGBMX_JLDW in ('M','米') then 1 else 0 end * isnull(JJYZZ,0)),6)"); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJM,0) = 0 then 0 else 1 end) ,"); + SQL.Add("XLXSJGBMX_HSBJM=RoundFix((abs(isnull(XLXSJGBMX_HSJJM,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+ case when XLXSJGBMX_JLDW in ('Km','千米') then 0.001 when XLXSJGBMX_JLDW in ('M','米') then 1 else 0 end * isnull(JJYZZ,0)),6)"); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJM,0) = 0 then 0 else 1 end) ,"); + } + + } + } + else if (sJSBLFS.Equals("C3"))//C3|材料价汇总进一+表价进一到十位 + { + //此处根据序号区分先加价还是先加点/扣点 + if (XLBJDUtils.JJFirst_JGBYZ(sJGBID)) + { + //先加价 + if (dicJGBTJYZ.Count > 0 || dicJGBFGQCPYZ.Count > 0) + { + SQL.Add("XLXSJGBMX_WSBJ="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add(string.Format(" CEILING(RoundFix((abs(isnull(XLXSJGBMX_WSJJ,0))+isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0),{0})/10)*10", iXSWS.ToString().Trim())); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add(string.Format(" CEILING(RoundFix((abs(isnull(XLXSJGBMX_WSJJ,0))+isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0),{0})/10)*10", iXSWS.ToString().Trim())); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add(" )*-1 end ,"); + + SQL.Add("XLXSJGBMX_HSBJ="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add(string.Format(" CEILING(RoundFix((abs(isnull(XLXSJGBMX_HSJJ,0))+isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0),{0})/10)*10", iXSWS.ToString().Trim())); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add(string.Format(" CEILING(RoundFix((abs(isnull(XLXSJGBMX_HSJJ,0))+isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0),{0})/10)*10", iXSWS.ToString().Trim())); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add(" )*-1 end ,"); + + SQL.Add("XLXSJGBMX_WSBJM="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add("RoundFix((abs(isnull(XLXSJGBMX_WSJJM,0))+ case when XLXSJGBMX_JLDW in ('Km','千米') then 0.001 when XLXSJGBMX_JLDW in ('M','米') then 1 else 0 end * isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0),6) "); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJM,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add("RoundFix((abs(isnull(XLXSJGBMX_WSJJM,0))+ case when XLXSJGBMX_JLDW in ('Km','千米') then 0.001 when XLXSJGBMX_JLDW in ('M','米') then 1 else 0 end * isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0),6) "); + SQL.Add(" )*-1 end ,"); + + SQL.Add("XLXSJGBMX_HSBJM="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add("RoundFix((abs(isnull(XLXSJGBMX_HSJJM,0))+ case when XLXSJGBMX_JLDW in ('Km','千米') then 0.001 when XLXSJGBMX_JLDW in ('M','米') then 1 else 0 end * isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0),6) "); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJM,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add("RoundFix((abs(isnull(XLXSJGBMX_HSJJM,0))+ case when XLXSJGBMX_JLDW in ('Km','千米') then 0.001 when XLXSJGBMX_JLDW in ('M','米') then 1 else 0 end * isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0),6) "); + SQL.Add(" )*-1 end ,"); + } + else + { + SQL.Add(string.Format("XLXSJGBMX_WSBJ = CEILING(RoundFix((abs(isnull(XLXSJGBMX_WSJJ,0))+isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0),{0})/10)*10", iXSWS.ToString().Trim())); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJ,0) = 0 then 0 else 1 end) ,"); + SQL.Add(string.Format("XLXSJGBMX_HSBJ = CEILING(RoundFix((abs(isnull(XLXSJGBMX_HSJJ,0))+isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0),{0})/10)*10", iXSWS.ToString().Trim())); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJ,0) = 0 then 0 else 1 end) ,"); + SQL.Add("XLXSJGBMX_WSBJM=RoundFix((abs(isnull(XLXSJGBMX_WSJJM,0))+ case when XLXSJGBMX_JLDW in ('Km','千米') then 0.001 when XLXSJGBMX_JLDW in ('M','米') then 1 else 0 end * isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0),6)"); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJM,0) = 0 then 0 else 1 end) ,"); + SQL.Add("XLXSJGBMX_HSBJM=RoundFix((abs(isnull(XLXSJGBMX_HSJJM,0))+ case when XLXSJGBMX_JLDW in ('Km','千米') then 0.001 when XLXSJGBMX_JLDW in ('M','米') then 1 else 0 end * isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0),6)"); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJM,0) = 0 then 0 else 1 end) ,"); + } + } + else + { + //先加点 + if (dicJGBTJYZ.Count > 0 || dicJGBFGQCPYZ.Count > 0) + { + SQL.Add("XLXSJGBMX_WSBJ="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add(string.Format(" CEILING(RoundFix((abs(isnull(XLXSJGBMX_WSJJ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+isnull(JJYZZ,0)),{0})/10)*10", iXSWS.ToString().Trim())); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add(string.Format(" CEILING(RoundFix((abs(isnull(XLXSJGBMX_WSJJ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+isnull(JJYZZ,0)),{0})/10)*10", iXSWS.ToString().Trim())); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add(" )*-1 end ,"); + + + SQL.Add("XLXSJGBMX_HSBJ="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add(string.Format(" CEILING(RoundFix((abs(isnull(XLXSJGBMX_HSJJ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+isnull(JJYZZ,0)),{0})/10)*10", iXSWS.ToString().Trim())); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add(string.Format(" CEILING(RoundFix((abs(isnull(XLXSJGBMX_HSJJ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+isnull(JJYZZ,0)),{0})/10)*10", iXSWS.ToString().Trim())); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add(" )*-1 end ,"); + + + SQL.Add("XLXSJGBMX_WSBJM="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add("RoundFix((abs(isnull(XLXSJGBMX_WSJJM,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+ case when XLXSJGBMX_JLDW in ('Km','千米') then 0.001 when XLXSJGBMX_JLDW in ('M','米') then 1 else 0 end * isnull(JJYZZ,0)),6) "); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJM,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add("RoundFix((abs(isnull(XLXSJGBMX_WSJJM,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+ case when XLXSJGBMX_JLDW in ('Km','千米') then 0.001 when XLXSJGBMX_JLDW in ('M','米') then 1 else 0 end * isnull(JJYZZ,0)),6) "); + SQL.Add(" )*-1 end ,"); + + + SQL.Add("XLXSJGBMX_HSBJM="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add("RoundFix((abs(isnull(XLXSJGBMX_HSJJM,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+ case when XLXSJGBMX_JLDW in ('Km','千米') then 0.001 when XLXSJGBMX_JLDW in ('M','米') then 1 else 0 end * isnull(JJYZZ,0)),6) "); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJM,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add("RoundFix((abs(isnull(XLXSJGBMX_HSJJM,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+ case when XLXSJGBMX_JLDW in ('Km','千米') then 0.001 when XLXSJGBMX_JLDW in ('M','米') then 1 else 0 end * isnull(JJYZZ,0)),6) "); + SQL.Add(" )*-1 end ,"); + } + else + { + SQL.Add(string.Format("XLXSJGBMX_WSBJ = CEILING(RoundFix((abs(isnull(XLXSJGBMX_WSJJ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+isnull(JJYZZ,0)),{0})/10)*10", iXSWS.ToString().Trim())); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJ,0) = 0 then 0 else 1 end) ,"); + SQL.Add(string.Format("XLXSJGBMX_HSBJ = CEILING(RoundFix((abs(isnull(XLXSJGBMX_HSJJ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+isnull(JJYZZ,0)),{0})/10)*10", iXSWS.ToString().Trim())); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJ,0) = 0 then 0 else 1 end) ,"); + SQL.Add("XLXSJGBMX_WSBJM=RoundFix((abs(isnull(XLXSJGBMX_WSJJM,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+ case when XLXSJGBMX_JLDW in ('Km','千米') then 0.001 when XLXSJGBMX_JLDW in ('M','米') then 1 else 0 end * isnull(JJYZZ,0)),6)"); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJM,0) = 0 then 0 else 1 end) ,"); + SQL.Add("XLXSJGBMX_HSBJM=RoundFix((abs(isnull(XLXSJGBMX_HSJJM,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+ case when XLXSJGBMX_JLDW in ('Km','千米') then 0.001 when XLXSJGBMX_JLDW in ('M','米') then 1 else 0 end * isnull(JJYZZ,0)),6)"); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJM,0) = 0 then 0 else 1 end) ,"); + } + + } + } + else + { + //此处根据序号区分先加价还是先加点/扣点 + if (XLBJDUtils.JJFirst_JGBYZ(sJGBID)) + { + //先加价 + if (dicJGBTJYZ.Count > 0 || dicJGBFGQCPYZ.Count > 0) + { + SQL.Add("XLXSJGBMX_WSBJ="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add("RoundFix((abs(isnull(XLXSJGBMX_WSJJ,0))+isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)," + iXSWS + ")"); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add("RoundFix((abs(isnull(XLXSJGBMX_WSJJ,0))+isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)," + iXSWS + ")"); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add(" )*-1 end ,"); + + SQL.Add("XLXSJGBMX_HSBJ="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add("RoundFix((abs(isnull(XLXSJGBMX_HSJJ,0))+isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)," + iXSWS + ")"); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add("RoundFix((abs(isnull(XLXSJGBMX_HSJJ,0))+isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)," + iXSWS + ")"); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add(" )*-1 end , "); + + SQL.Add("XLXSJGBMX_WSBJM="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add("RoundFix((abs(isnull(XLXSJGBMX_WSJJM,0))+ case when XLXSJGBMX_JLDW in ('Km','千米') then 0.001 when XLXSJGBMX_JLDW in ('M','米') then 1 else 0 end * isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0),6) "); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJM,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add("RoundFix((abs(isnull(XLXSJGBMX_WSJJM,0))+ case when XLXSJGBMX_JLDW in ('Km','千米') then 0.001 when XLXSJGBMX_JLDW in ('M','米') then 1 else 0 end * isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0),6) "); + SQL.Add(" )*-1 end ,"); + + SQL.Add("XLXSJGBMX_HSBJM="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add("RoundFix((abs(isnull(XLXSJGBMX_HSJJM,0))+ case when XLXSJGBMX_JLDW in ('Km','千米') then 0.001 when XLXSJGBMX_JLDW in ('M','米') then 1 else 0 end * isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0),6) "); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJM,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add("RoundFix((abs(isnull(XLXSJGBMX_HSJJM,0))+ case when XLXSJGBMX_JLDW in ('Km','千米') then 0.001 when XLXSJGBMX_JLDW in ('M','米') then 1 else 0 end * isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0),6) "); + SQL.Add(" )*-1 end ,"); + } + else + { + SQL.Add("XLXSJGBMX_WSBJ=RoundFix((abs(isnull(XLXSJGBMX_WSJJ,0))+isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)," + iXSWS + ")"); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJ,0) = 0 then 0 else 1 end) ,"); + SQL.Add("XLXSJGBMX_HSBJ=RoundFix((abs(isnull(XLXSJGBMX_HSJJ,0))+isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)," + iXSWS + ")"); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJ,0) = 0 then 0 else 1 end) ,"); + SQL.Add("XLXSJGBMX_WSBJM=RoundFix((abs(isnull(XLXSJGBMX_WSJJM,0))+ case when XLXSJGBMX_JLDW in ('Km','千米') then 0.001 when XLXSJGBMX_JLDW in ('M','米') then 1 else 0 end * isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0),6)"); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJM,0) = 0 then 0 else 1 end) ,"); + SQL.Add("XLXSJGBMX_HSBJM=RoundFix((abs(isnull(XLXSJGBMX_HSJJM,0))+ case when XLXSJGBMX_JLDW in ('Km','千米') then 0.001 when XLXSJGBMX_JLDW in ('M','米') then 1 else 0 end * isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0),6)"); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJM,0) = 0 then 0 else 1 end) ,"); + } + } + else + { + //先加点 + if (dicJGBTJYZ.Count > 0 || dicJGBFGQCPYZ.Count > 0) + { + SQL.Add("XLXSJGBMX_WSBJ="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add("RoundFix(abs(isnull(XLXSJGBMX_WSJJ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+isnull(JJYZZ,0)," + iXSWS + ")"); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add("RoundFix(abs(isnull(XLXSJGBMX_WSJJ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+isnull(JJYZZ,0)," + iXSWS + ")"); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add(" )*-1 end ,"); + + SQL.Add("XLXSJGBMX_HSBJ="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add("RoundFix(abs(isnull(XLXSJGBMX_HSJJ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+isnull(JJYZZ,0)," + iXSWS + ")"); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add("RoundFix(abs(isnull(XLXSJGBMX_HSJJ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+isnull(JJYZZ,0)," + iXSWS + ")"); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add(" )*-1 end ,"); + + SQL.Add("XLXSJGBMX_WSBJM="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add("RoundFix((abs(isnull(XLXSJGBMX_WSJJM,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+ case when XLXSJGBMX_JLDW in ('Km','千米') then 0.001 when XLXSJGBMX_JLDW in ('M','米') then 1 else 0 end * isnull(JJYZZ,0)),6) "); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJM,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add("RoundFix((abs(isnull(XLXSJGBMX_WSJJM,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+ case when XLXSJGBMX_JLDW in ('Km','千米') then 0.001 when XLXSJGBMX_JLDW in ('M','米') then 1 else 0 end * isnull(JJYZZ,0)),6) "); + SQL.Add(" )*-1 end ,"); + + SQL.Add("XLXSJGBMX_HSBJM="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add("RoundFix((abs(isnull(XLXSJGBMX_HSJJM,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+ case when XLXSJGBMX_JLDW in ('Km','千米') then 0.001 when XLXSJGBMX_JLDW in ('M','米') then 1 else 0 end * isnull(JJYZZ,0)),6) "); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJM,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add("RoundFix((abs(isnull(XLXSJGBMX_HSJJM,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+ case when XLXSJGBMX_JLDW in ('Km','千米') then 0.001 when XLXSJGBMX_JLDW in ('M','米') then 1 else 0 end * isnull(JJYZZ,0)),6) "); + SQL.Add(" )*-1 end ,"); + } + else + { + SQL.Add("XLXSJGBMX_WSBJ=RoundFix(abs(isnull(XLXSJGBMX_WSJJ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+isnull(JJYZZ,0)," + iXSWS + ")"); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJ,0) = 0 then 0 else 1 end) ,"); + SQL.Add("XLXSJGBMX_HSBJ=RoundFix(abs(isnull(XLXSJGBMX_HSJJ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+isnull(JJYZZ,0)," + iXSWS + ")"); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJ,0) = 0 then 0 else 1 end) ,"); + SQL.Add("XLXSJGBMX_WSBJM=RoundFix((abs(isnull(XLXSJGBMX_WSJJM,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+ case when XLXSJGBMX_JLDW in ('Km','千米') then 0.001 when XLXSJGBMX_JLDW in ('M','米') then 1 else 0 end * isnull(JJYZZ,0)),6)"); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJM,0) = 0 then 0 else 1 end) ,"); + SQL.Add("XLXSJGBMX_HSBJM=RoundFix((abs(isnull(XLXSJGBMX_HSJJM,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+ case when XLXSJGBMX_JLDW in ('Km','千米') then 0.001 when XLXSJGBMX_JLDW in ('M','米') then 1 else 0 end * isnull(JJYZZ,0)),6)"); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJM,0) = 0 then 0 else 1 end) ,"); + } + } + } + SQL.Add(" XLXSJGBMX_WHR=:pWHR, "); + SQL.Add(" XLXSJGBMX_WHRID=:pWHRID, "); + SQL.Add(" XLXSJGBMX_WHSJ=:pWHSJ "); + SQL.ParamByName("pJGBID").Value = sJGBID; + SQL.ParamByName("pWHR").Value = sWHR; + SQL.ParamByName("pWHRID").Value = sWHRID; + SQL.ParamByName("pWHSJ").Value = DateTime.Now.ToString(); + string ss = SQL.Text; + Mac.MacLog.TraceFormat(String.Format("DoCPJJ-merge-Begin")); + dberp.ExecSQL(SQL); + Mac.MacLog.TraceFormat(String.Format("DoCPJJ-merge-End")); + + } + else + { + + /* + merge into 目标表 a + using 源表 b + on(a.条件字段1=b.条件字段1 and a.条件字段2=b.条件字段2 ……) + when matched then update set a.更新字段=b.字段 + when not matched then insert into a(字段1,字段2……)values(值1,值2……) + */ + + + Dictionary dicJGBYZJJF = GetJGBYZJJFS(sJGBID); + Dictionary dicJGBTJYZ = XLBJDInfo.GetJGBBTYZ(sJGBID); + Dictionary dicJGBFGQCPYZ = XLBJDInfo.GetJGBFGQCPYZ(sJGBID); + string sJSGSKM = sJSGS; + string sJSGSQT = sJSGS; + foreach (string key in dicJGBYZJJF.Keys) + { + if (dicJGBYZJJF[key].Equals("JJ")) + { + sJSGSKM = sJSGSKM.Replace(key, "0.001 * " + key); + sJSGSQT = sJSGSQT.Replace(key, "0 * " + key); + } + } + SQL.Clear(); + SQL.Add(" merge into XLXSJGBMX tar "); + SQL.Add(" using ( "); + SQL.Add("select JGBID,XH,XLXSJGBYZZ0_YZZ01,XLXSJGBYZZ0_YZZ02,XLXSJGBYZZ0_YZZ03,XLXSJGBYZZ0_YZZ04,XLXSJGBYZZ0_YZZ05,XLXSJGBYZZ0_YZZ06,XLXSJGBYZZ0_YZZ07,XLXSJGBYZZ0_YZZ08,XLXSJGBYZZ0_YZZ09,XLXSJGBYZZ0_YZZ10 "); + if (dicJGBTJYZ.Count > 0 || dicJGBFGQCPYZ.Count > 0) + SQL.Add(",JSYCBZ"); + //if (dicJGBFGQCPYZ.Count > 0) + // SQL.Add(",JGBTJYZYCBZ"); + SQL.Add(" from "); + SQL.Add("("); + SQL.Add(" select XLXSJGBYZZ0_JGBID as JGBID,XLXSJGBYZZ0_XH as XH,XLXSJGBYZZ0_YZZ01,XLXSJGBYZZ0_YZZ02,XLXSJGBYZZ0_YZZ03,XLXSJGBYZZ0_YZZ04,XLXSJGBYZZ0_YZZ05,XLXSJGBYZZ0_YZZ06,XLXSJGBYZZ0_YZZ07,XLXSJGBYZZ0_YZZ08,XLXSJGBYZZ0_YZZ09,XLXSJGBYZZ0_YZZ10 "); + if (dicJGBTJYZ.Count > 0 || dicJGBFGQCPYZ.Count > 0) + { + SQL.Add(" , case "); + if (dicJGBTJYZ.Count > 0) + { + foreach (string sKey in dicJGBTJYZ.Keys) + { + SQL.Add(string.Format(" when XLXSJGBYZZ0_YZZ" + sKey.Replace("JZ", "") + " = 0 then '{0}' ", sKey.Substring(3, 1))); + } + } + if (dicJGBFGQCPYZ.Count > 0) + { + foreach (string sKey in dicJGBFGQCPYZ.Keys) + { + SQL.Add(string.Format(" when XLXSJGBYZZ0_YZZ" + sKey.Replace("JZ", "") + " = -9999 then '{0}' ", sKey.Substring(3, 1))); + } + } + + SQL.Add(" else 'S' "); + SQL.Add(" end as JSYCBZ "); + } + + SQL.Add(" from XLXSJGBYZZ0"); + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Add(" left join XLXSJGBMX on XLXSJGBMX_JGBID=:pJGBID and XLXSJGBMX_XH=XLXSJGBYZZ0_XH"); + SQL.Add(" left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSJGBMX_XLXHID and XLXSCLQD_XLGGID=XLXSJGBMX_XLGGID and XLXSCLQD_XLBZID=XLXSJGBMX_XLBZID and XLXSCLQD_DYDJID=XLXSJGBMX_DYDJID "); + } + SQL.Add(" where XLXSJGBYZZ0_JGBID=:pJGBID "); + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Add(" and XLXSCLQD_JGCZBID = :pJGCZBID"); + SQL.Add(" and XLXSCLQD_JGCZBBBID = :pJGCZBBBID"); + SQL.ParamByName("pJGCZBID").Value = sJGCZBID.Trim(); + SQL.ParamByName("pJGCZBBBID").Value = sJGCZBBBID.Trim(); + } + if (maxXH != 0) + { + SQL.Add(" and XLXSJGBYZZ0_XH > :pmaxXH"); + SQL.ParamByName("pmaxXH").Value = maxXH; + } + SQL.Add(" ) a"); + SQL.Add(" ) sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSJGBMX_JGBID=:pJGBID "); + SQL.Add(" and XLXSJGBMX_JGBID=sor.JGBID "); + SQL.Add(" and XLXSJGBMX_XH=XH "); + //此处未传参数区分,暂先默认 + SQL.Add(" and XLXSJGBMX_SYXH=0 "); + SQL.Add(" and XLXSJGBMX_JLDW in ('M','Km','米','千米') "); + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + + if (sJSBLFS.Equals("C1") || sJSBLFS.Equals("C2"))//C1|进一法(材料价各分项进一)、C2|进一法(材料价汇总进一) + { + if (dicJGBTJYZ.Count > 0 || dicJGBFGQCPYZ.Count > 0) + { + SQL.Add("XLXSJGBMX_WSBJ="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add(string.Format("CEILING(RoundFix({0}*{1},8))/{1}", sJSGS.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_WSJJ,0))"), Math.Pow(10.0, iXSWS))); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add(string.Format("CEILING(RoundFix({0}*{1},8))/{1}", sJSGS.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_WSJJ,0))"), Math.Pow(10.0, iXSWS))); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add(" )*-1 end ,"); + + SQL.Add("XLXSJGBMX_HSBJ="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add(string.Format("CEILING(RoundFix({0}*{1},8))/{1}", sJSGS.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_HSJJ,0))"), Math.Pow(10.0, iXSWS))); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add(string.Format("CEILING(RoundFix({0}*{1},8))/{1}", sJSGS.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_HSJJ,0))"), Math.Pow(10.0, iXSWS))); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add(" )*-1 end ,"); + + SQL.Add("XLXSJGBMX_WSBJM="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add(string.Format("RoundFix(case when XLXSJGBMX_JLDW in ('Km','千米') then {0} when XLXSJGBMX_JLDW in ('M','米') then {1} else {2} end,6) ", sJSGSKM.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_WSJJM,0))"), sJSGS.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_WSJJM,0))"), sJSGSQT.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_WSJJM,0))"))); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJM,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add(string.Format("RoundFix(case when XLXSJGBMX_JLDW in ('Km','千米') then {0} when XLXSJGBMX_JLDW in ('M','米') then {1} else {2} end,6) ", sJSGSKM.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_WSJJM,0))"), sJSGS.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_WSJJM,0))"), sJSGSQT.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_WSJJM,0))"))); + SQL.Add(" )*-1 end ,"); + + SQL.Add("XLXSJGBMX_HSBJM="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add(string.Format("RoundFix(case when XLXSJGBMX_JLDW in ('Km','千米') then {0} when XLXSJGBMX_JLDW in ('M','米') then {1} else {2} end,6) ", sJSGSKM.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_HSJJM,0))"), sJSGS.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_HSJJM,0))"), sJSGSQT.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_HSJJM,0))"))); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJM,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add(string.Format("RoundFix(case when XLXSJGBMX_JLDW in ('Km','千米') then {0} when XLXSJGBMX_JLDW in ('M','米') then {1} else {2} end,6) ", sJSGSKM.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_HSJJM,0))"), sJSGS.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_HSJJM,0))"), sJSGSQT.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_HSJJM,0))"))); + SQL.Add(" )*-1 end ,"); + } + else + { + SQL.Add(string.Format("XLXSJGBMX_WSBJ=CEILING(RoundFix({0}*{1},8))/{1}", sJSGS.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_WSJJ,0))"), Math.Pow(10.0, iXSWS))); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJ,0) = 0 then 0 else 1 end) ,"); + SQL.Add(string.Format("XLXSJGBMX_HSBJ=CEILING(RoundFix({0}*{1},8))/{1}", sJSGS.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_HSJJ,0))"), Math.Pow(10.0, iXSWS))); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJ,0) = 0 then 0 else 1 end) ,"); + SQL.Add(string.Format("XLXSJGBMX_WSBJM=RoundFix(case when XLXSJGBMX_JLDW in ('Km','千米') then {0} when XLXSJGBMX_JLDW in ('M','米') then {1} else {2} end,6) ", sJSGSKM.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_WSJJM,0))"), sJSGS.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_WSJJM,0))"), sJSGSQT.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_WSJJM,0))"))); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJM,0) = 0 then 0 else 1 end), "); + SQL.Add(string.Format("XLXSJGBMX_HSBJM=RoundFix(case when XLXSJGBMX_JLDW in ('Km','千米') then {0} when XLXSJGBMX_JLDW in ('M','米') then {1} else {2} end,6) ", sJSGSKM.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_HSJJM,0))"), sJSGS.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_HSJJM,0))"), sJSGSQT.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_HSJJM,0))"))); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJM,0) = 0 then 0 else 1 end), "); + } + + } + else if (sJSBLFS.Equals("C3"))//C3|材料价汇总进一+表价进一到十位 + { + if (dicJGBTJYZ.Count > 0 || dicJGBFGQCPYZ.Count > 0) + { + SQL.Add("XLXSJGBMX_WSBJ="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add(string.Format("CEILING(RoundFix({0},{1})/10)*10", sJSGS.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_WSJJ,0))"), iXSWS.ToString().Trim())); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add(string.Format("CEILING(RoundFix({0},{1})/10)*10", sJSGS.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_WSJJ,0))"), iXSWS.ToString().Trim())); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add(" )*-1 end ,"); + + SQL.Add("XLXSJGBMX_HSBJ="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add(string.Format("CEILING(RoundFix({0},{1})/10)*10", sJSGS.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_HSJJ,0))"), iXSWS.ToString().Trim())); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add(string.Format("CEILING(RoundFix({0},{1})/10)*10", sJSGS.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_HSJJ,0))"), iXSWS.ToString().Trim())); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add(" )*-1 end ,"); + + SQL.Add("XLXSJGBMX_WSBJM="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add(string.Format("RoundFix(case when XLXSJGBMX_JLDW in ('Km','千米') then {0} when XLXSJGBMX_JLDW in ('M','米') then {1} else {2} end,6) ", sJSGSKM.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_WSJJM,0))"), sJSGS.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_WSJJM,0))"), sJSGSQT.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_WSJJM,0))"))); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJM,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add(string.Format("RoundFix(case when XLXSJGBMX_JLDW in ('Km','千米') then {0} when XLXSJGBMX_JLDW in ('M','米') then {1} else {2} end,6) ", sJSGSKM.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_WSJJM,0))"), sJSGS.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_WSJJM,0))"), sJSGSQT.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_WSJJM,0))"))); + SQL.Add(" )*-1 end ,"); + + SQL.Add("XLXSJGBMX_HSBJM="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add(string.Format("RoundFix(case when XLXSJGBMX_JLDW in ('Km','千米') then {0} when XLXSJGBMX_JLDW in ('M','米') then {1} else {2} end,6) ", sJSGSKM.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_HSJJM,0))"), sJSGS.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_HSJJM,0))"), sJSGSQT.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_HSJJM,0))"))); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJM,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add(string.Format("RoundFix(case when XLXSJGBMX_JLDW in ('Km','千米') then {0} when XLXSJGBMX_JLDW in ('M','米') then {1} else {2} end,6) ", sJSGSKM.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_HSJJM,0))"), sJSGS.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_HSJJM,0))"), sJSGSQT.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_HSJJM,0))"))); + SQL.Add(" )*-1 end ,"); + } + else + { + SQL.Add(string.Format("XLXSJGBMX_WSBJ = CEILING(RoundFix({0},{1})/10)*10", sJSGS.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_WSJJ,0))"), iXSWS.ToString().Trim())); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJ,0) = 0 then 0 else 1 end) ,"); + SQL.Add(string.Format("XLXSJGBMX_HSBJ = CEILING(RoundFix({0},{1})/10)*10", sJSGS.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_HSJJ,0))"), iXSWS.ToString().Trim())); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJ,0) = 0 then 0 else 1 end) ,"); + SQL.Add(string.Format("XLXSJGBMX_WSBJM=RoundFix(case when XLXSJGBMX_JLDW in ('Km','千米') then {0} when XLXSJGBMX_JLDW in ('M','米') then {1} else {2} end,6) ", sJSGSKM.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_WSJJM,0))"), sJSGS.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_WSJJM,0))"), sJSGSQT.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_WSJJM,0))"))); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJM,0) = 0 then 0 else 1 end) , "); + SQL.Add(string.Format("XLXSJGBMX_HSBJM=RoundFix(case when XLXSJGBMX_JLDW in ('Km','千米') then {0} when XLXSJGBMX_JLDW in ('M','米') then {1} else {2} end,6) ", sJSGSKM.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_HSJJM,0))"), sJSGS.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_HSJJM,0))"), sJSGSQT.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_HSJJM,0))"))); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJM,0) = 0 then 0 else 1 end), "); + } + } + else + { + if (dicJGBTJYZ.Count > 0 || dicJGBFGQCPYZ.Count > 0) + { + SQL.Add("XLXSJGBMX_WSBJ="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add(string.Format("RoundFix({0},{1})", sJSGS.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_WSJJ,0))"), iXSWS)); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add(string.Format("RoundFix({0},{1})", sJSGS.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_WSJJ,0))"), iXSWS)); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add(" )*-1 end ,"); + + SQL.Add("XLXSJGBMX_HSBJ="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add(string.Format("RoundFix({0},{1})", sJSGS.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_HSJJ,0))"), iXSWS)); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add(string.Format("RoundFix({0},{1})", sJSGS.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_HSJJ,0))"), iXSWS)); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add(" )*-1 end , "); + + SQL.Add("XLXSJGBMX_WSBJM="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add(string.Format("RoundFix(case when XLXSJGBMX_JLDW in ('Km','千米') then {0} when XLXSJGBMX_JLDW in ('M','米') then {1} else {2} end,6) ", sJSGSKM.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_WSJJM,0))"), sJSGS.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_WSJJM,0))"), sJSGSQT.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_WSJJM,0))"))); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJM,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add(string.Format("RoundFix(case when XLXSJGBMX_JLDW in ('Km','千米') then {0} when XLXSJGBMX_JLDW in ('M','米') then {1} else {2} end,6) ", sJSGSKM.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_WSJJM,0))"), sJSGS.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_WSJJM,0))"), sJSGSQT.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_WSJJM,0))"))); + SQL.Add(" )*-1 end ,"); + + SQL.Add("XLXSJGBMX_HSBJM="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add(string.Format("RoundFix(case when XLXSJGBMX_JLDW in ('Km','千米') then {0} when XLXSJGBMX_JLDW in ('M','米') then {1} else {2} end,6) ", sJSGSKM.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_HSJJM,0))"), sJSGS.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_HSJJM,0))"), sJSGSQT.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_HSJJM,0))"))); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJM,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add(string.Format("RoundFix(case when XLXSJGBMX_JLDW in ('Km','千米') then {0} when XLXSJGBMX_JLDW in ('M','米') then {1} else {2} end,6) ", sJSGSKM.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_HSJJM,0))"), sJSGS.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_HSJJM,0))"), sJSGSQT.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_HSJJM,0))"))); + SQL.Add(" )*-1 end ,"); + } + else + { + SQL.Add(string.Format("XLXSJGBMX_WSBJ=RoundFix({0},{1})", sJSGS.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_WSJJ,0))"), iXSWS)); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJ,0) = 0 then 0 else 1 end) ,"); + SQL.Add(string.Format("XLXSJGBMX_HSBJ=RoundFix({0},{1})", sJSGS.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_HSJJ,0))"), iXSWS)); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJ,0) = 0 then 0 else 1 end) ,"); + SQL.Add(string.Format("XLXSJGBMX_WSBJM=RoundFix(case when XLXSJGBMX_JLDW in ('Km','千米') then {0} when XLXSJGBMX_JLDW in ('M','米') then {1} else {2} end,6) ", sJSGSKM.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_WSJJM,0))"), sJSGS.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_WSJJM,0))"), sJSGSQT.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_WSJJM,0))"))); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJM,0) = 0 then 0 else 1 end), "); + SQL.Add(string.Format("XLXSJGBMX_HSBJM=RoundFix(case when XLXSJGBMX_JLDW in ('Km','千米') then {0} when XLXSJGBMX_JLDW in ('M','米') then {1} else {2} end,6) ", sJSGSKM.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_HSJJM,0))"), sJSGS.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_HSJJM,0))"), sJSGSQT.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_HSJJM,0))"))); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJM,0) = 0 then 0 else 1 end), "); + } + } + SQL.Add(" XLXSJGBMX_WHR=:pWHR, "); + SQL.Add(" XLXSJGBMX_WHRID=:pWHRID, "); + SQL.Add(" XLXSJGBMX_WHSJ=:pWHSJ "); + SQL.ParamByName("pJGBID").Value = sJGBID; + SQL.ParamByName("pWHR").Value = sWHR; + SQL.ParamByName("pWHRID").Value = sWHRID; + SQL.ParamByName("pWHSJ").Value = DateTime.Now.ToString(); + string ss = SQL.Text; + Mac.MacLog.TraceFormat(String.Format("DoCPJJ-merge-Begin")); + dberp.ExecSQL(SQL); + Mac.MacLog.TraceFormat(String.Format("DoCPJJ-merge-End")); + + } + } + else + { + Mac.MacLog.TraceFormat(String.Format("AddXLXSJGBYZZ0-Begin")); + AddXLXSJGBYZZ0(dberp, sMXBH, sJGBID, "", "", "", "", "", "", "", true, sJGCZBID, sJGCZBBBID, maxXH); + Mac.MacLog.TraceFormat(String.Format("AddXLXSJGBYZZ0-End")); + } + } + + + + + + + //根据价格表专属的材料行情,重新计算价格表的材料成本、无税基准报价、含税基准报价 + public static void DoCPJJ(TDatabase dberp, string sMXBH, string sJGBID, bool bInsertXLXSJGBYZZ0, int iXSWS, string sJSBLFS, string sWHRID, string sWHR,string sBJU003) + { + DoCPJJ(dberp, sMXBH, sJGBID, bInsertXLXSJGBYZZ0, "", "", iXSWS, sJSBLFS, sWHRID, sWHR, 0, sBJU003);//参数maxXH为0时的处理逻辑保持不变 + } + + + + public static void DoCPJJ(TDatabase dberp, string sMXBH, string sJGBID, bool bInsertXLXSJGBYZZ0, int iXSWS, string sJSBLFS, string sWHRID, string sWHR, double maxXH, string sBJU003) + { + DoCPJJ(dberp, sMXBH, sJGBID, bInsertXLXSJGBYZZ0, "", "", iXSWS, sJSBLFS, sWHRID, sWHR, maxXH, sBJU003); + } + + + + //如果传入结构尺重表号,则只计算该结构尺重表下的产品 + public static void DoCPJJ(TDatabase dberp, string sMXBH, string sJGBID, bool bInsertXLXSJGBYZZ0, string sJGCZBID, string sJGCZBBBID, int iXSWS, string sJSBLFS, string sWHRID, string sWHR, double maxXH, string sBJU003) + { + //据材料成本及调整因子的值计算无税产品单价、含税产品单价 + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add("select XLXSJGBYZ_YZID,XLXSTZYZ_JJFS,XLXSTZYZ_TJYZID,XLXSTZYZ_TJYS,XLXSJGB_JSGS "); + SQL.Add(" from XLXSJGBYZ"); + SQL.Add(" left join XLXSJGB on XLXSJGB_JGBID = XLXSJGBYZ_JGBID "); + SQL.Add(" left join XLXSTZYZ on XLXSTZYZ_MXBH='JZJ' and XLXSTZYZ_YZID=XLXSJGBYZ_YZID"); + SQL.Add(" where XLXSJGBYZ_JGBID=:pJGBID"); + SQL.Add(" order by XLXSTZYZ_TJYZID,XLXSTZYZ_XSXH,XLXSJGBYZ_YZID"); + SQL.ParamByName("pJGBID").Value = sJGBID; + DataSet dsJGBYZ = dberp.OpenDataSet(SQL); + if (dsJGBYZ.Tables[0].Rows.Count > 0) + { + string sJSGS = dsJGBYZ.Tables[0].Rows[0]["XLXSJGB_JSGS"].ToString().Trim(); + string sTJYSList_ = "";//记录调价因素为空的因子id + string sTJYSList1 = "";//记录调价因素为'1'的因子id + string sTJYSList3 = "";//记录调价因素为'3'的因子id + string sTJYSList4 = "";//记录调价因素为'4'的因子id + string sTJYSList5 = "";//记录调价因素为'5'的因子id + string sTJYSList8 = "";//记录调价因素为'8'的因子id + string sTJYSList9 = "";//记录调价因素为'9'的因子id + for (int i = 0; i < dsJGBYZ.Tables[0].Rows.Count; i++) + { + if (dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYS"].ToString().Trim().Equals("")) + { + sTJYSList_ += dsJGBYZ.Tables[0].Rows[i]["XLXSJGBYZ_YZID"].ToString().Trim() + ","; + } + else if (dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYS"].ToString().Trim().Equals("1")) + { + sTJYSList1 += dsJGBYZ.Tables[0].Rows[i]["XLXSJGBYZ_YZID"].ToString().Trim() + ","; + } + else if (dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYS"].ToString().Trim().Equals("3")) + { + sTJYSList3 += dsJGBYZ.Tables[0].Rows[i]["XLXSJGBYZ_YZID"].ToString().Trim() + ","; + } + else if (dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYS"].ToString().Trim().Equals("4")) + { + sTJYSList4 += dsJGBYZ.Tables[0].Rows[i]["XLXSJGBYZ_YZID"].ToString().Trim() + ","; + } + else if (dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYS"].ToString().Trim().Equals("5")) + { + sTJYSList5 += dsJGBYZ.Tables[0].Rows[i]["XLXSJGBYZ_YZID"].ToString().Trim() + ","; + } + else if (dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYS"].ToString().Trim().Equals("8")) + { + sTJYSList8 += dsJGBYZ.Tables[0].Rows[i]["XLXSJGBYZ_YZID"].ToString().Trim() + ","; + } + else if (dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYS"].ToString().Trim().Equals("9")) + { + sTJYSList9 += dsJGBYZ.Tables[0].Rows[i]["XLXSJGBYZ_YZID"].ToString().Trim() + ","; + } + } + sTJYSList_ = sTJYSList_.TrimEnd(','); + sTJYSList1 = sTJYSList1.TrimEnd(','); + sTJYSList3 = sTJYSList3.TrimEnd(','); + sTJYSList4 = sTJYSList4.TrimEnd(','); + sTJYSList5 = sTJYSList5.TrimEnd(','); + sTJYSList8 = sTJYSList8.TrimEnd(','); + sTJYSList9 = sTJYSList9.TrimEnd(','); + Mac.MacLog.TraceFormat(String.Format("AddXLXSJGBYZZ0-Begin")); + + AddXLXSJGBYZZ0(dberp, sMXBH, sJGBID, sTJYSList_, sTJYSList1, sTJYSList3, sTJYSList4, sTJYSList5, sTJYSList8, sTJYSList9, bInsertXLXSJGBYZZ0, sJGCZBID, sJGCZBBBID, maxXH, sBJU003); + + Mac.MacLog.TraceFormat(String.Format("AddXLXSJGBYZZ0-End")); + string sHSBLSQL = string.Empty; + sHSBLSQL+=" (case when XLXSJGBMX_JLDW in ('M', '米') then 1"; + sHSBLSQL+=" when XLXSJGBMX_JLDW in ('Km', '千米') then 0.001 "; + if (sBJU003.ToUpper().Equals("KM") || sBJU003.ToUpper().Equals("千米")) + { + sHSBLSQL+=" when XLXSJGBMX_JLDW in ('Kg', '千克', '公斤') then (case when XLXSCLQD_CLZL = 0 then 1 else XLXSCLQD_CLZL/1000 end)"; + sHSBLSQL+=" when XLXSJGBMX_JLDW in ('T', '吨') then (case when XLXSCLQD_CLZL = 0 then 1 else XLXSCLQD_CLZL/1000000.0 end)"; + } + else if (sBJU003.ToUpper().Equals("米") || sBJU003.ToUpper().Equals("M")) + { + sHSBLSQL+=" when XLXSJGBMX_JLDW in ('Kg', '千克', '公斤') then (case when XLXSCLQD_CLZL = 0 then 1 else XLXSCLQD_CLZL end)"; + sHSBLSQL+=" when XLXSJGBMX_JLDW in ('T', '吨') then (case when XLXSCLQD_CLZL = 0 then 1 else XLXSCLQD_CLZL/1000 end)"; + } + sHSBLSQL+=" else 0 "; + sHSBLSQL+=" end "; + sHSBLSQL+=" ) "; + if (sJSGS.Trim().Equals("")) + { + string sJDSQL = "1"; + string sKDSQL = "1"; + string sJJSQL = "0"; + string sSXSQL = "1"; + string sTJYZID = dsJGBYZ.Tables[0].Rows[0]["XLXSTZYZ_TJYZID"].ToString().Trim(); + string sJJFS = dsJGBYZ.Tables[0].Rows[0]["XLXSTZYZ_JJFS"].ToString().Trim(); + for (int i = 1; i < dsJGBYZ.Tables[0].Rows.Count; i++) + { + if (!sTJYZID.Equals(dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYZID"].ToString().Trim())) + { + if (sJJFS.Equals("JD")) + sJDSQL = sJDSQL + "*(1+JDYZZ_" + sTJYZID + "/100.0)"; + else if (sJJFS.Equals("KD")) + sKDSQL = sKDSQL + "/(1-KDYZZ_" + sTJYZID + "/100.0)"; + else if (sJJFS.Equals("JJ")) + sJJSQL += "+JJYZZ_" + sTJYZID; + else if (sJJFS.Equals("SX")) + sSXSQL = sSXSQL + "*(case when SXYZZ_" + sTJYZID + ">=0 then 1/(1-SXYZZ_" + sTJYZID + "/100.0) else (1+SXYZZ_" + sTJYZID + "/100.0) end)"; + + sTJYZID = dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYZID"].ToString().Trim(); + sJJFS = dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_JJFS"].ToString().Trim(); + } + } + if (sJJFS.Equals("JD")) + sJDSQL = sJDSQL + "*(1+JDYZZ_" + sTJYZID + "/100.0)"; + else if (sJJFS.Equals("KD")) + sKDSQL = sKDSQL + "/(1-KDYZZ_" + sTJYZID + "/100.0)"; + else if (sJJFS.Equals("JJ")) + sJJSQL += "+JJYZZ_" + sTJYZID; + else if (sJJFS.Equals("SX")) + sSXSQL = sSXSQL + "*(case when SXYZZ_" + sTJYZID + ">=0 then 1/(1-SXYZZ_" + sTJYZID + "/100.0) else (1+SXYZZ_" + sTJYZID + "/100.0) end)"; + /* + merge into 目标表 a + using 源表 b + on(a.条件字段1=b.条件字段1 and a.条件字段2=b.条件字段2 ……) + when matched then update set a.更新字段=b.字段 + when not matched then insert into a(字段1,字段2……)values(值1,值2……) + */ + Dictionary dicJGBTJYZ = XLBJDInfo.GetJGBBTYZ(sJGBID); + Dictionary dicJGBFGQCPYZ = XLBJDInfo.GetJGBFGQCPYZ(sJGBID); + + + + SQL.Clear(); + SQL.Add(" merge into XLXSJGBMX tar "); + SQL.Add(" using ( "); + SQL.Add("select XLXSCLQD_CLZL,JGBID,XH," + sJDSQL + " as JDYZZ," + sKDSQL + " as KDYZZ," + sJJSQL + " as JJYZZ," + sSXSQL + " as SXYZZ"); + if (dicJGBTJYZ.Count > 0 || dicJGBFGQCPYZ.Count > 0) + SQL.Add(",JSYCBZ"); + //if (dicJGBFGQCPYZ.Count > 0) + // SQL.Add(",JGBTJYZYCBZ"); + SQL.Add(" from "); + SQL.Add("("); + SQL.Add(" select isnull(XLXSCLQD_CLZL,0) as XLXSCLQD_CLZL,XLXSJGBYZZ0_JGBID as JGBID,XLXSJGBYZZ0_XH as XH ,"); + if (dicJGBTJYZ.Count > 0 || dicJGBFGQCPYZ.Count > 0) + { + SQL.Add("case "); + if (dicJGBTJYZ.Count > 0) + { + foreach (string sKey in dicJGBTJYZ.Keys) + { + SQL.Add(string.Format(" when XLXSJGBYZZ0_YZZ" + sKey.Replace("JZ", "") + " = 0 then '{0}' ", sKey.Substring(3, 1))); + } + } + if (dicJGBFGQCPYZ.Count > 0) + { + foreach (string sKey in dicJGBFGQCPYZ.Keys) + { + SQL.Add(string.Format(" when XLXSJGBYZZ0_YZZ" + sKey.Replace("JZ", "") + " = -9999 then '{0}' ", sKey.Substring(3, 1))); + } + } + + SQL.Add(" else 'S' "); + SQL.Add(" end as JSYCBZ, "); + } + SQL.Add(" ("); + SQL.Add(string.Format("XLXSJGBYZZ0_YZZ{0}", dsJGBYZ.Tables[0].Rows[0]["XLXSJGBYZ_YZID"].ToString().Trim().Replace("JZ", ""))); + + sTJYZID = dsJGBYZ.Tables[0].Rows[0]["XLXSTZYZ_TJYZID"].ToString().Trim(); + sJJFS = dsJGBYZ.Tables[0].Rows[0]["XLXSTZYZ_JJFS"].ToString().Trim(); + for (int i = 1; i < dsJGBYZ.Tables[0].Rows.Count; i++) + { + if (sTJYZID.Equals(dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYZID"].ToString().Trim())) + { + SQL.Add(string.Format("+XLXSJGBYZZ0_YZZ{0}", dsJGBYZ.Tables[0].Rows[i]["XLXSJGBYZ_YZID"].ToString().Trim().Replace("JZ", ""))); + } + else + { + if (sJJFS.Equals("JD")) + SQL.Add(") as " + "JDYZZ_" + sTJYZID); + else if (sJJFS.Equals("KD")) + SQL.Add(") as " + "KDYZZ_" + sTJYZID); + else if (sJJFS.Equals("JJ")) + SQL.Add(") as " + "JJYZZ_" + sTJYZID); + else if (sJJFS.Equals("SX")) + SQL.Add(") as " + "SXYZZ_" + sTJYZID); + + sTJYZID = dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYZID"].ToString().Trim(); + sJJFS = dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_JJFS"].ToString().Trim(); + SQL.Add(",("); + SQL.Add(string.Format("XLXSJGBYZZ0_YZZ{0}", dsJGBYZ.Tables[0].Rows[i]["XLXSJGBYZ_YZID"].ToString().Trim().Replace("JZ", ""))); + } + } + if (sJJFS.Equals("JD")) + SQL.Add(") as " + "JDYZZ_" + sTJYZID); + else if (sJJFS.Equals("KD")) + SQL.Add(") as " + "KDYZZ_" + sTJYZID); + else if (sJJFS.Equals("JJ")) + SQL.Add(") as " + "JJYZZ_" + sTJYZID); + else if (sJJFS.Equals("SX")) + SQL.Add(") as " + "SXYZZ_" + sTJYZID); + + SQL.Add(" from XLXSJGBYZZ0"); + + SQL.Add(" left join XLXSJGBMX on XLXSJGBMX_JGBID=:pJGBID and XLXSJGBMX_XH=XLXSJGBYZZ0_XH"); + SQL.Add(" left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSJGBMX_XLXHID and XLXSCLQD_XLGGID=XLXSJGBMX_XLGGID and XLXSCLQD_XLBZID=XLXSJGBMX_XLBZID and XLXSCLQD_DYDJID=XLXSJGBMX_DYDJID "); + + SQL.Add(" where XLXSJGBYZZ0_JGBID=:pJGBID "); + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Add(" and XLXSCLQD_JGCZBID = :pJGCZBID"); + SQL.Add(" and XLXSCLQD_JGCZBBBID = :pJGCZBBBID"); + SQL.ParamByName("pJGCZBID").Value = sJGCZBID.Trim(); + SQL.ParamByName("pJGCZBBBID").Value = sJGCZBBBID.Trim(); + } + if (maxXH != 0) + { + SQL.Add(" and XLXSJGBYZZ0_XH > :pmaxXH"); + SQL.ParamByName("pmaxXH").Value = maxXH; + } + SQL.Add(" ) a"); + SQL.Add(" ) sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSJGBMX_JGBID=:pJGBID "); + SQL.Add(" and XLXSJGBMX_JGBID=sor.JGBID "); + SQL.Add(" and XLXSJGBMX_XH=XH "); + //此处未传参数区分,暂先默认 + SQL.Add(" and XLXSJGBMX_SYXH=0 "); + //SQL.Add(" and XLXSJGBMX_JLDW in ('M','Km','米','千米') "); 需支持非长度单位导入基价以及计算表价 + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + + if (sJSBLFS.Equals("C1") || sJSBLFS.Equals("C2"))//C1|进一法(材料价各分项进一)、C2|进一法(材料价汇总进一) + { + //此处根据序号区分先加价还是先加点/扣点 + if (XLBJDUtils.JJFirst_JGBYZ(sJGBID)) + { + //先加价 + if (dicJGBTJYZ.Count > 0 || dicJGBFGQCPYZ.Count > 0) + { + SQL.Add("XLXSJGBMX_WSBJ="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add(string.Format("CEILING(RoundFix((abs(isnull(XLXSJGBMX_WSJJ,0))+isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)*{0},8))/{0}", Math.Pow(10.0, iXSWS))); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add(string.Format("CEILING(RoundFix((abs(isnull(XLXSJGBMX_WSJJ,0))+isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)*{0},8))/{0}", Math.Pow(10.0, iXSWS))); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add(" )*-1 end ,"); + + SQL.Add("XLXSJGBMX_HSBJ="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add(string.Format("CEILING(RoundFix((abs(isnull(XLXSJGBMX_HSJJ,0))+isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)*{0},8))/{0}", Math.Pow(10.0, iXSWS))); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add(string.Format("CEILING(RoundFix((abs(isnull(XLXSJGBMX_HSJJ,0))+isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)*{0},8))/{0}", Math.Pow(10.0, iXSWS))); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add(" )*-1 end ,"); + + SQL.Add("XLXSJGBMX_WSBJM="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add("RoundFix((abs(isnull(XLXSJGBMX_WSJJM,0))+ " + sHSBLSQL + "* isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0),6) "); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJM,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add("RoundFix((abs(isnull(XLXSJGBMX_WSJJM,0))+ " + sHSBLSQL + "* isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0),6) "); + SQL.Add(" )*-1 end ,"); + + SQL.Add("XLXSJGBMX_HSBJM="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add("RoundFix((abs(isnull(XLXSJGBMX_HSJJM,0))+ " + sHSBLSQL + "* isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0),6) "); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJM,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add("RoundFix((abs(isnull(XLXSJGBMX_HSJJM,0))+ " + sHSBLSQL + "* isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0),6) "); + SQL.Add(" )*-1 end ,"); + } + else + { + SQL.Add(string.Format("XLXSJGBMX_WSBJ=CEILING(RoundFix((abs(isnull(XLXSJGBMX_WSJJ,0))+isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)*{0},8))/{0}", Math.Pow(10.0, iXSWS))); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJ,0) = 0 then 0 else 1 end) ,"); + SQL.Add(string.Format("XLXSJGBMX_HSBJ=CEILING(RoundFix((abs(isnull(XLXSJGBMX_HSJJ,0))+isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)*{0},8))/{0}", Math.Pow(10.0, iXSWS))); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJ,0) = 0 then 0 else 1 end) ,"); + SQL.Add("XLXSJGBMX_WSBJM=RoundFix((abs(isnull(XLXSJGBMX_WSJJM,0))+ " + sHSBLSQL + "* isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0),6) "); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJM,0) = 0 then 0 else 1 end) ,"); + SQL.Add("XLXSJGBMX_HSBJM=RoundFix((abs(isnull(XLXSJGBMX_HSJJM,0))+ " + sHSBLSQL + "* isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0),6) "); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJM,0) = 0 then 0 else 1 end) ,"); + } + } + else + { + //先加点 + if (dicJGBTJYZ.Count > 0 || dicJGBFGQCPYZ.Count > 0) + { + SQL.Add("XLXSJGBMX_WSBJ="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add(string.Format("CEILING(RoundFix((abs(isnull(XLXSJGBMX_WSJJ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+isnull(JJYZZ,0))*{0},8))/{0}", Math.Pow(10.0, iXSWS))); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add(string.Format("CEILING(RoundFix((abs(isnull(XLXSJGBMX_WSJJ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+isnull(JJYZZ,0))*{0},8))/{0}", Math.Pow(10.0, iXSWS))); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add(" )*-1 end ,"); + + + SQL.Add("XLXSJGBMX_HSBJ="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add(string.Format("CEILING(RoundFix((abs(isnull(XLXSJGBMX_HSJJ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+isnull(JJYZZ,0))*{0},8))/{0}", Math.Pow(10.0, iXSWS))); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add(string.Format("CEILING(RoundFix((abs(isnull(XLXSJGBMX_HSJJ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+isnull(JJYZZ,0))*{0},8))/{0}", Math.Pow(10.0, iXSWS))); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add(" )*-1 end ,"); + + + SQL.Add("XLXSJGBMX_WSBJM="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add("RoundFix((abs(isnull(XLXSJGBMX_WSJJM,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+ " + sHSBLSQL + "* isnull(JJYZZ,0)),6) "); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJM,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add("RoundFix((abs(isnull(XLXSJGBMX_WSJJM,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+ " + sHSBLSQL + "* isnull(JJYZZ,0)),6) "); + SQL.Add(" )*-1 end ,"); + + + SQL.Add("XLXSJGBMX_HSBJM="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add("RoundFix((abs(isnull(XLXSJGBMX_HSJJM,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+ " + sHSBLSQL + "* isnull(JJYZZ,0)),6) "); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJM,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add("RoundFix((abs(isnull(XLXSJGBMX_HSJJM,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+ " + sHSBLSQL + "* isnull(JJYZZ,0)),6) "); + SQL.Add(" )*-1 end ,"); + } + else + { + SQL.Add(string.Format("XLXSJGBMX_WSBJ=CEILING(RoundFix((abs(isnull(XLXSJGBMX_WSJJ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+isnull(JJYZZ,0))*{0},8))/{0}", Math.Pow(10.0, iXSWS))); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJ,0) = 0 then 0 else 1 end) ,"); + SQL.Add(string.Format("XLXSJGBMX_HSBJ=CEILING(RoundFix((abs(isnull(XLXSJGBMX_HSJJ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+isnull(JJYZZ,0))*{0},8))/{0}", Math.Pow(10.0, iXSWS))); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJ,0) = 0 then 0 else 1 end) ,"); + SQL.Add("XLXSJGBMX_WSBJM=RoundFix((abs(isnull(XLXSJGBMX_WSJJM,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+ " + sHSBLSQL + "* isnull(JJYZZ,0)),6)"); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJM,0) = 0 then 0 else 1 end) ,"); + SQL.Add("XLXSJGBMX_HSBJM=RoundFix((abs(isnull(XLXSJGBMX_HSJJM,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+ " + sHSBLSQL + "* isnull(JJYZZ,0)),6)"); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJM,0) = 0 then 0 else 1 end) ,"); + } + + } + } + else if (sJSBLFS.Equals("C3"))//C3|材料价汇总进一+表价进一到十位 + { + //此处根据序号区分先加价还是先加点/扣点 + if (XLBJDUtils.JJFirst_JGBYZ(sJGBID)) + { + //先加价 + if (dicJGBTJYZ.Count > 0 || dicJGBFGQCPYZ.Count > 0) + { + SQL.Add("XLXSJGBMX_WSBJ="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add(string.Format(" CEILING(RoundFix((abs(isnull(XLXSJGBMX_WSJJ,0))+isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0),{0})/10)*10", iXSWS.ToString().Trim())); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add(string.Format(" CEILING(RoundFix((abs(isnull(XLXSJGBMX_WSJJ,0))+isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0),{0})/10)*10", iXSWS.ToString().Trim())); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add(" )*-1 end ,"); + + SQL.Add("XLXSJGBMX_HSBJ="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add(string.Format(" CEILING(RoundFix((abs(isnull(XLXSJGBMX_HSJJ,0))+isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0),{0})/10)*10", iXSWS.ToString().Trim())); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add(string.Format(" CEILING(RoundFix((abs(isnull(XLXSJGBMX_HSJJ,0))+isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0),{0})/10)*10", iXSWS.ToString().Trim())); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add(" )*-1 end ,"); + + SQL.Add("XLXSJGBMX_WSBJM="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add("RoundFix((abs(isnull(XLXSJGBMX_WSJJM,0))+ " + sHSBLSQL + "* isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0),6) "); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJM,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add("RoundFix((abs(isnull(XLXSJGBMX_WSJJM,0))+ " + sHSBLSQL + "* isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0),6) "); + SQL.Add(" )*-1 end ,"); + + SQL.Add("XLXSJGBMX_HSBJM="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add("RoundFix((abs(isnull(XLXSJGBMX_HSJJM,0))+ " + sHSBLSQL + "* isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0),6) "); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJM,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add("RoundFix((abs(isnull(XLXSJGBMX_HSJJM,0))+ " + sHSBLSQL + "* isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0),6) "); + SQL.Add(" )*-1 end ,"); + } + else + { + SQL.Add(string.Format("XLXSJGBMX_WSBJ = CEILING(RoundFix((abs(isnull(XLXSJGBMX_WSJJ,0))+isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0),{0})/10)*10", iXSWS.ToString().Trim())); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJ,0) = 0 then 0 else 1 end) ,"); + SQL.Add(string.Format("XLXSJGBMX_HSBJ = CEILING(RoundFix((abs(isnull(XLXSJGBMX_HSJJ,0))+isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0),{0})/10)*10", iXSWS.ToString().Trim())); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJ,0) = 0 then 0 else 1 end) ,"); + SQL.Add("XLXSJGBMX_WSBJM=RoundFix((abs(isnull(XLXSJGBMX_WSJJM,0))+ " + sHSBLSQL + "* isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0),6)"); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJM,0) = 0 then 0 else 1 end) ,"); + SQL.Add("XLXSJGBMX_HSBJM=RoundFix((abs(isnull(XLXSJGBMX_HSJJM,0))+ " + sHSBLSQL + "* isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0),6)"); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJM,0) = 0 then 0 else 1 end) ,"); + } + } + else + { + //先加点 + if (dicJGBTJYZ.Count > 0 || dicJGBFGQCPYZ.Count > 0) + { + SQL.Add("XLXSJGBMX_WSBJ="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add(string.Format(" CEILING(RoundFix((abs(isnull(XLXSJGBMX_WSJJ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+isnull(JJYZZ,0)),{0})/10)*10", iXSWS.ToString().Trim())); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add(string.Format(" CEILING(RoundFix((abs(isnull(XLXSJGBMX_WSJJ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+isnull(JJYZZ,0)),{0})/10)*10", iXSWS.ToString().Trim())); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add(" )*-1 end ,"); + + + SQL.Add("XLXSJGBMX_HSBJ="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add(string.Format(" CEILING(RoundFix((abs(isnull(XLXSJGBMX_HSJJ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+isnull(JJYZZ,0)),{0})/10)*10", iXSWS.ToString().Trim())); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add(string.Format(" CEILING(RoundFix((abs(isnull(XLXSJGBMX_HSJJ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+isnull(JJYZZ,0)),{0})/10)*10", iXSWS.ToString().Trim())); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add(" )*-1 end ,"); + + + SQL.Add("XLXSJGBMX_WSBJM="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add("RoundFix((abs(isnull(XLXSJGBMX_WSJJM,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+ " + sHSBLSQL + "* isnull(JJYZZ,0)),6) "); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJM,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add("RoundFix((abs(isnull(XLXSJGBMX_WSJJM,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+ " + sHSBLSQL + "* isnull(JJYZZ,0)),6) "); + SQL.Add(" )*-1 end ,"); + + + SQL.Add("XLXSJGBMX_HSBJM="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add("RoundFix((abs(isnull(XLXSJGBMX_HSJJM,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+ " + sHSBLSQL + "* isnull(JJYZZ,0)),6) "); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJM,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add("RoundFix((abs(isnull(XLXSJGBMX_HSJJM,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+ " + sHSBLSQL + "* isnull(JJYZZ,0)),6) "); + SQL.Add(" )*-1 end ,"); + } + else + { + SQL.Add(string.Format("XLXSJGBMX_WSBJ = CEILING(RoundFix((abs(isnull(XLXSJGBMX_WSJJ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+isnull(JJYZZ,0)),{0})/10)*10", iXSWS.ToString().Trim())); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJ,0) = 0 then 0 else 1 end) ,"); + SQL.Add(string.Format("XLXSJGBMX_HSBJ = CEILING(RoundFix((abs(isnull(XLXSJGBMX_HSJJ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+isnull(JJYZZ,0)),{0})/10)*10", iXSWS.ToString().Trim())); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJ,0) = 0 then 0 else 1 end) ,"); + SQL.Add("XLXSJGBMX_WSBJM=RoundFix((abs(isnull(XLXSJGBMX_WSJJM,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+ " + sHSBLSQL + "* isnull(JJYZZ,0)),6)"); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJM,0) = 0 then 0 else 1 end) ,"); + SQL.Add("XLXSJGBMX_HSBJM=RoundFix((abs(isnull(XLXSJGBMX_HSJJM,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+ " + sHSBLSQL + "* isnull(JJYZZ,0)),6)"); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJM,0) = 0 then 0 else 1 end) ,"); + } + + } + } + else + { + //此处根据序号区分先加价还是先加点/扣点 + if (XLBJDUtils.JJFirst_JGBYZ(sJGBID)) + { + //先加价 + if (dicJGBTJYZ.Count > 0 || dicJGBFGQCPYZ.Count > 0) + { + SQL.Add("XLXSJGBMX_WSBJ="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add("RoundFix((abs(isnull(XLXSJGBMX_WSJJ,0))+isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)," + iXSWS + ")"); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add("RoundFix((abs(isnull(XLXSJGBMX_WSJJ,0))+isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)," + iXSWS + ")"); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add(" )*-1 end ,"); + + SQL.Add("XLXSJGBMX_HSBJ="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add("RoundFix((abs(isnull(XLXSJGBMX_HSJJ,0))+isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)," + iXSWS + ")"); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add("RoundFix((abs(isnull(XLXSJGBMX_HSJJ,0))+isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)," + iXSWS + ")"); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add(" )*-1 end , "); + + SQL.Add("XLXSJGBMX_WSBJM="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add("RoundFix((abs(isnull(XLXSJGBMX_WSJJM,0))+ " + sHSBLSQL + "* isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0),6) "); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJM,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add("RoundFix((abs(isnull(XLXSJGBMX_WSJJM,0))+ " + sHSBLSQL + "* isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0),6) "); + SQL.Add(" )*-1 end ,"); + + SQL.Add("XLXSJGBMX_HSBJM="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add("RoundFix((abs(isnull(XLXSJGBMX_HSJJM,0))+ " + sHSBLSQL + "* isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0),6) "); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJM,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add("RoundFix((abs(isnull(XLXSJGBMX_HSJJM,0))+ " + sHSBLSQL + "* isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0),6) "); + SQL.Add(" )*-1 end ,"); + } + else + { + SQL.Add("XLXSJGBMX_WSBJ=RoundFix((abs(isnull(XLXSJGBMX_WSJJ,0))+isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)," + iXSWS + ")"); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJ,0) = 0 then 0 else 1 end) ,"); + SQL.Add("XLXSJGBMX_HSBJ=RoundFix((abs(isnull(XLXSJGBMX_HSJJ,0))+isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)," + iXSWS + ")"); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJ,0) = 0 then 0 else 1 end) ,"); + SQL.Add("XLXSJGBMX_WSBJM=RoundFix((abs(isnull(XLXSJGBMX_WSJJM,0))+ " + sHSBLSQL + "* isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0),6)"); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJM,0) = 0 then 0 else 1 end) ,"); + SQL.Add("XLXSJGBMX_HSBJM=RoundFix((abs(isnull(XLXSJGBMX_HSJJM,0))+ " + sHSBLSQL + "* isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0),6)"); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJM,0) = 0 then 0 else 1 end) ,"); + } + } + else + { + //先加点 + if (dicJGBTJYZ.Count > 0 || dicJGBFGQCPYZ.Count > 0) + { + SQL.Add("XLXSJGBMX_WSBJ="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add("RoundFix(abs(isnull(XLXSJGBMX_WSJJ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+isnull(JJYZZ,0)," + iXSWS + ")"); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add("RoundFix(abs(isnull(XLXSJGBMX_WSJJ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+isnull(JJYZZ,0)," + iXSWS + ")"); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add(" )*-1 end ,"); + + SQL.Add("XLXSJGBMX_HSBJ="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add("RoundFix(abs(isnull(XLXSJGBMX_HSJJ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+isnull(JJYZZ,0)," + iXSWS + ")"); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add("RoundFix(abs(isnull(XLXSJGBMX_HSJJ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+isnull(JJYZZ,0)," + iXSWS + ")"); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add(" )*-1 end ,"); + + SQL.Add("XLXSJGBMX_WSBJM="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add("RoundFix((abs(isnull(XLXSJGBMX_WSJJM,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+ " + sHSBLSQL + "* isnull(JJYZZ,0)),6) "); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJM,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add("RoundFix((abs(isnull(XLXSJGBMX_WSJJM,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+ " + sHSBLSQL + "* isnull(JJYZZ,0)),6) "); + SQL.Add(" )*-1 end ,"); + + SQL.Add("XLXSJGBMX_HSBJM="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add("RoundFix((abs(isnull(XLXSJGBMX_HSJJM,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+ " + sHSBLSQL + "* isnull(JJYZZ,0)),6) "); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJM,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add("RoundFix((abs(isnull(XLXSJGBMX_HSJJM,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+ " + sHSBLSQL + "* isnull(JJYZZ,0)),6) "); + SQL.Add(" )*-1 end ,"); + } + else + { + SQL.Add("XLXSJGBMX_WSBJ=RoundFix(abs(isnull(XLXSJGBMX_WSJJ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+isnull(JJYZZ,0)," + iXSWS + ")"); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJ,0) = 0 then 0 else 1 end) ,"); + SQL.Add("XLXSJGBMX_HSBJ=RoundFix(abs(isnull(XLXSJGBMX_HSJJ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+isnull(JJYZZ,0)," + iXSWS + ")"); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJ,0) = 0 then 0 else 1 end) ,"); + SQL.Add("XLXSJGBMX_WSBJM=RoundFix((abs(isnull(XLXSJGBMX_WSJJM,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+ " + sHSBLSQL + "* isnull(JJYZZ,0)),6)"); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJM,0) = 0 then 0 else 1 end) ,"); + SQL.Add("XLXSJGBMX_HSBJM=RoundFix((abs(isnull(XLXSJGBMX_HSJJM,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+ " + sHSBLSQL + "* isnull(JJYZZ,0)),6)"); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJM,0) = 0 then 0 else 1 end) ,"); + } + } + } + SQL.Add(" XLXSJGBMX_WHR=:pWHR, "); + SQL.Add(" XLXSJGBMX_WHRID=:pWHRID, "); + SQL.Add(" XLXSJGBMX_WHSJ=:pWHSJ "); + SQL.ParamByName("pJGBID").Value = sJGBID; + SQL.ParamByName("pWHR").Value = sWHR; + SQL.ParamByName("pWHRID").Value = sWHRID; + SQL.ParamByName("pWHSJ").Value = DateTime.Now.ToString(); + string ss = SQL.Text; + Mac.MacLog.TraceFormat(String.Format("DoCPJJ-merge-Begin")); + dberp.ExecSQL(SQL); + Mac.MacLog.TraceFormat(String.Format("DoCPJJ-merge-End")); + + } + else + { + /* + merge into 目标表 a + using 源表 b + on(a.条件字段1=b.条件字段1 and a.条件字段2=b.条件字段2 ……) + when matched then update set a.更新字段=b.字段 + when not matched then insert into a(字段1,字段2……)values(值1,值2……) + */ + + + Dictionary dicJGBYZJJF = GetJGBYZJJFS(sJGBID); + Dictionary dicJGBTJYZ = XLBJDInfo.GetJGBBTYZ(sJGBID); + Dictionary dicJGBFGQCPYZ = XLBJDInfo.GetJGBFGQCPYZ(sJGBID); + string sJSGSM = sJSGS; + foreach (string key in dicJGBYZJJF.Keys) + { + if (dicJGBYZJJF[key].Equals("JJ")) + { + sJSGSM = sJSGSM.Replace(key, sHSBLSQL + " * " + key); + } + } + SQL.Clear(); + SQL.Add(" merge into XLXSJGBMX tar "); + SQL.Add(" using ( "); + SQL.Add("select XLXSCLQD_CLZL,JGBID,XH,XLXSJGBYZZ0_YZZ01,XLXSJGBYZZ0_YZZ02,XLXSJGBYZZ0_YZZ03,XLXSJGBYZZ0_YZZ04,XLXSJGBYZZ0_YZZ05,XLXSJGBYZZ0_YZZ06,XLXSJGBYZZ0_YZZ07,XLXSJGBYZZ0_YZZ08,XLXSJGBYZZ0_YZZ09,XLXSJGBYZZ0_YZZ10 "); + if (dicJGBTJYZ.Count > 0 || dicJGBFGQCPYZ.Count > 0) + SQL.Add(",JSYCBZ"); + //if (dicJGBFGQCPYZ.Count > 0) + // SQL.Add(",JGBTJYZYCBZ"); + SQL.Add(" from "); + SQL.Add("("); + SQL.Add(" select isnull(XLXSCLQD_CLZL,0) as XLXSCLQD_CLZL,XLXSJGBYZZ0_JGBID as JGBID,XLXSJGBYZZ0_XH as XH,XLXSJGBYZZ0_YZZ01,XLXSJGBYZZ0_YZZ02,XLXSJGBYZZ0_YZZ03,XLXSJGBYZZ0_YZZ04,XLXSJGBYZZ0_YZZ05,XLXSJGBYZZ0_YZZ06,XLXSJGBYZZ0_YZZ07,XLXSJGBYZZ0_YZZ08,XLXSJGBYZZ0_YZZ09,XLXSJGBYZZ0_YZZ10 "); + if (dicJGBTJYZ.Count > 0 || dicJGBFGQCPYZ.Count > 0) + { + SQL.Add(" ,case "); + if (dicJGBTJYZ.Count > 0) + { + foreach (string sKey in dicJGBTJYZ.Keys) + { + SQL.Add(string.Format(" when XLXSJGBYZZ0_YZZ" + sKey.Replace("JZ", "") + " = 0 then '{0}' ", sKey.Substring(3, 1))); + } + } + if (dicJGBFGQCPYZ.Count > 0) + { + foreach (string sKey in dicJGBFGQCPYZ.Keys) + { + SQL.Add(string.Format(" when XLXSJGBYZZ0_YZZ" + sKey.Replace("JZ", "") + " = -9999 then '{0}' ", sKey.Substring(3, 1))); + } + } + + SQL.Add(" else 'S' "); + SQL.Add(" end as JSYCBZ "); + } + + SQL.Add(" from XLXSJGBYZZ0"); + + SQL.Add(" left join XLXSJGBMX on XLXSJGBMX_JGBID=:pJGBID and XLXSJGBMX_XH=XLXSJGBYZZ0_XH"); + SQL.Add(" left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSJGBMX_XLXHID and XLXSCLQD_XLGGID=XLXSJGBMX_XLGGID and XLXSCLQD_XLBZID=XLXSJGBMX_XLBZID and XLXSCLQD_DYDJID=XLXSJGBMX_DYDJID "); + + SQL.Add(" where XLXSJGBYZZ0_JGBID=:pJGBID "); + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Add(" and XLXSCLQD_JGCZBID = :pJGCZBID"); + SQL.Add(" and XLXSCLQD_JGCZBBBID = :pJGCZBBBID"); + SQL.ParamByName("pJGCZBID").Value = sJGCZBID.Trim(); + SQL.ParamByName("pJGCZBBBID").Value = sJGCZBBBID.Trim(); + } + if (maxXH != 0) + { + SQL.Add(" and XLXSJGBYZZ0_XH > :pmaxXH"); + SQL.ParamByName("pmaxXH").Value = maxXH; + } + SQL.Add(" ) a"); + SQL.Add(" ) sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSJGBMX_JGBID=:pJGBID "); + SQL.Add(" and XLXSJGBMX_JGBID=sor.JGBID "); + SQL.Add(" and XLXSJGBMX_XH=XH "); + //此处未传参数区分,暂先默认 + SQL.Add(" and XLXSJGBMX_SYXH=0 "); + SQL.Add(" and XLXSJGBMX_JLDW in ('M','Km','米','千米') "); + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + + if (sJSBLFS.Equals("C1") || sJSBLFS.Equals("C2"))//C1|进一法(材料价各分项进一)、C2|进一法(材料价汇总进一) + { + if (dicJGBTJYZ.Count > 0 || dicJGBFGQCPYZ.Count > 0) + { + SQL.Add("XLXSJGBMX_WSBJ="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add(string.Format("CEILING(RoundFix({0}*{1},8))/{1}", sJSGS.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_WSJJ,0))"), Math.Pow(10.0, iXSWS))); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add(string.Format("CEILING(RoundFix({0}*{1},8))/{1}", sJSGS.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_WSJJ,0))"), Math.Pow(10.0, iXSWS))); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add(" )*-1 end ,"); + + SQL.Add("XLXSJGBMX_HSBJ="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add(string.Format("CEILING(RoundFix({0}*{1},8))/{1}", sJSGS.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_HSJJ,0))"), Math.Pow(10.0, iXSWS))); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add(string.Format("CEILING(RoundFix({0}*{1},8))/{1}", sJSGS.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_HSJJ,0))"), Math.Pow(10.0, iXSWS))); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add(" )*-1 end ,"); + + SQL.Add("XLXSJGBMX_WSBJM="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add(string.Format("RoundFix({0} ,6) ", sJSGSM.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_WSJJM,0))"))); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJM,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add(string.Format("RoundFix({0},6) ", sJSGSM.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_WSJJM,0))"))); + SQL.Add(" )*-1 end ,"); + + SQL.Add("XLXSJGBMX_HSBJM="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add(string.Format("RoundFix({0},6) ", sJSGSM.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_HSJJM,0))"))); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJM,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add(string.Format("RoundFix({0},6) ", sJSGSM.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_HSJJM,0))"))); + SQL.Add(" )*-1 end ,"); + } + else + { + SQL.Add(string.Format("XLXSJGBMX_WSBJ=CEILING(RoundFix({0}*{1},8))/{1}", sJSGS.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_WSJJ,0))"), Math.Pow(10.0, iXSWS))); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJ,0) = 0 then 0 else 1 end) ,"); + SQL.Add(string.Format("XLXSJGBMX_HSBJ=CEILING(RoundFix({0}*{1},8))/{1}", sJSGS.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_HSJJ,0))"), Math.Pow(10.0, iXSWS))); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJ,0) = 0 then 0 else 1 end) ,"); + SQL.Add(string.Format("XLXSJGBMX_WSBJM=RoundFix({0},6) ", sJSGSM.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_WSJJM,0))"))); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJM,0) = 0 then 0 else 1 end), "); + SQL.Add(string.Format("XLXSJGBMX_HSBJM=RoundFix({0},6) ", sJSGSM.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_HSJJM,0))"))); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJM,0) = 0 then 0 else 1 end), "); + } + + } + else if (sJSBLFS.Equals("C3"))//C3|材料价汇总进一+表价进一到十位 + { + if (dicJGBTJYZ.Count > 0 || dicJGBFGQCPYZ.Count > 0) + { + SQL.Add("XLXSJGBMX_WSBJ="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add(string.Format("CEILING(RoundFix({0},{1})/10)*10", sJSGS.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_WSJJ,0))"), iXSWS.ToString().Trim())); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add(string.Format("CEILING(RoundFix({0},{1})/10)*10", sJSGS.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_WSJJ,0))"), iXSWS.ToString().Trim())); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add(" )*-1 end ,"); + + SQL.Add("XLXSJGBMX_HSBJ="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add(string.Format("CEILING(RoundFix({0},{1})/10)*10", sJSGS.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_HSJJ,0))"), iXSWS.ToString().Trim())); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add(string.Format("CEILING(RoundFix({0},{1})/10)*10", sJSGS.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_HSJJ,0))"), iXSWS.ToString().Trim())); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add(" )*-1 end ,"); + + SQL.Add("XLXSJGBMX_WSBJM="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add(string.Format("RoundFix({0},6) ", sJSGSM.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_WSJJM,0))"))); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJM,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add(string.Format("RoundFix({0},6) ", sJSGSM.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_WSJJM,0))"))); + SQL.Add(" )*-1 end ,"); + + SQL.Add("XLXSJGBMX_HSBJM="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add(string.Format("RoundFix({0},6) ", sJSGSM.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_HSJJM,0))"))); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJM,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add(string.Format("RoundFix({0},6) ", sJSGSM.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_HSJJM,0))"))); + SQL.Add(" )*-1 end ,"); + } + else + { + SQL.Add(string.Format("XLXSJGBMX_WSBJ = CEILING(RoundFix({0},{1})/10)*10", sJSGS.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_WSJJ,0))"), iXSWS.ToString().Trim())); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJ,0) = 0 then 0 else 1 end) ,"); + SQL.Add(string.Format("XLXSJGBMX_HSBJ = CEILING(RoundFix({0},{1})/10)*10", sJSGS.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_HSJJ,0))"), iXSWS.ToString().Trim())); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJ,0) = 0 then 0 else 1 end) ,"); + SQL.Add(string.Format("XLXSJGBMX_WSBJM=RoundFix({0},6) ", sJSGSM.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_WSJJM,0))"))); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJM,0) = 0 then 0 else 1 end) , "); + SQL.Add(string.Format("XLXSJGBMX_HSBJM=RoundFix({0},6) ", sJSGSM.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_HSJJM,0))"))); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJM,0) = 0 then 0 else 1 end), "); + } + } + else + { + if (dicJGBTJYZ.Count > 0 || dicJGBFGQCPYZ.Count > 0) + { + SQL.Add("XLXSJGBMX_WSBJ="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add(string.Format("RoundFix({0},{1})", sJSGS.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_WSJJ,0))"), iXSWS)); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add(string.Format("RoundFix({0},{1})", sJSGS.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_WSJJ,0))"), iXSWS)); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add(" )*-1 end ,"); + + SQL.Add("XLXSJGBMX_HSBJ="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add(string.Format("RoundFix({0},{1})", sJSGS.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_HSJJ,0))"), iXSWS)); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add(string.Format("RoundFix({0},{1})", sJSGS.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_HSJJ,0))"), iXSWS)); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJ,0) = 0 then 0 else 1 end) "); + SQL.Add(" )*-1 end , "); + + SQL.Add("XLXSJGBMX_WSBJM="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add(string.Format("RoundFix({0},6) ", sJSGSM.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_WSJJM,0))"))); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJM,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add(string.Format("RoundFix({0},6) ", sJSGSM.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_WSJJM,0))"))); + SQL.Add(" )*-1 end ,"); + + SQL.Add("XLXSJGBMX_HSBJM="); + SQL.Add(" case when JSYCBZ='S' then "); + SQL.Add(string.Format("RoundFix({0},6) ", sJSGSM.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_HSJJM,0))"))); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJM,0) = 0 then 0 else 1 end) "); + SQL.Add("else ABS("); + SQL.Add(string.Format("RoundFix({0},6) ", sJSGSM.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_HSJJM,0))"))); + SQL.Add(" )*-1 end ,"); + } + else + { + SQL.Add(string.Format("XLXSJGBMX_WSBJ=RoundFix({0},{1})", sJSGS.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_WSJJ,0))"), iXSWS)); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJ,0) = 0 then 0 else 1 end) ,"); + SQL.Add(string.Format("XLXSJGBMX_HSBJ=RoundFix({0},{1})", sJSGS.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_HSJJ,0))"), iXSWS)); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJ,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJ,0) = 0 then 0 else 1 end) ,"); + SQL.Add(string.Format("XLXSJGBMX_WSBJM=RoundFix({0},6) ", sJSGSM.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_WSJJM,0))"))); + SQL.Add(" * (case when isnull(XLXSJGBMX_WSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_WSJJM,0) = 0 then 0 else 1 end), "); + SQL.Add(string.Format("XLXSJGBMX_HSBJM=RoundFix({0},6) ", sJSGSM.Replace("JZ", "XLXSJGBYZZ0_YZZ").Replace("JGBJJ", "abs(isnull(XLXSJGBMX_HSJJM,0))"))); + SQL.Add(" * (case when isnull(XLXSJGBMX_HSJJM,0) < 0 then (-1) when isnull(XLXSJGBMX_HSJJM,0) = 0 then 0 else 1 end), "); + } + } + SQL.Add(" XLXSJGBMX_WHR=:pWHR, "); + SQL.Add(" XLXSJGBMX_WHRID=:pWHRID, "); + SQL.Add(" XLXSJGBMX_WHSJ=:pWHSJ "); + SQL.ParamByName("pJGBID").Value = sJGBID; + SQL.ParamByName("pWHR").Value = sWHR; + SQL.ParamByName("pWHRID").Value = sWHRID; + SQL.ParamByName("pWHSJ").Value = DateTime.Now.ToString(); + string ss = SQL.Text; + Mac.MacLog.TraceFormat(String.Format("DoCPJJ-merge-Begin")); + dberp.ExecSQL(SQL); + Mac.MacLog.TraceFormat(String.Format("DoCPJJ-merge-End")); + + } + } + else + { + Mac.MacLog.TraceFormat(String.Format("AddXLXSJGBYZZ0-Begin")); + AddXLXSJGBYZZ0(dberp, sMXBH, sJGBID, "", "", "", "", "", "", "", true, sJGCZBID, sJGCZBBBID, maxXH, sBJU003); + Mac.MacLog.TraceFormat(String.Format("AddXLXSJGBYZZ0-End")); + } + } + + + + public static Dictionary GetJGBYZJJFS(string sJGBID) + { + Dictionary dicJGBJJYZ = new Dictionary(); + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add(" SELECT XLXSJGBYZ_YZID,XLXSTZYZ_JJFS "); + SQL.Add(" FROM XLXSJGBYZ "); + SQL.Add(" LEFT JOIN XLXSTZYZ ON XLXSTZYZ_YZID = XLXSJGBYZ_YZID AND XLXSTZYZ_MXBH='JZJ' "); + SQL.Add(" WHERE XLXSJGBYZ_JGBID = :pJGBID "); + SQL.ParamByName("pJGBID").Value = sJGBID; + DataSet ds = dberp.OpenDataSet(SQL); + dicJGBJJYZ.Clear(); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + if (!dicJGBJJYZ.ContainsKey(ds.Tables[0].Rows[i]["XLXSJGBYZ_YZID"].ToString().Trim())) + dicJGBJJYZ.Add(ds.Tables[0].Rows[i]["XLXSJGBYZ_YZID"].ToString().Trim(), ds.Tables[0].Rows[i]["XLXSTZYZ_JJFS"].ToString().Trim()); + } + return dicJGBJJYZ; + } + + + + public static void InsertXLXSJGBWLHQbyJGBCLHQ(TDatabase dberp, TSQL SQL, string sJGBID, string sRQ, string sWHR, string sWHRID, bool bCanUpdate) + { + SQL.Clear(); + SQL.Add("merge into XLXSWLHQ "); + SQL.Add("using "); + SQL.Add("( "); + SQL.Add("select :pJGBID as JGBID,XLXSBJCLWL_WLID as WLID, "); + SQL.Add("case when XLXSCLHQ_BJCLID is not null and isnull(XLXSBJCL_JGYBJCLID,' ') <> ' ' then isnull(XLXSCLHQ_WSJG*XLXSWLHQ_JGBL1,0)+isnull(XLXSWLHQ_WSJGF,0) else isnull(XLXSWLHQ_WSJG,0) end as WSJG, "); + SQL.Add("case when XLXSCLHQ_BJCLID is not null and isnull(XLXSBJCL_JGYBJCLID,' ') <> ' ' then isnull(XLXSCLHQ_HSJG*XLXSWLHQ_JGBL1,0)+isnull(XLXSWLHQ_HSJGF,0) else isnull(XLXSWLHQ_HSJG,0) end as HSJG, "); + SQL.Add("isnull(XLXSWLHQ_WSJGF,0) as WSJGF,isnull(XLXSWLHQ_HSJGF,0) as HSJGF, "); + SQL.Add("isnull(XLXSWLHQ_WSJG1,0.0) as WSJG1,isnull(XLXSWLHQ_HSJG1,0.0) as HSJG1,isnull(XLXSWLHQ_JGBL1,0.0) as JGBL1,isnull(XLXSWLHQ_JGYBJCLID1,' ') as JGYBJCLID1"); + SQL.Add("from XLXSBJCLWL "); + SQL.Add("left join "); + SQL.Add(" (select XLXSWLHQ_WLID,XLXSWLHQ_WSJG,XLXSWLHQ_HSJG,XLXSWLHQ_WSJGF,XLXSWLHQ_HSJGF,"); + SQL.Add(" XLXSWLHQ_JGYBJCLID1,XLXSWLHQ_WSJG1,XLXSWLHQ_HSJG1,XLXSWLHQ_JGBL1"); + SQL.Add(" from XLXSWLHQ,"); + SQL.Add(" ("); + SQL.Add(" select XLXSWLHQ_WLID as WLID,max(XLXSWLHQ_YXQS) as maxYXQS"); + SQL.Add(" from XLXSWLHQ"); + SQL.Add(" where XLXSWLHQ_JGBID=' '"); + SQL.Add(" and XLXSWLHQ_YXQS<=:pRQ and(XLXSWLHQ_YXQZ>=:pRQ or XLXSWLHQ_YXQZ is null)"); + SQL.Add(" group by XLXSWLHQ_WLID"); + SQL.Add(" ) a "); + SQL.Add(" where XLXSWLHQ_JGBID=' ' "); + SQL.Add(" and XLXSWLHQ_WLID=WLID "); + SQL.Add(" and XLXSWLHQ_YXQS=maxYXQS "); + SQL.Add(" ) c on XLXSWLHQ_WLID=XLXSBJCLWL_WLID "); + SQL.Add("left join XLXSBJCL on XLXSBJCL_BJCLID=XLXSBJCLWL_BJCLID "); + SQL.Add("left join XLXSCLHQ on XLXSCLHQ_JGBID=:pJGBID and XLXSCLHQ_BJCLID=XLXSBJCL_JGYBJCLID "); + SQL.Add("where XLXSBJCL_BJHQ = '2' ");//and isnull(XLXSBJCL_JGYBJCLID,' ') <> ' ' 只有存在加工原料的物料才记!--存不存在加工原料的物料行情都记 + SQL.Add(") B on (XLXSWLHQ_JGBID=B.JGBID and XLXSWLHQ_WLID=B.WLID) "); + if (bCanUpdate) + { + SQL.Add("when matched then "); + SQL.Add("update set XLXSWLHQ_WSJG=B.WSJG,XLXSWLHQ_HSJG=B.HSJG,XLXSWLHQ_WSJGF=B.WSJGF,XLXSWLHQ_HSJGF=B.HSJGF, "); + SQL.Add(" XLXSWLHQ_WSJG1=B.WSJG1,XLXSWLHQ_HSJG1=B.HSJG1,XLXSWLHQ_JGBL1=B.JGBL1,"); + SQL.Add(" XLXSWLHQ_WHR=:pWHR,XLXSWLHQ_WHRID=:pWHRID,XLXSWLHQ_WHSJ=:pWHSJ "); + } + SQL.Add("when not matched then "); + SQL.Add("insert (XLXSWLHQ_JGBID,XLXSWLHQ_WLID,XLXSWLHQ_YXQS,XLXSWLHQ_YXQZ,XLXSWLHQ_WSJG,XLXSWLHQ_HSJG,XLXSWLHQ_WSJGF,XLXSWLHQ_HSJGF,"); + SQL.Add(" XLXSWLHQ_JGYBJCLID1,XLXSWLHQ_HSJG1,XLXSWLHQ_WSJG1,XLXSWLHQ_JGBL1,"); + SQL.Add(" XLXSWLHQ_WHR,XLXSWLHQ_WHRID,XLXSWLHQ_WHSJ) "); + SQL.Add("values (B.JGBID,B.WLID,convert(datetime,'1900-01-01 00:00:00'),convert(datetime,'1900-01-01 00:00:00'),B.WSJG,B.HSJG,B.WSJGF,B.HSJGF,"); + SQL.Add(" B.JGYBJCLID1,B.HSJG1,B.WSJG1,B.JGBL1,"); + SQL.Add(" :pWHR,:pWHRID,:pWHSJ) "); + SQL.ParamByName("pJGBID").Value = sJGBID; + SQL.ParamByName("pRQ").Value = sRQ; + SQL.ParamByName("pWHR").Value = sWHR; + SQL.ParamByName("pWHRID").Value = sWHRID; + SQL.ParamByName("pWHSJ").Value = DateTime.Now; + dberp.ExecSQL(SQL); + } + + + + + + /// + /// 价格表基价复盘 + /// + /// + public static bool NeedJGBJJFP() + { + + return XLBJDUtils.GetXLXSBJPZXX(100860018).NeedJGBJJFP(); + } + + + + + public static void ReCalcWSJG(TDatabase dberp, TSQL SQL, string sJGBID, string sMXBH, int iXSWS, double maxXH) + { + JGBMLXX jgbxx = XLBJDUtils.GetXLXSJGBXX(sJGBID, sMXBH); + if (jgbxx.XLXSJGB_TJYS == "1" && jgbxx.XLXSJGB_JJLY == "A" && jgbxx.XLXSJGB_BJLY == "J" && jgbxx.XLXSJGB_WSJGJSLY == "2") + { + SQL.Clear(); + SQL.Add(string.Format(@"update XLXSJGBMX set XLXSJGBMX_WSJJ = roundfix(XLXSJGBMX_HSJJ*(1-:pZZSL/100),{0}), + XLXSJGBMX_WSJJM = roundfix(XLXSJGBMX_HSJJM*(1- :pZZSL/100),6), + XLXSJGBMX_WSBJ = roundfix(XLXSJGBMX_HSBJ*(1- :pZZSL/100),{0}), + XLXSJGBMX_WSBJM = roundfix(XLXSJGBMX_HSBJM*(1- :pZZSL/100),6) + where XLXSJGBMX_JGBID = :pJGBID and XLXSJGBMX_XH > :pMaxXH ",iXSWS)); + SQL.ParamByName("pZZSL").Value = CMISproConvert.StrToFloat(jgbxx.XLXSJGB_ZZSL, 0); + SQL.ParamByName("pJGBID").Value = sJGBID; + SQL.ParamByName("pMaxXH").Value = maxXH; + dberp.ExecSQL(SQL); + } + } + + + + //根据出厂价自动同步区域价 + public static bool TBCLCB_2(TDatabase dberp, string sMXBH, string sJGBID, string sJGBIDS, int iXSWS, string sJSBLFS, string sWHRID, string sWHR,string sBJU003) + { + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add(" select XLXSJGBMX_XLXHID,XLXSJGBMX_XLGGID,XLXSJGBMX_XLBZID,XLXSJGBMX_DYDJID "); + SQL.Add(" from XLXSJGBMX "); + SQL.Add(" where 1 = 1 AND " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBIDS)); + SQL.Add(" group by XLXSJGBMX_XLXHID,XLXSJGBMX_XLGGID,XLXSJGBMX_XLBZID,XLXSJGBMX_DYDJID "); + SQL.Add(" having count(XLXSJGBMX_XLXHID)>1 "); + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + //同一型号规格标准电压存在多种基准报价,不允许同步 + return false; + } + else + { + try + { + //同步出厂价的无税表价、含税表价->区域价的无税基价、含税基价 + //dberp.BeginTrans(); + + /* + merge into 目标表 a + using 源表 b + on(a.条件字段1=b.条件字段1 and a.条件字段2=b.条件字段2 ……) + when matched then update set a.更新字段=b.字段 + when not matched then insert into a(字段1,字段2……)values(值1,值2……) + */ + SQL.Clear(); + SQL.Add(" merge into XLXSJGBMX tar "); + SQL.Add(" using "); + SQL.Add(" (select b.XLXSJGBMX_XLXHID,b.XLXSJGBMX_XLGGID,b.XLXSJGBMX_XLBZID,b.XLXSJGBMX_DYDJID, b.XLXSJGBMX_WSBJ,b.XLXSJGBMX_HSBJ,"); + SQL.Add(" b.XLXSJGBMX_HSBJM,b.XLXSJGBMX_WSBJM from XLXSJGBMX b where 1 = 1 "); + SQL.Add(" AND " + CMISproDataBase.GetWhereEqual("b.XLXSJGBMX_JGBID", sJGBIDS)); + SQL.Add(" ) sor "); + SQL.Add(" on( "); + SQL.Add(" tar.XLXSJGBMX_JGBID=:pJGBID "); + SQL.Add(" and tar.XLXSJGBMX_XLXHID=sor.XLXSJGBMX_XLXHID "); + SQL.Add(" and tar.XLXSJGBMX_XLGGID=sor.XLXSJGBMX_XLGGID "); + SQL.Add(" and tar.XLXSJGBMX_XLBZID=sor.XLXSJGBMX_XLBZID "); + SQL.Add(" and tar.XLXSJGBMX_DYDJID=sor.XLXSJGBMX_DYDJID "); + SQL.Add(" ) "); + SQL.Add(" when matched then update set XLXSJGBMX_WSJJ = sor.XLXSJGBMX_WSBJ, XLXSJGBMX_HSJJ=sor.XLXSJGBMX_HSBJ, XLXSJGBMX_WSJJM = sor.XLXSJGBMX_WSBJM, XLXSJGBMX_HSJJM=sor.XLXSJGBMX_HSBJM"); + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + + DoCPJJ(dberp, sMXBH, sJGBID, false, iXSWS, sJSBLFS, sWHRID, sWHR, sBJU003); + //dberp.CommitTrans(); + + return true; + } + catch + { + //ShowMessage(ex.Message); + //dberp.RollbackTrans(); + return false; + } + } + } + + + + public static void UpdateCLCB(TDatabase dberp, TSQL SQL, string sJGBID, int iXSWS, string sJSBLFS, string sWHRID, string sWHR,string sBJU003) + { + UpdateCLCB(dberp, SQL, sJGBID, "", "", iXSWS, sJSBLFS, sWHRID, sWHR, 0, "", "", "", 0, 0, "", 0, sBJU003);//参数maxXH为0时的处理逻辑保持不变 + } + + + + public static void UpdateCLCB(TDatabase dberp, TSQL SQL, string sJGBID, int iXSWS, string sJSBLFS, string sWHRID, string sWHR, double maxXH, string sBJU003) + { + UpdateCLCB(dberp, SQL, sJGBID, "", "", iXSWS, sJSBLFS, sWHRID, sWHR, maxXH, "", "", "", 0, 0, "", 0, sBJU003); + } + + + //调价因素3价格表,则XLXSCLQD_JGBHSCB、XLXSCLQD_JGBWSCB只用来记录材料价价差 + public static void UpdateCLCB(TDatabase dberp, TSQL SQL, string sJGBID, string sJGCZBID, string sJGCZBBBID, int iXSWS, string sJSBLFS, string sWHRID, string sWHR, double maxXH, string sJGBID1, + string sTBJCLID_JGBBJ, string sLBJCLID_JGBBJ, double dTJ_JGBBJ, double dLJ_JGBBJ, string sBJDID, int iMinXH, string sBJDXHList, string sBJU003) + { + bool bExistsWLHQ = false;//是否存在物料行情报价材料 + if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select top 1 XLXSBJCL_BJCLID from XLXSBJCL where XLXSBJCL_BJHQ='2'"))) + bExistsWLHQ = true; + + bool IsJGBID3 = false; + if (!sJGBID1.Equals("")) + { + if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSJGB where XLXSJGB_JGBID='{0}' and XLXSJGB_TJYS='3'", sJGBID))) + IsJGBID3 = true; + } + + + bool bCPMLXZ = false; + + string sCPMLIDS = string.Empty; + + if (XLBJDUtils.IsJGEJGB(sJGBID) && !sBJDID.Equals("")) + { + //查询报价分类产品目录 + SQL.Clear(); + SQL.Add(@"select XLXSCPML_CPMLIDS + from XLXSBJD + left join XLXSBJFL on XLXSBJD_BJFLID=XLXSBJFL_BJFLID + left join XLXSCPML on XLXSCPML_CPMLID=XLXSBJFL_CPMLID + where XLXSBJD_BJDID=:pBJDID and isnull(XLXSCPML_CPMLIDS,' ')<>' ' "); + SQL.ParamByName("pBJDID").Value = sBJDID; + DataSet dsFLML = dberp.OpenDataSet(SQL); + if (dsFLML.Tables[0].Rows.Count > 0) + { + bCPMLXZ = true; + string[] sCPMLID_List = dsFLML.Tables[0].Rows[0][0].ToString().Trim().Split(','); + sCPMLIDS = "("; + for (int i = 0; i < sCPMLID_List.Length; i++) + { + sCPMLIDS += "'" + sCPMLID_List[i] + "',"; + } + sCPMLIDS = sCPMLIDS.TrimEnd(',') + ")"; + } + } + + + + string sBJFLID = ""; + string sBJRQ = ""; + string sTBJCLID = ""; + string sLBJCLID = ""; + double dTJ = 0.0; + double dLJ = 0.0; + string sBJDHQLX = "JGBHQ";//报价单行情类型 + bool bNeedCalJGBEx = false;//被报价单调用时,是否需要重算衍生扩展价格表 + if (!sBJDID.Trim().Equals("")) + { + SQL.Clear(); + SQL.Add("select XLXSBJD_BJFLID,XLXSBJD_BJRQ,XLXSBJD_TJ,XLXSBJD_LJ, "); + SQL.Add(" XLXSBJFL_BJDHQLY,XLXSBJFL_TZCLHQ,XLXSBJFL_TBJCLID,XLXSBJFL_LBJCLID"); + SQL.Add(" from XLXSBJD"); + SQL.Add(" left join XLXSBJFL on XLXSBJFL_BJFLID=XLXSBJD_BJFLID"); + SQL.Add(" where XLXSBJD_BJDID=:pBJDID"); + SQL.ParamByName("pBJDID").Value = sBJDID.Trim(); + DataSet dsBJD = dberp.OpenDataSet(SQL); + if (dsBJD.Tables[0].Rows.Count > 0) + { + sBJFLID = dsBJD.Tables[0].Rows[0]["XLXSBJD_BJFLID"].ToString().Trim(); + sBJRQ = dsBJD.Tables[0].Rows[0]["XLXSBJD_BJRQ"].ToString().Trim(); + sTBJCLID = dsBJD.Tables[0].Rows[0]["XLXSBJFL_TBJCLID"].ToString().Trim(); + sLBJCLID = dsBJD.Tables[0].Rows[0]["XLXSBJFL_LBJCLID"].ToString().Trim(); + dTJ = CMISproConvert.StrToFloat(dsBJD.Tables[0].Rows[0]["XLXSBJD_TJ"].ToString()); + dLJ = CMISproConvert.StrToFloat(dsBJD.Tables[0].Rows[0]["XLXSBJD_LJ"].ToString()); + string sBJDHQLY = dsBJD.Tables[0].Rows[0]["XLXSBJFL_BJDHQLY"].ToString().Trim(); + if (sBJDHQLY.Equals("1"))//1|价格表行情 + { + //报价分类设置了“报价日行情材料” + if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select top 1 XLXSBJFLBJRHQCL_BJCLID from XLXSBJFLBJRHQCL where XLXSBJFLBJRHQCL_BJFLID='{0}'", sBJFLID))) + { + sBJDHQLX = "BJRCLHQ"; + } + else + sBJDHQLX = "JGBHQ"; + + //允许调整材料行情且存在报价单材料行情时使用报价单材料行情计算 + if (dsBJD.Tables[0].Rows[0]["XLXSBJFL_TZCLHQ"].ToString().Trim().Equals("Y")) + { + if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select top 1 XLXSBJDCLHQ_BJCLID from XLXSBJDCLHQ where XLXSBJDCLHQ_BJDID='{0}'", sBJDID))) + sBJDHQLX = "BJDHQ"; + } + } + else//2|报价日行情 + { + sBJDHQLX = "BJRHQ"; + if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select top 1 XLXSBJDCLHQ_BJCLID from XLXSBJDCLHQ where XLXSBJDCLHQ_BJDID='{0}'", sBJDID))) + sBJDHQLX = "BJDHQ"; + } + } + + if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select top 1 XLXSJGBMX_XH from XLXSJGBMX where XLXSJGBMX_JGBID='{0}' and XLXSJGBMX_SYXH>0.0", sJGBID))) + { + bNeedCalJGBEx = true; + } + } + + bool bNeedAddWLHQ = bExistsWLHQ && (!IsJGBID3 || sBJDHQLX.Equals("BJDHQ"));//若调价因素3价格表,无需执行此分支,因为价格表行情不单独记录物料行情,所以这部分材料价价差始终是0 + + if (bExistsWLHQ) + { + SQL.Clear(); + SQL.Add(" select XLXSBJCLWL_WLID,A.WL_MC as WLMC,XLXSBJCLWL_JGYWLID,B.WL_MC as JGYWLMC "); + SQL.Add(" from XLXSBJCLWL "); + SQL.Add(" left join WL A on A.WL_WLID = XLXSBJCLWL_WLID "); + SQL.Add(" left join WL B on B.WL_WLID = XLXSBJCLWL_JGYWLID "); + SQL.Add(" where XLXSBJCLWL_JGYWLID <> '-' "); + DataSet dsCLWL = dberp.OpenDataSet(SQL); + if (dsCLWL.Tables[0].Rows.Count > 0) + { + Dictionary DicWLHQ = new Dictionary(); + string sBJDHQTS = ""; + if (!sBJDID.Trim().Equals("")) + { + sBJDHQTS += "或更新报价单材料行情"; + SQL.Clear(); + SQL.Add(" select XLXSBJDWLHQ_WLID,"); + SQL.Add(string.Format("case when isnull(XLXSBJDWLHQ_JGYBJCLID1,' ')<>' ' and XLXSBJDWLHQ_JGYBJCLID1='{0}' then {1}*XLXSBJDWLHQ_JGBL1+XLXSBJDWLHQ_WSJGF", sTBJCLID, dTJ)); + SQL.Add(string.Format(" when isnull(XLXSBJDWLHQ_JGYBJCLID1,' ')<>' ' and XLXSBJDWLHQ_JGYBJCLID1='{0}' then {1}*XLXSBJDWLHQ_JGBL1+XLXSBJDWLHQ_WSJGF", sLBJCLID, dLJ)); + SQL.Add(" else XLXSBJDWLHQ_WSJG end as WSJG, "); + SQL.Add(string.Format("case when isnull(XLXSBJDWLHQ_JGYBJCLID1,' ')<>' ' and XLXSBJDWLHQ_JGYBJCLID1='{0}' then {1}*XLXSBJDWLHQ_JGBL1+XLXSBJDWLHQ_HSJGF", sTBJCLID, dTJ)); + SQL.Add(string.Format(" when isnull(XLXSBJDWLHQ_JGYBJCLID1,' ')<>' ' and XLXSBJDWLHQ_JGYBJCLID1='{0}' then {1}*XLXSBJDWLHQ_JGBL1+XLXSBJDWLHQ_HSJGF", sLBJCLID, dLJ)); + SQL.Add(" else XLXSBJDWLHQ_HSJG end as HSJG "); + SQL.Add(" from XLXSBJDWLHQ where XLXSBJDWLHQ_BJDID = :pBJDID "); + SQL.ParamByName("pBJDID").Value = sBJDID; + DataSet dsBJDWLHQ = dberp.OpenDataSet(SQL); + if (dsBJDWLHQ.Tables[0].Rows.Count > 0) + { + foreach (DataRow trow in dsBJDWLHQ.Tables[0].Rows) + { + string sWLID = trow["XLXSBJDWLHQ_WLID"].ToString().Trim(); + if (!DicWLHQ.ContainsKey(sWLID)) + { + DicWLHQ.Add(sWLID, CMISproConvert.StrToFloat(trow["HSJG"].ToString().Trim())); + } + } + } + + SQL.Clear(); + SQL.Add(" select WLID,XLXSWLHQ_WSJG,XLXSWLHQ_HSJG "); + SQL.Add(" from XLXSWLHQ, "); + SQL.Add(" (select XLXSWLHQ_WLID as WLID,max(XLXSWLHQ_YXQS)as maxYXQS "); + SQL.Add(" from XLXSWLHQ where XLXSWLHQ_JGBID=' ' "); + SQL.Add(" and XLXSWLHQ_YXQS<=:pBJRQ and (XLXSWLHQ_YXQZ>=:pBJRQ or XLXSWLHQ_YXQZ is null) "); + SQL.Add(" group by XLXSWLHQ_WLID "); + SQL.Add(" ) wlhq "); + SQL.Add(" where XLXSWLHQ_JGBID=' ' and XLXSWLHQ_WLID=WLID and XLXSWLHQ_YXQS=maxYXQS "); + SQL.ParamByName("pBJRQ").Value = sBJRQ; + DataSet dsSSWLHQ = dberp.OpenDataSet(SQL); + if (dsSSWLHQ.Tables[0].Rows.Count > 0) + { + foreach (DataRow trow in dsSSWLHQ.Tables[0].Rows) + { + string sWLID = trow["WLID"].ToString().Trim(); + if (!DicWLHQ.ContainsKey(sWLID)) + { + DicWLHQ.Add(sWLID, CMISproConvert.StrToFloat(trow["XLXSWLHQ_HSJG"].ToString().Trim())); + } + } + } + } + else + { + SQL.Clear(); + SQL.Add(" select WLID,XLXSWLHQ_WSJG,XLXSWLHQ_HSJG "); + SQL.Add(" from XLXSWLHQ, "); + SQL.Add(" (select XLXSWLHQ_WLID as WLID,max(XLXSWLHQ_YXQS)as maxYXQS "); + SQL.Add(" from XLXSWLHQ where XLXSWLHQ_JGBID=' ' "); + SQL.Add(" and XLXSWLHQ_YXQS<=:pBJRQ and (XLXSWLHQ_YXQZ>=:pBJRQ or XLXSWLHQ_YXQZ is null) "); + SQL.Add(" group by XLXSWLHQ_WLID "); + SQL.Add(" ) wlhq "); + SQL.Add(" where XLXSWLHQ_JGBID=' ' and XLXSWLHQ_WLID=WLID and XLXSWLHQ_YXQS=maxYXQS "); + SQL.ParamByName("pBJRQ").Value = DateTime.Now.ToShortDateString().Trim(); + DataSet dsSSWLHQ = dberp.OpenDataSet(SQL); + if (dsSSWLHQ.Tables[0].Rows.Count > 0) + { + foreach (DataRow trow in dsSSWLHQ.Tables[0].Rows) + { + string sWLID = trow["WLID"].ToString().Trim(); + if (!DicWLHQ.ContainsKey(sWLID)) + { + DicWLHQ.Add(sWLID, CMISproConvert.StrToFloat(trow["XLXSWLHQ_HSJG"].ToString().Trim())); + } + } + } + } + foreach (DataRow trow in dsCLWL.Tables[0].Rows) + { + string sWLID = trow["XLXSBJCLWL_WLID"].ToString().Trim(); + double dWLHQ = 0; + if (DicWLHQ.ContainsKey(sWLID)) + dWLHQ = DicWLHQ[sWLID]; + string sJGYWLID = trow["XLXSBJCLWL_JGYWLID"].ToString().Trim(); + double dJGYWLHQ = 0; + if (DicWLHQ.ContainsKey(sJGYWLID)) + dJGYWLHQ = DicWLHQ[sJGYWLID]; + if ((dWLHQ != dJGYWLHQ)&&(dWLHQ != 0)&&(dJGYWLHQ != 0)) + { + throw new Exception("【" + sWLID + "|" + trow["WLMC"].ToString().Trim() + "|" + dWLHQ.ToString() + "】与【" + trow["JGYWLMC"].ToString().Trim() + "|" + dJGYWLHQ.ToString() + "】存在加工关系,但价格不一致,无法计算,请检查物料行情数据" + sBJDHQTS + "!"); + } + } + } + } + + + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Clear(); + SQL.Add("select :pJGCZBID as XLXSCLQD_JGCZBID,:pJGCZBBBID as XLXSCLQD_JGCZBBBID, XLJGCZBML_CZBLX from XLJGCZBML where XLJGCZBML_JGCZBID=:pJGCZBID"); + SQL.ParamByName("pJGCZBID").Value = sJGCZBID.Trim(); + SQL.ParamByName("pJGCZBBBID").Value = sJGCZBBBID.Trim(); + } + else + { + if (sBJDID.Trim().Equals(""))//sBJDID为空,说明是销售价格表模块调用 + { + SQL.Clear(); + SQL.Add("select distinct XLXSCLQD_JGCZBID,XLXSCLQD_JGCZBBBID,XLJGCZBML_CZBLX"); + SQL.Add(" from XLXSJGBMX"); + SQL.Add(" left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSJGBMX_XLXHID and XLXSCLQD_XLGGID=XLXSJGBMX_XLGGID"); + SQL.Add(" and XLXSCLQD_XLBZID=XLXSJGBMX_XLBZID and XLXSCLQD_DYDJID=XLXSJGBMX_DYDJID"); + SQL.Add(" left join XLJGCZBML on XLJGCZBML_JGCZBID=XLXSCLQD_JGCZBID"); + SQL.Add(" where XLXSJGBMX_JGBID=:pJGBID"); + SQL.Add(" and isnull(XLXSCLQD_JGCZBID,' ')<>' ' and XLXSCLQD_WPID='ZZZZ'"); + //此处未传参数区分,暂先默认 + SQL.Add(" and XLXSJGBMX_SYXH=0 "); + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Add(" and XLXSCLQD_JGCZBID=:pJGCZBID"); + SQL.ParamByName("pJGCZBID").Value = sJGCZBID.Trim(); + } + if (!sJGCZBBBID.Trim().Equals("")) + { + SQL.Add(" and XLXSCLQD_JGCZBBBID=:pJGCZBBBID"); + SQL.ParamByName("pJGCZBBBID").Value = sJGCZBBBID.Trim(); + } + if (maxXH != 0) + { + SQL.Add(" and XLXSJGBMX_XH > :pmaxXH"); + SQL.ParamByName("pmaxXH").Value = maxXH; + } + SQL.Add(" order by XLXSCLQD_JGCZBID"); + SQL.ParamByName("pJGBID").Value = sJGBID; + } + else//sBJDID不为空,说明是被报价单调用 + { + if (bNeedCalJGBEx) + { + //此段执行是为了在JGB衍生加点的模式下能计算“报价单行情料价” + SQL.Clear(); + SQL.Add("select distinct XLXSCLQD_JGCZBID,XLXSCLQD_JGCZBBBID,XLJGCZBML_CZBLX"); + SQL.Add(" from XLXSBJDMX"); + SQL.Add(" left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSBJDMX_XLXHID and XLXSCLQD_XLGGID=XLXSBJDMX_XLGGID"); + SQL.Add(" and XLXSCLQD_XLBZID=XLXSBJDMX_XLBZID and XLXSCLQD_DYDJID=XLXSBJDMX_DYDJID"); + SQL.Add(" left join XLJGCZBML on XLJGCZBML_JGCZBID=XLXSCLQD_JGCZBID"); + SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID"); + if(!sBJDXHList.Trim().Equals("")) + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + SQL.Add(" and XLXSBJDMX_XH >= :piMinXH"); + SQL.Add(" and isnull(XLXSCLQD_JGCZBID,' ')<>' '"); + SQL.Add(" order by XLXSCLQD_JGCZBID"); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("piMinXH").Value = iMinXH; + + //衍生扩展的价格表支持被报价单重算,需要弄个临时表,将如下语句的查询结果插入到临时表中,然后用临时表与所依价格表明细进行关联 + //select case when XLXSJGBMX_SYXH=0.0 then XLXSJGBMX_XH else XLXSJGBMX_SYXH end as XH + //from XLXSJGBMX + //where XLXSJGBMX_JGBID='21100001' + //and exists(select 1 from XLXSBJDMX where XLXSBJDMX_BJDID='CZ/XMD2022100005' and XLXSBJDMX_XH>=0 + // and XLXSBJDMX_XLXHID=XLXSJGBMX_XLXHID and XLXSBJDMX_XLGGID=XLXSJGBMX_XLGGID + // and XLXSBJDMX_XLBZID=XLXSJGBMX_XLBZID and XLXSBJDMX_DYDJID=XLXSJGBMX_DYDJID) + } + else + { + SQL.Clear(); + SQL.Add("select distinct XLXSCLQD_JGCZBID,XLXSCLQD_JGCZBBBID,XLJGCZBML_CZBLX"); + SQL.Add(" from XLXSBJDMX"); + SQL.Add(" left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSBJDMX_XLXHID and XLXSCLQD_XLGGID=XLXSBJDMX_XLGGID"); + SQL.Add(" and XLXSCLQD_XLBZID=XLXSBJDMX_XLBZID and XLXSCLQD_DYDJID=XLXSBJDMX_DYDJID"); + SQL.Add(" left join XLJGCZBML on XLJGCZBML_JGCZBID=XLXSCLQD_JGCZBID"); + SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID"); + if (!sBJDXHList.Trim().Equals("")) + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + SQL.Add(" and XLXSBJDMX_XH >= :piMinXH"); + SQL.Add(" and isnull(XLXSCLQD_JGCZBID,' ')<>' '"); + SQL.Add(" order by XLXSCLQD_JGCZBID"); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("piMinXH").Value = iMinXH; + } + //SQL.Add(" and exists ( "); + //SQL.Add(" select top 1 XLXSBJDMX_XH from XLXSBJDMX "); + //SQL.Add(" left join XLXSJGBMX a on a.XLXSJGBMX_JGBID=:pJGBID "); + //SQL.Add(" and a.XLXSJGBMX_XLXHID=XLXSBJDMX_XLXHID and a.XLXSJGBMX_XLGGID=XLXSBJDMX_XLGGID "); + //SQL.Add(" and a.XLXSJGBMX_XLBZID=XLXSBJDMX_XLBZID and a.XLXSJGBMX_DYDJID=XLXSBJDMX_DYDJID "); + //SQL.Add(" where XLXSBJDMX_BJDID= :pBJDID and XLXSBJDMX_XH >= :piMinXH "); + //SQL.Add(" and a.XLXSJGBMX_JGBID= XLXSJGBMX_JGBID "); + //SQL.Add(" and (case when isnull(a.XLXSJGBMX_SYXH,0)=0 then a.XLXSJGBMX_XH else a.XLXSJGBMX_SYXH end)= XLXSJGBMX_XH"); + //SQL.Add(" )"); + //SQL.ParamByName("pBJDID").Value = sBJDID; + //SQL.ParamByName("piMinXH").Value = iMinXH; + } + } + + Dictionary dicJGYLHSJG = new Dictionary(); + Dictionary dicJGYLWSJG = new Dictionary(); + if (bNeedAddWLHQ) + { + TSQL sSQL = new TSQL(dberp); + sSQL.Add(" select XLXSCLHQ_BJCLID,XLXSCLHQ_HSJG,XLXSCLHQ_WSJG,isnull(JGYBJCLID,' ') as JGYBJCLID "); + sSQL.Add(" from XLXSCLHQ "); + sSQL.Add(" left join ( "); + sSQL.Add(" select distinct XLXSBJCL_JGYBJCLID as JGYBJCLID "); + sSQL.Add(" from XLXSBJCL where isnull(XLXSBJCL_JGYBJCLID,' ')<>' '"); + sSQL.Add(" ) a on JGYBJCLID=XLXSCLHQ_BJCLID"); + sSQL.Add(" where XLXSCLHQ_JGBID=:pJGBID "); + sSQL.Add(" and isnull(JGYBJCLID,' ') <> ' ' "); + sSQL.ParamByName("pJGBID").Value = sJGBID; + DataSet dsJGYL = dberp.OpenDataSet(sSQL); + if (dsJGYL.Tables[0].Rows.Count > 0) + { + foreach (DataRow trow in dsJGYL.Tables[0].Rows) + { + if (!dicJGYLHSJG.ContainsKey(trow["XLXSCLHQ_BJCLID"].ToString().Trim())) + { + dicJGYLHSJG.Add(trow["XLXSCLHQ_BJCLID"].ToString().Trim(), CMISproConvert.StrToFloat(trow["XLXSCLHQ_HSJG"].ToString().Trim())); + dicJGYLWSJG.Add(trow["XLXSCLHQ_BJCLID"].ToString().Trim(), CMISproConvert.StrToFloat(trow["XLXSCLHQ_WSJG"].ToString().Trim())); + } + } + } + } + + + DataSet dsJGCZB = dberp.OpenDataSet(SQL); + for (int j = 0; j < dsJGCZB.Tables[0].Rows.Count; j++) + { + string tmpJGCZBID = dsJGCZB.Tables[0].Rows[j]["XLXSCLQD_JGCZBID"].ToString().Trim(); + string tmpJGCZBBBID = dsJGCZB.Tables[0].Rows[j]["XLXSCLQD_JGCZBBBID"].ToString().Trim(); + string tmpCZBLX = dsJGCZB.Tables[0].Rows[j]["XLJGCZBML_CZBLX"].ToString().Trim(); + //标志材料行情/物料行情 + int flag_1 = 0; + int flag_2 = 0; + string sCLQDL = ""; + string sBJHQ = ""; + string sBJRCLCB = ""; + + SQL.Clear(); + SQL.Add("select XLJGCZBLM_CLQDL,isnull(XLXSBJCL_BJHQ,'1') as XLXSBJCL_BJHQ,isnull(XLJGCZBLM_BJRCLCB,'N') as XLJGCZBLM_BJRCLCB "); + SQL.Add(" from XLJGCZBLM"); + SQL.Add(" left join XLXSBJCL on XLXSBJCL_BJCLID=XLJGCZBLM_BJCLID"); + SQL.Add(" where XLJGCZBLM_JGCZBID=:pJGCZBID"); + SQL.Add(" and XLJGCZBLM_JGCZBBBID=:pJGCZBBBID"); + SQL.Add(" and isnull(XLJGCZBLM_CLQDL,' ')<>' '"); + SQL.Add(" order by XLJGCZBLM_CLQDL"); + SQL.ParamByName("pJGCZBID").Value = tmpJGCZBID; + SQL.ParamByName("pJGCZBBBID").Value = tmpJGCZBBBID; + DataSet dsCLQDL = dberp.OpenDataSet(SQL); + + for (int i = 0; i < dsCLQDL.Tables[0].Rows.Count; i++) + { + sBJHQ = dsCLQDL.Tables[0].Rows[i]["XLXSBJCL_BJHQ"].ToString().Trim(); + if (sBJHQ.Equals("1"))//1|材料行情 + { + flag_1 = 1; + } + if (sBJHQ.Equals("2"))//2|物料行情 + { + flag_2 = 1; + } + if (1 == flag_1 && 1 == flag_2) + { + break; + } + } + //B类尺重表都按材料行情计算 + //B类实际上应当与下方一致,如果导入的报价材料没有物料行情 + if (tmpCZBLX.Equals("B")) + { + /* + merge into 目标表 a + using 源表 b + on(a.条件字段1=b.条件字段1 and a.条件字段2=b.条件字段2 ……) + when matched then update set a.更新字段=b.字段 + when not matched then insert into a(字段1,字段2……)values(值1,值2……) + */ + SQL.Clear(); + SQL.Add(" merge into XLXSCLQD a "); + SQL.Add(" using "); + SQL.Add(" ("); + SQL.Add(" select XLJGCZBLM_JGCZBID as JGCZBID, XLJGCZBLM_JGCZBBBID as JGCZBBBID,"); + for (int i = 0; i < dsCLQDL.Tables[0].Rows.Count; i++) + { + sCLQDL = dsCLQDL.Tables[0].Rows[i]["XLJGCZBLM_CLQDL"].ToString().Trim(); + SQL.Add(string.Format(" sum(case when XLJGCZBLM_CLQDL='{0}' then isnull(XLXSCLHQ_WSJG,0.0) else 0.0 end * case when isnull(XLJGCZBLM_BJRCLCB,'N') = 'Y' then 0 else 1 end ) as CLJG{1},", sCLQDL, sCLQDL.Replace("第", "").Replace("列", ""))); + SQL.Add(string.Format(" sum(case when XLJGCZBLM_CLQDL='{0}' then isnull(XLXSCLHQ_HSJG,0.0) else 0.0 end * case when isnull(XLJGCZBLM_BJRCLCB,'N') = 'Y' then 0 else 1 end ) as HSJG{1},", sCLQDL, sCLQDL.Replace("第", "").Replace("列", ""))); + } + SQL.Add(" ' ' as MJBZ "); + SQL.Add(" from XLJGCZBLM "); + if (IsJGBID3) + { + SQL.Add(" left join ("); + + if (!sTBJCLID_JGBBJ.Trim().Equals("") || !sLBJCLID_JGBBJ.Trim().Equals(""))//存在铜铝报价材料ID时用传入的铜铝价代替材料清单中的铜铝报价材料价格 + { + SQL.Add(" select j3.XLXSCLHQ_BJCLID as XLXSCLHQ_BJCLID,"); + SQL.Add(" case when ISNULL(j3.XLXSCLHQ_BJCLID, ' ') = :pTBJCLID then :pTJ - j1.XLXSCLHQ_HSJG "); + SQL.Add(" when ISNULL(j3.XLXSCLHQ_BJCLID, ' ') = :pLBJCLID then :pLJ - j1.XLXSCLHQ_HSJG else j3.XLXSCLHQ_HSJG-j1.XLXSCLHQ_HSJG end as XLXSCLHQ_HSJG,"); + SQL.Add(" case when ISNULL(j3.XLXSCLHQ_BJCLID, ' ') = :pTBJCLID then :pTJ - j1.XLXSCLHQ_WSJG "); + SQL.Add(" when ISNULL(j3.XLXSCLHQ_BJCLID, ' ') = :pLBJCLID then :pLJ - j1.XLXSCLHQ_WSJG else j3.XLXSCLHQ_WSJG-j1.XLXSCLHQ_WSJG end as XLXSCLHQ_WSJG "); + SQL.ParamByName("pTBJCLID").Value = sTBJCLID_JGBBJ; + SQL.ParamByName("pLBJCLID").Value = sLBJCLID_JGBBJ; + SQL.ParamByName("pTJ").Value = dTJ_JGBBJ; + SQL.ParamByName("pLJ").Value = dLJ_JGBBJ; + + SQL.Add(" from XLXSCLHQ j1,XLXSCLHQ j3"); + SQL.Add(" where j1.XLXSCLHQ_JGBID=:pJGBID1 and j3.XLXSCLHQ_JGBID=:pJGBID"); + SQL.Add(" and j1.XLXSCLHQ_BJCLID=j3.XLXSCLHQ_BJCLID"); + SQL.Add(" ) jj on XLXSCLHQ_BJCLID=XLJGCZBLM_BJCLID"); + SQL.ParamByName("pJGBID1").Value = sJGBID1; + SQL.ParamByName("pJGBID").Value = sJGBID; + } + else if (sBJDID.Trim().Equals(""))//sBJDID为空,说明是销售价格表模块调用 + { + SQL.Add(" select j3.XLXSCLHQ_BJCLID as XLXSCLHQ_BJCLID,"); + SQL.Add(" j3.XLXSCLHQ_HSJG-j1.XLXSCLHQ_HSJG as XLXSCLHQ_HSJG,j3.XLXSCLHQ_WSJG-j1.XLXSCLHQ_WSJG as XLXSCLHQ_WSJG"); + + SQL.Add(" from XLXSCLHQ j1,XLXSCLHQ j3"); + SQL.Add(" where j1.XLXSCLHQ_JGBID=:pJGBID1 and j3.XLXSCLHQ_JGBID=:pJGBID"); + SQL.Add(" and j1.XLXSCLHQ_BJCLID=j3.XLXSCLHQ_BJCLID"); + SQL.Add(" ) jj on XLXSCLHQ_BJCLID=XLJGCZBLM_BJCLID"); + SQL.ParamByName("pJGBID1").Value = sJGBID1; + SQL.ParamByName("pJGBID").Value = sJGBID; + } + else + { + SQL.Add(" select j3.XLXSCLHQ_BJCLID as XLXSCLHQ_BJCLID,"); + SQL.Add(" case when isnull(XLXSBJDCLHQ_BJCLID,' ')=' ' then (j3.XLXSCLHQ_HSJG-j1.XLXSCLHQ_HSJG) else (XLXSBJDCLHQ_HSJG-j1.XLXSCLHQ_HSJG) end as XLXSCLHQ_HSJG,"); + SQL.Add(" case when isnull(XLXSBJDCLHQ_BJCLID,' ')=' ' then (j3.XLXSCLHQ_WSJG-j1.XLXSCLHQ_WSJG) else (XLXSBJDCLHQ_WSJG-j1.XLXSCLHQ_WSJG) end as XLXSCLHQ_WSJG "); + + SQL.Add(" from XLXSCLHQ j1,XLXSCLHQ j3"); + SQL.Add(" left join XLXSBJDCLHQ on XLXSBJDCLHQ_BJDID=:pBJDIDD and XLXSBJDCLHQ_BJCLID=j3.XLXSCLHQ_BJCLID"); + SQL.Add(" where j1.XLXSCLHQ_JGBID=:pJGBID1 and j3.XLXSCLHQ_JGBID=:pJGBID"); + SQL.Add(" and j1.XLXSCLHQ_BJCLID=j3.XLXSCLHQ_BJCLID"); + SQL.Add(" ) jj on XLXSCLHQ_BJCLID=XLJGCZBLM_BJCLID"); + SQL.ParamByName("pJGBID1").Value = sJGBID1; + SQL.ParamByName("pJGBID").Value = sJGBID; + SQL.ParamByName("pBJDIDD").Value = sBJDID.Trim(); + } + } + else + { + if (!sTBJCLID_JGBBJ.Trim().Equals("") || !sLBJCLID_JGBBJ.Trim().Equals("")) + { + SQL.Add(" left join ("); + SQL.Add(" select XLXSCLHQ_BJCLID,"); + SQL.Add(" case when ISNULL(XLXSCLHQ_BJCLID, ' ') = :pTBJCLID then :pTJ "); + SQL.Add(" when isnull(XLXSCLHQ_JGYBJCLID1,' ')=:pTBJCLID then :pTJ*XLXSCLHQ_JGBL1+XLXSCLHQ_HSJGF"); + SQL.Add(" when ISNULL(XLXSCLHQ_BJCLID, ' ') = :pLBJCLID then :pLJ "); + SQL.Add(" when isnull(XLXSCLHQ_JGYBJCLID1,' ')=:pLBJCLID then :pLJ*XLXSCLHQ_JGBL1+XLXSCLHQ_HSJGF"); + SQL.Add(" else XLXSCLHQ_HSJG end as XLXSCLHQ_HSJG,"); + SQL.Add(" case when ISNULL(XLXSCLHQ_BJCLID, ' ') = :pTBJCLID then roundfix(:pTJ/(1+XLXSBJCL_ZZSL/100.0)," + XLBJDUtils.BJCLPriceDecimal + ") "); + SQL.Add(" when isnull(XLXSCLHQ_JGYBJCLID1,' ')=:pTBJCLID then roundfix(:pTJ/(1+XLXSBJCL_ZZSL/100.0)," + XLBJDUtils.BJCLPriceDecimal + ")*XLXSCLHQ_JGBL1+XLXSCLHQ_WSJGF"); + SQL.Add(" when ISNULL(XLXSCLHQ_BJCLID, ' ') = :pLBJCLID then roundfix(:pLJ/(1+XLXSBJCL_ZZSL/100.0)," + XLBJDUtils.BJCLPriceDecimal + ") "); + SQL.Add(" when isnull(XLXSCLHQ_JGYBJCLID1,' ')=:pLBJCLID then roundfix(:pLJ/(1+XLXSBJCL_ZZSL/100.0)," + XLBJDUtils.BJCLPriceDecimal + ")*XLXSCLHQ_JGBL1+XLXSCLHQ_WSJGF"); + SQL.Add(" else XLXSCLHQ_WSJG end as XLXSCLHQ_WSJG "); + SQL.Add(" from XLXSCLHQ "); + SQL.Add(" left join XLXSBJCL on XLXSBJCL_BJCLID=XLXSCLHQ_BJCLID"); + SQL.Add(" where XLXSCLHQ_JGBID=:pJGBID ) jj on XLXSCLHQ_BJCLID=XLJGCZBLM_BJCLID"); + SQL.ParamByName("pTBJCLID").Value = sTBJCLID_JGBBJ; + SQL.ParamByName("pLBJCLID").Value = sLBJCLID_JGBBJ; + SQL.ParamByName("pTJ").Value = dTJ_JGBBJ; + SQL.ParamByName("pLJ").Value = dLJ_JGBBJ; + SQL.ParamByName("pJGBID").Value = sJGBID; + } + else + { + if (sBJDHQLX.Equals("BJRCLHQ"))//报价日材料行情 + { + SQL.Add(" left join "); + SQL.Add(" ("); + SQL.Add(" select XLXSBJCL_BJCLID as XLXSCLHQ_BJCLID,"); + SQL.Add(" case when isnull(XLXSBJFLBJRHQCL_BJCLID,' ')<>' ' then bjrclhq.CLJG else jgbclhq.CLJG end as XLXSCLHQ_WSJG, "); + SQL.Add(" case when isnull(XLXSBJFLBJRHQCL_BJCLID,' ')<>' ' then bjrclhq.HSJG else jgbclhq.HSJG end as XLXSCLHQ_HSJG "); + SQL.Add(" from XLXSBJCL"); + SQL.Add(" left join XLXSBJFLBJRHQCL on XLXSBJFLBJRHQCL_BJFLID=:pBJFLID and XLXSBJFLBJRHQCL_BJCLID=XLXSBJCL_BJCLID"); + //bjrclhq 报价材料之报价日行情 + SQL.Add(" left join ("); + SQL.Add(" select BJCLID,XLXSCLHQ_WSJG as CLJG,XLXSCLHQ_HSJG as HSJG"); + SQL.Add(" from XLXSCLHQ,"); + SQL.Add(" ("); + SQL.Add(" select XLXSCLHQ_BJCLID as BJCLID,max(XLXSCLHQ_YXQS)as maxYXQS"); + SQL.Add(" from XLXSCLHQ"); + SQL.Add(" where XLXSCLHQ_JGBID='ZZZZZZZZ'"); + SQL.Add(" and XLXSCLHQ_YXQS<=:pBJRQ and(XLXSCLHQ_YXQZ>=:pBJRQ or XLXSCLHQ_YXQZ is null)"); + SQL.Add(" group by XLXSCLHQ_BJCLID"); + SQL.Add(" ) a"); + SQL.Add(" where XLXSCLHQ_JGBID='ZZZZZZZZ' "); + SQL.Add(" and XLXSCLHQ_BJCLID=BJCLID"); + SQL.Add(" and XLXSCLHQ_YXQS=maxYXQS"); + SQL.Add(" )bjrclhq on bjrclhq.BJCLID=XLXSBJCL_BJCLID"); + //jgbclhq 报价材料之价格表行情 + SQL.Add(" left join ("); + SQL.Add(" select XLXSCLHQ_BJCLID as BJCLID,XLXSCLHQ_WSJG as CLJG,XLXSCLHQ_HSJG as HSJG"); + SQL.Add(" from XLXSCLHQ"); + SQL.Add(" where XLXSCLHQ_JGBID<>'ZZZZZZZZ' and XLXSCLHQ_JGBID=:pJGBID"); + SQL.Add(" )jgbclhq on jgbclhq.BJCLID=XLXSBJCL_BJCLID"); + SQL.Add(" ) JGB on JGB.BJCLID=XLJGCZBLM_BJCLID"); + SQL.ParamByName("pBJFLID").Value = sBJFLID; + SQL.ParamByName("pBJRQ").Value = sBJRQ; + SQL.ParamByName("pJGBID").Value = sJGBID; + } + else if (sBJDHQLX.Equals("BJRHQ"))//报价日行情 + { + SQL.Add(" left join "); + SQL.Add(" ("); + SQL.Add(" select XLXSCLHQ_BJCLID,XLXSCLHQ_WSJG,XLXSCLHQ_HSJG"); + SQL.Add(" from XLXSCLHQ,"); + SQL.Add(" ("); + SQL.Add(" select XLXSCLHQ_BJCLID as BJCLID,max(XLXSCLHQ_YXQS)as maxYXQS"); + SQL.Add(" from XLXSCLHQ"); + SQL.Add(" where XLXSCLHQ_JGBID='ZZZZZZZZ'"); + SQL.Add(" and XLXSCLHQ_YXQS<=:pBJRQ and(XLXSCLHQ_YXQZ>=:pBJRQ or XLXSCLHQ_YXQZ is null)"); + SQL.Add(" group by XLXSCLHQ_BJCLID"); + SQL.Add(" ) a"); + SQL.Add(" where XLXSCLHQ_JGBID='ZZZZZZZZ' "); + SQL.Add(" and XLXSCLHQ_BJCLID=BJCLID"); + SQL.Add(" and XLXSCLHQ_YXQS=maxYXQS"); + SQL.Add(" ) JGB on JGB.XLXSCLHQ_BJCLID=XLJGCZBLM_BJCLID"); + SQL.ParamByName("pBJRQ").Value = sBJRQ; + } + else if (sBJDHQLX.Equals("BJDHQ"))//报价单行情 + { + SQL.Add(" left join "); + SQL.Add(" ("); + SQL.Add(" select XLXSBJDCLHQ_BJCLID as XLXSCLHQ_BJCLID,XLXSBJDCLHQ_WSJG as XLXSCLHQ_WSJG,XLXSBJDCLHQ_HSJG as XLXSCLHQ_HSJG"); + SQL.Add(" from XLXSBJDCLHQ"); + SQL.Add(string.Format(" where XLXSBJDCLHQ_BJDID='{0}'", sBJDID)); + SQL.Add(" ) JGB on JGB.XLXSCLHQ_BJCLID=XLJGCZBLM_BJCLID"); + } + else//价格表行情 + { + SQL.Add(" left join XLXSCLHQ on XLXSCLHQ_JGBID=:pJGBID and XLXSCLHQ_BJCLID=XLJGCZBLM_BJCLID"); + SQL.ParamByName("pJGBID").Value = sJGBID; + } + } + } + SQL.Add(" where XLJGCZBLM_JGCZBID=:pJGCZBID"); + SQL.Add(" and XLJGCZBLM_JGCZBBBID=:pJGCZBBBID"); + SQL.Add(" and isnull(XLJGCZBLM_CLQDL,' ')<>' '"); + SQL.Add(" group by XLJGCZBLM_JGCZBID,XLJGCZBLM_JGCZBBBID"); + SQL.Add(" ) b "); + SQL.Add(" on( "); + SQL.Add(" a.XLXSCLQD_JGCZBID=:pJGCZBID and a.XLXSCLQD_JGCZBBBID=:pJGCZBBBID"); + SQL.Add(" and a.XLXSCLQD_JGCZBID=b.JGCZBID and a.XLXSCLQD_JGCZBBBID=b.JGCZBBBID "); + if (!sBJDID.Trim().Equals(""))//这段是否有必要限制到具体要重算的产品,还是整个尺重表一起算,需要看项目执行效果再定 + { + SQL.Add(" and exists ("); + SQL.Add("select 1 "); + SQL.Add(" from XLXSBJDMX"); + SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID"); + if (!sBJDXHList.Trim().Equals("")) + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + SQL.Add(" and XLXSBJDMX_XH >= :piMinXH"); + SQL.Add(" and XLXSBJDMX_XLXHID=a.XLXSCLQD_XLXHID and XLXSBJDMX_XLGGID=a.XLXSCLQD_XLGGID"); + SQL.Add(" and XLXSBJDMX_XLBZID=a.XLXSCLQD_XLBZID and XLXSBJDMX_DYDJID=a.XLXSCLQD_DYDJID"); + SQL.Add(" ) "); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("piMinXH").Value = iMinXH; + } + SQL.Add(" ) "); + SQL.Add(" when matched then update set a.XLXSCLQD_JGBWSCB= "); + if (!IsJGBID3)//调价因素3价格表不进行负数的校验,因为此时CLJG{0}代表的是两个价格表行情之差 + { + if (1 == flag_1) + { + SQL.Add(" (case "); + } + for (int i = 0; i < dsCLQDL.Tables[0].Rows.Count; i++) + { + sCLQDL = dsCLQDL.Tables[0].Rows[i]["XLJGCZBLM_CLQDL"].ToString().Trim(); + sBJHQ = dsCLQDL.Tables[0].Rows[i]["XLXSBJCL_BJHQ"].ToString().Trim(); + sBJRCLCB = dsCLQDL.Tables[0].Rows[i]["XLJGCZBLM_BJRCLCB"].ToString().Trim(); + if (sBJHQ.Equals("1") && !sBJRCLCB.Equals("Y"))//1|材料行情 + { + SQL.Add(string.Format(" when (a.XLXSCLQD_SL{0} > 0 and isnull(b.CLJG{0},0) = 0) then (-1) ", sCLQDL.Replace("第", "").Replace("列", ""))); + } + } + if (1 == flag_1) + { + SQL.Add(" else 1 end)* "); + } + } + SQL.Add(" ( "); + if (sJSBLFS.Equals("C1"))//C1|进一法(材料价各分项进一) + { + for (int i = 0; i < dsCLQDL.Tables[0].Rows.Count; i++) + { + sCLQDL = dsCLQDL.Tables[0].Rows[i]["XLJGCZBLM_CLQDL"].ToString().Trim(); + SQL.Add(string.Format("CEILING(RoundFix(a.XLXSCLQD_SL{0}*b.CLJG{0}*(1+a.XLXSCLQD_SHL{0}/100)*a.XLXSCLQD_CLJGBL{0}*{1},8))/{1}+", sCLQDL.Replace("第", "").Replace("列", ""), Math.Pow(10.0, iXSWS))); + } + } + else + { + for (int i = 0; i < dsCLQDL.Tables[0].Rows.Count; i++) + { + sCLQDL = dsCLQDL.Tables[0].Rows[i]["XLJGCZBLM_CLQDL"].ToString().Trim(); + SQL.Add(string.Format("a.XLXSCLQD_SL{0}*b.CLJG{0}*(1+a.XLXSCLQD_SHL{0}/100)*a.XLXSCLQD_CLJGBL{0}+", sCLQDL.Replace("第", "").Replace("列", ""))); + } + } + SQL.Add("0), "); + SQL.Add(" a.XLXSCLQD_JGBHSCB="); + if (!IsJGBID3)//调价因素3价格表不进行负数的校验,因为此时CLJG{0}代表的是两个价格表行情之差 + { + if (1 == flag_1) + { + SQL.Add(" (case "); + } + for (int i = 0; i < dsCLQDL.Tables[0].Rows.Count; i++) + { + sCLQDL = dsCLQDL.Tables[0].Rows[i]["XLJGCZBLM_CLQDL"].ToString().Trim(); + sBJHQ = dsCLQDL.Tables[0].Rows[i]["XLXSBJCL_BJHQ"].ToString().Trim(); + sBJRCLCB = dsCLQDL.Tables[0].Rows[i]["XLJGCZBLM_BJRCLCB"].ToString().Trim(); + if (sBJHQ.Equals("1") && !sBJRCLCB.Equals("Y"))//1|材料行情 + { + SQL.Add(string.Format(" when (a.XLXSCLQD_SL{0} > 0 and isnull(b.CLJG{0},0) = 0) then (-1) ", sCLQDL.Replace("第", "").Replace("列", ""))); + } + } + if (1 == flag_1) + { + SQL.Add(" else 1 end)* "); + } + } + SQL.Add(" ( "); + if (sJSBLFS.Equals("C1"))//C1|进一法(材料价各分项进一) + { + for (int i = 0; i < dsCLQDL.Tables[0].Rows.Count; i++) + { + sCLQDL = dsCLQDL.Tables[0].Rows[i]["XLJGCZBLM_CLQDL"].ToString().Trim(); + SQL.Add(string.Format("CEILING(RoundFix(a.XLXSCLQD_SL{0}*b.HSJG{0}*(1+a.XLXSCLQD_SHL{0}/100)*a.XLXSCLQD_CLJGBL{0}*{1},8))/{1}+", sCLQDL.Replace("第", "").Replace("列", ""), Math.Pow(10.0, iXSWS))); + } + } + else + { + for (int i = 0; i < dsCLQDL.Tables[0].Rows.Count; i++) + { + sCLQDL = dsCLQDL.Tables[0].Rows[i]["XLJGCZBLM_CLQDL"].ToString().Trim(); + SQL.Add(string.Format("a.XLXSCLQD_SL{0}*b.HSJG{0}*(1+a.XLXSCLQD_SHL{0}/100)*a.XLXSCLQD_CLJGBL{0}+", sCLQDL.Replace("第", "").Replace("列", ""))); + } + } + SQL.Add("0) "); + + SQL.ParamByName("pJGCZBID").Value = tmpJGCZBID; + SQL.ParamByName("pJGCZBBBID").Value = tmpJGCZBBBID; + dberp.ExecSQL(SQL); + + } + else//Z类A类C类 + { + /* + merge into 目标表 a + using 源表 b + on(a.条件字段1=b.条件字段1 and a.条件字段2=b.条件字段2 ……) + when matched then update set a.更新字段=b.字段 + when not matched then insert into a(字段1,字段2……)values(值1,值2……) + */ + SQL.Clear(); + SQL.Add(" merge into XLXSCLQD a "); + SQL.Add(" using "); + SQL.Add(" ("); + SQL.Add(" select XLJGCZBLM_JGCZBID as JGCZBID, XLJGCZBLM_JGCZBBBID as JGCZBBBID,"); + for (int i = 0; i < dsCLQDL.Tables[0].Rows.Count; i++) + { + sCLQDL = dsCLQDL.Tables[0].Rows[i]["XLJGCZBLM_CLQDL"].ToString().Trim(); + sBJHQ = dsCLQDL.Tables[0].Rows[i]["XLXSBJCL_BJHQ"].ToString().Trim(); + if (sBJHQ.Equals("1"))//1|材料行情 + { + SQL.Add(string.Format(" sum(case when XLJGCZBLM_CLQDL='{0}' then isnull(XLXSCLHQ_WSJG,0.0) else 0.0 end * case when isnull(XLJGCZBLM_BJRCLCB,'N') = 'Y' then 0 else 1 end ) as CLJG{1},", sCLQDL, sCLQDL.Replace("第", "").Replace("列", ""))); + SQL.Add(string.Format(" sum(case when XLJGCZBLM_CLQDL='{0}' then isnull(XLXSCLHQ_HSJG,0.0) else 0.0 end * case when isnull(XLJGCZBLM_BJRCLCB,'N') = 'Y' then 0 else 1 end ) as HSJG{1},", sCLQDL, sCLQDL.Replace("第", "").Replace("列", ""))); + } + } + SQL.Add(" ' ' as MJBZ "); + SQL.Add(" from XLJGCZBLM "); + if (IsJGBID3) + { + SQL.Add(" left join ("); + + if (!sTBJCLID_JGBBJ.Trim().Equals("") || !sLBJCLID_JGBBJ.Trim().Equals(""))//存在铜铝报价材料ID时用传入的铜铝价代替材料清单中的铜铝报价材料价格 + { + SQL.Add(" select j3.XLXSCLHQ_BJCLID as XLXSCLHQ_BJCLID,"); + SQL.Add(" case when ISNULL(j3.XLXSCLHQ_BJCLID, ' ') = :pTBJCLID then :pTJ - j1.XLXSCLHQ_HSJG "); + SQL.Add(" when ISNULL(j3.XLXSCLHQ_BJCLID, ' ') = :pLBJCLID then :pLJ - j1.XLXSCLHQ_HSJG else j3.XLXSCLHQ_HSJG-j1.XLXSCLHQ_HSJG end as XLXSCLHQ_HSJG,"); + SQL.Add(" case when ISNULL(j3.XLXSCLHQ_BJCLID, ' ') = :pTBJCLID then :pTJ - j1.XLXSCLHQ_WSJG "); + SQL.Add(" when ISNULL(j3.XLXSCLHQ_BJCLID, ' ') = :pLBJCLID then :pLJ - j1.XLXSCLHQ_WSJG else j3.XLXSCLHQ_WSJG-j1.XLXSCLHQ_WSJG end as XLXSCLHQ_WSJG "); + SQL.ParamByName("pTBJCLID").Value = sTBJCLID_JGBBJ; + SQL.ParamByName("pLBJCLID").Value = sLBJCLID_JGBBJ; + SQL.ParamByName("pTJ").Value = dTJ_JGBBJ; + SQL.ParamByName("pLJ").Value = dLJ_JGBBJ; + + SQL.Add(" from XLXSCLHQ j1,XLXSCLHQ j3"); + SQL.Add(" where j1.XLXSCLHQ_JGBID=:pJGBID1 and j3.XLXSCLHQ_JGBID=:pJGBID"); + SQL.Add(" and j1.XLXSCLHQ_BJCLID=j3.XLXSCLHQ_BJCLID"); + SQL.Add(" ) jj on XLXSCLHQ_BJCLID=XLJGCZBLM_BJCLID"); + SQL.ParamByName("pJGBID1").Value = sJGBID1; + SQL.ParamByName("pJGBID").Value = sJGBID; + } + else if (sBJDID.Trim().Equals(""))//sBJDID为空,说明是销售价格表模块调用 + { + SQL.Add(" select j3.XLXSCLHQ_BJCLID as XLXSCLHQ_BJCLID,"); + SQL.Add(" j3.XLXSCLHQ_HSJG-j1.XLXSCLHQ_HSJG as XLXSCLHQ_HSJG,j3.XLXSCLHQ_WSJG-j1.XLXSCLHQ_WSJG as XLXSCLHQ_WSJG"); + + SQL.Add(" from XLXSCLHQ j1,XLXSCLHQ j3"); + SQL.Add(" where j1.XLXSCLHQ_JGBID=:pJGBID1 and j3.XLXSCLHQ_JGBID=:pJGBID"); + SQL.Add(" and j1.XLXSCLHQ_BJCLID=j3.XLXSCLHQ_BJCLID"); + SQL.Add(" ) jj on XLXSCLHQ_BJCLID=XLJGCZBLM_BJCLID"); + SQL.ParamByName("pJGBID1").Value = sJGBID1; + SQL.ParamByName("pJGBID").Value = sJGBID; + } + else + { + SQL.Add(" select j3.XLXSCLHQ_BJCLID as XLXSCLHQ_BJCLID,"); + SQL.Add(" case when isnull(XLXSBJDCLHQ_BJCLID,' ')=' ' then (j3.XLXSCLHQ_HSJG-j1.XLXSCLHQ_HSJG) else (XLXSBJDCLHQ_HSJG-j1.XLXSCLHQ_HSJG) end as XLXSCLHQ_HSJG,"); + SQL.Add(" case when isnull(XLXSBJDCLHQ_BJCLID,' ')=' ' then (j3.XLXSCLHQ_WSJG-j1.XLXSCLHQ_WSJG) else (XLXSBJDCLHQ_WSJG-j1.XLXSCLHQ_WSJG) end as XLXSCLHQ_WSJG "); + + SQL.Add(" from XLXSCLHQ j1,XLXSCLHQ j3"); + SQL.Add(" left join XLXSBJDCLHQ on XLXSBJDCLHQ_BJDID=:pBJDIDD and XLXSBJDCLHQ_BJCLID=j3.XLXSCLHQ_BJCLID"); + SQL.Add(" where j1.XLXSCLHQ_JGBID=:pJGBID1 and j3.XLXSCLHQ_JGBID=:pJGBID"); + SQL.Add(" and j1.XLXSCLHQ_BJCLID=j3.XLXSCLHQ_BJCLID"); + SQL.Add(" ) jj on XLXSCLHQ_BJCLID=XLJGCZBLM_BJCLID"); + SQL.ParamByName("pJGBID1").Value = sJGBID1; + SQL.ParamByName("pJGBID").Value = sJGBID; + SQL.ParamByName("pBJDIDD").Value = sBJDID.Trim(); + } + } + else + { + if (!sTBJCLID_JGBBJ.Trim().Equals("") || !sLBJCLID_JGBBJ.Trim().Equals("")) + { + SQL.Add(" left join ("); + SQL.Add(" select XLXSCLHQ_BJCLID,"); + SQL.Add(" case when ISNULL(XLXSCLHQ_BJCLID, ' ') = :pTBJCLID then :pTJ "); + SQL.Add(" when isnull(XLXSCLHQ_JGYBJCLID1,' ')=:pTBJCLID then :pTJ*XLXSCLHQ_JGBL1+XLXSCLHQ_HSJGF"); + SQL.Add(" when ISNULL(XLXSCLHQ_BJCLID, ' ') = :pLBJCLID then :pLJ "); + SQL.Add(" when isnull(XLXSCLHQ_JGYBJCLID1,' ')=:pLBJCLID then :pLJ*XLXSCLHQ_JGBL1+XLXSCLHQ_HSJGF"); + SQL.Add(" else XLXSCLHQ_HSJG end as XLXSCLHQ_HSJG,"); + SQL.Add(" case when ISNULL(XLXSCLHQ_BJCLID, ' ') = :pTBJCLID then roundfix(:pTJ/(1+XLXSBJCL_ZZSL/100.0)," + XLBJDUtils.BJCLPriceDecimal + ") "); + SQL.Add(" when isnull(XLXSCLHQ_JGYBJCLID1,' ')=:pTBJCLID then roundfix(:pTJ/(1+XLXSBJCL_ZZSL/100.0)," + XLBJDUtils.BJCLPriceDecimal + ")*XLXSCLHQ_JGBL1+XLXSCLHQ_WSJGF"); + SQL.Add(" when ISNULL(XLXSCLHQ_BJCLID, ' ') = :pLBJCLID then roundfix(:pLJ/(1+XLXSBJCL_ZZSL/100.0)," + XLBJDUtils.BJCLPriceDecimal + ") "); + SQL.Add(" when isnull(XLXSCLHQ_JGYBJCLID1,' ')=:pLBJCLID then roundfix(:pLJ/(1+XLXSBJCL_ZZSL/100.0)," + XLBJDUtils.BJCLPriceDecimal + ")*XLXSCLHQ_JGBL1+XLXSCLHQ_WSJGF"); + SQL.Add(" else XLXSCLHQ_WSJG end as XLXSCLHQ_WSJG "); + SQL.Add(" from XLXSCLHQ "); + SQL.Add(" left join XLXSBJCL on XLXSBJCL_BJCLID=XLXSCLHQ_BJCLID"); + SQL.Add(" where XLXSCLHQ_JGBID=:pJGBID ) jj on XLXSCLHQ_BJCLID=XLJGCZBLM_BJCLID"); + SQL.ParamByName("pTBJCLID").Value = sTBJCLID_JGBBJ; + SQL.ParamByName("pLBJCLID").Value = sLBJCLID_JGBBJ; + SQL.ParamByName("pTJ").Value = dTJ_JGBBJ; + SQL.ParamByName("pLJ").Value = dLJ_JGBBJ; + SQL.ParamByName("pJGBID").Value = sJGBID; + } + else + { + if (sBJDHQLX.Equals("BJRCLHQ"))//报价日材料行情 + { + SQL.Add(" left join "); + SQL.Add(" ("); + SQL.Add(" select XLXSBJCL_BJCLID as XLXSCLHQ_BJCLID,"); + SQL.Add(" case when isnull(XLXSBJFLBJRHQCL_BJCLID,' ')<>' ' then bjrclhq.CLJG else jgbclhq.CLJG end as XLXSCLHQ_WSJG, "); + SQL.Add(" case when isnull(XLXSBJFLBJRHQCL_BJCLID,' ')<>' ' then bjrclhq.HSJG else jgbclhq.HSJG end as XLXSCLHQ_HSJG "); + SQL.Add(" from XLXSBJCL"); + SQL.Add(" left join XLXSBJFLBJRHQCL on XLXSBJFLBJRHQCL_BJFLID=:pBJFLID and XLXSBJFLBJRHQCL_BJCLID=XLXSBJCL_BJCLID"); + //bjrclhq 报价材料之报价日行情 + SQL.Add(" left join ("); + SQL.Add(" select BJCLID,XLXSCLHQ_WSJG as CLJG,XLXSCLHQ_HSJG as HSJG"); + SQL.Add(" from XLXSCLHQ,"); + SQL.Add(" ("); + SQL.Add(" select XLXSCLHQ_BJCLID as BJCLID,max(XLXSCLHQ_YXQS)as maxYXQS"); + SQL.Add(" from XLXSCLHQ"); + SQL.Add(" where XLXSCLHQ_JGBID='ZZZZZZZZ'"); + SQL.Add(" and XLXSCLHQ_YXQS<=:pBJRQ and(XLXSCLHQ_YXQZ>=:pBJRQ or XLXSCLHQ_YXQZ is null)"); + SQL.Add(" group by XLXSCLHQ_BJCLID"); + SQL.Add(" ) a"); + SQL.Add(" where XLXSCLHQ_JGBID='ZZZZZZZZ' "); + SQL.Add(" and XLXSCLHQ_BJCLID=BJCLID"); + SQL.Add(" and XLXSCLHQ_YXQS=maxYXQS"); + SQL.Add(" )bjrclhq on bjrclhq.BJCLID=XLXSBJCL_BJCLID"); + //jgbclhq 报价材料之价格表行情 + SQL.Add(" left join ("); + SQL.Add(" select XLXSCLHQ_BJCLID as BJCLID,XLXSCLHQ_WSJG as CLJG,XLXSCLHQ_HSJG as HSJG"); + SQL.Add(" from XLXSCLHQ"); + SQL.Add(" where XLXSCLHQ_JGBID<>'ZZZZZZZZ' and XLXSCLHQ_JGBID=:pJGBID"); + SQL.Add(" )jgbclhq on jgbclhq.BJCLID=XLXSBJCL_BJCLID"); + SQL.Add(" ) JGB on JGB.BJCLID=XLJGCZBLM_BJCLID"); + SQL.ParamByName("pBJFLID").Value = sBJFLID; + SQL.ParamByName("pBJRQ").Value = sBJRQ; + SQL.ParamByName("pJGBID").Value = sJGBID; + } + else if (sBJDHQLX.Equals("BJRHQ"))//报价日行情 + { + SQL.Add(" left join "); + SQL.Add(" ("); + SQL.Add(" select XLXSCLHQ_BJCLID,XLXSCLHQ_WSJG,XLXSCLHQ_HSJG"); + SQL.Add(" from XLXSCLHQ,"); + SQL.Add(" ("); + SQL.Add(" select XLXSCLHQ_BJCLID as BJCLID,max(XLXSCLHQ_YXQS)as maxYXQS"); + SQL.Add(" from XLXSCLHQ"); + SQL.Add(" where XLXSCLHQ_JGBID='ZZZZZZZZ'"); + SQL.Add(" and XLXSCLHQ_YXQS<=:pBJRQ and(XLXSCLHQ_YXQZ>=:pBJRQ or XLXSCLHQ_YXQZ is null)"); + SQL.Add(" group by XLXSCLHQ_BJCLID"); + SQL.Add(" ) a"); + SQL.Add(" where XLXSCLHQ_JGBID='ZZZZZZZZ' "); + SQL.Add(" and XLXSCLHQ_BJCLID=BJCLID"); + SQL.Add(" and XLXSCLHQ_YXQS=maxYXQS"); + SQL.Add(" ) JGB on JGB.XLXSCLHQ_BJCLID=XLJGCZBLM_BJCLID"); + SQL.ParamByName("pBJRQ").Value = sBJRQ; + } + else if (sBJDHQLX.Equals("BJDHQ"))//报价单行情 + { + SQL.Add(" left join "); + SQL.Add(" ("); + SQL.Add(" select XLXSBJDCLHQ_BJCLID as XLXSCLHQ_BJCLID,XLXSBJDCLHQ_WSJG as XLXSCLHQ_WSJG,XLXSBJDCLHQ_HSJG as XLXSCLHQ_HSJG"); + SQL.Add(" from XLXSBJDCLHQ"); + SQL.Add(string.Format(" where XLXSBJDCLHQ_BJDID='{0}'", sBJDID)); + SQL.Add(" ) JGB on JGB.XLXSCLHQ_BJCLID=XLJGCZBLM_BJCLID"); + } + else//价格表行情 + { + SQL.Add(" left join XLXSCLHQ on XLXSCLHQ_JGBID=:pJGBID and XLXSCLHQ_BJCLID=XLJGCZBLM_BJCLID"); + SQL.ParamByName("pJGBID").Value = sJGBID; + } + } + } + SQL.Add(" where XLJGCZBLM_JGCZBID=:pJGCZBID"); + SQL.Add(" and XLJGCZBLM_JGCZBBBID=:pJGCZBBBID"); + SQL.Add(" and isnull(XLJGCZBLM_CLQDL,' ')<>' '"); + SQL.Add(" group by XLJGCZBLM_JGCZBID,XLJGCZBLM_JGCZBBBID"); + SQL.Add(" ) b "); + SQL.Add(" on( "); + SQL.Add(" a.XLXSCLQD_JGCZBID=:pJGCZBID and a.XLXSCLQD_JGCZBBBID=:pJGCZBBBID"); + SQL.Add(" and a.XLXSCLQD_JGCZBID=b.JGCZBID and a.XLXSCLQD_JGCZBBBID=b.JGCZBBBID "); + if (!sBJDID.Trim().Equals(""))//这段是否有必要限制到具体要重算的产品,还是整个尺重表一起算,需要看项目执行效果再定 + { + SQL.Add(" and exists ("); + SQL.Add("select 1 "); + SQL.Add(" from XLXSBJDMX"); + SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID"); + if (!sBJDXHList.Trim().Equals("")) + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + SQL.Add(" and XLXSBJDMX_XH >= :piMinXH"); + SQL.Add(" and XLXSBJDMX_XLXHID=a.XLXSCLQD_XLXHID and XLXSBJDMX_XLGGID=a.XLXSCLQD_XLGGID"); + SQL.Add(" and XLXSBJDMX_XLBZID=a.XLXSCLQD_XLBZID and XLXSBJDMX_DYDJID=a.XLXSCLQD_DYDJID"); + SQL.Add(" ) "); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("piMinXH").Value = iMinXH; + } + SQL.Add(" ) "); + SQL.Add(" when matched then update set a.XLXSCLQD_JGBWSCB= "); + + if (!IsJGBID3)//调价因素3价格表不进行负数的校验,因为此时CLJG{0}代表的是两个价格表行情之差 + { + //case 语句用于挑拣出用量大于0价格等于0的那一列,返回-1 + if (1 == flag_1) + { + SQL.Add(" (case "); + } + for (int i = 0; i < dsCLQDL.Tables[0].Rows.Count; i++) + { + sCLQDL = dsCLQDL.Tables[0].Rows[i]["XLJGCZBLM_CLQDL"].ToString().Trim(); + sBJHQ = dsCLQDL.Tables[0].Rows[i]["XLXSBJCL_BJHQ"].ToString().Trim(); + sBJRCLCB = dsCLQDL.Tables[0].Rows[i]["XLJGCZBLM_BJRCLCB"].ToString().Trim(); + if (sBJHQ.Equals("1") && !sBJRCLCB.Equals("Y"))//1|材料行情 + { + SQL.Add(string.Format(" when (XLXSCLQD_SL{0} > 0 and isnull(CLJG{0},0) = 0) then (-1) ", sCLQDL.Replace("第", "").Replace("列", ""))); + } + } + if (1 == flag_1) + { + SQL.Add(" else 1 end)* "); + } + } + SQL.Add(" ( "); + if (sJSBLFS.Equals("C1"))//C1|进一法(材料价各分项进一) + { + for (int i = 0; i < dsCLQDL.Tables[0].Rows.Count; i++) + { + sCLQDL = dsCLQDL.Tables[0].Rows[i]["XLJGCZBLM_CLQDL"].ToString().Trim(); + sBJHQ = dsCLQDL.Tables[0].Rows[i]["XLXSBJCL_BJHQ"].ToString().Trim(); + if (sBJHQ.Equals("1"))//1|材料行情 + { + SQL.Add(string.Format("CEILING(RoundFix(XLXSCLQD_SL{0}*CLJG{0}*(1+XLXSCLQD_SHL{0}/100)*XLXSCLQD_CLJGBL{0}*{1},8))/{1}+", sCLQDL.Replace("第", "").Replace("列", ""), Math.Pow(10.0, iXSWS))); + } + } + } + else + { + for (int i = 0; i < dsCLQDL.Tables[0].Rows.Count; i++) + { + sCLQDL = dsCLQDL.Tables[0].Rows[i]["XLJGCZBLM_CLQDL"].ToString().Trim(); + sBJHQ = dsCLQDL.Tables[0].Rows[i]["XLXSBJCL_BJHQ"].ToString().Trim(); + if (sBJHQ.Equals("1"))//1|材料行情 + { + SQL.Add(string.Format("XLXSCLQD_SL{0}*CLJG{0}*(1+XLXSCLQD_SHL{0}/100)*XLXSCLQD_CLJGBL{0}+", sCLQDL.Replace("第", "").Replace("列", ""))); + } + } + } + if (bNeedAddWLHQ) + { + SQL.Add("1.0), ");//这里+1.0是为了解决即使材料价都为0,也要保证成本之和不为0 + } + else + SQL.Add("0), "); + SQL.Add(" a.XLXSCLQD_JGBHSCB="); + if (!IsJGBID3)//调价因素3价格表不进行负数的校验,因为此时CLJG{0}代表的是两个价格表行情之差 + { + if (1 == flag_1) + { + SQL.Add(" (case "); + } + for (int i = 0; i < dsCLQDL.Tables[0].Rows.Count; i++) + { + sCLQDL = dsCLQDL.Tables[0].Rows[i]["XLJGCZBLM_CLQDL"].ToString().Trim(); + sBJHQ = dsCLQDL.Tables[0].Rows[i]["XLXSBJCL_BJHQ"].ToString().Trim(); + sBJRCLCB = dsCLQDL.Tables[0].Rows[i]["XLJGCZBLM_BJRCLCB"].ToString().Trim(); + if (sBJHQ.Equals("1") && !sBJRCLCB.Equals("Y"))//1|材料行情 + { + SQL.Add(string.Format(" when (XLXSCLQD_SL{0} > 0 and isnull(CLJG{0},0) = 0) then (-1) ", sCLQDL.Replace("第", "").Replace("列", ""))); + } + } + if (1 == flag_1) + { + SQL.Add(" else 1 end)* "); + } + } + SQL.Add(" ( "); + if (sJSBLFS.Equals("C1"))//C1|进一法(材料价各分项进一) + { + for (int i = 0; i < dsCLQDL.Tables[0].Rows.Count; i++) + { + sCLQDL = dsCLQDL.Tables[0].Rows[i]["XLJGCZBLM_CLQDL"].ToString().Trim(); + sBJHQ = dsCLQDL.Tables[0].Rows[i]["XLXSBJCL_BJHQ"].ToString().Trim(); + if (sBJHQ.Equals("1"))//1|材料行情 + { + SQL.Add(string.Format("CEILING(RoundFix(XLXSCLQD_SL{0}*HSJG{0}*(1+XLXSCLQD_SHL{0}/100)*XLXSCLQD_CLJGBL{0}*{1},8))/{1}+", sCLQDL.Replace("第", "").Replace("列", ""), Math.Pow(10.0, iXSWS))); + } + } + } + else + { + for (int i = 0; i < dsCLQDL.Tables[0].Rows.Count; i++) + { + sCLQDL = dsCLQDL.Tables[0].Rows[i]["XLJGCZBLM_CLQDL"].ToString().Trim(); + sBJHQ = dsCLQDL.Tables[0].Rows[i]["XLXSBJCL_BJHQ"].ToString().Trim(); + if (sBJHQ.Equals("1"))//1|材料行情 + { + SQL.Add(string.Format("XLXSCLQD_SL{0}*HSJG{0}*(1+XLXSCLQD_SHL{0}/100)*XLXSCLQD_CLJGBL{0}+", sCLQDL.Replace("第", "").Replace("列", ""))); + } + } + } + if (bNeedAddWLHQ) + { + SQL.Add("1.0) ");//这里+1.0是为了解决即使材料价都为0,也要保证成本之和不为0 + } + else + SQL.Add("0) "); + SQL.ParamByName("pJGCZBID").Value = tmpJGCZBID; + SQL.ParamByName("pJGCZBBBID").Value = tmpJGCZBBBID; + dberp.ExecSQL(SQL); + + + + if (bNeedAddWLHQ) + { + string sWLHQCLQDL = string.Empty;//记录物料行情的材料清单列 + for (int i = 0; i < dsCLQDL.Tables[0].Rows.Count; i++) + { + sCLQDL = dsCLQDL.Tables[0].Rows[i]["XLJGCZBLM_CLQDL"].ToString().Trim(); + sBJHQ = dsCLQDL.Tables[0].Rows[i]["XLXSBJCL_BJHQ"].ToString().Trim(); + sBJRCLCB = dsCLQDL.Tables[0].Rows[i]["XLJGCZBLM_BJRCLCB"].ToString().Trim(); + if (sBJHQ.Equals("2") && !sBJRCLCB.Equals("Y"))//2|物料行情 + sWLHQCLQDL += sCLQDL.Replace("第", "").Replace("列", "") + ","; + } + sWLHQCLQDL = sWLHQCLQDL.TrimEnd(','); + + string[] sWLHQCLQDList = sWLHQCLQDL.Split(','); + + if (sWLHQCLQDList.Length <= 20) + { + /* + merge into 目标表 a + using 源表 b + on(a.条件字段1=b.条件字段1 and a.条件字段2=b.条件字段2 ……) + when matched then update set a.更新字段=b.字段 + when not matched then insert into a(字段1,字段2……)values(值1,值2……) + */ + SQL.Clear(); + SQL.Add(" merge into XLXSCLQD a "); + SQL.Add(" using "); + SQL.Add(" (");//获取结构尺重表每个单元格所指报价物料的无税价格、含税价格 + SQL.Add(" select XLXSCLQD_XLXHID as XLXHID,XLXSCLQD_XLGGID as XLGGID,XLXSCLQD_XLBZID as XLBZID, XLXSCLQD_DYDJID as DYDJID, "); + for (int i = 0; i < dsCLQDL.Tables[0].Rows.Count; i++) + { + sCLQDL = dsCLQDL.Tables[0].Rows[i]["XLJGCZBLM_CLQDL"].ToString().Trim(); + sBJHQ = dsCLQDL.Tables[0].Rows[i]["XLXSBJCL_BJHQ"].ToString().Trim(); + sBJRCLCB = dsCLQDL.Tables[0].Rows[i]["XLJGCZBLM_BJRCLCB"].ToString().Trim(); + if (sBJHQ.Equals("2") && !sBJRCLCB.Equals("Y"))//2|物料行情 + { + if (sBJDHQLX.Equals("BJDHQ"))//报价单行情 + { + SQL.Add(string.Format("case when isnull(d{0}.XLXSBJDWLHQ_WLID,' ')<>' ' then isnull(d{0}.WSJG,0) else isnull(c{0}.WSJG,0) end as WSJG{0}, ", sCLQDL.Replace("第", "").Replace("列", ""))); + SQL.Add(string.Format("case when isnull(d{0}.XLXSBJDWLHQ_WLID,' ')<>' ' then isnull(d{0}.HSJG,0) else isnull(c{0}.HSJG,0) end as HSJG{0}, ", sCLQDL.Replace("第", "").Replace("列", ""))); + } + else + { + SQL.Add(string.Format(" isnull(c{0}.XLXSWLHQ_WSJG,0) as WSJG{0},isnull(c{0}.XLXSWLHQ_HSJG,0) as HSJG{0},", sCLQDL.Replace("第", "").Replace("列", ""))); + } + } + } + SQL.Add(" ' ' as MJBZ "); + SQL.Add(" from XLXSCLQD");//这里不直接查XLXSCLQDWL的原因是XLXSCLQDWL可能还没有记录 + SQL.Add(" left join XLXSCLQDWL on XLXSCLQDWL_JGCZBID=XLXSCLQD_JGCZBID and XLXSCLQDWL_JGCZBBBID=XLXSCLQD_JGCZBBBID and XLXSCLQDWL_JGCZBXH=XLXSCLQD_JGCZBXH and XLXSCLQDWL_DRHH=XLXSCLQD_DRHH"); + for (int i = 0; i < dsCLQDL.Tables[0].Rows.Count; i++) + { + sCLQDL = dsCLQDL.Tables[0].Rows[i]["XLJGCZBLM_CLQDL"].ToString().Trim(); + sBJHQ = dsCLQDL.Tables[0].Rows[i]["XLXSBJCL_BJHQ"].ToString().Trim(); + sBJRCLCB = dsCLQDL.Tables[0].Rows[i]["XLJGCZBLM_BJRCLCB"].ToString().Trim(); + if (sBJHQ.Equals("2") && !sBJRCLCB.Equals("Y"))//2|物料行情 + { + if (sBJDHQLX.Equals("BJDHQ"))//报价单行情 + { + //关联XLXSBJDWLHQ,获取报价单物料行情 + SQL.Add(" left join "); + SQL.Add(" ("); + SQL.Add(" select XLXSBJDWLHQ_WLID,"); + SQL.Add(string.Format("case when isnull(XLXSBJDWLHQ_JGYBJCLID1,' ')<>' ' and XLXSBJDWLHQ_JGYBJCLID1='{0}' then {1}*XLXSBJDWLHQ_JGBL1+XLXSBJDWLHQ_WSJGF", sTBJCLID, dTJ)); + SQL.Add(string.Format(" when isnull(XLXSBJDWLHQ_JGYBJCLID1,' ')<>' ' and XLXSBJDWLHQ_JGYBJCLID1='{0}' then {1}*XLXSBJDWLHQ_JGBL1+XLXSBJDWLHQ_WSJGF", sLBJCLID, dLJ)); + SQL.Add(" else XLXSBJDWLHQ_WSJG end as WSJG, "); + SQL.Add(string.Format("case when isnull(XLXSBJDWLHQ_JGYBJCLID1,' ')<>' ' and XLXSBJDWLHQ_JGYBJCLID1='{0}' then {1}*XLXSBJDWLHQ_JGBL1+XLXSBJDWLHQ_HSJGF", sTBJCLID, dTJ)); + SQL.Add(string.Format(" when isnull(XLXSBJDWLHQ_JGYBJCLID1,' ')<>' ' and XLXSBJDWLHQ_JGYBJCLID1='{0}' then {1}*XLXSBJDWLHQ_JGBL1+XLXSBJDWLHQ_HSJGF", sLBJCLID, dLJ)); + SQL.Add(" else XLXSBJDWLHQ_HSJG end as HSJG "); + SQL.Add(" from XLXSBJDWLHQ"); + SQL.Add(" left join XLXSBJCLWL on XLXSBJCLWL_WLID=XLXSBJDWLHQ_WLID"); + SQL.Add(" left join XLXSBJCL on XLXSBJCL_BJCLID=XLXSBJCLWL_BJCLID"); + SQL.Add(string.Format(" where XLXSBJDWLHQ_BJDID='{0}'", sBJDID)); + SQL.Add(string.Format(") d{0} on d{0}.XLXSBJDWLHQ_WLID=XLXSCLQDWL_WLID{0} ", sCLQDL.Replace("第", "").Replace("列", ""))); + //关联XLXSWLHQ,获取物料行情 + SQL.Add(" left join"); + SQL.Add(" ("); + SQL.Add(" select XLXSWLHQ_WLID,"); + SQL.Add(string.Format("case when isnull(XLXSWLHQ_JGYBJCLID1,' ')<>' ' and XLXSWLHQ_JGYBJCLID1='{0}' then {1}*XLXSWLHQ_JGBL1+XLXSWLHQ_WSJGF", sTBJCLID, dTJ)); + SQL.Add(string.Format(" when isnull(XLXSWLHQ_JGYBJCLID1,' ')<>' ' and XLXSWLHQ_JGYBJCLID1='{0}' then {1}*XLXSWLHQ_JGBL1+XLXSWLHQ_WSJGF", sLBJCLID, dLJ)); + SQL.Add(" else XLXSWLHQ_WSJG end as WSJG, "); + SQL.Add(string.Format("case when isnull(XLXSWLHQ_JGYBJCLID1,' ')<>' ' and XLXSWLHQ_JGYBJCLID1='{0}' then {1}*XLXSWLHQ_JGBL1+XLXSWLHQ_HSJGF", sTBJCLID, dTJ)); + SQL.Add(string.Format(" when isnull(XLXSWLHQ_JGYBJCLID1,' ')<>' ' and XLXSWLHQ_JGYBJCLID1='{0}' then {1}*XLXSWLHQ_JGBL1+XLXSWLHQ_HSJGF", sLBJCLID, dLJ)); + SQL.Add(" else XLXSWLHQ_HSJG end as HSJG "); + SQL.Add(" from XLXSWLHQ,"); + SQL.Add(" ("); + SQL.Add(" select XLXSWLHQ_WLID as WLID,max(XLXSWLHQ_YXQS)as maxYXQS"); + SQL.Add(" from XLXSWLHQ"); + SQL.Add(" where XLXSWLHQ_JGBID=' '"); + SQL.Add(" and XLXSWLHQ_YXQS<=:pRQ and (XLXSWLHQ_YXQZ>=:pRQ or XLXSWLHQ_YXQZ is null)"); + SQL.Add(" group by XLXSWLHQ_WLID"); + SQL.Add(string.Format(") a{0} ", sCLQDL.Replace("第", "").Replace("列", ""))); + SQL.Add(" left join XLXSBJCLWL on XLXSBJCLWL_WLID=WLID");//20.09.22新增 + SQL.Add(" left join XLXSBJCL on XLXSBJCL_BJCLID=XLXSBJCLWL_BJCLID");//20.09.22新增 + SQL.Add(" where XLXSWLHQ_JGBID=' ' and XLXSWLHQ_WLID=WLID and XLXSWLHQ_YXQS=maxYXQS"); + SQL.Add(string.Format(") c{0} on c{0}.XLXSWLHQ_WLID=XLXSCLQDWL_WLID{0} ", sCLQDL.Replace("第", "").Replace("列", ""))); + + SQL.ParamByName("pRQ").Value = DateTime.Now.ToShortDateString(); + } + else + { + //Dictionary dicJGYLHSJG = new Dictionary(); + //Dictionary dicJGYLWSJG = new Dictionary(); + //TSQL sSQL = new TSQL(dberp); + //sSQL.Add(" select XLXSCLHQ_BJCLID,XLXSCLHQ_HSJG,XLXSCLHQ_WSJG,isnull(JGYBJCLID,' ') as JGYBJCLID "); + //sSQL.Add(" from XLXSCLHQ "); + //sSQL.Add(" left join ( "); + //sSQL.Add(" select distinct XLXSBJCL_JGYBJCLID as JGYBJCLID "); + //sSQL.Add(" from XLXSBJCL where isnull(XLXSBJCL_JGYBJCLID,' ')<>' '"); + //sSQL.Add(" ) a on JGYBJCLID=XLXSCLHQ_BJCLID"); + //sSQL.Add(" where XLXSCLHQ_JGBID=:pJGBID "); + //sSQL.Add(" and isnull(JGYBJCLID,' ') <> ' ' "); + //sSQL.ParamByName("pJGBID").Value = sJGBID; + //DataSet dsJGYL = dberp.OpenDataSet(sSQL); + //if (dsJGYL.Tables[0].Rows.Count > 0) + //{ + // foreach (DataRow trow in dsJGYL.Tables[0].Rows) + // { + // if (!dicJGYLHSJG.ContainsKey(trow["XLXSCLHQ_BJCLID"].ToString().Trim())) + // { + // dicJGYLHSJG.Add(trow["XLXSCLHQ_BJCLID"].ToString().Trim(), CMISproConvert.StrToFloat(trow["XLXSCLHQ_HSJG"].ToString().Trim())); + // dicJGYLWSJG.Add(trow["XLXSCLHQ_BJCLID"].ToString().Trim(), CMISproConvert.StrToFloat(trow["XLXSCLHQ_WSJG"].ToString().Trim())); + // } + // } + //} + + SQL.Add(" left join"); + SQL.Add(" ("); + SQL.Add(" select XLXSWLHQ_WLID,"); + //无税价格 + if (dicJGYLWSJG.Count > 0) + { + SQL.Add(" case "); + foreach (string BJCLID in dicJGYLWSJG.Keys) + { + SQL.Add(string.Format(" when isnull(XLXSWLHQ_JGYBJCLID1,' ')<>' ' and XLXSWLHQ_JGYBJCLID1='{0}' then {1}*XLXSWLHQ_JGBL1+XLXSWLHQ_WSJGF", BJCLID, dicJGYLWSJG[BJCLID])); + } + SQL.Add(" else XLXSWLHQ_WSJG end as XLXSWLHQ_WSJG, "); + } + else + { + SQL.Add(" XLXSWLHQ_WSJG, "); + } + //含税价格 + if (dicJGYLHSJG.Count > 0) + { + SQL.Add(" case "); + foreach (string BJCLID in dicJGYLHSJG.Keys) + { + SQL.Add(string.Format(" when isnull(XLXSWLHQ_JGYBJCLID1,' ')<>' ' and XLXSWLHQ_JGYBJCLID1='{0}' then {1}*XLXSWLHQ_JGBL1+XLXSWLHQ_HSJGF", BJCLID, dicJGYLHSJG[BJCLID])); + } + SQL.Add(" else XLXSWLHQ_HSJG end as XLXSWLHQ_HSJG "); + } + else + { + SQL.Add(" XLXSWLHQ_HSJG "); + } + SQL.Add(" from XLXSWLHQ"); + SQL.Add(" left join XLXSBJCLWL on XLXSBJCLWL_WLID=XLXSWLHQ_WLID"); + SQL.Add(" left join XLXSBJCL on XLXSBJCL_BJCLID=XLXSBJCLWL_BJCLID"); + SQL.Add(" where 1=1"); + if (XLJGB_CLJGTZList.NeedJGBJJFP()) + { + SQL.Add(" and XLXSWLHQ_JGBID=:pJGBID_JJFP"); + SQL.ParamByName("pJGBID_JJFP").Value = sJGBID; + } + else + { + //同一个物料,在同一天当中只会存在一个价格,可以不用先查出maxYXQS + SQL.Add(" and XLXSWLHQ_JGBID=' '"); + SQL.Add(" and XLXSWLHQ_YXQS<=:pRQ and (XLXSWLHQ_YXQZ>=:pRQ or XLXSWLHQ_YXQZ is null)"); + + SQL.ParamByName("pRQ").Value = DateTime.Now.ToShortDateString(); + } + SQL.Add(string.Format(") c{0} on c{0}.XLXSWLHQ_WLID=XLXSCLQDWL_WLID{0} ", sCLQDL.Replace("第", "").Replace("列", ""))); + } + } + } + SQL.Add(" where XLXSCLQD_JGCZBID=:pJGCZBID and XLXSCLQD_JGCZBBBID=:pJGCZBBBID "); + SQL.Add(" ) b "); + SQL.Add(" on( "); + SQL.Add(" a.XLXSCLQD_JGCZBID=:pJGCZBID and a.XLXSCLQD_JGCZBBBID=:pJGCZBBBID"); + SQL.Add(" and a.XLXSCLQD_XLXHID=b.XLXHID and a.XLXSCLQD_XLGGID=b.XLGGID "); + SQL.Add(" and XLBZID=XLXSCLQD_XLBZID and DYDJID=XLXSCLQD_DYDJID "); + if (!sBJDID.Trim().Equals(""))//这段是否有必要限制到具体要重算的产品,还是整个尺重表一起算,需要看项目执行效果再定 + { + SQL.Add(" and exists ("); + SQL.Add("select 1 "); + SQL.Add(" from XLXSBJDMX"); + SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID"); + if (!sBJDXHList.Trim().Equals("")) + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + SQL.Add(" and XLXSBJDMX_XH >= :piMinXH"); + SQL.Add(" and XLXSBJDMX_XLXHID=a.XLXSCLQD_XLXHID and XLXSBJDMX_XLGGID=a.XLXSCLQD_XLGGID"); + SQL.Add(" and XLXSBJDMX_XLBZID=a.XLXSCLQD_XLBZID and XLXSBJDMX_DYDJID=a.XLXSCLQD_DYDJID"); + SQL.Add(" ) "); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("piMinXH").Value = iMinXH; + } + SQL.Add(" ) "); + SQL.Add(" when matched then update set a.XLXSCLQD_JGBWSCB= "); + //用量部分以abs计算,始终为正数,在case语句先判断材料部分是否是正数 + //case 语句用于挑拣出用量大于0价格等于0的那一列,返回-1 + SQL.Add(" (case when XLXSCLQD_JGBWSCB < 0 then (-1) "); + for (int i = 0; i < dsCLQDL.Tables[0].Rows.Count; i++) + { + sCLQDL = dsCLQDL.Tables[0].Rows[i]["XLJGCZBLM_CLQDL"].ToString().Trim(); + sBJHQ = dsCLQDL.Tables[0].Rows[i]["XLXSBJCL_BJHQ"].ToString().Trim(); + sBJRCLCB = dsCLQDL.Tables[0].Rows[i]["XLJGCZBLM_BJRCLCB"].ToString().Trim(); + if (sBJHQ.Equals("2") && !sBJRCLCB.Equals("Y"))//2|物料行情 + { + SQL.Add(string.Format(" when (XLXSCLQD_SL{0} > 0 and isnull(WSJG{0},0) = 0) then (-1) ", sCLQDL.Replace("第", "").Replace("列", ""))); + } + } + SQL.Add(" else 1 end)* "); + SQL.Add(" (abs(XLXSCLQD_JGBWSCB)-1.0+ ");//这里需要把上边材料行情部分算XLXSCLQD_JGBHSCB时加的1.0减掉 + if (sJSBLFS.Equals("C1"))//C1|进一法(材料价各分项进一) + { + for (int i = 0; i < dsCLQDL.Tables[0].Rows.Count; i++) + { + sCLQDL = dsCLQDL.Tables[0].Rows[i]["XLJGCZBLM_CLQDL"].ToString().Trim(); + sBJHQ = dsCLQDL.Tables[0].Rows[i]["XLXSBJCL_BJHQ"].ToString().Trim(); + sBJRCLCB = dsCLQDL.Tables[0].Rows[i]["XLJGCZBLM_BJRCLCB"].ToString().Trim(); + if (sBJHQ.Equals("2") && !sBJRCLCB.Equals("Y"))//2|物料行情 + { + SQL.Add(string.Format("CEILING(RoundFix(XLXSCLQD_SL{0}*(1+XLXSCLQD_SHL{0}/100)*XLXSCLQD_CLJGBL{0}*isnull(WSJG{0},0)*{1},8))/{1}+", sCLQDL.Replace("第", "").Replace("列", ""), Math.Pow(10.0, iXSWS))); + } + } + } + else + { + for (int i = 0; i < dsCLQDL.Tables[0].Rows.Count; i++) + { + sCLQDL = dsCLQDL.Tables[0].Rows[i]["XLJGCZBLM_CLQDL"].ToString().Trim(); + sBJHQ = dsCLQDL.Tables[0].Rows[i]["XLXSBJCL_BJHQ"].ToString().Trim(); + sBJRCLCB = dsCLQDL.Tables[0].Rows[i]["XLJGCZBLM_BJRCLCB"].ToString().Trim(); + if (sBJHQ.Equals("2") && !sBJRCLCB.Equals("Y"))//2|物料行情 + { + SQL.Add(string.Format("XLXSCLQD_SL{0}*(1+XLXSCLQD_SHL{0}/100)*XLXSCLQD_CLJGBL{0}*isnull(WSJG{0},0)+", sCLQDL.Replace("第", "").Replace("列", ""))); + } + } + } + SQL.Add("0), "); + SQL.Add(" XLXSCLQD_JGBHSCB="); + SQL.Add(" (case when XLXSCLQD_JGBHSCB < 0 then (-1) "); + for (int i = 0; i < dsCLQDL.Tables[0].Rows.Count; i++) + { + sCLQDL = dsCLQDL.Tables[0].Rows[i]["XLJGCZBLM_CLQDL"].ToString().Trim(); + sBJHQ = dsCLQDL.Tables[0].Rows[i]["XLXSBJCL_BJHQ"].ToString().Trim(); + sBJRCLCB = dsCLQDL.Tables[0].Rows[i]["XLJGCZBLM_BJRCLCB"].ToString().Trim(); + if (sBJHQ.Equals("2") && !sBJRCLCB.Equals("Y"))//2|物料行情 + { + SQL.Add(string.Format(" when (XLXSCLQD_SL{0} > 0 and isnull(HSJG{0},0) = 0) then (-1) ", sCLQDL.Replace("第", "").Replace("列", ""))); + } + } + SQL.Add(" else 1 end)* "); + SQL.Add(" (abs(XLXSCLQD_JGBHSCB)-1.0+ ");//这里需要把上边材料行情部分算XLXSCLQD_JGBHSCB时加的1.0减掉 + if (sJSBLFS.Equals("C1"))//C1|进一法(材料价各分项进一) + { + for (int i = 0; i < dsCLQDL.Tables[0].Rows.Count; i++) + { + sCLQDL = dsCLQDL.Tables[0].Rows[i]["XLJGCZBLM_CLQDL"].ToString().Trim(); + sBJHQ = dsCLQDL.Tables[0].Rows[i]["XLXSBJCL_BJHQ"].ToString().Trim(); + sBJRCLCB = dsCLQDL.Tables[0].Rows[i]["XLJGCZBLM_BJRCLCB"].ToString().Trim(); + if (sBJHQ.Equals("2") && !sBJRCLCB.Equals("Y"))//2|物料行情 + { + SQL.Add(string.Format("CEILING(RoundFix(XLXSCLQD_SL{0}*(1+XLXSCLQD_SHL{0}/100)*XLXSCLQD_CLJGBL{0}*isnull(HSJG{0},0)*{1},8))/{1}+", sCLQDL.Replace("第", "").Replace("列", ""), Math.Pow(10.0, iXSWS))); + } + } + } + else + { + for (int i = 0; i < dsCLQDL.Tables[0].Rows.Count; i++) + { + sCLQDL = dsCLQDL.Tables[0].Rows[i]["XLJGCZBLM_CLQDL"].ToString().Trim(); + sBJHQ = dsCLQDL.Tables[0].Rows[i]["XLXSBJCL_BJHQ"].ToString().Trim(); + sBJRCLCB = dsCLQDL.Tables[0].Rows[i]["XLJGCZBLM_BJRCLCB"].ToString().Trim(); + if (sBJHQ.Equals("2") && !sBJRCLCB.Equals("Y"))//2|物料行情 + { + SQL.Add(string.Format("XLXSCLQD_SL{0}*(1+XLXSCLQD_SHL{0}/100)*XLXSCLQD_CLJGBL{0}*isnull(HSJG{0},0)+", sCLQDL.Replace("第", "").Replace("列", ""))); + } + } + } + SQL.Add("0)"); + SQL.ParamByName("pJGCZBID").Value = tmpJGCZBID; + SQL.ParamByName("pJGCZBBBID").Value = tmpJGCZBBBID; + dberp.ExecSQL(SQL); + } + else + { + + DateTime TimeStamp = MISproUtils.GetServerTime(); + int VnewID = CMISproDataBase.GetMaxXH("DBERP", "V_XLXSCLQDWLHQ", "V_XLXSCLQDWLHQ_ID", "") + 1; + + SQL.Clear(); + SQL.Add(@"insert into V_XLXSCLQDWLHQ(V_XLXSCLQDWLHQ_ID,V_XLXSCLQDWLHQ_TIMESTAMP,V_XLXSCLQDWLHQ_JGCZBID,V_XLXSCLQDWLHQ_JGCZBBBID,V_XLXSCLQDWLHQ_JGCZBXH,V_XLXSCLQDWLHQ_DRHH,V_XLXSCLQDWLHQ_HSBZ) + select :pID,:pTime,XLXSCLQD_JGCZBID, XLXSCLQD_JGCZBBBID,XLXSCLQD_JGCZBXH,XLXSCLQD_DRHH,:pHSBZ from XLXSCLQD + where XLXSCLQD_JGCZBID=:pJGCZBID and XLXSCLQD_JGCZBBBID=:pJGCZBBBID and XLXSCLQD_WPID='ZZZZ' + "); + if (!sBJDID.Trim().Equals(""))//这段是否有必要限制到具体要重算的产品,还是整个尺重表一起算,需要看项目执行效果再定 + { + SQL.Add(" and exists ("); + SQL.Add("select 1 "); + SQL.Add(" from XLXSBJDMX"); + SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID"); + if (!sBJDXHList.Trim().Equals("")) + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + SQL.Add(" and XLXSBJDMX_XH >= :piMinXH"); + SQL.Add(" and XLXSBJDMX_XLXHID=XLXSCLQD_XLXHID and XLXSBJDMX_XLGGID=XLXSCLQD_XLGGID"); + SQL.Add(" and XLXSBJDMX_XLBZID=XLXSCLQD_XLBZID and XLXSBJDMX_DYDJID=XLXSCLQD_DYDJID"); + SQL.Add(" ) "); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("piMinXH").Value = iMinXH; + } + SQL.ParamByName("pID").Value = VnewID; + SQL.ParamByName("pTime").Value = TimeStamp; + SQL.ParamByName("pHSBZ").Value = "N"; + SQL.ParamByName("pJGCZBID").Value = tmpJGCZBID; + SQL.ParamByName("pJGCZBBBID").Value = tmpJGCZBBBID; + dberp.ExecSQL(SQL); + + SQL.Clear(); + SQL.Add(@"insert into V_XLXSCLQDWLHQ(V_XLXSCLQDWLHQ_ID,V_XLXSCLQDWLHQ_TIMESTAMP,V_XLXSCLQDWLHQ_JGCZBID,V_XLXSCLQDWLHQ_JGCZBBBID,V_XLXSCLQDWLHQ_JGCZBXH,V_XLXSCLQDWLHQ_DRHH,V_XLXSCLQDWLHQ_HSBZ) + select :pID,:pTime,XLXSCLQD_JGCZBID, XLXSCLQD_JGCZBBBID,XLXSCLQD_JGCZBXH,XLXSCLQD_DRHH,:pHSBZ from XLXSCLQD + where XLXSCLQD_JGCZBID=:pJGCZBID and XLXSCLQD_JGCZBBBID=:pJGCZBBBID and XLXSCLQD_WPID='ZZZZ' + "); + if (!sBJDID.Trim().Equals(""))//这段是否有必要限制到具体要重算的产品,还是整个尺重表一起算,需要看项目执行效果再定 + { + SQL.Add(" and exists ("); + SQL.Add("select 1 "); + SQL.Add(" from XLXSBJDMX"); + SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID"); + if (!sBJDXHList.Trim().Equals("")) + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + SQL.Add(" and XLXSBJDMX_XH >= :piMinXH"); + SQL.Add(" and XLXSBJDMX_XLXHID=XLXSCLQD_XLXHID and XLXSBJDMX_XLGGID=XLXSCLQD_XLGGID"); + SQL.Add(" and XLXSBJDMX_XLBZID=XLXSCLQD_XLBZID and XLXSBJDMX_DYDJID=XLXSCLQD_DYDJID"); + SQL.Add(" ) "); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("piMinXH").Value = iMinXH; + } + SQL.ParamByName("pID").Value = VnewID; + SQL.ParamByName("pTime").Value = TimeStamp; + SQL.ParamByName("pHSBZ").Value = "Y"; + SQL.ParamByName("pJGCZBID").Value = tmpJGCZBID; + SQL.ParamByName("pJGCZBBBID").Value = tmpJGCZBBBID; + dberp.ExecSQL(SQL); + + + + + string sSQL_1 = " merge into V_XLXSCLQDWLHQ a " + + " using (" + + " select XLXSCLQD_JGCZBID,XLXSCLQD_JGCZBBBID,XLXSCLQD_JGCZBXH,XLXSCLQD_DRHH, "; + string sSQL_2 = string.Empty; + + string sSQL_3 = " ' ' as MJBZ " + + " from XLXSCLQD " + + " left join XLXSCLQDWL on XLXSCLQDWL_JGCZBID=XLXSCLQD_JGCZBID and XLXSCLQDWL_JGCZBBBID=XLXSCLQD_JGCZBBBID and XLXSCLQDWL_JGCZBXH=XLXSCLQD_JGCZBXH and XLXSCLQDWL_DRHH=XLXSCLQD_DRHH "; + + string sSQL_4 = string.Empty; + string sSQL_5 = " where XLXSCLQD_JGCZBID=:pJGCZBID and XLXSCLQD_JGCZBBBID=:pJGCZBBBID and XLXSCLQD_WPID='ZZZZ' " + + " ) b " + + " on( " + + " V_XLXSCLQDWLHQ_ID=:pID and XLXSCLQD_JGCZBID=V_XLXSCLQDWLHQ_JGCZBID and XLXSCLQD_JGCZBBBID=V_XLXSCLQDWLHQ_JGCZBBBID and XLXSCLQD_JGCZBXH=V_XLXSCLQDWLHQ_JGCZBXH and XLXSCLQD_DRHH=V_XLXSCLQDWLHQ_DRHH and V_XLXSCLQDWLHQ_HSBZ=:pHSBZ " + + " ) " + + " when matched then update set V_XLXSCLQDWLHQ_HSBZ='Y' "; + string sSQL_6 = string.Empty; + for (int i = 0; i < sWLHQCLQDList.Length; i++) + { + + if (sBJDHQLX.Equals("BJDHQ"))//报价单行情 + { + sSQL_2 += string.Format("case when isnull(d{0}.XLXSBJDWLHQ_WLID,' ')<>' ' then isnull(d{0}.WSJG,0) else isnull(c{0}.WSJG,0) end as WSJG{0}, ", sWLHQCLQDList[i]); + sSQL_2 += string.Format("case when isnull(d{0}.XLXSBJDWLHQ_WLID,' ')<>' ' then isnull(d{0}.HSJG,0) else isnull(c{0}.HSJG,0) end as HSJG{0}, ", sWLHQCLQDList[i]); + } + else + { + sSQL_2 += string.Format(" isnull(c{0}.XLXSWLHQ_WSJG,0) as WSJG{0},isnull(c{0}.XLXSWLHQ_HSJG,0) as HSJG{0},", sWLHQCLQDList[i]); + } + + + if (sBJDHQLX.Equals("BJDHQ"))//报价单行情 + { + //关联XLXSBJDWLHQ,获取报价单物料行情 + sSQL_4 += " left join "; + sSQL_4 += " ("; + sSQL_4 += " select XLXSBJDWLHQ_WLID,"; + sSQL_4 += string.Format("case when isnull(XLXSBJDWLHQ_JGYBJCLID1,' ')<>' ' and XLXSBJDWLHQ_JGYBJCLID1='{0}' then {1}*XLXSBJDWLHQ_JGBL1+XLXSBJDWLHQ_WSJGF", sTBJCLID, dTJ); + sSQL_4 += string.Format(" when isnull(XLXSBJDWLHQ_JGYBJCLID1,' ')<>' ' and XLXSBJDWLHQ_JGYBJCLID1='{0}' then {1}*XLXSBJDWLHQ_JGBL1+XLXSBJDWLHQ_WSJGF", sLBJCLID, dLJ); + sSQL_4 += " else XLXSBJDWLHQ_WSJG end as WSJG, "; + sSQL_4 += string.Format("case when isnull(XLXSBJDWLHQ_JGYBJCLID1,' ')<>' ' and XLXSBJDWLHQ_JGYBJCLID1='{0}' then {1}*XLXSBJDWLHQ_JGBL1+XLXSBJDWLHQ_HSJGF", sTBJCLID, dTJ); + sSQL_4 += string.Format(" when isnull(XLXSBJDWLHQ_JGYBJCLID1,' ')<>' ' and XLXSBJDWLHQ_JGYBJCLID1='{0}' then {1}*XLXSBJDWLHQ_JGBL1+XLXSBJDWLHQ_HSJGF", sLBJCLID, dLJ); + sSQL_4 += " else XLXSBJDWLHQ_HSJG end as HSJG "; + sSQL_4 += " from XLXSBJDWLHQ"; + sSQL_4 += " left join XLXSBJCLWL on XLXSBJCLWL_WLID=XLXSBJDWLHQ_WLID"; + sSQL_4 += " left join XLXSBJCL on XLXSBJCL_BJCLID=XLXSBJCLWL_BJCLID"; + sSQL_4 += string.Format(" where XLXSBJDWLHQ_BJDID='{0}'", sBJDID); + sSQL_4 += string.Format(") d{0} on d{0}.XLXSBJDWLHQ_WLID=XLXSCLQDWL_WLID{0} ", sWLHQCLQDList[i]); + //关联XLXSWLHQ,获取物料行情 + sSQL_4 += " left join"; + sSQL_4 += " ("; + sSQL_4 += " select XLXSWLHQ_WLID,"; + sSQL_4 += string.Format("case when isnull(XLXSWLHQ_JGYBJCLID1,' ')<>' ' and XLXSWLHQ_JGYBJCLID1='{0}' then {1}*XLXSWLHQ_JGBL1+XLXSWLHQ_WSJGF", sTBJCLID, dTJ); + sSQL_4 += string.Format(" when isnull(XLXSWLHQ_JGYBJCLID1,' ')<>' ' and XLXSWLHQ_JGYBJCLID1='{0}' then {1}*XLXSWLHQ_JGBL1+XLXSWLHQ_WSJGF", sLBJCLID, dLJ); + sSQL_4 += " else XLXSWLHQ_WSJG end as WSJG, "; + sSQL_4 += string.Format("case when isnull(XLXSWLHQ_JGYBJCLID1,' ')<>' ' and XLXSWLHQ_JGYBJCLID1='{0}' then {1}*XLXSWLHQ_JGBL1+XLXSWLHQ_HSJGF", sTBJCLID, dTJ); + sSQL_4 += string.Format(" when isnull(XLXSWLHQ_JGYBJCLID1,' ')<>' ' and XLXSWLHQ_JGYBJCLID1='{0}' then {1}*XLXSWLHQ_JGBL1+XLXSWLHQ_HSJGF", sLBJCLID, dLJ); + sSQL_4 += " else XLXSWLHQ_HSJG end as HSJG "; + sSQL_4 += " from XLXSWLHQ,"; + sSQL_4 += " ("; + sSQL_4 += " select XLXSWLHQ_WLID as WLID,max(XLXSWLHQ_YXQS)as maxYXQS"; + sSQL_4 += " from XLXSWLHQ"; + sSQL_4 += " where XLXSWLHQ_JGBID=' '"; + sSQL_4 += " and XLXSWLHQ_YXQS<=:pRQ and (XLXSWLHQ_YXQZ>=:pRQ or XLXSWLHQ_YXQZ is null)"; + sSQL_4 += " group by XLXSWLHQ_WLID"; + sSQL_4 += string.Format(") a{0} ", sWLHQCLQDList[i]); + sSQL_4 += " left join XLXSBJCLWL on XLXSBJCLWL_WLID=WLID";//20.09.22新增 + sSQL_4 += " left join XLXSBJCL on XLXSBJCL_BJCLID=XLXSBJCLWL_BJCLID";//20.09.22新增 + sSQL_4 += " where XLXSWLHQ_JGBID=' ' and XLXSWLHQ_WLID=WLID and XLXSWLHQ_YXQS=maxYXQS"; + sSQL_4 += string.Format(") c{0} on c{0}.XLXSWLHQ_WLID=XLXSCLQDWL_WLID{0} ", sWLHQCLQDList[i]); + + //SQL.ParamByName("pRQ").Value = DateTime.Now.ToShortDateString(); + } + else + { + + + sSQL_4 += " left join"; + sSQL_4 += " ("; + sSQL_4 += " select XLXSWLHQ_WLID,"; + //无税价格 + if (dicJGYLWSJG.Count > 0) + { + sSQL_4 += " case "; + foreach (string BJCLID in dicJGYLWSJG.Keys) + { + sSQL_4 += string.Format(" when isnull(XLXSWLHQ_JGYBJCLID1,' ')<>' ' and XLXSWLHQ_JGYBJCLID1='{0}' then {1}*XLXSWLHQ_JGBL1+XLXSWLHQ_WSJGF", BJCLID, dicJGYLWSJG[BJCLID]); + } + sSQL_4 += " else XLXSWLHQ_WSJG end as XLXSWLHQ_WSJG, "; + } + else + { + sSQL_4 += " XLXSWLHQ_WSJG, "; + } + //含税价格 + if (dicJGYLHSJG.Count > 0) + { + sSQL_4 += " case "; + foreach (string BJCLID in dicJGYLHSJG.Keys) + { + sSQL_4 += string.Format(" when isnull(XLXSWLHQ_JGYBJCLID1,' ')<>' ' and XLXSWLHQ_JGYBJCLID1='{0}' then {1}*XLXSWLHQ_JGBL1+XLXSWLHQ_HSJGF", BJCLID, dicJGYLHSJG[BJCLID]); + } + sSQL_4 += " else XLXSWLHQ_HSJG end as XLXSWLHQ_HSJG "; + } + else + { + sSQL_4 += " XLXSWLHQ_HSJG "; + } + sSQL_4 += " from XLXSWLHQ"; + sSQL_4 += " left join XLXSBJCLWL on XLXSBJCLWL_WLID=XLXSWLHQ_WLID"; + sSQL_4 += " left join XLXSBJCL on XLXSBJCL_BJCLID=XLXSBJCLWL_BJCLID"; + sSQL_4 += " where 1=1"; + if (XLJGB_CLJGTZList.NeedJGBJJFP()) + { + sSQL_4 += " and XLXSWLHQ_JGBID=:pJGBID_JJFP"; + //SQL.ParamByName("pJGBID_JJFP").Value = sJGBID; + } + else + { + //同一个物料,在同一天当中只会存在一个价格,可以不用先查出maxYXQS + sSQL_4 += " and XLXSWLHQ_JGBID=' '"; + sSQL_4 += " and XLXSWLHQ_YXQS<=:pRQ and (XLXSWLHQ_YXQZ>=:pRQ or XLXSWLHQ_YXQZ is null)"; + + //SQL.ParamByName("pRQ").Value = DateTime.Now.ToShortDateString(); + } + sSQL_4 += string.Format(") c{0} on c{0}.XLXSWLHQ_WLID=XLXSCLQDWL_WLID{0} ", sWLHQCLQDList[i]); + } + + sSQL_6 += string.Format(" ,V_XLXSCLQDWLHQ_JG{0} = HSJG{0} ", sWLHQCLQDList[i]); + + if ((i + 1) % 20 == 0 || i == sWLHQCLQDList.Length - 1) + { + SQL.Clear(); + SQL.Add(sSQL_1); + SQL.Add(sSQL_2); + SQL.Add(sSQL_3); + SQL.Add(sSQL_4); + SQL.Add(sSQL_5); + SQL.Add(sSQL_6); + if (sBJDHQLX.Equals("BJDHQ"))//报价单行情 + { + SQL.ParamByName("pRQ").Value = DateTime.Now.ToShortDateString(); + } + else + { + if (XLJGB_CLJGTZList.NeedJGBJJFP()) + { + SQL.ParamByName("pJGBID_JJFP").Value = sJGBID; + } + else + { + SQL.ParamByName("pRQ").Value = DateTime.Now.ToShortDateString(); + } + } + SQL.ParamByName("pID").Value = VnewID; + SQL.ParamByName("pHSBZ").Value = "Y"; + SQL.ParamByName("pJGCZBID").Value = tmpJGCZBID; + SQL.ParamByName("pJGCZBBBID").Value = tmpJGCZBBBID; + dberp.ExecSQL(SQL); + sSQL_2 = string.Empty; + sSQL_4 = string.Empty; + sSQL_6 = string.Empty; + + } + + } + + + + + sSQL_1 = " merge into V_XLXSCLQDWLHQ a " + + " using (" + + " select XLXSCLQD_JGCZBID,XLXSCLQD_JGCZBBBID,XLXSCLQD_JGCZBXH,XLXSCLQD_DRHH, "; + sSQL_2 = string.Empty; + + sSQL_3 = " ' ' as MJBZ " + + " from XLXSCLQD " + + " left join XLXSCLQDWL on XLXSCLQDWL_JGCZBID=XLXSCLQD_JGCZBID and XLXSCLQDWL_JGCZBBBID=XLXSCLQD_JGCZBBBID and XLXSCLQDWL_JGCZBXH=XLXSCLQD_JGCZBXH and XLXSCLQDWL_DRHH=XLXSCLQD_DRHH "; + + sSQL_4 = string.Empty; + sSQL_5 = " where XLXSCLQD_JGCZBID=:pJGCZBID and XLXSCLQD_JGCZBBBID=:pJGCZBBBID and XLXSCLQD_WPID='ZZZZ' " + + " ) b " + + " on( " + + " V_XLXSCLQDWLHQ_ID=:pID and XLXSCLQD_JGCZBID=V_XLXSCLQDWLHQ_JGCZBID and XLXSCLQD_JGCZBBBID=V_XLXSCLQDWLHQ_JGCZBBBID and XLXSCLQD_JGCZBXH=V_XLXSCLQDWLHQ_JGCZBXH and XLXSCLQD_DRHH=V_XLXSCLQDWLHQ_DRHH and V_XLXSCLQDWLHQ_HSBZ=:pHSBZ " + + " ) " + + " when matched then update set V_XLXSCLQDWLHQ_HSBZ='N' "; + sSQL_6 = string.Empty; + for (int i = 0; i < sWLHQCLQDList.Length; i++) + { + + if (sBJDHQLX.Equals("BJDHQ"))//报价单行情 + { + sSQL_2 += string.Format("case when isnull(d{0}.XLXSBJDWLHQ_WLID,' ')<>' ' then isnull(d{0}.WSJG,0) else isnull(c{0}.WSJG,0) end as WSJG{0}, ", sWLHQCLQDList[i]); + sSQL_2 += string.Format("case when isnull(d{0}.XLXSBJDWLHQ_WLID,' ')<>' ' then isnull(d{0}.HSJG,0) else isnull(c{0}.HSJG,0) end as HSJG{0}, ", sWLHQCLQDList[i]); + } + else + { + sSQL_2 += string.Format(" isnull(c{0}.XLXSWLHQ_WSJG,0) as WSJG{0},isnull(c{0}.XLXSWLHQ_HSJG,0) as HSJG{0},", sWLHQCLQDList[i]); + } + + + if (sBJDHQLX.Equals("BJDHQ"))//报价单行情 + { + //关联XLXSBJDWLHQ,获取报价单物料行情 + sSQL_4 += " left join "; + sSQL_4 += " ("; + sSQL_4 += " select XLXSBJDWLHQ_WLID,"; + sSQL_4 += string.Format("case when isnull(XLXSBJDWLHQ_JGYBJCLID1,' ')<>' ' and XLXSBJDWLHQ_JGYBJCLID1='{0}' then {1}*XLXSBJDWLHQ_JGBL1+XLXSBJDWLHQ_WSJGF", sTBJCLID, dTJ); + sSQL_4 += string.Format(" when isnull(XLXSBJDWLHQ_JGYBJCLID1,' ')<>' ' and XLXSBJDWLHQ_JGYBJCLID1='{0}' then {1}*XLXSBJDWLHQ_JGBL1+XLXSBJDWLHQ_WSJGF", sLBJCLID, dLJ); + sSQL_4 += " else XLXSBJDWLHQ_WSJG end as WSJG, "; + sSQL_4 += string.Format("case when isnull(XLXSBJDWLHQ_JGYBJCLID1,' ')<>' ' and XLXSBJDWLHQ_JGYBJCLID1='{0}' then {1}*XLXSBJDWLHQ_JGBL1+XLXSBJDWLHQ_HSJGF", sTBJCLID, dTJ); + sSQL_4 += string.Format(" when isnull(XLXSBJDWLHQ_JGYBJCLID1,' ')<>' ' and XLXSBJDWLHQ_JGYBJCLID1='{0}' then {1}*XLXSBJDWLHQ_JGBL1+XLXSBJDWLHQ_HSJGF", sLBJCLID, dLJ); + sSQL_4 += " else XLXSBJDWLHQ_HSJG end as HSJG "; + sSQL_4 += " from XLXSBJDWLHQ"; + sSQL_4 += " left join XLXSBJCLWL on XLXSBJCLWL_WLID=XLXSBJDWLHQ_WLID"; + sSQL_4 += " left join XLXSBJCL on XLXSBJCL_BJCLID=XLXSBJCLWL_BJCLID"; + sSQL_4 += string.Format(" where XLXSBJDWLHQ_BJDID='{0}'", sBJDID); + sSQL_4 += string.Format(") d{0} on d{0}.XLXSBJDWLHQ_WLID=XLXSCLQDWL_WLID{0} ", sWLHQCLQDList[i]); + //关联XLXSWLHQ,获取物料行情 + sSQL_4 += " left join"; + sSQL_4 += " ("; + sSQL_4 += " select XLXSWLHQ_WLID,"; + sSQL_4 += string.Format("case when isnull(XLXSWLHQ_JGYBJCLID1,' ')<>' ' and XLXSWLHQ_JGYBJCLID1='{0}' then {1}*XLXSWLHQ_JGBL1+XLXSWLHQ_WSJGF", sTBJCLID, dTJ); + sSQL_4 += string.Format(" when isnull(XLXSWLHQ_JGYBJCLID1,' ')<>' ' and XLXSWLHQ_JGYBJCLID1='{0}' then {1}*XLXSWLHQ_JGBL1+XLXSWLHQ_WSJGF", sLBJCLID, dLJ); + sSQL_4 += " else XLXSWLHQ_WSJG end as WSJG, "; + sSQL_4 += string.Format("case when isnull(XLXSWLHQ_JGYBJCLID1,' ')<>' ' and XLXSWLHQ_JGYBJCLID1='{0}' then {1}*XLXSWLHQ_JGBL1+XLXSWLHQ_HSJGF", sTBJCLID, dTJ); + sSQL_4 += string.Format(" when isnull(XLXSWLHQ_JGYBJCLID1,' ')<>' ' and XLXSWLHQ_JGYBJCLID1='{0}' then {1}*XLXSWLHQ_JGBL1+XLXSWLHQ_HSJGF", sLBJCLID, dLJ); + sSQL_4 += " else XLXSWLHQ_HSJG end as HSJG "; + sSQL_4 += " from XLXSWLHQ,"; + sSQL_4 += " ("; + sSQL_4 += " select XLXSWLHQ_WLID as WLID,max(XLXSWLHQ_YXQS)as maxYXQS"; + sSQL_4 += " from XLXSWLHQ"; + sSQL_4 += " where XLXSWLHQ_JGBID=' '"; + sSQL_4 += " and XLXSWLHQ_YXQS<=:pRQ and (XLXSWLHQ_YXQZ>=:pRQ or XLXSWLHQ_YXQZ is null)"; + sSQL_4 += " group by XLXSWLHQ_WLID"; + sSQL_4 += string.Format(") a{0} ", sWLHQCLQDList[i]); + sSQL_4 += " left join XLXSBJCLWL on XLXSBJCLWL_WLID=WLID";//20.09.22新增 + sSQL_4 += " left join XLXSBJCL on XLXSBJCL_BJCLID=XLXSBJCLWL_BJCLID";//20.09.22新增 + sSQL_4 += " where XLXSWLHQ_JGBID=' ' and XLXSWLHQ_WLID=WLID and XLXSWLHQ_YXQS=maxYXQS"; + sSQL_4 += string.Format(") c{0} on c{0}.XLXSWLHQ_WLID=XLXSCLQDWL_WLID{0} ", sWLHQCLQDList[i]); + + //SQL.ParamByName("pRQ").Value = DateTime.Now.ToShortDateString(); + } + else + { + + + sSQL_4 += " left join"; + sSQL_4 += " ("; + sSQL_4 += " select XLXSWLHQ_WLID,"; + //无税价格 + if (dicJGYLWSJG.Count > 0) + { + sSQL_4 += " case "; + foreach (string BJCLID in dicJGYLWSJG.Keys) + { + sSQL_4 += string.Format(" when isnull(XLXSWLHQ_JGYBJCLID1,' ')<>' ' and XLXSWLHQ_JGYBJCLID1='{0}' then {1}*XLXSWLHQ_JGBL1+XLXSWLHQ_WSJGF", BJCLID, dicJGYLWSJG[BJCLID]); + } + sSQL_4 += " else XLXSWLHQ_WSJG end as XLXSWLHQ_WSJG, "; + } + else + { + sSQL_4 += " XLXSWLHQ_WSJG, "; + } + //含税价格 + if (dicJGYLHSJG.Count > 0) + { + sSQL_4 += " case "; + foreach (string BJCLID in dicJGYLHSJG.Keys) + { + sSQL_4 += string.Format(" when isnull(XLXSWLHQ_JGYBJCLID1,' ')<>' ' and XLXSWLHQ_JGYBJCLID1='{0}' then {1}*XLXSWLHQ_JGBL1+XLXSWLHQ_HSJGF", BJCLID, dicJGYLHSJG[BJCLID]); + } + sSQL_4 += " else XLXSWLHQ_HSJG end as XLXSWLHQ_HSJG "; + } + else + { + sSQL_4 += " XLXSWLHQ_HSJG "; + } + sSQL_4 += " from XLXSWLHQ"; + sSQL_4 += " left join XLXSBJCLWL on XLXSBJCLWL_WLID=XLXSWLHQ_WLID"; + sSQL_4 += " left join XLXSBJCL on XLXSBJCL_BJCLID=XLXSBJCLWL_BJCLID"; + sSQL_4 += " where 1=1"; + if (XLJGB_CLJGTZList.NeedJGBJJFP()) + { + sSQL_4 += " and XLXSWLHQ_JGBID=:pJGBID_JJFP"; + //SQL.ParamByName("pJGBID_JJFP").Value = sJGBID; + } + else + { + //同一个物料,在同一天当中只会存在一个价格,可以不用先查出maxYXQS + sSQL_4 += " and XLXSWLHQ_JGBID=' '"; + sSQL_4 += " and XLXSWLHQ_YXQS<=:pRQ and (XLXSWLHQ_YXQZ>=:pRQ or XLXSWLHQ_YXQZ is null)"; + + //SQL.ParamByName("pRQ").Value = DateTime.Now.ToShortDateString(); + } + sSQL_4 += string.Format(") c{0} on c{0}.XLXSWLHQ_WLID=XLXSCLQDWL_WLID{0} ", sWLHQCLQDList[i]); + } + + sSQL_6 += string.Format(" ,V_XLXSCLQDWLHQ_JG{0} = WSJG{0} ", sWLHQCLQDList[i]); + + if ((i + 1) % 20 == 0 || i == sWLHQCLQDList.Length - 1) + { + SQL.Clear(); + SQL.Add(sSQL_1); + SQL.Add(sSQL_2); + SQL.Add(sSQL_3); + SQL.Add(sSQL_4); + SQL.Add(sSQL_5); + SQL.Add(sSQL_6); + if (sBJDHQLX.Equals("BJDHQ"))//报价单行情 + { + SQL.ParamByName("pRQ").Value = DateTime.Now.ToShortDateString(); + } + else + { + if (XLJGB_CLJGTZList.NeedJGBJJFP()) + { + SQL.ParamByName("pJGBID_JJFP").Value = sJGBID; + } + else + { + SQL.ParamByName("pRQ").Value = DateTime.Now.ToShortDateString(); + } + } + SQL.ParamByName("pID").Value = VnewID; + SQL.ParamByName("pHSBZ").Value = "N"; + SQL.ParamByName("pJGCZBID").Value = tmpJGCZBID; + SQL.ParamByName("pJGCZBBBID").Value = tmpJGCZBBBID; + dberp.ExecSQL(SQL); + sSQL_2 = string.Empty; + sSQL_4 = string.Empty; + sSQL_6 = string.Empty; + + } + + } + + + /* + merge into 目标表 a + using 源表 b + on(a.条件字段1=b.条件字段1 and a.条件字段2=b.条件字段2 ……) + when matched then update set a.更新字段=b.字段 + when not matched then insert into a(字段1,字段2……)values(值1,值2……) + */ + SQL.Clear(); + SQL.Add(" merge into XLXSCLQD a "); + SQL.Add(" using "); + SQL.Add(" (");//获取结构尺重表每个单元格所指报价物料的无税价格、含税价格 + SQL.Add(" select V_XLXSCLQDWLHQ_ID,V_XLXSCLQDWLHQ_JGCZBID,V_XLXSCLQDWLHQ_JGCZBBBID,V_XLXSCLQDWLHQ_DRHH, "); + for (int i = 0; i < dsCLQDL.Tables[0].Rows.Count; i++) + { + sCLQDL = dsCLQDL.Tables[0].Rows[i]["XLJGCZBLM_CLQDL"].ToString().Trim(); + sBJHQ = dsCLQDL.Tables[0].Rows[i]["XLXSBJCL_BJHQ"].ToString().Trim(); + sBJRCLCB = dsCLQDL.Tables[0].Rows[i]["XLJGCZBLM_BJRCLCB"].ToString().Trim(); + if (sBJHQ.Equals("2") && !sBJRCLCB.Equals("Y"))//2|物料行情 + { + SQL.Add(string.Format(" V_XLXSCLQDWLHQ_JG{0} as WSJG{0}, ", sCLQDL.Replace("第", "").Replace("列", ""))); + } + } + SQL.Add(" V_XLXSCLQDWLHQ_JGCZBXH "); + SQL.Add(" from V_XLXSCLQDWLHQ");//这里不直接查XLXSCLQDWL的原因是XLXSCLQDWL可能还没有记录 + SQL.Add(" where V_XLXSCLQDWLHQ_JGCZBID=:pJGCZBID and V_XLXSCLQDWLHQ_JGCZBBBID=:pJGCZBBBID and V_XLXSCLQDWLHQ_HSBZ<>'Y' and V_XLXSCLQDWLHQ_ID=:pID "); + SQL.Add(" ) b "); + SQL.Add(" on( "); + SQL.Add(" a.XLXSCLQD_JGCZBID=:pJGCZBID and a.XLXSCLQD_JGCZBBBID=:pJGCZBBBID"); + SQL.Add(" and a.XLXSCLQD_JGCZBID=V_XLXSCLQDWLHQ_JGCZBID and a.XLXSCLQD_JGCZBBBID=V_XLXSCLQDWLHQ_JGCZBBBID "); + SQL.Add(" and a.XLXSCLQD_DRHH=V_XLXSCLQDWLHQ_DRHH and a.XLXSCLQD_JGCZBXH=V_XLXSCLQDWLHQ_JGCZBXH "); + if (!sBJDID.Trim().Equals(""))//这段是否有必要限制到具体要重算的产品,还是整个尺重表一起算,需要看项目执行效果再定 + { + SQL.Add(" and exists ("); + SQL.Add("select 1 "); + SQL.Add(" from XLXSBJDMX"); + SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID"); + if (!sBJDXHList.Trim().Equals("")) + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + SQL.Add(" and XLXSBJDMX_XH >= :piMinXH"); + SQL.Add(" and XLXSBJDMX_XLXHID=a.XLXSCLQD_XLXHID and XLXSBJDMX_XLGGID=a.XLXSCLQD_XLGGID"); + SQL.Add(" and XLXSBJDMX_XLBZID=a.XLXSCLQD_XLBZID and XLXSBJDMX_DYDJID=a.XLXSCLQD_DYDJID"); + SQL.Add(" ) "); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("piMinXH").Value = iMinXH; + } + SQL.Add(" ) "); + SQL.Add(" when matched then update set a.XLXSCLQD_JGBWSCB= "); + //用量部分以abs计算,始终为正数,在case语句先判断材料部分是否是正数 + //case 语句用于挑拣出用量大于0价格等于0的那一列,返回-1 + SQL.Add(" (case when XLXSCLQD_JGBWSCB < 0 then (-1) "); + for (int i = 0; i < dsCLQDL.Tables[0].Rows.Count; i++) + { + sCLQDL = dsCLQDL.Tables[0].Rows[i]["XLJGCZBLM_CLQDL"].ToString().Trim(); + sBJHQ = dsCLQDL.Tables[0].Rows[i]["XLXSBJCL_BJHQ"].ToString().Trim(); + sBJRCLCB = dsCLQDL.Tables[0].Rows[i]["XLJGCZBLM_BJRCLCB"].ToString().Trim(); + if (sBJHQ.Equals("2") && !sBJRCLCB.Equals("Y"))//2|物料行情 + { + SQL.Add(string.Format(" when (XLXSCLQD_SL{0} > 0 and isnull(WSJG{0},0) = 0) then (-1) ", sCLQDL.Replace("第", "").Replace("列", ""))); + } + } + SQL.Add(" else 1 end)* "); + SQL.Add(" (abs(XLXSCLQD_JGBWSCB)-1.0+ ");//这里需要把上边材料行情部分算XLXSCLQD_JGBHSCB时加的1.0减掉 + if (sJSBLFS.Equals("C1"))//C1|进一法(材料价各分项进一) + { + for (int i = 0; i < dsCLQDL.Tables[0].Rows.Count; i++) + { + sCLQDL = dsCLQDL.Tables[0].Rows[i]["XLJGCZBLM_CLQDL"].ToString().Trim(); + sBJHQ = dsCLQDL.Tables[0].Rows[i]["XLXSBJCL_BJHQ"].ToString().Trim(); + sBJRCLCB = dsCLQDL.Tables[0].Rows[i]["XLJGCZBLM_BJRCLCB"].ToString().Trim(); + if (sBJHQ.Equals("2") && !sBJRCLCB.Equals("Y"))//2|物料行情 + { + SQL.Add(string.Format("CEILING(RoundFix(XLXSCLQD_SL{0}*(1+XLXSCLQD_SHL{0}/100)*XLXSCLQD_CLJGBL{0}*isnull(WSJG{0},0)*{1},8))/{1}+", sCLQDL.Replace("第", "").Replace("列", ""), Math.Pow(10.0, iXSWS))); + } + } + } + else + { + for (int i = 0; i < dsCLQDL.Tables[0].Rows.Count; i++) + { + sCLQDL = dsCLQDL.Tables[0].Rows[i]["XLJGCZBLM_CLQDL"].ToString().Trim(); + sBJHQ = dsCLQDL.Tables[0].Rows[i]["XLXSBJCL_BJHQ"].ToString().Trim(); + sBJRCLCB = dsCLQDL.Tables[0].Rows[i]["XLJGCZBLM_BJRCLCB"].ToString().Trim(); + if (sBJHQ.Equals("2") && !sBJRCLCB.Equals("Y"))//2|物料行情 + { + SQL.Add(string.Format("XLXSCLQD_SL{0}*(1+XLXSCLQD_SHL{0}/100)*XLXSCLQD_CLJGBL{0}*isnull(WSJG{0},0)+", sCLQDL.Replace("第", "").Replace("列", ""))); + } + } + } + SQL.Add("0) "); + SQL.ParamByName("pID").Value = VnewID; + SQL.ParamByName("pJGCZBID").Value = tmpJGCZBID; + SQL.ParamByName("pJGCZBBBID").Value = tmpJGCZBBBID; + dberp.ExecSQL(SQL); + + SQL.Clear(); + SQL.Add(" merge into XLXSCLQD a "); + SQL.Add(" using "); + SQL.Add(" (");//获取结构尺重表每个单元格所指报价物料的无税价格、含税价格 + SQL.Add(" select V_XLXSCLQDWLHQ_ID,V_XLXSCLQDWLHQ_JGCZBID,V_XLXSCLQDWLHQ_JGCZBBBID,V_XLXSCLQDWLHQ_DRHH, "); + for (int i = 0; i < dsCLQDL.Tables[0].Rows.Count; i++) + { + sCLQDL = dsCLQDL.Tables[0].Rows[i]["XLJGCZBLM_CLQDL"].ToString().Trim(); + sBJHQ = dsCLQDL.Tables[0].Rows[i]["XLXSBJCL_BJHQ"].ToString().Trim(); + sBJRCLCB = dsCLQDL.Tables[0].Rows[i]["XLJGCZBLM_BJRCLCB"].ToString().Trim(); + if (sBJHQ.Equals("2") && !sBJRCLCB.Equals("Y"))//2|物料行情 + { + SQL.Add(string.Format(" V_XLXSCLQDWLHQ_JG{0} as HSJG{0}, ", sCLQDL.Replace("第", "").Replace("列", ""))); + } + } + SQL.Add(" V_XLXSCLQDWLHQ_JGCZBXH "); + SQL.Add(" from V_XLXSCLQDWLHQ");//这里不直接查XLXSCLQDWL的原因是XLXSCLQDWL可能还没有记录 + SQL.Add(" where V_XLXSCLQDWLHQ_JGCZBID=:pJGCZBID and V_XLXSCLQDWLHQ_JGCZBBBID=:pJGCZBBBID and V_XLXSCLQDWLHQ_HSBZ='Y' and V_XLXSCLQDWLHQ_ID=:pID "); + SQL.Add(" ) b "); + SQL.Add(" on( "); + SQL.Add(" a.XLXSCLQD_JGCZBID=:pJGCZBID and a.XLXSCLQD_JGCZBBBID=:pJGCZBBBID "); + SQL.Add(" and a.XLXSCLQD_JGCZBID=V_XLXSCLQDWLHQ_JGCZBID and a.XLXSCLQD_JGCZBBBID=V_XLXSCLQDWLHQ_JGCZBBBID "); + SQL.Add(" and a.XLXSCLQD_DRHH=V_XLXSCLQDWLHQ_DRHH and a.XLXSCLQD_JGCZBXH=V_XLXSCLQDWLHQ_JGCZBXH "); + if (!sBJDID.Trim().Equals(""))//这段是否有必要限制到具体要重算的产品,还是整个尺重表一起算,需要看项目执行效果再定 + { + SQL.Add(" and exists ("); + SQL.Add("select 1 "); + SQL.Add(" from XLXSBJDMX"); + SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID"); + if (!sBJDXHList.Trim().Equals("")) + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + SQL.Add(" and XLXSBJDMX_XH >= :piMinXH"); + SQL.Add(" and XLXSBJDMX_XLXHID=a.XLXSCLQD_XLXHID and XLXSBJDMX_XLGGID=a.XLXSCLQD_XLGGID"); + SQL.Add(" and XLXSBJDMX_XLBZID=a.XLXSCLQD_XLBZID and XLXSBJDMX_DYDJID=a.XLXSCLQD_DYDJID"); + SQL.Add(" ) "); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("piMinXH").Value = iMinXH; + } + SQL.Add(" ) "); + SQL.Add(" when matched then update set a.XLXSCLQD_JGBHSCB= "); + SQL.Add(" (case when XLXSCLQD_JGBHSCB < 0 then (-1) "); + for (int i = 0; i < dsCLQDL.Tables[0].Rows.Count; i++) + { + sCLQDL = dsCLQDL.Tables[0].Rows[i]["XLJGCZBLM_CLQDL"].ToString().Trim(); + sBJHQ = dsCLQDL.Tables[0].Rows[i]["XLXSBJCL_BJHQ"].ToString().Trim(); + sBJRCLCB = dsCLQDL.Tables[0].Rows[i]["XLJGCZBLM_BJRCLCB"].ToString().Trim(); + if (sBJHQ.Equals("2") && !sBJRCLCB.Equals("Y"))//2|物料行情 + { + SQL.Add(string.Format(" when (XLXSCLQD_SL{0} > 0 and isnull(HSJG{0},0) = 0) then (-1) ", sCLQDL.Replace("第", "").Replace("列", ""))); + } + } + SQL.Add(" else 1 end)* "); + SQL.Add(" (abs(XLXSCLQD_JGBHSCB)-1.0+ ");//这里需要把上边材料行情部分算XLXSCLQD_JGBHSCB时加的1.0减掉 + if (sJSBLFS.Equals("C1"))//C1|进一法(材料价各分项进一) + { + for (int i = 0; i < dsCLQDL.Tables[0].Rows.Count; i++) + { + sCLQDL = dsCLQDL.Tables[0].Rows[i]["XLJGCZBLM_CLQDL"].ToString().Trim(); + sBJHQ = dsCLQDL.Tables[0].Rows[i]["XLXSBJCL_BJHQ"].ToString().Trim(); + sBJRCLCB = dsCLQDL.Tables[0].Rows[i]["XLJGCZBLM_BJRCLCB"].ToString().Trim(); + if (sBJHQ.Equals("2") && !sBJRCLCB.Equals("Y"))//2|物料行情 + { + SQL.Add(string.Format("CEILING(RoundFix(XLXSCLQD_SL{0}*(1+XLXSCLQD_SHL{0}/100)*XLXSCLQD_CLJGBL{0}*isnull(HSJG{0},0)*{1},8))/{1}+", sCLQDL.Replace("第", "").Replace("列", ""), Math.Pow(10.0, iXSWS))); + } + } + } + else + { + for (int i = 0; i < dsCLQDL.Tables[0].Rows.Count; i++) + { + sCLQDL = dsCLQDL.Tables[0].Rows[i]["XLJGCZBLM_CLQDL"].ToString().Trim(); + sBJHQ = dsCLQDL.Tables[0].Rows[i]["XLXSBJCL_BJHQ"].ToString().Trim(); + sBJRCLCB = dsCLQDL.Tables[0].Rows[i]["XLJGCZBLM_BJRCLCB"].ToString().Trim(); + if (sBJHQ.Equals("2") && !sBJRCLCB.Equals("Y"))//2|物料行情 + { + SQL.Add(string.Format("XLXSCLQD_SL{0}*(1+XLXSCLQD_SHL{0}/100)*XLXSCLQD_CLJGBL{0}*isnull(HSJG{0},0)+", sCLQDL.Replace("第", "").Replace("列", ""))); + } + } + } + SQL.Add("0)"); + SQL.ParamByName("pID").Value = VnewID; + SQL.ParamByName("pJGCZBID").Value = tmpJGCZBID; + SQL.ParamByName("pJGCZBBBID").Value = tmpJGCZBBBID; + dberp.ExecSQL(SQL); + + + + SQL.Clear(); + SQL.Add("delete from V_XLXSCLQDWLHQ where V_XLXSCLQDWLHQ_ID=:pID "); + SQL.ParamByName("pID").Value = VnewID; + dberp.ExecSQL(SQL); + + + } + + } + } + + if (bCPMLXZ) + { + string tmpSQL = ""; + if(!sBJDXHList.Trim().Equals("")) + tmpSQL=" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList); + SQL.Clear(); + SQL.Add(string.Format(@"merge into XLXSCLQD tag + using( + select XLXSCLQD_XLXHID as XLXHID,XLXSCLQD_XLGGID as XLGGID,XLXSCLQD_XLBZID as XLBZID,XLXSCLQD_DYDJID as DYDJID,CPMLID + from( + select XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_XLBZID,XLXSCLQD_DYDJID, + case when isnull(A.XLXSBJXHML_CPMLID,' ')<>' ' then A.XLXSBJXHML_CPMLID + else case when isnull(B.XLXSBJXHML_CPMLID,' ')<>' ' then B.XLXSBJXHML_CPMLID else ' ' end end as CPMLID + from XLXSCLQD + left join XLXSBJXHML A on A.XLXSBJXHML_XLXHID=XLXSCLQD_XLXHID and A.XLXSBJXHML_DYDJID <>' ' and A.XLXSBJXHML_DYDJID=XLXSCLQD_DYDJID + left join XLXSBJXHML B on B.XLXSBJXHML_XLXHID=XLXSCLQD_XLXHID and B.XLXSBJXHML_DYDJID =' ' + where 1=1 + and XLXSCLQD_JGCZBID=:pJGCZBID and XLXSCLQD_JGCZBBBID=:pJGCZBBBID + and exists(select top 1 XLXSBJDMX_BJDID + from XLXSBJDMX + where XLXSBJDMX_BJDID=:pBJDID + and XLXSBJDMX_XH >= :piMinXH {1} + and XLXSBJDMX_XLXHID=XLXSCLQD_XLXHID and XLXSBJDMX_XLGGID=XLXSCLQD_XLGGID + and XLXSBJDMX_XLBZID=XLXSCLQD_XLBZID and XLXSBJDMX_DYDJID=XLXSCLQD_DYDJID) + )a + where CPMLID <>' 'and CPMLID not in {0} + )sor + on (tag.XLXSCLQD_XLXHID=sor.XLXHID and tag.XLXSCLQD_XLGGID=sor.XLGGID and tag.XLXSCLQD_XLBZID=sor.XLBZID and tag.XLXSCLQD_DYDJID=sor.DYDJID + and tag.XLXSCLQD_JGCZBID=:pJGCZBID and tag.XLXSCLQD_JGCZBBBID=:pJGCZBBBID ) + when matched then update set tag.XLXSCLQD_JGBWSCB=0,tag.XLXSCLQD_JGBHSCB=0", sCPMLIDS, tmpSQL)); + SQL.ParamByName("pJGCZBID").Value = tmpJGCZBID; + SQL.ParamByName("pJGCZBBBID").Value = tmpJGCZBBBID; + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("piMinXH").Value = iMinXH; + dberp.ExecSQL(SQL); + } + } + if (sBJDID.Equals("")) + { + string tWHSJCondition = MISproUtils.GetServerTime().ToString();//这里ToString()是为了去除毫秒,因为UpdateJGBTJYS_3方法中根据查出的JJFPSJ限制其他数据时也只到秒 + + //重算价格表基价前清空基价、表价 + SQL.Clear(); + SQL.Add(" update XLXSJGBMX set XLXSJGBMX_WSJJ = 0, XLXSJGBMX_WSBJ = 0, XLXSJGBMX_HSJJ = 0, XLXSJGBMX_HSBJ = 0, "); + SQL.Add(" XLXSJGBMX_HSJJM = 0,XLXSJGBMX_HSBJM = 0,XLXSJGBMX_WSJJM = 0,XLXSJGBMX_WSBJM = 0 ,"); + SQL.Add(" XLXSJGBMX_WHR=:pWHR,XLXSJGBMX_WHRID=:pWHRID,XLXSJGBMX_WHSJ=:pWHSJ "); + SQL.Add(" where XLXSJGBMX_JGBID=:pJGBID "); + SQL.Add(" and XLXSJGBMX_SYXH=0 "); + if (!sJGCZBID.Trim().Equals("") && !sJGCZBBBID.Trim().Equals("")) + { + SQL.Add(" and exists(select 1 from XLXSCLQD where XLXSCLQD_XLXHID=XLXSJGBMX_XLXHID and XLXSCLQD_XLGGID=XLXSJGBMX_XLGGID and XLXSCLQD_XLBZID=XLXSJGBMX_XLBZID"); + SQL.Add(" and XLXSCLQD_DYDJID=XLXSJGBMX_DYDJID and XLXSCLQD_WPID='ZZZZ' and XLXSCLQD_JGCZBID=:pJGCZBID and XLXSCLQD_JGCZBBBID=:pJGCZBBBID)"); + SQL.ParamByName("pJGCZBID").Value = sJGCZBID.Trim(); + SQL.ParamByName("pJGCZBBBID").Value = sJGCZBBBID.Trim(); + } + if (maxXH != 0) + { + SQL.Add(" and XLXSJGBMX_XH > :pmaxXH"); + SQL.ParamByName("pmaxXH").Value = maxXH; + } + SQL.ParamByName("pJGBID").Value = sJGBID; + SQL.ParamByName("pWHR").Value = sWHR; + SQL.ParamByName("pWHRID").Value = sWHRID; + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + dberp.ExecSQL(SQL); + + if (dsJGCZB.Tables[0].Rows.Count > 0) + { + + //WSJJM、WSBJM, + string sHSBLSQL = string.Empty; + sHSBLSQL += " (case when XLXSJGBMX_JLDW in ('M', '米') then 1"; + sHSBLSQL += " when XLXSJGBMX_JLDW in ('Km', '千米') then 0.001 "; + if (sBJU003.ToUpper().Equals("KM") || sBJU003.ToUpper().Equals("千米")) + { + sHSBLSQL += " when XLXSJGBMX_JLDW in ('Kg', '千克', '公斤') then 0.001 "; + sHSBLSQL += " when XLXSJGBMX_JLDW in ('T', '吨') then 0.001"; + } + else if (sBJU003.ToUpper().Equals("米") || sBJU003.ToUpper().Equals("M")) + { + sHSBLSQL += " when XLXSJGBMX_JLDW in ('Kg', '千克', '公斤') then 1"; + sHSBLSQL += " when XLXSJGBMX_JLDW in ('T', '吨') then 1 "; + } + sHSBLSQL += " else 0 "; + sHSBLSQL += " end "; + sHSBLSQL += " ) "; + string sJJHSBLSQL=string.Empty; + sJJHSBLSQL += " (case when XLXSJGBMX_JLDW in ('M', '米') then 1"; + sJJHSBLSQL += " when XLXSJGBMX_JLDW in ('Km', '千米') then 1 "; + if (sBJU003.ToUpper().Equals("KM") || sBJU003.ToUpper().Equals("千米")) + { + sJJHSBLSQL += " when XLXSJGBMX_JLDW in ('Kg', '千克', '公斤') then (case when XLXSCLQD_CLZL = 0 then 1 else 1/XLXSCLQD_CLZL end)"; + sJJHSBLSQL += " when XLXSJGBMX_JLDW in ('T', '吨') then (case when XLXSCLQD_CLZL = 0 then 1 else 1000/XLXSCLQD_CLZL end)"; + } + else if (sBJU003.ToUpper().Equals("米") || sBJU003.ToUpper().Equals("M")) + { + sJJHSBLSQL += " when XLXSJGBMX_JLDW in ('Kg', '千克', '公斤') then (case when XLXSCLQD_CLZL = 0 then 1 else 1/XLXSCLQD_CLZL end)"; + sJJHSBLSQL += " when XLXSJGBMX_JLDW in ('T', '吨') then (case when XLXSCLQD_CLZL = 0 then 1 else 1000/XLXSCLQD_CLZL end)"; + } + sJJHSBLSQL += " else 1 "; + sJJHSBLSQL += " end "; + sJJHSBLSQL += " ) "; + + + /* + merge into 目标表 a + using 源表 b + on(a.条件字段1=b.条件字段1 and a.条件字段2=b.条件字段2 ……) + when matched then update set a.更新字段=b.字段 + when not matched then insert into a(字段1,字段2……)values(值1,值2……) + */ + SQL.Clear(); + SQL.Add(" merge into XLXSJGBMX a "); + SQL.Add(" using XLXSCLQD b "); + SQL.Add(" on ( "); + SQL.Add(" XLXSJGBMX_JGBID=:pJGBID "); + SQL.Add(" and XLXSJGBMX_XLXHID=XLXSCLQD_XLXHID and XLXSJGBMX_XLGGID=XLXSCLQD_XLGGID and XLXSJGBMX_XLBZID=XLXSCLQD_XLBZID and XLXSJGBMX_DYDJID=XLXSCLQD_DYDJID "); + SQL.Add(" and XLXSJGBMX_SYXH=0 "); + if (!sJGCZBID.Trim().Equals("")) + { + SQL.Add(" and XLXSCLQD_JGCZBID=:pJGCZBID"); + SQL.ParamByName("pJGCZBID").Value = sJGCZBID.Trim(); + } + if (!sJGCZBBBID.Trim().Equals("")) + { + SQL.Add(" and XLXSCLQD_JGCZBBBID=:pJGCZBBBID"); + SQL.ParamByName("pJGCZBBBID").Value = sJGCZBBBID.Trim(); + } + if (maxXH != 0) + { + SQL.Add(" and XLXSJGBMX_XH > :pmaxXH"); + SQL.ParamByName("pmaxXH").Value = maxXH; + } + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + if (sJSBLFS.Equals("C1") || sJSBLFS.Equals("C2") || sJSBLFS.Equals("C3"))//C1|进一法(材料价各分项进一)、C2|进一法(材料价汇总进一)、C3|材料价汇总进一+表价进一到十位 + { + SQL.Add(string.Format(" XLXSJGBMX_WSJJ=CEILING(RoundFix(" + sJJHSBLSQL + " *isnull(XLXSCLQD_JGBWSCB,0)*{0},8))/{0},XLXSJGBMX_HSJJ=CEILING(RoundFix(" + sJJHSBLSQL + " *isnull(XLXSCLQD_JGBHSCB,0)*{0},8))/{0},", Math.Pow(10.0, iXSWS))); + if (sJSBLFS.Equals("C3")) + SQL.Add(string.Format(" XLXSJGBMX_WSBJ=CEILING(RoundFix(" + sJJHSBLSQL + " *isnull(XLXSCLQD_JGBWSCB,0),{0})/10)*10,XLXSJGBMX_HSBJ=CEILING(RoundFix(" + sJJHSBLSQL + " *isnull(XLXSCLQD_JGBHSCB,0),{0})/10)*10,", iXSWS.ToString().Trim())); + else + SQL.Add(string.Format(" XLXSJGBMX_WSBJ=CEILING(RoundFix(" + sJJHSBLSQL + " *isnull(XLXSCLQD_JGBWSCB,0)*{0},8))/{0},XLXSJGBMX_HSBJ=CEILING(" + sJJHSBLSQL + " *RoundFix(isnull(XLXSCLQD_JGBHSCB,0)*{0},8))/{0},", Math.Pow(10.0, iXSWS))); + SQL.Add(" XLXSJGBMX_WSJJM = RoundFix(" + sHSBLSQL + " * XLXSCLQD_JGBWSCB ,6),"); + SQL.Add(" XLXSJGBMX_HSJJM = RoundFix(" + sHSBLSQL + " * XLXSCLQD_JGBHSCB ,6),"); + SQL.Add(" XLXSJGBMX_WSBJM = RoundFix(" + sHSBLSQL + " * XLXSCLQD_JGBWSCB ,6),"); + SQL.Add(" XLXSJGBMX_HSBJM = RoundFix(" + sHSBLSQL + " * XLXSCLQD_JGBHSCB ,6),"); + } + else + { + SQL.Add(" XLXSJGBMX_WSJJ=RoundFix(" + sJJHSBLSQL + " *isnull(XLXSCLQD_JGBWSCB,0)," + iXSWS + "),XLXSJGBMX_HSJJ=RoundFix(" + sJJHSBLSQL + " *isnull(XLXSCLQD_JGBHSCB,0)," + iXSWS + "),"); + SQL.Add(" XLXSJGBMX_WSBJ=RoundFix(" + sJJHSBLSQL + " *isnull(XLXSCLQD_JGBWSCB,0)," + iXSWS + "),XLXSJGBMX_HSBJ=RoundFix(" + sJJHSBLSQL + " *isnull(XLXSCLQD_JGBHSCB,0)," + iXSWS + "),"); + SQL.Add(" XLXSJGBMX_WSJJM=RoundFix(" + sHSBLSQL + " * isnull(XLXSCLQD_JGBWSCB,0) ,6),"); + SQL.Add(" XLXSJGBMX_HSJJM=RoundFix(" + sHSBLSQL + " * isnull(XLXSCLQD_JGBHSCB,0) ,6),"); + SQL.Add(" XLXSJGBMX_WSBJM=RoundFix(" + sHSBLSQL + " * isnull(XLXSCLQD_JGBWSCB,0) ,6),"); + SQL.Add(" XLXSJGBMX_HSBJM=RoundFix(" + sHSBLSQL + " * isnull(XLXSCLQD_JGBHSCB,0) ,6),"); + } + SQL.Add(" XLXSJGBMX_WHR=:pWHR, "); + SQL.Add(" XLXSJGBMX_WHRID=:pWHRID, "); + SQL.Add(" XLXSJGBMX_WHSJ=:pWHSJ "); + SQL.ParamByName("pJGBID").Value = sJGBID; + SQL.ParamByName("pWHR").Value = sWHR; + SQL.ParamByName("pWHRID").Value = sWHRID; + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + dberp.ExecSQL(SQL); + } + + if (XLJGB_CLJGTZList.NeedJGBJJFP()) + { + + //把这一波更新的价格表明细对应的复盘数据删除 + SQL.Clear(); + SQL.Add("delete from XLXSJGBCLQD where XLXSJGBCLQD_JGBID=:pJGBID and exists(select 1 from XLXSJGBMX where XLXSJGBMX_JGBID=XLXSJGBCLQD_JGBID and XLXSJGBMX_XH=XLXSJGBCLQD_XH and XLXSJGBMX_WHSJ=:pWHSJ) "); + SQL.ParamByName("pJGBID").Value = sJGBID; + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + dberp.ExecSQL(SQL); + + SQL.Clear(); + SQL.Add("delete from XLXSJGBYLLM where XLXSJGBYLLM_JGBID=:pJGBID and not exists(select 1 from XLXSJGBCLQD where XLXSJGBCLQD_JGBID=XLXSJGBYLLM_JGBID and XLXSJGBYLLM_JGCZBID=XLXSJGBCLQD_JGCZBID and XLXSJGBYLLM_JGCZBBBID=XLXSJGBCLQD_JGCZBBBID and XLXSJGBYLLM_JJFPSJ=XLXSJGBCLQD_JJFPSJ)"); + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + + SQL.Clear(); + SQL.Add("delete from XLXSJGBCLQDWL where XLXSJGBCLQDWL_JGBID=:pJGBID and exists(select 1 from XLXSJGBMX where XLXSJGBMX_JGBID=XLXSJGBCLQDWL_JGBID and XLXSJGBMX_XH=XLXSJGBCLQDWL_XH and XLXSJGBMX_WHSJ=:pWHSJ) "); + SQL.ParamByName("pJGBID").Value = sJGBID; + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + dberp.ExecSQL(SQL); + + + + string sSQL = ""; + SQL.Clear(); + SQL.Add(" insert into XLXSJGBCLQD "); + SQL.Add(" (XLXSJGBCLQD_JGBID,XLXSJGBCLQD_XH,XLXSJGBCLQD_JGCZBID,XLXSJGBCLQD_JGCZBBBID,XLXSJGBCLQD_JGCZBXH,XLXSJGBCLQD_DRHH,XLXSJGBCLQD_JJFPSJ "); + for (int i = 1; i <= 80; i++) + { + SQL.Add(",XLXSJGBCLQD_ZL" + i.ToString().PadLeft(2, '0')); + sSQL += string.Format(",isnull(XLXSCLQD_SL{0}*XLXSCLQD_CLJGBL{0}*(1+XLXSCLQD_SHL{0}/100.0),0) as ZL{0}", i.ToString().PadLeft(2, '0')); + } + SQL.Add(" )"); + SQL.Add(" select XLXSJGBMX_JGBID,XLXSJGBMX_XH,XLXSCLQD_JGCZBID,XLXSCLQD_JGCZBBBID,isnull(XLXSCLQD_JGCZBXH,0),isnull(XLXSCLQD_DRHH,0),:pJJFPSJ "); + SQL.Add(sSQL); + SQL.Add(" from XLXSJGBMX "); + SQL.Add(" left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSJGBMX_XLXHID and XLXSCLQD_XLGGID=XLXSJGBMX_XLGGID "); + SQL.Add(" and XLXSCLQD_XLBZID=XLXSJGBMX_XLBZID and XLXSCLQD_DYDJID=XLXSJGBMX_DYDJID "); + SQL.Add(" and isnull(XLXSCLQD_WPID,' ')='ZZZZ' "); + SQL.Add(" where XLXSJGBMX_JGBID = :pJGBID "); + SQL.Add(" and not exists(select 1 from XLXSJGBCLQD where XLXSJGBCLQD_JGBID=XLXSJGBMX_JGBID and XLXSJGBCLQD_XH=XLXSJGBMX_XH)"); + SQL.ParamByName("pJJFPSJ").Value = tWHSJCondition; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + + + + SQL.Clear(); + SQL.Add(" insert into XLXSJGBYLLM(XLXSJGBYLLM_JGBID,XLXSJGBYLLM_JGCZBID,XLXSJGBYLLM_JGCZBBBID,XLXSJGBYLLM_CZBLMBH,XLXSJGBYLLM_HLMLX,XLXSJGBYLLM_JJFPSJ, "); + SQL.Add(" XLXSJGBYLLM_CZBLMMC,XLXSJGBYLLM_CLQDL,XLXSJGBYLLM_BJCLID,XLXSJGBYLLM_WHRID,XLXSJGBYLLM_WHR,XLXSJGBYLLM_WHSJ) "); + SQL.Add(" select :pJGBID as JGBID,XLJGCZBLM_JGCZBID,XLJGCZBLM_JGCZBBBID,XLJGCZBLM_CZBLMBH,XLJGCZBLM_HLMLX,:pJJFPSJ, "); + SQL.Add(" XLJGCZBLM_CZBLMMC,XLJGCZBLM_CLQDL,XLJGCZBLM_BJCLID,:pWHR,:pWHRID,:pWHSJ "); + SQL.Add(" from XLJGCZBLM "); + SQL.Add(" where isnull(XLJGCZBLM_CLQDL,' ')<>' ' "); + SQL.Add(" and exists( "); + SQL.Add(" select 1 from XLXSJGBMX "); + SQL.Add(" left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSJGBMX_XLXHID and XLXSCLQD_XLGGID=XLXSJGBMX_XLGGID "); + SQL.Add(" and XLXSCLQD_XLBZID=XLXSJGBMX_XLBZID and XLXSCLQD_DYDJID=XLXSJGBMX_DYDJID "); + SQL.Add(" where XLXSJGBMX_JGBID = :pJGBID and XLXSJGBMX_WHSJ=:pWHSJ "); + SQL.Add(" and XLJGCZBLM_JGCZBID=XLXSCLQD_JGCZBID and XLJGCZBLM_JGCZBBBID=XLXSCLQD_JGCZBBBID "); + SQL.Add(" ) "); + SQL.ParamByName("pJGBID").Value = sJGBID; + SQL.ParamByName("pWHR").Value = sWHR; + SQL.ParamByName("pWHRID").Value = sWHRID; + SQL.ParamByName("pJJFPSJ").Value = tWHSJCondition; + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + dberp.ExecSQL(SQL); + + + + SQL.Clear(); + sSQL = ""; + SQL.Add(" insert into XLXSJGBCLQDWL(XLXSJGBCLQDWL_JGBID,XLXSJGBCLQDWL_XH "); + for (int i = 1; i <= 80; i++) + { + SQL.Add(",XLXSJGBCLQDWL_WLID" + i.ToString().PadLeft(2, '0')); + sSQL += string.Format(",XLXSCLQDWL_WLID{0}", i.ToString().PadLeft(2, '0')); + } + SQL.Add(" )"); + SQL.Add(" select XLXSJGBCLQD_JGBID,XLXSJGBCLQD_XH "); + SQL.Add(sSQL); + SQL.Add(" from XLXSJGBCLQD "); + SQL.Add(" left join XLXSCLQDWL on XLXSCLQDWL_JGCZBID=XLXSJGBCLQD_JGCZBID and XLXSCLQDWL_JGCZBBBID=XLXSJGBCLQD_JGCZBBBID "); + SQL.Add(" and XLXSCLQDWL_JGCZBXH=XLXSJGBCLQD_JGCZBXH and XLXSCLQDWL_DRHH=XLXSJGBCLQD_DRHH "); + SQL.Add(" where XLXSJGBCLQD_JGBID = :pJGBID "); + SQL.Add(" and not exists(select 1 from XLXSJGBCLQDWL where XLXSJGBCLQDWL_JGBID=XLXSJGBCLQD_JGBID and XLXSJGBCLQDWL_XH=XLXSJGBCLQD_XH)"); + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + + } + + } + } + + + + //调价因素3价格表,则XLXSCLQD_JGBHSCB、XLXSCLQD_JGBWSCB只用来记录材料价价差 + public static void UpdateCLCB(TDatabase dberp, TSQL SQL, string sJGBID, string sJGCZBID, string sJGCZBBBID, int iXSWS, string sJSBLFS, string sWHRID, string sWHR, double maxXH, string sJGBID1, + string sTBJCLID_JGBBJ, string sLBJCLID_JGBBJ, double dTJ_JGBBJ, double dLJ_JGBBJ, string sBJDID, int iMinXH, string sBJU003) + { + UpdateCLCB(dberp, SQL, sJGBID, sJGCZBID, sJGCZBBBID, iXSWS, sJSBLFS, sWHRID, sWHR, maxXH, sJGBID1, sTBJCLID_JGBBJ, sLBJCLID_JGBBJ, dTJ_JGBBJ, dLJ_JGBBJ, sBJDID, iMinXH, "", sBJU003); + } +} + +public class XLJGB_JGBMXList +{ + + + public static DataSet CheckDXKC(string sJGBID, string sXLJGU007) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Add(" select top 1 XLXSJGBMX_XLXHID as NewXLXHID, "); + SQL.Add(" case when isnull(XLXSJGBDXKCB_KCHXXJGID,' ') = ' ' then XLXSJGBMX_XLGGID else "); + if(sXLJGU007.Equals("A")) + SQL.Add(" replace(XLXSJGBMX_XLGGID,rtrim(XLXSJGBDXKCB_XXJGID) || '×',rtrim(XLXSJGBDXKCB_KCHXXJGID) || '×') end as NewXLGGID , "); + else if (sXLJGU007.Equals("B")) + SQL.Add(" replace(XLXSJGBMX_XLGGID,rtrim(XLXSJGBDXKCB_XXJGID) || '*',rtrim(XLXSJGBDXKCB_KCHXXJGID) || '*') end as NewXLGGID , "); + + SQL.Add(@" XLXSJGBMX_XLBZID as NewXLBZID,XLXSJGBMX_DYDJID as NewDYDJID + from XLXSJGBMX + left join XLXHB on XLXHB_XLXHID=XLXSJGBMX_XLXHID + left join XLXSBJXLGGTHB XLXSBJXLGGTHB_DXKC on XLXSBJXLGGTHB_DXKC.XLXSBJXLGGTHB_XLGGID = XLXSJGBMX_XLGGID + left join XLGGB on XLGGB_XLGGID = XLXSBJXLGGTHB_DXKC.XLXSBJXLGGTHB_XLGGIDCH and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') + left join XLXSJGBDXKCB on XLXSJGBMX_XLXHID = XLXSJGBDXKCB_XLXHID and XLGGB_XXJGID = XLXSJGBDXKCB_XXJGID + left join XLDYDJB on XLDYDJB_DYDJID=XLXSJGBMX_DYDJID + where XLXSJGBMX_JGBID = :pJGBID + group by XLXSJGBMX_XLXHID, case when isnull(XLXSJGBDXKCB_KCHXXJGID,' ') = ' ' then XLXSJGBMX_XLGGID else "); + if(sXLJGU007.Equals("A")) + SQL.Add(" replace(XLXSJGBMX_XLGGID,rtrim(XLXSJGBDXKCB_XXJGID)|| '×',rtrim(XLXSJGBDXKCB_KCHXXJGID)|| '×') end, "); + else if (sXLJGU007.Equals("B")) + SQL.Add(" replace(XLXSJGBMX_XLGGID,rtrim(XLXSJGBDXKCB_XXJGID)|| '*',rtrim(XLXSJGBDXKCB_KCHXXJGID)|| '*') end, "); + + + SQL.Add(@" XLXSJGBMX_XLBZID,XLXSJGBMX_DYDJID + having (count(1)>1) "); + SQL.ParamByName("pJGBID").Value = sJGBID; + return dberp.OpenDataSet(SQL); + } + + + + public static DataSet CheckXHJDDZKC(string sJGBID) + { + //若依{0}扩充{1},将会产生重复产品,比如:{1}、{2}、{3}、{4},操作终止!”, + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add(" select top 1 XLXSJGBXHDZB_JGBXLXHID,XLXSJGBXHDZB_BJDXLXHID,a.XLXSJGBMX_XLGGID,a.XLXSJGBMX_XLBZID,a.XLXSJGBMX_DYDJID "); + SQL.Add(" from XLXSJGBXHDZB "); + SQL.Add(" left join XLXSJGBMX a on a.XLXSJGBMX_JGBID=:pJGBID and a.XLXSJGBMX_XLXHID=XLXSJGBXHDZB_JGBXLXHID "); + SQL.Add(" left join XLXSJGBMX b on b.XLXSJGBMX_JGBID=:pJGBID and b.XLXSJGBMX_XLXHID=XLXSJGBXHDZB_BJDXLXHID "); + SQL.Add(" left join XLXHB on XLXHB_XLXHID=a.XLXSJGBMX_XLXHID "); + SQL.Add(" left join XLXSBJXLGGTHB XLXSBJXLGGTHB_A on XLXSBJXLGGTHB_A.XLXSBJXLGGTHB_XLGGID = a.XLXSJGBMX_XLGGID "); + SQL.Add(" left join XLGGB on XLGGB_XLGGID = XLXSBJXLGGTHB_A.XLXSBJXLGGTHB_XLGGIDCH and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); + SQL.Add(" left join XLDTJMZHB on XLDTJMZHB_DTJMZHID=XLGGB_DTJMZHID "); + SQL.Add(" where a.XLXSJGBMX_XLGGID=b.XLXSJGBMX_XLGGID "); + SQL.Add(" and a.XLXSJGBMX_XLBZID=b.XLXSJGBMX_XLBZID "); + SQL.Add(" and b.XLXSJGBMX_DYDJID=(case when (XLXSJGBXHDZB_DZHDYDJID <>' ') then XLXSJGBXHDZB_DZHDYDJID else a.XLXSJGBMX_DYDJID end )"); + SQL.Add(" and ( "); + SQL.Add(" case WHEN XLXSJGBXHDZB_DYDJID=isnull(a.XLXSJGBMX_DYDJID,' ') then 1 "); + SQL.Add(" when XLXSJGBXHDZB_DYDJID= ' ' and isnull(a.XLXSJGBMX_DYDJID,' ') <> ' ' then 2 "); + SQL.Add(" else -999 end "); + SQL.Add(" ) <> -999 "); + SQL.Add(" and XLXSJGBXHDZB_ZXJMXX<=isnull(XLDTJMZHB_DTJM1,0) and ((XLXSJGBXHDZB_ZXJMSX<>0 and XLXSJGBXHDZB_ZXJMSX>=isnull(XLDTJMZHB_DTJM1,0)) or XLXSJGBXHDZB_ZXJMSX=0)"); + SQL.Add(" and ( "); + SQL.Add(" XLXSJGBXHDZB_XXJGID=isnull(XLGGB_XXJGID,' ') or XLXSJGBXHDZB_XXJGID=' ' "); + SQL.Add(" )"); + + SQL.Add(" and b.XLXSJGBMX_SYXH = 0 "); + SQL.ParamByName("pJGBID").Value = sJGBID; + return dberp.OpenDataSet(SQL); + } + + + + public static void DODXKC(TDatabase dberp, TSQL SQL, string sJGBID, string sWHR, string sWHRID, string sJSBLFS, string sBJU002, string sXLJGU007) + { + int maxXH = 1; + int iXSWS = string.IsNullOrEmpty(sBJU002) ? 5 : CMISproConvert.StrToInt(sBJU002); + if (iXSWS < 0) + iXSWS = 0; + else if (iXSWS > 8) + iXSWS = 8; + + SQL.Clear(); + SQL.Add("select max(XLXSJGBMX_XH) as maxXH from XLXSJGBMX where XLXSJGBMX_JGBID=:pJGBID "); + SQL.ParamByName("pJGBID").Value = sJGBID; + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + if (ds.Tables[0].Rows[0][0].ToString().Trim().Equals("")) + { + maxXH = 1; + } + else + { + maxXH = CMISproConvert.StrToInt(ds.Tables[0].Rows[0][0].ToString().Trim()); + } + } + SQL.Clear(); + SQL.Add(" insert into XLXSJGBMX "); + SQL.Add(" ( "); + SQL.Add(" XLXSJGBMX_JGBID, "); + SQL.Add(" XLXSJGBMX_XH, "); + SQL.Add(" XLXSJGBMX_YXQS,XLXSJGBMX_YXQZ, "); + SQL.Add(" XLXSJGBMX_XLXHID,XLXSJGBMX_XLGGID,XLXSJGBMX_XLBZID,XLXSJGBMX_DYDJID, "); + SQL.Add(" XLXSJGBMX_WSJJ,XLXSJGBMX_HSJJ,XLXSJGBMX_WSJJM,XLXSJGBMX_HSJJM, "); + SQL.Add(" XLXSJGBMX_WSBJ,XLXSJGBMX_HSBJ,XLXSJGBMX_WSBJM,XLXSJGBMX_HSBJM, "); + SQL.Add(" XLXSJGBMX_BZ, XLXSJGBMX_SYXH,XLXSJGBMX_YSJDZ,XLXSJGBMX_CLCBYSJDZ,XLXSJGBMX_JLDW, "); + SQL.Add(" XLXSJGBMX_WHRID,XLXSJGBMX_WHR,XLXSJGBMX_WHSJ "); + SQL.Add(" ) "); + SQL.Add(" select XLXSJGBMX_JGBID,:maxXH + row_number()over(order by XLXSJGBMX_JGBID,XLXSJGBMX_XLXHID,XLXSJGBMX_XLGGID,XLXSJGBMX_XLBZID,XLDYDJB_XH,XLXSJGBMX_DYDJID)as XH,"); + SQL.Add(" XLXSJGBMX_YXQS,XLXSJGBMX_YXQZ,XLXSJGBMX_XLXHID,"); + if(sXLJGU007.Equals("A")) + SQL.Add(" replace(XLXSJGBMX_XLGGID,rtrim(XLXSJGBDXKCB_XXJGID) || '×',rtrim(XLXSJGBDXKCB_KCHXXJGID) || '×') as NewXLGGID ,"); + else if (sXLJGU007.Equals("B")) + SQL.Add(" replace(XLXSJGBMX_XLGGID,rtrim(XLXSJGBDXKCB_XXJGID) || '*',rtrim(XLXSJGBDXKCB_KCHXXJGID) || '*') as NewXLGGID ,"); + SQL.Add(" XLXSJGBMX_XLBZID,XLXSJGBMX_DYDJID,"); + SQL.Add(" case when XLXSJGBMX_SYXH > 0 then XLXSJGBMX_WSJJ else XLXSJGBMX_WSBJ end as WSJJ,"); + SQL.Add(" case when XLXSJGBMX_SYXH > 0 then XLXSJGBMX_HSJJ else XLXSJGBMX_HSBJ end as HSJJ,"); + SQL.Add(" case when XLXSJGBMX_SYXH > 0 then XLXSJGBMX_WSJJM else XLXSJGBMX_WSBJM end as WSJJM,"); + SQL.Add(" case when XLXSJGBMX_SYXH > 0 then XLXSJGBMX_HSJJM else XLXSJGBMX_HSBJM end as HSJJM,"); + if (sJSBLFS.Equals("C1") || sJSBLFS.Equals("C2"))//C1|进一法(材料价各分项进一)、C2|进一法(材料价汇总进一) + { + SQL.Add(" CEILING( ROUNDFIX( "); + SQL.Add(string.Format(" XLXSJGBMX_WSBJ * XLXSJGBDXKCB_KCXS*{0},8))/{0} as WSBJ, ", Math.Pow(10.0, iXSWS))); + SQL.Add(" CEILING( ROUNDFIX( "); + SQL.Add(string.Format(" XLXSJGBMX_HSBJ * XLXSJGBDXKCB_KCXS*{0},8))/{0} as HSBJ, ", Math.Pow(10.0, iXSWS))); + SQL.Add(" ROUNDFIX( "); + SQL.Add(" XLXSJGBMX_WSBJM * XLXSJGBDXKCB_KCXS,6)as WSBJM, "); + SQL.Add(" ROUNDFIX( "); + SQL.Add(" XLXSJGBMX_HSBJM * XLXSJGBDXKCB_KCXS ,6) as HSBJM, "); + } + else if (sJSBLFS.Equals("C3"))//C3|材料价汇总进一+表价进一到十位 + { + SQL.Add(" CEILING(RoundFix( "); + SQL.Add(" XLXSJGBMX_WSBJ * XLXSJGBDXKCB_KCXS," + iXSWS.ToString().Trim() + ")/10)*10 as WSBJ, "); + SQL.Add(" CEILING(RoundFix( "); + SQL.Add(" XLXSJGBMX_HSBJ * XLXSJGBDXKCB_KCXS," + iXSWS.ToString().Trim() + ")/10)*10 as HSBJ, "); + SQL.Add(" ROUNDFIX( "); + SQL.Add(" XLXSJGBMX_WSBJM * XLXSJGBDXKCB_KCXS,6)as WSBJM, "); + SQL.Add(" ROUNDFIX( "); + SQL.Add(" XLXSJGBMX_HSBJM * XLXSJGBDXKCB_KCXS ,6) as HSBJM, "); + } + else + { + + SQL.Add(" ROUNDFIX( "); + SQL.Add(" XLXSJGBMX_WSBJ * XLXSJGBDXKCB_KCXS, " + iXSWS + ")as WSBJ, "); + SQL.Add(" ROUNDFIX( "); + SQL.Add(" XLXSJGBMX_HSBJ * XLXSJGBDXKCB_KCXS ," + iXSWS + ") as HSBJ, "); + SQL.Add(" ROUNDFIX( "); + SQL.Add(" XLXSJGBMX_WSBJM * XLXSJGBDXKCB_KCXS,6)as WSBJM, "); + SQL.Add(" ROUNDFIX( "); + SQL.Add(" XLXSJGBMX_HSBJM * XLXSJGBDXKCB_KCXS ,6) as HSBJM, "); + } + SQL.Add(" case when XLXSJGBMX_SYXH > 0 then rtrim(XLXSJGBMX_BZ) || '按等芯扩充表扩充,加点:' || CONVERT(CHAR,XLXSJGBDXKCB_KCXS) "); + SQL.Add(" else '按等芯扩充表扩充,加点:' || CONVERT(CHAR,XLXSJGBDXKCB_KCXS) end as BZ, "); + SQL.Add(" case when XLXSJGBMX_SYXH > 0 then XLXSJGBMX_SYXH else XLXSJGBMX_XH end as SYXH, "); + SQL.Add(" case when XLXSJGBMX_SYXH > 0 then XLXSJGBMX_YSJDZ * XLXSJGBDXKCB_KCXS else XLXSJGBDXKCB_KCXS end as YSJDZ, "); + SQL.Add(" case when XLXSJGBMX_SYXH > 0 then XLXSJGBMX_CLCBYSJDZ * XLXSJGBDXKCB_KCXS else XLXSJGBDXKCB_KCXS end as CLCBYSJDZ, "); + SQL.Add(" XLXSJGBMX_JLDW,:pWHRID,:pWHR,:pWHSJ "); + SQL.Add(" from XLXSJGBMX "); + SQL.Add(" left join XLXHB on XLXHB_XLXHID=XLXSJGBMX_XLXHID "); + SQL.Add(" left join XLXSBJXLGGTHB XLXSBJXLGGTHB_DXKC on XLXSBJXLGGTHB_DXKC.XLXSBJXLGGTHB_XLGGID = XLXSJGBMX_XLGGID "); + SQL.Add(" left join XLGGB on XLGGB_XLGGID = XLXSBJXLGGTHB_DXKC.XLXSBJXLGGTHB_XLGGIDCH and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); + SQL.Add(" left join XLXSJGBDXKCB on XLXSJGBDXKCB_XLXHID = XLXSJGBMX_XLXHID and XLGGB_XXJGID = XLXSJGBDXKCB_XXJGID "); + SQL.Add(" left join XLDYDJB on XLDYDJB_DYDJID=XLXSJGBMX_DYDJID "); + SQL.Add(" where XLXSJGBMX_JGBID = :pJGBID and isnull(XLXSJGBDXKCB_KCHXXJGID,' ') <> ' ' "); + SQL.ParamByName("maxXH").Value = maxXH; + SQL.ParamByName("pJGBID").Value = sJGBID; + SQL.ParamByName("pWHRID").Value = sWHRID; + SQL.ParamByName("pWHR").Value = sWHR; + SQL.ParamByName("pWHSJ").Value = DateTime.Now; + + dberp.ExecSQL(SQL); + XLBJDUtils.SyncXLXSBJXLGGTHB_ByXLXSJGBMX_Batch(dberp, CMISproSessionManager.GetCurrentSession(), sJGBID); + + } + + + + //3|表价(现行价)=基价(出厂价+材料价价差)&调价----按型号加点对照表扩充 + public static void DoXHJDDZKC(TDatabase dberp, TSQL SQL, string sJGBID, string sJSBLFS, string sBJU002, string sWHR, string sWHRID, ref string sDXKCMessage, ref string sXHJDKCMessage, string sXLJGU007) + { + int maxXH = 1; + int iXSWS = string.IsNullOrEmpty(sBJU002) ? 5 : CMISproConvert.StrToInt(sBJU002); + if (iXSWS < 0) + iXSWS = 0; + else if (iXSWS > 8) + iXSWS = 8; + Mac.MacLog.TraceFormat(String.Format("DoXHJDDZKC-删除记录-Begin")); + + SQL.Clear(); + SQL.Add(" delete from XLXSJGBMX where XLXSJGBMX_JGBID = :pJGBID and XLXSJGBMX_SYXH>0"); + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + Mac.MacLog.TraceFormat(String.Format("DoXHJDDZKC-删除记录-End")); + + SQL.Clear(); + SQL.Add("select max(XLXSJGBMX_XH) as maxXH from XLXSJGBMX where XLXSJGBMX_JGBID=:pJGBID "); + SQL.ParamByName("pJGBID").Value = sJGBID; + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + if (ds.Tables[0].Rows[0][0].ToString().Trim().Equals("")) + { + maxXH = 1; + } + else + { + maxXH = CMISproConvert.StrToInt(ds.Tables[0].Rows[0][0].ToString().Trim()); + } + } + SQL.Clear(); + SQL.Add(" insert into XLXSJGBMX "); + SQL.Add(" ( "); + SQL.Add(" XLXSJGBMX_JGBID, "); + SQL.Add(" XLXSJGBMX_XH, "); + SQL.Add(" XLXSJGBMX_YXQS,XLXSJGBMX_YXQZ, "); + SQL.Add(" XLXSJGBMX_XLXHID,XLXSJGBMX_XLGGID,XLXSJGBMX_XLBZID,XLXSJGBMX_DYDJID, "); + SQL.Add(" XLXSJGBMX_WSJJ,XLXSJGBMX_HSJJ,XLXSJGBMX_WSJJM,XLXSJGBMX_HSJJM, "); + SQL.Add(" XLXSJGBMX_WSBJ,XLXSJGBMX_HSBJ,XLXSJGBMX_WSBJM,XLXSJGBMX_HSBJM, "); + SQL.Add(" XLXSJGBMX_BZ, XLXSJGBMX_SYXH,XLXSJGBMX_YSJDZ,XLXSJGBMX_CLCBYSJDZ,XLXSJGBMX_JLDW, "); + SQL.Add(" XLXSJGBMX_WHRID,XLXSJGBMX_WHR,XLXSJGBMX_WHSJ "); + SQL.Add(" ) "); + SQL.Add(" select XLXSJGBMX_JGBID,:maxXH + row_number()over(order by XLXSJGBMX_JGBID,XLXSJGBXHDZB_BJDXLXHID,XLXSJGBMX_XLGGID,XLXSJGBMX_XLBZID,XLDYDJB_XH,DYDJID)as XH,");//distinct是因为XLGGB里存在芯线结构不同的数据,如4×6的芯线结构有2×2和4两种 + SQL.Add(" XLXSJGBMX_YXQS,XLXSJGBMX_YXQZ,XLXSJGBXHDZB_BJDXLXHID,XLXSJGBMX_XLGGID,XLXSJGBMX_XLBZID,"); + SQL.Add(" DYDJID,"); + SQL.Add(" XLXSJGBMX_WSBJ,XLXSJGBMX_HSBJ,XLXSJGBMX_WSBJM,XLXSJGBMX_HSBJM,WSBJ,HSBJ,WSBJM,HSBJM,BZ,XLXSJGBMX_XH,YSJDZ,CLCBYSJDZ,XLXSJGBMX_JLDW,:pWHRID,:pWHR,:pWHSJ"); + SQL.Add(" from ( "); + SQL.Add(" select DISTINCT XLXSJGBMX_JGBID,XLDYDJB_XH,");//distinct是因为可能会扩充出相同四要素数据 + SQL.Add(" XLXSJGBMX_YXQS,XLXSJGBMX_YXQZ,XLXSJGBXHDZB_BJDXLXHID,XLXSJGBMX_XLGGID,XLXSJGBMX_XLBZID,"); + SQL.Add(" (case when (XLXSJGBXHDZB_DZHDYDJID <>' ') then XLXSJGBXHDZB_DZHDYDJID else isnull(XLXSJGBMX_DYDJID,' ') end ) as DYDJID,"); + SQL.Add(" XLXSJGBMX_WSBJ,XLXSJGBMX_HSBJ,XLXSJGBMX_WSBJM,XLXSJGBMX_HSBJM,"); + if (sJSBLFS.Equals("C1") || sJSBLFS.Equals("C2"))//C1|进一法(材料价各分项进一)、C2|进一法(材料价汇总进一) + { + SQL.Add(" CEILING(RoundFix(( "); + SQL.Add(" case WHEN XLXSJGBXHDZB_DYDJID=isnull(XLXSJGBMX_DYDJID,' ') then XLXSJGBXHDZB_YZZ "); + SQL.Add(" when XLXSJGBXHDZB_DYDJID= ' ' and isnull(XLXSJGBMX_DYDJID,' ')<> ' ' then XLXSJGBXHDZB_YZZ "); + SQL.Add(" else 0 end "); + SQL.Add(string.Format(" )*XLXSJGBMX_WSBJ*{0},8))/{0} ", Math.Pow(10.0, iXSWS))); + SQL.Add(" as WSBJ, "); + SQL.Add(" CEILING(RoundFix(( "); + SQL.Add(" case WHEN XLXSJGBXHDZB_DYDJID=isnull(XLXSJGBMX_DYDJID,' ') then XLXSJGBXHDZB_YZZ "); + SQL.Add(" when XLXSJGBXHDZB_DYDJID= ' ' and isnull(XLXSJGBMX_DYDJID,' ')<> ' ' then XLXSJGBXHDZB_YZZ "); + SQL.Add(" else 0 end "); + SQL.Add(string.Format(" )*XLXSJGBMX_HSBJ*{0},8))/{0} ", Math.Pow(10.0, iXSWS))); + SQL.Add(" as HSBJ, "); + SQL.Add(" RoundFix(("); + SQL.Add(" case WHEN XLXSJGBXHDZB_DYDJID=isnull(XLXSJGBMX_DYDJID,' ') then XLXSJGBXHDZB_YZZ "); + SQL.Add(" when XLXSJGBXHDZB_DYDJID= ' ' and isnull(XLXSJGBMX_DYDJID,' ')<> ' ' then XLXSJGBXHDZB_YZZ "); + SQL.Add(" else 0 end ) "); + SQL.Add(" * XLXSJGBMX_WSBJM ,6) as WSBJM,"); + SQL.Add(" RoundFix(("); + SQL.Add(" case WHEN XLXSJGBXHDZB_DYDJID=isnull(XLXSJGBMX_DYDJID,' ') then XLXSJGBXHDZB_YZZ "); + SQL.Add(" when XLXSJGBXHDZB_DYDJID= ' ' and isnull(XLXSJGBMX_DYDJID,' ')<> ' ' then XLXSJGBXHDZB_YZZ "); + SQL.Add(" else 0 end ) "); + SQL.Add(" * XLXSJGBMX_HSBJM ,6) as HSBJM,"); + } + else if (sJSBLFS.Equals("C3"))//C3|材料价汇总进一+表价进一到十位 + { + SQL.Add(" CEILING(RoundFix(( "); + SQL.Add(" case WHEN XLXSJGBXHDZB_DYDJID=isnull(XLXSJGBMX_DYDJID,' ') then XLXSJGBXHDZB_YZZ "); + SQL.Add(" when XLXSJGBXHDZB_DYDJID= ' ' and isnull(XLXSJGBMX_DYDJID,' ')<> ' ' then XLXSJGBXHDZB_YZZ "); + SQL.Add(" else 0 end "); + SQL.Add(" )*XLXSJGBMX_WSBJ," + iXSWS.ToString().Trim() + ")/10)*10 "); + SQL.Add(" as WSBJ, "); + SQL.Add(" CEILING(RoundFix(( "); + SQL.Add(" case WHEN XLXSJGBXHDZB_DYDJID=isnull(XLXSJGBMX_DYDJID,' ') then XLXSJGBXHDZB_YZZ "); + SQL.Add(" when XLXSJGBXHDZB_DYDJID= ' ' and isnull(XLXSJGBMX_DYDJID,' ')<> ' ' then XLXSJGBXHDZB_YZZ "); + SQL.Add(" else 0 end "); + SQL.Add(" )*XLXSJGBMX_HSBJ," + iXSWS.ToString().Trim() + ")/10)*10 "); + SQL.Add(" as HSBJ, "); + SQL.Add(" RoundFix(("); + SQL.Add(" case WHEN XLXSJGBXHDZB_DYDJID=isnull(XLXSJGBMX_DYDJID,' ') then XLXSJGBXHDZB_YZZ "); + SQL.Add(" when XLXSJGBXHDZB_DYDJID= ' ' and isnull(XLXSJGBMX_DYDJID,' ')<> ' ' then XLXSJGBXHDZB_YZZ "); + SQL.Add(" else 0 end ) "); + SQL.Add(" * XLXSJGBMX_WSBJM ,6) as WSBJM,"); + SQL.Add(" RoundFix(("); + SQL.Add(" case WHEN XLXSJGBXHDZB_DYDJID=isnull(XLXSJGBMX_DYDJID,' ') then XLXSJGBXHDZB_YZZ "); + SQL.Add(" when XLXSJGBXHDZB_DYDJID= ' ' and isnull(XLXSJGBMX_DYDJID,' ')<> ' ' then XLXSJGBXHDZB_YZZ "); + SQL.Add(" else 0 end ) "); + SQL.Add(" * XLXSJGBMX_HSBJM ,6) as HSBJM,"); + } + else + { + SQL.Add(" ROUNDFIX(( "); + SQL.Add(" case WHEN XLXSJGBXHDZB_DYDJID=isnull(XLXSJGBMX_DYDJID,' ') then XLXSJGBXHDZB_YZZ "); + SQL.Add(" when XLXSJGBXHDZB_DYDJID= ' ' and isnull(XLXSJGBMX_DYDJID,' ')<> ' ' then XLXSJGBXHDZB_YZZ "); + SQL.Add(" else 0 end "); + SQL.Add(" )*XLXSJGBMX_WSBJ, " + iXSWS + ") "); + SQL.Add(" as WSBJ, "); + SQL.Add(" ROUNDFIX(( "); + SQL.Add(" case WHEN XLXSJGBXHDZB_DYDJID=isnull(XLXSJGBMX_DYDJID,' ') then XLXSJGBXHDZB_YZZ "); + SQL.Add(" when XLXSJGBXHDZB_DYDJID= ' ' and isnull(XLXSJGBMX_DYDJID,' ')<> ' ' then XLXSJGBXHDZB_YZZ "); + SQL.Add(" else 0 end "); + SQL.Add(" )*XLXSJGBMX_HSBJ, " + iXSWS + ") "); + SQL.Add(" as HSBJ, "); + SQL.Add(" ROUNDFIX(( "); + SQL.Add(" case WHEN XLXSJGBXHDZB_DYDJID=isnull(XLXSJGBMX_DYDJID,' ') then XLXSJGBXHDZB_YZZ "); + SQL.Add(" when XLXSJGBXHDZB_DYDJID= ' ' and isnull(XLXSJGBMX_DYDJID,' ')<> ' ' then XLXSJGBXHDZB_YZZ "); + SQL.Add(" else 0 end "); + SQL.Add(" )*XLXSJGBMX_WSBJM,6) "); + SQL.Add(" as WSBJM, "); + SQL.Add(" ROUNDFIX(( "); + SQL.Add(" case WHEN XLXSJGBXHDZB_DYDJID=isnull(XLXSJGBMX_DYDJID,' ') then XLXSJGBXHDZB_YZZ "); + SQL.Add(" when XLXSJGBXHDZB_DYDJID= ' ' and isnull(XLXSJGBMX_DYDJID,' ')<> ' ' then XLXSJGBXHDZB_YZZ "); + SQL.Add(" else 0 end "); + SQL.Add(" )*XLXSJGBMX_HSBJM, 6) "); + SQL.Add(" as HSBJM, "); + } + //按型号加点对照表扩充,加点值临时使用备注字段记录,报价时需要获取 + SQL.Add(" case WHEN XLXSJGBXHDZB_DYDJID=isnull(XLXSJGBMX_DYDJID,' ') then '按型号加点对照表扩充,加点:'||rtrim(convert(char,XLXSJGBXHDZB_YZZ)) "); + SQL.Add(" when XLXSJGBXHDZB_DYDJID= ' ' and isnull(XLXSJGBMX_DYDJID,' ') <> ' ' then '按型号加点对照表扩充,加点:'||rtrim(convert(char,XLXSJGBXHDZB_YZZ)) "); + SQL.Add(" else '按型号加点对照表扩充,加点:0' end as BZ, "); + SQL.Add(" XLXSJGBMX_XH,XLXSJGBXHDZB_YZZ as YSJDZ,XLXSJGBXHDZB_CLCBYSJDZ as CLCBYSJDZ,XLXSJGBMX_JLDW "); + SQL.Add(" from XLXSJGBMX"); + SQL.Add(" left join XLXHB on XLXHB_XLXHID=XLXSJGBMX_XLXHID "); + SQL.Add(" left join XLXSBJXLGGTHB XLXSBJXLGGTHB_MX on XLXSBJXLGGTHB_MX.XLXSBJXLGGTHB_XLGGID = XLXSJGBMX_XLGGID "); + SQL.Add(" left join XLGGB on XLGGB_XLGGID = XLXSBJXLGGTHB_MX.XLXSBJXLGGTHB_XLGGIDCH and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); + SQL.Add(" left join XLDTJMZHB on XLDTJMZHB_DTJMZHID=XLGGB_DTJMZHID "); + SQL.Add(" left join XLXSJGBXHDZB on XLXSJGBXHDZB_JGBXLXHID=XLXSJGBMX_XLXHID"); + SQL.Add(" left join XLDYDJB on XLDYDJB_DYDJID=(case when (XLXSJGBXHDZB_DZHDYDJID <>' ') then XLXSJGBXHDZB_DZHDYDJID else isnull(XLXSJGBMX_DYDJID,' ') end )"); + SQL.Add(" where XLXSJGBMX_JGBID=:pJGBID"); + // 电压等级 + SQL.Add(" and ( "); + SQL.Add(" case WHEN XLXSJGBXHDZB_DYDJID=isnull(XLXSJGBMX_DYDJID,' ') then 1 "); + SQL.Add(" when XLXSJGBXHDZB_DYDJID= ' ' and isnull(XLXSJGBMX_DYDJID,' ')<> ' ' then 2 "); + SQL.Add(" else -999 end "); + SQL.Add(" ) <> -999 "); + // 主芯截面区间 + SQL.Add(" and XLXSJGBXHDZB_ZXJMXX<= isnull(XLDTJMZHB_DTJM1,0) and ((XLXSJGBXHDZB_ZXJMSX<>0 and XLXSJGBXHDZB_ZXJMSX>=isnull(XLDTJMZHB_DTJM1,0)) or XLXSJGBXHDZB_ZXJMSX=0)"); + // 芯线结构 + SQL.Add(" and (XLXSJGBXHDZB_XXJGID=isnull(XLGGB_XXJGID,' ') or XLXSJGBXHDZB_XXJGID=' ')"); + SQL.Add(" ) KCJGB WHERE 1=1 "); + SQL.ParamByName("maxXH").Value = maxXH; + SQL.ParamByName("pWHRID").Value = sWHRID; + SQL.ParamByName("pWHR").Value = sWHR; + SQL.ParamByName("pWHSJ").Value = DateTime.Now; + SQL.ParamByName("pJGBID").Value = sJGBID; + Mac.MacLog.TraceFormat(String.Format("DoXHJDDZKC-新增记录-Begin")); + dberp.ExecSQL(SQL); + Mac.MacLog.TraceFormat(String.Format("DoXHJDDZKC-新增记录-End")); + XLBJDUtils.SyncXLXSBJXLGGTHB_ByXLXSJGBMX_Batch(dberp, CMISproSessionManager.GetCurrentSession(), sJGBID); + + + + + + SQL.Clear(); + SQL.Add(@"select top 1 XLXSJGBMX_XLXHID,XLXSJGBMX_XLGGID,XLXSJGBMX_XLBZID,XLXSJGBMX_DYDJID + from XLXSJGBMX where XLXSJGBMX_JGBID=:pJGBID + group by XLXSJGBMX_XLXHID,XLXSJGBMX_XLGGID,XLXSJGBMX_XLBZID,XLXSJGBMX_DYDJID + having (count(1)>1)"); + SQL.ParamByName("pJGBID").Value = sJGBID; + ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + string sXLXHID = ds.Tables[0].Rows[0]["XLXSJGBMX_XLXHID"].ToString().Trim(); + string sXLGGID = ds.Tables[0].Rows[0]["XLXSJGBMX_XLGGID"].ToString().Trim(); + string sXLBZID = ds.Tables[0].Rows[0]["XLXSJGBMX_XLBZID"].ToString().Trim(); + string sDYDJID = ds.Tables[0].Rows[0]["XLXSJGBMX_DYDJID"].ToString().Trim(); + sXHJDKCMessage = String.Format("扩充后将产生重复产品{0}、{1}、{2}、{3}!", sXLXHID, sXLGGID, sXLBZID, sDYDJID); + + SQL.Clear(); + SQL.Add("delete from XLXSJGBMX where XLXSJGBMX_JGBID=:pJGBID and XLXSJGBMX_SYXH>0 "); + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + return; + } + + + + + if (CMISproDataBase.ExistsRecord("DBERP", "select top 1 XLXSJGBDXKCB_XLXHID from XLXSJGBDXKCB where 1=1 ")) + { + Mac.MacLog.TraceFormat(String.Format("DoXHJDDZKC-CheckDXKC-Begin")); + + DataSet dsJGBMX = CheckDXKC(sJGBID, sXLJGU007); + Mac.MacLog.TraceFormat(String.Format("DoXHJDDZKC-CheckDXKC-End")); + + if (dsJGBMX.Tables[0].Rows.Count > 0) + { + + sDXKCMessage = String.Format("按等芯扩充后将会产生重复产品,比如:{0}、{1}、{2}、{3},操作终止!", + dsJGBMX.Tables[0].Rows[0]["NewXLXHID"].ToString().Trim(), dsJGBMX.Tables[0].Rows[0]["NewXLGGID"].ToString().Trim(), + dsJGBMX.Tables[0].Rows[0]["NewXLBZID"].ToString().Trim(), dsJGBMX.Tables[0].Rows[0]["NewDYDJID"].ToString().Trim()); + return; + } + Mac.MacLog.TraceFormat(String.Format("DoXHJDDZKC-等芯扩充-Begin")); + + DODXKC(dberp, SQL, sJGBID, sWHR, sWHRID, sJSBLFS, sBJU002, sXLJGU007); + Mac.MacLog.TraceFormat(String.Format("DoXHJDDZKC-等芯扩充-End")); + + + } + + + //排序方式 + JGBMLInfo.UpdateJGBMXXSXH(dberp, sJGBID, ""); + + } +} + +public class XLJGB_JGFLDInfo +{ + + + public static UpdJGFLDData UpdateJGFLD(TDatabase dberp, TSQL SQL, string sJGBID, string sBJCLID, double fJGLCLJG, double fJGLHSJG, double fJGLWSJGF, double fJGLHSJGF, + double fJGYLCLJG, double fJGYLHSJG, string sWHR, string sWHRID, string sJGYBJCLID1, double fJGBL1) + { + UpdJGFLDData objOUT = new UpdJGFLDData(); + objOUT.Success = true; + objOUT.Message = ""; + + int flag = 0; + DataSet dsBJCL = null; + if (!sBJCLID.Equals("")) + { + SQL.Clear(); + SQL.Add(" select XLXSBJCL_JGYBJCLID,XLXSBJCL_BJCLID,XLXSBJCL_BJCLMC,XLXSBJCL_BJHQ from XLXSBJCL where (XLXSBJCL_BJCLID = :pBJCLID or XLXSBJCL_JGYBJCLID = :pBJCLID) order by XLXSBJCL_JGYBJCLID "); + SQL.ParamByName("pBJCLID").Value = sBJCLID; + dsBJCL = dberp.OpenDataSet(SQL); + if (dsBJCL.Tables[0].Rows.Count > 0) + { + //判断 加工原料 铜 + for (int i = 0; i < dsBJCL.Tables[0].Rows.Count; i++) + { + if (dsBJCL.Tables[0].Rows[i]["XLXSBJCL_JGYBJCLID"].ToString().Trim().Equals("")) + { + flag = 1; + } + } + } + else + { + flag = 2; + } + } + + try + { + SQL.Clear(); + SQL.Add("select XLXSCLHQ_YXQS from XLXSCLHQ where XLXSCLHQ_JGBID =:pJGBID and XLXSCLHQ_BJCLID = :pBJCLID "); + SQL.ParamByName("pJGBID").Value = sJGBID; + SQL.ParamByName("pBJCLID").Value = sBJCLID; + DataSet dsCLHQ = dberp.OpenDataSet(SQL); + //铜丝 + if (0 == flag) + { + //加工料 + //if (fJGLWSJGF < 0) + //{ + // objOUT.Success = false; + // objOUT.Message = "无税加工费不允许小于0!"; + // return objOUT; + //} + + //if (fJGLHSJGF < 0) + //{ + // objOUT.Success = false; + // objOUT.Message = "含税加工费不允许小于0!"; + // return objOUT; + //} + if (fJGLCLJG < 0) + { + objOUT.Success = false; + objOUT.Message = "无税材料价格不允许小于0!"; + return objOUT; + } + + if (fJGLHSJG < 0) + { + objOUT.Success = false; + objOUT.Message = "含税材料价格不允许小于"; + return objOUT; + } + if (dsCLHQ.Tables[0].Rows.Count > 0) + { + //更新 + SQL.Clear(); + SQL.Add(" update XLXSCLHQ "); + SQL.Add(" set XLXSCLHQ_WSJG = :XLXSCLHQ_WSJG,XLXSCLHQ_HSJG=:XLXSCLHQ_HSJG,XLXSCLHQ_WSJGF= :XLXSCLHQ_WSJGF, XLXSCLHQ_HSJGF=:XLXSCLHQ_HSJGF, "); + SQL.Add(" XLXSCLHQ_HSJG1=:XLXSCLHQ_HSJG1,XLXSCLHQ_WSJG1=:XLXSCLHQ_WSJG1,XLXSCLHQ_JGBL1=:XLXSCLHQ_JGBL1, "); + SQL.Add(" XLXSCLHQ_WHRID = :XLXSCLHQ_WHRID, XLXSCLHQ_WHR = :XLXSCLHQ_WHR, XLXSCLHQ_WHSJ = :XLXSCLHQ_WHSJ"); + SQL.Add(" where XLXSCLHQ_JGBID =:pJGBID and XLXSCLHQ_YXQS= :pRQ and XLXSCLHQ_BJCLID = :pBJCLID "); + SQL.ParamByName("XLXSCLHQ_WSJG").Value = fJGLCLJG; + SQL.ParamByName("XLXSCLHQ_HSJG").Value = fJGLHSJG; + SQL.ParamByName("XLXSCLHQ_WSJGF").Value = fJGLWSJGF; + SQL.ParamByName("XLXSCLHQ_HSJGF").Value = fJGLHSJGF; + SQL.ParamByName("XLXSCLHQ_HSJG1").Value = fJGYLHSJG; + SQL.ParamByName("XLXSCLHQ_WSJG1").Value = fJGYLCLJG; + SQL.ParamByName("XLXSCLHQ_JGBL1").Value = fJGBL1; + SQL.ParamByName("pRQ").Value = dsCLHQ.Tables[0].Rows[0][0].ToString().Trim(); + //SQL.ParamByName("XLXSCLHQ_BZ").Value = txtBZ.Text; + SQL.ParamByName("XLXSCLHQ_WHR").Value = sWHR; + SQL.ParamByName("XLXSCLHQ_WHRID").Value = sWHRID; + SQL.ParamByName("XLXSCLHQ_WHSJ").Value = DateTime.Now; + SQL.ParamByName("pBJCLID").Value = sBJCLID; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + } + else + { + //插入 + SQL.Clear(); + SQL.Add(" insert into XLXSCLHQ( "); + SQL.Add(" XLXSCLHQ_BJCLID,XLXSCLHQ_JGBID, XLXSCLHQ_WSJG,XLXSCLHQ_HSJG, XLXSCLHQ_WSJGF,XLXSCLHQ_HSJGF, "); + SQL.Add(" XLXSCLHQ_HSJG1,XLXSCLHQ_WSJG1,XLXSCLHQ_JGBL1,XLXSCLHQ_JGYBJCLID1, "); + SQL.Add(" XLXSCLHQ_YXQS, XLXSCLHQ_YXQZ,XLXSCLHQ_BZ, XLXSCLHQ_WHRID, XLXSCLHQ_WHR, XLXSCLHQ_WHSJ )"); + SQL.Add(" values("); + SQL.Add(" :XLXSCLHQ_BJCLID,:XLXSCLHQ_JGBID, :XLXSCLHQ_WSJG,:XLXSCLHQ_HSJG, :XLXSCLHQ_WSJGF, :XLXSCLHQ_HSJGF,"); + SQL.Add(" :XLXSCLHQ_HSJG1,:XLXSCLHQ_WSJG1,:XLXSCLHQ_JGBL1,:XLXSCLHQ_JGYBJCLID1, "); + SQL.Add(" :XLXSCLHQ_YXQS, :XLXSCLHQ_YXQZ,:XLXSCLHQ_BZ, :XLXSCLHQ_WHRID, :XLXSCLHQ_WHR, :XLXSCLHQ_WHSJ )"); + SQL.ParamByName("XLXSCLHQ_BJCLID").Value = sBJCLID; + SQL.ParamByName("XLXSCLHQ_JGBID").Value = sJGBID; + SQL.ParamByName("XLXSCLHQ_WSJG").Value = fJGLCLJG; + SQL.ParamByName("XLXSCLHQ_HSJG").Value = fJGLHSJG; + SQL.ParamByName("XLXSCLHQ_WSJGF").Value = fJGLWSJGF; + SQL.ParamByName("XLXSCLHQ_HSJGF").Value = fJGLHSJGF; + SQL.ParamByName("XLXSCLHQ_HSJG1").Value = fJGYLHSJG; + SQL.ParamByName("XLXSCLHQ_WSJG1").Value = fJGYLCLJG; + SQL.ParamByName("XLXSCLHQ_JGBL1").Value = fJGBL1; + SQL.ParamByName("XLXSCLHQ_JGYBJCLID1").Value = sJGYBJCLID1; + SQL.ParamByName("XLXSCLHQ_YXQS").Value = "1900-01-01 00:00:00.000"; + SQL.ParamByName("XLXSCLHQ_YXQZ").Value = "1900-01-01 00:00:00.000"; + SQL.ParamByName("XLXSCLHQ_BZ").Value = ""; + SQL.ParamByName("XLXSCLHQ_WHR").Value = sWHR; + SQL.ParamByName("XLXSCLHQ_WHRID").Value = sWHRID; + SQL.ParamByName("XLXSCLHQ_WHSJ").Value = DateTime.Now; + dberp.ExecSQL(SQL); + } + } + //铜 + else if (1 == flag) + { + //加工原料 + if (fJGYLCLJG < 0) + { + objOUT.Success = false; + objOUT.Message = "无税材料价格不允许小于0!"; + return objOUT; + } + + if (fJGYLHSJG < 0) + { + objOUT.Success = false; + objOUT.Message = "含税材料价格不允许小于0!"; + return objOUT; + } + if (dsCLHQ.Tables[0].Rows.Count > 0) + { + //更新铜 + SQL.Clear(); + SQL.Add(" update XLXSCLHQ "); + SQL.Add(" set XLXSCLHQ_WSJG = :XLXSCLHQ_WSJG,XLXSCLHQ_HSJG=:XLXSCLHQ_HSJG, "); + SQL.Add(" XLXSCLHQ_WHRID = :XLXSCLHQ_WHRID, XLXSCLHQ_WHR = :XLXSCLHQ_WHR, XLXSCLHQ_WHSJ = :XLXSCLHQ_WHSJ"); + SQL.Add(" where XLXSCLHQ_JGBID =:pJGBID and XLXSCLHQ_YXQS= :pRQ and XLXSCLHQ_BJCLID = :pBJCLID "); + SQL.ParamByName("XLXSCLHQ_WSJG").Value = fJGYLCLJG; + SQL.ParamByName("XLXSCLHQ_HSJG").Value = fJGYLHSJG; + SQL.ParamByName("pRQ").Value = dsCLHQ.Tables[0].Rows[0][0].ToString().Trim(); + //SQL.ParamByName("XLXSCLHQ_BZ").Value = txtBZ.Text; + SQL.ParamByName("XLXSCLHQ_WHR").Value = sWHR; + SQL.ParamByName("XLXSCLHQ_WHRID").Value = sWHRID; + SQL.ParamByName("XLXSCLHQ_WHSJ").Value = DateTime.Now; + SQL.ParamByName("pBJCLID").Value = sBJCLID; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + } + else + { + //插入 + SQL.Clear(); + SQL.Add(" insert into XLXSCLHQ( "); + SQL.Add(" XLXSCLHQ_BJCLID,XLXSCLHQ_JGBID, XLXSCLHQ_WSJG,XLXSCLHQ_HSJG, XLXSCLHQ_YXQS, XLXSCLHQ_YXQZ,"); + SQL.Add(" XLXSCLHQ_BZ, XLXSCLHQ_WHRID, XLXSCLHQ_WHR, XLXSCLHQ_WHSJ )"); + SQL.Add(" values("); + SQL.Add(" :XLXSCLHQ_BJCLID,:XLXSCLHQ_JGBID, :XLXSCLHQ_WSJG,:XLXSCLHQ_HSJG, :XLXSCLHQ_YXQS, :XLXSCLHQ_YXQZ,"); + SQL.Add(" :XLXSCLHQ_BZ, :XLXSCLHQ_WHRID, :XLXSCLHQ_WHR, :XLXSCLHQ_WHSJ )"); + SQL.ParamByName("XLXSCLHQ_BJCLID").Value = sBJCLID; + SQL.ParamByName("XLXSCLHQ_JGBID").Value = sJGBID; + SQL.ParamByName("XLXSCLHQ_WSJG").Value = fJGYLCLJG; + SQL.ParamByName("XLXSCLHQ_HSJG").Value = fJGYLHSJG; + SQL.ParamByName("XLXSCLHQ_YXQS").Value = "1900-01-01 00:00:00.000"; + SQL.ParamByName("XLXSCLHQ_YXQZ").Value = "1900-01-01 00:00:00.000"; + SQL.ParamByName("XLXSCLHQ_BZ").Value = ""; + SQL.ParamByName("XLXSCLHQ_WHR").Value = sWHR; + SQL.ParamByName("XLXSCLHQ_WHRID").Value = sWHRID; + SQL.ParamByName("XLXSCLHQ_WHSJ").Value = DateTime.Now; + dberp.ExecSQL(SQL); + } + + //处理 因为铜导致的--铜丝,铜带等数据的变更 + string sJGLBJCL = ""; + string sJGLBJCLID = ""; + bool bJGBJJFP = XLBJDUtils.HasJGBWLHQ(sJGBID);//判断价格表是否记录物料行情 + if (dsBJCL.Tables[0].Rows.Count > 0) + { + //判断 加工原料 铜 + for (int i = 0; i < dsBJCL.Tables[0].Rows.Count; i++) + { + sJGLBJCLID = dsBJCL.Tables[0].Rows[i]["XLXSBJCL_BJCLID"].ToString().Trim(); + if (!dsBJCL.Tables[0].Rows[i]["XLXSBJCL_JGYBJCLID"].ToString().Trim().Equals("")) + { + sJGLBJCL = sJGLBJCL + dsBJCL.Tables[0].Rows[i]["XLXSBJCL_BJCLMC"].ToString().Trim() + "、"; + SQL.Clear(); + //查询是否存在记录 + SQL.Add("select 1 from XLXSCLHQ where XLXSCLHQ_JGBID =:pJGBID and XLXSCLHQ_YXQS= :pRQ and XLXSCLHQ_BJCLID = :pBJCLID "); + SQL.ParamByName("pJGBID").Value = sJGBID; + SQL.ParamByName("pRQ").Value = "1900-01-01 00:00:00.000"; + SQL.ParamByName("pBJCLID").Value = sJGLBJCLID; + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + SQL.Clear(); + SQL.Add(" update XLXSCLHQ "); + SQL.Add(" set XLXSCLHQ_WSJG1 = :XLXSCLHQ_WSJG,XLXSCLHQ_HSJG1=:XLXSCLHQ_HSJG, "); + SQL.Add(" XLXSCLHQ_WHRID = :XLXSCLHQ_WHRID, XLXSCLHQ_WHR = :XLXSCLHQ_WHR, XLXSCLHQ_WHSJ = :XLXSCLHQ_WHSJ"); + SQL.Add(" where XLXSCLHQ_JGBID =:pJGBID and XLXSCLHQ_YXQS= :pRQ and XLXSCLHQ_BJCLID = :pBJCLID "); + + SQL.ParamByName("XLXSCLHQ_WSJG").Value = fJGYLCLJG; + SQL.ParamByName("XLXSCLHQ_HSJG").Value = fJGYLHSJG; + SQL.ParamByName("XLXSCLHQ_WHR").Value = sWHR; + SQL.ParamByName("XLXSCLHQ_WHRID").Value = sWHRID; + SQL.ParamByName("XLXSCLHQ_WHSJ").Value = DateTime.Now; + SQL.ParamByName("pRQ").Value = "1900-01-01 00:00:00.000"; + SQL.ParamByName("pBJCLID").Value = sJGLBJCLID; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + } + else + { + SQL.Clear(); + SQL.Add(" insert into XLXSCLHQ( "); + SQL.Add(" XLXSCLHQ_BJCLID,XLXSCLHQ_JGBID, XLXSCLHQ_WSJG1,XLXSCLHQ_HSJG1,XLXSCLHQ_WSJGF,XLXSCLHQ_HSJGF, "); + SQL.Add(" XLXSCLHQ_JGYBJCLID1,XLXSCLHQ_JGBL1,"); + SQL.Add(" XLXSCLHQ_YXQS, XLXSCLHQ_YXQZ,XLXSCLHQ_BZ, XLXSCLHQ_WHRID, XLXSCLHQ_WHR, XLXSCLHQ_WHSJ )"); + SQL.Add(" SELECT :pBJCLID,:pJGBID, :XLXSCLHQ_WSJG,:XLXSCLHQ_HSJG, ");//此处好像始终select不到记录? + SQL.Add(" isnull(XLXSCLHQ_WSJGF,0),isnull(XLXSCLHQ_HSJGF,0), "); + SQL.Add(" XLXSCLHQ_JGYBJCLID1, isnull(XLXSCLHQ_JGBL1,0), "); + SQL.Add(" :pYXQS, :XLXSCLHQ_YXQZ,"); + SQL.Add(" :XLXSCLHQ_BZ, :XLXSCLHQ_WHRID, :XLXSCLHQ_WHR, :XLXSCLHQ_WHSJ from XLXSCLHQ "); + SQL.Add(" where XLXSCLHQ_JGBID=:pJGBID "); + SQL.Add(" and XLXSCLHQ_BJCLID=:pBJCLID"); + SQL.Add(" and XLXSCLHQ_YXQS= :pYXQS"); + + SQL.ParamByName("XLXSCLHQ_WSJG").Value = fJGYLCLJG; + SQL.ParamByName("XLXSCLHQ_HSJG").Value = fJGYLHSJG; + SQL.ParamByName("pYXQS").Value = "1900-01-01 00:00:00.000"; + SQL.ParamByName("XLXSCLHQ_YXQZ").Value = "1900-01-01 00:00:00.000"; + SQL.ParamByName("XLXSCLHQ_BZ").Value = ""; + SQL.ParamByName("XLXSCLHQ_WHR").Value = sWHR; + SQL.ParamByName("XLXSCLHQ_WHRID").Value = sWHRID; + SQL.ParamByName("XLXSCLHQ_WHSJ").Value = DateTime.Now; + SQL.ParamByName("pBJCLID").Value = sJGLBJCLID; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + } + + //更新或插入后处理加工料的HSJG、WSJG + SQL.Clear(); + SQL.Add(" update XLXSCLHQ set XLXSCLHQ_WSJG=XLXSCLHQ_WSJG1*XLXSCLHQ_JGBL1+XLXSCLHQ_WSJGF, "); + SQL.Add(" XLXSCLHQ_HSJG=XLXSCLHQ_HSJG1*XLXSCLHQ_JGBL1+XLXSCLHQ_HSJGF "); + SQL.Add(" where XLXSCLHQ_JGBID =:pJGBID and XLXSCLHQ_YXQS= :pRQ and XLXSCLHQ_BJCLID = :pBJCLID "); + SQL.ParamByName("pRQ").Value = "1900-01-01 00:00:00.000"; + SQL.ParamByName("pBJCLID").Value = sJGLBJCLID; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + + if (dsBJCL.Tables[0].Rows[i]["XLXSBJCL_BJHQ"].ToString().Trim().Equals("2"))//2|物料行情 + { + if (bJGBJJFP) + { + SQL.Clear(); + SQL.Add("update XLXSWLHQ set XLXSWLHQ_HSJG1=:pJGYLHSJG,XLXSWLHQ_WSJG1=:pJGYLWSJG,"); + SQL.Add(" XLXSWLHQ_WHRID = :XLXSWLHQ_WHRID, XLXSWLHQ_WHR = :XLXSWLHQ_WHR, XLXSWLHQ_WHSJ = :XLXSWLHQ_WHSJ "); + SQL.Add("where XLXSWLHQ_JGBID=:pJGBID "); + SQL.Add(" and exists(select 1 from XLXSBJCLWL where XLXSBJCLWL_WLID=XLXSWLHQ_WLID and XLXSBJCLWL_BJCLID=:pBJCLID)"); + SQL.ParamByName("pJGYLHSJG").Value = fJGYLHSJG; + SQL.ParamByName("pJGYLWSJG").Value = fJGYLCLJG; + SQL.ParamByName("XLXSWLHQ_WHR").Value = sWHR; + SQL.ParamByName("XLXSWLHQ_WHRID").Value = sWHRID; + SQL.ParamByName("XLXSWLHQ_WHSJ").Value = DateTime.Now; + SQL.ParamByName("pBJCLID").Value = sJGLBJCLID; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + + //更新后处理加工料的HSJG、WSJG + SQL.Clear(); + SQL.Add(" update XLXSWLHQ set XLXSWLHQ_WSJG=XLXSWLHQ_WSJG1*XLXSWLHQ_JGBL1+XLXSWLHQ_WSJGF, "); + SQL.Add(" XLXSWLHQ_HSJG=XLXSWLHQ_HSJG1*XLXSWLHQ_JGBL1+XLXSWLHQ_HSJGF "); + SQL.Add("where XLXSWLHQ_JGBID=:pJGBID "); + SQL.Add(" and exists(select 1 from XLXSBJCLWL where XLXSBJCLWL_WLID=XLXSWLHQ_WLID and XLXSBJCLWL_BJCLID=:pBJCLID)"); + SQL.ParamByName("pBJCLID").Value = sJGLBJCLID; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + } + } + } + } + sJGLBJCL = sJGLBJCL.TrimEnd('、'); + if (!sJGLBJCL.Equals("")) + { + objOUT.Success = true; + objOUT.Message = "已同步完成如下报价材料的行情联动!" + sJGLBJCL + "。"; + } + else + { + + } + } + + } + else + { + //不处理 + } + } + catch (Exception ex) + { + objOUT.Success = false; + objOUT.Message = "调整出现错误,请联系系统管理员!" + ex; + } + return objOUT; + } +} + +public class XLXSBJCL_HQFDKRInfo +{ + + + // 10进制转换成36进制 + public static string int10Convert36(int i) + { + string str = ""; + while (i > 35) + { + int j = i % 36; + str += ((j <= 9) ? Convert.ToChar(j + '0') : Convert.ToChar(j - 10 + 'A')); + i = i / 36; + } + str += ((i <= 9) ? Convert.ToChar(i + '0') : Convert.ToChar(i - 10 + 'A')); + + Char[] c = str.ToCharArray(); + Array.Reverse(c); + return new string(c); + } +} +} diff --git a/BJDEntity.cs b/BJDEntity.cs new file mode 100644 index 0000000..4e155cf --- /dev/null +++ b/BJDEntity.cs @@ -0,0 +1,3581 @@ +// BJDEntity.cs - 报价单实体/数据类 +// 生成文件:仅包含[线缆销售报价单]模块页面所引用的类与静态方法 + + +using GThinking.N_CONTROL; +using GThinking.N_MISPRO; +using GThinking.N_MISPRO.Caching; +using GThinking.N_MISPRO.Data; +using GThinking.N_MISPRO.Utility; +using GThinking.N_MISPROAS; +using GThinking.N_MISPROAS.Services; +using GThinking.N_MISPROAS.Web.AjaxServices; +using GThinking.N_MODEL.Dialog; +using GThinking.N_MODEL.ModelBase; +using GThinking.N_MODEL.Page; +using GThinking.N_PUBLIC; +using GThinking.N_WORKFLOW; +using System; +using System.Collections; +using System.Collections.Generic; +using System.Configuration; +using System.Data; +using System.Text; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.HtmlControls; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; + +namespace GThinking.U20261363_N_XLXSBJ +{ + public class BJFLJSLMXX + { + /// + /// 报价分类ID + /// + private string _XLXSBJFLJSLM_BJFLID = string.Empty; + + public string XLXSBJFLJSLM_BJFLID + { + get { return _XLXSBJFLJSLM_BJFLID; } + set { _XLXSBJFLJSLM_BJFLID = value; } + } + + /// + /// 角色类型 + /// + private string _XLXSBJFLJSLM_JSLX = string.Empty; + + public string XLXSBJFLJSLM_JSLX + { + get { return _XLXSBJFLJSLM_JSLX; } + set { _XLXSBJFLJSLM_JSLX = value; } + } + + /// + /// 栏目类型 + /// + private string _XLXSBJFLJSLM_LMLX = string.Empty; + + public string XLXSBJFLJSLM_LMLX + { + get { return _XLXSBJFLJSLM_LMLX; } + set { _XLXSBJFLJSLM_LMLX = value; } + } + + /// + /// 栏目ID + /// + private string _XLXSBJFLJSLM_LMID = string.Empty; + + public string XLXSBJFLJSLM_LMID + { + get { return _XLXSBJFLJSLM_LMID; } + set { _XLXSBJFLJSLM_LMID = value; } + } + + /// + /// 隐藏标志 + /// + private string _XLXSBJFLJSLM_YCBZ = string.Empty; + + public string XLXSBJFLJSLM_YCBZ + { + get { return _XLXSBJFLJSLM_YCBZ; } + set { _XLXSBJFLJSLM_YCBZ = value; } + } + } + public class BJFLXX + { + #region 成员变量 + + /// + /// 报价分类ID + /// + private string _XLXSBJFL_BJFLID = string.Empty; + + public string XLXSBJFL_BJFLID + { + get { return _XLXSBJFL_BJFLID; } + set { _XLXSBJFL_BJFLID = value; } + } + + /// + /// 报价分类名称 + /// + private string _XLXSBJFL_BJFLMC = string.Empty; + + public string XLXSBJFL_BJFLMC + { + get { return _XLXSBJFL_BJFLMC; } + set { _XLXSBJFL_BJFLMC = value; } + } + + /// + /// 启用日期 + /// + private string _XLXSBJFL_QYRQ = string.Empty; + + public string XLXSBJFL_QYRQ + { + get { return _XLXSBJFL_QYRQ; } + set { _XLXSBJFL_QYRQ = value; } + } + + /// + /// 停用标志 + /// + private string _XLXSBJFL_TYBZ = string.Empty; + + public string XLXSBJFL_TYBZ + { + get { return _XLXSBJFL_TYBZ; } + set { _XLXSBJFL_TYBZ = value; } + } + + /// + /// 停用日期 + /// + private string _XLXSBJFL_TYRQ = string.Empty; + + public string XLXSBJFL_TYRQ + { + get { return _XLXSBJFL_TYRQ; } + set { _XLXSBJFL_TYRQ = value; } + } + + /// + /// 备注 + /// + private string _XLXSBJFL_BZ = string.Empty; + + public string XLXSBJFL_BZ + { + get { return _XLXSBJFL_BZ; } + set { _XLXSBJFL_BZ = value; } + } + + /// + /// 维护人 + /// + private string _XLXSBJFL_WHR = string.Empty; + + public string XLXSBJFL_WHR + { + get { return _XLXSBJFL_WHR; } + set { _XLXSBJFL_WHR = value; } + } + + /// + /// 维护人ID + /// + private string _XLXSBJFL_WHRID = string.Empty; + + public string XLXSBJFL_WHRID + { + get { return _XLXSBJFL_WHRID; } + set { _XLXSBJFL_WHRID = value; } + } + + /// + /// 维护时间 + /// + private string _XLXSBJFL_WHSJ = string.Empty; + + public string XLXSBJFL_WHSJ + { + get { return _XLXSBJFL_WHSJ; } + set { _XLXSBJFL_WHSJ = value; } + } + + /// + /// 销售区域IDS + /// + private string _XLXSBJFL_XSQYIDS = string.Empty; + + public string XLXSBJFL_XSQYIDS + { + get { return _XLXSBJFL_XSQYIDS; } + set { _XLXSBJFL_XSQYIDS = value; } + } + + /// + /// 价格表调价因素S + /// + private string _XLXSBJFL_JGBTJYSS = string.Empty; + + public string XLXSBJFL_JGBTJYSS + { + get { return _XLXSBJFL_JGBTJYSS; } + set { _XLXSBJFL_JGBTJYSS = value; } + } + + /// + /// 默认查库存 + /// + private string _XLXSBJFL_MRCKC = string.Empty; + + public string XLXSBJFL_MRCKC + { + get { return _XLXSBJFL_MRCKC; } + set { _XLXSBJFL_MRCKC = value; } + } + + /// + /// 价格表IDS + /// + private string _XLXSBJFL_JGBIDS = string.Empty; + + public string XLXSBJFL_JGBIDS + { + get { return _XLXSBJFL_JGBIDS; } + set { _XLXSBJFL_JGBIDS = value; } + } + + /// + /// 产品目录ID + /// + private string _XLXSBJFL_CPMLID = string.Empty; + + public string XLXSBJFL_CPMLID + { + get { return _XLXSBJFL_CPMLID; } + set { _XLXSBJFL_CPMLID = value; } + } + + /// + /// 显示价格表基价 + /// + private string _XLXSBJFL_XSJGBJJ = string.Empty; + + public string XLXSBJFL_XSJGBJJ + { + get { return _XLXSBJFL_XSJGBJJ; } + set { _XLXSBJFL_XSJGBJJ = value; } + } + + /// + /// 显示价格表表价价差额 + /// + private string _XLXSBJFL_XSJGBBJJCE = string.Empty; + + public string XLXSBJFL_XSJGBBJJCE + { + get { return _XLXSBJFL_XSJGBBJJCE; } + set { _XLXSBJFL_XSJGBBJJCE = value; } + } + + /// + /// 表价价差率类型 + /// + private string _XLXSBJFL_BJJCLLX = string.Empty; + + public string XLXSBJFL_BJJCLLX + { + get { return _XLXSBJFL_BJJCLLX; } + set { _XLXSBJFL_BJJCLLX = value; } + } + + /// + /// 料价价差率类型 + /// + private string _XLXSBJFL_LJJCLLX = string.Empty; + + public string XLXSBJFL_LJJCLLX + { + get { return _XLXSBJFL_LJJCLLX; } + set { _XLXSBJFL_LJJCLLX = value; } + } + + /// + /// 调整材料行情 + /// + private string _XLXSBJFL_TZCLHQ = string.Empty; + + public string XLXSBJFL_TZCLHQ + { + get { return _XLXSBJFL_TZCLHQ; } + set { _XLXSBJFL_TZCLHQ = value; } + } + + /// + /// 调整物料行情 + /// + private string _XLXSBJFL_TZWLHQ = string.Empty; + + public string XLXSBJFL_TZWLHQ + { + get { return _XLXSBJFL_TZWLHQ; } + set { _XLXSBJFL_TZWLHQ = value; } + } + + /// + /// 调整价格表表价 + /// + private string _XLXSBJFL_TZJGBBJ = string.Empty; + + public string XLXSBJFL_TZJGBBJ + { + get { return _XLXSBJFL_TZJGBBJ; } + set { _XLXSBJFL_TZJGBBJ = value; } + } + + /// + /// 表价只读事务 + /// + private string _XLXSBJFL_JGBBJZDWPID = string.Empty; + + public string XLXSBJFL_JGBBJZDWPID + { + get { return _XLXSBJFL_JGBBJZDWPID; } + set { _XLXSBJFL_JGBBJZDWPID = value; } + } + + /// + /// 调整表价报价不变 + /// + private string _XLXSBJFL_TZBJBJBB = string.Empty; + + public string XLXSBJFL_TZBJBJBB + { + get { return _XLXSBJFL_TZBJBJBB; } + set { _XLXSBJFL_TZBJBJBB = value; } + } + + /// + /// 显示调整产品报价 + /// + private string _XLXSBJFL_XSTZCPBJ = string.Empty; + + public string XLXSBJFL_XSTZCPBJ + { + get { return _XLXSBJFL_XSTZCPBJ; } + set { _XLXSBJFL_XSTZCPBJ = value; } + } + + /// + /// 显示调整报价金额 + /// + private string _XLXSBJFL_XSTZBJJE = string.Empty; + + public string XLXSBJFL_XSTZBJJE + { + get { return _XLXSBJFL_XSTZBJJE; } + set { _XLXSBJFL_XSTZBJJE = value; } + } + + /// + /// 锁定价格表材料行情范围 + /// + private string _XLXSBJFL_SDJGBCLHQFW = string.Empty; + + public string XLXSBJFL_SDJGBCLHQFW + { + get { return _XLXSBJFL_SDJGBCLHQFW; } + set { _XLXSBJFL_SDJGBCLHQFW = value; } + } + + /// + /// 报价单行情来源 + /// + private string _XLXSBJFL_BJDHQLY = string.Empty; + + public string XLXSBJFL_BJDHQLY + { + get { return _XLXSBJFL_BJDHQLY; } + set { _XLXSBJFL_BJDHQLY = value; } + } + + /// + /// 报价产品辅助检索 + /// + private string _XLXSBJFL_BJCPFZJS = string.Empty; + + public string XLXSBJFL_BJCPFZJS + { + get { return _XLXSBJFL_BJCPFZJS; } + set { _XLXSBJFL_BJCPFZJS = value; } + } + + /// + /// 型号按报价次数倒排 + /// + private string _XLXSBJFL_XHABJCSDP = string.Empty; + + public string XLXSBJFL_XHABJCSDP + { + get { return _XLXSBJFL_XHABJCSDP; } + set { _XLXSBJFL_XHABJCSDP = value; } + } + + /// + /// 计运费 + /// + private string _XLXSBJFL_JYF = string.Empty; + + public string XLXSBJFL_JYF + { + get { return _XLXSBJFL_JYF; } + set { _XLXSBJFL_JYF = value; } + } + + /// + /// 运费物料ID + /// + private string _XLXSBJFL_YFWLID = string.Empty; + + public string XLXSBJFL_YFWLID + { + get { return _XLXSBJFL_YFWLID; } + set { _XLXSBJFL_YFWLID = value; } + } + + /// + /// 报价含运费 + /// + private string _XLXSBJFL_BJHYF = string.Empty; + + public string XLXSBJFL_BJHYF + { + get { return _XLXSBJFL_BJHYF; } + set { _XLXSBJFL_BJHYF = value; } + } + + /// + /// 模型编号 + /// + private string _XLXSBJFL_MXBH = string.Empty; + + public string XLXSBJFL_MXBH + { + get { return _XLXSBJFL_MXBH; } + set { _XLXSBJFL_MXBH = value; } + } + + /// + /// 铜报价材料ID + /// + private string _XLXSBJFL_TBJCLID = string.Empty; + + public string XLXSBJFL_TBJCLID + { + get { return _XLXSBJFL_TBJCLID; } + set { _XLXSBJFL_TBJCLID = value; } + } + + /// + /// 铝报价材料ID + /// + private string _XLXSBJFL_LBJCLID = string.Empty; + + public string XLXSBJFL_LBJCLID + { + get { return _XLXSBJFL_LBJCLID; } + set { _XLXSBJFL_LBJCLID = value; } + } + + /// + /// 重量关注材料S + /// + private string _XLXSBJFL_ZLGZCLS = string.Empty; + + public string XLXSBJFL_ZLGZCLS + { + get { return _XLXSBJFL_ZLGZCLS; } + set { _XLXSBJFL_ZLGZCLS = value; } + } + + /// + /// 报价低于表价提醒色 + /// + private string _XLXSBJFL_BJDYBJTXS = string.Empty; + + public string XLXSBJFL_BJDYBJTXS + { + get { return _XLXSBJFL_BJDYBJTXS; } + set { _XLXSBJFL_BJDYBJTXS = value; } + } + + /// + /// 表价缺失提醒色 + /// + private string _XLXSBJFL_BJQSTXS = string.Empty; + + public string XLXSBJFL_BJQSTXS + { + get { return _XLXSBJFL_BJQSTXS; } + set { _XLXSBJFL_BJQSTXS = value; } + } + /// + ///限价低于报价提醒色 + /// + private string _XLXSBJFL_XJDYBJTXS = string.Empty; + + public string XLXSBJFL_XJDYBJTXS + { + get { return _XLXSBJFL_XJDYBJTXS; } + set { _XLXSBJFL_XJDYBJTXS = value; } + } + + /// + /// 产品报价默认小数位数 + /// + private string _XLXSBJFL_CPBJMRXSWS = string.Empty; + + public string XLXSBJFL_CPBJMRXSWS + { + get { return _XLXSBJFL_CPBJMRXSWS; } + set { _XLXSBJFL_CPBJMRXSWS = value; } + } + + /// + /// 相同产品报价一致 + /// + private string _XLXSBJFL_XTCPBJYZ = string.Empty; + + public string XLXSBJFL_XTCPBJYZ + { + get { return _XLXSBJFL_XTCPBJYZ; } + set { _XLXSBJFL_XTCPBJYZ = value; } + } + + /// + /// 最低限价公式 + /// + private string _XLXSBJFL_ZDXJGS = string.Empty; + + public string XLXSBJFL_ZDXJGS + { + get { return _XLXSBJFL_ZDXJGS; } + set { _XLXSBJFL_ZDXJGS = value; } + } + + /// + /// 显示最低限价 + /// + private string _XLXSBJFL_XSZDXJ = string.Empty; + + public string XLXSBJFL_XSZDXJ + { + get { return _XLXSBJFL_XSZDXJ; } + set { _XLXSBJFL_XSZDXJ = value; } + } + + /// + /// 最低限价价差率类型 + /// + private string _XLXSBJFL_ZDXJJCLLX = string.Empty; + + public string XLXSBJFL_ZDXJJCLLX + { + get { return _XLXSBJFL_ZDXJJCLLX; } + set { _XLXSBJFL_ZDXJJCLLX = value; } + } + + /// + /// 仅录入报价产品 + /// + private string _XLXSBJFL_JLRBJCP = string.Empty; + + public string XLXSBJFL_JLRBJCP + { + get { return _XLXSBJFL_JLRBJCP; } + set { _XLXSBJFL_JLRBJCP = value; } + } + + /// + /// 价格表表价别名 + /// + private string _XLXSBJFL_JGBBJBM = string.Empty; + + public string XLXSBJFL_JGBBJBM + { + get { return _XLXSBJFL_JGBBJBM; } + set { _XLXSBJFL_JGBBJBM = value; } + } + + /// + /// 记录报价单行情 + /// + private string _XLXSBJFL_JLBJDHQ = string.Empty; + + public string XLXSBJFL_JLBJDHQ + { + get { return _XLXSBJFL_JLBJDHQ; } + set { _XLXSBJFL_JLBJDHQ = value; } + } + + /// + /// 按报价单行情计算表价 + /// + private string _XLXSBJFL_ABJDHQJSBJ = string.Empty; + + public string XLXSBJFL_ABJDHQJSBJ + { + get { return _XLXSBJFL_ABJDHQJSBJ; } + set { _XLXSBJFL_ABJDHQJSBJ = value; } + } + + /// + /// 非价格表产品不计算表价 + /// + private string _XLXSBJFL_FJGBCPBJSBJ = string.Empty; + + public string XLXSBJFL_FJGBCPBJSBJ + { + get { return _XLXSBJFL_FJGBCPBJSBJ; } + set { _XLXSBJFL_FJGBCPBJSBJ = value; } + } + + /// + /// 型号规格右模糊检索 + /// + private string _XLXSBJFL_XHGGYMHJS = string.Empty; + + public string XLXSBJFL_XHGGYMHJS + { + get { return _XLXSBJFL_XHGGYMHJS; } + set { _XLXSBJFL_XHGGYMHJS = value; } + } + + /// + /// 显示序号 + /// + private string _XLXSBJFL_XSXH = string.Empty; + + public string XLXSBJFL_XSXH + { + get { return _XLXSBJFL_XSXH; } + set { _XLXSBJFL_XSXH = value; } + } + + /// + /// 报价分类特征码 + /// + private string _XLXSBJFL_BJFLTZM = string.Empty; + + public string XLXSBJFL_BJFLTZM + { + get { return _XLXSBJFL_BJFLTZM; } + set { _XLXSBJFL_BJFLTZM = value; } + } + + /// + /// 料价价差率批量调价范围 + /// + private string _XLXSBJFL_LJJCLPLTJFW = string.Empty; + + public string XLXSBJFL_LJJCLPLTJFW + { + get { return _XLXSBJFL_LJJCLPLTJFW; } + set { _XLXSBJFL_LJJCLPLTJFW = value; } + } + + /// + /// 不按标准覆盖电压 + /// + private string _XLXSBJFL_BABZFGDY = string.Empty; + + public string XLXSBJFL_BABZFGDY + { + get { return _XLXSBJFL_BABZFGDY; } + set { _XLXSBJFL_BABZFGDY = value; } + } + + /// + /// 截面比公式因子ID + /// + private string _XLXSBJFL_JMBGSYZID = string.Empty; + + public string XLXSBJFL_JMBGSYZID + { + get { return _XLXSBJFL_JMBGSYZID; } + set { _XLXSBJFL_JMBGSYZID = value; } + } + + /// + /// 调整前产品报价公式 + /// + private string _XLXSBJFL_TZQCPBJGS = string.Empty; + + public string XLXSBJFL_TZQCPBJGS + { + get { return _XLXSBJFL_TZQCPBJGS; } + set { _XLXSBJFL_TZQCPBJGS = value; } + } + + /// + /// 显示意向价 + /// + private string _XLXSBJFL_XSYXJ = string.Empty; + + public string XLXSBJFL_XSYXJ + { + get { return _XLXSBJFL_XSYXJ; } + set { _XLXSBJFL_XSYXJ = value; } + } + + /// + /// 显示线缆标准描述 + /// + private string _XLXSBJFL_XSXLBZMS = string.Empty; + + public string XLXSBJFL_XSXLBZMS + { + get { return _XLXSBJFL_XSXLBZMS; } + set { _XLXSBJFL_XSXLBZMS = value; } + } + + /// + /// 调整报价单行情料价 + /// + private string _XLXSBJFL_TZBJDHQLJ = string.Empty; + + public string XLXSBJFL_TZBJDHQLJ + { + get { return _XLXSBJFL_TZBJDHQLJ; } + set { _XLXSBJFL_TZBJDHQLJ = value; } + } + + /// + /// 调整报价 + /// + private string _XLXSBJFL_TZBJ = string.Empty; + + public string XLXSBJFL_TZBJ + { + get { return _XLXSBJFL_TZBJ; } + set { _XLXSBJFL_TZBJ = value; } + } + + /// + /// 录入报价产品事务 + /// + private string _XLXSBJFL_LRBJCPWPID = string.Empty; + + public string XLXSBJFL_LRBJCPWPID + { + get { return _XLXSBJFL_LRBJCPWPID; } + set { _XLXSBJFL_LRBJCPWPID = value; } + } + + /// + /// 报价只读事务 + /// + private string _XLXSBJFL_CPBJZDWPID = string.Empty; + + public string XLXSBJFL_CPBJZDWPID + { + get { return _XLXSBJFL_CPBJZDWPID; } + set { _XLXSBJFL_CPBJZDWPID = value; } + } + + /// + /// 价格模板GRPID + /// + private string _XLXSBJFL_JGMBGRPID = string.Empty; + + public string XLXSBJFL_JGMBGRPID + { + get { return _XLXSBJFL_JGMBGRPID; } + set { _XLXSBJFL_JGMBGRPID = value; } + } + + /// + /// 最低限价价差率下限 + /// + private string _XLXSBJFL_ZDXJJCLXX = string.Empty; + + public string XLXSBJFL_ZDXJJCLXX + { + get { return _XLXSBJFL_ZDXJJCLXX; } + set { _XLXSBJFL_ZDXJJCLXX = value; } + } + + /// + /// 最低限价价差率提醒色 + /// + private string _XLXSBJFL_ZDXJJCLTXS = string.Empty; + + public string XLXSBJFL_ZDXJJCLTXS + { + get { return _XLXSBJFL_ZDXJJCLTXS; } + set { _XLXSBJFL_ZDXJJCLTXS = value; } + } + + /// + /// 表价料价价差率类型 + /// + private string _XLXSBJFL_BJLJJCLLX = string.Empty; + + public string XLXSBJFL_BJLJJCLLX + { + get { return _XLXSBJFL_BJLJJCLLX; } + set { _XLXSBJFL_BJLJJCLLX = value; } + } + + /// + /// 显示印字 + /// + private string _XLXSBJFL_XSYZ = string.Empty; + + public string XLXSBJFL_XSYZ + { + get { return _XLXSBJFL_XSYZ; } + set { _XLXSBJFL_XSYZ = value; } + } + + /// + /// 显示包号 + /// + private string _XLXSBJFL_XSFBH = string.Empty; + + public string XLXSBJFL_XSFBH + { + get { return _XLXSBJFL_XSFBH; } + set { _XLXSBJFL_XSFBH = value; } + } + + /// + /// 显示产品报价限价 + /// + private string _XLXSBJFL_XSCPBJXJ = string.Empty; + + public string XLXSBJFL_XSCPBJXJ + { + get { return _XLXSBJFL_XSCPBJXJ; } + set { _XLXSBJFL_XSCPBJXJ = value; } + } + + /// + /// 显示原始产品 + /// + private string _XLXSBJFL_XSYSCP = string.Empty; + + public string XLXSBJFL_XSYSCP + { + get { return _XLXSBJFL_XSYSCP; } + set { _XLXSBJFL_XSYSCP = value; } + } + + /// + /// 最低限价取自报价的分类 + /// + private string _XLXSBJFL_ZDXJQZBJDFL = string.Empty; + + public string XLXSBJFL_ZDXJQZBJDFL + { + get { return _XLXSBJFL_ZDXJQZBJDFL; } + set { _XLXSBJFL_ZDXJQZBJDFL = value; } + } + + /// + /// 铜铝价调整更新其他材料 + /// + private string _XLXSBJFL_TLJTZGXQTCL = string.Empty; + + public string XLXSBJFL_TLJTZGXQTCL + { + get { return _XLXSBJFL_TLJTZGXQTCL; } + set { _XLXSBJFL_TLJTZGXQTCL = value; } + } + + /// + /// 报价单行情料价别名 + /// + private string _XLXSBJFL_BJDHQLJBM = string.Empty; + + public string XLXSBJFL_BJDHQLJBM + { + get { return _XLXSBJFL_BJDHQLJBM; } + set { _XLXSBJFL_BJDHQLJBM = value; } + } + + /// + /// 报价别名 + /// + private string _XLXSBJFL_BJBM = string.Empty; + + public string XLXSBJFL_BJBM + { + get { return _XLXSBJFL_BJBM; } + set { _XLXSBJFL_BJBM = value; } + } + + /// + /// 显示调整最低限价 + /// + private string _XLXSBJFL_XSTZZDXJ = string.Empty; + + public string XLXSBJFL_XSTZZDXJ + { + get { return _XLXSBJFL_XSTZZDXJ; } + set { _XLXSBJFL_XSTZZDXJ = value; } + } + + /// + /// 结算价公式 + /// + private string _XLXSBJFL_JSJGS = string.Empty; + + public string XLXSBJFL_JSJGS + { + get { return _XLXSBJFL_JSJGS; } + set { _XLXSBJFL_JSJGS = value; } + } + + /// + /// 仅加载价格表型号 + /// + private string _XLXSBJFL_JJZJGBXH = string.Empty; + + public string XLXSBJFL_JJZJGBXH + { + get { return _XLXSBJFL_JJZJGBXH; } + set { _XLXSBJFL_JJZJGBXH = value; } + } + + /// + /// 意向价价差率类型 + /// + private string _XLXSBJFL_YXJJCLLX = string.Empty; + + public string XLXSBJFL_YXJJCLLX + { + get { return _XLXSBJFL_YXJJCLLX; } + set { _XLXSBJFL_YXJJCLLX = value; } + } + + /// + /// 录入因子ID + /// + private string _XLXSBJFL_XSYLRYZID = string.Empty; + + public string XLXSBJFL_XSYLRYZID + { + get { return _XLXSBJFL_XSYLRYZID; } + set { _XLXSBJFL_XSYLRYZID = value; } + } + + /// + /// 可见价格环节 + /// + private string _XLXSBJFL_XSYKJJGHJ = string.Empty; + + public string XLXSBJFL_XSYKJJGHJ + { + get { return _XLXSBJFL_XSYKJJGHJ; } + set { _XLXSBJFL_XSYKJJGHJ = value; } + } + + /// + /// 可见价格栏目 + /// + private string _XLXSBJFL_XSYKJJGLM = string.Empty; + + public string XLXSBJFL_XSYKJJGLM + { + get { return _XLXSBJFL_XSYKJJGLM; } + set { _XLXSBJFL_XSYKJJGLM = value; } + } + + /// + /// 调整用量比例 + /// + private string _XLXSBJFL_TZYLBL = string.Empty; + + public string XLXSBJFL_TZYLBL + { + get { return _XLXSBJFL_TZYLBL; } + set { _XLXSBJFL_TZYLBL = value; } + } + + /// + /// 结算价别名 + /// + private string _XLXSBJFL_JSJBM = string.Empty; + + public string XLXSBJFL_JSJBM + { + get { return _XLXSBJFL_JSJBM; } + set { _XLXSBJFL_JSJBM = value; } + } + + /// + /// 结算价小数位数 + /// + private string _XLXSBJFL_JSJXSWS = string.Empty; + + public string XLXSBJFL_JSJXSWS + { + get { return _XLXSBJFL_JSJXSWS; } + set { _XLXSBJFL_JSJXSWS = value; } + } + + + /// + /// 结算价价差率类型 + /// + private string _XLXSBJFL_JSJJCLLX = string.Empty; + + public string XLXSBJFL_JSJJCLLX + { + get { return _XLXSBJFL_JSJJCLLX; } + set { _XLXSBJFL_JSJJCLLX = value; } + } + + /// + /// 每页行数上限 + /// + private string _XLXSBJFL_MYHSSX = string.Empty; + + public string XLXSBJFL_MYHSSX + { + get { return _XLXSBJFL_MYHSSX; } + set { _XLXSBJFL_MYHSSX = value; } + } + + private string _XLXSBJFL_BJJCLBJRQDWCP = string.Empty; + + public string XLXSBJFL_BJJCLBJRQDWCP + { + get { return _XLXSBJFL_BJJCLBJRQDWCP; } + set { _XLXSBJFL_BJJCLBJRQDWCP = value; } + } + + private string _XLXSBJFL_LJJCLBJRQDWCP = string.Empty; + + public string XLXSBJFL_LJJCLBJRQDWCP + { + get { return _XLXSBJFL_LJJCLBJRQDWCP; } + set { _XLXSBJFL_LJJCLBJRQDWCP = value; } + } + + private string _XLXSBJFL_ZDXJJCLBJRQDWCP = string.Empty; + + public string XLXSBJFL_ZDXJJCLBJRQDWCP + { + get { return _XLXSBJFL_ZDXJJCLBJRQDWCP; } + set { _XLXSBJFL_ZDXJJCLBJRQDWCP = value; } + } + + /// + /// 截面比公式别名 + /// + private string _XLXSBJFL_JMBGSBM = string.Empty; + + public string XLXSBJFL_JMBGSBM + { + get { return _XLXSBJFL_JMBGSBM; } + set { _XLXSBJFL_JMBGSBM = value; } + } + + /// + /// 显示临时表价 + /// + private string _XLXSBJFL_XSLSBJ = string.Empty; + + public string XLXSBJFL_XSLSBJ + { + get { return _XLXSBJFL_XSLSBJ; } + set { _XLXSBJFL_XSLSBJ = value; } + } + + /// + /// 锁铜 + /// + private string _XLXSBJFL_ST = string.Empty; + + public string XLXSBJFL_ST + { + get { return _XLXSBJFL_ST; } + set { _XLXSBJFL_ST = value; } + } + + #endregion + + #region 成员方法 + + public bool XSXLBZMS() + { + if (XLXSBJFL_XSXLBZMS.Equals("Y")) + return true; + return false; + } + + public bool JJZJGBXHChecked() + { + if (XLXSBJFL_JJZJGBXH.Equals("Y")) + return true; + return false; + } + + public bool XSTZZDXJChecked() + { + if (XLXSBJFL_XSTZZDXJ.Equals("Y")) + return true; + return false; + } + + public bool TLJTZGXQTCLChecked() + { + if (XLXSBJFL_TLJTZGXQTCL.Equals("Y")) + return true; + return false; + } + + public bool XSYSCPChecked() + { + if (XLXSBJFL_XSYSCP.Equals("Y")) + return true; + return false; + } + + public bool XSBHChecked() + { + if (XLXSBJFL_XSFBH.Equals("Y")) + return true; + return false; + } + + public bool XSCPBJXJChecked() + { + if (XLXSBJFL_XSCPBJXJ.Equals("Y")) + return true; + return false; + } + + public bool XSYZChecked() + { + if (XLXSBJFL_XSYZ.Equals("Y")) + return true; + return false; + } + + public bool XSYXJChecked() + { + if (XLXSBJFL_XSYXJ.Equals("Y")) + return true; + return false; + } + + public bool BABZFGDYChecked() + { + if (XLXSBJFL_BABZFGDY.Equals("Y")) + return true; + return false; + } + + public bool XHGGYMHJSChecked() + { + if (XLXSBJFL_XHGGYMHJS.Equals("Y")) + return true; + return false; + } + + public bool JLBJDHQChecked() + { + if (XLXSBJFL_JLBJDHQ.Equals("Y")) + return true; + return false; + } + + public bool JLRBJCPChecked() + { + if (XLXSBJFL_JLRBJCP.Equals("Y")) + return true; + return false; + } + + public bool XSZDXJChecked() + { + if (XLXSBJFL_XSZDXJ.Equals("Y")) + return true; + return false; + } + + public bool XTCPBJYZChecked() + { + if (XLXSBJFL_XTCPBJYZ.Equals("Y")) + return true; + return false; + } + + public bool MRCKCChecked() + { + if (XLXSBJFL_MRCKC.Equals("Y")) + return true; + return false; + } + + public bool XSJGBJJChecked() + { + if (XLXSBJFL_XSJGBJJ.Equals("Y")) + return true; + return false; + } + + public bool XSJGBBJJCEChecked() + { + if (XLXSBJFL_XSJGBBJJCE.Equals("Y")) + return true; + return false; + } + + public bool TZCLHQChecked() + { + if (XLXSBJFL_TZCLHQ.Equals("Y")) + return true; + return false; + } + + public bool TZWLHQChecked() + { + if (XLXSBJFL_TZWLHQ.Equals("Y")) + return true; + return false; + } + + public bool XSTZCPBJChecked() + { + if (XLXSBJFL_XSTZCPBJ.Equals("Y")) + return true; + return false; + } + + public bool XSTZBJJEChecked() + { + if (XLXSBJFL_XSTZBJJE.Equals("Y")) + return true; + return false; + } + + public bool SDJGBCLHQFWChecked() + { + if (XLXSBJFL_SDJGBCLHQFW.Equals("Y")) + return true; + return false; + } + + public bool XSBJLJJCL() + { + if (XLXSBJFL_BJLJJCLLX.Equals("")) + return false; + return true; + } + + public bool XSBJDHQLJ() + { + if (XLXSBJFL_LJJCLLX.Equals("2") || XLXSBJFL_LJJCLLX.Equals("3") || XLXSBJFL_LJJCLLX.Equals("4")) + return true; + return false; + } + + public bool XSLJ() + { + if (XLXSBJFL_LJJCLLX.Equals("1")) + return true; + return false; + } + + public bool XSLJJCL() + { + if (XLXSBJFL_LJJCLLX.Equals("")) + return false; + return true; + } + + public bool XSJCL() + { + if (XLXSBJFL_BJJCLLX.Equals("")) + return false; + return true; + } + + public bool XSZDXJ() + { + if (XLXSBJFL_ZDXJJCLLX.Equals("")) + return false; + return true; + } + + public bool XSTZZDXJ() + { + if (!XSZDXJ() || !XLXSBJFL_XSTZZDXJ.Equals("Y")) + return false; + return true; + } + + public bool XSJSJ() + { + if (XLXSBJFL_JSJGS.Equals("")) + return false; + return true; + } + + public string sXSLJ() + { + if(XSLJ()) + return "Y"; + return "N"; + } + + #endregion + } + public class JGBMLXX + { + #region 成员变量 + + /// + /// 价格表ID + /// + private string _XLXSJGB_JGBID = string.Empty; + + public string XLXSJGB_JGBID + { + get { return _XLXSJGB_JGBID; } + set { _XLXSJGB_JGBID = value; } + } + + /// + /// 有效期始 + /// + private string _XLXSJGB_YXQS = string.Empty; + + public string XLXSJGB_YXQS + { + get { return _XLXSJGB_YXQS; } + set { _XLXSJGB_YXQS = value; } + } + + /// + /// 有效期止 + /// + private string _XLXSJGB_YXQZ = string.Empty; + + public string XLXSJGB_YXQZ + { + get { return _XLXSJGB_YXQZ; } + set { _XLXSJGB_YXQZ = value; } + } + + /// + /// 备注 + /// + private string _XLXSJGB_BZ = string.Empty; + + public string XLXSJGB_BZ + { + get { return _XLXSJGB_BZ; } + set { _XLXSJGB_BZ = value; } + } + + /// + /// 维护人ID + /// + private string _XLXSJGB_WHRID = string.Empty; + + public string XLXSJGB_WHRID + { + get { return _XLXSJGB_WHRID; } + set { _XLXSJGB_WHRID = value; } + } + + /// + /// 维护人 + /// + private string _XLXSJGB_WHR = string.Empty; + + public string XLXSJGB_WHR + { + get { return _XLXSJGB_WHR; } + set { _XLXSJGB_WHR = value; } + } + + /// + /// 维护时间 + /// + private string _XLXSJGB_WHSJ = string.Empty; + + public string XLXSJGB_WHSJ + { + get { return _XLXSJGB_WHSJ; } + set { _XLXSJGB_WHSJ = value; } + } + + /// + /// 模型编号 + /// + private string _XLXSJGB_MXBH = string.Empty; + + public string XLXSJGB_MXBH + { + get { return _XLXSJGB_MXBH; } + set { _XLXSJGB_MXBH = value; } + } + + /// + /// 调价因素 + /// + private string _XLXSJGB_TJYS = string.Empty; + + public string XLXSJGB_TJYS + { + get { return _XLXSJGB_TJYS; } + set { _XLXSJGB_TJYS = value; } + } + + /// + /// 价格表IDs + /// + private string _XLXSJGB_JGBIDS = string.Empty; + + public string XLXSJGB_JGBIDS + { + get { return _XLXSJGB_JGBIDS; } + set { _XLXSJGB_JGBIDS = value; } + } + + /// + /// 销售区域IDS + /// + private string _XLXSJGB_XSQYIDS = string.Empty; + + public string XLXSJGB_XSQYIDS + { + get { return _XLXSJGB_XSQYIDS; } + set { _XLXSJGB_XSQYIDS = value; } + } + + /// + /// 价格表名称 + /// + private string _XLXSJGB_JGBMC = string.Empty; + + public string XLXSJGB_JGBMC + { + get { return _XLXSJGB_JGBMC; } + set { _XLXSJGB_JGBMC = value; } + } + + /// + /// 组合价格表ID + /// + private string _XLXSJGB_JGCIDS = string.Empty; + + public string XLXSJGB_JGCIDS + { + get { return _XLXSJGB_JGCIDS; } + set { _XLXSJGB_JGCIDS = value; } + } + + /// + /// 产品目录ID + /// + private string _XLXSJGB_CPMLID = string.Empty; + + public string XLXSJGB_CPMLID + { + get { return _XLXSJGB_CPMLID; } + set { _XLXSJGB_CPMLID = value; } + } + + /// + /// 表价来源 + /// + private string _XLXSJGB_BJLY = string.Empty; + + public string XLXSJGB_BJLY + { + get { return _XLXSJGB_BJLY; } + set { _XLXSJGB_BJLY = value; } + } + + /// + /// 计算保留方式 + /// + private string _XLXSJGB_JSBLFS = string.Empty; + + public string XLXSJGB_JSBLFS + { + get { return _XLXSJGB_JSBLFS; } + set { _XLXSJGB_JSBLFS = value; } + } + + /// + /// 无税价格计算来源 + /// + private string _XLXSJGB_WSJGJSLY = string.Empty; + + public string XLXSJGB_WSJGJSLY + { + get { return _XLXSJGB_WSJGJSLY; } + set { _XLXSJGB_WSJGJSLY = value; } + } + + /// + /// 增值税率 + /// + private string _XLXSJGB_ZZSL = string.Empty; + + public string XLXSJGB_ZZSL + { + get { return _XLXSJGB_ZZSL; } + set { _XLXSJGB_ZZSL = value; } + } + + /// + /// 基价来源 + /// + private string _XLXSJGB_JJLY = string.Empty; + + public string XLXSJGB_JJLY + { + get { return _XLXSJGB_JJLY; } + set { _XLXSJGB_JJLY = value; } + } + + /// + /// 调价人工号 + /// + private string _XLXSJGB_TJRGH = string.Empty; + + public string XLXSJGB_TJRGH + { + get { return _XLXSJGB_TJRGH; } + set { _XLXSJGB_TJRGH = value; } + } + + /// + /// 调价状态 + /// + private string _XLXSJGB_TJZT = string.Empty; + + public string XLXSJGB_TJZT + { + get { return _XLXSJGB_TJZT; } + set { _XLXSJGB_TJZT = value; } + } + + /// + /// 调价开始时间 + /// + private string _XLXSJGB_TJKSSJ = string.Empty; + + public string XLXSJGB_TJKSSJ + { + get { return _XLXSJGB_TJKSSJ; } + set { _XLXSJGB_TJKSSJ = value; } + } + + /// + /// 调价完成时间 + /// + private string _XLXSJGB_TJWCSJ = string.Empty; + + public string XLXSJGB_TJWCSJ + { + get { return _XLXSJGB_TJWCSJ; } + set { _XLXSJGB_TJWCSJ = value; } + } + + /// + /// 计算公式 + /// + private string _XLXSJGB_JSGS = string.Empty; + + public string XLXSJGB_JSGS + { + get { return _XLXSJGB_JSGS; } + set { _XLXSJGB_JSGS = value; } + } + + + /// + /// 明细排序方式 + /// + private string _XLXSJGB_MXPXFS = string.Empty; + + public string XLXSJGB_MXPXFS + { + get { return _XLXSJGB_MXPXFS; } + set { _XLXSJGB_MXPXFS = value; } + } + + + #endregion + + #region 成员方法 + + public string GetJGBMC() + { + string sYXQS = XLXSJGB_YXQS; + string sYXQZ = XLXSJGB_YXQZ; + string sJGBMC = XLXSJGB_JGBMC; + string sJGBID = XLXSJGB_JGBID; + if (sYXQS.Equals("")) + sYXQS = "--"; + else + sYXQS = CMISproConvert.ConvertDate(sYXQS); + if (sYXQZ.Equals("")) + sYXQZ = "--"; + else + sYXQZ = CMISproConvert.ConvertDate(sYXQZ); + if (sJGBMC.Equals("")) + { + sJGBMC=sJGBID + "|" + sYXQS + "至" + sYXQZ; + } + else + { + sJGBMC= sYXQS + "至" + sYXQZ + "|" + sJGBMC; + } + return sJGBMC; + } + + public bool HasJGBIDS() + { + if (string.IsNullOrEmpty(XLXSJGB_JGBIDS)) + return false; + return true; + } + + public bool HasJGCIDS() + { + if (string.IsNullOrEmpty(XLXSJGB_JGCIDS)) + return false; + return true; + } + + public bool IsQYGS() + { + if (string.IsNullOrEmpty(XLXSJGB_JSGS)) + return false; + return true; + } + + #endregion + } + public class JGBYZXX + { + #region 成员变量 + + /// + /// 价格表ID + /// + private string _XLXSJGBYZ_JGBID = string.Empty; + + public string XLXSJGBYZ_JGBID + { + get { return _XLXSJGBYZ_JGBID; } + set { _XLXSJGBYZ_JGBID = value; } + } + + /// + /// 因子ID + /// + private string _XLXSJGBYZ_YZID = string.Empty; + + public string XLXSJGBYZ_YZID + { + get { return _XLXSJGBYZ_YZID; } + set { _XLXSJGBYZ_YZID = value; } + } + + + + #endregion + } + public class TZYZXX + { + #region 成员变量 + + /// + /// 模型编号 + /// + private string _XLXSTZYZ_MXBH = string.Empty; + + public string XLXSTZYZ_MXBH + { + get { return _XLXSTZYZ_MXBH; } + set { _XLXSTZYZ_MXBH = value; } + } + + /// + /// 因子ID + /// + private string _XLXSTZYZ_YZID = string.Empty; + + public string XLXSTZYZ_YZID + { + get { return _XLXSTZYZ_YZID; } + set { _XLXSTZYZ_YZID = value; } + } + + /// + /// 因子名称 + /// + private string _XLXSTZYZ_YZMC = string.Empty; + + public string XLXSTZYZ_YZMC + { + get { return _XLXSTZYZ_YZMC; } + set { _XLXSTZYZ_YZMC = value; } + } + + /// + /// 默认值 + /// + private string _XLXSTZYZ_MRZ = string.Empty; + + public string XLXSTZYZ_MRZ + { + get { return _XLXSTZYZ_MRZ; } + set { _XLXSTZYZ_MRZ = value; } + } + + /// + /// 显示序号 + /// + private string _XLXSTZYZ_XSXH = string.Empty; + + public string XLXSTZYZ_XSXH + { + get { return _XLXSTZYZ_XSXH; } + set { _XLXSTZYZ_XSXH = value; } + } + + /// + /// 加价方式 + /// + private string _XLXSTZYZ_JJFS = string.Empty; + + public string XLXSTZYZ_JJFS + { + get { return _XLXSTZYZ_JJFS; } + set { _XLXSTZYZ_JJFS = value; } + } + + /// + /// 因子最小值,为空没有下限 + /// + private string _XLXSTZYZ_MINC = string.Empty; + + public string XLXSTZYZ_MINC + { + get { return _XLXSTZYZ_MINC; } + set { _XLXSTZYZ_MINC = value; } + } + + /// + /// 调价因素 + /// + private string _XLXSTZYZ_TJYS = string.Empty; + + public string XLXSTZYZ_TJYS + { + get { return _XLXSTZYZ_TJYS; } + set { _XLXSTZYZ_TJYS = value; } + } + + /// + /// 价格表ID + /// + private string _XLXSTZYZ_JGBID = string.Empty; + + public string XLXSTZYZ_JGBID + { + get { return _XLXSTZYZ_JGBID; } + set { _XLXSTZYZ_JGBID = value; } + } + + /// + /// 调价因子ID + /// + private string _XLXSTZYZ_TJYZID = string.Empty; + + public string XLXSTZYZ_TJYZID + { + get { return _XLXSTZYZ_TJYZID; } + set { _XLXSTZYZ_TJYZID = value; } + } + + /// + /// 不参与调价 + /// + private string _XLXSTZYZ_BCYTJ = string.Empty; + + public string XLXSTZYZ_BCYTJ + { + get { return _XLXSTZYZ_BCYTJ; } + set { _XLXSTZYZ_BCYTJ = value; } + } + + /// + /// 记录哪些因子在工作流事务中显示 + /// + private string _XLXSTZYZ_WPIDLIST = string.Empty; + + public string XLXSTZYZ_WPIDLIST + { + get { return _XLXSTZYZ_WPIDLIST; } + set { _XLXSTZYZ_WPIDLIST = value; } + } + + /// + /// 互斥标志,记录调价因子之间是否存在互斥关系,值域:Y/N 若为Y,则调价时因子值不允许同时存在。 + /// + private string _XLXSTZYZ_HCBZ = string.Empty; + + public string XLXSTZYZ_HCBZ + { + get { return _XLXSTZYZ_HCBZ; } + set { _XLXSTZYZ_HCBZ = value; } + } + + /// + /// 调价类型 + /// + private string _XLXSTZYZ_TJLX = string.Empty; + + public string XLXSTZYZ_TJLX + { + get { return _XLXSTZYZ_TJLX; } + set { _XLXSTZYZ_TJLX = value; } + } + + /// + /// 调因子值因子ID + /// + private string _XLXSTZYZ_TYZZYZID = string.Empty; + + public string XLXSTZYZ_TYZZYZID + { + get { return _XLXSTZYZ_TYZZYZID; } + set { _XLXSTZYZ_TYZZYZID = value; } + } + + /// + /// 因子值只读 + /// + private string _XLXSTZYZ_YZZZD = string.Empty; + + public string XLXSTZYZ_YZZZD + { + get { return _XLXSTZYZ_YZZZD; } + set { _XLXSTZYZ_YZZZD = value; } + } + + /// + /// 按报价产品校验因子值 + /// + private string _XLXSTZYZ_ABJCPJYYZZ = string.Empty; + + public string XLXSTZYZ_ABJCPJYYZZ + { + get { return _XLXSTZYZ_ABJCPJYYZZ; } + set { _XLXSTZYZ_ABJCPJYYZZ = value; } + } + + /// + /// 因子值只读流程,如果为空,代表所有事务。 + /// + private string _XLXSTZYZ_ZDWPIDLIST = string.Empty; + + public string XLXSTZYZ_ZDWPIDLIST + { + get { return _XLXSTZYZ_ZDWPIDLIST; } + set { _XLXSTZYZ_ZDWPIDLIST = value; } + } + + /// + /// 默认调价范围,多选,值域有:1|有表价产品、2|外购产品、3|非外购产品 + /// + private string _XLXSTZYZ_MRTJFW = string.Empty; + + public string XLXSTZYZ_MRTJFW + { + get { return _XLXSTZYZ_MRTJFW; } + set { _XLXSTZYZ_MRTJFW = value; } + } + + /// + /// 因子值必填 + /// + private string _XLXSTZYZ_YZZBT = string.Empty; + + public string XLXSTZYZ_YZZBT + { + get { return _XLXSTZYZ_YZZBT; } + set { _XLXSTZYZ_YZZBT = value; } + } + + /// + /// 记录报价单因子值所依据的调价模块号 + /// + private string _XLXSTZYZ_TJMDID = string.Empty; + + public string XLXSTZYZ_TJMDID + { + get { return _XLXSTZYZ_TJMDID; } + set { _XLXSTZYZ_TJMDID = value; } + } + + /// + /// 标记报价单调价因子是否为覆盖全产品因子。 + /// + private string _XLXSTZYZ_FGQCP = string.Empty; + + public string XLXSTZYZ_FGQCP + { + get { return _XLXSTZYZ_FGQCP; } + set { _XLXSTZYZ_FGQCP = value; } + } + + /// + /// 记录虚拟报价材料 + /// + private string _XLXSTZYZ_BJCLID = string.Empty; + + public string XLXSTZYZ_BJCLID + { + get { return _XLXSTZYZ_BJCLID; } + set { _XLXSTZYZ_BJCLID = value; } + } + + + + #endregion + } + public class UpdJGFLDData + { + /// + /// 调用情况 + /// + private bool _Success = true; + public bool Success + { + get { return _Success; } + set { _Success = value; } + } + + /// + /// 失败or提示信息 + /// + private string _Message = string.Empty; + public string Message + { + get { return _Message; } + set { _Message = value; } + } + } + public class XLXSBJFLYZXX + { + #region 成员变量 + + /// + /// 报价分类ID + /// + private string _XLXSBJFLYZ_BJFLID = string.Empty; + + public string XLXSBJFLYZ_BJFLID + { + get { return _XLXSBJFLYZ_BJFLID; } + set { _XLXSBJFLYZ_BJFLID = value; } + } + + /// + /// 因子ID + /// + private string _XLXSBJFLYZ_YZID = string.Empty; + + public string XLXSBJFLYZ_YZID + { + get { return _XLXSBJFLYZ_YZID; } + set { _XLXSBJFLYZ_YZID = value; } + } + + #endregion + } + public class XLXSBJPZXX + { + #region 成员变量 + /// + /// 模块号 + /// + private string _XLXSBJPZ_MDID = string.Empty; + + public string XLXSBJPZ_MDID + { + get { return _XLXSBJPZ_MDID; } + set { _XLXSBJPZ_MDID = value; } + } + + /// + /// 报价分类IDS + /// + private string _XLXSBJPZ_BJFLIDS = string.Empty; + + public string XLXSBJPZ_BJFLIDS + { + get { return _XLXSBJPZ_BJFLIDS; } + set { _XLXSBJPZ_BJFLIDS = value; } + } + + /// + /// 客户检索来源 + /// + private string _XLXSBJPZ_KHJSLY = string.Empty; + + public string XLXSBJPZ_KHJSLY + { + get { return _XLXSBJPZ_KHJSLY; } + set { _XLXSBJPZ_KHJSLY = value; } + } + + /// + /// 维护人 + /// + private string _XLXSBJPZ_WHR = string.Empty; + + public string XLXSBJPZ_WHR + { + get { return _XLXSBJPZ_WHR; } + set { _XLXSBJPZ_WHR = value; } + } + + /// + /// 维护人ID + /// + private string _XLXSBJPZ_WHRID = string.Empty; + + public string XLXSBJPZ_WHRID + { + get { return _XLXSBJPZ_WHRID; } + set { _XLXSBJPZ_WHRID = value; } + } + + /// + /// 维护时间 + /// + private string _XLXSBJPZ_WHSJ = string.Empty; + + public string XLXSBJPZ_WHSJ + { + get { return _XLXSBJPZ_WHSJ; } + set { _XLXSBJPZ_WHSJ = value; } + } + + /// + /// 项目检索来源 + /// + private string _XLXSBJPZ_XMJSLY = string.Empty; + + public string XLXSBJPZ_XMJSLY + { + get { return _XLXSBJPZ_XMJSLY; } + set { _XLXSBJPZ_XMJSLY = value; } + } + + /// + /// 客户必填 + /// + private string _XLXSBJPZ_KHBT = string.Empty; + + public string XLXSBJPZ_KHBT + { + get { return _XLXSBJPZ_KHBT; } + set { _XLXSBJPZ_KHBT = value; } + } + + /// + /// 外部报价单解析颜色 + /// + private string _XLXSBJPZ_WBBJDJXYS = string.Empty; + + public string XLXSBJPZ_WBBJDJXYS + { + get { return _XLXSBJPZ_WBBJDJXYS; } + set { _XLXSBJPZ_WBBJDJXYS = value; } + } + + /// + /// 启用报价单型号等效替换 + /// + private string _XLXSBJPZ_QYBJDXTH = string.Empty; + + public string XLXSBJPZ_QYBJDXTH + { + get { return _XLXSBJPZ_QYBJDXTH; } + set { _XLXSBJPZ_QYBJDXTH = value; } + } + + /// + /// 外部报价单导入因子 + /// + private string _XLXSBJPZ_WBBJDDRYZ = string.Empty; + + public string XLXSBJPZ_WBBJDDRYZ + { + get { return _XLXSBJPZ_WBBJDDRYZ; } + set { _XLXSBJPZ_WBBJDDRYZ = value; } + } + + /// + /// 项目必填 + /// + private string _XLXSBJPZ_XMBT = string.Empty; + + public string XLXSBJPZ_XMBT + { + get { return _XLXSBJPZ_XMBT; } + set { _XLXSBJPZ_XMBT = value; } + } + + /// + /// 材料用量追加方式 + /// + private string _XLXSBJPZ_CLYLZJFS = string.Empty; + + public string XLXSBJPZ_CLYLZJFS + { + get { return _XLXSBJPZ_CLYLZJFS; } + set { _XLXSBJPZ_CLYLZJFS = value; } + } + + /// + /// 按栏目新增报价材料 + /// + private string _XLXSBJPZ_ALMXZBJCL = string.Empty; + + public string XLXSBJPZ_ALMXZBJCL + { + get { return _XLXSBJPZ_ALMXZBJCL; } + set { _XLXSBJPZ_ALMXZBJCL = value; } + } + + /// + /// 制定部门IDS + /// + private string _XLXSBJPZ_ZDBMIDS = string.Empty; + + public string XLXSBJPZ_ZDBMIDS + { + get { return _XLXSBJPZ_ZDBMIDS; } + set { _XLXSBJPZ_ZDBMIDS = value; } + } + + /// + /// 新增客户要求 + /// + private string _XLXSBJPZ_XZKHYQ = string.Empty; + + public string XLXSBJPZ_XZKHYQ + { + get { return _XLXSBJPZ_XZKHYQ; } + set { _XLXSBJPZ_XZKHYQ = value; } + } + + /// + /// 新增项目要求 + /// + private string _XLXSBJPZ_XZXMYQ = string.Empty; + + public string XLXSBJPZ_XZXMYQ + { + get { return _XLXSBJPZ_XZXMYQ; } + set { _XLXSBJPZ_XZXMYQ = value; } + } + + /// + /// 编码要素LIST + /// + private string _XLXSBJPZ_BMYSLIST = string.Empty; + + public string XLXSBJPZ_BMYSLIST + { + get { return _XLXSBJPZ_BMYSLIST; } + set { _XLXSBJPZ_BMYSLIST = value; } + } + + /// + /// 售前项目备案管理 + /// + private string _XLXSBJPZ_SQXMBAGL = string.Empty; + + public string XLXSBJPZ_SQXMBAGL + { + get { return _XLXSBJPZ_SQXMBAGL; } + set { _XLXSBJPZ_SQXMBAGL = value; } + } + + /// + /// 客户推销员相撞 + /// + private string _XLXSBJPZ_KHTXYXZ = string.Empty; + + public string XLXSBJPZ_KHTXYXZ + { + get { return _XLXSBJPZ_KHTXYXZ; } + set { _XLXSBJPZ_KHTXYXZ = value; } + } + + /// + /// 客户名称重复 + /// + private string _XLXSBJPZ_KHMCCF = string.Empty; + + public string XLXSBJPZ_KHMCCF + { + get { return _XLXSBJPZ_KHMCCF; } + set { _XLXSBJPZ_KHMCCF = value; } + } + + /// + /// 客户联系人重复 + /// + private string _XLXSBJPZ_KHLXRCF = string.Empty; + + public string XLXSBJPZ_KHLXRCF + { + get { return _XLXSBJPZ_KHLXRCF; } + set { _XLXSBJPZ_KHLXRCF = value; } + } + + /// + /// 客户电话重复 + /// + private string _XLXSBJPZ_LXDHCF = string.Empty; + + public string XLXSBJPZ_LXDHCF + { + get { return _XLXSBJPZ_LXDHCF; } + set { _XLXSBJPZ_LXDHCF = value; } + } + + /// + /// 项目名称重复 + /// + private string _XLXSBJPZ_XMMCCF = string.Empty; + + public string XLXSBJPZ_XMMCCF + { + get { return _XLXSBJPZ_XMMCCF; } + set { _XLXSBJPZ_XMMCCF = value; } + } + + /// + /// 项目名称词组重复 + /// + private string _XLXSBJPZ_XMMCCZCF = string.Empty; + + public string XLXSBJPZ_XMMCCZCF + { + get { return _XLXSBJPZ_XMMCCZCF; } + set { _XLXSBJPZ_XMMCCZCF = value; } + } + + /// + /// 项目名称词组重复个数 + /// + private string _XLXSBJPZ_XMMCCZCFGS = string.Empty; + + public string XLXSBJPZ_XMMCCZCFGS + { + get { return _XLXSBJPZ_XMMCCZCFGS; } + set { _XLXSBJPZ_XMMCCZCFGS = value; } + } + + /// + /// 项目名称特殊词组 + /// + private string _XLXSBJPZ_XMMCTSCZ = string.Empty; + + public string XLXSBJPZ_XMMCTSCZ + { + get { return _XLXSBJPZ_XMMCTSCZ; } + set { _XLXSBJPZ_XMMCTSCZ = value; } + } + + /// + /// 产品重复 + /// + private string _XLXSBJPZ_CPCF = string.Empty; + + public string XLXSBJPZ_CPCF + { + get { return _XLXSBJPZ_CPCF; } + set { _XLXSBJPZ_CPCF = value; } + } + + /// + /// 产品重复比例 + /// + private string _XLXSBJPZ_CPCFBL = string.Empty; + + public string XLXSBJPZ_CPCFBL + { + get { return _XLXSBJPZ_CPCFBL; } + set { _XLXSBJPZ_CPCFBL = value; } + } + + /// + /// 产品重复个数 + /// + private string _XLXSBJPZ_CPCFGS = string.Empty; + + public string XLXSBJPZ_CPCFGS + { + get { return _XLXSBJPZ_CPCFGS; } + set { _XLXSBJPZ_CPCFGS = value; } + } + + /// + /// 产品分段重复 + /// + private string _XLXSBJPZ_CPFDCF = string.Empty; + + public string XLXSBJPZ_CPFDCF + { + get { return _XLXSBJPZ_CPFDCF; } + set { _XLXSBJPZ_CPFDCF = value; } + } + + /// + /// 明细条目差比例 + /// + private string _XLXSBJPZ_MXTMCBL = string.Empty; + + public string XLXSBJPZ_MXTMCBL + { + get { return _XLXSBJPZ_MXTMCBL; } + set { _XLXSBJPZ_MXTMCBL = value; } + } + + /// + /// 明细分段数 + /// + private string _XLXSBJPZ_MXFDS = string.Empty; + + public string XLXSBJPZ_MXFDS + { + get { return _XLXSBJPZ_MXFDS; } + set { _XLXSBJPZ_MXFDS = value; } + } + + /// + /// 小于分段数重复比例 + /// + private string _XLXSBJPZ_XYFDSCFBL = string.Empty; + + public string XLXSBJPZ_XYFDSCFBL + { + get { return _XLXSBJPZ_XYFDSCFBL; } + set { _XLXSBJPZ_XYFDSCFBL = value; } + } + + /// + /// 大于分段数重复比例 + /// + private string _XLXSBJPZ_DYFDSCFBL = string.Empty; + + public string XLXSBJPZ_DYFDSCFBL + { + get { return _XLXSBJPZ_DYFDSCFBL; } + set { _XLXSBJPZ_DYFDSCFBL = value; } + } + + /// + /// 产品数量重复 + /// + private string _XLXSBJPZ_CPSLCF = string.Empty; + + public string XLXSBJPZ_CPSLCF + { + get { return _XLXSBJPZ_CPSLCF; } + set { _XLXSBJPZ_CPSLCF = value; } + } + + /// + /// 产品数量重复个数 + /// + private string _XLXSBJPZ_CPSLCFGS = string.Empty; + + public string XLXSBJPZ_CPSLCFGS + { + get { return _XLXSBJPZ_CPSLCFGS; } + set { _XLXSBJPZ_CPSLCFGS = value; } + } + + /// + /// 产品数量重复比例 + /// + private string _XLXSBJPZ_CPSLCFBL = string.Empty; + + public string XLXSBJPZ_CPSLCFBL + { + get { return _XLXSBJPZ_CPSLCFBL; } + set { _XLXSBJPZ_CPSLCFBL = value; } + } + + /// + /// 型号规格重复 + /// + private string _XLXSBJPZ_XHGGCF = string.Empty; + + public string XLXSBJPZ_XHGGCF + { + get { return _XLXSBJPZ_XHGGCF; } + set { _XLXSBJPZ_XHGGCF = value; } + } + + /// + /// 型号规格重复比例 + /// + private string _XLXSBJPZ_XHGGCFBL = string.Empty; + + public string XLXSBJPZ_XHGGCFBL + { + get { return _XLXSBJPZ_XHGGCFBL; } + set { _XLXSBJPZ_XHGGCFBL = value; } + } + + /// + /// 备案项目客户名称重复 + /// + private string _XLXSBJPZ_BAXMKHMCCF = string.Empty; + + public string XLXSBJPZ_BAXMKHMCCF + { + get { return _XLXSBJPZ_BAXMKHMCCF; } + set { _XLXSBJPZ_BAXMKHMCCF = value; } + } + + /// + /// 备案项目名称重复 + /// + private string _XLXSBJPZ_BAXMMCCF = string.Empty; + + public string XLXSBJPZ_BAXMMCCF + { + get { return _XLXSBJPZ_BAXMMCCF; } + set { _XLXSBJPZ_BAXMMCCF = value; } + } + + /// + /// 备案项目名称推销员重复 + /// + private string _XLXSBJPZ_BAXMMCTXYCF = string.Empty; + + public string XLXSBJPZ_BAXMMCTXYCF + { + get { return _XLXSBJPZ_BAXMMCTXYCF; } + set { _XLXSBJPZ_BAXMMCTXYCF = value; } + } + + /// + /// 外部匹配执行顺序 + /// + private string _XLXSBJPZ_WBPPZXSX = string.Empty; + + public string XLXSBJPZ_WBPPZXSX + { + get { return _XLXSBJPZ_WBPPZXSX; } + set { _XLXSBJPZ_WBPPZXSX = value; } + } + + /// + /// 铜报价材料ID + /// + private string _XLXSBJPZ_TBJCLID = string.Empty; + + public string XLXSBJPZ_TBJCLID + { + get { return _XLXSBJPZ_TBJCLID; } + set { _XLXSBJPZ_TBJCLID = value; } + } + + /// + /// 铝报价材料ID + /// + private string _XLXSBJPZ_LBJCLID = string.Empty; + + public string XLXSBJPZ_LBJCLID + { + get { return _XLXSBJPZ_LBJCLID; } + set { _XLXSBJPZ_LBJCLID = value; } + } + + /// + /// 铝合金报价材料ID + /// + private string _XLXSBJPZ_LHJBJCLID = string.Empty; + + public string XLXSBJPZ_LHJBJCLID + { + get { return _XLXSBJPZ_LHJBJCLID; } + set { _XLXSBJPZ_LHJBJCLID = value; } + } + + /// + /// 双击记录原报价产品 + /// + private string _XLXSBJPZ_SJJLYBJCP = string.Empty; + + public string XLXSBJPZ_SJJLYBJCP + { + get { return _XLXSBJPZ_SJJLYBJCP; } + set { _XLXSBJPZ_SJJLYBJCP = value; } + } + + /// + /// 默认勾选录入 + /// + private string _XLXSBJPZ_MRGXLR = string.Empty; + + public string XLXSBJPZ_MRGXLR + { + get { return _XLXSBJPZ_MRGXLR; } + set { _XLXSBJPZ_MRGXLR = value; } + } + + /// + /// 型号精确筛选 + /// + private string _XLXSBJPZ_XHJQSX = string.Empty; + + public string XLXSBJPZ_XHJQSX + { + get { return _XLXSBJPZ_XHJQSX; } + set { _XLXSBJPZ_XHJQSX = value; } + } + + /// + /// 规格精确筛选 + /// + private string _XLXSBJPZ_GGJQSX = string.Empty; + + public string XLXSBJPZ_GGJQSX + { + get { return _XLXSBJPZ_GGJQSX; } + set { _XLXSBJPZ_GGJQSX = value; } + } + + /// + /// 允许非长度计量单位 + /// + private string _XLXSBJPZ_YXFCDJLDW = string.Empty; + + public string XLXSBJPZ_YXFCDJLDW + { + get { return _XLXSBJPZ_YXFCDJLDW; } + set { _XLXSBJPZ_YXFCDJLDW = value; } + } + + /// + /// 计量单位S + /// + private string _XLXSBJPZ_JLDWS = string.Empty; + + public string XLXSBJPZ_JLDWS + { + get { return _XLXSBJPZ_JLDWS; } + set { _XLXSBJPZ_JLDWS = value; } + } + + /// + /// 自定义计量单位S + /// + private string _XLXSBJPZ_ZDYJLDWS = string.Empty; + + public string XLXSBJPZ_ZDYJLDWS + { + get { return _XLXSBJPZ_ZDYJLDWS; } + set { _XLXSBJPZ_ZDYJLDWS = value; } + } + + /// + /// 显示产品目录 + /// + private string _XLXSBJPZ_XSCPML = string.Empty; + + public string XLXSBJPZ_XSCPML + { + get { return _XLXSBJPZ_XSCPML; } + set { _XLXSBJPZ_XSCPML = value; } + } + + /// + /// 显示工艺卡号 + /// + private string _XLXSBJPZ_XSGYKH = string.Empty; + + public string XLXSBJPZ_XSGYKH + { + get { return _XLXSBJPZ_XSGYKH; } + set { _XLXSBJPZ_XSGYKH = value; } + } + + /// + /// 产品目录IDS + /// + private string _XLXSBJPZ_CPMLIDS = string.Empty; + + public string XLXSBJPZ_CPMLIDS + { + get { return _XLXSBJPZ_CPMLIDS; } + set { _XLXSBJPZ_CPMLIDS = value; } + } + + /// + /// 铜导体归属材料ID + /// + private string _XLXSBJPZ_TDTGSCLID = string.Empty; + + public string XLXSBJPZ_TDTGSCLID + { + get { return _XLXSBJPZ_TDTGSCLID; } + set { _XLXSBJPZ_TDTGSCLID = value; } + } + + /// + /// 铝导体归属材料ID + /// + private string _XLXSBJPZ_LDTGSCLID = string.Empty; + + public string XLXSBJPZ_LDTGSCLID + { + get { return _XLXSBJPZ_LDTGSCLID; } + set { _XLXSBJPZ_LDTGSCLID = value; } + } + + /// + /// 中标利润公式 + /// + private string _XLXSBJPZ_ZBLRGS = string.Empty; + + public string XLXSBJPZ_ZBLRGS + { + get { return _XLXSBJPZ_ZBLRGS; } + set { _XLXSBJPZ_ZBLRGS = value; } + } + + /// + /// 附件上传格式 + /// + private string _XLXSBJPZ_FJSCGS = string.Empty; + + public string XLXSBJPZ_FJSCGS + { + get { return _XLXSBJPZ_FJSCGS; } + set { _XLXSBJPZ_FJSCGS = value; } + } + + /// + /// APP查价筛选方式 + /// + private string _XLXSBJPZ_APPCJSXFS = string.Empty; + + public string XLXSBJPZ_APPCJSXFS + { + get { return _XLXSBJPZ_APPCJSXFS; } + set { _XLXSBJPZ_APPCJSXFS = value; } + } + + /// + /// 报价上浮调价方式 + /// + private string _XLXSBJPZ_BJSFTJFS = string.Empty; + + public string XLXSBJPZ_BJSFTJFS + { + get { return _XLXSBJPZ_BJSFTJFS; } + set { _XLXSBJPZ_BJSFTJFS = value; } + } + + /// + /// 报价下浮调价方式 + /// + private string _XLXSBJPZ_BJXFTJFS = string.Empty; + + public string XLXSBJPZ_BJXFTJFS + { + get { return _XLXSBJPZ_BJXFTJFS; } + set { _XLXSBJPZ_BJXFTJFS = value; } + } + + /// + /// 制定人GHS + /// + private string _XLXSBJPZ_ZDRGHS = string.Empty; + + public string XLXSBJPZ_ZDRGHS + { + get { return _XLXSBJPZ_ZDRGHS; } + set { _XLXSBJPZ_ZDRGHS = value; } + } + + /// + /// 默认线缆标准ID + /// + private string _XLXSBJPZ_MRXLBZID = string.Empty; + + public string XLXSBJPZ_MRXLBZID + { + get { return _XLXSBJPZ_MRXLBZID; } + set { _XLXSBJPZ_MRXLBZID = value; } + } + + /// + /// 新增明细可选项 + /// + private string _XLXSBJPZ_XZMXKXX = string.Empty; + + public string XLXSBJPZ_XZMXKXX + { + get { return _XLXSBJPZ_XZMXKXX; } + set { _XLXSBJPZ_XZMXKXX = value; } + } + + /// + /// 邮件通知人员LIST + /// + private string _XLXSBJPZ_YJTZRYLIST = string.Empty; + + public string XLXSBJPZ_YJTZRYLIST + { + get { return _XLXSBJPZ_YJTZRYLIST; } + set { _XLXSBJPZ_YJTZRYLIST = value; } + } + + /// + /// 批量调价可选项 + /// + private string _XLXSBJPZ_PLTJKXX = string.Empty; + + public string XLXSBJPZ_PLTJKXX + { + get { return _XLXSBJPZ_PLTJKXX; } + set { _XLXSBJPZ_PLTJKXX = value; } + } + + /// + /// 调价不需要更换价格目录 + /// + private string _XLXSBJPZ_TJBXYGHJGML = string.Empty; + + public string XLXSBJPZ_TJBXYGHJGML + { + get { return _XLXSBJPZ_TJBXYGHJGML; } + set { _XLXSBJPZ_TJBXYGHJGML = value; } + } + + /// + /// 自动撞单 + /// + private string _XLXSBJPZ_ZDZD = string.Empty; + + public string XLXSBJPZ_ZDZD + { + get { return _XLXSBJPZ_ZDZD; } + set { _XLXSBJPZ_ZDZD = value; } + } + + /// + /// 隐藏价格相关栏目 + /// + private string _XLXSBJPZ_YCJGXGLM = string.Empty; + + public string XLXSBJPZ_YCJGXGLM + { + get { return _XLXSBJPZ_YCJGXGLM; } + set { _XLXSBJPZ_YCJGXGLM = value; } + } + + /// + /// 启用报价产品辅助检索 + /// + private string _XLXSBJPZ_QYBJCPFZJS = string.Empty; + + public string XLXSBJPZ_QYBJCPFZJS + { + get { return _XLXSBJPZ_QYBJCPFZJS; } + set { _XLXSBJPZ_QYBJCPFZJS = value; } + } + + /// + /// 项目客户名称相撞 + /// + private string _XLXSBJPZ_XMKHMCXZ = string.Empty; + + public string XLXSBJPZ_XMKHMCXZ + { + get { return _XLXSBJPZ_XMKHMCXZ; } + set { _XLXSBJPZ_XMKHMCXZ = value; } + } + + /// + /// 客户名称、项目名称重复 + /// + private string _XLXSBJPZ_KHMCXMMCCF = string.Empty; + + public string XLXSBJPZ_KHMCXMMCCF + { + get { return _XLXSBJPZ_KHMCXMMCCF; } + set { _XLXSBJPZ_KHMCXMMCCF = value; } + } + + /// + /// 不校验 + /// + private string _XLXSBJPZ_BJY = string.Empty; + + public string XLXSBJPZ_BJY + { + get { return _XLXSBJPZ_BJY; } + set { _XLXSBJPZ_BJY = value; } + } + + /// + /// 价格表ID + /// + private string _XLXSBJPZ_JGBID = string.Empty; + + public string XLXSBJPZ_JGBID + { + get { return _XLXSBJPZ_JGBID; } + set { _XLXSBJPZ_JGBID = value; } + } + + /// + /// 报表样式序号 + /// + private string _XLXSBJPZ_BBYSXH = string.Empty; + + public string XLXSBJPZ_BBYSXH + { + get { return _XLXSBJPZ_BBYSXH; } + set { _XLXSBJPZ_BBYSXH = value; } + } + + /// + /// 默认计算方式 + /// + private string _XLXSBJPZ_MRJSFS = string.Empty; + + public string XLXSBJPZ_MRJSFS + { + get { return _XLXSBJPZ_MRJSFS; } + set { _XLXSBJPZ_MRJSFS = value; } + } + + /// + /// 价格表基价复盘 + /// + private string _XLXSBJPZ_JGBJJFP = string.Empty; + + public string XLXSBJPZ_JGBJJFP + { + get { return _XLXSBJPZ_JGBJJFP; } + set { _XLXSBJPZ_JGBJJFP = value; } + } + + /// + /// 记录调整后产品 + /// + private string _XLXSBJPZ_JLTZHCP = string.Empty; + + public string XLXSBJPZ_JLTZHCP + { + get { return _XLXSBJPZ_JLTZHCP; } + set { _XLXSBJPZ_JLTZHCP = value; } + } + + /// + /// 询价员ROLEID + /// + private string _XLXSBJPZ_XJYROLEID = string.Empty; + + public string XLXSBJPZ_XJYROLEID + { + get { return _XLXSBJPZ_XJYROLEID; } + set { _XLXSBJPZ_XJYROLEID = value; } + } + + /// + /// 审价员ROLEID + /// + private string _XLXSBJPZ_SJYROLEID = string.Empty; + + public string XLXSBJPZ_SJYROLEID + { + get { return _XLXSBJPZ_SJYROLEID; } + set { _XLXSBJPZ_SJYROLEID = value; } + } + + /// + /// 核价员ROLEID + /// + private string _XLXSBJPZ_HJYROLEID = string.Empty; + + public string XLXSBJPZ_HJYROLEID + { + get { return _XLXSBJPZ_HJYROLEID; } + set { _XLXSBJPZ_HJYROLEID = value; } + } + + /// + /// 微信会员价格表ID + /// + private string _XLXSBJPZ_WXHYJGBID = string.Empty; + + public string XLXSBJPZ_WXHYJGBID + { + get { return _XLXSBJPZ_WXHYJGBID; } + set { _XLXSBJPZ_WXHYJGBID = value; } + } + + /// + /// 调整比例因子ID + /// + private string _XLXSBJPZ_TZBLYZID = string.Empty; + + public string XLXSBJPZ_TZBLYZID + { + get { return _XLXSBJPZ_TZBLYZID; } + set { _XLXSBJPZ_TZBLYZID = value; } + } + + /// + /// 扣税点因子ID + /// + private string _XLXSBJPZ_KSDYZID = string.Empty; + + public string XLXSBJPZ_KSDYZID + { + get { return _XLXSBJPZ_KSDYZID; } + set { _XLXSBJPZ_KSDYZID = value; } + } + + /// + /// 调整比例因子值类型 + /// + private string _XLXSBJPZ_TZBLYZZLX = string.Empty; + + public string XLXSBJPZ_TZBLYZZLX + { + get { return _XLXSBJPZ_TZBLYZZLX; } + set { _XLXSBJPZ_TZBLYZZLX = value; } + } + + /// + /// 扣税点因子值类型 + /// + private string _XLXSBJPZ_KSDYZZLX = string.Empty; + + public string XLXSBJPZ_KSDYZZLX + { + get { return _XLXSBJPZ_KSDYZZLX; } + set { _XLXSBJPZ_KSDYZZLX = value; } + } + + /// + /// 同步反馈至3版本 + /// + private string _XLXSBJPZ_TBFKZ3BB = string.Empty; + + public string XLXSBJPZ_TBFKZ3BB + { + get { return _XLXSBJPZ_TBFKZ3BB; } + set { _XLXSBJPZ_TBFKZ3BB = value; } + } + + /// + /// 反馈时自动生成工程项目 + /// + private string _XLXSBJPZ_FKSZDSCGCXM = string.Empty; + + public string XLXSBJPZ_FKSZDSCGCXM + { + get { return _XLXSBJPZ_FKSZDSCGCXM; } + set { _XLXSBJPZ_FKSZDSCGCXM = value; } + } + + /// + /// 默认电压等级 + /// + private string _XLXSBJPZ_MRDYDJ = string.Empty; + + public string XLXSBJPZ_MRDYDJ + { + get { return _XLXSBJPZ_MRDYDJ; } + set { _XLXSBJPZ_MRDYDJ = value; } + } + + /// + /// 价格表默认不生效 + /// + private string _XLXSBJPZ_JGBMRBSX = string.Empty; + + public string XLXSBJPZ_JGBMRBSX + { + get { return _XLXSBJPZ_JGBMRBSX; } + set { _XLXSBJPZ_JGBMRBSX = value; } + } + + /// + /// 快速导入二级菜单 + /// + private string _XLXSBJPZ_KSDREJCD = string.Empty; + + public string XLXSBJPZ_KSDREJCD + { + get { return _XLXSBJPZ_KSDREJCD; } + set { _XLXSBJPZ_KSDREJCD = value; } + } + + /// + /// 复制重获因子值 + /// + private string _XLXSBJPZ_FZCHYZZ = string.Empty; + + public string XLXSBJPZ_FZCHYZZ + { + get { return _XLXSBJPZ_FZCHYZZ; } + set { _XLXSBJPZ_FZCHYZZ = value; } + } + + /// + /// 报价单完全复制 + /// + private string _XLXSBJPZ_BJDWQFZ = string.Empty; + + public string XLXSBJPZ_BJDWQFZ + { + get { return _XLXSBJPZ_BJDWQFZ; } + set { _XLXSBJPZ_BJDWQFZ = value; } + } + + /// + /// 替换是否跳过可报型号 + /// + private string _XLXSBJPZ_THSFTGKBXH = string.Empty; + + public string XLXSBJPZ_THSFTGKBXH + { + get { return _XLXSBJPZ_THSFTGKBXH; } + set { _XLXSBJPZ_THSFTGKBXH = value; } + } + + /// + /// 衍生产品材料成本公式1 + /// + private string _XLXSBJPZ_YSCPCLCBGS1 = string.Empty; + + public string XLXSBJPZ_YSCPCLCBGS1 + { + get { return _XLXSBJPZ_YSCPCLCBGS1; } + set { _XLXSBJPZ_YSCPCLCBGS1 = value; } + } + + /// + /// 产品重复线缆标准 + /// + private string _XLXSBJPZ_CPCFXLBZ = string.Empty; + + public string XLXSBJPZ_CPCFXLBZ + { + get { return _XLXSBJPZ_CPCFXLBZ; } + set { _XLXSBJPZ_CPCFXLBZ = value; } + } + + /// + /// 物料缺失通知部门 + /// + private string _XLXSBJPZ_WLQSTZBMIDS = string.Empty; + public string XLXSBJPZ_WLQSTZBMIDS + { + get { return _XLXSBJPZ_WLQSTZBMIDS; } + set { _XLXSBJPZ_WLQSTZBMIDS = value; } + } + + /// + /// 物料缺失通知人 + /// + private string _XLXSBJPZ_WLQSTZRGHS = string.Empty; + public string XLXSBJPZ_WLQSTZRGHS + { + get { return _XLXSBJPZ_WLQSTZRGHS; } + set { _XLXSBJPZ_WLQSTZRGHS = value; } + } + + /// + /// 结构派生通知部门 + /// + private string _XLXSBJPZ_JGPSTZBMIDS = string.Empty; + public string XLXSBJPZ_JGPSTZBMIDS + { + get { return _XLXSBJPZ_JGPSTZBMIDS; } + set { _XLXSBJPZ_JGPSTZBMIDS = value; } + } + + /// + /// 结构派生通知人 + /// + private string _XLXSBJPZ_JGPSTZRGHS = string.Empty; + public string XLXSBJPZ_JGPSTZRGHS + { + get { return _XLXSBJPZ_JGPSTZRGHS; } + set { _XLXSBJPZ_JGPSTZRGHS = value; } + } + + /// + /// 价格反馈字段 + /// + private string _XLXSBJPZ_JGFKZD = string.Empty; + + public string XLXSBJPZ_JGFKZD + { + get { return _XLXSBJPZ_JGFKZD; } + set { _XLXSBJPZ_JGFKZD = value; } + } + + /// + /// 考核价反馈字段 + /// + private string _XLXSBJPZ_KHJFKZD = string.Empty; + + public string XLXSBJPZ_KHJFKZD + { + get { return _XLXSBJPZ_KHJFKZD; } + set { _XLXSBJPZ_KHJFKZD = value; } + } + + /// + /// 价格表价格反馈字段 + /// + private string _XLXSBJPZ_JGBJGFKZD = string.Empty; + + public string XLXSBJPZ_JGBJGFKZD + { + get { return _XLXSBJPZ_JGBJGFKZD; } + set { _XLXSBJPZ_JGBJGFKZD = value; } + } + + /// + /// 不清空调整最低限价 + /// + private string _XLXSBJPZ_BQKTZZDXJ = string.Empty; + public string XLXSBJPZ_BQKTZZDXJ + { + get { return _XLXSBJPZ_BQKTZZDXJ; } + set { _XLXSBJPZ_BQKTZZDXJ = value; } + } + + /// + /// 不清空调整报价 + /// + private string _XLXSBJPZ_BQKTZBJ = string.Empty; + public string XLXSBJPZ_BQKTZBJ + { + get { return _XLXSBJPZ_BQKTZBJ; } + set { _XLXSBJPZ_BQKTZBJ = value; } + } + + /// + /// 优先通知尺重表负责人 + /// + private string _XLXSBJPZ_YXTZCZBFZR = string.Empty; + public string XLXSBJPZ_YXTZCZBFZR + { + get { return _XLXSBJPZ_YXTZCZBFZR; } + set { _XLXSBJPZ_YXTZCZBFZR = value; } + } + + /// + /// 默认制定人 + /// + private string _XLXSBJPZ_MRZDR = string.Empty; + public string XLXSBJPZ_MRZDR + { + get { return _XLXSBJPZ_MRZDR; } + set { _XLXSBJPZ_MRZDR = value; } + } + + /// + /// 自动撞单类型 + /// + private string _XLXSBJPZ_ZDZDLX = string.Empty; + public string XLXSBJPZ_ZDZDLX + { + get { return _XLXSBJPZ_ZDZDLX; } + set { _XLXSBJPZ_ZDZDLX = value; } + } + + /// + /// 自动撞单月份 + /// + private string _XLXSBJPZ_ZDZDYF = string.Empty; + public string XLXSBJPZ_ZDZDYF + { + get { return _XLXSBJPZ_ZDZDYF; } + set { _XLXSBJPZ_ZDZDYF = value; } + } + + /// + /// 撞单确认WPID + /// + private string _XLXSBJPZ_ZDQRWPID = string.Empty; + public string XLXSBJPZ_ZDQRWPID + { + get { return _XLXSBJPZ_ZDQRWPID; } + set { _XLXSBJPZ_ZDQRWPID = value; } + } + + /// + /// 记录小计信息汇总方式 + /// + private string _XLXSBJPZ_JLXJXXHZFS = string.Empty; + public string XLXSBJPZ_JLXJXXHZFS + { + get { return _XLXSBJPZ_JLXJXXHZFS; } + set { _XLXSBJPZ_JLXJXXHZFS = value; } + } + + /// + /// 用量制定明细调整 + /// + private string _XLXSBJPZ_YLZDMXTZ = string.Empty; + public string XLXSBJPZ_YLZDMXTZ + { + get { return _XLXSBJPZ_YLZDMXTZ; } + set { _XLXSBJPZ_YLZDMXTZ = value; } + } + + /// + /// 新建明细报价数量默认一致 + /// + private string _XLXSBJPZ_BJSLMRYZ = string.Empty; + public string XLXSBJPZ_BJSLMRYZ + { + get { return _XLXSBJPZ_BJSLMRYZ; } + set { _XLXSBJPZ_BJSLMRYZ = value; } + } + + /// + /// 盘费报价不计入 + /// + private string _XLXSBJPZ_PFBJRBJ = string.Empty; + public string XLXSBJPZ_PFBJRBJ + { + get { return _XLXSBJPZ_PFBJRBJ; } + set { _XLXSBJPZ_PFBJRBJ = value; } + } + + /// + /// 反馈物料匹配提醒 + /// + private string _XLXSBJPZ_FKWLPPTX = string.Empty; + public string XLXSBJPZ_FKWLPPTX + { + get { return _XLXSBJPZ_FKWLPPTX; } + set { _XLXSBJPZ_FKWLPPTX = value; } + } + + + /// + /// 不自动匹配电压 + /// + private string _XLXSBJPZ_BZDPPDY = string.Empty; + public string XLXSBJPZ_BZDPPDY + { + get { return _XLXSBJPZ_BZDPPDY; } + set { _XLXSBJPZ_BZDPPDY = value; } + } + + + /// + /// 记录报价完成时间 + /// + private string _XLXSBJPZ_JLBJWCSJ = string.Empty; + public string XLXSBJPZ_JLBJWCSJ + { + get { return _XLXSBJPZ_JLBJWCSJ; } + set { _XLXSBJPZ_JLBJWCSJ = value; } + } + + /// + /// 显示中标信息 + /// + private string _XLXSBJPZ_XSZBXX = string.Empty; + public string XLXSBJPZ_XSZBXX + { + get { return _XLXSBJPZ_XSZBXX; } + set { _XLXSBJPZ_XSZBXX = value; } + } + + private string _XLXSBJPZ_MRCPYT = string.Empty; + public string XLXSBJPZ_MRCPYT + { + get { return _XLXSBJPZ_MRCPYT; } + set { _XLXSBJPZ_MRCPYT = value; } + } + + private string _XLXSBJPZ_XSPWQD = string.Empty; + public string XLXSBJPZ_XSPWQD + { + get { return _XLXSBJPZ_XSPWQD; } + set { _XLXSBJPZ_XSPWQD = value; } + } + + private string _XLXSBJPZ_GXXSBJXDWL = string.Empty; + public string XLXSBJPZ_GXXSBJXDWL + { + get { return _XLXSBJPZ_GXXSBJXDWL; } + set { _XLXSBJPZ_GXXSBJXDWL = value; } + } + + private string _XLXSBJPZ_YXQCPWL = string.Empty; + public string XLXSBJPZ_YXQCPWL + { + get { return _XLXSBJPZ_YXQCPWL; } + set { _XLXSBJPZ_YXQCPWL = value; } + } + + private string _XLXSBJPZ_LCPBSYS = string.Empty; + public string XLXSBJPZ_LCPBSYS + { + get { return _XLXSBJPZ_LCPBSYS; } + set { _XLXSBJPZ_LCPBSYS = value; } + } + + private string _XLXSBJPZ_TCPBSYS = string.Empty; + public string XLXSBJPZ_TCPBSYS + { + get { return _XLXSBJPZ_TCPBSYS; } + set { _XLXSBJPZ_TCPBSYS = value; } + } + + private string _XLXSBJPZ_KHMCXSBL = string.Empty; + public string XLXSBJPZ_KHMCXSBL + { + get { return _XLXSBJPZ_KHMCXSBL; } + set { _XLXSBJPZ_KHMCXSBL = value; } + } + + private string _XLXSBJPZ_XHZJSR = string.Empty; + public string XLXSBJPZ_XHZJSR + { + get { return _XLXSBJPZ_XHZJSR; } + set { _XLXSBJPZ_XHZJSR = value; } + } + + private string _XLXSBJPZ_FZNRDRLM = string.Empty; + public string XLXSBJPZ_FZNRDRLM + { + get { return _XLXSBJPZ_FZNRDRLM; } + set { _XLXSBJPZ_FZNRDRLM = value; } + } + + private string _XLXSBJPZ_TJGBFZBLBJ = string.Empty; + public string XLXSBJPZ_TJGBFZBLBJ + { + get { return _XLXSBJPZ_TJGBFZBLBJ; } + set { _XLXSBJPZ_TJGBFZBLBJ = value; } + } + + private string _XLXSBJPZ_ZCCF = string.Empty; + public string XLXSBJPZ_ZCCF + { + get { return _XLXSBJPZ_ZCCF; } + set { _XLXSBJPZ_ZCCF = value; } + } + + private string _XLXSBJPZ_YFJSGS = string.Empty; + public string XLXSBJPZ_YFJSGS + { + get { return _XLXSBJPZ_YFJSGS; } + set { _XLXSBJPZ_YFJSGS = value; } + } + private string _XLXSBJPZ_PJZLSFJRYZ = string.Empty; + public string XLXSBJPZ_PJZLSFJRYZ + { + get { return _XLXSBJPZ_PJZLSFJRYZ; } + set { _XLXSBJPZ_PJZLSFJRYZ = value; } + } + private string _XLXSBJPZ_CFCPBQFBZ = string.Empty; + public string XLXSBJPZ_CFCPBQFBZ + { + get { return _XLXSBJPZ_CFCPBQFBZ; } + set { _XLXSBJPZ_CFCPBQFBZ = value; } + } + private string _XLXSBJPZ_BCYZDXM = string.Empty; + public string XLXSBJPZ_BCYZDXM + { + get { return _XLXSBJPZ_BCYZDXM; } + set { _XLXSBJPZ_BCYZDXM = value; } + } + + private string _XLXSBJPZ_BCYZDKH = string.Empty; + public string XLXSBJPZ_BCYZDKH + { + get { return _XLXSBJPZ_BCYZDKH; } + set { _XLXSBJPZ_BCYZDKH = value; } + } + + private string _XLXSBJPZ_CLJGXSWS = string.Empty; + public string XLXSBJPZ_CLJGXSWS + { + get { return _XLXSBJPZ_CLJGXSWS; } + set { _XLXSBJPZ_CLJGXSWS = value; } + } + + #endregion + + #region 成员方法 + + public string GetBMYSLIST() + { + return _XLXSBJPZ_BMYSLIST; + } + + #region 100860000|线缆销售报价单 + + /// + /// 获取基础计量单位和自定义计量单位 + /// + /// + public string GetJLDWS() + { + string sRet = ""; + + if(!string.IsNullOrEmpty(_XLXSBJPZ_JLDWS)) + { + string[] sTempJCJLDW = _XLXSBJPZ_JLDWS.Split(new Char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); + for (int m = 0; m < sTempJCJLDW.Length; m++) + { + if (!sTempJCJLDW[m].Equals("") && !sTempJCJLDW[m].Equals("自定义")) + { + if (sRet.IndexOf(sTempJCJLDW[m]) <= 0) + { + sRet = sRet + "," + sTempJCJLDW[m]; + } + } + } + } + if (!string.IsNullOrEmpty(_XLXSBJPZ_ZDYJLDWS)) + { + string[] sTempDYJLDW = _XLXSBJPZ_ZDYJLDWS.Split(new Char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); + for (int m = 0; m < sTempDYJLDW.Length; m++) + { + if (!sTempDYJLDW[m].Equals("") && !sTempDYJLDW[m].Equals("自定义")) + { + if (sRet.IndexOf(sTempDYJLDW[m]) <= 0) + { + sRet = sRet + "," + sTempDYJLDW[m]; + } + } + } + } + return sRet; + } + + /// + /// 判断是否显示产品目录 + /// + /// + public bool ExistXSCPML() + { + if (_XLXSBJPZ_XSCPML == "Y" || _XLXSBJPZ_XSCPML == "Z") + return true; + + return false; + } + + /// + /// 判断是否显示工艺卡号 + /// + /// + public bool ExistGYKH() + { + if (_XLXSBJPZ_XSGYKH == "Y") + return true; + + return false; + } + + /// + /// 获取线缆销售报价单报价上浮调价方式 + /// + /// + public string GetBJSFTJFS() + { + return _XLXSBJPZ_BJSFTJFS; + } + + /// + /// 获取线缆销售报价单报价下浮调价方式 + /// + /// + public string GetBJXFTJFS() + { + return _XLXSBJPZ_BJXFTJFS; + } + + public string GetDefaultXLBZID() + { + return _XLXSBJPZ_MRXLBZID; + } + + public string GetPLTJKXX() + { + return "," + _XLXSBJPZ_PLTJKXX + ","; + } + + #endregion + + #region 100860061|销售员报价申请 + + /// + /// 获取销售员报价申请模块附件上传格式 + /// + /// + public string GetAttDocFilter() + { + return _XLXSBJPZ_FJSCGS; + } + + + #endregion + + #region 100860018|线缆销售报价价格目录 + + /// + /// 价格表基价复盘 + /// + /// + public bool NeedJGBJJFP() + { + if (_XLXSBJPZ_JGBJJFP == "Y") + return true; + return false; + } + + /// + /// 是否启用非长度计量单位 + /// + /// + public bool QYFCDJLDW() + { + if (_XLXSBJPZ_YXFCDJLDW == "Y") + return true; + return false; + } + + #endregion + + #endregion + + } +} diff --git a/Help/image002.jpg b/Help/image002.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e3590d08e8dc93340dd46397c4ab83671a36be0e GIT binary patch literal 86288 zcmeFZ2V7I@*CrYS1f_Q=5~T=8lU@ZC0TC${ddZOJ&&<7dj^8(P&fK}bd*^q*O6E|8IvU!WlW(`wS$ zfu!F9D3~ajuS?y%$ny9(6`wn+^qYh%YW{oWt!z(5Fak0*uYxaKX6LxV$t8G0NLb{i ztem`pqLQ-4eN8Rx2RaX*J~J{lF*P%{wX=6{bOJkjczSvJKz;o}-iC&SM?^*?CcRHi zN&WCKEjuSS?@NBc*TRa*s_L5By84E;_Kwc3?jJq9qhsR}lgO#*85DYHd1ZC&*ZKx_ zZ~x#BcZ5Ga`O_~l0QrA*i}d+FJN6g9m`HwIpr9b9p!(ALC!=$d0pxv^WDc( z&)r%0q~B1p-b=_TZ@t7X^8~|Y^J?TWyMQc85c{WV|MKkbITrjs<=Ow?*#GI*41kuL zjCAqHnE>j5v!~fn!hnBgkiW;5+n(iPD!Ytfn51(+8yhZ`3nz)!X<86H<@cmln@0G# z>{YHh`Yk#5NIsrGvSC|}+8caYVL&T#Vv$Te=*&(w9QRu+Oj;0=1zBI zDf)aNO89@txXg7%n6VE1YCYR_#4>B4Bm1(O<>6p&ZYVWEhFMF#Oz87!i^wFx*)7KW z9IzGs6{L-FW5atajW6D=`ItkHpQL40Rt@L{+nIDXw53uSubVvR@;k zhsV&@`56J<+S%;rW508@-M7C|`?JbKA*z=D;m%&r*H^no3%hDX;|M3vRcC7e{RbD7T1aa#`S6u^LISpr_^ z>XoD6X4g}eCyS{~4BDBy0B?E}_sP!zp(xfQ>5qm{2MrJvkwiXg{0@wTU|61}@_?XG zXswym<)bj=;qG~yC?)~w(|MNiWQW@Jz=yyl+De+F*dQus+}^6K?P3|t)ZId@ga-;6 z=I>MaD767Aw!t?XTd#P3yan^t1Y4;)ivIeU7G%9;QMqTJhg2~Bs0b~CP?s1bmm%lh z8=aXWU6gNpI0vuV**q9M4UtytPlU@@K+EFlRHa_;!6kSIbcZM`&I(5=`hJL<>q8u7X{K3X5c5a~+bf9_TY zt)P=$wc_pC4sQ4GE0+pZ5FDliU%22?MnPyV_$B%efnu0UlhyFQH>kRSHB{U1T!J(* zh}#S=iH3z`!HF!?FI0^jUBqkhTCyw2qT?qVOC-dk+^mX$A3topq#e0D8k#SWxHC6|z0 z+Xmgr#JnPcVg=H(QIZt|WLQ^@8Sps!pqH`K?ry94fHn)QX6Z~;XZ@jdEe2kh?m9bt zJdLV^Mv&=GXzi14{sSxz8^*S) zHm^#v8ytu_=qmDGPWP5UDbQ^Jj_;JEs$M<4X+B3pg4hY-q{Tp7dJxjy;97)ETHzZ& z>qeU8Cp)AT%kN6>IOTk|yZjO0F%sdL?827#WNhG`fi`>LI6gOc8DctgU)2^5UuXHg)Q;3?1iy zX&BCMSk)1I+tFgQ$#F^PV9t1cZ}C>c7-5}1?xISNm(iUcL-ivOcJ?>ZVH&c#WI7o2 z@1kD~ z_jIPYS;4XMu^g_tR&Tj#FQ6gt>_v-3JZ=|D6|C;O5D|10JDBd9jej`y=v$ILX0ogR z>fN?8>Jw|Wur0kI)y>zUGgZ;AWfFnWko>Mbvx#2lG>C+;+hNK=?eNK{ScPYyVxH^O zF1($xMYf!OB+OgrNYC|M|9K(N_VJbe#d7ktCLOGLhYnT}joiNEv8WR3-)iCk4!T<1 zfQj$8ZK74vQm29Q_O~byUsOoAba8YinybcJW)A{Fk)Tr52&20s)M-FB16^wcU8-JS z-0(hme>AU%bd{^i@pm$d4F)}we*_w+HM91$$&^dR-J6Qj$l!459P*djUp27aO<2&a zs+!9^D5!S6y@c1yubJPgO>aJ_JP7GpU?(tO`nEK>tfesLfVb8MQZ;%$M#239wcItn zaSAR!>$}_&HbLS9x3daQf6xr~VqDTpf@QHeGU+^=gQi)k#sncX$>GpPh zoY|HYT9PS6&71v-J-rgoV$|^(&fu(CRSqjL!vMf{ccjUcb<&9=DwmxkmlB6MDCs*J zzkRxz6nRTWQ)MC~wvMfzIDOQx+X{<=(WwdIZ3fXN3!OAVZ<@68XLHnNJ||dPfaT*9 zIs%U9kbs!&8pLEl8u5&j$ORxM=8cE$j()kZfh>Ad}T41 zOFhD~#KL%F&Stz=%*`gvpX0^0S&p$dr-}vH>%p;gP$ChC?MKiBT_ASM3)GA`PP!F) zT@9FCuPHRwZA?iRrG7@g%g=Y}S~jdc4PTT)Y)xZopCaY@)VCKRPU_&6SpA~skhS^w zIVG9fP50^cZZaFOsLR;DrX29r@0oDZ+8t6e0|Zh~v^f(y&O z3)_fOZRkR)dCf-@EOe&ITzn_-YcUkj;lmCGSB$){l=bfMi1rW8d=c(G&G|BcU63)A zi+K6$Yl~pO-Lt%{79J-eBgTFwGB0`5_IAP(%w2-gU2c(`dXp(C0p4vO3Up6+JHfvo~&&Q$}A~?KjYJ;e-@L;c}*{xp(%ZuhT z3#ttD?>rcj;$3W`WJym{bJQz2@QXOr)3lR0q|@YNcrExAvFq%iqeN1h78V z{MUGiU~7@YYoLsyMWLx(<_w{dr7rn_x4kkR(imrqz*f?F+k-AyzGis538Ew1JO>27 z#v?lrlr6O8=Fp_}lidyk3;v5F!)B^qO{hXDm~}`pm9Lxjo3>a~5vQB@YqIyZo_vRw zp97rK+3=_BM4q^z?=9rDSdWccR+@nYpiQZDT*G}E{u(fuNy>|)Bffh2}f?G9^OH7Tk!b*Pn+Q^sqZ5su#-T@Wac7IO#e#WeemtLSmm6Sw_ z#y|lXqlf08GA~=O_RrWV?{q}2QQ3MC(q(HWa9|N0g5Y1cVncXmhdXz?lQ1<*dx-rCiW~Kut_@t~)2H!fg4ehnG9cAG)GH z3g1XS)23dNR+D%<`kuEItm38b=D3>n*k{7rf{Fe8hAu=j_q0G9nKV&)WRc<44U0u^ zHK~_EHBd+GBHIMW(hv>!D;fy2nprP+_tS#!bxkzqJToMzIYrhU_MYu#?$QP*Or51k z0UO?`>=>;o^tH3_SHs)qODQt@{4my6lFt$hXv5##z1Sj#LB5q63V~M-#i~l>;)g)v z;s))aWy}zy$IlzvPfh$IS*;#rxpM>V7>GXCjFP1&xZcQs7m{psqtnI6w4MXl1Osgh zu0o@fB;^7%y^4P1j0@^GM4F>#l#DM;N$4NjI*9debw)ZjxMfPeI&9ckQJjYP{2X(| zH9AF>>I(j9X0;VXsQX);Iwv~j5UkJ2#fa1`pH%HJOI^xzDMdjuR$*Un@4QVJ9jN{w zm2h~C?@58FY%A5Bm(VgUj3j}TTNCebXKmZ$LZbN={jnIfuocn81E{Z zZft#cLaji_XYj#wwhOvD%YdHSjaK7>B6YC_VV|2YaFP>DPFy9`#CWtt3G;#6)?LHi z5p&BPzM>zUF&8;m$tpdJg`(u#mw?d=mjd{OUN=2UJD8b59)wM{T*EhR1$jjsf7atI z&q)^c2*z}o`EkT348)2Efpvb(oCChQa4KvsgTyY24A)8g&o=WrkFr@J>w`s2z+6wzPTho$ORS1jKE7mWQwf zGDDF|^wAJ7s8dW3Dsii;MX|lEuaxx#jXmA-igf3Zo zL%be=Z0CSs;<`)3XTd=XqpBG-IIQJHrAQhixLoQ~@>7Uk;d77rXRkt%wzqc>MFm$w;U z>3R96dK>SwZGaQRa!lV-{CKDO;m6tR9@PvNBGMC1e-3bzC@(Z!f8xv`V(V1vBf>G` zYRUYqvo3bWyN31EODGz_7a)VWbWjF>(xB`fZ)S3x<)`3=?u~l6h?=)l`RiR=Bi>-P zq=>SQ@4KJqwA|+SiusjhP)g7+=pquWu(gDiq%i+EuLEQMP?87I^AM=j@qa;)GR7Gx zF?z}No@rwDr=+y`%GfIp-Ryo9;JFa51-zNO9;&1y+1aI^HDU-iqpB|d&`h9JVoj9=TIOu;Tpcal<*3R zh$B2lTX2eb%?`azO|VLh=#t1%BdT)w&bKb{HIEN+?VZ{N%XhW%X~bFceGd+fatGJxe%bBOuNa#g0eKzVef%pA z;_JKjWNgJ(Vc#F_67ULN2F8F;UrNy6MgP-f8kfBFmm=V5?qmHvi0ON~%AV_wU(;VS zxC24MXo)jGE;V)n?L=vlbtW_Rs6%ryEc9Z$e9rC6O1H1Q3B}%e`5Irkk|=~iqFC_JjI$szi2W;J=h-8#qK0vb`9&;kJKGRJ?te?CgaM# zCo~qEYIG{Ll_#__*J&2@)aHW(iVyaE7W5{{9P$w2i4{n%)%g_fU$r%jDtS5a8|v+w zL(ChzmqsK4Z1YXQYQiZK+>a~9B)I&cU%LC5rk^Ej57KL`b}bE?^e>cmcMU}^@TxL> zf%bKBNro`I_3{;hh;BsY--{H;ZEztR)r380Ocjr9Mx5O)D)q#9FZI>jj6hj2QHHf?-yMFiirwi^= z$P{8Pq9WzZsT!2Oy~IC%#u><1asZVb&<348I|_HU`{0tfm=Z?U0hf@A)h82uC$;PO z80b~gFpEJPm)G_u21?>*2?=`)@#g@WK-;JI9uys@O+k&BRHD2o33!pIII*=<(G>qU z5zB9+Vmc%s?HlfWuiKR+BwT5zoHz-ju6BzDR_;a+6bT6x;xRDM&~1{*!bgHtQn7EMZoa+X63z)wcdt6}HrcU{ITW z4wn0pQ3ww|k_^l*F89^PJesNfv7#t=hl(f0-RvAd*FqLxhPTaylDE$obi(P)@Y-$P zN{VMR;cuobjNbwn;Ie6NV-jEX^NPb|5_{WM%Cen`^u8*2c@rdwZo4uSk01Z4Iz0!V zf}@0UWuov4{-`;XMMQil!RontAyl7%VS{;-T|UMbk}g>DZitKVmxk=~?<&Ydwddoc zG>vet8Oxrr2xOkaYqc#r!`gA#_cz>*ouv$0J+!f9jr8TBam1vegX*$eHO7kI$MK8`WH=M-ZKJE*67<_u^UGcT|LJ%nd7of%C zr&kKrUC#mWlIH+^Ztv=&@%$U-0EYJTb3mfcuKx?@(08}#-6wbk|F2W#0oquG2vzFO z+F4K&lLroZe5w+*9FM;EvUzXE`V?mKuz4SE_5}$B^#fT5M%Y=je&c6ICUCe(aA}U; zV7Tm%#Y4q;()e8tO$Y@aP^{;gP1Jw{BlDCHAkbY?Ny3ps+y(z@viZP;!XnC98FT1x`0TgHT_(s%vRbOA(+Xl*x%DXboCsb`?F0hD?rq@1f zyzstd7$eoY>~3YLUU8!ue8J4LwlxE&owmUpYoIr##w_-7Ba(fI=V{ouC1dgI#B18( z!n<9I3x*^5lBupo$LqugF8iWtlf;(&p{BI1J=nH_m@wNvkpsm)wPq8_O6|jV?!6VI@r(&`HTz*GN@IBj4-z40 zp5>`hp@(?zNo@+&7cjD^%3;ZnEHF|&wN~L(7n3n`CFL0nuk=-cp4p>|TV-Qa&${Qp zrKBlUBQ}V7SCDF@{66wn>*{saB&IQ@$LV>q-1DS74hxD_@LL6`yuDKToyuFpu^h7mrR5vlr9VBZE47R5d8Oa`&y zmpVYSUbvoKm{If@uEW)&Ao5R}Vw>Q)wh+v`+eh#yCcce)~ z;=P=nOov}k)xxaF6AKM7??J1i0K;Alsqd#BIE88$>PL)x@{{!ZzQE_aYT9;#3Kwpa z9L<)ly(TE0Wq7%8A<^p5swM@d8*o;FuM-Z5G!8TPW_qt&)*I*DiG(G-4j#PY==P!D zJ9*AoQVTN#cmd`JzX)Xj)t5I;99V#_*TMA?=I8qK1VU_;`I*A6KJ!RBY!J5I0J~(9 zGJ7|-frXac$LhXwyJbrd;={R=XpNO-Tb!gp#5sUjO&Nq=daQ+k$FB|BRacL=@~Twn zDUtCR+qJoQkuM8u_t55FnZts%qQPz?){FtV_WgvIrxuKbf2R_yX;rWrZ3&6G5tOMTpwzR!p78_z4gbh`NPWO@u8*MA9ODPmJi8H-3Le!Ma#To-fm-lW4Gt77zC%Qge+ssGR9!~b2 zUKh$Su$Uvvmz}Ja)T-%Cs@uR=pg9)R_ym8f+tbk&^&_~@2P+@j|%&$Yl3 zXSS(;9XrRfB?UpqoSYs9I;KG)fjxZ*NU8}&_+zy;cH2^)w!Z2hgk4E}qV<;Sorda1 z)!=5)mh4o0qwIwfVzpnh7kh0Z>AO_>>y!oz=Q9;s z4r$dDpXk@gNSISaCi0i5OGRF{jZaQ&NyrY}DU#eYJ_pDXaq_c1u*t|EoxmUauqZ=< z$+*ks(WVPT_EF7o$W>(IVPt-a{{?*ksO(|1T|dYBeF;WaR0!En5_Ambj1O6azi9}6 z9dvn<$ob~*gKLrn0-IOTpL!BHF#Oyj!0md{g(p{@n^W=7-vOA6%Ra07dIN5CrsC%t zaHNyWSyzSBYxX}mJ}F68j1LCUinq`Z_%W$(N+k5Q%;_`O5*nnAgZv8#doDe*^|kWS z?wMa2{e(*dg_M+Zz3s0QXllM70n=Au;p`~D|8?x^S>OUNE!Bnd&Kz82ar||SAJ-DZ zRRc?B?-lo(zKv3ucz_got9dzxB=)nJ5IOVP)DJlDZ_WYXzz%gnhINr9z}JKzWAGOC zOA}1!dHI#FlC6L+18Pj?fX|2y27)5-`Z-{E zLmibCz<&<73yT2a-3c1!fS!qsDnqJdSi3AoKl67_TbZyJgMF(MpxX!R!?6a{cwM((KC_2FQ$F;R_XG+Pw!-`sD7J+28P(9maAhVYV%~bbCQEA z|Lr1%m?cqe>(uE`Uts~J#b(jJmC@oMZ}#P1y{ZlQf5eghZD#yG4E*9j{v`X^~BV6W_V*a!ZO_=o1g$(n9IKdVOP;Xk_M&FN-C2TzW7GGzPGLm{!sLyt0S zBFrtKFFx4LdxhJR>06x^A9%?EJqL8AQEj!8(sRm%GMqMn-&`TY^Xd~lXVJsTmXT72 zKnduzn(^zSK|P4xG#v@fsft1D*%$SjLN%JN;JF7T%iXVA1i-04pajqYAC1%FTJ6)S zZ9$M|isR2`-y53usb*NZ5*2=wT3kj7D(tY2qz(*C28q?Tge>jG9|qcXF0c{!Zx>IV z7{{q{E*g&)yB<{9I;yRG^o-8SNZiw1%v-i)KTf`INnoBbzC^ezk$Cm?Q7EZTr1Vk% zq!{YamI=fTCdg-?<0EPYP<`pK;tr#wWyIlKmlvbe9lHe`_Q^7;i3$8IINR?~(N3-# zW$0K5e_#xeW28D1>lh(Bz}MZHDL%a8rIMjyiWF#2pigxlVl5u5p>)Z)#HYC39Jk{m|bz~ zA3W^p-?7g5d)?14i7jLqr;a`Z=Jt;W!*uKd$QgM~a``jB`UZJd7ZPzU{YQ zR8c#6WkaUbg|4oyrMkg5W+tyDM@%{b*EFglBUt5>;5Zy$Z;!U3TGR?f1>TcngD86= ziogxLmF`Ra+e&3y2Ys>kM%ye*5`QqsCUwf7+Bs+hMrGIex?*__U%=H?GkZg4aQ?iF z=KyLDiTLu2APAM&ZA+A<;vbT2mr48;-xqg#WNoaJZYgPUXo)GlIH z@+LoK;fEeolutUAj~~P`?<|;)ZB5!IJx!bu4EMW&CWCq2h-IgWrL}unI9DHf^BFTj z=rI2nZUbxMSVEjgs41NTT4AKB;n+m`_e*_zh;@86vQ4DIqldJ{#e#U86&kANwrfHm z0crY4h10M$sV{*g#-iM-wMhfM+pEEXi7OvhV$IAI8tiw}81QB7^UA^?Wa09mE(K;Mxfmbvbb?PqWm@;km4U8otyG0+TZOo? zHQ%^?@fGh20`<^9`1d}P0bn-ZF{UO5HD}W97q}3)X!|8Vam-7HuQJ)wir36o>EH+R zgZDqyXzyzof>u_>H8PBFA9KNm{;j+N|JJp34q%!HFoIw`x~2 zJJvUhFD1{FZVS0Jf~mEkPn{NM&qkJpLZR=NzEf-K~z7B33m=4 zC%8N2IJ2wM%W=<{@8D+dRk!E~=}f#ppstLmO%}1m?pyS%HsSW~GWWdd-|H$a;hvK| z0#Xr7P*Wr(NbV334Vz6H=c;bW_^S5>TA`yhAv)kU>E|h&x+{^DUyQ8T6WbT7_=4ie z&H34xzwTFqP?0gr8tD5G|M!p>-**R-5}y;Gj8_uRZ`}>`%L|73Je&-;`*kDXdd61X z7_Gz7V}9NAt@8A4ll`V{2ll;2GG@yrwV_3OO#W+^7Gb=_W6Vwws#$Hf10yx2#shB1 zO)%?ikcby6;yJOqB=FGABaDw7!BEg4>JnB-HqQNy0HiQpc+r5B@X@ z>SlxwEroV#PN>QhZ7^FvjQw5&J;Nc*?c9~+@^a~pTvsWi{&=NGVGxoPVHkq*gA^E)dPG&Ouoi9V@6Wp|I2VHD?p zsgG#MGl}8NhjKUljW}=9O0j}(GJoPL%U|_hVSQ{}zDP-8!v7pR#!3DtBz^>4qzj>m zAeeE4A4Gc5tlBOQ*ddkQRmE!UkqbonnQrksgv;1onn9}D`=f=hxJt0cb2s2y^q83a z*lu!ohTNvEx5U!(rgvYt%-B?@q!FY>DNj~_Nna3yTLh5tIhMXmsB@Ri=||=bq$ghX zOu=9zAQ~#}Wl?1M_|Z&2B9HcEyUKDQAywpf@_zXD-D9?ZyXOE~QXA31IRIt}{o2c@ zFZuP?BDgD0>q}YwG5g;N$S9&ZsUv(;O(=l1d_1$uV4HzS=jwYCYXKL*#RgLyi}w#u zj`bZ55SZ|f1QqLUo+zSo6-p8*+I;0)km6EO73>kW$pY_V6 z<7m%mq}`n>;|VDr$o=}k{ASb91s~>@B9n;?37Zd7c%>_&)EfS+weWAj(>@#>9)HLk ztKBJNiM5X>2mmpk#QffTn=pB#lR0J*HzT6=87n3ze-{Fv#})LJ^UH3SY}@`CFzFg$ zn1XjJ7_$taH&wP7tg0psxo^Ab*;vVMmwf!g*r0ZU^0~0>Ld7~Ehws5iq3RG_y^--z z|I%eTgoo{~q2H16*S}?QJ#hPUKmnJBy^)a*X4yzJAzr~?6Q4GSTIhPVOscNir-R8} z|G^(|VNZ#ihO18uB#YndFz1L2632(3*U$k#2D!7R`gLJW)ou|txQo0i>+CI*5S2Si zHDeCOP4;i4H!kkC0pQQ1-0Iqe2@Qoh_ojeWnuziAyVTtS`+Xf7(tM$ zIy2Q#{3!BTLv?-JvfQ2I1RVC4s!v``h zWmX$4G#q|%E1%Tv4@a)mEl{?E{$W2W@eX?te1)##^YseNCnaV5^s)4I?-}xbUwoyh zI8UUiW`Q17=mC}^vaHGUgeo%0pmJPJ)Zf%`5BPAbwB}Y#*p)$n`cx{1mv;ovRhuk0 z?{h#x(URL)+)LPch;|94+EJ-mD3Jb<7nkRHKJ_eUUl~5b(W#vOhNPqGVsAux;lv@@ zn8Ex4)1Su>p(It~3LWn4mqy=u>8~)l|KMv{`#mS!f6+zp8OiH4kkxy{By zo~F{-kAH~VD^pNzE;;$6{#yp-`FomX)fvDQBr<)~qvIqsf&e=!U+hu4-Y!v8LQtum z5c{JpR8^3_TsKm}?LVZod17qjw*_(qqFAEXoCk^6b^TCkbBsCM>i4()H!{He zjQ{D-+f36&6d1SYXyL)8&ZrJCLn}K>g6PLRYc$!J+VfjJ2h`<}_w(MZYDrZ3s8a_C zH{*L_7rpgt!wBS*tQB%fmG}1ygvXI?M_TGoldEVNQw5{?SkCHY&1D-hBjplfAKvCL zs!d#-pGV^y_Z~=nHZrFFaU@C>X|3Bl#4FU{0zt*UQ5APO2e@IyS4+rgpk7uMZ70di z8M(uPqxwB^%SqiUXIX-c5V+WJ%`V4`U?RgUT(ay@`_u^X$g%Ek8MxO7R#U_bhA+0G z*CneOMdNvNY{b0`Sm!phR^9Nrp59|4l&d{9&&<)tVJeNJuoz={7AXRvYJiv?l8}RdnapsriAsC>Np*sGoUEN=H+Ly zOaPnK=d&cl@}wFmN1XbY16!w+n|=FLWZy$&%eU^tFt6`Ni9a#Ca72^s7w?_Nnyi4o z3^G)Zz*({^oD0AIWHLavU>2X$jwFhObV}n*j7ME|UifHc$tSN6zNa|Y@~kYpiszFv z9p6c)s0L26UzIk9Kww@wQxs~XUUQs(lqjR=fsW=~n^x=VfBmiX+Owrn6EhLxo) zcd;zzjvtXVRHke3Z?~TYK+TdhWMM$z*w6kKt|(RUS=WCn`<=UrOiI2 zT1BKgzpPn*&iBU9>qHt}xWb`s{`ihnC@J8_i7o~1hI{S?6V)2AUZGuIQHrYS1-iwi zGg4-yFH&YSRGl=kXh*^UyVeg#eKDknkG*`bZ-&?kR3^f6%7GCw=^4F!4dfahuuO%n?-lwAOBG3)g6XdJe%J|Hd&FZ2WF& zdiI!$<=F848-BfkFYGUFzDd+kTuvJ$F`3>-^wavGpZ9RnP_}i~Z zUnD=OpL&=vH$;%BsVCJkwIr49f)nsh&Vh5*lEjM4{;A}V$uba)Mo+3Cf?j6<(I-1s z<&UiqNRM|TEp#w@bLe%D>3*pv1CulFjmCH8+q!+}Q`Kb3T8%wnQW81*pT(~m#Tr&7 zT7M(4JShQ^9>w!|1=bt2GnQkZ`A)~PEO**(bMwwGouBq5b@Np{OfsAPkjTW|mRR}G z+@^0Gh8dh$J7ZrUX@ZwN!}dz+XMrI^fku3I3Erhe8jo`EJdolrA%SMAD;~hj- zx8mIxhRUcOIuS>Zq+Ax#(qFOi1ktL|2(`nQH;LEkus#v0prTFr6mJ|ag?-=7I0iBQCP~=O5ieK!eH~@$72Dud7ExT?C}LN=pxk{ihw`*t zHN7=cJ4NJf-3ujVQJu91ygGj8fWJ&VNw4^Cw`7_6Mzw$0<}&G2>(6C7q;>L&OQE%F ztH^*tbd%R>@C{mAqXYSh#_FrDhd=vgp$ACcTU~#Ww1|o5S2BS@yXE`2) zq}KP?$-FOjBJC>;sw=~81dre4?g}2EHk|~%4_ypiEBiePc*5FMAn*f=plh(j8zg|} zZO9KTJRx26huwx2LT3T}L!s8xP58h?RPKiIC$6q6iJXEBABB{fSTIYUkN@r2w~@K; z3cr3TpqxV89g+nv?0FJNTclj319W1QH3|RgqACGhAW)KOF^%p?qQrQBFFO8;vvGs{ zWU>o;O`7M+R<@3s(cbUo)8BR3tKQm20?6MCLLQoe+p<5U-71U8dlH?`dIGb^{Hn=n zk_&D9FLystiF}zlhOrVfe9r-w)Mp5D+>fG(OmGGDKc;UVpE?Yz0i70B)@;_cOn=V4 z%&>Ad*V_#TEon!Uh!;!nW9_Vgqk`j-ALEnck}NmwjmmNVpiLB9xBcdRGhiS_2y%xq z0EJN@YJwPHQ)}q5GxY`J$RYX`vEO4o)x5}wB$>EpnJ#Sj%#`80a+PJ@wTjR6*UH?K zo$*X`*}w6MT!oRE6J1}a-N4xS4{l54}MeuJ~K*zW0lmQrse+;@oH%GdE86?wQ z?KYj>b#$^*83^nY>E~#Oo!FB4X@F*fK=U$|9{_5Q*P>rM+~nGdyg1I|C|6%dpu=_^ zeV-=s}pHOw@1oxc}Ju2bL}x!f%h`)E}E!Tp}akPXCN!a)5( z#5sV9ptI-}o+*qK%|9_!3;0vT|G*i%%^0U?%ee z^Ui{|UEv0Zj>^S`x0etb)|tpp)|?4~@wXOVvvFnE_p=Ymm& z8eg?_&48dq#a(;N#C-TVRXd(muexXB5{d6{pWm&iSr9~p;I5S#c^LHSkanf zHfayi^$n)G&Bs)ks6w0M&^au=~hM09#^3;Pde$@ht($`3X8TAo_r8~+`-cxUO1@7=*Y1)6)AQ9otI>Z|h|eaf z6+NwP?i<$WMv8A=_g&W21xq;C8;RZ1Z1)uxFh4ozI>)~Qm?&oOV7pjIcE?ZsHpTpbyifenn*Y&69 zyl~|M&D9QK3qO^qE3Z{&zg9Z^+r|v&0wevjvi^+H$&Tnh^8g>%Yyhcs(^<;5(PwQd zeG&NL9AG?ks*v6&60@r}XT?g^Y5fn(F+S?%@(PbBR+SR3`8Jchbpx6oe!nTD^BI+5 z;vt_rR$*s$*_SQOBtFAqn4}Qo#gm>DU`R3p-dl;iK+;835Zf)VaJef@bB+5rJq$w) ztms8x`oP@#E}t(OwFr(XQHG0C&`b*kR{3;)sbJyjn9L&ay>AjSf{7N~5vfNm`%TXI zqC90&YRQJuSxCb?*4|2A*nGeWFHfV0EY0 zR%Oh`L=!-26zKv*ak0WHhawJpyy97*GI|r9eVfA7_yEbmvqmjj+CE&5_!G9eH#SqF zzH$7ZWPNP2&H>HezEXoGU8f85>kE{GKp*rbP3+UQmr$5ts%d$ZO{L|ucvTp5IQ$-G z4n5g?Q^G!dPW5N{f8c_b#X|H9TX@I|RRi(xC~m#x53Q_>cmt!9V^a>!#2)e34&Bq5 z<9WHK$!lwtI8sZly8lwFa(kCC@0FBUQ(@R(u#FJqP6ojSGFgILpA& z_Z%HI=H_rqlR}MU!oJ0rvdgYQ*VdhxxZUCt`)tMc7s6Q=#I)U;B^Q^ z>Wq>E{zl^L8s6h^^uR1a-EIMJ>UdJqJ>4`n{m9YJb>r7(`kVj26y@3$#j#>l`{$@g zm+G+bvgb0Ls>*`PH8(#ib)hHsE6*%!x8_~9zQ{By7&YUYvrM7#?Hzkl(5$N2=@_QF3~vw3 z+>+n8e-ulc`gtGG=$5f$q+}iBH3ZQFcpUw0Thjg!AT~4zlSlmnV+Koh<777(I8C88 z7B0`LMW-HN4d^3%#iI)7-32%9yP)0XYJcpB@{|FU*FKZ*^B;oZgj_$6 zuds_e&X&SZ19jWjV&xA@2VH?01t!Uz*)`~dz6m_TV`k(I&)MHLXZ0Te;!bH40A2PE zj0tx`Tilk!B~HplW{vaiKEuo>FYCB{`Dx&q`RpV|AwyZqCgd8S1#)A*&6S^RLk>O9 zg>PK6(q1ZyQ0pPxs4^FbxIa?7t(sv>b@~Xs`K13bis-}p0w&yZhQ{vG?oEEOy%{h# zLyXzV()S3pel`z3eWkMb&qB^WoLwtz&i~ko|FISSzpxcCyBGe%M>f z_&u-Ze%;p}Uho{CN4-lf!Qwjn2xi}<8uci{8PAP=nZ4{WZvQg8|Eb|UqcU~7G$Fxw ziReFh0DrVGF8aFxD}|+3uvY+UhmQYoAxDR`B19m9R?Q%qT6gZja>b=3#Gijnd*XWj zZ?G;`p~c#}c0*u_+`k>`YFK*a{%xGA=KR6L^m$kgi%ea)T*HqVD9b{97m4#nO=x#g z)NgQ+er_Ag+7A4AyDxhWhtHJ0km1>X9s2&CANrgP_Hh2JCxuU%z(^(*w2Bv}=b;En zf8q}03#Gk$3!1Q9pzumnF7F38wI)hZETIA&Kn#Fr9A13aNL)?i;hTt*fc8MU6g?> z9iPa>D#Z@imoFW{HXT?6_tjT759YGyTr_Ti>rY*eSQ%Lpw!K%8*lwjOed}tM$U{k+ zvw2@zS%PXM$~kZk>>rgxggPd0`p;DR(M#*MiGI%JEG}#*P-PdnB(fsUht{{gDS7oc zl~YJo)_kA5XrZY+TRf3LvC~APOftv5tBtSm_?-esQOmcGYNMBzKJn_A$u%bO6l}*4 zkJ@P0Q2Gktn%Y}3T^hu;TQjqs542x0tWLD$8LStquF^fW?^FfnQOkHvE73DStyjqKb6=PGsWD0RBwI(OXBYCkDaYNx z3sE_=o2?82u)uxZFJpSePRWSBG=Rx%s+~15?HfA5Vgmg%trJlaNGJ)8cBG#xllWD(N(jZEl}tWH9GX`>s!X z%}o0ckB5JJ3z3h%b5MgNvi}UxMxE$pzCZv=!uLcVj+Ve*>#L_6p_)vVoxLb8EPm{h z8yYuYGIXeHW#%+IP4DCtI73x%EyUmULG=r7tIRra+Oc8tT8ByOiQx{bb7hqg;=!D& zGMEhM=K_x{tPI~p)f_w4ulqG5-3O2UXne6L*TrM9gT>Iy&@g>A-9@eeZhz)=(Lvo4 zF)av{!^)b`>0drxX}GhDhOsOb=%$}atq|UU7_S%1-$}DLaO7*KIoZpD?7rkOZ!bIx zSD9e*{~79+Qbw;X}n+XM;CqnP#5fQe`Rl z@^>2J-@iXV9Yak&AY}rvu>fq-w%Y-d_urfGz<;ejckXw!TBDs@4L2&B=WKCletBeL zlqc$H!p$0MrR#lKE?Kl!dl0;mR}<1BY8$e4!H~HwM1vYW6x2aBL6((3x*;mrWTv!X z=+$jrTz2n=EZ3(aQRz{-`7Xj_5MKQcvZ@CtC~VpvsRqKw2%Q~Bmys}N@zfmoIXY;J zC^~PksVR8Zf~5Ns71bR;xd_wSNS--<%jDJHqrg;uXJMK`8xR{Olvq&%pX4ZsGG~{C z|GT~IpWNv0H~f2;c@Eov3WbkDSx7&KN2ThBiT0Qnrasi$!V325JtXj@|@R)&rou64Jp6y8uL%k&-bxXy9WajKVp?oY}NR8wr@U=C| z#kK!*f%wx&kx>)%^0Pxy2bGC|b)l$t6an&uo*GH=RRSf_o^raUL>O^mK&EDlWgh1q zm0>vWol`BXB$`Gs2OnbhMI);$J9mntcdq$X z-4jKryB`88P2MA3oKF4x)bL${#rNp6w&RYUMTZ9+DEmk@jn4Uh3v!IP9*cYLME9=Rp**0Tx&zh(`yLjV6zJ zQ`I-!57r_IR}<9b6Gi3=+{lfGLm-xPxaaL z5VAKj`9k+k^=I`dCwO?1nmDy)%eJ4L3iUYKM8qK@mOj|`Wz5=jY0K*;+9iDn;3X87 zqWON}VM+es8I)z@UimTxtl;weq+=Z|moLbCDRMihK}-o`~wXR>iEVZTB{Ur1Qk z4A)TsO8dJVh@%6FSteJg346CXw1MZm+5X%4-Rm20I5gmGPi{_FmsNUEc;nY-(SqR7 znc<+RXa_qGk*D%)=AkF~OjRFhbeHR{d6T9kLL@Z4`4)d*o4XSv|f*-h_+-c&Oa4FP3pkK9a^Od5m3(3#Q@)gy*^PJ;Jn7}!ex%eR?e9sPq2Xi5B#8a-}QACwTo`o$jF(50gA@QAj>`jdW!~KsE z>$!6q&c<&>4B3jMGg1XjJ!ik$O-b2-_^YIWV4NVZNSASl8lXy{VIvES+Pp}y!J$g9 zC9*cwidfi8lT=aoP>p?kC(MSP_8X5#H&Pw`o)n>Vx!$x#hBQ&$_d~EyYLvF%Y^a*$ zzSCQdRo9)<@RCcFTHkMnC$4d2irwF)kEu~?oZ{*T<&^2odo~r$BhdS%$GC1mFL72= zyp%?obYlUo-{UU-)xQ2|X1IFyB-KS0=l#`32HIbyQQB)5Iu(uHFWjujb~%`pc`EsXopJcqsLA}3 z19k5bB4s!7UZ{FVn}D3B0X{A%I#u}{2*i_>J}^;aQ!gXU=e?24aQ{uw9Y}14lK^~) zJ&IpHLCoxP5yvU_D4Yg&guRW->48eu;rm1L4=swtvRpDr4)t~iqr9_(fh7_BQq=sw zZQHe~LsvUq@^N?N5BTkS6ExaVad$BlUw~2Gfm|tS#FALvp;mmnY?`4UMG0j6TBiD= zK#I~`3-x{{CZ-2)ja(!K6DbVUk$4~T^pV%PPvUtP$#9exsCJDe$H+&zU>i!2zh9_o z6)qcW+Zdams3$Gm1?aMViWUIvoPd%=5DchJ5dwm8zz#}IRsZd0vzg=G7f=dhSj)v6 z*c=Z033h`Y=u`Xwb9+-T1@y$nTz(MC2a1i~FD+o+M%swap#nD!l?0NvEH*&2U*G}i z_Xmake!(O5*5V9#87$(w#C*W5a{xv+zyw9mQ&{DKVBg|B%XT39iX$o7X}@2{TM4=N z3Y$!UPV@9ZSC>%JW8|pW)I&1D;TEQ(mmY5EX5V5yO*q`y& zcI~MR(5J$aa@(Pgb_>}U8c>dJL#JIQu#wumzBXR}$cTg(93pU0)am_GiIQLlWQ1R< zY8|KWqgp2LMU*BD?9a|DeU=)Q1!z0>c~tnOCh#f$lN8boIhqv9>mQgm`qe#^6MAi|0o9|B6D#=DdL-HsUyn$)Ar zz4vOY1rJ&ldf#b=&>C)6JiXuV9< zLstaC>W?TnI$U*gC!Wa;fz$lE7vKyrEwXBx5M@~SJdkk|b9q#Mdy*W?f3DtnMHV7|L^xzG zt!d0&25OR2uuC*2*-Rb;V?Wep026u4UUI{v)N;w27iPHwF|63qjw_>o<>>SJP-7@` z3Fe<732>W!sT2luv2A|=s!nTm!(x!@wKK7Os~ZuQDy7iRB~|e#A`jC&X%mJK%qDqH z()(dl(;e7w@Up-kGkttX+7U=E_w-%ngchg!ysFaNfz05Xubx@5fH7cJ9 z*J+x*4%9i?;9Xg^7ZLWO>Qsvs&D8^CIFPwR62$7~(1IOEj_G!0>rmhqS*0O&^Yh(k zvK49~D7VDFC+7`wn<7qdT3_Vd$p#NJLs=Zw6U%q?^SNPU_~T_AdSm{+MUFM@Qn)F-qBC|tzjs;rgz3-=RYYoV#d8zv7nnwoJ`y`6vIdd;fDPZq&1 zH~PS?7ZZ-Nb)9H#4 zg+ST{C^^~euNrQ_&f2azv1vu;=}A@=`%oQo09Z2N32d2PSV29!5SijR2Q+YOL9h+^ z%D?UfJX9|*@A4T0*7Wa>ZXxfv{{}uV4C?@6C!d$^57zeoIV2Z(Lw5?xpyDD(J|*$+ z363NkcW@9#6iFyDBE{F7C#d#Npo!f^J;sQD&G2gC z>;CTHX6NJXN1@3jaqM0NS6XWv7|UAkDZaAL`EZLUQ90WW&z;>eBS$)jxe97C5SWW* z);%7LIK1_7tU-BzV+Ovp27m!lJ3z|%L>=J}0C?9J6kRbN~mIBVf_5PFezhICCA5&L10P5$wIWUx`=jZ>jb;s@#PwkS> z$SXK@5sjyCtK6uHp)h5y=U12Y@CND-@=ClQDKycxW^WRg(tM)TBKDu*xYhV*=`UNV zq@xD{hRbaJLW6-l;$Q3dKd^NF>UBIBKL^bC5EM~TW!H?Ct!iCa4pb5ZMwNdFLA!qR z#v39)(Rd=r%Zo#i1skZrNA~b7i-c*fin&i?v+#}5rP(r(KW_>Y{4O;43rCdPg?|mH ze{^{ItA~_R>w1Is)RJ}AY~3h~rZK~?EptqmUf!WEe$lL{-s_}}bm3X|V^*k_1%9Bs zWw#>|8{&HsvunjK`8tJXsDdLvM^b9OV+wh@$a*!h7_qVn&LARA@bVjZ|IQ>oGEPxK zeLAum=Ds(Y4#fY32424(Z2?Fv6Sx%kGmnxV`DU*ww4Q!jb^*|f|1(y-92PXTavmuH z{F~8;ZE1VG(LbDR^Kt<#s zZ?~9L=c3bqh@4zDGdur7Gl>3kUZF>L?a%TNPb;)TSz$O7t)i99uEL&t(!#bAeGl|f zQu_+FQ0~&yQqp?Hn6Q$yN1m+B!!>TRe=p$mD`aGlXg^jwR=c!c57R9J3!xn9E)hPH zf}8)c+~Dr4Mg6|fTu$vdi`5-v9V%)D2c-pK2}$ZW9TCMumYbxF3QzP1Snf8!0!=}- zriw_{9jl~!+#hn9kGy+KZ}JvnK;fdDC_{(A@K5`(8%K(MU>!ow2w8Xf0s=w<=iTPG z_l*vgcZ!@>@6j$)dHdB{p}d%EoD3eu-J@E*ZO~Cj>EjF|D7sr5B3p4!Wf?+st2-x3 zjOa(CG+2Ii33xTlUVV2*Qt!mX4Fp*l(Wt$7%A6k9>yyAa5GPIbGo58+ZMg{%R@w8` z`zo1s{9CU(7snF9ZS~~Btj}vr%itr(p!N& z#TVW@oz=i7zqV^#5-gTGVyU@wZB*YZ=JnXj(lGlz_rxV7ddgQEteO6RXF`KHd*>Q0 zc2RiHbv-|1U8};oq6^3M__;R1Lp1w`Nl*{7$1@pxQuyHi!0BP!4{CuBq zC|8?Nc*dJ_i?ivY$qzr|e7*7E^Zo;_cUnJ3^EV4P5?Ufg4($6omH){2PsD~;jreYW z4a}LYTz%kz`TbIU7D1)|r;V2Q)67iD2r~whhjDqao9X<|zQ!rQ?rNDJXj7W5qJDN} z^n+Pdp9%tSX8;@H6FntS8n-Nb1V+1tN|JYma{i2@M1vWX`{mBt{|wLEAJT8+#(uzg`(647jqPy z!oM=M3aj*4$zRQ=wsUG6c9e@|;n(ELyfbUCTbkhM|DEyTJ17TUW=4(W{QKgEaIRhvwyUk@> zPR6q>aea8HN78e2%!QTd2JPe=WZ8zshRGWe?IpY*;L1_hlu;jmmlOZQbDsqVDZ)FI z4tcSp>yGSZNkEzCmy}8Gg}ZZ&Y(&@jRj45UQ(7s3TPC$0=Z;+6TCW=w`3llrO&okr z^tl2!fo;DDCR|;!QZvb`v_Nf;k101mU-wz9j(o@*g@=5*fE1PP>7d*FGyGn^7J)5r z38Q+~%fqooQ&lpXoqNiL@k^+{m9*z4u3py?N)S(&=20NgA_y^;@d!XtouH>DWj3El zv+E=kHG4b~5DVUSPEMcbQhb^MZ_DjE{j5#)lhl{%+Cs4-Vmu8+ zD&WoLLU=J$;=8PmB9tptTNGcoXwVq?|rPTnp={K6{gXeKDjpN!fTFi zV5z2lwa4U~yuIxsf14@v?+xgh(pwul6jMNS!bKwXCzcA)!&eb=`;Q7Q2!9JLc(1fxrB;aOp z9=bA#uoY=?wou&>IKqDL&M}TBU^}K;!=ov|nc!TER{?{vY2mBzTqI8OMqv*{$n%Ks z5=^V-4X09Jov3c@y3(mIx#W!SI^4*!w1?`6Hz0zK%3nL^4w1Qh((HX1zAh`C&(93Z z6S@ z+$PH~_=(YDx)VaN^OjNHkKt0rGUr(28`;vx_C(bq1 z@Zj}RGYwmveuyo*y>a7?&Zs>RMH_zVzLy2Ez;Q*R{`BScQ*5m;n=z_+7_Fjxw1YV_ zek7uVHKVi*;pS{DKF&7%rO-Gx<9VUxOv5@uyio)6Tbbv|WT-@bXc*8pp`|MdQwL3b(^&)*k4Hp3sWcJhN+R6?@m+*GLj$q=@&nBM{ z(e|$PQS|$&DhInCN8hrWt3Rh!x`#?P`7~|NIaWl>b;~Bp`R5g%cRg5KQ=PvhZ_4p5 z{;Jsh0I%6LrNR5jr`&m5r{jmMqh2IZW%ERttuK0mD8?1kK>H+O8)nhJ-(Uw~1=nuQ zM?z`RJrVT@r6_>a_1h>*Iayv7^I5+4dz`yy*faYIH~o?Ln>l(kXDeFmxyF7VR>Y2v zXyvZj`8swG;)~EGc8dbMHc9L)Dg>HwB;(K6R&ZM?`bDD zLuP!&$h#1^R~#~+5KNEn2(%3Du|O9=apgaOO4l0%NVUA_Un823YN!nOuC&VRLUl*2%q82 zqGq@%6ZeJ$$YJbV#XeH%Bm?}iMz^b7%G~v$g1(smE)KK%K*Vh(a(FP_>xmU4O62kO z)C*$gB4v)ER#WHGPdNZxy&&#yY!l?mL@MnzAtVhO*Ak9E6?7ver!|iS=2kCu4H;>i zEfV>Rw@}SYuO0BSB}VPLP9z9*%FJ;V0seb&cDs}=Ug&8Fw=9vZw6ds*Ali`M!JK6f z-dWtmVWe^3D(_QebXc)Ph(&SrT;npU-6&n?tv*+h;w@w$PMc}eF8|XB|CF!hUxH^E z81*g(22BL?>N}enzN%xlIX)rOo)J7oDEM~wVdaYw*-ZA8>;*wY9dRS|I;D4%y%S^g z9?98BR(?0Ikf_=bHodwiBYeO7saYj!UR$Ny0Ta3p_54q%mJDI|&lZPJ-(ozWz=W=X zQRMU#wR4aveUTr(Q}{_J4Lq?BY2&<=EcUa#iX!l6V56I^fc#ccwq0zgAvtgct)C;o zVmfTam7P}!D_^MXyczaJST<$8-E}YpI7;an@g9_5Il$S#CxP?wlv}$NKAZTc3~ydG z`ALb3#Epc#-Nr7hr{Y6~QiT?EG+FvTP5*#LQm4%vav#ncS5`_O@Clnl9+;OfH(p5S zgvDn&OjNyGLeD;LsWDcSW>V{%AqKec@nu=^i`;D?84uO+oO?#RMaq6>uc25LRX=&r z;AWpFQY9CxKtnPmquF$QStrWQSJ;_fIJ{9>*dkCBo^slEFjid9{maXh#z9p_pS#X@ zu5mMTu%k4MFB^&5&3i#Jbio@%QWL#Fy5p&1Gcp6`GM=S+s;oddbm+Kf4X5vyO~1FT zP->(?qCjaukEQb)BcGR(*tm(}=nF`!=;xJ7w=PSFT&6>QN`;a_Cz6)-6RYsAHl6%^ za_v|-uYbAAsoL8;smLG$trT{55Db+nzbosTE*c}KUh-t5|r>m=uIn8lRG7&yds zMejg}vY|Rp8!~Gx6~BIxuN?ZW#c=yR9p}v|mf)xdIkhhiojt5BJgka$Afi&HE=52C z%^}G$Bx9emv(RIM)z$Mk_pYm+3u^k@8N>G;{w0|Iy)aiC>Di=u!^n;LMjlauQrhGI zeK6*NT#$5UCJtCu=kqwk&$(Y7J*!#H(*Ekc3LVvhaS`1`|Lm_QC)lAedt84=N%pqF zmi=t=NBsA7xlWS)H)Zb6!d{9+%F>mpKb@OYTNx~?AHPwfKX;m2dfG$t<%=y<>tX%C zo=u^Th$p@Rl&|uLI)JYoX}0tb4C~4a5WV8->dC}+A=EL6J@%fTziSlDv50IC#rVS@ zoPreu`VH0b$Pub)B9+1t^O7@j&WQ(#xqd5xi}t^07b1$iq_QNIKfW1x^6)fJLi-lv zoSNYZk-ULycoc)= zj8W|P3Jv$dV#r4QR3tg1228SojyminDj%J;&{JFby=q-ir1o^Lz8Op(7&;z2hW{Sx z{ToA%s+J6#t6&_bZihVwc;+;%yp?iTAPk(wb$3tW&~0hEl2QHRzHIZLY?AAwlFYwF z&;KYB{Hvice^+Av|E_AJGDZ8>Fq8N{uE+QLp1>ml$uJLx`#4AD?~hDbJC0^wx3Oi6 zQZ@|B={gQQ1NOgH{d%epD^HWUN6;rfh2hNgiL$8^+noI#QJHq`S#ZR$S+ODhODqpR ze|~U5L|a##%=ZXN<{QI@0Y%AftSEdtbW3gvx|l_T6)vujBZasWb5l=!h7UDK7#H6> z0AR}nUtO~=N?k81>ng{PNz1xuEpdQo_>Go62s-@mON?%6n z4kenzhu{Rmjg9WxSv~iMuzGQiBxOrUTo6bs`&)tXhpDV0sA3AMXKM$5AdoKCbf%d% zf(2eKX$E!Q=}GgD+_F}UKJxRjspFTKc~JJQMsAekaf2j2wSZ+aG__A*epbKfSJ@bz z#*#Su3I0y1$xoi4o&CYFwdu$gZrr)Q94Rc5*itrf6f<~Exd7D9?Yri^=Gt4gJPphU zk+nnF^hdulJK!+JO`-2kB_pIIG!)%&x#^$ZaN0zi8#R?=tmt8qNU`1D_AMt>cv5?t z5yp-hZv)btnK&MUhSW_y-*W&e7Z1$iwzH5K-Ejjyo!KtcKtmI6h4)TN#S@c9FBx9K zw-nYfb$6_=@Vj0v@EfSQeE>pbb})0?jNg!89W$v=j7ie%D&vyae)FKT6C?n%ZNIpB z(q>RG8}r6dR_bFT`oH_+Ll4oR7^;a59us!AZPt$4I}o*sB8`k7udj{H93gHYw*n&{ zG3DHRs{RNKt=B$Qdo1__tBY}Iq_CF5#gb{l4WnU=)A4!_00H|fCR_Mi+(*0p`3H+J z=wR5-D`X%KdL{~@H}SWoPZ-Mu{v^5Po;_ooD6H_{igR%x zCXW&2@6pn5`s2+9U=%I?caIC{%iAIX`Cl|2Y|)w^M@dC5w32^otlr{S;j+Km*dZi$ zNj~9Jl{>E{9=0FC2Z z#Zk{V+z$fBbjf%XO3)bSE3)7siqz}eSHETFV&0q{(Bxx&OtGxL;^IU3vN{y)f-iL+ zlFQBVJbt!7rf0n`etn%my4~f$Ivb?zL@2M3K>X!a_A>@&!UN&pNRR(CMh*KGzFYpG z&b)aC622Q!`|YFdnSu{s{-qRQ$VqnztB+1NiN+g@#fMDzZ)A5Ft`o?l4D3CZ}ze4#9{vG3)9(KjAPW0^G`(1oG(KhsPZ~QKZ3_ zPxXw!WhGArH4#&D7}d$OTPee@Iuf{t&@mK_Z_vXSy)6gNj@kr^V~U(9tXBc1C6{%s zPM^nk%s6&6S+>qSe&xrI7jI=y{llmaD+ZY-6tkLiNFxbrzJL=o5`b2`ZU2RV#Q%Bi zr&*P+dgord$jLLc{*gx*Mkd>qvk^Na9j@PH!qw)pnBpk;MuYj`^R~Eql85;f8TCO- z^7khIOdN&rz->lsAW#=+0`&ml!@_0^1qHgYe)}CZh5$f~+Nxmg|K8!yKfD#4&B%2u zJ&B*vO_|$$0~5aIfio@}Y{Oe8$imtOvhPOx-+2q0QAX5K3)X!M3r8~L&;^O>$a|GW{Y{xAJr8eW*)7$+qzRaQ53lg+z z^m$zSb43TL!UI+=zq7l4d+`J~o&!qzSA)Hw-u~Ug%~DH7f_cmWBxsG*nm}82f7fvM zuhJ)h9Pl5s_P_%aBNk*;7=alpFt%yilMQkdCgnhKG%alLe$sAkblhE&3G)JSXLlfJ z>>bd{{gWI0>HK~G9yd5+iSPa;DiK;iEAEO) z5P+L9d2v@%vdc}G1ELZxs5KCkNQ4KM<}TN99|5~jDd4eyl0~!`fE^Ozi8T7qi2SSx zh%5Yr~7a2DGA5|zYk7^LiqO3DB>g}}2bD%r)RxByW} zIKZZuJb2O6@Jm#px2M*~AdvK#7Nk}{6&YTj%`&z4Q6+1~iT%UFPL z3J}B+E`Kl8<(N!?vf39|NHKxz-Sn37IFu*Ap|qaEAVVJ?>k9!{?SHl{EF!*~c0d9M z$SHHbB!IujDeAi#z+H06E1&_i1mqO`;ZqU?vX4zj{@#wtOVgEWBb4NQzQY;r%b+XUjOC`zNg$yE5fWg zCjibT)}(a|129L{?B>3z9}g+30+`!TX`sIaFt^pe>2H6*-1v6|xCj7q`?4#*1u!>Z zCua76B>PeF$**WK7XUON$TutDu}y%8)|i-M@VTJ^5Sku}30jQGwX8^ni9`9u_m{k_ z*!t6rY1D)UB<{*@0nE+oZ}Qt;FgM0|pua5xFt@p1`da{Viz}lEbJTjxZH9a~4jWjn z=i%6Xi!M<>Fq2B*nrfxpCDWMHo52~CDU*|HHb%pjY148m12_)&Men=ucwB?w=JZ$J$V5RPS((?AVv37B@1?YnAdQ^0Vn*i}PwO?z>uu|rX|Hmsmi)+%@F>F&Li?NBJsrqCK2KG+#y@eF?l*6ft9{+dta?d#g zG`pJbOy1trX7rV#slVaM{4gr0iGkcaXsxWV)vHSD%q)8k&hVe>g{J0QEi;Lec7kqK zSgmM(t{SN@ywNTBzmlxq&vCnItX0ZYg9gMF>lz@JMCYT)XEtFi-|JC4sUOH+R{oLt z1oDStoJU+OS#8(ZJYlmP7K8eprjsL#6z+p1%0JkFaQy^%Pyggjzv)^azx}*Fgf!+o zF`_Vzjm#sP-F5!pd4ryQo@s$qHca0kNwD;J2PeZf73sSl75bxv;GUBS&G)Y!crT;sMUZy7^U*MY-nv5yhcsnT^!V$0I_K+;6^F z;5cQ7Xt?)VQV3j=a?z$Jc*-@pY0SwN_wJnamLFq_^px?d(nDPK+pXQQ0@qDdzr@jO5-|)A_frs2+G1H4?`p zeIWUzp0YJ$waZSqY}6u2UP4sO!22Qa>}ja=vW$cGI|Njepv0=+B!bN6)KxH7I7 zX6JBGTLaU5%Cqc%9lz%LG|3M|yw;a$>7oLf);iMqP0wD=x&6Jkd%i>=tJmK)t2;W{ zN4FA)-EzL}YSm`;LKw>v)~LoWkZlQi=_URRz9OOZn^!9RS0z@g3muZL8mpywQAJ;= z7I8l&s0~D@OSb<$sedO_?5-NWd75&7*XD?C&zuzE;Co`%S1>BWl5kC7Sa0&QIC)?$=EbDOXfkge(yzLLIwy?rA>meJj ziX$6Rsbbf!Y~Y&PP_e0TmC)yIP?FGCz#2NlmxmzJ{1kIC-3++N>>rw{XV?nNP zQ|}UK^$UdAt3zAmLq16d6<)pXVNk-?39pOFCiD}dNrCuilcb}PbK0db*YH+(d3Oo= z0piQc;_VS-ULqcngJUK`wOiFkdx{xbYwnMo9t?BG($~n5i1b|FYd8qz{%OO?S)PSk zSG)&G0y*Pjy9`YiWZlbHv#do2-xh93i{VGErPsh$xO*Etw}{47gp04v*o_~B)%899 z)(+3IHD~C}?P@hN=632>tTggAygdA(q^&I>dh+}m$=qTUK8?A+*Qh7Hf_S;6Hc`tf zsf|2m@aYkmZc_)k(Kh)e4h}Eh^!qo)MJ`)fDy}X_oReyL&mTzdI;115@|9p_Gi3nw z#36@7^fQdrWH6xqI<$2hvzHwOMZ@b#T{QRyB%Va+Eek{B;kn) z3=2M{j)x;vtGvrXxtq7Mv7~+21712vePq(MmpWvD-R)jffq_ovm7%noH<}$(kLwD| zD2W*EKbu+ zk&L%!?)MeTFYi?pIuy7@;}*)LCM?q)J#^J3{IKiE#B<}^3!k9p<`s;8=}v|JSY_w; zD+w%Qwrw|se2Znq4a)U}>=vxOb|@z(k@_sN3)+cE_NJu_Pn$##Fx);V#|?pBsdq7u7DpR3)3ab9=Xj3UQyr z77yBvy;#o=H}msjix7%z@UMs?Dy4YLAgf;WVYig+4U{BEXYQtxJoJi62=QqGT?ebX zgxF;HS_u)|+|&MXhl?vERVt8$AtzcUS*MkFD19F0Qdm;*3FAzE-K~Q^xRPvQOrCD` ziu!RrYTFZ86wc$#mtQce11US#?7wgL5UC%l$uvEy&h=KbHd;J3LTC z?-AX`%KpHmH9gikH;Dx{P(I21!3Dj^ zbeE=PX-VO1(fFbUR=He=m8x~s%g@S|Ubzi1($}6n=t#gYzI=;>B-D@5@^vp_8CbEt=zH?%xz&irtRJ!ri@JzvV7?AM+hCxIQV` z-$)Nhc3L<4y4DusAt1i(_x!B!5^YfWiukgnyVEIP-K=%&=7v0%4keK@Q> z9`9*#%>t_YVQ|E_O@z_duE5hsWIvzLh{^Trxy3C@HYR16`efN2~#`zK+mOL~b*u(xAp8`aw*w^N&{^ zjkVUSQptl0WKYzbsUbcd+-hn)S_?2P#7$Pgm`}wxctXL zkyLX$^u0N*M_nc*uUaOlMb+*JRRB8m6S!eg5sMf$nD z6siP^ewVb5{;W)RiMMFMtf|na*+zks>mRCotuz$NqbCK?ZRbZblsNSAv)7%ple0(r z-GQ#z!Xg?sH%$@N`}}=I<4*q%y(Lc2}s7#^ai(`)4%VgixszsDX zm{;Tm>FW=( zDz+L~FUu~R@0h***7Nku_XNpn2JV=XqHpAgiCd{wzv!` zy5Dp=3B);0KGpS5Xy_g~obY*-=8PqZXIRX_NtrI!*n-~oWL_Ck`r;LPOA}kco+}B7 zs*SNnIbO}OC)%b-dhNT)P@yWq!NnoM7C}nGSLyVrWwAba125X5?$iG&*dP&k&d%fc z<<4i6yb<58Cs)d-X0P6-<;)3p?jlR#Rmc1>cPAB^@p*w0CbVs|hu;QXdZj^Ks4h4d zm9&2DIVt|!!x#Kc?Bo7F(3;|#A+e%g-j+I7FZb(Hy4^LcY#dHiE9%i@Z%N!pGM#7a zyr%fYU}Sz|Ov+u;b`bXoeI@>ke`E4Y@=R00hk@&2Ic~zTv=?7}WMNXf%KxKCSoom2 zx~toLcipw+kK&Q}WZkkDm45!RF0#vA`Xm>dgZi{2Wm;mJRzs?|%W2O~HvS`ep~Ced zW4sn)^%+B6-3Z=FwWxY7O@TrM>WK4GH;py82lZ|#TU+bh)Yw;(vYi663C4)Kz^Al1 zO->T-s!_glh2|7|bFPd-yworf8{vr8xE-fz9m03JO|%*3>1`lIT+P(5I7&np`dmO& zkHF!Z(AS=NCg(Rlf4^l==To(q4hPpu`ufJqb-$fG{TAyBd%q7TH;(!KD_w23AAbM( zf0C}oGLfQ$r*AM+lC~ce!$-tS_&8|wD#9|p>!{`~^vk<`ZF6vWf6eglV&492(RsR= ztEW9L9IXBl@={gnVVmXE8@H#^*|Nq_gJZyt@J(Y^RpMX0z5_Y)jq-&wwgb7W4VH4U z=rVRg+k8XSWm`WI@p*pp2mc2407V^~SZ$Dq9mpG@2>@|qT^}Q7rfn%qp|)vYK&6B) ztJ!ssfGYGpyMLur6+}VQqN4unXF>JShF0nGCSgfB|Tl8H5hF=FQp~g`z7`CJ%Pfq!yig-NW}}3kKajLmp?mo z`4v=J|D86A@jFv1Q6=SFp3i@^Q~k$X>+k>mqf|3{w@4SeEsB*ad@3+c{p{HmF_GmZ zL&0AE)&Lsk{m(C#)74Y6xY?*1gpY6r{vm}do+13&L%-hchgugCt7IGNSWq6f%*D<~ zuW6mn&WL;ooA8(J*gQMN022kTHm+nATkNseqjZ?eL7)$JjSQlk>yBTB~|?QlVF;)zYc2y)67zL%f2gkBc_2R_FGE z;;F-8QQ(5nFIv=1U|CT8F9vrSDV@Qm1WqL%S-3(t6`o0Yrdl~P_Z^r1!E~s-E#gqjC~_K*IpGyr^J zCP8(9r^a$AjqNQU{cL6ZV5b;Esbui!Zf@;VW;O6UumuEq{cW6q39r%oG3)ORN~* z7wItBMp7-Atv>3f;p4(^nEK%jHt+Y0YO>MlyHCq~01VWZW%CRP z^8o!?)3FGJX@WJnP}Xsfcs=un?8Yt2wxLK-iFGx3P{Jp5FKyz`x1d(ywi`W)#fN7; zMv6O3C~Ww*&ptaA?iep8`P5HCfJ#ExxPQW<^%f(SehJ89b%6Sc2pP~H6NzXsj^f4b#}=BaD3gXG6;c@CUTBrOOctgM z`>0OD_>az0-wJ;h^=saP(t*xn?iHuwDjjHuS0r1U9v zyJ_sKh?lqXOor08#;QF`M~U4Ef_rNa0A^{A`)C7pUa6;C{W=OCx=5*A{aFs(;ahPqmU>U0;j_R^lXy=^kwpp4wVw!Qyq+cO0&D&Lcy1`~O4teKO` zOy4Lh-BvG5)V*@Y8f|D>^X6&;V zLYm#x;eJ6y>~TH~UYddd_B4ecp>>Dt&QOCr?e4o(lVDc(^}0%rFf`fBZX%bbzcB$H z>d^j(>u~huEHA_1=~rUwH~GTg0+A!=bv1zgJB*a?#(;n#mo|iC-e2djN}JSvkehQ* z#L4Qw;pnUT9NiC|{xV6k4cu$4mb+C&HTSl|iw+_$;`5THgaKsT*waD1gkVMH!>yVJ z)Cts71X1t1AVgc;b2yDlgMasd0p4QpVTUL+MK* z>0wWig6~M2)^eNiv93vmuAew$B@%5*4}Y>aB~=~BWBiJo#=Ugk6I-ueBaKffnOOLK zDx^)nFs05*w1r9JVN*+^2K7Oz2+6}8mb$`&D?e^~nI_0K`y(ZbN#c{s&;|E%_2U=q z*ERablj_`CN)4Ed)LCOP!ih&DEpN+~e>OY<-*TK964}#kF_%eZ9-Dv@-w>vB``ow` zs>DfG;OQE-S{pjeH7gGU7!Dw|QtbpFvc;AHu86M6m4`X1*Y%;ep76Y}If{pRMe<#{ zI|b%Vu@$-OV_=~chP~XQRoEOt85yHT3Ljc5_%N&rMx{dJQ575bo7Q;7gI#YOvTaio zbj!|Vh3g&3pwip_8o&ZAc)>yJdWooqCP_FQWwQXa>XbRE<+`M;xg~-ien#U?qNKw+ zH{kZ3rcSFD&YMDWTHh>5^ys*+$805cq^8z&WajLpllHiQIb#cjf)wFX&?lSf!HVA5 zS|1kVKNpT(7V4fVvK1|J48Gj-f!k0h5o+7=!VSW_xYlSM^G5%6l2+r8RxziC!CyX! zKHB_`KiN2&v*AY~1Cc%-YBL=4@ph#YXqO`#$@PEOd-Hgx-@fl(rBp)6QiQUUeaf21 zv>~ZP*_R2~8gynfg9?L4nD*L{Dl z$9>)R_m3X(c@)Qdj^pz_j?er3em!5-#b+H~zKJ3URA0*W>oGSuSS?uRM^ij-%J%<0 zkn&G)EsX|DIuR?rRzndd-o^A{3Qf?&R~#(HM+2+eyU=X@tE$FouHtWsPtItgAK4tw zV)WyBD^cih@!_l84fFQ+E%w!iUAZfM()19{=?z(5sV!x-mLt=$vC@-oQ?N$H<2JUo zw)|?&C-3-(wc8c%p1e9~cAxR{=FI@|8bNkGkH}PyI!b+`ds08NS66zkW0}EetXH6v zkp20VF1x1pq&Er5AAKJx@h{yyc|0h;sG$h?VCyZ?V-%No7)LTwCR8S-kX-6wmHlOM zvq)j{sU_MWHMc-*M@5GD?S*2U!!Z`iYL^el9-iOo5#$O@P0J0Z$Wc0tr3sc*p`5b? zH%3vu38x5_fud5)pKi?95N4u=EebFRB9|ZDmu>Cog>2?l;`cF2GRBMjWN-Z zEJs5M@UC`>eAB6;t$BC|i%sP|IIo(j9sJaLz4#+TkLIni?T=Mnz8^Mqo8uVEBYK{D z?Mf`n|1Ek{ptkxq`O`o8JL|HY@1`XhNZ3+mhPX&K#)MvX!}&@(bBg4%Phz`!?l2tw z+~^^iSASW^^!=w9Nxy!d&To-O$mV%e<4zKg@|w2BfF6{*FLW8G8fEewP#`lO0m)Nw zam@PdJGowxNb{cL!&sFO7@czF`@S|?kK7n0nB@FU1FqNOOpvDg@WDwg+-*Nn!5Bza zYAfz3B{GFs+K&(F;mmGTY_jINt!WsnhqvXC3)N*kWIC&3iA?(`-O+2@qTTm%78Uko z;@a?V=(U2Pj`F(&1MhSW_0{V4oUurmW>%dDdzJtEN_xlXtMW3Q=Rvv@3bM2eJk%_0 z2sKMvWbTFm64PQ=kipws3NDM-vg0k1vcI0&-HJ|ieWF63#3bX?-O|-FtvY9*rNOdM zN`64$KB;FzG5X@oJoF0%JM%rq9Oa8I8kw6t zk2(rp_}JWHidAVtZQCJhqW*{Kn<)#N{<^hIv;o=lA0j^QxfBw(Zv@g`bBoaX5xNg~ zsgQ zDmlK>SQ)9>JGhxkX>gXMnFXlDc?7C?Yzpz~QZCBnR}?N+3)hR&;-#0W56`aD*?R4- zEGDj?gOKuKr8YXJan}0X@w2CWHmc>!UHgxS97%ngW5<7KPd{zA%5l!OvBO2LuM2_- zdk~aE;XFb9QpZZ-Vfvy@M3G=&n_|Zy$n(}5idoLZzD&-;g_4fdv8~BhI|5$~hD)Vh zb4p3?)Ir>HiCm^c6Q}Sx0p>k+3Q)pwb-^^7eoyMVi;Br(oN?BZn_P3N!F*R@4Flq0 z_uPGh+up~_?1gvcH|8|=UHa6-e(HhdSv#-W zp^_x7?=-x*e$Y7wq7Ef-aW*RFgom_dP=wBO`mk>`^!~I?;LYBG_Ln@2b6$L88KQcK z(;#Ft^>NQ)oqPBUJCtZ_LuYZ&ToEqx_;aqk_yyPs&i<+X;x8?uMgpu;m&(%{qV@?; z+!HFU3!LkiO2fH3&1GSB#epi(9~)sGU^ww4G_hgSt7s%Hajz@n!jn5ovNmU2OBd$f zE=`4)_=Q9tx&Lx?ix}KLbwokQx4zA<@;EUn{k5Joir{ZJ=!zHH-%ZvrgCnD~hY2BI zq7^R5i*!Ry#qIEH5!zwbwX;r-uK-0XsEb9_#PvDF^@*0>z;ituzC=h#f{)^|WnjFc zbMpq8(Kk!o-UY*R?8a$tY6zV9SOP1&Vo)3?_By=;GMVv(`=)5I#56!j2em6Nh{JODCdK!(xp(XzAt%#Iyd5=nq4O z8CbL1(tepJ6|$Im5bWDc1rWBMb%Ul0p;`J7o=}J)KUug#I$Ig*VRX@=tTRV@`eoA+ z)=14}NpaT0G;4C_#Pvh0;yR{dyS~`62V}&@y#4qk{D$EqICA`*(<$lQZkCS~WnDQ(dILan zbhQ~?1kPd5b_CbByMV97p5O9fN7q%}U_Ek0`_)Q|!Lk=Q4s~!f_DrXD;mcp9YVV%! zN>eI@BcSMn*g7&GxiWR}8ouD(H@3n#<) zv#TAS();8hDHipIU+3Juk+(zEm_fesZ0zznNQKqt191Pd9@|3Rk0n@+*;Sx zmse6edam@#r@wcV{^I^Y?Nj}ua~qHcS0^TsLte=er#EsxFM|I(F!^sBO2M~38FPQ| z|Df_%|D$zVHM+XOY&|KJiHK1J4!8g0$Nc@r{q3uw3=usSmPOjcBm7@?NzM9^IkS+; z#l%Bhc1~xdon@Lw)8_~4eBN-?mD`|m!XTeowO-JM$XgvVhj}%XF4ko71f4^8lLhRv zb!Tpo)HWqlO*#rA-0ZE>)$N_mms)F1C+iQ%nL1h<52-|nRhlWYRSv!N&S`s8$m0!V z1ItOe6Ou~E4eXuoE%gk^MM3?X=uc5v3=)ST?0JF~?rnA59#rMvtdBfC*nO#nptv!@@;H#|rv%+ZSD0`Ceu&RpNn{K?4rdbrPvF)p* z_|+vJd3So$W6HU1ufwzFq$>A!i9#02C9_G;>mjxuSUaZl6V&3iG)c|r!*azs0S&vw zEk1}Nn4UMa?*<2Ty3gPsN&5x6!bI!Dt-3L7a=JnpLdl`vCa72#Q0zXF-ZtKRd^&KWJ?WUac<(D+gG$j*ma zkFZG7%~4bU8H#VQo$uwACssyy=JdHfhUO<;2oUit4ryyP$d!YS>oE7{T#>(3&o|{3 zUK#rKajMxzMG>-aXamn4gcF0>sB&mF`A)ARw7^K!+|p!9&xXn3_UFwjOHcBJcBYw! z_0g2M> zH2+fUZD$t>A95G!pw(dp5rBrW{!mKt$gpZ*1Dup}w*vKZo+VchykemUk+esmhdy!j zT6?y9^JHP1BZfW!b!=&H)VoQ9`bk&p=REnL{o5udXFXA%r{W}=EjmH^Lzz;nw0w4B z5R>ThtbOn*&x8O$wh5^BcN)-WI0gwtF|)%!;V(zjn2SIr24AZdc@%!WJ}YF*{gtHX z>2$tu-V3f8p{^i;|Dk!X@gE%ZOuuT{Er={A&mPhjZn7K70&f|=bmaZoqqiuSJSPaw z4x7&@1u%*iwBi*HSrF<2{dN;606?GeFp8|oA1_dCr}jfXRgUxMII^P&_zqSUm6>G>4?6o@&rg71HD?OREvlz zL8pI3FlQlG%7}Y!j`(pcC)ZtRMrG(HAAD$D3+Pwi16p0LvGR@zia`1FUFU8bO|MQW zUB*nhLLXyHAx{WsBK@7{%ux=W)J^C-8ed-e(#l7O4+$X7Y`=0LB)` zaOJht!8TABz}T7`W+a~{)r=tK2j#C5h99p4%Z$}>)Mwhdx!}v1Rbxe3l=1Vdcq55h zL78VYcfD^4XOez)onNSPyrxRbU60GrzFSz^>5LX-j|1P-K@42 zhriZ*ySJxj01~cD_;Ob4LBssvjnrR<1pTF%rY9%T1rFsQofJ9rOveUB9cLR-mM~na z?VNaE@56lSC9 z71_FaZzbw@1V8l1cBahMRB|x;B{UIY5-9?KQw4@nG+EvkW9a7x0(srrsu#JDw@D2n zMw0d1oCL^|v34gO*-u8d>)CG&Fp2BCbB0(*>`| zgu~CHH*03k>OlgRfrlAMk1&KARe3r_m=8%hPf0w`CQzzoZe~$DGbMJ+UJqAw&}egb z!A^{iS)InI`_r$jO<8b{TcpmnGnK~*BB~O0sdO(6H3_J*4>fT`^|%pQwxTL^al5!i z?=|jl4&LmHaum+KhY?S`a^{Y}LOm=|$)SC=3dy-Ch&)Te zdfT{q+Y8=sA z^cfA7Z*7=|FVm`}>SA|GG}6-M*{a;X|M9>cb?Iyc<~Z9!wB4osueuA^ZwigtNQ-&+gT30*)m&`dvaJYe_K01=!WWF5*x}yCe-spG++PHY z)&9^g>@=idM5w-%%DT5o&y8E_y7S4xfhmo_b)XZ(ms(Zg|xGnU*gz6eg*L`X;ZJT!!qA9l8W5q3f{)inNBc0`Tzu zVPE+NZR)@#&_rdOec;Kg^mm%6vCV!kdw-nnUmM230#JFML=IfIxB{{g%f#*8_Tw8Z zsC5!$6&Mn}rX2ZB(=JDdrtFWB2NwSw&s9EbX*emPtJI1B?QN&|-irf?yaA_Q z^csA*+$L3|t+nJQq2+f6sbfeP`V8no$Ws~3$SnGx#(Poqc!4b(a*-pwX?Z#4!VfOeZx5v_514J)@DL)_ zwY`qRNGdJ>iv+y3*yGStEYgnEwiP(QB9-O8Z2dMs_1e*CxQOz}YgS z8&?CIlcQSWeXR>rbOj&cu-805Z0Jt7uJ;~43gcWv%BLdPi7Uf_S>n>_`>IB_E*Y8D zw+FO1+$-)lI(CU`uSL*VI`<_N;7ZX`-dT@fU1)gZb<&6=snjD4VRJROULMuaph;MG zLo3^xS9iweEPca~a_#Wrl6LdYn|(OH#M=%7Q#9Wv_W@eSH-Pg-#Y=$3AgOCbt?RM_ zwvbqGts0o4A?e$ZQ(%sOCmPfP*e}-9YXcw^P8WV{^)P@byfs!c&DaHSRAHR1acl4; zg@6W;hSrjFv)`W154$pfBic5GGBZRPyZIgvJ$wX;dpI>Kp0=?NzD9@lWjq4>r+3Oj zC&BE8^5!)W!R!OK!xz6lrGwgQz`oK1U{DS>o8Wyq5f%W_p?J94yi$8N0D7sJ*)vn- z0l4bUgd3P6;9d#fBELHn8(p$mhcpujAg-VXA!NQXD&opPBd`TWMO@KrT5c2r#MK~x ze7W2GWQ+X%P|l$%&vs@hm;?R{yvV03*96d8&Iybc3%`~F42eT%e~dFAVr4xnN6tR~ z$rb@lm%dcYRiYm|rKQX0*311EWQQiMxh?C{!$a2(o~i za_zpUlL(?dw%2ERI1f<`tQL#&@(PJsk-=GNv}`>Txn8r7BVD`iD6zj5endm_fF@V- z_XFp)qSZ%K4L4cl8_}1-UJ5evC#h}J9t2!xJrBuvc9V&I|wHH>r@% zEY={@kDx|9a#2fgm(}eogNz}v@s}(GPQcN*uW$pBj!cE{Z|~gO+bnnd=O5X5 zJDd7;c2X0h6p3q;>8ZOQBq=wbABR`BfJk?Zb#Y~xZVoum%YWp_8-C=(a1*CnijK1FW0ktWysY)|OhxJ4 z>)K)0WGdz98>_zGKLCs>@*&ka6q^YJ zb;D*vx>X%Ae*`KCyeY_~feIFYgh*-zQWO+Ii#!)l-JZjV3&`$qZIVtFO3G=JB0CLm zJP9pS%GaN>6QkuoQ}Lhn@TI5pt)p1Tm))paF_t{Yc|DMFC{Y%AxBvY5rbWvXkJa$R zlrc1 zPRcOmTP41NQt|H=`LApISDI5U@6X~=?!PWBiL_QiUB?Vb9t7+Sof>#*N|8+NJL?B( z83yND%3=4rva>l<{Q3P8Z3ZNFGnO282*5)Ny<~w{Z=OIE>+KC(q!?;TX6|=ajc0kk zB64yh$76zZ1cikHrP^2LA82bOaPScqq_k5-h?mhdppS+Zf?2oM+p-Boea6k`hE9-m z))Us1fHE+Ystn|+q$&dsc>*4Mz^}hdVQ{{Z)5SK{w~F2KMJf46|?w4=P`Jq$q1l##Ek;I<01B8 z@`t2N70^k;ILrh(Y5b_2G<7`sNyE!b>88+VB5V?Ttfj@;ML!HDqa6(*rT zWVk!c?w;BQM$Awd*tT@S4O#J>2HS#m{%luO@9?Cf@@@7TO=(tqt9zlPQnEC#h7-Ab z@a=!}hx<3=&fl)@n&e@2ji_gbF)Q*8!;nfum1ju0*RI~@dG)>tO8NMz_)T+|cMRM_ zpF?&??J>vAu@<<&DuA442;-K>J{O(N3Ua6^eYtIL#zOQH;mlzcf1*#)A+ojMQv-_Pp%)0400rqZk~hyGy*`^t zp_0z%`7_g4&n$%fPU{GNj-#T+S26Clq%u#a%Lp2u@!CsTtAjBK5X`&lLkXQKXyTse z%<17i{lM9IGlZ=JS9@UrJDYR5O{R3Y82d}K#@j}ITjts@<;N-kWR0!23TF6R&OvJo zA;y3tSslynCw(oakG>M*cvfi3%ywSzC7GoQ!gbyP~Atve%IijK}?Q#a1$=h)}lZ>L0@{} z9$9xQr2O)jkxp%F@nesXP)3{f8GBM{&6>W8@9vlggJ(IEMw!>2J}(zuno+Ti8CNy8 zikoYHCt2s&J^P)e;2f6ZTT2lrBdbL;COT90o zGha+CcQBAf$9@@f6YexrnTQNA>QP;0st2XpsJI;DMJ>`3gk`$H<*})dQ>4aBU85QY zc;?=3i==2}g%7DAV$BGPRP!b~3!(S>H`+$0=4$X;lB-_eX{}xtBcC8NY@S@ZR9V(r z&K0jbrkzlK)jVpvK{~tefnlRqe1Thj_7^@^$NM`UmaA+kkgpR@)yYGT-WY9BWD;-I zKqoZe#$f($1_ioS^L?I;<--bU6D=Ox_1BgeK6>0uP>4aw(-WX`B;^2iL8p?pvwRoc z0JFExU?xEnkZGb-^2+YM9~jEIemA($afkkeNAa^&(9<*L_HP%pYE(^T!J=FYaK`%a9TP_(yg@fyik@4dmrPf*Y0y z_#sKI;5)h~4EbT`A1{CecM)O|26VrtC*P1kk#8rA>|X^I1DRy@okoch@Iw@+{E!!@ zKVFF((oo7oNo*#r`${uSpr~ZD@taH(_9;*^6da<~3@5;kJC^jz6;Lx2Ggyxv_)ha# zE)69@<)DFD+Fg4x14yY^vvVh9sX8WC{L8Ojs06H7@ z5Fp;=p1D@+`kq5YDgACdraeeGhuw3sad@2wImdl@FHbeKg>%Z=KUooQU9H$WMLtV( zsU6g5Fy`&B=w0zx7c)NyyE$zB_;s+^t-O<8W~$g9HkTiBqXno;LtoKq;QA7yRe{V%~&mYZ8PTqhMjVbL_bDX?HXOJc(SlN^+{bNyM(^U=m#y> zLF*XQNhKYj=!+P;fmfDttkXrGy}nc){8G+NFdb^B!HUPf(Ni6R(0^XVn!j@<7W%?E zA3sc^5xtbwX1HV8=)42|{9BFHYzH?uX<(tMR6VgTCCL+F0T3|(*jFy$(`f5d_1!tI zzm($Cop!0SJdBh-I;L}JhH>AmnX9yRhT~qYNOcm9XnUP78U4oEOLkK^Wk?L@Av6g~ zt({6z90Sf@^apVC2Gg2nC(H6;4qo$Cv*!4cR8YM{@ttuuPe7*(PGf`Lv2S<|KoAbr zP8^La?dKvL9q(Qi*?E!nuD24>Wvs2AvpzwLWIw7-Z{X_jarKPVM$u|kn2IO;MXTs@ zHO6sg**w`E^6AoQ?77UGC(7@m+r?+DS_gIgn)9x=Z0kM`GX@-~*`_HwNQW~Rv>U2> z75O^u5f7lF(NQi;kQbulv}D`B3Sq4JInG9fuKmt=p9NC{Vwn2PR^JlYYcV{AMy`Q( z^19(gkbSDT1JfI#hdytZ8E`7G5e%?1vf*6yGozvL2-e!*A}q z)aVsQUQDu<>2VQOxSe5Woh^a$OFn~bhDJ%M!tjx?q`DKz zw01~M(nR_+hSiJKTBC~2XO66rbF)C-w)7R4i(uC5E_Sw#EAJH~gw>=Au3VWbXc_l= zeCZTt0)%vX3>+CQ*I`Y3FMsH!9M@M*oyES|2x^j&w?wlMs!S6tElNXJ-QM-{;e2CN z-|d7HvW7a0>C}k1)UziX?Jhs682OeIr{1O3l5MPfAn$_X)};9HLdD`_u%ovq61+y#T8VzQz!NS9v`NKaJ zOANm{gA6Ydf3qV{k~#O)1NGNE4%TH!`u6t02~)9NotPy!iVZcV*^T)YqQ7BLX|a`x z8pl#ZfhTWrCTjXv(YF?NSID!3ljg))P(b>oe&pYG*Zlu~2f>tse2I`-V1BZv|M#W-xt6qcUZ$5EEh=y#e`~EFM;-Xq#kNt zNx>Hjj6WpDbVp{181JKzGf=vK|+4T6-eVi&`UE9iKqDojxmSx78kz1VsXmHY{%EaFjorXip zf5^mxixMhi3Vz7MM;eYztOA+%6DxkoJf`$-9OrEe2ox*KsOnV!)-xkU|CFx|Z&i%j zJg3T6Hz~coRQammdYt`4rPuVwpOvs}jL1IIgGf)6@ntE1^=b4&#upcNevd7QD&spA z!}q8d$oQTw(1Z@6*KX4MtXbqyC9KS-JW}%y3F{(dXi54iRl>Rjh-x(ypkWn9wtQF` zhC1T27s0yA-}b`I(8HD85OX)~wm?9*DGH+^|be=Ve)-T%pHVH%b7Xlp+0 z2K?{O@S~sEJXtbTzG#A<#qhZPkS}uDo_B{^{E#nJg~&C}IqwnL^F@`qrpG|3hMh`> z&~;T_tS$XPhme(VKhR60(jnv|RCd4t9pc2m4xS$$`DcZ38?#(zFbrPY7z-Cc;k9(J zVTiqm5Kpehwi(Ci6{~T^Tzp^_@^F*ualpkwX4H>G{lgn$8$$vPEWba+BR^|o+Zqu- z?QLBs`HOQ|SqJSfD9ml4;V%_C2t&J-8) zru4wW>nCp+9vOR8*>KnNIh;1}$GZMeiQUGSfE$ab>kmFh;+&VnPd*2ro0SJ^QUM(p z6c)Tl078daqNJSyx(&pYA4LA`3`rV66&?enzVA~zvf2-!{$U5p*DWZjP=8kh{{uE4 z)Ys(tc!(P0{$>lortkyMp}q<|>iPrF0SLoG%IUkPgpOg%yekS2I+ELB(A)-73$H-& zZ1{&l*f%hT?DIAStEI9t#v70AMgw++?*m$|AEEb$1I>0e8&-tZHlF&wnP>d|h=2#pUttI` z`p+ZdUt#E9g~q?a(7%d||L29F@n2FWlT3XoV0XT|6(yDFhEz*xupdoBh&z2spd82E zx#8p>tm-Ih!Fne1tmQ}Hci`k|v#rP-dil(E8qaKskk|c}WWhi6C@|J0_}4y11yTLA z&;7fdcbog%ekg|**AP;ZaG;biKJ((68Tz#8()gm4?g-;6;r+uGT_2C?nTlt@tDp1V z_TlFi@d3Fn9pF(B00rj?!n1N}Ny24YZ)Mwi2a=3DtB%)^d1mt>^7Wh>f-H;yS~LwZ zsE0fi16nk3!GACw_w(C&%iZ3=1AqP*WI}qQ8#QSOT7&lI0&5Hw6gcyZ(!2er4UKA% zsn!^wz#8KO0=jN*oV=Y^K43hxt&{fykNvPF9{pVM=jBk677F-&B#}U&YOg^X#ZcoP z3~zB;hpg?rT5(rLFZuRl0HHl%9W>idZpx%vrVQ8FOFu1(N0zi7c^T*UkRfYF)9E?e*Z;EQ z{y(kgFVZ57z#>LgA7>0%$0pXHc1>d=U$nuUEM4&OXH&fInC5aOUEQDm{&+f#_g<+T z(~dfks2W}JK@j5_e^lG|2l7zlRmjqzRZJVAi6Af&((*v@iqtZ@2B-ox*z(jv z3)Md&I7ycc2@`Aep*!o$GW*(6+XOHHS!_xnx>y;(>rekiUDCfjemk^~gvfo(Z3IdZ zbELLp*N9P{IKoWlwH|08Ssrfh;E{g5)bo)WI$Xite^*3B)TK-LLF*6A=tzEd&^fOiu$24Drvr6{U;b;kX`9yD z@=OXx18}QmQ>V5L+|dR2d+a=t6{HO@%!TPr(7mK+6{2<=OFdStg_$DqN%K}ly#%p< zrpkzMVCn#q{RM#c{Ap$MzwN6Vnt?)Es?kY3H|`b&a`h6@3?1 zAoGCjfhqqZu!q|&qi+)zYeNH^p$zZ37swjvFjO@IxT7rR>nbDnl^Hayhy-F}KX;Zx z)1N*b@4U|+a`Lpf7=D>qkM_;Z@RGH~K#H_0{l|0K@fogxbsLJo?}ld{e*H3|<6;%% zy(I9eaaT)xSbm&d*P?k%{q4o)sUjZ}3(?gme{2>9?3ouI31--x8jIiSh`XW9Ru=Qd zl9|QV86;wz88ft=(`nxFf$nil)bAPvLRk7Y&qMA)F8uDMHx}sj?;F%RFz2T%E+& zJ}rqlfj5}58}j=c<#UmLw*|;`NIYx9JrFMXv+p%Xg!wJH$XJTz!Ekf9}#D)iicy` z1kBUyNpw#R$8dAL>r{J?k4O4F%$ZEg%lhgEw9gDvu_#(6=)qao9)(?Lt|j7pM5AHf zZ|f_LWyNfrVq*r%oxXm;ez?z&7g(8BK?h7<#^zzETpdurJ(!DBN(Ix5_B!+)-L0Uv zC&ocM)Xcfcq@+UkWff=m*PVrrcgXj8dzo}OvNj=g^C+Dpy)hAx?+4HM{!Qgz4|X#D z5F&Cbtdx%D{&0oNy56#6g?)j1blS|zm+7y)3`KF@;Y}8i97;d6caY~AD45Cm0IQ-qUqp2b3%bV(qc-F{Eo(|cVkT=2 z*M^^y?mCn?Z#_yY#E&?pWeW>Y?klKeO&i}kIAD$L9pbjlv@LToSU#Y7uLEY7b#S1@ z>=c$`@VNO);eE!F*xQI266dYx3tRCDw$d3FMd}ErYOrquajpwpEnA7{4TV`5Rd4Fb zEk7NvD@lgOrM#$o<=2K)Q;+$!7C@17wXLcY@Z7oX)ZAh$e>L|Vy1iUJZN}@4M0q-A znSK>-%B1(*T?cR0)MCDyU@Ro)D<^|G1^i-sz{_aV58 z-~g>Bzu-QnDyWPC6uwh`CA2IHH`qA)vPzP%1fvG_{+;eTI|T@ zM>prMbty#cp-2=|9p=Ynub$Pt9_-H=@RYH6+Up4MWc(O}!TKB})PA*vPpdFsqjk*e zRNR3yZdvR{i3#0f2Z5iI4)DmMaC~LQ96Zq-RZ|m2x-)YoB{XLS?ar8J+QX;jKlWjF zIrMDA4L`#wGtNe-rjs(wHS700s|c=5Ud*n?+mhAa+;o)ZkyI=7Icr{kC`d7J3=s@F z%G9LA8+?(L_Tn?zktCKc)2*5jz_01>DliBM%N#>&g*-q_KT*jpt=)>pjN6cKp!W5O zXX9@BY|?JB%2#^}ShX=G>3m9nVD7#3kN=`cY+Fxgj>u?3Rp@RcZ*jnI6?S*!6Iy-q zoRB;N`T0%h@@VGTcajGUK9`j^KPNAA_>;^0f0isfCvSN%wQecZ( zJx9gd7Xw478xkLv2jw2eynebK#`?fa^N4AMZ~&b{Swi<*}WqjgYo?Xa_rF~3C{e%)xCB4cW+Q$57islfimz^YUX-RGETRE=%FXQAdO zs;hLw)cHzT@jKh6!8_jyzs(5N7d-d_6~9eit|`h1V^ZKv0+YWTna>1~;hN7NF=@nI zKkr@R;GTEJTUOx9ZtI;pU21&}YEpB9DMyjcB-@ceXx%xepCTxgT<)GP zx5S4k)@b(3XHNw>mm!-=Wgj$0nwx}uI=+^hFPJ6Vp=H+8-|3q}Sem>x^?8`kiJ?P% z&7!`Z?pK3SmmJP23>{n@WM>QZG#j39&`n*n%uu_`bY^$Uh+w~`#%CM%;h{Z|~O55s?P@rx(F|@|2T-8=8`p|G&hBbca=slma zMzzn-nF?p>j>+7D|FRLQdWse2Rh778P1ys=S&Lhc54otEteZw0tW&D0mD;@nbJsq<>s~*!6z@y@ zwAw`(wrsG2lwia9YN{S)G51Dhsavdk!ED!QXlMkF-Q59G2b6^W;N1Gb#^lZkA=o{H3XgCk zAEQ>L+M+@rg~MfJaf>yPn&eQmq;@-btZEPygU7@!kBR4vZs|7|c8DV_dBRXB1Ie|_ z^Ir;|!ShcD_nDiYRXC_(vsNmS5yGVzEn&&X$1Zy1j{bWMCDxt?|I4RS2Z}UNCTY}2 zSfoO-+Pxvjj@#t0?$_}C1}PgY|L1XKeuu4u_w0&lJ|J|I?=_X}Jbc(jrc&a4yD1?d z&n;!3+B~}UL9>M@T$gTZz;BKIf$p5fi)X!Sfy)PEuu+N<-Bft>sb%CoJUwI%)LTuL zr#eGdhXzTTC!33LWu{~EiYgmjt*1BL0qj1Yf=DT|9lX%rD7eFE8^t^~HoOdb}k93J$iX&sGC;1S?G@JDdrCF`w=Pf)r zi2+Sz|NeDr{@JZj=mbkVZGhxa>vc4M%dEQ8E@^agQ5Jt)R{KF8$t}3NrY*vAKxfBW zY;MV6tAW(dhG%YiH`MD_3P`mYqi+m+@LHe-SSge#@6W5G3LZ$68(Xk+B?3}xbU8@9$=GaF+br1)!JD z+=%)?J=8tKCVQgdD^&67Vne@-5dd(r^H?uIds6Iuaoz2I-I~8{4K-Z;wQBz9PV(2S z`RmsF6^8#W-k}ulZaqcbNNd;>wbp<&7GoP7$s@^xaoKaXDvNHx*23k7vP*8~-DI{z3_+Ss z)qoJGg2%_5Zy@pX0s0SXd+*_~BA!>ZM2O@=gc|D&L za`b*(a3;-nnzAtNQ9F9B0Ey?N6rz`j53Y)=3r_DjNFGv^wa4grvzne&4z?uLiq&MX zxSDiG{}lJVo%H@jI{Q-(^WX4ipJ*MaEHUJ1Xj?x4JA|1t=)!!9y0!$e&p(Xb2|tY9 zB|L_CW{WEs-uJvE+2R9Ru1%V;R37u0y2jpKvcrZTpHJg#bVeDxs{)O#TY0WAwTHJckgumAs^+ z>dIYT6fSayiEglPT)v!C>liFCZFkBbUeTIkmsod095l{P<;7?3L!$4yh-g0r&ymEZ z8l-1MOgyB_O|^P2PIM={XirC$6U+N^*{_|$1xNCh6njfvF9}#55q-b@mZ5jwL3y4# z?XW$_|9(~RuDow6tV>Km6kZartgJ%h%?>jwz}Rcm)Q?VU$Hw)!dNpm#3{|h)y2{FX zRcbB7)}nY>pEFlL-`0q_8rU2`QjKG(_YxXNPZl>-vpjdK4l$!@F2$nP}atVB*=X0P_0 zM)h9K(g$d0;?ku`a9Tj81EzN5xDJJ7i)Y+v6cei6?Pckv^cx~n?xE1-+zPtxOu$=2 zuSu2z3xPjsYJU;gh9XqfdxxIPbOYKVZZl>`!;pszX#+f7jdB5i%4mjBKGmq$alSP=VABTK#CX+l6R z+8?jXfBjB#Zu5($K8C!Ba*%HldGf2Qwnb5#f-~Mt(#s${lsAY2Yqm5L>xHu)ZMjJw zlZ7l&hn(@LL0IxlI(}5^MJD-Colb1(%{chF0o*;|8F90LW2$D@ zr^BX_6MkMgy~vYK&D%(`e*uo)v`B_qbttIvU*FUoeJSYFxa*b9p+C|a$~W<{^IC+p zvFMs$z!F|fwx{#6Btm_~_XMUHNa^h0CGLKVJX9)sf~E1P^NAg%dwOs>W2n#^1y&-5 zd|>9{k?9TX#F0Tuz2VUh-TQ<8MD~Hop7WrSj~O@eoyQMQePdfr3J( zv9_g?DE+&4d3UhZE2ZZlzfvH6VOfYwCO*X!E+pe~{pa7NWbR2yv&9B=P6N?nPnf-} zLY~!w#|JPLn2Ol?t~P5Ap+ibS!=kj!pTnBRwG%li#b;%pjMA=7m?M2Dn6%1waQKNX z?t!AZ;E86X9VmwD#;l^(?fns2huEz|j(iC4Oh!$TgSn0gZ$bk>zuzMCSGWc0k0^`W z6GWaMBz#n@?Gf+VEpJbVZtn?S&2H&Ilfun1{{^Yd)y-p3)2X;5;Rv1=T)Zx^f*Nmw z{li>Q-Y70{vYH#Ab%G+H4zS7D3{JVsUsK@wAIv$fC)kP@hzRa^-K)_yq5A#=Ok9qo zK=EK(QLgPW3TBVesWBeFfFVL9rxCw1#v=rsz;Z3(HS5BnE=W07=B$2kc8(C{`G9AP zRQxshy>ll5_61~lWY6=L?YW!3mErglov@@oO~Q;-+W==@6@T&hqBaJSG4R>s>y^$H zu3uUblp@teAM{J{X0Dg_MF%H-_Lsp*y&Z)o$Fi8uXATVvd-HU^@4-OuK$^ay{yT#_ zPe9bgNF)4*Bs!%8rCapnXVu`>T03jc87HR%D}Jkyy0q`WYE|~!q`^Vrr?9JU&C7?X zCcNboJqeh3k!(`I#|`5W#q1m#V`eBJ*7n?IMcQt74um1NILVgZR;srh*9Jf4ycW*O zzehe)C_7#u-?`yhwoC7lz$hVejshXKrBHPre+^NU&zBc2xJe&b=bL1ATy z7DFSH)vGo;O5QJD3K0BHoA8+8 zi*lc#4&A2+yJqTjeq*91CDrJM`kf%M#`|RAQPsW@LdlOza9=Mjg z>smg`vgxxi_L0y~q!wWbw#Ud2v}iF%d7utjyI00T%3}TP1`Fd`bmV1!Yt3^DS{o0tsR})+4{>n>;u+O_b$Z>`o)n}F*mU+a9>^bfIayR3LLVbgP>hh#Dy2m*20yx~1NuTN6a5qT zNvW1&LZIMXHPLS)v)pfhv?WT(zbj4Xx%H*oS#8xdVy^YTA>n%57(bK1ZUEKT0cJ$- zP~HEaO7_32bnp6=q4DUC#n{~cpymK7?d7I_2>xAG55yDvI6sT{u3xuN?lo4CJEoJ|uGf{kzkNI{r%cjDE8|vd`n4OXP6o4YmJ=Ib zPZRc&90-Xw5eG;*s_myjYZF)sH;t0tiq+IATudS7%E(q;6B2kCet|!t@j`GEK7faK@n|+YpL77$osJH5CpQOS>&Qzui!t+0^hv)otXw#_3m2Vx_#Xc-6NS z5Qh(+^p3Lb`SCcM#3kmF(%~u{`c^Gi>s^;8< z<97G&ZGrgxulwwEGgza|lJW1`N+yhtZ6!>6$yKC-o$^I;S!R)x*(pOkQe{`?CY<4l zGwePcXR{-(OBfle$qStkj{J0~WvPe6u&GFTGWtUC;D?@8UpEI6Ylh^B$aibZm*G<9 z?z0J{8I+|l8>+HqTp3LY;=j!r{35#s=Dzk@dIa_ES&1kJWBkflgfGutr%-wl7N^^l zbKk4Q1jJ5Ae@Bl>*c7Fw=NVz>D2vL35-oj|=e*RDi9;gSte|_H{3wjbb0mk1fj;m+ zTkGFUw8S43d*>pHxfily^=kKX5rfwD(x!VnQYY|BZ3)KQQ@_)EAKjhFV0L=8Kd&|=x7j45wR*Vz-5+L#FL9oyp!lxZh!V%SrpBeDA(no z@>}-`n%QGO*L!-=<5k1FJYbXd5-llpVqlNCI+2@VJH@o^X8r<(Yj+|v6$aq0I^hq# z0zVaJ?g!wtgyxTbbf9CfW7b179dEm&<>96?LwZm5$DZ_e%lLdG^YlrPtI1A=LhDV> z=xAQOr~BDXaLl@g8*mP4i?KB}I`3of30%xe2CTP^;nlkQaJ9o_h_G>OIb%hqmTi(X z2Z5C>pf3D2+jL6%_tB+46EEAKYiXw}DFi*JyNQ;^lVQX0l-{%iA^3f2`Zn;s=XV2x^KG!L0Sm+9(t85j*MH(Y@v=3#;0Uib z&%T-bVUe9<5_$r8AN&DNLB2lYVL5p=;b)5ccd6;pqF%qxwWiu@vu@4v?{BG?vvQnI+RGFL?^RoE5VWYZggI=SHYq+H`qGTNB=nk!lmu#Hc% z4O5A!pM8~o8eZQ43%VcwEWG|gP5{lHMfmv z$DTRcG3=m56jY7Z+0JsUj9Gop$l|=+^qFw-OLUIm-L=iQ@9#U{{oS~=2Uh2 zl|;lB4W%E>_8>9zPrv?;lDSed+!?XO*=Db;bz&1z-4LnP#kVS2x+exQSx#RG&>MF# z-IYc#2%eVh}b}LR)pO&U;sbn&<-DY>;|1cY0c#aN3QR2TY5@ z;2 z9R0RFjwWh(f68m-RIc0i{L#lV^%sxM*%ISM7atX&{=aqJGr0W6eBt5eugvEqYutLj z&Ej!pYVC?O@3)zh-IUtA?e2;-M>N0w=D!I%L`3M7omzMFN516`v!inzymJhbSKQ6` z6_>{58+A8N+2HI%o>XOBC9h>_Ew)EjOj@iiwq(0QZ7}dCfNwu0e%Sob{IG4^>!WqH zAL?8Gc&~m{Zz8q4Q#WBpw#VW?z8`V{$$uZ;5!@L%!@y>xb9~5u2FwEv;@dY=R0r(* z@b=qo*?n)dPQAK!>e1t>-pM|bZM?Tz_dVS{;|UYnIgbBlHM}XT%l>zsnCnE^*Q$G z`hCCL-%5X2?EP`x)cn8mb2`lJ@qWRuT(M>+_hi=>37mk}tR5 z$r<=^4JmRdKQMijY+TLKk8r0`F?uw>kCKZYVFdPZBi;H z+FccL@!%8n(0VD;!T96whjsssd;Mr$bnlh+!|z+RO*wP=(F(ogm%X(N9c{`ME-k$y z{*+;*1s|7~=$l{qM}37O=N}1+D(_g>_3wSaJmBH)v*RxFO@HpKLwbhI^Yul*^Isia?f()9JbC!T#QJ~!i~q?ouL2(9p0XL3i(LOR{IqMZ z%l>e^)l^>ckMPIn-rz%FRnvAq@-+``I`#O7mEW{u7D-o?=eF)XD?ee?cR^O)6ztw-}`RK>$$MZ# z!36DB@jpuVfD2Y!C!Gh*a)<*DYX4>b@PgI)zhd6@e^lauD~Vq)e}3jEByr1ALPX4%Jb#Oob_rVDPVPYYml6&b~&VK8XZ0Q>)&0BKc>QUCw| literal 0 HcmV?d00001 diff --git a/MAC8.cs b/MAC8.cs new file mode 100644 index 0000000..7b4f971 --- /dev/null +++ b/MAC8.cs @@ -0,0 +1,62 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System; +using System.Data; +using System.Configuration; +using GThinking.N_MISPRO; +using GThinking.N_MISPROAS.Logging; + +[assembly: AssemblyTitle("U20261363_N_XLXSBJ")] // 部件ID,无版本号 +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("江苏省金思维信息技术有限公司")] +[assembly: AssemblyProduct("金思维软件")] +[assembly: AssemblyCopyright("(c) 江苏省金思维信息技术有限公司 版权所有")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] +[assembly: ComVisible(false)] +// GUID。编号规则47544950-5333-4e45-5420-xxxxxxxxxxx。前四段固定。最后一段为部件ID字符串ASCII码, +// 不含平台版本号,最长6字节,超长需要缩写,不足长度补空格。 +[assembly: Guid("47544950-5338-4E45-5420-4E5F584C5853")] +// 程序集版本信息 +[assembly: AssemblyVersion("1.0.0.0")] // 固定为1.0.0.0 +[assembly: AssemblyFileVersion("8.0.0.0")] // 部件版本 + + +namespace GThinking.U20261363_N_XLXSBJ +{ + public class Mac : GThinking.N_MISPRO.Mac + { + + internal static ILog MacLog; + + static Mac() + { + // 注册哪些系统、跟踪到什么时间。只有当前系统的记录才保存。 + MacLog = LogManager.GetMacLogger("U20261363_N_XLXSBJ8", "", "2025-12-31"); + } + + public Mac() + { + // 以下设置该部件的有关信息 + ID = "U20261363_N_XLXSBJ8"; + ClassID = "U20261363_N_XLXSBJ"; + Name = "线缆销售报价"; + Protocol = "NET"; + OACBVersion = 4; + Version = 8; + DBVersion = 2; + DbExtVersion = 0; + Vendor = "金思维信息技术有限公司"; + Comment = "标准版"; + + AddModuleInfo(100860174, 0, "线缆销售报价单", "F", "XLBJDList.aspx"); + AddModulePage(100860174, "XLBJDInfo.aspx", "W", "XLXSBJ_BJD"); + + // 仅保留[线缆销售报价单]模块注册,其余模块及服务的注册项已移除 + AddAjaxService(100860174, "XLBJDUtils", typeof(XLBJDUtils)); + + } + } +} \ No newline at end of file diff --git a/N_XLXSBJ8.suo b/N_XLXSBJ8.suo new file mode 100644 index 0000000000000000000000000000000000000000..256e5590a82eeda7b96cf0b9a460fc16e926516e GIT binary patch literal 8192 zcmeI%X>1ln9LMo#p&aEb&~l$5$W^VBLb-dl^rTR(6pBEFl5!TLNMeW(GK2$!tPUq38|d(dTyN3%K2s2 zVn?3}sz;%fVcwEC)VRRRHEGoTFk4Bc)aeqpoQq%;@*Ra+3e<3b<;#<@%~E<@Y>KE~ zW}9*BKZHUPWd_#p=^KZ8nBXAI8}&);xN)ZDEv=cKSf`!qkFNP5)*0%rb^kTr*J<%4 zX&!4+?N>jvuQkA){~A-R0rvdYTA($c1yokU*vi^&LmrL@Yrh?NduzKRc_(y67j#88 zbVm=|gPyn-z0e!FejoC_=x6N@AdkfTcmPp&5Gt#?HOSf?Og;p$*8VW^;nwy@@=?}y z9C^I8ok*T!ZF9N*Me1I9>`JHn{fVzn&C2U@y2};1U#qm+B$}Zn-=vuFCe@5#9%q?! z&)*cr#d|!>k=CcF%WRmA-0_(s$vyi{@nT1-FN+_FU3d|%v zH;HS-Q&YZYPg{v*EVH=Kvvx%?cT4zeDNo5Pj+HR0XM3)*m?JaUHzw@m^7kW|g!TZ} zs>4+ZZw!e3=W&mUSj9>z`xqX1V&D<_s5x!VSFL%PH<}YENJSdbk%3H%!+7Lj0w!TH zrXU|vF%1Qnfyc2LPvA+c!CJh6J$MK2;$s}cmpG0SIEhm@jjwP9XYn=8;TwF5?{FR$ z@I8LOkN61}@iQ*r7yOFf@H;L;5A;=B!yot)f8lTZgX<_q1@tl-gkaP|eT1L^8ln*z zBNR>06wS~aEzlBSXoc2jgK$KkE!v?yI-nyup)@(X0R`RmzXN5H74S*h17iKEe*N~Y)`K@4KcKe{ zjj(!o^WARZAZ>?Znbidnr&{i)3pL-88Ywt(%wcl6e;nm4@*ZP)1OU9lZ} zdmb3=x4(V(j-R*vu_Hp0FR{*Qy6EX^1HIpB4y!Niq50(We%p)ly>TCW-)H-?U-f-f zEABu%xH%KdW1RYx?%qeP8H% zdULML9k)7LO%@pOCxLIR#e6%x^?Tfko#$fb(Qd^bjdKeqj)udIKTfg7U%ZLpI#pwi zo)68vp%{kY7=e)(jW{RYCEdW1jPGK z0sXaqU08VJ%C-8gd$J`!+8<9lvKdwVicnnHmqQ!dp4Ye2rt~KrQ=m~R#B6B9=AszS zVFMIRBj9e1J{1uCuN=F#-yE)4<^CyLSBLG-WF{u?yPDnlu**;Hwd0`MSl|?YqPY|P z((S}Qtt;ED3p>@XIO#9x{X=V_o=~@a)>@|bStY0XwJ!Qgs^5NE+}1yui@s)E*r|T4 z&Hj?^Ka)JA&QJ!)NQf{fgZ) ZiC=}4t-qQ%V#Q?cul-zDw>luRe*w5LLYDvl literal 0 HcmV?d00001 diff --git a/U20261363_N_XLXSBJ8.csproj b/U20261363_N_XLXSBJ8.csproj new file mode 100644 index 0000000..2086faf --- /dev/null +++ b/U20261363_N_XLXSBJ8.csproj @@ -0,0 +1,141 @@ + + + Debug + AnyCPU + 8.0.50727 + 2.0 + {E54A5D97-D580-4357-8FA6-A02670E31399} + {349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc} + Library + Properties + GThinking.U20261363_N_XLXSBJ + U20261363_N_XLXSBJ8 + + + true + full + false + ..\..\bin\ + TRACE;DEBUG;GTIPS8NET + prompt + 4 + + + pdbonly + true + bin\ + TRACE + prompt + 4 + + + + False + ..\..\Bin\Newtonsoft.Json.dll + + + False + ..\..\Bin\N_COMPRESS8.dll + + + False + ..\..\Bin\N_CONTROL8.dll + + + False + ..\..\Bin\N_FRAMEWORK8.dll + + + False + ..\..\Bin\N_MISPRO8.dll + + + + False + ..\..\Bin\N_MODEL8.dll + + + + False + ..\..\Bin\N_PUBLIC8.dll + + + False + ..\..\Bin\N_WORKFLOW8.dll + + + + + + + + + + + + + + + + + + + + + + + + + XLBJDInfo.aspx + ASPXCodeBehind + + + XLBJDInfo.aspx + + + XLBJDList.aspx + ASPXCodeBehind + + + XLBJDList.aspx + + + XLBJDQuery.aspx + ASPXCodeBehind + + + XLBJDQuery.aspx + + + + + + + + + + + + + + + + True + True + 0 + / + http://localhost/GTHINKING + True + http://localhost/GTHINKING + False + + + + + \ No newline at end of file diff --git a/U20261363_N_XLXSBJ8.csproj.user b/U20261363_N_XLXSBJ8.csproj.user new file mode 100644 index 0000000..af7a5c5 --- /dev/null +++ b/U20261363_N_XLXSBJ8.csproj.user @@ -0,0 +1,30 @@ + + + + + + + + CurrentPage + True + False + False + RunFiles + + + False + True + + + + + + + + + False + + + + + \ No newline at end of file diff --git a/XLBJD.cs b/XLBJD.cs new file mode 100644 index 0000000..8295e7a --- /dev/null +++ b/XLBJD.cs @@ -0,0 +1,255 @@ +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_MODEL.Page; + +namespace GThinking.U20261363_N_XLXSBJ +{ + [TableMap(DB = "DBERP", DbTableName = "XLXSBJD", Umid = 100860174, IsWorkFlow = true, IsAttach = true, + DOCGRPIDFieldName = "XLXSBJD_DOCGRPID", DOCFJSFieldName = "XLXSBJD_FJS", + QuerySelSql = "", + DefaultFilter = " ", +EntitySelSql = "select XLXSBJD_BJDID, XLXSBJD_SYDWID, XLXSBJD_BJRQ, XLXSBJD_XSJLMC,\r\n" ++ " XLXSBJD_TXY, XLXSBJD_KH, XLXSBJD_XMMC, XLXSBJD_XXDZ, XLXSBJD_BZ,XLXSBJD_ZJE,XLXSBJD_LRL, XLXSBJD_FJS, XLXSBJD_DOCGRPID, XLXSBJD_WHR, XLXSBJD_WHRID, XLXSBJD_WHSJ, XLXSBJD_WFID, XLXSBJD_WFINST, XLXSBJD_WPID, XLXSBJD_WFAWAITER, XLXSBJD_WFHANDLER, XLXSBJD_ACTNAME \r\n" + + " from XLXSBJD where XLXSBJD_WFID=:XLXSBJD_WFID and XLXSBJD_WFINST=:XLXSBJD_WFINST", +UpdateSql = "update XLXSBJD set \r\n" + + " XLXSBJD_BJDID=:XLXSBJD_BJDID,\r\n" ++ "XLXSBJD_SYDWID=:XLXSBJD_SYDWID,\r\n" + + "XLXSBJD_BJRQ=:XLXSBJD_BJRQ,\r\n" + + "XLXSBJD_XSJLMC=:XLXSBJD_XSJLMC,\r\n" + + "XLXSBJD_TXY=:XLXSBJD_TXY,\r\n" + + "XLXSBJD_KH=:XLXSBJD_KH,\r\n" + + "XLXSBJD_XMMC=:XLXSBJD_XMMC,\r\n" + + "XLXSBJD_XXDZ=:XLXSBJD_XXDZ,\r\n" + + "XLXSBJD_BZ=:XLXSBJD_BZ,\r\n" + + "XLXSBJD_ZJE=:XLXSBJD_ZJE,\r\n" + + "XLXSBJD_LRL=:XLXSBJD_LRL,\r\n" + + "XLXSBJD_FJS=:XLXSBJD_FJS,\r\n" + + "XLXSBJD_DOCGRPID=:XLXSBJD_DOCGRPID,\r\n" + + "XLXSBJD_WHR=:XLXSBJD_WHR,\r\n" + + "XLXSBJD_WHRID=:XLXSBJD_WHRID,\r\n" + + "XLXSBJD_WHSJ=:XLXSBJD_WHSJ\r\n" + + " where XLXSBJD_BJDID=:XLXSBJD_BJDID ", + +InsertSql = "insert into XLXSBJD( XLXSBJD_BJDID, XLXSBJD_SYDWID, XLXSBJD_BJRQ, XLXSBJD_XSJLMC,\r\n" + + " XLXSBJD_TXY, XLXSBJD_KH, XLXSBJD_XMMC, XLXSBJD_XXDZ, XLXSBJD_BZ,XLXSBJD_ZJE,XLXSBJD_LRL, XLXSBJD_FJS, XLXSBJD_DOCGRPID, XLXSBJD_WHR, XLXSBJD_WHRID, XLXSBJD_WHSJ)" ++ " values(:XLXSBJD_BJDID, :XLXSBJD_SYDWID, :XLXSBJD_BJRQ, :XLXSBJD_XSJLMC,\r\n" + + " :XLXSBJD_TXY, :XLXSBJD_KH, :XLXSBJD_XMMC, :XLXSBJD_XXDZ, :XLXSBJD_BZ,:XLXSBJD_ZJE,:XLXSBJD_LRL, :XLXSBJD_FJS, :XLXSBJD_DOCGRPID, :XLXSBJD_WHR, :XLXSBJD_WHRID, :XLXSBJD_WHSJ)", + +DeleteSql = "delete from XLXSBJD where XLXSBJD_BJDID=:XLXSBJD_BJDID ")] + public class XLBJD : EntityManager + { + + } + + + [TableMap(DB = "DBERP", DbTableName = "XLXSBJDMX", Umid = 100860174, IsWorkFlow = false, +QuerySelSql = "select XLXSBJDMX_BJDID,XLXSBJDMX_XH, XLXSBJDMX_XLXHID, XLXSBJDMX_XLGGID, XLXSBJDMX_XLBZID,XLXSBJDMX_XLYSID,XLXSBJDMX_BJCP,XLXSBJDMX_JLDW,XLXSBJDMX_BJSL,XLXSBJDMX_JGBBJ," ++ " XLXSBJDMX_CPBJ,XLXSBJDMX_BJJE,XLXSBJDMX_CLCB,XLXSBJDMX_JGBBJJCL,XLXSBJDMX_JGBBJJCE,XLXSBJDMX_BZ ,XLXSBJDMX_WHRID, XLXSBJDMX_WHR ,XLXSBJDMX_WHSJ from XLXSBJDMX " ++ " where XLXSBJDMX_BJDID=:XLXSBJDMX_BJDID order by XLXSBJDMX_XH", + DefaultFilter = " ", +EntitySelSql = "select XLXSBJDMX_BJDID,XLXSBJDMX_XH, XLXSBJDMX_XLXHID, XLXSBJDMX_XLGGID, XLXSBJDMX_XLBZID,XLXSBJDMX_XLYSID,XLXSBJDMX_BJCP,XLXSBJDMX_JLDW,XLXSBJDMX_BJSL,XLXSBJDMX_JGBBJ," ++ " XLXSBJDMX_CPBJ,XLXSBJDMX_BJJE,XLXSBJDMX_CLCB,XLXSBJDMX_JGBBJJCL,XLXSBJDMX_JGBBJJCE,XLXSBJDMX_BZ ,XLXSBJDMX_WHRID, XLXSBJDMX_WHR ,XLXSBJDMX_WHSJ from XLXSBJDMX " ++ " where XLXSBJDMX_BJDID=:XLXSBJDMX_BJDID and XLXSBJDMX_XH=:XLXSBJDMX_XH", +UpdateSql = "update XLXSBJDMX set \r\n" + + " XLXSBJDMX_BJDID =:XLXSBJDMX_BJDID,\r\n" + + "XLXSBJDMX_XH =:XLXSBJDMX_XH,\r\n" + + "XLXSBJDMX_XLXHID =:XLXSBJDMX_XLXHID,\r\n" + + "XLXSBJDMX_XLGGID =:XLXSBJDMX_XLGGID,\r\n" + + "XLXSBJDMX_XLBZID =:XLXSBJDMX_XLBZID,\r\n" + + "XLXSBJDMX_XLYSID =:XLXSBJDMX_XLYSID,\r\n" + + "XLXSBJDMX_BJCP =:XLXSBJDMX_BJCP,\r\n" + + "XLXSBJDMX_JLDW =:XLXSBJDMX_JLDW,\r\n" + + "XLXSBJDMX_BJSL =isnull(:XLXSBJDMX_BJSL,0),\r\n" + + "XLXSBJDMX_JGBBJ =isnull(:XLXSBJDMX_JGBBJ,0),\r\n" + + "XLXSBJDMX_CPBJ =isnull(:XLXSBJDMX_CPBJ,0),\r\n" + + "XLXSBJDMX_BJJE =isnull(:XLXSBJDMX_BJJE,0),\r\n" + + "XLXSBJDMX_CLCB =isnull(:XLXSBJDMX_CLCB,0),\r\n" + + "XLXSBJDMX_JGBBJJCL =isnull(:XLXSBJDMX_JGBBJJCL,0),\r\n" + + "XLXSBJDMX_JGBBJJCE =isnull(:XLXSBJDMX_JGBBJJCE,0),\r\n" + + "XLXSBJDMX_BZ =:XLXSBJDMX_BZ,\r\n" + + "XLXSBJDMX_WHRID =:XLXSBJDMX_WHRID,\r\n" + + "XLXSBJDMX_WHR =:XLXSBJDMX_WHR,\r\n" + + "XLXSBJDMX_WHSJ =:XLXSBJDMX_WHSJ \r\n" + + " where XLXSBJDMX_BJDID=:XLXSBJDMX_BJDID and XLXSBJDMX_XH=:XLXSBJDMX_XH", +InsertSql = "insert into XLXSBJDMX(" ++ " XLXSBJDMX_BJDID, XLXSBJDMX_XH, XLXSBJDMX_XLXHID, XLXSBJDMX_XLGGID, XLXSBJDMX_XLBZID,XLXSBJDMX_XLYSID,XLXSBJDMX_BJCP,XLXSBJDMX_JLDW,XLXSBJDMX_BJSL,XLXSBJDMX_JGBBJ," ++ " XLXSBJDMX_CPBJ,XLXSBJDMX_BJJE,XLXSBJDMX_CLCB,XLXSBJDMX_JGBBJJCL,XLXSBJDMX_JGBBJJCE,XLXSBJDMX_BZ ,XLXSBJDMX_DZSC,XLXSBJDMX_WHRID, XLXSBJDMX_WHR ,XLXSBJDMX_WHSJ )" ++ " values(:XLXSBJDMX_BJDID, :XLXSBJDMX_XH, :XLXSBJDMX_XLXHID, :XLXSBJDMX_XLGGID, :XLXSBJDMX_XLBZID,:XLXSBJDMX_XLYSID,:XLXSBJDMX_BJCP,:XLXSBJDMX_JLDW,:XLXSBJDMX_BJSL,:XLXSBJDMX_JGBBJ," ++ " :XLXSBJDMX_CPBJ,:XLXSBJDMX_BJJE,:XLXSBJDMX_CLCB,:XLXSBJDMX_JGBBJJCL,:XLXSBJDMX_JGBBJJCE,:XLXSBJDMX_BZ ,:XLXSBJDMX_DZSC,:XLXSBJDMX_WHRID, :XLXSBJDMX_WHR ,:XLXSBJDMX_WHSJ )", +DeleteSql = " delete from XLXSBJDMX where XLXSBJDMX_BJDID=:XLXSBJDMX_BJDID and XLXSBJDMX_XH=:XLXSBJDMX_XH")] + public class XLBJDMX : EntityManager + { + private string _XLXSBJDMX_XH; + [ColumnMap(DbField = "XLXSBJDMX_XH", CtrlName = "txtXLXSBJDMX_XH", DbTitle = "序号", Type = FieldType.F, DefaultValue = "0", + IsAllowNull = false, IsKey = true, Length = 8)] + public string XLXSBJDMX_XH + { + get { return _XLXSBJDMX_XH; } + set { _XLXSBJDMX_XH = value; } + } + + private string _XLXSBJDMX_XLXHID; + [ColumnMap(DbField = "XLXSBJDMX_XLXHID", CtrlName = "txtXLXSBJDMX_XLXHID", DbTitle = "型号", Type = FieldType.C, DefaultValue = "", + IsAllowNull = true, IsKey = false, Length = 40)] + public string XLXSBJDMX_XLXHID + { + get { return _XLXSBJDMX_XLXHID; } + set { _XLXSBJDMX_XLXHID = value; } + } + private string _XLXSBJDMX_XLGGID; + [ColumnMap(DbField = "XLXSBJDMX_XLGGID", CtrlName = "txtXLXSBJDMX_XLGGID", DbTitle = "规格", Type = FieldType.C, DefaultValue = "", + IsAllowNull = true, IsKey = false, Length = 60)] + public string XLXSBJDMX_XLGGID + { + get { return _XLXSBJDMX_XLGGID; } + set { _XLXSBJDMX_XLGGID = value; } + } + private string _XLXSBJDMX_XLBZID; + [ColumnMap(DbField = "XLXSBJDMX_XLBZID", CtrlName = "cbxXLXSBJDMX_XLBZID", DbTitle = "标准", Type = FieldType.CBX, DefaultValue = "", + IsAllowNull = true, IsKey = false, Length = 10)] + public string XLXSBJDMX_XLBZID + { + get { return _XLXSBJDMX_XLBZID; } + set { _XLXSBJDMX_XLBZID = value; } + } + private string _XLXSBJDMX_XLYSID; + [ColumnMap(DbField = "XLXSBJDMX_XLYSID", CtrlName = "cbxXLXSBJDMX_XLYSID", DbTitle = "颜色", Type = FieldType.CBX, DefaultValue = "", + IsAllowNull = true, IsKey = false, Length = 10)] + public string XLXSBJDMX_XLYSID + { + get { return _XLXSBJDMX_XLYSID; } + set { _XLXSBJDMX_XLYSID = value; } + } + private string _XLXSBJDMX_BJCP; + [ColumnMap(DbField = "XLXSBJDMX_BJCP", CtrlName = "txtXLXSBJDMX_BJCP", DbTitle = "报价产品", Type = FieldType.C, DefaultValue = "", + IsAllowNull = true, IsKey = false, Length = 250)] + public string XLXSBJDMX_BJCP + { + get { return _XLXSBJDMX_BJCP; } + set { _XLXSBJDMX_BJCP = value; } + } + private string _XLXSBJDMX_JLDW; + [ColumnMap(DbField = "XLXSBJDMX_JLDW", CtrlName = "cbxXLXSBJDMX_JLDW", DbTitle = "计量单位", Type = FieldType.CBX, DefaultValue = "", + IsAllowNull = true, IsKey = false, Length = 8)] + public string XLXSBJDMX_JLDW + { + get { return _XLXSBJDMX_JLDW; } + set { _XLXSBJDMX_JLDW = value; } + } + private string _XLXSBJDMX_BJSL; + [ColumnMap(DbField = "XLXSBJDMX_BJSL", CtrlName = "txtXLXSBJDMX_BJSL", DbTitle = "报价数量", Type = FieldType.F, DefaultValue = "0", + IsAllowNull = true, IsKey = false, Length = 8)] + public string XLXSBJDMX_BJSL + { + get { return _XLXSBJDMX_BJSL; } + set { _XLXSBJDMX_BJSL = value; } + } + //含税基准报价 + private string _XLXSBJDMX_JGBBJ; + [ColumnMap(DbField = "XLXSBJDMX_JGBBJ", CtrlName = "txtXLXSBJDMX_JGBBJ", DbTitle = "价格表表价", Type = FieldType.F, DefaultValue = "0", + IsAllowNull = true, IsKey = false, Length = 8)] + public string XLXSBJDMX_JGBBJ + { + get { return _XLXSBJDMX_JGBBJ; } + set { _XLXSBJDMX_JGBBJ = value; } + } + //线缆产品报价 + private string _XLXSBJDMX_CPBJ; + [ColumnMap(DbField = "XLXSBJDMX_CPBJ", CtrlName = "txtXLXSBJDMX_CPBJ", DbTitle = "报价", Type = FieldType.F, DefaultValue = "0", + IsAllowNull = true, IsKey = false, Length = 8)] + public string XLXSBJDMX_CPBJ + { + get { return _XLXSBJDMX_CPBJ; } + set { _XLXSBJDMX_CPBJ = value; } + } + private string _XLXSBJDMX_BJJE; + [ColumnMap(DbField = "XLXSBJDMX_BJJE", CtrlName = "txtXLXSBJDMX_BJJE", DbTitle = "报价金额", Type = FieldType.F, DefaultValue = "0", + IsAllowNull = true, IsKey = false, Length = 8)] + public string XLXSBJDMX_BJJE + { + get { return _XLXSBJDMX_BJJE; } + set { _XLXSBJDMX_BJJE = value; } + } + private string _XLXSBJDMX_CLCB; + [ColumnMap(DbField = "XLXSBJDMX_CLCB", CtrlName = "txtXLXSBJDMX_CLCB", DbTitle = "线缆材料成本", Type = FieldType.F, DefaultValue = "0", + IsAllowNull = true, IsKey = false, Length = 8)] + public string XLXSBJDMX_CLCB + { + get { return _XLXSBJDMX_CLCB; } + set { _XLXSBJDMX_CLCB = value; } + } + private string _XLXSBJDMX_JGBBJJCL; + [ColumnMap(DbField = "XLXSBJDMX_JGBBJJCL", CtrlName = "txtXLXSBJDMX_JGBBJJCL", DbTitle = "价格表表价价差率(%)", Type = FieldType.F, DefaultValue = "0", + IsAllowNull = true, IsKey = false, Length = 8)] + public string XLXSBJDMX_JGBBJJCL + { + get { return _XLXSBJDMX_JGBBJJCL; } + set { _XLXSBJDMX_JGBBJJCL = value; } + } + private string _XLXSBJDMX_JGBBJJCE; + [ColumnMap(DbField = "XLXSBJDMX_JGBBJJCE", CtrlName = "txtXLXSBJDMX_JGBBJJCE", DbTitle = "价格表表价价差额", Type = FieldType.F, DefaultValue = "0", + IsAllowNull = true, IsKey = false, Length = 8)] + public string XLXSBJDMX_JGBBJJCE + { + get { return _XLXSBJDMX_JGBBJJCE; } + set { _XLXSBJDMX_JGBBJJCE = value; } + } + private string _XLXSBJDMX_BZ; + [ColumnMap(DbField = "XLXSBJDMX_BZ", CtrlName = "txtXLXSBJDMX_BZ", DbTitle = "备注", Type = FieldType.C, DefaultValue = "", + IsAllowNull = true, IsKey = false, Length = 250)] + public string XLXSBJDMX_BZ + { + get { return _XLXSBJDMX_BZ; } + set { _XLXSBJDMX_BZ = value; } + } + private string _XLXSBJDMX_DZSC; + [ColumnMap(DbField = "XLXSBJDMX_DZSC", CtrlName = "txtXLXSBJDMX_DZSC", DbTitle = "定制生产", Type = FieldType.C, DefaultValue = "", + IsAllowNull = true, IsKey = false, Length = 1)] + public string XLXSBJDMX_DZSC + { + get { return _XLXSBJDMX_DZSC; } + set { _XLXSBJDMX_DZSC = value; } + } + + private string _XLXSBJDMX_WHR; + [ColumnMap(DbField = "XLXSBJDMX_WHR", CtrlName = "txtWHR", DbTitle = "维护人", Type = FieldType.C, DefaultValue = "", + IsAllowNull = true, IsKey = false, Length = 30)] + public string XLXSBJDMX_WHR + { + get { return _XLXSBJDMX_WHR; } + set { _XLXSBJDMX_WHR = value; } + } + private string _XLXSBJDMX_WHRID; + [ColumnMap(DbField = "XLXSBJDMX_WHRID", CtrlName = "txtWHRID", DbTitle = "维护人工号", Type = FieldType.HiddenField, DefaultValue = "", + IsAllowNull = true, IsKey = false, Length = 10)] + public string XLXSBJDMX_WHRID + { + get { return _XLXSBJDMX_WHRID; } + set { _XLXSBJDMX_WHRID = value; } + } + private string _XLXSBJDMX_WHSJ; + [ColumnMap(DbField = "XLXSBJDMX_WHSJ", CtrlName = "datWHSJ", DbTitle = "维护时间", Type = FieldType.DT, DefaultValue = "", + IsAllowNull = true, IsKey = false, Length = 8)] + public string XLXSBJDMX_WHSJ + { + get { return _XLXSBJDMX_WHSJ; } + set { _XLXSBJDMX_WHSJ = value; } + } + private string _XLXSBJDMX_BJDID; + [ColumnMap(DbField = "XLXSBJDMX_BJDID", CtrlName = "txtBJDID", DbTitle = "报价单号", Type = FieldType.HiddenField, DefaultValue = "", + IsAllowNull = true, IsKey = false, Length = 20)] + public string XLXSBJDMX_BJDID + { + get { return _XLXSBJDMX_BJDID; } + set { _XLXSBJDMX_BJDID = value; } + } + } + +} diff --git a/XLBJDCalcUtils.cs b/XLBJDCalcUtils.cs new file mode 100644 index 0000000..3135f86 --- /dev/null +++ b/XLBJDCalcUtils.cs @@ -0,0 +1,5050 @@ +using System; +using System.Data; +using System.Configuration; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; +using GThinking.N_MISPROAS.Web.AjaxServices; +using GThinking.N_MISPRO.Data; +using System.Collections.Generic; +using System.Collections; +using GThinking.N_MISPRO.Utility; +using System.IO; +using System.Text; +using GThinking.N_MISPRO; +using GThinking.N_MISPRO.TableCache; + +namespace GThinking.U20261363_N_XLXSBJ +{ + public enum CalcAction + { + Insert, //新增明细 + ReCalc, //重算明细,比如:报价单行情调整 + HSBZChange, //表价含税切换 + Copy //复制明细 + } + + public class XLBJDCalcUtils + { + /// + /// 插入报价单明细后调用触发计算,注:XLXSBJDMX_JLDW必须提前赋好值 + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + public static void CalcBJDMXAfterIns(TDatabase dberp, TSQL SQL, string sBJDID, int startBJDXH, string sBJU002, string sBJU003, string sBJU018, string sWHRID, string sWHR, string sJMBGSYZID, ref string sErrMsg) + { + try + { + SQL.Clear(); + SQL.Add("select XLXSBJD_JGBID,XLXSJGB_MXBH,XLXSJGB_JGBIDS,XLXSJGB_JGCIDS,XLXSJGB_BJLY,XLXSJGB_TJYS,XLXSJGB_JSBLFS, "); + SQL.Add(" XLXSBJD_BJFLID,XLXSBJFL_BJDHQLY,XLXSBJFL_TZCLHQ,XLXSBJFL_JGBTJYSS,XLXSBJFL_BJJCLLX,XLXSBJFL_LJJCLLX,XLXSBJFL_CPBJMRXSWS,XLXSBJFL_ZDXJJCLLX,XLXSBJFL_JYF,XLXSBJFL_YFWLID,XLXSBJFL_BJHYF,"); + SQL.Add(" XLXSBJD_JZBJHS,XLXSBJD_BJRQ,XLXSBJFL_TZYLBL "); + SQL.Add(" from XLXSBJD "); + SQL.Add(" left join XLXSJGB on XLXSJGB_JGBID=XLXSBJD_JGBID "); + SQL.Add(" left join XLXSBJFL on XLXSBJFL_BJFLID=XLXSBJD_BJFLID"); + SQL.Add(" where XLXSBJD_BJDID=:pBJDID"); + SQL.ParamByName("pBJDID").Value = sBJDID; + DataSet dsBJD = dberp.OpenDataSet(SQL); + if (dsBJD.Tables[0].Rows.Count == 0) + { + throw new Exception("报价单记录不存在!"); + } + + int iXSWS = string.IsNullOrEmpty(sBJU002) ? 5 : CMISproConvert.StrToInt(sBJU002); + if (iXSWS < 0) + iXSWS = 0; + else if (iXSWS > 8) + iXSWS = 8; + + bool bHSBZ = dsBJD.Tables[0].Rows[0]["XLXSBJD_JZBJHS"].ToString().Trim().Equals("Y"); + string sBJRQ = dsBJD.Tables[0].Rows[0]["XLXSBJD_BJRQ"].ToString().Trim(); + + string sJGBID = dsBJD.Tables[0].Rows[0]["XLXSBJD_JGBID"].ToString().Trim(); + string sMXBH = dsBJD.Tables[0].Rows[0]["XLXSJGB_MXBH"].ToString().Trim(); + string sJGBIDS = dsBJD.Tables[0].Rows[0]["XLXSJGB_JGBIDS"].ToString().Trim(); + string sJGCIDS = dsBJD.Tables[0].Rows[0]["XLXSJGB_JGCIDS"].ToString().Trim(); + string sBJLY = dsBJD.Tables[0].Rows[0]["XLXSJGB_BJLY"].ToString().Trim(); + string sTJYS = dsBJD.Tables[0].Rows[0]["XLXSJGB_TJYS"].ToString().Trim(); + string sJSBLFS = dsBJD.Tables[0].Rows[0]["XLXSJGB_JSBLFS"].ToString().Trim(); + + string sBJFLID = dsBJD.Tables[0].Rows[0]["XLXSBJD_BJFLID"].ToString().Trim(); + string sBJDHQLY = dsBJD.Tables[0].Rows[0]["XLXSBJFL_BJDHQLY"].ToString().Trim();//1|价格表行情、2|报价日行情 + string sTZCLHQ = dsBJD.Tables[0].Rows[0]["XLXSBJFL_TZCLHQ"].ToString().Trim();//允许调整材料行情 + string sJGBTJYSS = dsBJD.Tables[0].Rows[0]["XLXSBJFL_JGBTJYSS"].ToString().Trim();//价格表调价因素 + string sJCLLX = dsBJD.Tables[0].Rows[0]["XLXSBJFL_BJJCLLX"].ToString().Trim(); + string sLJJCLLX = dsBJD.Tables[0].Rows[0]["XLXSBJFL_LJJCLLX"].ToString().Trim(); + string sCPBJMRXSWS = dsBJD.Tables[0].Rows[0]["XLXSBJFL_CPBJMRXSWS"].ToString().Trim(); + string sZDXJJCLLX = dsBJD.Tables[0].Rows[0]["XLXSBJFL_ZDXJJCLLX"].ToString().Trim(); + string sJYF = dsBJD.Tables[0].Rows[0]["XLXSBJFL_JYF"].ToString().Trim(); + string sYFWLID = dsBJD.Tables[0].Rows[0]["XLXSBJFL_YFWLID"].ToString().Trim(); + string sBJHYF = dsBJD.Tables[0].Rows[0]["XLXSBJFL_BJHYF"].ToString().Trim(); + string sTZCLYLBL = dsBJD.Tables[0].Rows[0]["XLXSBJFL_TZYLBL"].ToString().Trim(); + + + CalcBJDHQCLCB_CLCB_JGBJJ_JGBBJ(dberp, SQL, sBJDID, startBJDXH, bHSBZ, sBJRQ, + sJGBID, sMXBH, sJGBIDS, sJGCIDS, sBJLY, sTJYS, sJSBLFS, + sBJFLID, sBJDHQLY, sTZCLHQ, sJGBTJYSS, + sBJU002, sBJU003, sBJU018, sWHRID, sWHR, CalcAction.Insert, ref sErrMsg); + + if (!sErrMsg.Equals("")) + { + throw new Exception(sErrMsg); + } + + Dictionary dicTJYZList = new Dictionary(); + XLBJDUtils.GetDicTJYZList(dberp, SQL, sBJFLID, sJMBGSYZID,ref dicTJYZList); + XLBJDUtils.AddXLXSBJDYZZ0(dberp, sBJDID, sBJFLID, sBJU003, dicTJYZList, true, "", startBJDXH - 1, ref sErrMsg); + + if (SystemInfoUtils.GetSystem().Id.Trim().Equals("0574000503") || SystemInfoUtils.GetSystem().Id.Trim().Equals("0574000504"))//0574000503|宁波东方正式系统,0574000504|宁波东方测试系统 + { + SQL.Clear(); + SQL.Add(" update XLXSBJDYZZ0 set XLXSBJDYZZ0_YZZ02 = XLXSBJDYZZ0_YZZ01 - XLXSBJDYZZ0_YZZ03 where XLXSBJDYZZ0_BJDID = :pBJDID and XLXSBJDYZZ0_XH > :pBJDXH "); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pBJDXH").Value = startBJDXH - 1; + dberp.ExecSQL(SQL); + } + + if (!sErrMsg.Equals("")) + { + throw new Exception(sErrMsg); + } + + //同步报价单明细记录插入XLXSBJDCLCB、XLXSBJDJJYZ + XLBJDInfo.InsertCLCBandJJYZ(dberp, SQL, TControlState.ctsEdit, sBJDID, sJGBID, sBJRQ, sWHRID, sWHR, sBJU003, bHSBZ); + + if (dberp.DriverName == "ORACLE") + { + if (dberp.InTransaction) + { + dberp.CommitTrans(); + + dberp.BeginTrans(); + } + } + + XLBJDUtils.UpdateBJDMX(dberp, SQL, sBJFLID, sBJDID, iXSWS, sJCLLX, sLJJCLLX, sCPBJMRXSWS, "", startBJDXH); + //同步补充插入XLXSCLQD、XLXSJGBMX中没有的记录 + XLBJDInfo.InsertCLQDorJGBMX(dberp, SQL, sBJDID, sJGBID, sJGBIDS, CMISproSessionManager.GetCurrentSession()); + + //更新产品目录 + if (XLBJDUtils.ExistXSCPML()) + { + XLBJDUtils.UpdateBJDMX_CPMLMC(sBJDID, "", startBJDXH - 1, true, ref sErrMsg); + if (!sErrMsg.Equals("")) + { + throw new Exception(sErrMsg); + } + } + + if (dberp.DriverName == "ORACLE") + { + if (dberp.InTransaction) + { + dberp.CommitTrans(); + + dberp.BeginTrans(); + } + } + + XLBJDUtils.UpdateZDXJGS(dberp, SQL, sBJDID, sBJFLID, sBJU002, "", startBJDXH); + XLBJDUtils.UpdateJSJGS(dberp, SQL, sBJDID, sBJFLID, sBJU002, "", startBJDXH); + XLBJDCalcUtils.Check_UpdBJSLYZZ(dberp, SQL, sBJDID, sBJFLID, sBJU002, sBJU003); + XLBJDUtils.UpdateXLXSBJD(dberp, SQL, sBJDID, sJCLLX, sLJJCLLX, sZDXJJCLLX, sJYF, "", "", sYFWLID, sBJHYF); + } + catch (Exception ex) + { + sErrMsg = ex.Message; + throw new Exception(sErrMsg); + } + } + /// + /// 插入报价单明细后调用触发计算,注:XLXSBJDMX_JLDW必须提前赋好值 + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + public static void CalcBJDMXAfterIns(TDatabase dberp, TSQL SQL, string sBJDID, int startBJDXH, string sBJU002, string sBJU003,string sBJU018, string sWHRID, string sWHR, ref string sErrMsg) + { + CalcBJDMXAfterIns(dberp, SQL, sBJDID, startBJDXH, sBJU002, sBJU003, sBJU018, sWHRID, sWHR, "", ref sErrMsg); + } + + //表价含税切换后进行批量重算 + public static void CalcAfterHSBZChange(TDatabase dberp, TSQL SQL, string sBJDID, int startBJDXH, string sBJU002, string sBJU003, string sBJU018, string sWHRID, string sWHR, ref string sErrMsg) + { + CalcAfterBJDHQChange(dberp, SQL, sBJDID, startBJDXH, sBJU002, sBJU003, sBJU018, sWHRID, sWHR, CalcAction.HSBZChange, ref sErrMsg); + } + + /// + /// 报价单行情调整后进行批量重算 + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + public static void CalcAfterBJDHQChange(TDatabase dberp, TSQL SQL, string sBJDID, int startBJDXH, string sBJU002, string sBJU003, string sBJU018, string sWHRID, string sWHR, ref string sErrMsg) + { + CalcAfterBJDHQChange(dberp, SQL, sBJDID, startBJDXH, sBJU002, sBJU003, sBJU018, sWHRID, sWHR, CalcAction.ReCalc, "", ref sErrMsg); + } + public static void CalcAfterBJDHQChange(TDatabase dberp, TSQL SQL, string sBJDID, int startBJDXH, string sBJU002, string sBJU003, string sBJU018, string sWHRID, string sWHR, CalcAction Act, ref string sErrMsg) + { + CalcAfterBJDHQChange(dberp, SQL, sBJDID, startBJDXH, sBJU002, sBJU003, sBJU018, sWHRID, sWHR, Act, "", ref sErrMsg); + } + public static void CalcAfterBJDHQChange(TDatabase dberp, TSQL SQL, string sBJDID, int startBJDXH, string sBJU002, string sBJU003, string sBJU018, string sWHRID, string sWHR, CalcAction Act, string sBLBJCP, ref string sErrMsg) + { + try + { + SQL.Clear(); + SQL.Add("select XLXSBJD_JGBID,XLXSJGB_MXBH,XLXSJGB_JGBIDS,XLXSJGB_JGCIDS,XLXSJGB_BJLY,XLXSJGB_TJYS,XLXSJGB_JSBLFS, "); + SQL.Add(" XLXSBJD_BJFLID,XLXSBJFL_BJDHQLY,XLXSBJFL_TZCLHQ,XLXSBJFL_JGBTJYSS,XLXSBJFL_BJJCLLX,XLXSBJFL_LJJCLLX,XLXSBJFL_CPBJMRXSWS,"); + SQL.Add(" XLXSBJFL_ZDXJJCLLX,XLXSBJFL_JYF,XLXSBJFL_YFWLID,XLXSBJFL_BJHYF,XLXSBJFL_ZDXJGS,XLXSBJFL_JSJGS,XLXSBJFL_TZYLBL,"); + SQL.Add(" XLXSBJD_JZBJHS,XLXSBJD_BJRQ"); + SQL.Add(" from XLXSBJD "); + SQL.Add(" left join XLXSJGB on XLXSJGB_JGBID=XLXSBJD_JGBID "); + SQL.Add(" left join XLXSBJFL on XLXSBJFL_BJFLID=XLXSBJD_BJFLID"); + SQL.Add(" where XLXSBJD_BJDID=:pBJDID"); + SQL.ParamByName("pBJDID").Value = sBJDID; + DataSet dsBJD = dberp.OpenDataSet(SQL); + if (dsBJD.Tables[0].Rows.Count == 0) + { + return; + } + + int iXSWS = string.IsNullOrEmpty(sBJU002) ? 5 : CMISproConvert.StrToInt(sBJU002); + if (iXSWS < 0) + iXSWS = 0; + else if (iXSWS > 8) + iXSWS = 8; + + bool bHSBZ = dsBJD.Tables[0].Rows[0]["XLXSBJD_JZBJHS"].ToString().Trim().Equals("Y"); + string sBJRQ = dsBJD.Tables[0].Rows[0]["XLXSBJD_BJRQ"].ToString().Trim(); + + string sJGBID = dsBJD.Tables[0].Rows[0]["XLXSBJD_JGBID"].ToString().Trim(); + string sMXBH = dsBJD.Tables[0].Rows[0]["XLXSJGB_MXBH"].ToString().Trim(); + string sJGBIDS = dsBJD.Tables[0].Rows[0]["XLXSJGB_JGBIDS"].ToString().Trim(); + string sJGCIDS = dsBJD.Tables[0].Rows[0]["XLXSJGB_JGCIDS"].ToString().Trim(); + string sBJLY = dsBJD.Tables[0].Rows[0]["XLXSJGB_BJLY"].ToString().Trim(); + string sTJYS = dsBJD.Tables[0].Rows[0]["XLXSJGB_TJYS"].ToString().Trim(); + string sJSBLFS = dsBJD.Tables[0].Rows[0]["XLXSJGB_JSBLFS"].ToString().Trim(); + + string sBJFLID = dsBJD.Tables[0].Rows[0]["XLXSBJD_BJFLID"].ToString().Trim(); + string sBJDHQLY = dsBJD.Tables[0].Rows[0]["XLXSBJFL_BJDHQLY"].ToString().Trim();//1|价格表行情、2|报价日行情 + string sTZCLHQ = dsBJD.Tables[0].Rows[0]["XLXSBJFL_TZCLHQ"].ToString().Trim();//允许调整材料行情 + string sJGBTJYSS = dsBJD.Tables[0].Rows[0]["XLXSBJFL_JGBTJYSS"].ToString().Trim();//价格表调价因素 + string sJCLLX = dsBJD.Tables[0].Rows[0]["XLXSBJFL_BJJCLLX"].ToString().Trim(); + string sLJJCLLX = dsBJD.Tables[0].Rows[0]["XLXSBJFL_LJJCLLX"].ToString().Trim(); + string sCPBJMRXSWS = dsBJD.Tables[0].Rows[0]["XLXSBJFL_CPBJMRXSWS"].ToString().Trim(); + string sZDXJJCLLX = dsBJD.Tables[0].Rows[0]["XLXSBJFL_ZDXJJCLLX"].ToString().Trim(); + string sJYF = dsBJD.Tables[0].Rows[0]["XLXSBJFL_JYF"].ToString().Trim(); + string sYFWLID = dsBJD.Tables[0].Rows[0]["XLXSBJFL_YFWLID"].ToString().Trim(); + string sBJHYF = dsBJD.Tables[0].Rows[0]["XLXSBJFL_BJHYF"].ToString().Trim(); + string sZDXJGS = dsBJD.Tables[0].Rows[0]["XLXSBJFL_ZDXJGS"].ToString().Trim(); + string sJSJGS = dsBJD.Tables[0].Rows[0]["XLXSBJFL_JSJGS"].ToString().Trim(); + string sTZCLYLBL = dsBJD.Tables[0].Rows[0]["XLXSBJFL_TZYLBL"].ToString().Trim(); + + + CalcBJDHQCLCB_CLCB_JGBJJ_JGBBJ(dberp, SQL, sBJDID, startBJDXH, bHSBZ, sBJRQ, + sJGBID, sMXBH, sJGBIDS, sJGCIDS, sBJLY, sTJYS, sJSBLFS, + sBJFLID, sBJDHQLY, sTZCLHQ, sJGBTJYSS, + sBJU002, sBJU003, sBJU018, sWHRID, sWHR, "", Act, sBLBJCP, ref sErrMsg); + + if (!sErrMsg.Equals("")) + { + throw new Exception(sErrMsg); + } + + //同步报价单明细记录插入XLXSBJDCLCB、XLXSBJDJJYZ + XLBJDInfo.InsertCLCBandJJYZ(dberp, SQL, TControlState.ctsEdit, sBJDID, sJGBID, sBJRQ, sWHRID, sWHR, sBJU003, bHSBZ); + + XLBJDUtils.UpdateBJDMX(dberp, SQL, sBJFLID, sBJDID, iXSWS, sJCLLX, sLJJCLLX, sCPBJMRXSWS, "", startBJDXH); + bool bZDXJTZ = false; + if (sZDXJGS.Contains("CLCB") || sZDXJGS.Contains("JGBJJ") || sZDXJGS.Contains("JGBBJ") || sZDXJGS.Contains("CPBJ")) + { + XLBJDUtils.UpdateZDXJGS(dberp, SQL, sBJDID, sBJFLID, sBJU002, "", startBJDXH); + bZDXJTZ = true; + + } + if (sJSJGS.Contains("CLCB") || sJSJGS.Contains("JGBJJ") || sJSJGS.Contains("JGBBJ") || sJSJGS.Contains("CPBJ") || bZDXJTZ) + { + XLBJDUtils.UpdateJSJGS(dberp, SQL, sBJDID, sBJFLID, sBJU002, "", startBJDXH); + + } + + XLBJDUtils.UpdateXLXSBJD(dberp, SQL, sBJDID, sJCLLX, sLJJCLLX, sZDXJJCLLX, sJYF, "", "", sYFWLID, sBJHYF); + } + catch (Exception ex) + { + sErrMsg = ex.Message; + throw new Exception(sErrMsg); + } + } + + public static void CalcAfterBJDHQChange(TDatabase dberp, TSQL SQL, string sBJDID, int startBJDXH, string sBJU002, string sBJU003, string sBJU018, string sWHRID, string sWHR, CalcAction Act, ref string sErrMsg, string sLJRQ, bool bQLJRQJ) + { + try + { + SQL.Clear(); + SQL.Add("select XLXSBJD_JGBID,XLXSJGB_MXBH,XLXSJGB_JGBIDS,XLXSJGB_JGCIDS,XLXSJGB_BJLY,XLXSJGB_TJYS,XLXSJGB_JSBLFS, "); + SQL.Add(" XLXSBJD_BJFLID,XLXSBJFL_BJDHQLY,XLXSBJFL_TZCLHQ,XLXSBJFL_JGBTJYSS,XLXSBJFL_BJJCLLX,XLXSBJFL_LJJCLLX,XLXSBJFL_CPBJMRXSWS,"); + SQL.Add(" XLXSBJFL_ZDXJJCLLX,XLXSBJFL_JYF,XLXSBJFL_YFWLID,XLXSBJFL_BJHYF,XLXSBJFL_ZDXJGS,XLXSBJFL_JSJGS,XLXSBJFL_TZYLBL,"); + SQL.Add(" XLXSBJD_JZBJHS,XLXSBJD_BJRQ"); + SQL.Add(" from XLXSBJD "); + SQL.Add(" left join XLXSJGB on XLXSJGB_JGBID=XLXSBJD_JGBID "); + SQL.Add(" left join XLXSBJFL on XLXSBJFL_BJFLID=XLXSBJD_BJFLID"); + SQL.Add(" where XLXSBJD_BJDID=:pBJDID"); + SQL.ParamByName("pBJDID").Value = sBJDID; + DataSet dsBJD = dberp.OpenDataSet(SQL); + if (dsBJD.Tables[0].Rows.Count == 0) + { + return; + } + + int iXSWS = string.IsNullOrEmpty(sBJU002) ? 5 : CMISproConvert.StrToInt(sBJU002); + if (iXSWS < 0) + iXSWS = 0; + else if (iXSWS > 8) + iXSWS = 8; + + bool bHSBZ = dsBJD.Tables[0].Rows[0]["XLXSBJD_JZBJHS"].ToString().Trim().Equals("Y"); + string sBJRQ = dsBJD.Tables[0].Rows[0]["XLXSBJD_BJRQ"].ToString().Trim(); + + string sJGBID = dsBJD.Tables[0].Rows[0]["XLXSBJD_JGBID"].ToString().Trim(); + string sMXBH = dsBJD.Tables[0].Rows[0]["XLXSJGB_MXBH"].ToString().Trim(); + string sJGBIDS = dsBJD.Tables[0].Rows[0]["XLXSJGB_JGBIDS"].ToString().Trim(); + string sJGCIDS = dsBJD.Tables[0].Rows[0]["XLXSJGB_JGCIDS"].ToString().Trim(); + string sBJLY = dsBJD.Tables[0].Rows[0]["XLXSJGB_BJLY"].ToString().Trim(); + string sTJYS = dsBJD.Tables[0].Rows[0]["XLXSJGB_TJYS"].ToString().Trim(); + string sJSBLFS = dsBJD.Tables[0].Rows[0]["XLXSJGB_JSBLFS"].ToString().Trim(); + + string sBJFLID = dsBJD.Tables[0].Rows[0]["XLXSBJD_BJFLID"].ToString().Trim(); + string sBJDHQLY = dsBJD.Tables[0].Rows[0]["XLXSBJFL_BJDHQLY"].ToString().Trim();//1|价格表行情、2|报价日行情 + string sTZCLHQ = dsBJD.Tables[0].Rows[0]["XLXSBJFL_TZCLHQ"].ToString().Trim();//允许调整材料行情 + string sJGBTJYSS = dsBJD.Tables[0].Rows[0]["XLXSBJFL_JGBTJYSS"].ToString().Trim();//价格表调价因素 + string sJCLLX = dsBJD.Tables[0].Rows[0]["XLXSBJFL_BJJCLLX"].ToString().Trim(); + string sLJJCLLX = dsBJD.Tables[0].Rows[0]["XLXSBJFL_LJJCLLX"].ToString().Trim(); + string sCPBJMRXSWS = dsBJD.Tables[0].Rows[0]["XLXSBJFL_CPBJMRXSWS"].ToString().Trim(); + string sZDXJJCLLX = dsBJD.Tables[0].Rows[0]["XLXSBJFL_ZDXJJCLLX"].ToString().Trim(); + string sJYF = dsBJD.Tables[0].Rows[0]["XLXSBJFL_JYF"].ToString().Trim(); + string sYFWLID = dsBJD.Tables[0].Rows[0]["XLXSBJFL_YFWLID"].ToString().Trim(); + string sBJHYF = dsBJD.Tables[0].Rows[0]["XLXSBJFL_BJHYF"].ToString().Trim(); + string sZDXJGS = dsBJD.Tables[0].Rows[0]["XLXSBJFL_ZDXJGS"].ToString().Trim(); + string sJSJGS = dsBJD.Tables[0].Rows[0]["XLXSBJFL_JSJGS"].ToString().Trim(); + string sTZCLYLBL = dsBJD.Tables[0].Rows[0]["XLXSBJFL_TZYLBL"].ToString().Trim(); + + + + CalcBJDHQCLCB_CLCB_JGBJJ_JGBBJ(dberp, SQL, sBJDID, startBJDXH, bHSBZ, sBJRQ, + sJGBID, sMXBH, sJGBIDS, sJGCIDS, sBJLY, sTJYS, sJSBLFS, + sBJFLID, sBJDHQLY, sTZCLHQ, sJGBTJYSS, + sBJU002, sBJU003, sBJU018, sWHRID, sWHR, Act, ref sErrMsg); + + if (!sErrMsg.Equals("")) + { + throw new Exception(sErrMsg); + } + + //同步报价单明细记录插入XLXSBJDCLCB、XLXSBJDJJYZ + if (bQLJRQJ) + XLBJDInfo.InsertCLCBandJJYZ(dberp, SQL, TControlState.ctsEdit, sBJDID, sJGBID, sLJRQ, sWHRID, sWHR, sBJU003, bHSBZ); + else + XLBJDInfo.InsertCLCBandJJYZ(dberp, SQL, TControlState.ctsEdit, sBJDID, sJGBID, sBJRQ, sWHRID, sWHR, sBJU003, bHSBZ); + + XLBJDUtils.UpdateBJDMX(dberp, SQL, sBJFLID, sBJDID, iXSWS, sJCLLX, sLJJCLLX, sCPBJMRXSWS, "", startBJDXH); + bool bZDXJTZ = false; + if (sZDXJGS.Contains("CLCB") || sZDXJGS.Contains("JGBJJ") || sZDXJGS.Contains("JGBBJ") || sZDXJGS.Contains("CPBJ")) + { + XLBJDUtils.UpdateZDXJGS(dberp, SQL, sBJDID, sBJFLID, sBJU002, "", startBJDXH); + bZDXJTZ = true; + + } + if (sJSJGS.Contains("CLCB") || sJSJGS.Contains("JGBJJ") || sJSJGS.Contains("JGBBJ") || sJSJGS.Contains("CPBJ") || bZDXJTZ) + { + XLBJDUtils.UpdateJSJGS(dberp, SQL, sBJDID, sBJFLID, sBJU002, "", startBJDXH); + + } + + XLBJDUtils.UpdateXLXSBJD(dberp, SQL, sBJDID, sJCLLX, sLJJCLLX, sZDXJJCLLX, sJYF, "", "", sYFWLID, sBJHYF); + } + catch (Exception ex) + { + sErrMsg = ex.Message; + throw new Exception(sErrMsg); + } + } + + /// + /// 报价单因子值调整后进行批量重算 + /// + /// + /// + /// + /// + /// + /// 有表价 + /// 外购 + /// 非外购 + /// 铜铝产品 + /// + /// + /// + /// + /// + public static void CalcAfterBJDYZZChange(TDatabase dberp, TSQL SQL, string sBJDID, int startBJDXH, string sBJDXHList, bool bYBJ, bool bWG, bool bFWG, string sTLcpList, DateTime tWHSJCondition, + string sBJU002, string sBJU003, string sWHRID, string sWHR, ref string sErrMsg) + { + try + { + SQL.Clear(); + SQL.Add("select XLXSBJD_JGBID,XLXSJGB_MXBH,XLXSJGB_JGBIDS,XLXSJGB_JGCIDS,XLXSJGB_BJLY,XLXSJGB_TJYS,XLXSJGB_JSBLFS,XLXSBJFL_XSTZZDXJ, "); + SQL.Add(" XLXSBJD_BJFLID,XLXSBJFL_BJDHQLY,XLXSBJFL_TZCLHQ,XLXSBJFL_JGBTJYSS,XLXSBJFL_BJJCLLX,XLXSBJFL_LJJCLLX,XLXSBJFL_CPBJMRXSWS,"); + SQL.Add(" XLXSBJFL_ZDXJJCLLX,XLXSBJFL_JYF,XLXSBJFL_YFWLID,XLXSBJFL_BJHYF,XLXSBJFL_ZDXJGS,XLXSBJFL_JSJGS,"); + SQL.Add(" XLXSBJD_JZBJHS,XLXSBJD_BJRQ"); + SQL.Add(" from XLXSBJD "); + SQL.Add(" left join XLXSJGB on XLXSJGB_JGBID=XLXSBJD_JGBID "); + SQL.Add(" left join XLXSBJFL on XLXSBJFL_BJFLID=XLXSBJD_BJFLID"); + SQL.Add(" where XLXSBJD_BJDID=:pBJDID"); + SQL.ParamByName("pBJDID").Value = sBJDID; + DataSet dsBJD = dberp.OpenDataSet(SQL); + if (dsBJD.Tables[0].Rows.Count == 0) + { + return; + } + + int iXSWS = string.IsNullOrEmpty(sBJU002) ? 5 : CMISproConvert.StrToInt(sBJU002); + if (iXSWS < 0) + iXSWS = 0; + else if (iXSWS > 8) + iXSWS = 8; + + bool bHSBZ = dsBJD.Tables[0].Rows[0]["XLXSBJD_JZBJHS"].ToString().Trim().Equals("Y"); + string sBJRQ = dsBJD.Tables[0].Rows[0]["XLXSBJD_BJRQ"].ToString().Trim(); + + string sJGBID = dsBJD.Tables[0].Rows[0]["XLXSBJD_JGBID"].ToString().Trim(); + string sMXBH = dsBJD.Tables[0].Rows[0]["XLXSJGB_MXBH"].ToString().Trim(); + string sJGBIDS = dsBJD.Tables[0].Rows[0]["XLXSJGB_JGBIDS"].ToString().Trim(); + string sJGCIDS = dsBJD.Tables[0].Rows[0]["XLXSJGB_JGCIDS"].ToString().Trim(); + string sBJLY = dsBJD.Tables[0].Rows[0]["XLXSJGB_BJLY"].ToString().Trim(); + string sTJYS = dsBJD.Tables[0].Rows[0]["XLXSJGB_TJYS"].ToString().Trim(); + string sJSBLFS = dsBJD.Tables[0].Rows[0]["XLXSJGB_JSBLFS"].ToString().Trim(); + + string sBJFLID = dsBJD.Tables[0].Rows[0]["XLXSBJD_BJFLID"].ToString().Trim(); + string sBJDHQLY = dsBJD.Tables[0].Rows[0]["XLXSBJFL_BJDHQLY"].ToString().Trim();//1|价格表行情、2|报价日行情 + string sJGBTJYSS = dsBJD.Tables[0].Rows[0]["XLXSBJFL_JGBTJYSS"].ToString().Trim();//价格表调价因素 + string sJCLLX = dsBJD.Tables[0].Rows[0]["XLXSBJFL_BJJCLLX"].ToString().Trim(); + string sLJJCLLX = dsBJD.Tables[0].Rows[0]["XLXSBJFL_LJJCLLX"].ToString().Trim(); + string sCPBJMRXSWS = dsBJD.Tables[0].Rows[0]["XLXSBJFL_CPBJMRXSWS"].ToString().Trim(); + string sZDXJJCLLX = dsBJD.Tables[0].Rows[0]["XLXSBJFL_ZDXJJCLLX"].ToString().Trim(); + string sJYF = dsBJD.Tables[0].Rows[0]["XLXSBJFL_JYF"].ToString().Trim(); + string sYFWLID = dsBJD.Tables[0].Rows[0]["XLXSBJFL_YFWLID"].ToString().Trim(); + string sBJHYF = dsBJD.Tables[0].Rows[0]["XLXSBJFL_BJHYF"].ToString().Trim(); + string sZDXJGS = dsBJD.Tables[0].Rows[0]["XLXSBJFL_ZDXJGS"].ToString().Trim(); + string sXSTZZDXJ = dsBJD.Tables[0].Rows[0]["XLXSBJFL_XSTZZDXJ"].ToString().Trim(); + string sJSJGS = dsBJD.Tables[0].Rows[0]["XLXSBJFL_JSJGS"].ToString().Trim(); + + //重算明细时,需提前初始化一些字段 + SQL.Clear(); + SQL.Add("update XLXSBJDMX set XLXSBJDMX_CLCBJCLSDBZ='N' "); + if (XLBJDUtils.GetXLXSBJPZXX(100860000).XLXSBJPZ_BQKTZBJ != "Y") + { + SQL.Add(" ,XLXSBJDMX_TZCPBJ=0"); + } + if (XLBJDUtils.GetXLXSBJPZXX(100860000).XLXSBJPZ_BQKTZZDXJ != "Y") + { + SQL.Add(" ,XLXSBJDMX_TZZDXJ=0"); + } + SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID"); + SQL.Add(" and XLXSBJDMX_XH>=:pstartBJDXH"); + if (!sBJDXHList.Equals("")) + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + if (bYBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + if (bWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y' "); + if (!sTLcpList.Equals("")) + SQL.Add(" and exists(select 1 from XLXHB where XLXHB_XLXHID=UPPER(XLXSBJDMX_XLXHID) and " + CMISproDataBase.GetWhereEqual("XLXHB_DTCLID", sTLcpList) + ") "); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pstartBJDXH").Value = startBJDXH; + dberp.ExecSQL(SQL); + + if (dberp.DriverName == "ORACLE") + { + if (dberp.InTransaction) + { + dberp.CommitTrans(); + + dberp.BeginTrans(); + } + } + + XLBJDUtils.UpdateBJDMX(dberp, SQL, sBJFLID, sBJDID, iXSWS, sJCLLX, sLJJCLLX, sCPBJMRXSWS, sBJDXHList, startBJDXH, bYBJ, bWG, bFWG, sTLcpList, tWHSJCondition); + + + if (dberp.DriverName == "ORACLE") + { + if (dberp.InTransaction) + { + dberp.CommitTrans(); + + dberp.BeginTrans(); + } + } + + bool bZDXJTZ = false; + if (sZDXJGS.Contains("BJ01") || sZDXJGS.Contains("BJ02") || sZDXJGS.Contains("BJ03") || sZDXJGS.Contains("BJ04") || sZDXJGS.Contains("BJ05") + || sZDXJGS.Contains("BJ06") || sZDXJGS.Contains("BJ07") || sZDXJGS.Contains("BJ08") || sZDXJGS.Contains("BJ09") || sZDXJGS.Contains("BJ10") + || sZDXJGS.Contains("BJ11") || sZDXJGS.Contains("BJ12") || sZDXJGS.Contains("BJ13") || sZDXJGS.Contains("BJ14") || sZDXJGS.Contains("BJ15") + || sZDXJGS.Contains("BJ16") || sZDXJGS.Contains("BJ17") || sZDXJGS.Contains("BJ18") || sZDXJGS.Contains("BJ19") || sZDXJGS.Contains("BJ20") + || sZDXJGS.Contains("CPBJ") || sXSTZZDXJ.Equals("Y")) + { + XLBJDUtils.UpdateZDXJGS(dberp, SQL, sBJDID, sBJFLID, sBJU002, sBJDXHList, startBJDXH, bYBJ, false, bWG, bFWG, sTLcpList, tWHSJCondition); + bZDXJTZ = true; + + } + if (sJSJGS.Contains("BJ01") || sJSJGS.Contains("BJ02") || sJSJGS.Contains("BJ03") || sJSJGS.Contains("BJ04") || sJSJGS.Contains("BJ05") + || sJSJGS.Contains("BJ06") || sJSJGS.Contains("BJ07") || sJSJGS.Contains("BJ08") || sJSJGS.Contains("BJ09") || sJSJGS.Contains("BJ10") + || sJSJGS.Contains("BJ11") || sJSJGS.Contains("BJ12") || sJSJGS.Contains("BJ13") || sJSJGS.Contains("BJ14") || sJSJGS.Contains("BJ15") + || sJSJGS.Contains("BJ16") || sJSJGS.Contains("BJ17") || sJSJGS.Contains("BJ18") || sJSJGS.Contains("BJ19") || sJSJGS.Contains("BJ20") + || sJSJGS.Contains("CPBJ") || sXSTZZDXJ.Equals("Y") || bZDXJTZ) + { + XLBJDUtils.UpdateJSJGS(dberp, SQL, sBJDID, sBJFLID, sBJU002, sBJDXHList, startBJDXH, bYBJ, false, bWG, bFWG, sTLcpList, tWHSJCondition); + } + + XLBJDUtils.UpdateXLXSBJD(dberp, SQL, sBJDID, sJCLLX, sLJJCLLX, sZDXJJCLLX, sJYF, "", "", sYFWLID, sBJHYF); + } + catch (Exception ex) + { + sErrMsg = ex.Message; + throw new Exception(sErrMsg); + } + } + + /// + /// 报价数量调整进行批量重算 + /// + /// + /// + /// + /// + /// + /// + /// 有表价 + /// 外购 + /// 非外购 + /// + /// + /// + /// + /// + public static void CalcWithBJSLChange(TDatabase dberp, TSQL SQL, double fBJSL, string sBJDID, int startBJDXH, string sBJDXHList, bool bYBJ, bool bWG, bool bFWG, + string sBJU002, string sBJU003, string sWHRID, string sWHR, ref string sErrMsg) + { + try + { + SQL.Clear(); + SQL.Add("select XLXSBJD_JGBID,XLXSJGB_MXBH,XLXSJGB_JGBIDS,XLXSJGB_JGCIDS,XLXSJGB_BJLY,XLXSJGB_TJYS,XLXSJGB_JSBLFS, "); + SQL.Add(" XLXSBJD_BJFLID,XLXSBJFL_BJDHQLY,XLXSBJFL_TZCLHQ,XLXSBJFL_JGBTJYSS,XLXSBJFL_BJJCLLX,XLXSBJFL_LJJCLLX,XLXSBJFL_CPBJMRXSWS,"); + SQL.Add(" XLXSBJFL_ZDXJJCLLX,XLXSBJFL_JYF,XLXSBJFL_YFWLID,XLXSBJFL_BJHYF,XLXSBJFL_ZDXJGS,"); + SQL.Add(" XLXSBJD_JZBJHS,XLXSBJD_BJRQ"); + SQL.Add(" from XLXSBJD "); + SQL.Add(" left join XLXSJGB on XLXSJGB_JGBID=XLXSBJD_JGBID "); + SQL.Add(" left join XLXSBJFL on XLXSBJFL_BJFLID=XLXSBJD_BJFLID"); + SQL.Add(" where XLXSBJD_BJDID=:pBJDID"); + SQL.ParamByName("pBJDID").Value = sBJDID; + DataSet dsBJD = dberp.OpenDataSet(SQL); + if (dsBJD.Tables[0].Rows.Count == 0) + { + return; + } + + int iXSWS = string.IsNullOrEmpty(sBJU002) ? 5 : CMISproConvert.StrToInt(sBJU002); + if (iXSWS < 0) + iXSWS = 0; + else if (iXSWS > 8) + iXSWS = 8; + + bool bHSBZ = dsBJD.Tables[0].Rows[0]["XLXSBJD_JZBJHS"].ToString().Trim().Equals("Y"); + string sBJRQ = dsBJD.Tables[0].Rows[0]["XLXSBJD_BJRQ"].ToString().Trim(); + + string sJGBID = dsBJD.Tables[0].Rows[0]["XLXSBJD_JGBID"].ToString().Trim(); + string sMXBH = dsBJD.Tables[0].Rows[0]["XLXSJGB_MXBH"].ToString().Trim(); + string sJGBIDS = dsBJD.Tables[0].Rows[0]["XLXSJGB_JGBIDS"].ToString().Trim(); + string sJGCIDS = dsBJD.Tables[0].Rows[0]["XLXSJGB_JGCIDS"].ToString().Trim(); + string sBJLY = dsBJD.Tables[0].Rows[0]["XLXSJGB_BJLY"].ToString().Trim(); + string sTJYS = dsBJD.Tables[0].Rows[0]["XLXSJGB_TJYS"].ToString().Trim(); + string sJSBLFS = dsBJD.Tables[0].Rows[0]["XLXSJGB_JSBLFS"].ToString().Trim(); + + string sBJFLID = dsBJD.Tables[0].Rows[0]["XLXSBJD_BJFLID"].ToString().Trim(); + string sBJDHQLY = dsBJD.Tables[0].Rows[0]["XLXSBJFL_BJDHQLY"].ToString().Trim();//1|价格表行情、2|报价日行情 + string sJGBTJYSS = dsBJD.Tables[0].Rows[0]["XLXSBJFL_JGBTJYSS"].ToString().Trim();//价格表调价因素 + string sJCLLX = dsBJD.Tables[0].Rows[0]["XLXSBJFL_BJJCLLX"].ToString().Trim(); + string sLJJCLLX = dsBJD.Tables[0].Rows[0]["XLXSBJFL_LJJCLLX"].ToString().Trim(); + string sCPBJMRXSWS = dsBJD.Tables[0].Rows[0]["XLXSBJFL_CPBJMRXSWS"].ToString().Trim(); + string sZDXJJCLLX = dsBJD.Tables[0].Rows[0]["XLXSBJFL_ZDXJJCLLX"].ToString().Trim(); + string sJYF = dsBJD.Tables[0].Rows[0]["XLXSBJFL_JYF"].ToString().Trim(); + string sYFWLID = dsBJD.Tables[0].Rows[0]["XLXSBJFL_YFWLID"].ToString().Trim(); + string sBJHYF = dsBJD.Tables[0].Rows[0]["XLXSBJFL_BJHYF"].ToString().Trim(); + string sZDXJGS = dsBJD.Tables[0].Rows[0]["XLXSBJFL_ZDXJGS"].ToString().Trim(); + + Dictionary dicLenJLDWTD = XLBJDUtils.GetLenJLDWTD(); + + SQL.Clear(); + SQL.Add("merge into XLXSBJDMX tar "); + SQL.Add("using "); + SQL.Add("( "); + SQL.Add(" select XLXSBJDMX_XH as BJDXH,"); + SQL.Add(" (case when XLXSBJDMX_JLDW in ('Kg', '千克', '公斤') then 1.0"); + SQL.Add(" when XLXSBJDMX_JLDW in ('T', '吨') then 1000.0"); + if (sBJU003.ToUpper().Equals("KM") || sBJU003.ToUpper().Equals("千米")) + { + SQL.Add(" when XLXSBJDMX_JLDW in ('M', '米') then RoundFix(isnull(XLXSCLQD_CLZL,0.0),6)*0.001"); + SQL.Add(" when XLXSBJDMX_JLDW in ('Km', '千米') then RoundFix(isnull(XLXSCLQD_CLZL,0.0),6)"); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when XLXSBJDMX_JLDW='{0}' then RoundFix(isnull(XLXSCLQD_CLZL,0.0),6)*0.001*{1} ", sKey, dicLenJLDWTD[sKey])); + } + } + else if (sBJU003.ToUpper().Equals("米") || sBJU003.ToUpper().Equals("M")) + { + SQL.Add(" when XLXSBJDMX_JLDW in ('Km', '千米') then RoundFix(isnull(XLXSCLQD_CLZL,0.0),6)*1000.0"); + SQL.Add(" when XLXSBJDMX_JLDW in ('M', '米') then RoundFix(isnull(XLXSCLQD_CLZL,0.0),6)"); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when XLXSBJDMX_JLDW='{0}' then RoundFix(isnull(XLXSCLQD_CLZL,0.0),6)*{1} ", sKey, dicLenJLDWTD[sKey])); + } + } + SQL.Add(" else 0.0 "); + SQL.Add(" end "); + SQL.Add(" ) as DWCLZL"); + SQL.Add(" from XLXSBJDMX"); + SQL.Add(" left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSBJDMX_XLXHID and XLXSCLQD_XLGGID=XLXSBJDMX_XLGGID and XLXSCLQD_XLBZID=XLXSBJDMX_XLBZID and XLXSCLQD_DYDJID=XLXSBJDMX_DYDJID and XLXSCLQD_WPID='ZZZZ'"); + SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID"); + SQL.Add(" and XLXSBJDMX_XH>=:pstartBJDXH"); + if (!sBJDXHList.Equals("")) + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + if (bYBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + if (bWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y' "); + SQL.Add(" ) sor "); + SQL.Add(" on (XLXSBJDMX_BJDID=:pBJDID and XLXSBJDMX_XH=BJDXH)"); + SQL.Add(" when matched then update set XLXSBJDMX_BJSL=:pBJSL,XLXSBJDMX_CLZL=:pBJSL*DWCLZL"); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pstartBJDXH").Value = startBJDXH; + SQL.ParamByName("pBJSL").Value = fBJSL; + dberp.ExecSQL(SQL); + + CalBJDTLZL(dberp,SQL,sBJDID); + + Dictionary dicTJYZList = new Dictionary(); + Dictionary dicTJYZListSL = new Dictionary(); + XLBJDUtils.GetDicTJYZList(dberp, SQL, sBJFLID, ref dicTJYZList); + if (dicTJYZList.ContainsKey("sTJYSList2")) + { + dicTJYZListSL.Add("sTJYSList2", dicTJYZList["sTJYSList2"].Trim()); + } + if (dicTJYZList.ContainsKey("sTJYSList3")) + { + dicTJYZListSL.Add("sTJYSList3", dicTJYZList["sTJYSList3"].Trim()); + } + if (dicTJYZList.ContainsKey("sTJYSList6")) + { + dicTJYZListSL.Add("sTJYSList6", dicTJYZList["sTJYSList6"].Trim()); + } + if (dicTJYZList.ContainsKey("sTJYSListE")) + { + dicTJYZListSL.Add("sTJYSListE", dicTJYZList["sTJYSListE"].Trim()); + } + if (dicTJYZList.ContainsKey("sTJYSListF")) + { + dicTJYZListSL.Add("sTJYSListF", dicTJYZList["sTJYSListF"].Trim()); + } + if (dicTJYZList.ContainsKey("sTJYSListG")) + { + dicTJYZListSL.Add("sTJYSListG", dicTJYZList["sTJYSListG"].Trim()); + } + if (dicTJYZList.ContainsKey("sTJYSListH")) + { + dicTJYZListSL.Add("sTJYSListH", dicTJYZList["sTJYSListH"].Trim()); + } + if (dicTJYZList.ContainsKey("sTJYSListK")) + { + dicTJYZListSL.Add("sTJYSListK", dicTJYZList["sTJYSListK"].Trim()); + } + + //如果用到了和报价数量相关的因子,则调用CalcAfterBJDYZZChange计算 + if (dicTJYZListSL.Keys.Count > 0) + { + XLBJDUtils.AddXLXSBJDYZZ0(dberp, sBJDID, sBJFLID, sBJU003, dicTJYZListSL, false, sBJDXHList, startBJDXH - 1, bYBJ, bWG, bFWG, ref sErrMsg); + XLBJDCalcUtils.Check_UpdBJSLYZZ(dberp, SQL, sBJDID, sBJFLID, sBJU002, sBJU003); + CalcAfterBJDYZZChange(dberp, SQL, sBJDID, startBJDXH, sBJDXHList, bYBJ, bWG, bFWG, "", DateTime.MinValue, sBJU002, sBJU003, sWHRID, sWHR, ref sErrMsg); + } + else + { + XLBJDUtils.UpdateBJDMX(dberp, SQL, sBJFLID, sBJDID, iXSWS, sJCLLX, sLJJCLLX, sCPBJMRXSWS, sBJDXHList, startBJDXH, bYBJ, bWG, bFWG, ""); + XLBJDUtils.UpdateXLXSBJD(dberp, SQL, sBJDID, sJCLLX, sLJJCLLX, sZDXJJCLLX, sJYF, "", "", sYFWLID, sBJHYF); + } + } + catch (Exception ex) + { + sErrMsg = ex.Message; + throw new Exception(sErrMsg); + } + } + + /// + /// 计算铜重量,铝重量 + /// + /// + /// + /// + public static void CalBJDTLZL(TDatabase dberp, TSQL SQL, string sBJDID) + { + SQL.Clear(); + SQL.Add("merge into XLXSBJDMX tar "); + SQL.Add("using( select XLXSBJDMX_BJDID,XLXSBJDMX_XH,XLXSBJDMX_CLZL,XLXSCLQD_TZL,XLXSCLQD_LZL,XLXSCLQD_CLZL from XLXSBJDMX "); + SQL.Add(" left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSBJDMX_XLXHID and XLXSCLQD_XLGGID=XLXSBJDMX_XLGGID and XLXSCLQD_XLBZID=XLXSBJDMX_XLBZID and XLXSCLQD_DYDJID=XLXSBJDMX_DYDJID and XLXSCLQD_WPID='ZZZZ' "); + SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID and XLXSCLQD_CLZL>0 "); + SQL.Add(" )sor "); + SQL.Add(" on( tar.XLXSBJDMX_BJDID=sor.XLXSBJDMX_BJDID "); + SQL.Add(" and tar.XLXSBJDMX_XH=sor.XLXSBJDMX_XH ) "); + SQL.Add(" when matched then update set tar.XLXSBJDMX_TZL= round(sor.XLXSBJDMX_CLZL*(XLXSCLQD_TZL/XLXSCLQD_CLZL),8) ,tar.XLXSBJDMX_LZL= round(sor.XLXSBJDMX_CLZL*(XLXSCLQD_LZL/XLXSCLQD_CLZL),8) "); + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + } + + + /// + /// 计算更新XLXSBJDMX_BJDHQCLCB、XLXSBJDMX_CLCB、XLXSBJDMX_JGBJJ、XLXSBJDMX_JGBBJ + /// 注:XLXSBJDMX_JLDW必须提前赋好值 + /// + public static void CalcBJDHQCLCB_CLCB_JGBJJ_JGBBJ(TDatabase dberp, TSQL SQL, string sBJDID, int startBJDXH, bool bHSBZ, string sBJRQ, + string sJGBID,string sMXBH,string sJGBIDS,string sJGCIDS,string sBJLY,string sTJYS,string sJSBLFS, + string sBJFLID, string sBJDHQLY, string sTZCLHQ, string sJGBTJYSS, + string sBJU002, string sBJU003,string sBJU018, string sWHRID, string sWHR, CalcAction Act, ref string sErrMsg) + { + CalcBJDHQCLCB_CLCB_JGBJJ_JGBBJ(dberp, SQL, sBJDID, startBJDXH, bHSBZ, sBJRQ, + sJGBID, sMXBH, sJGBIDS, sJGCIDS, sBJLY, sTJYS, sJSBLFS, + sBJFLID, sBJDHQLY, sTZCLHQ, sJGBTJYSS, + sBJU002, sBJU003, sBJU018, sWHRID, sWHR, "", Act, "", ref sErrMsg); + } + + public static void CalcBJDHQCLCB_CLCB_JGBJJ_JGBBJ(TDatabase dberp, TSQL SQL, string sBJDID, int startBJDXH, bool bHSBZ, string sBJRQ, + string sJGBID, string sMXBH, string sJGBIDS, string sJGCIDS, string sBJLY, string sTJYS, string sJSBLFS, + string sBJFLID, string sBJDHQLY, string sTZCLHQ, string sJGBTJYSS, + string sBJU002, string sBJU003, string sBJU018, string sWHRID, string sWHR,string sBJDXHList, CalcAction Act, ref string sErrMsg) + { + CalcBJDHQCLCB_CLCB_JGBJJ_JGBBJ(dberp, SQL, sBJDID, startBJDXH, bHSBZ, sBJRQ, + sJGBID, sMXBH, sJGBIDS, sJGCIDS, sBJLY, sTJYS, sJSBLFS, + sBJFLID, sBJDHQLY, sTZCLHQ, sJGBTJYSS, + sBJU002, sBJU003, sBJU018, sWHRID, sWHR, sBJDXHList, Act, "", ref sErrMsg); + } + + /// + /// 计算更新XLXSBJDMX_BJDHQCLCB、XLXSBJDMX_CLCB、XLXSBJDMX_JGBJJ、XLXSBJDMX_JGBBJ + /// 注:XLXSBJDMX_JLDW必须提前赋好值 + /// + public static void CalcBJDHQCLCB_CLCB_JGBJJ_JGBBJ(TDatabase dberp, TSQL SQL, string sBJDID, int startBJDXH, bool bHSBZ, string sBJRQ, + string sJGBID, string sMXBH, string sJGBIDS, string sJGCIDS, string sBJLY, string sTJYS, string sJSBLFS, + string sBJFLID, string sBJDHQLY, string sTZCLHQ, string sJGBTJYSS, + string sBJU002, string sBJU003, string sBJU018, string sWHRID, string sWHR, string sBJDXHList, CalcAction Act, string sBLBJCP, ref string sErrMsg) + { + int VnewID = CMISproDataBase.NewID("DBERP", "V_XSBJJSJGB"); + Dictionary dicLenJLDWTD = XLBJDUtils.GetLenJLDWTD(); + string sJGBJJLY = XLBJDUtils.GetXLXSJGBXXByJGBID(sJGBID).XLXSJGB_JJLY; + string ABJDHQJSBJ = XLBJDUtils.GetBJFLXX(sBJFLID).XLXSBJFL_ABJDHQJSBJ; + string FJGBCPBJSBJ = XLBJDUtils.GetBJFLXX(sBJFLID).XLXSBJFL_FJGBCPBJSBJ; + try + { + if (Act == CalcAction.ReCalc)//重算明细时,需提前初始化一些字段 + { + SQL.Clear(); + SQL.Add("update XLXSBJDMX set XLXSBJDMX_TZCPBJ=0,XLXSBJDMX_CLCBJCLSDBZ='N' "); + SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID"); + if (!sBJDXHList.Trim().Equals("")) + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + SQL.Add(" and XLXSBJDMX_XH>=:pstartBJDXH"); + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y' and XLXSBJDMX_JGFBZ<>'Y'");//已打外购标记的不再参与价格计算 + if (sMXBH.Equals("JGE"))//重算明细时,JGE价格表,手输表价的记录不参与价格重算 + { + SQL.Add(" and isnull(XLXSBJDMX_BJLY,' ')<>'SSJGBBJ' "); + } + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pstartBJDXH").Value = startBJDXH; + dberp.ExecSQL(SQL); + } + + DateTime TimeStamp = MISproUtils.GetServerTime(); + //构建待计算临时表 + SQL.Clear(); + SQL.Add("insert into V_XSBJJSJGB(V_XSBJJSJGB_ID,V_XSBJJSJGB_TIMESTAMP,V_XSBJJSJGB_BJDID,V_XSBJJSJGB_BJDXH,V_XSBJJSJGB_XLXHID,V_XSBJJSJGB_XLGGID,V_XSBJJSJGB_XLBZID,V_XSBJJSJGB_DYDJID,V_XSBJJSJGB_WGCPBZ,V_XSBJJSJGB_JGFBZ,V_XSBJJSJGB_CLZL,V_XSBJJSJGB_XLXSCLQD,V_XSBJJSJGB_JGBJLDW,V_XSBJJSJGB_JGBMXCPBZ) "); + SQL.Add("select :pID,:pTime,XLXSBJDMX_BJDID,XLXSBJDMX_XH,XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID,XLXSBJDMX_XLBZID,XLXSBJDMX_DYDJID,'N','N',isnull(XLXSCLQD_CLZL,0.0),case when XLXSCLQD_XLXHID is null then 'N' else 'Y' end as HasCLQD,:pJGBJLDW "); + if (ABJDHQJSBJ == "Y" && sJGBJJLY == "A" && FJGBCPBJSBJ == "Y") + SQL.Add(" ,'N' as HasJGBMX "); + else + SQL.Add(" ,'Y' as HasJGBMX "); + SQL.Add(" from XLXSBJDMX"); + SQL.Add(" left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSBJDMX_XLXHID and XLXSCLQD_XLGGID=XLXSBJDMX_XLGGID and XLXSCLQD_XLBZID=XLXSBJDMX_XLBZID and XLXSCLQD_DYDJID=XLXSBJDMX_DYDJID and XLXSCLQD_WPID='ZZZZ'"); + SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID"); + if (!sBJDXHList.Trim().Equals("")) + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + SQL.Add(" and XLXSBJDMX_XH>=:pstartBJDXH"); + if (Act != CalcAction.HSBZChange && Act != CalcAction.Copy)//表价含税切换时/报价单复制时,外购产品需要重新获取价格 + { + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y' and XLXSBJDMX_JGFBZ<>'Y' ");//已打外购标记的不再参与价格计算 + } + if (Act != CalcAction.Insert)//非新增明细时,JGE价格表,报价来源为手输表价的记录不参与价格重算 + { + if (sMXBH.Equals("JGE") || Act == CalcAction.Copy) + { + SQL.Add(" and isnull(XLXSBJDMX_BJLY,' ')<>'SSJGBBJ' "); + } + } + if (!sBLBJCP.Equals("")) + { + if (sBLBJCP.Contains("1"))//表价调整 + SQL.Add(" and isnull(XLXSBJDMX_JGBBJTZ,' ') <> 'Y' "); + if (sBLBJCP.Contains("2"))//外购产品 + SQL.Add(" and isnull(XLXSBJDMX_WGCPBZ,' ') <> 'Y' "); + } + SQL.ParamByName("pID").Value = VnewID; + SQL.ParamByName("pJGBJLDW").Value = sBJU003; + SQL.ParamByName("pTime").Value = TimeStamp; + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pstartBJDXH").Value = startBJDXH; + dberp.ExecSQL(SQL); + + int iXSWS = string.IsNullOrEmpty(sBJU002) ? 5 : CMISproConvert.StrToInt(sBJU002); + if (iXSWS < 0) + iXSWS = 0; + else if (iXSWS > 8) + iXSWS = 8; + + bool bSameJLDW = false;//V_XSBJJSJGB_CLQDJLDW与V_XSBJJSJGB_JGBJLDW是否一致 + string sJGEJJYZList = ""; //记录JGE价格表加价因子id,用于对XLXSBJDJJYZ_YZZ??进行单位换算 + + SQL.Clear(); + SQL.Add("select XLXSJGB_JGBID from XLXSJGB "); + SQL.Add(" where XLXSJGB_MXBH='JGF' and XLXSJGB_YXQS<=:pBJRQ"); + SQL.Add(" and (XLXSJGB_YXQZ is null or XLXSJGB_YXQZ>=:pBJRQ)"); + SQL.Add(" order by XLXSJGB_JGBID"); + SQL.ParamByName("pBJRQ").Value = sBJRQ; + DataSet dsJGF = dberp.OpenDataSet(SQL); + if (dsJGF.Tables[0].Rows.Count > 0) + { + string sJGFID = dsJGF.Tables[0].Rows[0]["XLXSJGB_JGBID"].ToString().Trim(); + SQL.Clear(); + SQL.Add("merge into V_XSBJJSJGB tar "); + SQL.Add("using "); + SQL.Add("( "); + if (sBJU018.Equals("Y")) + { + SQL.Add(" select XLXSJGBMX_XLXHID,XLXSJGBMX_XLGGID,XLXSJGBMX_XLBZID,XLXSJGBMX_DYDJID,"); + SQL.Add(" case when XLXSJGBMX_JLDW in ('M','米','Km','千米') then XLXSJGBMX_HSJJM else XLXSJGBMX_HSJJ end as XLXSJGBMX_HSJJ,"); + SQL.Add(" case when XLXSJGBMX_JLDW in ('M','米','Km','千米') then XLXSJGBMX_WSJJM else XLXSJGBMX_WSJJ end as XLXSJGBMX_WSJJ,"); + SQL.Add(" case when XLXSJGBMX_JLDW in ('M','米','Km','千米') then XLXSJGBMX_HSBJM else XLXSJGBMX_HSBJ end as XLXSJGBMX_HSBJ,"); + SQL.Add(" case when XLXSJGBMX_JLDW in ('M','米','Km','千米') then XLXSJGBMX_WSBJM else XLXSJGBMX_WSBJ end as XLXSJGBMX_WSBJ,"); + SQL.Add(" case when XLXSJGBMX_JLDW in ('M','米','Km','千米') then 'M' else XLXSJGBMX_JLDW end as XLXSJGBMX_JLDW "); + } + else + { + SQL.Add(" select XLXSJGBMX_XLXHID,XLXSJGBMX_XLGGID,XLXSJGBMX_XLBZID,XLXSJGBMX_DYDJID,"); + SQL.Add(" XLXSJGBMX_HSJJ,XLXSJGBMX_WSJJ,XLXSJGBMX_HSBJ,XLXSJGBMX_WSBJ,XLXSJGBMX_JLDW"); + } + SQL.Add(" from XLXSJGBMX"); + SQL.Add(" where XLXSJGBMX_JGBID=:pJGFID"); + SQL.Add(") sor "); + SQL.Add("on (V_XSBJJSJGB_ID=:pID "); + SQL.Add(" and V_XSBJJSJGB_BJDID=:pBJDID"); + SQL.Add(" and V_XSBJJSJGB_XLXHID=XLXSJGBMX_XLXHID"); + SQL.Add(" and V_XSBJJSJGB_XLGGID=XLXSJGBMX_XLGGID"); + SQL.Add(" and V_XSBJJSJGB_XLBZID=XLXSJGBMX_XLBZID"); + SQL.Add(" and V_XSBJJSJGB_DYDJID=XLXSJGBMX_DYDJID"); + SQL.Add(" ) "); + if (bHSBZ) + { + SQL.Add("when matched then update set V_XSBJJSJGB_BJDHQCLCB=XLXSJGBMX_HSJJ,V_XSBJJSJGB_CLQDJLDW=XLXSJGBMX_JLDW, "); + SQL.Add(" V_XSBJJSJGB_CLCB=XLXSJGBMX_HSJJ,V_XSBJJSJGB_JGBJJ=XLXSJGBMX_HSJJ,V_XSBJJSJGB_JGBBJ=XLXSJGBMX_HSBJ,V_XSBJJSJGB_JGBJLDW=XLXSJGBMX_JLDW,"); + SQL.Add(" V_XSBJJSJGB_JGFBZ='Y' "); + } + else + { + SQL.Add("when matched then update set V_XSBJJSJGB_BJDHQCLCB=XLXSJGBMX_WSJJ,V_XSBJJSJGB_CLQDJLDW=XLXSJGBMX_JLDW, "); + SQL.Add(" V_XSBJJSJGB_CLCB=XLXSJGBMX_WSJJ,V_XSBJJSJGB_JGBJJ=XLXSJGBMX_WSJJ,V_XSBJJSJGB_JGBBJ=XLXSJGBMX_WSBJ,V_XSBJJSJGB_JGBJLDW=XLXSJGBMX_JLDW,"); + SQL.Add(" V_XSBJJSJGB_JGFBZ='Y'"); + } + SQL.ParamByName("pJGFID").Value = sJGFID; + SQL.ParamByName("pID").Value = VnewID; + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + bSameJLDW = true; + } + + SQL.Clear(); + SQL.Add(@"update V_XSBJJSJGB + SET V_XSBJJSJGB_WGCPBZ='Y' + WHERE V_XSBJJSJGB_ID=:pID and V_XSBJJSJGB_BJDID=:pBJDID + AND EXISTS(SELECT 1 FROM XLWGCP WHERE V_XSBJJSJGB_XLXHID=XLWGCP_XLXHID AND V_XSBJJSJGB_XLGGID=XLWGCP_XLGGID + AND V_XSBJJSJGB_XLBZID=XLWGCP_XLBZID AND V_XSBJJSJGB_DYDJID=XLWGCP_DYDJID) + "); + SQL.ParamByName("pID").Value = VnewID; + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + + if (!sMXBH.Equals("JGE"))//非表价实时计算价格表 + { + //报价分类设置了“报价日行情材料”,则价格表基价、表价都要重算 + if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select top 1 XLXSBJFLBJRHQCL_BJCLID from XLXSBJFLBJRHQCL where XLXSBJFLBJRHQCL_BJFLID='{0}'", sBJFLID))) + { + SQL.Clear(); + SQL.Add("select V_XSBJJSJGB_BJDXH,V_XSBJJSJGB_XLXHID,V_XSBJJSJGB_XLGGID,V_XSBJJSJGB_XLBZID,V_XSBJJSJGB_DYDJID,XLXSJGBMX_JLDW"); + SQL.Add(" from V_XSBJJSJGB"); + SQL.Add(" left join XLXSJGBMX on XLXSJGBMX_JGBID=:pJGBID and XLXSJGBMX_XLXHID=V_XSBJJSJGB_XLXHID and XLXSJGBMX_XLGGID=V_XSBJJSJGB_XLGGID and XLXSJGBMX_XLBZID=V_XSBJJSJGB_XLBZID and XLXSJGBMX_DYDJID=V_XSBJJSJGB_DYDJID"); + SQL.Add(" where V_XSBJJSJGB_ID=:pID"); + SQL.Add(" and V_XSBJJSJGB_BJDID=:pBJDID"); + SQL.Add(" and V_XSBJJSJGB_WGCPBZ<>'Y' and V_XSBJJSJGB_JGFBZ<>'Y' "); + SQL.Add(" order by V_XSBJJSJGB_BJDXH"); + SQL.ParamByName("pJGBID").Value = sJGBID; + SQL.ParamByName("pID").Value = VnewID; + SQL.ParamByName("pBJDID").Value = sBJDID; + DataSet dsV = dberp.OpenDataSet(SQL); + for (int i = 0; i < dsV.Tables[0].Rows.Count; i++) + { + string sBJDXH = dsV.Tables[0].Rows[i]["V_XSBJJSJGB_BJDXH"].ToString().Trim(); + string sXLXHID = dsV.Tables[0].Rows[i]["V_XSBJJSJGB_XLXHID"].ToString().Trim(); + string sXLGGID = dsV.Tables[0].Rows[i]["V_XSBJJSJGB_XLGGID"].ToString().Trim(); + string sXLBZID = dsV.Tables[0].Rows[i]["V_XSBJJSJGB_XLBZID"].ToString().Trim(); + string sXLDYDJ = dsV.Tables[0].Rows[i]["V_XSBJJSJGB_DYDJID"].ToString().Trim(); + string sJGBJLDW = dsV.Tables[0].Rows[i]["XLXSJGBMX_JLDW"].ToString().Trim(); + if (sJGBJLDW.Trim().Equals("")) + sJGBJLDW = sBJU003; + string sJGBJSDW = XLBJDUtils.GetsJSDW(sJGBJLDW, sBJU003); + + string sCPJJ = "";//表价 + string sJJ = "";//基价 + string sCLCB = "";//价格表行情料价 + string sBJDHQCLCB = "";//报价单行情料价 + bool JgIsZero = false;//是否存在有材料用量、无材料价格的情况 + if (sBJU018.Equals("Y") && XLBJDUtils.sJQCDJLDWList.Contains(sJGBJLDW.ToUpper()))//若BJU018参数值为Y,且为价格表单位为长度单位,则重新计算成本时,成本的小数位数为XLBJDUtils.JQJSXSWS + { + XLBJDUtils.GetFromJGB_BJRHQ(sXLXHID, sXLGGID, sXLBZID, sXLDYDJ, sJGBID, sJGCIDS, sBJRQ, bHSBZ, XLBJDUtils.JQJSXSWS.ToString(), + sBJFLID, sJGBJLDW, sBJU003, ref sCPJJ, ref sJJ, ref sCLCB, ref JgIsZero); + } + else + { + XLBJDUtils.GetFromJGB_BJRHQ(sXLXHID, sXLGGID, sXLBZID, sXLDYDJ, sJGBID, sJGCIDS, sBJRQ, bHSBZ, sBJU002, + sBJFLID, sJGBJLDW, sBJU003, ref sCPJJ, ref sJJ, ref sCLCB, ref JgIsZero); + } + + if (sBJDHQLY.Trim().Equals("1")) + { + if (JgIsZero)//若存在有材料用量、无材料价格的情况,则算出的报价单行情料价改为负数显示 + sBJDHQCLCB = Convert.ToString(CMISproConvert.StrToFloat(sCLCB) * -1); + else + sBJDHQCLCB = sCLCB; + } + else + sBJDHQCLCB = "0.0"; + + SQL.Clear(); + SQL.Add("update V_XSBJJSJGB set V_XSBJJSJGB_CLCB=:pCLCB,V_XSBJJSJGB_JGBJJ=:pJGBJJ,V_XSBJJSJGB_JGBBJ=:pJGBBJ,"); + SQL.Add(" V_XSBJJSJGB_JGBJLDW=:pJGBJLDW,"); + if (sBJDHQLY.Equals("1"))//1|价格表行情 + SQL.Add(" V_XSBJJSJGB_BJDHQCLCB=:pBJDHQCLCB,V_XSBJJSJGB_CLQDJLDW=:pJGBJLDW"); + else//2|报价日行情,需要单独算 + SQL.Add(" V_XSBJJSJGB_BJDHQCLCB=:pBJDHQCLCB,V_XSBJJSJGB_CLQDJLDW=' '"); + SQL.Add(" where V_XSBJJSJGB_ID=:pID"); + SQL.Add(" and V_XSBJJSJGB_BJDID=:pBJDID"); + SQL.Add(" and V_XSBJJSJGB_BJDXH=:pBJDXH"); + SQL.ParamByName("pCLCB").Value = sCLCB; + SQL.ParamByName("pJGBJJ").Value = sJJ; + SQL.ParamByName("pJGBBJ").Value = sCPJJ; + SQL.ParamByName("pJGBJLDW").Value = sJGBJLDW; + SQL.ParamByName("pBJDHQCLCB").Value = sBJDHQCLCB; + SQL.ParamByName("pID").Value = VnewID; + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pBJDXH").Value = sBJDXH; + dberp.ExecSQL(SQL); + + if (sBJDHQLY.Equals("1"))//1|价格表行情 + bSameJLDW = true; + } + } + else + { + if (sTJYS.Equals("0") || sTJYS.Equals("1")) + { + //出厂价价格表扩充产品料价公式 + string sCPLJGS = XLBJDUtils.GetCPLJGS(); + + //初始化V_XSBJJSJGB_SYJGBID、V_XSBJJSJGB_SYJGBXH、V_XSBJJSJGB_JGBYSJDZ + SQL.Clear(); + SQL.Add("merge into V_XSBJJSJGB tar "); + SQL.Add("using "); + SQL.Add("("); + SQL.Add(" select XLXSJGBMX_JGBID as SYJGBID,case when XLXSJGBMX_SYXH=0 then XLXSJGBMX_XH else XLXSJGBMX_SYXH end as SYJGBXH,case when XLXSJGBMX_YSJDZ=0 then 1.0 else XLXSJGBMX_YSJDZ end as YSJDZ,case when XLXSJGBMX_CLCBYSJDZ=0 then 1.0 else XLXSJGBMX_CLCBYSJDZ end as CLCBYSJDZ,"); + SQL.Add(" XLXSJGBMX_XLXHID as XLXHID,XLXSJGBMX_XLGGID as XLGGID,XLXSJGBMX_XLBZID as XLBZID,XLXSJGBMX_DYDJID as DYDJID"); + SQL.Add(" from XLXSJGBMX"); + SQL.Add(" where 1=1"); + if (sBJLY.Equals("C"))//C|基价价格表表价 + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGCIDS)); + else//D|直接导入、J|按调价因素计算 + { + SQL.Add(" and XLXSJGBMX_JGBID=:pJGBID"); + SQL.ParamByName("pJGBID").Value = sJGBID; + + } + SQL.Add(" and exists(select 1 from V_XSBJJSJGB where V_XSBJJSJGB_ID=:pID and V_XSBJJSJGB_BJDID=:pBJDID"); + SQL.Add(" and V_XSBJJSJGB_XLXHID=XLXSJGBMX_XLXHID and V_XSBJJSJGB_XLGGID=XLXSJGBMX_XLGGID"); + SQL.Add(" and V_XSBJJSJGB_XLBZID=XLXSJGBMX_XLBZID and V_XSBJJSJGB_DYDJID=XLXSJGBMX_DYDJID)"); + SQL.Add(") sor "); + SQL.Add("on (V_XSBJJSJGB_ID=:pID and V_XSBJJSJGB_BJDID=:pBJDID"); + SQL.Add(" and V_XSBJJSJGB_XLXHID=XLXHID and V_XSBJJSJGB_XLGGID=XLGGID"); + SQL.Add(" and V_XSBJJSJGB_XLBZID=XLBZID and V_XSBJJSJGB_DYDJID=DYDJID"); + SQL.Add(") "); + SQL.Add("when matched then update set V_XSBJJSJGB_SYJGBID=SYJGBID,V_XSBJJSJGB_SYJGBXH=SYJGBXH,V_XSBJJSJGB_JGBYSJDZ=YSJDZ,V_XSBJJSJGB_JGBMXCPBZ = 'Y',V_XSBJJSJGB_CLCBYSJDZ=CLCBYSJDZ "); + SQL.ParamByName("pID").Value = VnewID; + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + + + SQL.Clear(); + SQL.Add("merge into V_XSBJJSJGB"); + SQL.Add(" using"); + SQL.Add(" ("); + SQL.Add(" select XLXSJGBMX_JGBID as SYJGBID,XLXSJGBMX_XH as JGBXH,XLXSJGBMX_XLXHID as XLXHID,XLXSJGBMX_XLGGID as XLGGID,XLXSJGBMX_XLBZID as XLBZID,XLXSJGBMX_DYDJID as DYDJID,"); + if (sBJU018.Equals("Y")) + { + SQL.Add(" case when XLXSJGBMX_JLDW in ('M','米','Km','千米') then 'M' else XLXSJGBMX_JLDW end as JLDW, "); + if (bHSBZ) + { + SQL.Add(" case when XLXSJGBMX_SYXH=0.0 then (case when XLXSJGBMX_JLDW in ('M','米','Km','千米') then XLXSJGBMX_HSJJM else XLXSJGBMX_HSJJ end) else 0.0 end as CLCB,"); + SQL.Add(" case when XLXSJGBMX_JLDW in ('M','米','Km','千米') then XLXSJGBMX_HSJJM else XLXSJGBMX_HSJJ end as JGBJJ,"); + SQL.Add(" case when XLXSJGBMX_JLDW in ('M','米','Km','千米') then XLXSJGBMX_HSBJM else XLXSJGBMX_HSBJ end as JGBBJ"); + } + else + { + SQL.Add(" case when XLXSJGBMX_SYXH=0.0 then (case when XLXSJGBMX_JLDW in ('M','米','Km','千米') then XLXSJGBMX_WSJJM else XLXSJGBMX_WSJJ end) else 0.0 end as CLCB,"); + SQL.Add(" case when XLXSJGBMX_JLDW in ('M','米','Km','千米') then XLXSJGBMX_WSJJM else XLXSJGBMX_WSJJ end as JGBJJ,"); + SQL.Add(" case when XLXSJGBMX_JLDW in ('M','米','Km','千米') then XLXSJGBMX_WSBJM else XLXSJGBMX_WSBJ end as JGBBJ"); + } + } + else + { + SQL.Add(" XLXSJGBMX_JLDW as JLDW, "); + if (bHSBZ) + SQL.Add(" case when XLXSJGBMX_SYXH=0.0 then XLXSJGBMX_HSJJ else 0.0 end as CLCB,XLXSJGBMX_HSJJ as JGBJJ,XLXSJGBMX_HSBJ as JGBBJ"); + else + SQL.Add(" case when XLXSJGBMX_SYXH=0.0 then XLXSJGBMX_WSJJ else 0.0 end as CLCB,XLXSJGBMX_WSJJ as JGBJJ,XLXSJGBMX_WSBJ as JGBBJ"); + } + SQL.Add(" from XLXSJGBMX"); + SQL.Add(" where 1=1"); + if (sBJLY.Equals("C"))//C|基价价格表表价 + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGCIDS)); + else//D|直接导入、J|按调价因素计算 + { + SQL.Add(" and XLXSJGBMX_JGBID=:pJGBID"); + SQL.ParamByName("pJGBID").Value = sJGBID; + } + SQL.Add(" ) JGB on (V_XSBJJSJGB_ID=:pID "); + SQL.Add(" and V_XSBJJSJGB_BJDID=:pBJDID"); + SQL.Add(" and V_XSBJJSJGB_SYJGBID=SYJGBID"); + SQL.Add(" and V_XSBJJSJGB_SYJGBXH=JGBXH"); + + + SQL.Add(" and V_XSBJJSJGB_WGCPBZ<>'Y' and V_XSBJJSJGB_JGFBZ<>'Y' "); + SQL.Add(" )"); + SQL.Add(" when matched then"); + if (sCPLJGS == "1") + { + SQL.Add(" update set V_XSBJJSJGB_CLCB=CLCB,"); + + if (sBJDHQLY.Equals("1"))//1|价格表行情 + SQL.Add(" V_XSBJJSJGB_BJDHQCLCB=CLCB,V_XSBJJSJGB_CLQDJLDW=JLDW"); + else//2|报价日行情,需要单独算 + SQL.Add(" V_XSBJJSJGB_BJDHQCLCB=0.0,V_XSBJJSJGB_CLQDJLDW=' '"); + } + else if (sCPLJGS == "2") + { + SQL.Add(" update set V_XSBJJSJGB_CLCB=CLCB*V_XSBJJSJGB_JGBYSJDZ,"); + if (sBJDHQLY.Equals("1"))//1|价格表行情 + SQL.Add(" V_XSBJJSJGB_BJDHQCLCB=CLCB*V_XSBJJSJGB_JGBYSJDZ,V_XSBJJSJGB_CLQDJLDW=JLDW"); + else//2|报价日行情,需要单独算 + SQL.Add(" V_XSBJJSJGB_BJDHQCLCB=0.0,V_XSBJJSJGB_CLQDJLDW=' '"); + } + else if (sCPLJGS == "3") + { + SQL.Add(" update set V_XSBJJSJGB_CLCB=CLCB,"); + SQL.Add(" V_XSBJJSJGB_BJDHQCLCB=0.0,V_XSBJJSJGB_CLQDJLDW=' ' "); + } + + SQL.ParamByName("pID").Value = VnewID; + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + + SQL.Clear(); + SQL.Add("merge into V_XSBJJSJGB"); + SQL.Add(" using"); + SQL.Add(" ("); + SQL.Add(" select XLXSJGBMX_XLXHID as XLXHID,XLXSJGBMX_XLGGID as XLGGID,XLXSJGBMX_XLBZID as XLBZID,XLXSJGBMX_DYDJID as DYDJID,"); + if (sBJU018.Equals("Y")) + { + SQL.Add(" case when XLXSJGBMX_JLDW in ('M','米','Km','千米') then 'M' else XLXSJGBMX_JLDW end as JLDW, "); + if (bHSBZ) + { + SQL.Add(" case when XLXSJGBMX_JLDW in ('M','米','Km','千米') then XLXSJGBMX_HSJJM else XLXSJGBMX_HSJJ end as JGBJJ,"); + SQL.Add(" case when XLXSJGBMX_JLDW in ('M','米','Km','千米') then XLXSJGBMX_HSBJM else XLXSJGBMX_HSBJ end as JGBBJ"); + } + else + { + SQL.Add(" case when XLXSJGBMX_JLDW in ('M','米','Km','千米') then XLXSJGBMX_WSJJM else XLXSJGBMX_WSJJ end as JGBJJ,"); + SQL.Add(" case when XLXSJGBMX_JLDW in ('M','米','Km','千米') then XLXSJGBMX_WSBJM else XLXSJGBMX_WSBJ end as JGBBJ"); + } + } + else + { + SQL.Add(" XLXSJGBMX_JLDW as JLDW, "); + if (bHSBZ) + SQL.Add(" XLXSJGBMX_HSJJ as JGBJJ,XLXSJGBMX_HSBJ as JGBBJ"); + else + SQL.Add(" XLXSJGBMX_WSJJ as JGBJJ,XLXSJGBMX_WSBJ as JGBBJ"); + } + SQL.Add(" from XLXSJGBMX"); + SQL.Add(" where 1=1"); + if (sBJLY.Equals("C"))//C|基价价格表表价 + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGCIDS)); + else//D|直接导入、J|按调价因素计算 + { + SQL.Add(" and XLXSJGBMX_JGBID=:pJGBID"); + SQL.ParamByName("pJGBID").Value = sJGBID; + } + SQL.Add(" ) JGB on (V_XSBJJSJGB_ID=:pID "); + SQL.Add(" and V_XSBJJSJGB_BJDID=:pBJDID"); + SQL.Add(" and V_XSBJJSJGB_XLXHID=XLXHID"); + SQL.Add(" and V_XSBJJSJGB_XLGGID=XLGGID"); + SQL.Add(" and V_XSBJJSJGB_XLBZID=XLBZID"); + SQL.Add(" and V_XSBJJSJGB_DYDJID=DYDJID"); + SQL.Add(" and V_XSBJJSJGB_WGCPBZ<>'Y' and V_XSBJJSJGB_JGFBZ<>'Y'"); + SQL.Add(" )"); + SQL.Add(" when matched then"); + SQL.Add(" update set V_XSBJJSJGB_JGBJJ=JGBJJ,V_XSBJJSJGB_JGBBJ=JGBBJ,"); + SQL.Add(" V_XSBJJSJGB_JGBJLDW=JLDW "); + SQL.ParamByName("pID").Value = VnewID; + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + if (sBJDHQLY.Equals("1"))//1|价格表行情 + bSameJLDW = true; + + } + else if (sTJYS.Equals("2")) + { + SQL.Clear(); + SQL.Add("merge into V_XSBJJSJGB"); + SQL.Add(" using"); + SQL.Add(" ("); + SQL.Add(" select jgb1.XLXSJGBMX_XLXHID as XLXHID,jgb1.XLXSJGBMX_XLGGID as XLGGID,jgb1.XLXSJGBMX_XLBZID as XLBZID,jgb1.XLXSJGBMX_DYDJID as DYDJID,"); + if (sBJU018.Equals("Y")) + { + SQL.Add(" case when jgb1.XLXSJGBMX_JLDW in ('M','米','Km','千米') then 'M' else jgb1.XLXSJGBMX_JLDW end as JLDW, "); + if (bHSBZ) + { + SQL.Add(" case when jgb2.XLXSJGBMX_JLDW in ('M','米','Km','千米') then isnull(jgb2.XLXSJGBMX_HSJJM,0.0) else isnull(jgb2.XLXSJGBMX_HSJJ,0.0) end as CLCB,"); + SQL.Add(" case when jgb1.XLXSJGBMX_JLDW in ('M','米','Km','千米') then jgb1.XLXSJGBMX_HSJJM else jgb1.XLXSJGBMX_HSJJ end as JGBJJ,"); + SQL.Add(" case when jgb1.XLXSJGBMX_JLDW in ('M','米','Km','千米') then jgb1.XLXSJGBMX_HSBJM else jgb1.XLXSJGBMX_HSBJ end as JGBBJ"); + } + else + { + SQL.Add(" case when jgb2.XLXSJGBMX_JLDW in ('M','米','Km','千米') then isnull(jgb2.XLXSJGBMX_WSJJM,0.0) else isnull(jgb2.XLXSJGBMX_WSJJ,0.0) end as CLCB,"); + SQL.Add(" case when jgb1.XLXSJGBMX_JLDW in ('M','米','Km','千米') then jgb1.XLXSJGBMX_WSJJM else jgb1.XLXSJGBMX_WSJJ end as JGBJJ,"); + SQL.Add(" case when jgb1.XLXSJGBMX_JLDW in ('M','米','Km','千米') then jgb1.XLXSJGBMX_WSBJM else jgb1.XLXSJGBMX_WSBJ end as JGBBJ"); + } + } + else + { + SQL.Add(" jgb1.XLXSJGBMX_JLDW as JLDW,"); + if (bHSBZ) + SQL.Add(" isnull(jgb2.XLXSJGBMX_HSJJ,0.0) as CLCB,jgb1.XLXSJGBMX_HSJJ as JGBJJ,jgb1.XLXSJGBMX_HSBJ as JGBBJ"); + else + SQL.Add(" isnull(jgb2.XLXSJGBMX_WSJJ,0.0) as CLCB,jgb1.XLXSJGBMX_WSJJ as JGBJJ,jgb1.XLXSJGBMX_WSBJ as JGBBJ"); + } + SQL.Add(" from XLXSJGBMX jgb1"); + SQL.Add(" left join XLXSJGBMX jgb2 on " + CMISproDataBase.GetWhereEqual("jgb2.XLXSJGBMX_JGBID", sJGBIDS)); + SQL.Add(" and jgb2.XLXSJGBMX_XLXHID=jgb1.XLXSJGBMX_XLXHID and jgb2.XLXSJGBMX_XLGGID=jgb1.XLXSJGBMX_XLGGID "); + SQL.Add(" and jgb2.XLXSJGBMX_XLBZID=jgb1.XLXSJGBMX_XLBZID and jgb2.XLXSJGBMX_DYDJID=jgb1.XLXSJGBMX_DYDJID "); + SQL.Add(" where jgb1.XLXSJGBMX_JGBID=:pJGBID"); + SQL.Add(" ) JGB on (V_XSBJJSJGB_ID=:pID "); + SQL.Add(" and V_XSBJJSJGB_BJDID=:pBJDID "); + SQL.Add(" and V_XSBJJSJGB_XLXHID=XLXHID"); + SQL.Add(" and V_XSBJJSJGB_XLGGID=XLGGID"); + SQL.Add(" and V_XSBJJSJGB_XLBZID=XLBZID"); + SQL.Add(" and V_XSBJJSJGB_DYDJID=DYDJID"); + SQL.Add(" and V_XSBJJSJGB_WGCPBZ<>'Y' and V_XSBJJSJGB_JGFBZ<>'Y' "); + SQL.Add(" )"); + SQL.Add(" when matched then"); + SQL.Add(" update set V_XSBJJSJGB_CLCB=CLCB,V_XSBJJSJGB_JGBJJ=JGBJJ,V_XSBJJSJGB_JGBBJ=JGBBJ,"); + SQL.Add(" V_XSBJJSJGB_JGBJLDW=JLDW,"); + if (sBJDHQLY.Equals("1"))//1|价格表行情 + SQL.Add(" V_XSBJJSJGB_BJDHQCLCB=CLCB,V_XSBJJSJGB_CLQDJLDW=JLDW"); + else//2|报价日行情,需要单独算 + SQL.Add(" V_XSBJJSJGB_BJDHQCLCB=0.0,V_XSBJJSJGB_CLQDJLDW=' '"); + SQL.ParamByName("pID").Value = VnewID; + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + + if (sBJDHQLY.Equals("1"))//1|价格表行情 + bSameJLDW = true; + + } + else if (sTJYS.Equals("3")) + { + //初始化V_XSBJJSJGB_SYJGBID、V_XSBJJSJGB_SYJGBXH、V_XSBJJSJGB_JGBYSJDZ + //V_XSBJJSJGB_CLCB先赋值为JGBID3的基价,其值包含了JGBID1的表价+价格表行情材料价价差 + SQL.Clear(); + SQL.Add("merge into V_XSBJJSJGB tar "); + SQL.Add("using "); + SQL.Add("("); + SQL.Add(" select case when XLXSJGBMX_SYXH=0 then XLXSJGBMX_XH else XLXSJGBMX_SYXH end as SYJGBXH,case when XLXSJGBMX_YSJDZ=0 then 1.0 else XLXSJGBMX_YSJDZ end as YSJDZ,case when XLXSJGBMX_CLCBYSJDZ=0 then 1.0 else XLXSJGBMX_CLCBYSJDZ end as CLCBYSJDZ,"); + if (bHSBZ) + SQL.Add(" XLXSJGBMX_HSJJ as JGBJJ,"); + else + SQL.Add(" XLXSJGBMX_WSJJ as JGBJJ,"); + SQL.Add(" XLXSJGBMX_XLXHID as XLXHID,XLXSJGBMX_XLGGID as XLGGID,XLXSJGBMX_XLBZID as XLBZID,XLXSJGBMX_DYDJID as DYDJID"); + SQL.Add(" from XLXSJGBMX"); + SQL.Add(" where XLXSJGBMX_JGBID=:pJGBID3"); + SQL.Add(" and exists(select 1 from V_XSBJJSJGB where V_XSBJJSJGB_ID=:pID and V_XSBJJSJGB_BJDID=:pBJDID"); + SQL.Add(" and V_XSBJJSJGB_XLXHID=XLXSJGBMX_XLXHID and V_XSBJJSJGB_XLGGID=XLXSJGBMX_XLGGID"); + SQL.Add(" and V_XSBJJSJGB_XLBZID=XLXSJGBMX_XLBZID and V_XSBJJSJGB_DYDJID=XLXSJGBMX_DYDJID)"); + SQL.Add(") sor "); + SQL.Add("on (V_XSBJJSJGB_ID=:pID and V_XSBJJSJGB_BJDID=:pBJDID"); + SQL.Add(" and V_XSBJJSJGB_XLXHID=XLXHID and V_XSBJJSJGB_XLGGID=XLGGID"); + SQL.Add(" and V_XSBJJSJGB_XLBZID=XLBZID and V_XSBJJSJGB_DYDJID=DYDJID"); + SQL.Add(") "); + SQL.Add("when matched then update set V_XSBJJSJGB_SYJGBID=:pJGBID1,V_XSBJJSJGB_SYJGBXH=SYJGBXH,V_XSBJJSJGB_JGBYSJDZ=YSJDZ,"); + SQL.Add(" V_XSBJJSJGB_CLCB=JGBJJ,V_XSBJJSJGB_CLCBYSJDZ=CLCBYSJDZ"); + SQL.ParamByName("pID").Value = VnewID; + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pJGBID3").Value = sJGBID; + SQL.ParamByName("pJGBID1").Value = sJGBIDS; + dberp.ExecSQL(SQL); + + + + SQL.Clear(); + SQL.Add(@" merge into V_XSBJJSJGB tar + using ( + select V_XSBJJSJGB_ID as ID,V_XSBJJSJGB_BJDID as BJDID,V_XSBJJSJGB_BJDXH as BJDXH + ,case when (XLXSJGBMX_JGBID is null or XLXSJGBMX_XH =0 or V_XSBJJSJGB_XLXSCLQD='Y' ) then V_XSBJJSJGB_XLXHID else XLXSJGBMX_XLXHID end as QDXLXHID + ,case when (XLXSJGBMX_JGBID is null or XLXSJGBMX_XH =0 or V_XSBJJSJGB_XLXSCLQD='Y' ) then V_XSBJJSJGB_XLGGID else XLXSJGBMX_XLGGID end as QDXLGGID + ,case when (XLXSJGBMX_JGBID is null or XLXSJGBMX_XH =0 or V_XSBJJSJGB_XLXSCLQD='Y' ) then V_XSBJJSJGB_XLBZID else XLXSJGBMX_XLBZID end as QDXLBZID + ,case when (XLXSJGBMX_JGBID is null or XLXSJGBMX_XH =0 or V_XSBJJSJGB_XLXSCLQD='Y' ) then V_XSBJJSJGB_DYDJID else XLXSJGBMX_DYDJID end as QDDYDJID + from V_XSBJJSJGB + left join XLXSJGBMX on V_XSBJJSJGB_SYJGBID=XLXSJGBMX_JGBID and V_XSBJJSJGB_SYJGBXH=XLXSJGBMX_XH + where V_XSBJJSJGB_ID=:pID and V_XSBJJSJGB_BJDID=:pBJDID and V_XSBJJSJGB_WGCPBZ<>'Y' and V_XSBJJSJGB_JGFBZ<>'Y' + + ) sor + on( + tar.V_XSBJJSJGB_ID=:pID + and tar.V_XSBJJSJGB_BJDID=:pBJDID + and tar.V_XSBJJSJGB_WGCPBZ<>'Y' + and tar.V_XSBJJSJGB_JGFBZ<>'Y' + and tar.V_XSBJJSJGB_ID =sor.ID + and tar.V_XSBJJSJGB_BJDID=sor.BJDID + and tar.V_XSBJJSJGB_BJDXH=sor.BJDXH + ) + when matched then update set tar.V_XSBJJSJGB_QDXLXHID =sor.QDXLXHID, + tar.V_XSBJJSJGB_QDXLGGID =sor.QDXLGGID, + tar.V_XSBJJSJGB_QDXLBZID =sor.QDXLBZID, + tar.V_XSBJJSJGB_QDDYDJID =sor.QDDYDJID "); + SQL.ParamByName("pID").Value = VnewID; + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + //根据清单四要素更新CLZL + + SQL.Clear(); + SQL.Add(@" merge into V_XSBJJSJGB tar + using XLXSCLQD sor + on( + tar.V_XSBJJSJGB_ID=:pID + and tar.V_XSBJJSJGB_BJDID=:pBJDID + and tar.V_XSBJJSJGB_QDXLXHID =sor.XLXSCLQD_XLXHID + and tar.V_XSBJJSJGB_QDXLGGID =sor.XLXSCLQD_XLGGID + and tar.V_XSBJJSJGB_QDXLBZID =sor.XLXSCLQD_XLBZID + and tar.V_XSBJJSJGB_QDDYDJID =sor.XLXSCLQD_DYDJID + and sor.XLXSCLQD_WPID='ZZZZ' + ) + when matched then update set tar.V_XSBJJSJGB_CLZL =sor.XLXSCLQD_CLZL "); + SQL.ParamByName("pID").Value = VnewID; + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + //初始化V_XSBJJSJGB_CLCBC + SQL.Clear(); + SQL.Add("select distinct XLXSJGBCLQD_JGCZBID,XLXSJGBCLQD_JGCZBBBID,XLXSJGBCLQD_JJFPSJ");//,XLJGCZBML_CZBLX + SQL.Add(" from XLXSJGBCLQD"); + SQL.Add(" where XLXSJGBCLQD_JGBID=:pJGBID1"); + SQL.Add(" and exists(select 1 from V_XSBJJSJGB where V_XSBJJSJGB_ID=:pID and V_XSBJJSJGB_BJDID=:pBJDID"); + SQL.Add(" and V_XSBJJSJGB_SYJGBID=:pJGBID1 and V_XSBJJSJGB_SYJGBXH=XLXSJGBCLQD_XH)"); + SQL.Add(" order by XLXSJGBCLQD_JGCZBID,XLXSJGBCLQD_JGCZBBBID,XLXSJGBCLQD_JJFPSJ"); + SQL.ParamByName("pID").Value = VnewID; + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pJGBID1").Value = sJGBIDS; + DataSet dsJGCZB = dberp.OpenDataSet(SQL); + for (int j = 0; j < dsJGCZB.Tables[0].Rows.Count; j++) + { + string tmpJGCZBID = dsJGCZB.Tables[0].Rows[j]["XLXSJGBCLQD_JGCZBID"].ToString().Trim(); + string tmpJGCZBBBID = dsJGCZB.Tables[0].Rows[j]["XLXSJGBCLQD_JGCZBBBID"].ToString().Trim(); + string tmpJJFPSJ = dsJGCZB.Tables[0].Rows[j]["XLXSJGBCLQD_JJFPSJ"].ToString().Trim(); + string sCLQDL = ""; + //string sBJHQ = ""; + + SQL.Clear(); + SQL.Add("select XLXSJGBYLLM_CLQDL,isnull(XLXSBJCL_BJHQ,'1') as XLXSBJCL_BJHQ "); + SQL.Add(" from XLXSJGBYLLM"); + SQL.Add(" left join XLXSBJCL on XLXSBJCL_BJCLID=XLXSJGBYLLM_BJCLID"); + SQL.Add(" where XLXSJGBYLLM_JGBID=:pJGBID1"); + SQL.Add(" and XLXSJGBYLLM_JJFPSJ=:pJJFPSJ"); + SQL.Add(" and XLXSJGBYLLM_JGCZBID=:pJGCZBID"); + SQL.Add(" and XLXSJGBYLLM_JGCZBBBID=:pJGCZBBBID"); + SQL.Add(" order by XLXSJGBYLLM_CLQDL"); + SQL.ParamByName("pJGBID1").Value = sJGBIDS; + SQL.ParamByName("pJJFPSJ").Value = tmpJJFPSJ; + SQL.ParamByName("pJGCZBID").Value = tmpJGCZBID; + SQL.ParamByName("pJGCZBBBID").Value = tmpJGCZBBBID; + DataSet dsCLQDL = dberp.OpenDataSet(SQL); + + SQL.Clear(); + SQL.Add("merge into V_XSBJJSJGB tar "); + SQL.Add("using "); + SQL.Add("("); + SQL.Add(" select XLXSJGBCLQD_XH as JGBXH,"); + SQL.Add(" ("); + if (sJSBLFS.Equals("C1"))//C1|进一法(材料价各分项进一) + { + for (int i = 0; i < dsCLQDL.Tables[0].Rows.Count; i++) + { + sCLQDL = dsCLQDL.Tables[0].Rows[i]["XLXSJGBYLLM_CLQDL"].ToString().Trim(); + //sBJHQ = dsCLQDL.Tables[0].Rows[i]["XLXSBJCL_BJHQ"].ToString().Trim(); + SQL.Add(string.Format("CEILING(RoundFix(XLXSJGBCLQD_ZL{0}*CLJG{0}*{1},8))/{1}+", sCLQDL.Replace("第", "").Replace("列", ""), Math.Pow(10.0, iXSWS))); + } + } + else + { + for (int i = 0; i < dsCLQDL.Tables[0].Rows.Count; i++) + { + sCLQDL = dsCLQDL.Tables[0].Rows[i]["XLXSJGBYLLM_CLQDL"].ToString().Trim(); + //sBJHQ = dsCLQDL.Tables[0].Rows[i]["XLXSBJCL_BJHQ"].ToString().Trim(); + SQL.Add(string.Format("XLXSJGBCLQD_ZL{0}*CLJG{0}+", sCLQDL.Replace("第", "").Replace("列", ""))); + } + } + SQL.Add("0.0) as WSCLCBC,"); + SQL.Add(" ("); + if (sJSBLFS.Equals("C1"))//C1|进一法(材料价各分项进一) + { + for (int i = 0; i < dsCLQDL.Tables[0].Rows.Count; i++) + { + sCLQDL = dsCLQDL.Tables[0].Rows[i]["XLXSJGBYLLM_CLQDL"].ToString().Trim(); + //sBJHQ = dsCLQDL.Tables[0].Rows[i]["XLXSBJCL_BJHQ"].ToString().Trim(); + SQL.Add(string.Format("CEILING(RoundFix(XLXSJGBCLQD_ZL{0}*HSJG{0}*{1},8))/{1}+", sCLQDL.Replace("第", "").Replace("列", ""), Math.Pow(10.0, iXSWS))); + } + } + else + { + for (int i = 0; i < dsCLQDL.Tables[0].Rows.Count; i++) + { + sCLQDL = dsCLQDL.Tables[0].Rows[i]["XLXSJGBYLLM_CLQDL"].ToString().Trim(); + //sBJHQ = dsCLQDL.Tables[0].Rows[i]["XLXSBJCL_BJHQ"].ToString().Trim(); + SQL.Add(string.Format("XLXSJGBCLQD_ZL{0}*HSJG{0}+", sCLQDL.Replace("第", "").Replace("列", ""))); + } + } + SQL.Add("0.0) as HSCLCBC "); + SQL.Add("from XLXSJGBCLQD "); + SQL.Add("left join ("); + SQL.Add(" select XLXSJGBYLLM_JGBID as JGBID, XLXSJGBYLLM_JJFPSJ as JJFPSJ, XLXSJGBYLLM_JGCZBID as JGCZBID, XLXSJGBYLLM_JGCZBBBID as JGCZBBBID,"); + for (int i = 0; i < dsCLQDL.Tables[0].Rows.Count; i++) + { + sCLQDL = dsCLQDL.Tables[0].Rows[i]["XLXSJGBYLLM_CLQDL"].ToString().Trim(); + //sBJHQ = dsCLQDL.Tables[0].Rows[i]["XLXSBJCL_BJHQ"].ToString().Trim(); + //这里之所以能涵盖1|材料行情、2|物料行情,是因为因素3价格表和因素1价格表的物料行情不能随意改、且即使它们能发生变化也是因为期货铜价引起的,所以物料之间的价格差与细分之前的报价材料之间的价格差等同 + SQL.Add(string.Format(" sum(case when XLXSJGBYLLM_CLQDL='{0}' then isnull(XLXSCLHQ_WSJG,0.0) else 0.0 end) as CLJG{1},", sCLQDL, sCLQDL.Replace("第", "").Replace("列", ""))); + SQL.Add(string.Format(" sum(case when XLXSJGBYLLM_CLQDL='{0}' then isnull(XLXSCLHQ_HSJG,0.0) else 0.0 end) as HSJG{1},", sCLQDL, sCLQDL.Replace("第", "").Replace("列", ""))); + } + SQL.Add(" ' ' as MJBZ "); + SQL.Add(" from XLXSJGBYLLM "); + SQL.Add(" left join ("); + SQL.Add(" select j3.XLXSCLHQ_BJCLID as XLXSCLHQ_BJCLID,"); + SQL.Add(" case when isnull(XLXSBJDCLHQ_BJCLID,' ')=' ' then (j3.XLXSCLHQ_HSJG-j1.XLXSCLHQ_HSJG) else (XLXSBJDCLHQ_HSJG-j1.XLXSCLHQ_HSJG) end as XLXSCLHQ_HSJG,"); + SQL.Add(" case when isnull(XLXSBJDCLHQ_BJCLID,' ')=' ' then (j3.XLXSCLHQ_WSJG-j1.XLXSCLHQ_WSJG) else (XLXSBJDCLHQ_WSJG-j1.XLXSCLHQ_WSJG) end as XLXSCLHQ_WSJG "); + SQL.Add(" from XLXSCLHQ j1,XLXSCLHQ j3"); + SQL.Add(" left join XLXSBJDCLHQ on XLXSBJDCLHQ_BJDID=:pBJDID and XLXSBJDCLHQ_BJCLID=j3.XLXSCLHQ_BJCLID"); + SQL.Add(" where j1.XLXSCLHQ_JGBID=:pJGBID1 and j3.XLXSCLHQ_JGBID=:pJGBID3"); + SQL.Add(" and j1.XLXSCLHQ_BJCLID=j3.XLXSCLHQ_BJCLID"); + SQL.Add(" ) jj on XLXSCLHQ_BJCLID=XLXSJGBYLLM_BJCLID"); + SQL.Add(" where XLXSJGBYLLM_JGBID=:pJGBID1"); + SQL.Add(" and XLXSJGBYLLM_JJFPSJ=:pJJFPSJ"); + SQL.Add(" and XLXSJGBYLLM_JGCZBID=:pJGCZBID"); + SQL.Add(" and XLXSJGBYLLM_JGCZBBBID=:pJGCZBBBID"); + SQL.Add(" group by XLXSJGBYLLM_JGBID,XLXSJGBYLLM_JJFPSJ,XLXSJGBYLLM_JGCZBID,XLXSJGBYLLM_JGCZBBBID"); + SQL.Add(") JGCZBCLHQ on JGBID=XLXSJGBCLQD_JGBID and JJFPSJ=XLXSJGBCLQD_JJFPSJ and JGCZBID=XLXSJGBCLQD_JGCZBID and JGCZBBBID=XLXSJGBCLQD_JGCZBBBID "); + SQL.Add("where XLXSJGBCLQD_JGBID=:pJGBID1 and XLXSJGBCLQD_JJFPSJ=:pJJFPSJ and XLXSJGBCLQD_JGCZBID=:pJGCZBID and XLXSJGBCLQD_JGCZBBBID=:pJGCZBBBID"); + SQL.Add(" and exists(select 1 from V_XSBJJSJGB where V_XSBJJSJGB_ID=:pID and V_XSBJJSJGB_BJDID=:pBJDID and V_XSBJJSJGB_SYJGBID=:pJGBID1 and V_XSBJJSJGB_SYJGBXH=XLXSJGBCLQD_XH)"); + SQL.Add(") sor on (V_XSBJJSJGB_ID=:pID and V_XSBJJSJGB_BJDID=:pBJDID and V_XSBJJSJGB_SYJGBID=:pJGBID1 and V_XSBJJSJGB_SYJGBXH=JGBXH) "); + if (sJSBLFS.Equals("C1") || sJSBLFS.Equals("C2") || sJSBLFS.Equals("C3"))//C1|进一法(材料价各分项进一)、C2|进一法(材料价汇总进一)、C3|材料价汇总进一+表价进一到十位 + { + if (bHSBZ) + SQL.Add(string.Format("when matched then update set V_XSBJJSJGB_CLCBC=CEILING(RoundFix(HSCLCBC*{0},8))/{0}", Math.Pow(10.0, iXSWS))); + else + SQL.Add(string.Format("when matched then update set V_XSBJJSJGB_CLCBC=CEILING(RoundFix(WSCLCBC*{0},8))/{0}", Math.Pow(10.0, iXSWS))); + } + else + { + if (bHSBZ) + SQL.Add("when matched then update set V_XSBJJSJGB_CLCBC=RoundFix(HSCLCBC," + iXSWS.ToString() + ")"); + else + SQL.Add("when matched then update set V_XSBJJSJGB_CLCBC=RoundFix(WSCLCBC," + iXSWS.ToString() + ")"); + } + SQL.ParamByName("pJGBID1").Value = sJGBIDS; + SQL.ParamByName("pJJFPSJ").Value = tmpJJFPSJ; + SQL.ParamByName("pJGCZBID").Value = tmpJGCZBID; + SQL.ParamByName("pJGCZBBBID").Value = tmpJGCZBBBID; + SQL.ParamByName("pID").Value = VnewID; + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pJGBID3").Value = sJGBID; + dberp.ExecSQL(SQL); + + } + + //更新V_XSBJJSJGB_CLCB、V_XSBJJSJGB_BJDHQCLCB、V_XSBJJSJGB_CLQDJLDW、V_XSBJJSJGB_JGBJJ、V_XSBJJSJGB_JGBBJ、V_XSBJJSJGB_JGBJLDW + SQL.Clear(); + SQL.Add("merge into V_XSBJJSJGB tar "); + SQL.Add("using "); + SQL.Add("("); + SQL.Add("select XLXSJGBMX_XH,XLXSJGBMX_JLDW,"); + if (sBJU018.Equals("Y")) + { + SQL.Add(" case when XLXSJGBMX_JLDW in ('M','米') then XLXSJGBMX_HSBJM when XLXSJGBMX_JLDW in ('Km','千米') then XLXSJGBMX_HSBJM * 1000.0 else XLXSJGBMX_HSBJ end as XLXSJGBMX_HSBJ,"); + SQL.Add(" case when XLXSJGBMX_JLDW in ('M','米') then XLXSJGBMX_WSBJM when XLXSJGBMX_JLDW in ('Km','千米') then XLXSJGBMX_WSBJM * 1000.0 else XLXSJGBMX_WSBJ end as XLXSJGBMX_WSBJ,"); + SQL.Add(" case when XLXSJGBMX_JLDW in ('M','米') then XLXSJGBMX_HSJJM when XLXSJGBMX_JLDW in ('Km','千米') then XLXSJGBMX_HSJJM * 1000.0 else XLXSJGBMX_HSJJ end as XLXSJGBMX_HSJJ,"); + SQL.Add(" case when XLXSJGBMX_JLDW in ('M','米') then XLXSJGBMX_WSJJM when XLXSJGBMX_JLDW in ('Km','千米') then XLXSJGBMX_WSJJM * 1000.0 else XLXSJGBMX_WSJJ end as XLXSJGBMX_WSJJ "); + } + else + { + SQL.Add("XLXSJGBMX_HSBJ,XLXSJGBMX_WSBJ,XLXSJGBMX_HSJJ,XLXSJGBMX_WSJJ "); + } + SQL.Add("from XLXSJGBMX "); + SQL.Add("where XLXSJGBMX_JGBID=:pJGBID1 "); + SQL.Add(" and exists(select 1 from V_XSBJJSJGB where V_XSBJJSJGB_ID=:pID and V_XSBJJSJGB_BJDID=:pBJDID and V_XSBJJSJGB_SYJGBID=:pJGBID1 and V_XSBJJSJGB_SYJGBXH=XLXSJGBMX_XH)"); + SQL.Add(") sor on (V_XSBJJSJGB_ID=:pID and V_XSBJJSJGB_BJDID=:pBJDID and V_XSBJJSJGB_SYJGBID=:pJGBID1 and V_XSBJJSJGB_SYJGBXH=XLXSJGBMX_XH) "); + if (XLBJDUtils.GetCPLJGS() == "2") + { + if (bHSBZ) + { + SQL.Add("when matched then update set V_XSBJJSJGB_CLCB=XLXSJGBMX_HSJJ+(V_XSBJJSJGB_CLCB-XLXSJGBMX_HSBJ),V_XSBJJSJGB_BJDHQCLCB=(XLXSJGBMX_HSJJ+V_XSBJJSJGB_CLCBC)*(case when V_XSBJJSJGB_JGBYSJDZ=0 then 1 else V_XSBJJSJGB_JGBYSJDZ end ),V_XSBJJSJGB_CLQDJLDW=:pCLQDJLDW,"); + SQL.Add(" V_XSBJJSJGB_JGBJJ=XLXSJGBMX_HSBJ+V_XSBJJSJGB_CLCBC,V_XSBJJSJGB_JGBBJ=XLXSJGBMX_HSBJ+V_XSBJJSJGB_CLCBC,V_XSBJJSJGB_JGBJLDW=XLXSJGBMX_JLDW"); + } + else + { + SQL.Add("when matched then update set V_XSBJJSJGB_CLCB=XLXSJGBMX_WSJJ+(V_XSBJJSJGB_CLCB-XLXSJGBMX_WSBJ),V_XSBJJSJGB_BJDHQCLCB=(XLXSJGBMX_WSJJ+V_XSBJJSJGB_CLCBC)*(case when V_XSBJJSJGB_JGBYSJDZ=0 then 1 else V_XSBJJSJGB_JGBYSJDZ end ),V_XSBJJSJGB_CLQDJLDW=:pCLQDJLDW,"); + SQL.Add(" V_XSBJJSJGB_JGBJJ=XLXSJGBMX_WSBJ+V_XSBJJSJGB_CLCBC,V_XSBJJSJGB_JGBBJ=XLXSJGBMX_WSBJ+V_XSBJJSJGB_CLCBC,V_XSBJJSJGB_JGBJLDW=XLXSJGBMX_JLDW"); + } + } + else if (XLBJDUtils.GetCPLJGS() == "4") + { + if (bHSBZ) + { + SQL.Add("when matched then update set V_XSBJJSJGB_CLCB=XLXSJGBMX_HSJJ+(V_XSBJJSJGB_CLCB-XLXSJGBMX_HSBJ),V_XSBJJSJGB_BJDHQCLCB=(XLXSJGBMX_HSJJ+V_XSBJJSJGB_CLCBC)*(case when V_XSBJJSJGB_CLCBYSJDZ=0 then 1 else V_XSBJJSJGB_CLCBYSJDZ end ),V_XSBJJSJGB_CLQDJLDW=:pCLQDJLDW,"); + SQL.Add(" V_XSBJJSJGB_JGBJJ=XLXSJGBMX_HSBJ+V_XSBJJSJGB_CLCBC,V_XSBJJSJGB_JGBBJ=XLXSJGBMX_HSBJ+V_XSBJJSJGB_CLCBC,V_XSBJJSJGB_JGBJLDW=XLXSJGBMX_JLDW"); + } + else + { + SQL.Add("when matched then update set V_XSBJJSJGB_CLCB=XLXSJGBMX_WSJJ+(V_XSBJJSJGB_CLCB-XLXSJGBMX_WSBJ),V_XSBJJSJGB_BJDHQCLCB=(XLXSJGBMX_WSJJ+V_XSBJJSJGB_CLCBC)*(case when V_XSBJJSJGB_CLCBYSJDZ=0 then 1 else V_XSBJJSJGB_CLCBYSJDZ end ),V_XSBJJSJGB_CLQDJLDW=:pCLQDJLDW,"); + SQL.Add(" V_XSBJJSJGB_JGBJJ=XLXSJGBMX_WSBJ+V_XSBJJSJGB_CLCBC,V_XSBJJSJGB_JGBBJ=XLXSJGBMX_WSBJ+V_XSBJJSJGB_CLCBC,V_XSBJJSJGB_JGBJLDW=XLXSJGBMX_JLDW"); + } + } + else + { + if (bHSBZ) + { + SQL.Add("when matched then update set V_XSBJJSJGB_CLCB=XLXSJGBMX_HSJJ+(V_XSBJJSJGB_CLCB-XLXSJGBMX_HSBJ),V_XSBJJSJGB_BJDHQCLCB=XLXSJGBMX_HSJJ+V_XSBJJSJGB_CLCBC,V_XSBJJSJGB_CLQDJLDW=:pCLQDJLDW,"); + SQL.Add(" V_XSBJJSJGB_JGBJJ=XLXSJGBMX_HSBJ+V_XSBJJSJGB_CLCBC,V_XSBJJSJGB_JGBBJ=XLXSJGBMX_HSBJ+V_XSBJJSJGB_CLCBC,V_XSBJJSJGB_JGBJLDW=XLXSJGBMX_JLDW"); + } + else + { + SQL.Add("when matched then update set V_XSBJJSJGB_CLCB=XLXSJGBMX_WSJJ+(V_XSBJJSJGB_CLCB-XLXSJGBMX_WSBJ),V_XSBJJSJGB_BJDHQCLCB=XLXSJGBMX_WSJJ+V_XSBJJSJGB_CLCBC,V_XSBJJSJGB_CLQDJLDW=:pCLQDJLDW,"); + SQL.Add(" V_XSBJJSJGB_JGBJJ=XLXSJGBMX_WSBJ+V_XSBJJSJGB_CLCBC,V_XSBJJSJGB_JGBBJ=XLXSJGBMX_WSBJ+V_XSBJJSJGB_CLCBC,V_XSBJJSJGB_JGBJLDW=XLXSJGBMX_JLDW"); + } + } + + SQL.ParamByName("pID").Value = VnewID; + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pJGBID1").Value = sJGBIDS; + SQL.ParamByName("pCLQDJLDW").Value = sBJU003; + dberp.ExecSQL(SQL); + + //依据表价调价政策,计算V_XSBJJSJGB_JGBBJ + DataSet dsJGBYZ = new DataSet(); + XLBJDUtils.GetdsJGBYZ_JGE(sJGBID, ref dsJGBYZ); + if (dsJGBYZ.Tables[0].Rows.Count > 0) + { + CalcUpdateJGBBJ_JGE(dberp, SQL, dsJGBYZ, VnewID, sBJDID, sMXBH, sJGBID, iXSWS, sJSBLFS, sWHRID, sWHR, sJGBIDS); + + sJGEJJYZList = ""; + for (int i = 0; i < dsJGBYZ.Tables[0].Rows.Count; i++) + { + if (dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_JJFS"].ToString().Trim().Equals("JJ")) + { + sJGEJJYZList += dsJGBYZ.Tables[0].Rows[i]["XLXSJGBYZ_YZID"].ToString().Trim() + ","; + } + } + sJGEJJYZList = sJGEJJYZList.TrimEnd(','); + } + else + { + AddXLXSBJDJJYZ(dberp, SQL, VnewID, sBJDID, sMXBH, sJGBID, sJGBIDS, "", "", "", "", "", ""); + } + + //衍生加点 + if (sJSBLFS.Equals("C1") || sJSBLFS.Equals("C2"))//C1|进一法(材料价各分项进一)、C2|进一法(材料价汇总进一) + { + SQL.Clear(); + SQL.Add(string.Format("update V_XSBJJSJGB set V_XSBJJSJGB_JGBBJ=CEILING(RoundFix((V_XSBJJSJGB_JGBBJ*V_XSBJJSJGB_JGBYSJDZ)*{0},8))/{0}", Math.Pow(10.0, iXSWS))); + SQL.Add(" where V_XSBJJSJGB_ID=:pID and V_XSBJJSJGB_BJDID=:pBJDID"); + SQL.Add(" and V_XSBJJSJGB_JGBYSJDZ>0"); + SQL.ParamByName("pID").Value = VnewID; + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + } + else if (sJSBLFS.Equals("C3"))//C3|材料价汇总进一+表价进一到十位 + { + SQL.Clear(); + SQL.Add(string.Format("update V_XSBJJSJGB set V_XSBJJSJGB_JGBBJ=CEILING(RoundFix(V_XSBJJSJGB_JGBBJ*V_XSBJJSJGB_JGBYSJDZ,{0})/10)*10", iXSWS.ToString().Trim())); + SQL.Add(" where V_XSBJJSJGB_ID=:pID and V_XSBJJSJGB_BJDID=:pBJDID"); + SQL.Add(" and V_XSBJJSJGB_JGBYSJDZ>0"); + SQL.ParamByName("pID").Value = VnewID; + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + } + else + { + SQL.Clear(); + SQL.Add(string.Format("update V_XSBJJSJGB set V_XSBJJSJGB_JGBBJ=RoundFix(V_XSBJJSJGB_JGBBJ*V_XSBJJSJGB_JGBYSJDZ,{0})", iXSWS)); + SQL.Add(" where V_XSBJJSJGB_ID=:pID and V_XSBJJSJGB_BJDID=:pBJDID"); + SQL.Add(" and V_XSBJJSJGB_JGBYSJDZ>0"); + SQL.ParamByName("pID").Value = VnewID; + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + } + + //V_XSBJJSJGB_CLQDJLDW与V_XSBJJSJGB_JLDW一致 + bSameJLDW = true; + + } + } + + //允许调整材料行情且存在报价单材料行情时使用报价单材料行情计算 + bool bBJDCLCB = false; + if (sTZCLHQ.Equals("Y")) + { + if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select top 1 XLXSBJDCLHQ_BJCLID from XLXSBJDCLHQ where XLXSBJDCLHQ_BJDID='{0}'", sBJDID))) + bBJDCLCB = true; + } + + + //2|报价日行情,单独计算V_XSBJJSJGB_BJDHQCLCB。价格表调价因素3使用价格表材料清单计算,已在上面处理,这里不用执行了。 + if ((sBJDHQLY.Equals("2") || bBJDCLCB) && !sTJYS.Equals("3")) + { + + if (sTJYS.Equals("1")) + { + SQL.Clear(); + SQL.Add(@" merge into V_XSBJJSJGB tar + using ( + select V_XSBJJSJGB_ID as ID,V_XSBJJSJGB_BJDID as BJDID,V_XSBJJSJGB_BJDXH as BJDXH + ,case when (XLXSJGBMX_JGBID is null or XLXSJGBMX_XH =0 or V_XSBJJSJGB_XLXSCLQD='Y' ) then V_XSBJJSJGB_XLXHID else XLXSJGBMX_XLXHID end as QDXLXHID + ,case when (XLXSJGBMX_JGBID is null or XLXSJGBMX_XH =0 or V_XSBJJSJGB_XLXSCLQD='Y' ) then V_XSBJJSJGB_XLGGID else XLXSJGBMX_XLGGID end as QDXLGGID + ,case when (XLXSJGBMX_JGBID is null or XLXSJGBMX_XH =0 or V_XSBJJSJGB_XLXSCLQD='Y' ) then V_XSBJJSJGB_XLBZID else XLXSJGBMX_XLBZID end as QDXLBZID + ,case when (XLXSJGBMX_JGBID is null or XLXSJGBMX_XH =0 or V_XSBJJSJGB_XLXSCLQD='Y' ) then V_XSBJJSJGB_DYDJID else XLXSJGBMX_DYDJID end as QDDYDJID + from V_XSBJJSJGB + left join XLXSJGBMX on V_XSBJJSJGB_SYJGBID=XLXSJGBMX_JGBID and V_XSBJJSJGB_SYJGBXH=XLXSJGBMX_XH + where V_XSBJJSJGB_ID=:pID and V_XSBJJSJGB_BJDID=:pBJDID and V_XSBJJSJGB_WGCPBZ<>'Y' and V_XSBJJSJGB_JGFBZ<>'Y' + + ) sor + on( + tar.V_XSBJJSJGB_ID=:pID + and tar.V_XSBJJSJGB_BJDID=:pBJDID + and tar.V_XSBJJSJGB_WGCPBZ<>'Y' + and tar.V_XSBJJSJGB_JGFBZ<>'Y' + and tar.V_XSBJJSJGB_ID =sor.ID + and tar.V_XSBJJSJGB_BJDID=sor.BJDID + and tar.V_XSBJJSJGB_BJDXH=sor.BJDXH + ) + when matched then update set tar.V_XSBJJSJGB_QDXLXHID =sor.QDXLXHID, + tar.V_XSBJJSJGB_QDXLGGID =sor.QDXLGGID, + tar.V_XSBJJSJGB_QDXLBZID =sor.QDXLBZID, + tar.V_XSBJJSJGB_QDDYDJID =sor.QDDYDJID "); + SQL.ParamByName("pID").Value = VnewID; + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + + //根据清单四要素更新CLZL + + SQL.Clear(); + SQL.Add(@" merge into V_XSBJJSJGB tar + using XLXSCLQD sor + on( + tar.V_XSBJJSJGB_ID=:pID + and tar.V_XSBJJSJGB_BJDID=:pBJDID + and tar.V_XSBJJSJGB_QDXLXHID =sor.XLXSCLQD_XLXHID + and tar.V_XSBJJSJGB_QDXLGGID =sor.XLXSCLQD_XLGGID + and tar.V_XSBJJSJGB_QDXLBZID =sor.XLXSCLQD_XLBZID + and tar.V_XSBJJSJGB_QDDYDJID =sor.XLXSCLQD_DYDJID + and sor.XLXSCLQD_WPID='ZZZZ' + ) + when matched then update set tar.V_XSBJJSJGB_CLZL =sor.XLXSCLQD_CLZL "); + SQL.ParamByName("pID").Value = VnewID; + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + + + + //用清单四要素更新XLXSBJDMX四要素 + SQL.Clear(); + SQL.Add(@"merge into XLXSBJDMX tar + using ( + select V_XSBJJSJGB_BJDID as BJDID,V_XSBJJSJGB_BJDXH as BJDXH, + V_XSBJJSJGB_QDXLXHID as QDXLXHID,V_XSBJJSJGB_QDXLGGID as QDXLGGID,V_XSBJJSJGB_QDXLBZID as QDXLBZID,V_XSBJJSJGB_QDDYDJID as QDDYDJID + from V_XSBJJSJGB + where V_XSBJJSJGB_ID=:pID and V_XSBJJSJGB_BJDID=:pBJDID and V_XSBJJSJGB_WGCPBZ<>'Y' and V_XSBJJSJGB_JGFBZ<>'Y' + )sor + on( + XLXSBJDMX_BJDID=:pBJDID + and XLXSBJDMX_BJDID=sor.BJDID + and XLXSBJDMX_XH =sor.BJDXH + ) + when matched then update set XLXSBJDMX_XLXHID =sor.QDXLXHID, + XLXSBJDMX_XLGGID =sor.QDXLGGID, + XLXSBJDMX_XLBZID =sor.QDXLBZID, + XLXSBJDMX_DYDJID =sor.QDDYDJID "); + + + SQL.ParamByName("pID").Value = VnewID; + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + + + + //重新计算XLXSCLQD_JGBHSCB、XLXSCLQD_JGBWSCB + XLJGB_CLJGTZList.UpdateCLCB(dberp, SQL, sJGBID, "", "", iXSWS, sJSBLFS, sWHRID, sWHR, 0, sJGBIDS, + "", "", 0.0, 0.0, sBJDID, startBJDXH, sBJDXHList, sBJU003); + //回填四要素 + + SQL.Clear(); + SQL.Add(@"merge into XLXSBJDMX tar + using ( + select V_XSBJJSJGB_BJDID as BJDID,V_XSBJJSJGB_BJDXH as BJDXH, + V_XSBJJSJGB_XLXHID as XLXHID,V_XSBJJSJGB_XLGGID as XLGGID,V_XSBJJSJGB_XLBZID as XLBZID,V_XSBJJSJGB_DYDJID as DYDJID + from V_XSBJJSJGB + where V_XSBJJSJGB_ID=:pID and V_XSBJJSJGB_BJDID=:pBJDID and V_XSBJJSJGB_WGCPBZ<>'Y' and V_XSBJJSJGB_JGFBZ<>'Y' + )sor + on( + XLXSBJDMX_BJDID=:pBJDID + and XLXSBJDMX_BJDID=sor.BJDID + and XLXSBJDMX_XH =sor.BJDXH + ) + when matched then update set XLXSBJDMX_XLXHID =sor.XLXHID, + XLXSBJDMX_XLGGID =sor.XLGGID, + XLXSBJDMX_XLBZID =sor.XLBZID, + XLXSBJDMX_DYDJID =sor.DYDJID "); + + + SQL.ParamByName("pID").Value = VnewID; + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + + SQL.Clear(); + SQL.Add("merge into V_XSBJJSJGB tar "); + SQL.Add("using "); + SQL.Add("( "); + SQL.Add(" select XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_XLBZID,XLXSCLQD_DYDJID,XLXSCLQD_JGBHSCB,XLXSCLQD_JGBWSCB"); + SQL.Add(" from XLXSCLQD"); + SQL.Add(" where exists(select 1 from V_XSBJJSJGB where V_XSBJJSJGB_ID=:pID and V_XSBJJSJGB_BJDID=:pBJDID "); + SQL.Add(" and V_XSBJJSJGB_QDXLXHID=XLXSCLQD_XLXHID and V_XSBJJSJGB_QDXLGGID=XLXSCLQD_XLGGID "); + SQL.Add(" and V_XSBJJSJGB_QDXLBZID=XLXSCLQD_XLBZID and V_XSBJJSJGB_QDDYDJID=XLXSCLQD_DYDJID and V_XSBJJSJGB_WGCPBZ<>'Y' and V_XSBJJSJGB_JGFBZ<>'Y' "); + SQL.Add(" )"); + SQL.Add(" ) sor "); + SQL.Add(" on (V_XSBJJSJGB_ID=:pID "); + SQL.Add(" and V_XSBJJSJGB_BJDID=:pBJDID "); + SQL.Add(" and sor.XLXSCLQD_XLXHID=V_XSBJJSJGB_QDXLXHID "); + SQL.Add(" and sor.XLXSCLQD_XLGGID=V_XSBJJSJGB_QDXLGGID "); + SQL.Add(" and sor.XLXSCLQD_XLBZID=V_XSBJJSJGB_QDXLBZID "); + SQL.Add(" and sor.XLXSCLQD_DYDJID=V_XSBJJSJGB_QDDYDJID "); + SQL.Add(" and V_XSBJJSJGB_WGCPBZ<>'Y' and V_XSBJJSJGB_JGFBZ<>'Y' "); + if (XLBJDUtils.GetCPLJGS() == "3")//无清单产品的报价单行情成本单独计算 + { + SQL.Add(" and V_XSBJJSJGB_XLXSCLQD='Y' "); + } + SQL.Add(" ) "); + + if (bHSBZ) + SQL.Add(" when matched then update set V_XSBJJSJGB_BJDHQCLCB=XLXSCLQD_JGBHSCB,V_XSBJJSJGB_CLQDJLDW=:pCLQDJLDW"); + else + SQL.Add(" when matched then update set V_XSBJJSJGB_BJDHQCLCB=XLXSCLQD_JGBWSCB,V_XSBJJSJGB_CLQDJLDW=:pCLQDJLDW"); + SQL.ParamByName("pID").Value = VnewID; + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pCLQDJLDW").Value = sBJU003; + dberp.ExecSQL(SQL); + + + if (ABJDHQJSBJ == "Y" && sJGBJJLY == "A") + { + SQL.Clear(); + SQL.Add(" update V_XSBJJSJGB set V_XSBJJSJGB_JGBJJ = V_XSBJJSJGB_BJDHQCLCB,V_XSBJJSJGB_JGBBJ= V_XSBJJSJGB_BJDHQCLCB where V_XSBJJSJGB_ID=:pID and V_XSBJJSJGB_BJDID=:pBJDID and V_XSBJJSJGB_JGBMXCPBZ = 'Y' "); + SQL.ParamByName("pID").Value = VnewID; + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + SQL.Clear(); + SQL.Add("update V_XSBJJSJGB set V_XSBJJSJGB_XLXHID =V_XSBJJSJGB_QDXLXHID ,V_XSBJJSJGB_XLGGID=V_XSBJJSJGB_QDXLGGID,V_XSBJJSJGB_XLBZID =V_XSBJJSJGB_QDXLBZID,V_XSBJJSJGB_DYDJID=V_XSBJJSJGB_QDDYDJID "); + SQL.Add(" where V_XSBJJSJGB_ID=:pID and V_XSBJJSJGB_BJDID=:pBJDID and V_XSBJJSJGB_WGCPBZ<>'Y' and V_XSBJJSJGB_JGFBZ<>'Y' and V_XSBJJSJGB_JGBMXCPBZ = 'Y' "); + SQL.ParamByName("pID").Value = VnewID; + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + DataSet dsJGBYZ = new DataSet(); + XLBJDUtils.GetdsJGBYZ_JGE(sJGBID, ref dsJGBYZ); + + CalcUpdateJGBBJ_JGE(dberp, SQL, dsJGBYZ, VnewID, sBJDID, sMXBH, sJGBID, iXSWS, sJSBLFS, sWHRID, sWHR, sJGBIDS); + + if (dsJGBYZ.Tables[0].Rows.Count == 0) + { + SQL.Clear(); + SQL.Add(" update V_XSBJJSJGB set V_XSBJJSJGB_JGBBJ =V_XSBJJSJGB_JGBJJ*(case when V_XSBJJSJGB_JGBYSJDZ = 0 then 1 else V_XSBJJSJGB_JGBYSJDZ end) where V_XSBJJSJGB_ID=:pID and V_XSBJJSJGB_BJDID=:pBJDID and V_XSBJJSJGB_JGBMXCPBZ = 'Y' "); + SQL.ParamByName("pID").Value = VnewID; + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + } + + + + SQL.Clear(); + SQL.Add(@"merge into V_XSBJJSJGB tar + using ( + select XLXSBJDMX_BJDID as BJDID,XLXSBJDMX_XH as BJDXH, + XLXSBJDMX_XLXHID as XLXHID,XLXSBJDMX_XLGGID as XLGGID,XLXSBJDMX_XLBZID as XLBZID,XLXSBJDMX_DYDJID as DYDJID + from XLXSBJDMX + where XLXSBJDMX_BJDID=:pBJDID + )sor + on( + V_XSBJJSJGB_ID=:pID and + V_XSBJJSJGB_BJDID=:pBJDID + and V_XSBJJSJGB_WGCPBZ<>'Y' and V_XSBJJSJGB_JGFBZ<>'Y' and V_XSBJJSJGB_JGBMXCPBZ = 'Y' + and V_XSBJJSJGB_BJDXH =sor.BJDXH + ) + when matched then update set V_XSBJJSJGB_XLXHID =sor.XLXHID, + V_XSBJJSJGB_XLGGID =sor.XLGGID, + V_XSBJJSJGB_XLBZID =sor.XLBZID, + V_XSBJJSJGB_DYDJID =sor.DYDJID "); + + + SQL.ParamByName("pID").Value = VnewID; + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + SQL.Clear(); + SQL.Add(@"delete from XLXSBJDJJYZ + where exists( + select 1 from V_XSBJJSJGB + where V_XSBJJSJGB_ID=:pID and V_XSBJJSJGB_BJDID=:pBJDID and V_XSBJJSJGB_WGCPBZ<>'Y' and V_XSBJJSJGB_JGFBZ<>'Y' and V_XSBJJSJGB_JGBMXCPBZ = 'Y' + and V_XSBJJSJGB_BJDID=XLXSBJDJJYZ_BJDID and V_XSBJJSJGB_BJDXH =XLXSBJDJJYZ_XH + and V_XSBJJSJGB_JGBYSJDZ>1 + )"); + SQL.ParamByName("pID").Value = VnewID; + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + } + + + if (XLBJDUtils.GetCPLJGS() == "2") + { + SQL.Clear(); + SQL.Add("merge into V_XSBJJSJGB tar "); + SQL.Add("using "); + SQL.Add("( "); + SQL.Add(" select XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_XLBZID,XLXSCLQD_DYDJID,XLXSCLQD_JGBHSCB,XLXSCLQD_JGBWSCB"); + SQL.Add(" from XLXSCLQD"); + SQL.Add(" where exists(select 1 from V_XSBJJSJGB where V_XSBJJSJGB_ID=:pID and V_XSBJJSJGB_BJDID=:pBJDID "); + SQL.Add(" and V_XSBJJSJGB_QDXLXHID=XLXSCLQD_XLXHID and V_XSBJJSJGB_QDXLGGID=XLXSCLQD_XLGGID "); + SQL.Add(" and V_XSBJJSJGB_QDXLBZID=XLXSCLQD_XLBZID and V_XSBJJSJGB_QDDYDJID=XLXSCLQD_DYDJID and V_XSBJJSJGB_WGCPBZ<>'Y' and V_XSBJJSJGB_JGFBZ<>'Y' "); + SQL.Add(" )"); + SQL.Add(" ) sor "); + SQL.Add(" on (V_XSBJJSJGB_ID=:pID "); + SQL.Add(" and V_XSBJJSJGB_BJDID=:pBJDID "); + SQL.Add(" and sor.XLXSCLQD_XLXHID=V_XSBJJSJGB_QDXLXHID "); + SQL.Add(" and sor.XLXSCLQD_XLGGID=V_XSBJJSJGB_QDXLGGID "); + SQL.Add(" and sor.XLXSCLQD_XLBZID=V_XSBJJSJGB_QDXLBZID "); + SQL.Add(" and sor.XLXSCLQD_DYDJID=V_XSBJJSJGB_QDDYDJID "); + SQL.Add(" and V_XSBJJSJGB_WGCPBZ<>'Y' and V_XSBJJSJGB_JGFBZ<>'Y' and V_XSBJJSJGB_XLXSCLQD='N' "); + SQL.Add(" ) "); + + if (bHSBZ) + SQL.Add(@" when matched then update set V_XSBJJSJGB_BJDHQCLCB=XLXSCLQD_JGBHSCB*V_XSBJJSJGB_JGBYSJDZ , + V_XSBJJSJGB_CLQDJLDW=:pCLQDJLDW"); + else + SQL.Add(@" when matched then update set V_XSBJJSJGB_BJDHQCLCB=XLXSCLQD_JGBWSCB*V_XSBJJSJGB_JGBYSJDZ , + V_XSBJJSJGB_CLQDJLDW=:pCLQDJLDW"); + + + + SQL.ParamByName("pID").Value = VnewID; + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pCLQDJLDW").Value = sBJU003; + dberp.ExecSQL(SQL); + } + else if (XLBJDUtils.GetCPLJGS() == "3") + { + + //匹配电压等级为空的材料清单型号、料价加点值 + SQL.Clear(); + SQL.Add(" merge into V_XSBJJSJGB tag "); + SQL.Add(" using ( select BJDLJXHDZB_CLQDXLXHID,BJDLJXHDZB_BJDXLXHID,BJDLJXHDZB_LJJDZ "); + SQL.Add(" from BJDLJXHDZB where isnull(BJDLJXHDZB_DYDJID,' ') = ' ' ) sor "); + SQL.Add(" on (V_XSBJJSJGB_ID=:pID and V_XSBJJSJGB_BJDID=:pBJDID and V_XSBJJSJGB_WGCPBZ<>'Y' and V_XSBJJSJGB_JGFBZ<>'Y' and V_XSBJJSJGB_XLXSCLQD='N' "); + SQL.Add(" and V_XSBJJSJGB_XLXHID = sor.BJDLJXHDZB_BJDXLXHID) "); + SQL.Add(" when matched then update set "); + SQL.Add(" V_XSBJJSJGB_QDXLXHID= sor.BJDLJXHDZB_CLQDXLXHID,V_XSBJJSJGB_LJJDZ = sor.BJDLJXHDZB_LJJDZ, "); + SQL.Add(" V_XSBJJSJGB_QDXLGGID= V_XSBJJSJGB_XLGGID, "); + SQL.Add(" V_XSBJJSJGB_QDXLBZID= V_XSBJJSJGB_XLBZID, "); + SQL.Add(" V_XSBJJSJGB_QDDYDJID= V_XSBJJSJGB_DYDJID"); + SQL.ParamByName("pID").Value = VnewID; + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + //匹配电压等级不为空的材料清单型号、料价加点值 + SQL.Clear(); + SQL.Add(" merge into V_XSBJJSJGB tag "); + SQL.Add(" using ( select BJDLJXHDZB_CLQDXLXHID,BJDLJXHDZB_BJDXLXHID,isnull(BJDLJXHDZB_DYDJID,' ') as DYDJID,BJDLJXHDZB_LJJDZ "); + SQL.Add(" from BJDLJXHDZB where isnull(BJDLJXHDZB_DYDJID,' ') <> ' ' ) sor "); + SQL.Add(" on (V_XSBJJSJGB_ID=:pID and V_XSBJJSJGB_BJDID=:pBJDID and V_XSBJJSJGB_WGCPBZ<>'Y' and V_XSBJJSJGB_JGFBZ<>'Y' and V_XSBJJSJGB_XLXSCLQD='N' "); + SQL.Add(" and V_XSBJJSJGB_XLXHID = sor.BJDLJXHDZB_BJDXLXHID and V_XSBJJSJGB_DYDJID = sor.DYDJID) "); + SQL.Add(" when matched then update set "); + SQL.Add(" V_XSBJJSJGB_QDXLXHID= sor.BJDLJXHDZB_CLQDXLXHID,V_XSBJJSJGB_LJJDZ = sor.BJDLJXHDZB_LJJDZ, "); + SQL.Add(" V_XSBJJSJGB_QDXLGGID= V_XSBJJSJGB_XLGGID, "); + SQL.Add(" V_XSBJJSJGB_QDXLBZID= V_XSBJJSJGB_XLBZID, "); + SQL.Add(" V_XSBJJSJGB_QDDYDJID= V_XSBJJSJGB_DYDJID"); + SQL.ParamByName("pID").Value = VnewID; + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + //用清单四要素更新XLXSBJDMX四要素 + SQL.Clear(); + SQL.Add(@"merge into XLXSBJDMX tar + using ( + select V_XSBJJSJGB_BJDID as BJDID,V_XSBJJSJGB_BJDXH as BJDXH, + V_XSBJJSJGB_QDXLXHID as QDXLXHID,V_XSBJJSJGB_QDXLGGID as QDXLGGID,V_XSBJJSJGB_QDXLBZID as QDXLBZID,V_XSBJJSJGB_QDDYDJID as QDDYDJID + from V_XSBJJSJGB + where V_XSBJJSJGB_ID=:pID and V_XSBJJSJGB_BJDID=:pBJDID and V_XSBJJSJGB_WGCPBZ<>'Y' and V_XSBJJSJGB_JGFBZ<>'Y' + )sor + on( + XLXSBJDMX_BJDID=:pBJDID + and XLXSBJDMX_BJDID=sor.BJDID + and XLXSBJDMX_XH =sor.BJDXH + ) + when matched then update set XLXSBJDMX_XLXHID =sor.QDXLXHID, + XLXSBJDMX_XLGGID =sor.QDXLGGID, + XLXSBJDMX_XLBZID =sor.QDXLBZID, + XLXSBJDMX_DYDJID =sor.QDDYDJID "); + + + SQL.ParamByName("pID").Value = VnewID; + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + + + + //重新计算XLXSCLQD_JGBHSCB、XLXSCLQD_JGBWSCB + XLJGB_CLJGTZList.UpdateCLCB(dberp, SQL, sJGBID, "", "", iXSWS, sJSBLFS, sWHRID, sWHR, 0, sJGBIDS, + "", "", 0.0, 0.0, sBJDID, startBJDXH, sBJU003); + //回填四要素 + SQL.Clear(); + SQL.Add(@"merge into XLXSBJDMX tar + using ( + select V_XSBJJSJGB_BJDID as BJDID,V_XSBJJSJGB_BJDXH as BJDXH, + V_XSBJJSJGB_XLXHID as XLXHID,V_XSBJJSJGB_XLGGID as XLGGID,V_XSBJJSJGB_XLBZID as XLBZID,V_XSBJJSJGB_DYDJID as DYDJID + from V_XSBJJSJGB + where V_XSBJJSJGB_ID=:pID and V_XSBJJSJGB_BJDID=:pBJDID and V_XSBJJSJGB_WGCPBZ<>'Y' and V_XSBJJSJGB_JGFBZ<>'Y' + )sor + on( + XLXSBJDMX_BJDID=:pBJDID + and XLXSBJDMX_BJDID=sor.BJDID + and XLXSBJDMX_XH =sor.BJDXH + ) + when matched then update set XLXSBJDMX_XLXHID =sor.XLXHID, + XLXSBJDMX_XLGGID =sor.XLGGID, + XLXSBJDMX_XLBZID =sor.XLBZID, + XLXSBJDMX_DYDJID =sor.DYDJID "); + + + SQL.ParamByName("pID").Value = VnewID; + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + //更新V_XSBJJSJGB_BJDHQCLCB 无清单 + SQL.Clear(); + SQL.Add("merge into V_XSBJJSJGB tar "); + SQL.Add("using "); + SQL.Add("( "); + SQL.Add(" select XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_XLBZID,XLXSCLQD_DYDJID,XLXSCLQD_JGBHSCB,XLXSCLQD_JGBWSCB"); + SQL.Add(" from XLXSCLQD"); + SQL.Add(" where exists(select 1 from V_XSBJJSJGB where V_XSBJJSJGB_ID=:pID and V_XSBJJSJGB_BJDID=:pBJDID "); + SQL.Add(" and V_XSBJJSJGB_QDXLXHID=XLXSCLQD_XLXHID and V_XSBJJSJGB_QDXLGGID=XLXSCLQD_XLGGID "); + SQL.Add(" and V_XSBJJSJGB_QDXLBZID=XLXSCLQD_XLBZID and V_XSBJJSJGB_QDDYDJID=XLXSCLQD_DYDJID and V_XSBJJSJGB_WGCPBZ<>'Y' and V_XSBJJSJGB_JGFBZ<>'Y' "); + SQL.Add(" )"); + SQL.Add(" ) sor "); + SQL.Add(" on (V_XSBJJSJGB_ID=:pID "); + SQL.Add(" and V_XSBJJSJGB_BJDID=:pBJDID "); + SQL.Add(" and sor.XLXSCLQD_XLXHID=V_XSBJJSJGB_QDXLXHID "); + SQL.Add(" and sor.XLXSCLQD_XLGGID=V_XSBJJSJGB_QDXLGGID "); + SQL.Add(" and sor.XLXSCLQD_XLBZID=V_XSBJJSJGB_QDXLBZID "); + SQL.Add(" and sor.XLXSCLQD_DYDJID=V_XSBJJSJGB_QDDYDJID "); + SQL.Add(" and V_XSBJJSJGB_WGCPBZ<>'Y' and V_XSBJJSJGB_JGFBZ<>'Y' and V_XSBJJSJGB_XLXSCLQD='N' "); + SQL.Add(" ) "); + + if (bHSBZ) + SQL.Add(@" when matched then update set V_XSBJJSJGB_BJDHQCLCB=XLXSCLQD_JGBHSCB*V_XSBJJSJGB_LJJDZ , + V_XSBJJSJGB_CLQDJLDW=:pCLQDJLDW"); + else + SQL.Add(@" when matched then update set V_XSBJJSJGB_BJDHQCLCB=XLXSCLQD_JGBWSCB*V_XSBJJSJGB_LJJDZ , + V_XSBJJSJGB_CLQDJLDW=:pCLQDJLDW"); + + SQL.ParamByName("pID").Value = VnewID; + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pCLQDJLDW").Value = sBJU003; + dberp.ExecSQL(SQL); + + } + else if (XLBJDUtils.GetCPLJGS() == "4") + { + SQL.Clear(); + SQL.Add("merge into V_XSBJJSJGB tar "); + SQL.Add("using "); + SQL.Add("( "); + SQL.Add(" select XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_XLBZID,XLXSCLQD_DYDJID,XLXSCLQD_JGBHSCB,XLXSCLQD_JGBWSCB"); + SQL.Add(" from XLXSCLQD"); + SQL.Add(" where exists(select 1 from V_XSBJJSJGB where V_XSBJJSJGB_ID=:pID and V_XSBJJSJGB_BJDID=:pBJDID "); + SQL.Add(" and V_XSBJJSJGB_QDXLXHID=XLXSCLQD_XLXHID and V_XSBJJSJGB_QDXLGGID=XLXSCLQD_XLGGID "); + SQL.Add(" and V_XSBJJSJGB_QDXLBZID=XLXSCLQD_XLBZID and V_XSBJJSJGB_QDDYDJID=XLXSCLQD_DYDJID and V_XSBJJSJGB_WGCPBZ<>'Y' and V_XSBJJSJGB_JGFBZ<>'Y' "); + SQL.Add(" )"); + SQL.Add(" ) sor "); + SQL.Add(" on (V_XSBJJSJGB_ID=:pID "); + SQL.Add(" and V_XSBJJSJGB_BJDID=:pBJDID "); + SQL.Add(" and sor.XLXSCLQD_XLXHID=V_XSBJJSJGB_QDXLXHID "); + SQL.Add(" and sor.XLXSCLQD_XLGGID=V_XSBJJSJGB_QDXLGGID "); + SQL.Add(" and sor.XLXSCLQD_XLBZID=V_XSBJJSJGB_QDXLBZID "); + SQL.Add(" and sor.XLXSCLQD_DYDJID=V_XSBJJSJGB_QDDYDJID "); + SQL.Add(" and V_XSBJJSJGB_WGCPBZ<>'Y' and V_XSBJJSJGB_JGFBZ<>'Y' and V_XSBJJSJGB_XLXSCLQD='N' "); + SQL.Add(" ) "); + + if (bHSBZ) + SQL.Add(@" when matched then update set V_XSBJJSJGB_BJDHQCLCB=XLXSCLQD_JGBHSCB*V_XSBJJSJGB_CLCBYSJDZ , + V_XSBJJSJGB_CLQDJLDW=:pCLQDJLDW"); + else + SQL.Add(@" when matched then update set V_XSBJJSJGB_BJDHQCLCB=XLXSCLQD_JGBWSCB*V_XSBJJSJGB_CLCBYSJDZ , + V_XSBJJSJGB_CLQDJLDW=:pCLQDJLDW"); + + + + SQL.ParamByName("pID").Value = VnewID; + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pCLQDJLDW").Value = sBJU003; + dberp.ExecSQL(SQL); + } + bSameJLDW = false; + } + else + { + //重新计算XLXSCLQD_JGBHSCB、XLXSCLQD_JGBWSCB + XLJGB_CLJGTZList.UpdateCLCB(dberp, SQL, sJGBID, "", "", iXSWS, sJSBLFS, sWHRID, sWHR, 0, sJGBIDS, + "", "", 0.0, 0.0, sBJDID, startBJDXH, sBJDXHList, sBJU003); + SQL.Clear(); + SQL.Add("merge into V_XSBJJSJGB tar "); + SQL.Add("using "); + SQL.Add("( "); + SQL.Add(" select XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_XLBZID,XLXSCLQD_DYDJID,XLXSCLQD_JGBHSCB,XLXSCLQD_JGBWSCB"); + SQL.Add(" from XLXSCLQD"); + SQL.Add(" where exists(select 1 from V_XSBJJSJGB where V_XSBJJSJGB_ID=:pID and V_XSBJJSJGB_BJDID=:pBJDID "); + SQL.Add(" and V_XSBJJSJGB_XLXHID=XLXSCLQD_XLXHID and V_XSBJJSJGB_XLGGID=XLXSCLQD_XLGGID "); + SQL.Add(" and V_XSBJJSJGB_XLBZID=XLXSCLQD_XLBZID and V_XSBJJSJGB_DYDJID=XLXSCLQD_DYDJID and V_XSBJJSJGB_WGCPBZ<>'Y' and V_XSBJJSJGB_JGFBZ<>'Y' "); + SQL.Add(" )"); + SQL.Add(" ) sor "); + SQL.Add(" on (V_XSBJJSJGB_ID=:pID "); + SQL.Add(" and V_XSBJJSJGB_BJDID=:pBJDID "); + SQL.Add(" and sor.XLXSCLQD_XLXHID=V_XSBJJSJGB_XLXHID "); + SQL.Add(" and sor.XLXSCLQD_XLGGID=V_XSBJJSJGB_XLGGID "); + SQL.Add(" and sor.XLXSCLQD_XLBZID=V_XSBJJSJGB_XLBZID "); + SQL.Add(" and sor.XLXSCLQD_DYDJID=V_XSBJJSJGB_DYDJID "); + SQL.Add(" and V_XSBJJSJGB_WGCPBZ<>'Y' and V_XSBJJSJGB_JGFBZ<>'Y' "); + SQL.Add(" ) "); + if (bHSBZ) + SQL.Add(" when matched then update set V_XSBJJSJGB_BJDHQCLCB=XLXSCLQD_JGBHSCB,V_XSBJJSJGB_CLQDJLDW=:pCLQDJLDW"); + else + SQL.Add(" when matched then update set V_XSBJJSJGB_BJDHQCLCB=XLXSCLQD_JGBWSCB,V_XSBJJSJGB_CLQDJLDW=:pCLQDJLDW"); + SQL.ParamByName("pID").Value = VnewID; + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pCLQDJLDW").Value = sBJU003; + dberp.ExecSQL(SQL); + + bSameJLDW = false; + } + + } + } + else//表价实时计算价格表 + { + //重新计算XLXSCLQD_JGBHSCB、XLXSCLQD_JGBWSCB + //这里不需要保留小数位数,统一在最后保留小数位数 + XLJGB_CLJGTZList.UpdateCLCB(dberp, SQL, sJGBID, "", "", 5, sJSBLFS, sWHRID, sWHR, 0, sJGBIDS, + "", "", 0.0, 0.0, sBJDID, startBJDXH, sBJDXHList, sBJU003); + + SQL.Clear(); + SQL.Add("merge into V_XSBJJSJGB tar "); + SQL.Add("using "); + SQL.Add("( "); + SQL.Add(" select XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_XLBZID,XLXSCLQD_DYDJID,XLXSCLQD_JGBHSCB,XLXSCLQD_JGBWSCB"); + SQL.Add(" from XLXSCLQD"); + SQL.Add(" where exists(select 1 from V_XSBJJSJGB where V_XSBJJSJGB_ID=:pID and V_XSBJJSJGB_BJDID=:pBJDID "); + SQL.Add(" and V_XSBJJSJGB_XLXHID=XLXSCLQD_XLXHID and V_XSBJJSJGB_XLGGID=XLXSCLQD_XLGGID "); + SQL.Add(" and V_XSBJJSJGB_XLBZID=XLXSCLQD_XLBZID and V_XSBJJSJGB_DYDJID=XLXSCLQD_DYDJID and V_XSBJJSJGB_WGCPBZ<>'Y' and V_XSBJJSJGB_JGFBZ<>'Y' "); + SQL.Add(" )"); + SQL.Add(" ) sor "); + SQL.Add(" on (V_XSBJJSJGB_ID=:pID "); + SQL.Add(" and V_XSBJJSJGB_BJDID=:pBJDID "); + SQL.Add(" and sor.XLXSCLQD_XLXHID=V_XSBJJSJGB_XLXHID "); + SQL.Add(" and sor.XLXSCLQD_XLGGID=V_XSBJJSJGB_XLGGID "); + SQL.Add(" and sor.XLXSCLQD_XLBZID=V_XSBJJSJGB_XLBZID "); + SQL.Add(" and sor.XLXSCLQD_DYDJID=V_XSBJJSJGB_DYDJID "); + SQL.Add(" and V_XSBJJSJGB_WGCPBZ<>'Y' and V_XSBJJSJGB_JGFBZ<>'Y' "); + SQL.Add(" ) "); + if (bHSBZ) + { + SQL.Add(" when matched then update set V_XSBJJSJGB_BJDHQCLCB=XLXSCLQD_JGBHSCB,V_XSBJJSJGB_CLQDJLDW=:pCLQDJLDW,"); + SQL.Add(" V_XSBJJSJGB_CLCB=XLXSCLQD_JGBHSCB,V_XSBJJSJGB_JGBJJ=XLXSCLQD_JGBHSCB,V_XSBJJSJGB_JGBBJ=XLXSCLQD_JGBHSCB,V_XSBJJSJGB_JGBJLDW=:pCLQDJLDW"); + } + else + { + SQL.Add(" when matched then update set V_XSBJJSJGB_BJDHQCLCB=XLXSCLQD_JGBWSCB,V_XSBJJSJGB_CLQDJLDW=:pCLQDJLDW,"); + SQL.Add(" V_XSBJJSJGB_CLCB=XLXSCLQD_JGBWSCB,V_XSBJJSJGB_JGBJJ=XLXSCLQD_JGBWSCB,V_XSBJJSJGB_JGBBJ=XLXSCLQD_JGBWSCB,V_XSBJJSJGB_JGBJLDW=:pCLQDJLDW"); + } + SQL.ParamByName("pID").Value = VnewID; + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pCLQDJLDW").Value = sBJU003; + dberp.ExecSQL(SQL); + + bSameJLDW = true; + + //依据表价调价政策,计算V_XSBJJSJGB_JGBBJ + DataSet dsJGBYZ = new DataSet(); + XLBJDUtils.GetdsJGBYZ_JGE(sJGBID, ref dsJGBYZ); + if (dsJGBYZ.Tables[0].Rows.Count > 0 && sJGBTJYSS.Equals("1")) + { + //统一在最后保留小数位数 + CalcUpdateJGBBJ_JGE(dberp, SQL, dsJGBYZ, VnewID, sBJDID, sMXBH, sJGBID, 5, sJSBLFS, sWHRID, sWHR, ""); + + sJGEJJYZList = ""; + for (int i = 0; i < dsJGBYZ.Tables[0].Rows.Count; i++) + { + if (dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_JJFS"].ToString().Trim().Equals("JJ")) + { + sJGEJJYZList += dsJGBYZ.Tables[0].Rows[i]["XLXSJGBYZ_YZID"].ToString().Trim() + ","; + } + } + sJGEJJYZList = sJGEJJYZList.TrimEnd(','); + } + else + { + AddXLXSBJDJJYZ(dberp, SQL, VnewID, sBJDID, sMXBH, sJGBID, sJGBIDS, "", "", "", "", "", ""); + } + } + + string sTDDWList = ""; + if (!bSameJLDW)//V_XSBJJSJGB_CLQDJLDW与V_XSBJJSJGB_JLDW可能不一致,才要单独处理XLXSBJDMX_BJDHQCLCB + { + SQL.Clear(); + SQL.Add("merge into V_XSBJJSJGB tar "); + SQL.Add("using "); + SQL.Add("( "); + SQL.Add(" select V_XSBJJSJGB_BJDXH as BJDXH,V_XSBJJSJGB_BJDHQCLCB as BJDHQCLCB,V_XSBJJSJGB_JGBJJ as JGBJJ,V_XSBJJSJGB_JGBBJ as JGBBJ,"); + SQL.Add(" ("); + SQL.Add(" case when upper(V_XSBJJSJGB_CLQDJLDW) in ('KM', '千米') and V_XSBJJSJGB_JGBJLDW in ('M', '米') then 0.001"); + SQL.Add(" when upper(V_XSBJJSJGB_CLQDJLDW) in ('M', '米') and V_XSBJJSJGB_JGBJLDW in ('Km', '千米') then 1000.0"); + SQL.Add(" when upper(V_XSBJJSJGB_CLQDJLDW) in ('M', '米') and V_XSBJJSJGB_JGBJLDW in ('M', '米') then 1.0"); + SQL.Add(" when upper(V_XSBJJSJGB_CLQDJLDW) in ('KM', '千米') and V_XSBJJSJGB_JGBJLDW in ('Km', '千米') then 1.0"); + sTDDWList = "("; + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when upper(V_XSBJJSJGB_CLQDJLDW) in ('KM', '千米') and V_XSBJJSJGB_JGBJLDW='{0}' then 0.001*{1} ", sKey, dicLenJLDWTD[sKey])); + SQL.Add(string.Format(" when upper(V_XSBJJSJGB_CLQDJLDW) in ('M', '米') and V_XSBJJSJGB_JGBJLDW='{0}' then {1} ", sKey, dicLenJLDWTD[sKey])); + SQL.Add(string.Format(" when upper(V_XSBJJSJGB_CLQDJLDW) = '{0}' and V_XSBJJSJGB_JGBJLDW in ('Km', '千米') then 1000.0/{1} ", sKey, dicLenJLDWTD[sKey])); + SQL.Add(string.Format(" when upper(V_XSBJJSJGB_CLQDJLDW) = '{0}' and V_XSBJJSJGB_JGBJLDW in ('M', '米') then 1.0/{1} ", sKey, dicLenJLDWTD[sKey])); + sTDDWList += "'" + sKey + "',"; + } + sTDDWList = sTDDWList.TrimEnd(','); + sTDDWList += ")"; + SQL.Add(" when upper(V_XSBJJSJGB_CLQDJLDW) in " + sTDDWList + " and V_XSBJJSJGB_JGBJLDW in " + sTDDWList + " then 1.0"); + SQL.Add(" when upper(V_XSBJJSJGB_CLQDJLDW) in ('T', '吨') and V_XSBJJSJGB_JGBJLDW in ('Kg', '千克', '公斤') then 0.001"); + SQL.Add(" when upper(V_XSBJJSJGB_CLQDJLDW) in ('KG', '千克', '公斤') and V_XSBJJSJGB_JGBJLDW in ('T', '吨') then 1000.0"); + SQL.Add(" when upper(V_XSBJJSJGB_CLQDJLDW) in ('KG', '千克', '公斤') and V_XSBJJSJGB_JGBJLDW in ('Kg', '千克', '公斤') then 1.0"); + SQL.Add(" when upper(V_XSBJJSJGB_CLQDJLDW) in ('T', '吨') and V_XSBJJSJGB_JGBJLDW in ('T', '吨') then 1.0"); + if (sBJU003.ToUpper().Equals("KM") || sBJU003.ToUpper().Equals("千米")) + { + SQL.Add(" when upper(V_XSBJJSJGB_CLQDJLDW) in ('KM', '千米') and V_XSBJJSJGB_JGBJLDW in ('Kg', '千克', '公斤') then (case when V_XSBJJSJGB_CLZL = 0 then 0 else 1.0/V_XSBJJSJGB_CLZL end)"); + SQL.Add(" when upper(V_XSBJJSJGB_CLQDJLDW) in ('M', '米') and V_XSBJJSJGB_JGBJLDW in ('Kg', '千克', '公斤') then (case when V_XSBJJSJGB_CLZL = 0 then 0 else (1.0/V_XSBJJSJGB_CLZL)*1000.0 end)"); + SQL.Add(" when upper(V_XSBJJSJGB_CLQDJLDW) in ('KG', '千克', '公斤') and V_XSBJJSJGB_JGBJLDW in ('Km', '千米') then V_XSBJJSJGB_CLZL"); + SQL.Add(" when upper(V_XSBJJSJGB_CLQDJLDW) in ('KM', '千米') and V_XSBJJSJGB_JGBJLDW in ('T', '吨') then (case when V_XSBJJSJGB_CLZL = 0 then 0 else (1.0/V_XSBJJSJGB_CLZL)*1000.0 end)"); + SQL.Add(" when upper(V_XSBJJSJGB_CLQDJLDW) in ('M', '米') and V_XSBJJSJGB_JGBJLDW in ('T', '吨') then (case when V_XSBJJSJGB_CLZL = 0 then 0 else (1.0/V_XSBJJSJGB_CLZL)* 1000.0*1000.0 end)"); + SQL.Add(" when upper(V_XSBJJSJGB_CLQDJLDW) in ('KG', '千克', '公斤') and V_XSBJJSJGB_JGBJLDW in ('Km', '千米') then V_XSBJJSJGB_CLZL"); + SQL.Add(" when upper(V_XSBJJSJGB_CLQDJLDW) in ('T', '吨') and V_XSBJJSJGB_JGBJLDW in ('Km', '千米') then V_XSBJJSJGB_CLZL/1000.0"); + SQL.Add(" when upper(V_XSBJJSJGB_CLQDJLDW) in ('KG', '千克', '公斤') and V_XSBJJSJGB_JGBJLDW in ('M', '米') then V_XSBJJSJGB_CLZL/1000.0"); + SQL.Add(" when upper(V_XSBJJSJGB_CLQDJLDW) in ('T', '吨') and V_XSBJJSJGB_JGBJLDW in ('M', '米') then V_XSBJJSJGB_CLZL/1000.0/1000.0"); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when upper(V_XSBJJSJGB_CLQDJLDW) in ('KG', '千克', '公斤') and V_XSBJJSJGB_JGBJLDW='{0}' then {1}*V_XSBJJSJGB_CLZL/1000.0 ", sKey, dicLenJLDWTD[sKey])); + SQL.Add(string.Format(" when upper(V_XSBJJSJGB_CLQDJLDW) in ('T', '吨') and V_XSBJJSJGB_JGBJLDW='{0}' then {1}*V_XSBJJSJGB_CLZL/1000.0/1000.0 ", sKey, dicLenJLDWTD[sKey])); + SQL.Add(string.Format(" when upper(V_XSBJJSJGB_CLQDJLDW) = '{0}' and V_XSBJJSJGB_JGBJLDW in ('KG', '千克', '公斤') then 1000.0/V_XSBJJSJGB_CLZL/{1} ", sKey, dicLenJLDWTD[sKey])); + SQL.Add(string.Format(" when upper(V_XSBJJSJGB_CLQDJLDW) = '{0}' and V_XSBJJSJGB_JGBJLDW in ('T', '吨') then 1000.0*1000.0/V_XSBJJSJGB_CLZL/{1} ", sKey, dicLenJLDWTD[sKey])); + } + } + else if (sBJU003.ToUpper().Equals("米") || sBJU003.ToUpper().Equals("M")) + { + SQL.Add(" when upper(V_XSBJJSJGB_CLQDJLDW) in ('KM', '千米') and V_XSBJJSJGB_JGBJLDW in ('Kg', '千克', '公斤') then (case when V_XSBJJSJGB_CLZL = 0 then 0 else (1.0/V_XSBJJSJGB_CLZL)*(1/1000.0) end)"); + SQL.Add(" when upper(V_XSBJJSJGB_CLQDJLDW) in ('M', '米') and V_XSBJJSJGB_JGBJLDW in ('Kg', '千克', '公斤') then (case when V_XSBJJSJGB_CLZL = 0 then 0 else 1.0/V_XSBJJSJGB_CLZL end)"); + SQL.Add(" when upper(V_XSBJJSJGB_CLQDJLDW) in ('KG', '千克', '公斤') and V_XSBJJSJGB_JGBJLDW in ('Km', '千米') then V_XSBJJSJGB_CLZL*1000.0"); + SQL.Add(" when upper(V_XSBJJSJGB_CLQDJLDW) in ('KM', '千米') and V_XSBJJSJGB_JGBJLDW in ('T', '吨') then (case when V_XSBJJSJGB_CLZL = 0 then 0 else (1.0/V_XSBJJSJGB_CLZL) end)"); + SQL.Add(" when upper(V_XSBJJSJGB_CLQDJLDW) in ('M', '米') and V_XSBJJSJGB_JGBJLDW in ('T', '吨') then (case when V_XSBJJSJGB_CLZL = 0 then 0 else (1.0/V_XSBJJSJGB_CLZL)*1000.0 end)"); + SQL.Add(" when upper(V_XSBJJSJGB_CLQDJLDW) in ('KG', '千克', '公斤') and V_XSBJJSJGB_JGBJLDW in ('Km', '千米') then V_XSBJJSJGB_CLZL*1000.0"); + SQL.Add(" when upper(V_XSBJJSJGB_CLQDJLDW) in ('T', '吨') and V_XSBJJSJGB_JGBJLDW in ('Km', '千米') then V_XSBJJSJGB_CLZL"); + SQL.Add(" when upper(V_XSBJJSJGB_CLQDJLDW) in ('KG', '千克', '公斤') and V_XSBJJSJGB_JGBJLDW in ('M', '米') then V_XSBJJSJGB_CLZL"); + SQL.Add(" when upper(V_XSBJJSJGB_CLQDJLDW) in ('T', '吨') and V_XSBJJSJGB_JGBJLDW in ('M', '米') then V_XSBJJSJGB_CLZL/1000.0"); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when upper(V_XSBJJSJGB_CLQDJLDW) in ('KG', '千克', '公斤') and V_XSBJJSJGB_JGBJLDW='{0}' then {1}*V_XSBJJSJGB_CLZL ", sKey, dicLenJLDWTD[sKey])); + SQL.Add(string.Format(" when upper(V_XSBJJSJGB_CLQDJLDW) in ('T', '吨') and V_XSBJJSJGB_JGBJLDW='{0}' then {1}*V_XSBJJSJGB_CLZL/1000.0 ", sKey, dicLenJLDWTD[sKey])); + SQL.Add(string.Format(" when upper(V_XSBJJSJGB_CLQDJLDW) = '{0}' and V_XSBJJSJGB_JGBJLDW in ('KG', '千克', '公斤') then 1/V_XSBJJSJGB_CLZL/{1} ", sKey, dicLenJLDWTD[sKey])); + SQL.Add(string.Format(" when upper(V_XSBJJSJGB_CLQDJLDW) = '{0}' and V_XSBJJSJGB_JGBJLDW in ('T', '吨') then 1000.0/V_XSBJJSJGB_CLZL/{1} ", sKey, dicLenJLDWTD[sKey])); + } + } + SQL.Add(" when upper(V_XSBJJSJGB_CLQDJLDW)=upper(V_XSBJJSJGB_JGBJLDW) and upper(V_XSBJJSJGB_CLQDJLDW) not in ('M','KM','米','千米','KG','T','千克','公斤','吨') "); + SQL.Add(" and V_XSBJJSJGB_JGBJLDW not in ('M','Km','米','千米','Kg','T','千克','公斤','吨') "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format("and V_XSBJJSJGB_JGBJLDW<>'{0}' ", sKey)); + } + SQL.Add(" then 1.0 else 0.0"); + SQL.Add(" end "); + SQL.Add(" ) as HSBL,V_XSBJJSJGB_CLQDJLDW"); + SQL.Add(" from V_XSBJJSJGB"); + //SQL.Add(" left join XLXSBJDMX on XLXSBJDMX_BJDID=V_XSBJJSJGB_BJDID and XLXSBJDMX_XH=V_XSBJJSJGB_BJDXH"); + SQL.Add(" where V_XSBJJSJGB_ID=:pID"); + SQL.Add(" and V_XSBJJSJGB_BJDID=:pBJDID "); + SQL.Add(" ) sor "); + SQL.Add(" on (V_XSBJJSJGB_BJDID=:pBJDID and V_XSBJJSJGB_BJDXH=BJDXH and V_XSBJJSJGB_ID=:pID )"); + SQL.Add(" when matched then update set V_XSBJJSJGB_BJDHQCLCB= BJDHQCLCB*HSBL "); + if (ABJDHQJSBJ == "Y" && sJGBJJLY == "A") + { + SQL.Add(",V_XSBJJSJGB_JGBJJ= JGBJJ*HSBL "); + SQL.Add(",V_XSBJJSJGB_JGBBJ= JGBBJ*HSBL "); + } + SQL.ParamByName("pID").Value = VnewID; + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + } + + SQL.Clear(); + SQL.Add("merge into XLXSBJDMX tar "); + SQL.Add("using "); + SQL.Add("( "); + SQL.Add(" select V_XSBJJSJGB_BJDXH as BJDXH,V_XSBJJSJGB_BJDHQCLCB as BJDHQCLCB,V_XSBJJSJGB_CLCB as CLCB,V_XSBJJSJGB_JGBJJ as JGBJJ,V_XSBJJSJGB_JGBBJ as JGBBJ,V_XSBJJSJGB_WGCPBZ as WGCPBZ,V_XSBJJSJGB_JGFBZ as JGFBZ,"); + SQL.Add(" ("); + SQL.Add(" case when upper(V_XSBJJSJGB_JGBJLDW) in ('KM', '千米') and XLXSBJDMX_JLDW in ('M', '米') then 0.001"); + SQL.Add(" when upper(V_XSBJJSJGB_JGBJLDW) in ('M', '米') and XLXSBJDMX_JLDW in ('Km', '千米') then 1000.0"); + SQL.Add(" when upper(V_XSBJJSJGB_JGBJLDW) in ('M', '米') and XLXSBJDMX_JLDW in ('M', '米') then 1.0"); + SQL.Add(" when upper(V_XSBJJSJGB_JGBJLDW) in ('KM', '千米') and XLXSBJDMX_JLDW in ('Km', '千米') then 1.0"); + sTDDWList = "("; + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when upper(V_XSBJJSJGB_JGBJLDW) in ('KM', '千米') and XLXSBJDMX_JLDW='{0}' then 0.001*{1} ", sKey, dicLenJLDWTD[sKey])); + SQL.Add(string.Format(" when upper(V_XSBJJSJGB_JGBJLDW) in ('M', '米') and XLXSBJDMX_JLDW='{0}' then {1} ", sKey, dicLenJLDWTD[sKey])); + SQL.Add(string.Format(" when upper(V_XSBJJSJGB_JGBJLDW) = '{0}' and XLXSBJDMX_JLDW in ('Km', '千米') then 1000.0/{1} ", sKey, dicLenJLDWTD[sKey])); + SQL.Add(string.Format(" when upper(V_XSBJJSJGB_JGBJLDW) = '{0}' and XLXSBJDMX_JLDW in ('M', '米') then 1.0/{1} ", sKey, dicLenJLDWTD[sKey])); + sTDDWList += "'" + sKey + "',"; + } + sTDDWList = sTDDWList.TrimEnd(','); + sTDDWList += ")"; + SQL.Add(" when upper(V_XSBJJSJGB_JGBJLDW) in " + sTDDWList + " and XLXSBJDMX_JLDW in " + sTDDWList + " then 1.0"); + SQL.Add(" when upper(V_XSBJJSJGB_JGBJLDW) in ('T', '吨') and XLXSBJDMX_JLDW in ('Kg', '千克', '公斤') then 0.001"); + SQL.Add(" when upper(V_XSBJJSJGB_JGBJLDW) in ('KG', '千克', '公斤') and XLXSBJDMX_JLDW in ('T', '吨') then 1000.0"); + SQL.Add(" when upper(V_XSBJJSJGB_JGBJLDW) in ('KG', '千克', '公斤') and XLXSBJDMX_JLDW in ('Kg', '千克', '公斤') then 1.0"); + SQL.Add(" when upper(V_XSBJJSJGB_JGBJLDW) in ('T', '吨') and XLXSBJDMX_JLDW in ('T', '吨') then 1.0"); + if (sBJU003.ToUpper().Equals("KM") || sBJU003.ToUpper().Equals("千米")) + { + SQL.Add(" when upper(V_XSBJJSJGB_JGBJLDW) in ('KM', '千米') and XLXSBJDMX_JLDW in ('Kg', '千克', '公斤') then (case when V_XSBJJSJGB_CLZL = 0 then 0 else 1.0/V_XSBJJSJGB_CLZL end)"); + SQL.Add(" when upper(V_XSBJJSJGB_JGBJLDW) in ('M', '米') and XLXSBJDMX_JLDW in ('Kg', '千克', '公斤') then (case when V_XSBJJSJGB_CLZL = 0 then 0 else (1.0/V_XSBJJSJGB_CLZL)*1000.0 end)"); + SQL.Add(" when upper(V_XSBJJSJGB_JGBJLDW) in ('KG', '千克', '公斤') and XLXSBJDMX_JLDW in ('Km', '千米') then V_XSBJJSJGB_CLZL"); + SQL.Add(" when upper(V_XSBJJSJGB_JGBJLDW) in ('KM', '千米') and XLXSBJDMX_JLDW in ('T', '吨') then (case when V_XSBJJSJGB_CLZL = 0 then 0 else (1.0/V_XSBJJSJGB_CLZL)*1000.0 end)"); + SQL.Add(" when upper(V_XSBJJSJGB_JGBJLDW) in ('M', '米') and XLXSBJDMX_JLDW in ('T', '吨') then (case when V_XSBJJSJGB_CLZL = 0 then 0 else (1.0/V_XSBJJSJGB_CLZL)* 1000.0*1000.0 end)"); + SQL.Add(" when upper(V_XSBJJSJGB_JGBJLDW) in ('KG', '千克', '公斤') and XLXSBJDMX_JLDW in ('Km', '千米') then V_XSBJJSJGB_CLZL"); + SQL.Add(" when upper(V_XSBJJSJGB_JGBJLDW) in ('T', '吨') and XLXSBJDMX_JLDW in ('Km', '千米') then V_XSBJJSJGB_CLZL/1000.0"); + SQL.Add(" when upper(V_XSBJJSJGB_JGBJLDW) in ('KG', '千克', '公斤') and XLXSBJDMX_JLDW in ('M', '米') then V_XSBJJSJGB_CLZL/1000.0"); + SQL.Add(" when upper(V_XSBJJSJGB_JGBJLDW) in ('T', '吨') and XLXSBJDMX_JLDW in ('M', '米') then V_XSBJJSJGB_CLZL/1000.0/1000.0"); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when upper(V_XSBJJSJGB_JGBJLDW) in ('KG', '千克', '公斤') and XLXSBJDMX_JLDW='{0}' then {1}*V_XSBJJSJGB_CLZL/1000.0 ", sKey, dicLenJLDWTD[sKey])); + SQL.Add(string.Format(" when upper(V_XSBJJSJGB_JGBJLDW) in ('T', '吨') and XLXSBJDMX_JLDW='{0}' then {1}*V_XSBJJSJGB_CLZL/1000.0/1000.0 ", sKey, dicLenJLDWTD[sKey])); + SQL.Add(string.Format(" when upper(V_XSBJJSJGB_JGBJLDW) = '{0}' and XLXSBJDMX_JLDW in ('KG', '千克', '公斤') then 1000.0/V_XSBJJSJGB_CLZL/{1} ", sKey, dicLenJLDWTD[sKey])); + SQL.Add(string.Format(" when upper(V_XSBJJSJGB_JGBJLDW) = '{0}' and XLXSBJDMX_JLDW in ('T', '吨') then 1000.0*1000.0/V_XSBJJSJGB_CLZL/{1} ", sKey, dicLenJLDWTD[sKey])); + } + } + else if (sBJU003.ToUpper().Equals("米") || sBJU003.ToUpper().Equals("M")) + { + SQL.Add(" when upper(V_XSBJJSJGB_JGBJLDW) in ('KM', '千米') and XLXSBJDMX_JLDW in ('Kg', '千克', '公斤') then (case when V_XSBJJSJGB_CLZL = 0 then 0 else (1.0/V_XSBJJSJGB_CLZL)*(1/1000.0) end)"); + SQL.Add(" when upper(V_XSBJJSJGB_JGBJLDW) in ('M', '米') and XLXSBJDMX_JLDW in ('Kg', '千克', '公斤') then (case when V_XSBJJSJGB_CLZL = 0 then 0 else 1.0/V_XSBJJSJGB_CLZL end)"); + SQL.Add(" when upper(V_XSBJJSJGB_JGBJLDW) in ('KG', '千克', '公斤') and XLXSBJDMX_JLDW in ('Km', '千米') then V_XSBJJSJGB_CLZL*1000.0"); + SQL.Add(" when upper(V_XSBJJSJGB_JGBJLDW) in ('KM', '千米') and XLXSBJDMX_JLDW in ('T', '吨') then (case when V_XSBJJSJGB_CLZL = 0 then 0 else (1.0/V_XSBJJSJGB_CLZL) end)"); + SQL.Add(" when upper(V_XSBJJSJGB_JGBJLDW) in ('M', '米') and XLXSBJDMX_JLDW in ('T', '吨') then (case when V_XSBJJSJGB_CLZL = 0 then 0 else (1.0/V_XSBJJSJGB_CLZL)*1000.0 end)"); + SQL.Add(" when upper(V_XSBJJSJGB_JGBJLDW) in ('KG', '千克', '公斤') and XLXSBJDMX_JLDW in ('Km', '千米') then V_XSBJJSJGB_CLZL*1000.0"); + SQL.Add(" when upper(V_XSBJJSJGB_JGBJLDW) in ('T', '吨') and XLXSBJDMX_JLDW in ('Km', '千米') then V_XSBJJSJGB_CLZL"); + SQL.Add(" when upper(V_XSBJJSJGB_JGBJLDW) in ('KG', '千克', '公斤') and XLXSBJDMX_JLDW in ('M', '米') then V_XSBJJSJGB_CLZL"); + SQL.Add(" when upper(V_XSBJJSJGB_JGBJLDW) in ('T', '吨') and XLXSBJDMX_JLDW in ('M', '米') then V_XSBJJSJGB_CLZL/1000.0"); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when upper(V_XSBJJSJGB_JGBJLDW) in ('KG', '千克', '公斤') and XLXSBJDMX_JLDW='{0}' then {1}*V_XSBJJSJGB_CLZL ", sKey, dicLenJLDWTD[sKey])); + SQL.Add(string.Format(" when upper(V_XSBJJSJGB_JGBJLDW) in ('T', '吨') and XLXSBJDMX_JLDW='{0}' then {1}*V_XSBJJSJGB_CLZL/1000.0 ", sKey, dicLenJLDWTD[sKey])); + SQL.Add(string.Format(" when upper(V_XSBJJSJGB_JGBJLDW) = '{0}' and XLXSBJDMX_JLDW in ('KG', '千克', '公斤') then 1/V_XSBJJSJGB_CLZL/{1} ", sKey, dicLenJLDWTD[sKey])); + SQL.Add(string.Format(" when upper(V_XSBJJSJGB_JGBJLDW) = '{0}' and XLXSBJDMX_JLDW in ('T', '吨') then 1000.0/V_XSBJJSJGB_CLZL/{1} ", sKey, dicLenJLDWTD[sKey])); + } + } + SQL.Add(" when upper(V_XSBJJSJGB_JGBJLDW)=upper(XLXSBJDMX_JLDW) and upper(V_XSBJJSJGB_JGBJLDW) not in ('M','KM','米','千米','KG','T','千克','公斤','吨') "); + SQL.Add(" and XLXSBJDMX_JLDW not in ('M','Km','米','千米','Kg','T','千克','公斤','吨') "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format("and XLXSBJDMX_JLDW<>'{0}' ", sKey)); + } + SQL.Add(" then 1.0 else 0.0"); + SQL.Add(" end "); + SQL.Add(" ) as HSBL,V_XSBJJSJGB_JGBJLDW "); + SQL.Add(" from V_XSBJJSJGB"); + SQL.Add(" left join XLXSBJDMX on XLXSBJDMX_BJDID=V_XSBJJSJGB_BJDID and XLXSBJDMX_XH=V_XSBJJSJGB_BJDXH"); + SQL.Add(" where V_XSBJJSJGB_ID=:pID"); + SQL.Add(" and V_XSBJJSJGB_BJDID=:pBJDID"); + SQL.Add(" ) sor "); + SQL.Add(" on (XLXSBJDMX_BJDID=:pBJDID and XLXSBJDMX_XH=BJDXH)"); + if (sBJU018.Equals("Y"))//若BJU018参数值为Y,且为价格表单位为长度单位,则先换算倍率后再保留小数位数。 + { + SQL.Add(" when matched then update set XLXSBJDMX_CLCB= case when upper(V_XSBJJSJGB_JGBJLDW) in ('M','米','KM','千米','卷') then RoundFix(CLCB*HSBL," + iXSWS.ToString() + ") else RoundFix(CLCB," + iXSWS.ToString() + ")*HSBL end,"); + SQL.Add(" XLXSBJDMX_JGBJJ= case when upper(V_XSBJJSJGB_JGBJLDW) in ('M','米','KM','千米','卷') then RoundFix(JGBJJ*HSBL," + iXSWS.ToString() + ") else RoundFix(JGBJJ," + iXSWS.ToString() + ")*HSBL end ,"); + SQL.Add(" XLXSBJDMX_JGBBJ= case when upper(V_XSBJJSJGB_JGBJLDW) in ('M','米','KM','千米','卷') then RoundFix(JGBBJ*HSBL," + iXSWS.ToString() + ") else RoundFix(JGBBJ," + iXSWS.ToString() + ")*HSBL end,"); + SQL.Add(" XLXSBJDMX_JGBBJTZ = 'N', XLXSBJDMX_JGBBJGXSJ=:pJGBBJGXSJ,"); + SQL.Add(" XLXSBJDMX_BJLY='JGBBJ',"); + if (!sMXBH.Equals("JGE"))//非表价实时计算价格表 + { + SQL.Add(" XLXSBJDMX_BJDHQCLCB= case when isnull(XLXSBJDMX_BJDHQCLCBTZ,'N') = 'Y' THEN XLXSBJDMX_BJDHQCLCB ELSE case when upper(V_XSBJJSJGB_JGBJLDW) in ('M','米','KM','千米') then RoundFix(BJDHQCLCB*HSBL," + iXSWS.ToString() + ") else RoundFix(BJDHQCLCB," + iXSWS.ToString() + ")*HSBL end END,"); + } + else + { + SQL.Add(" XLXSBJDMX_BJDHQCLCB= case when upper(V_XSBJJSJGB_JGBJLDW) in ('M','米','KM','千米','卷') then RoundFix(BJDHQCLCB*HSBL," + iXSWS.ToString() + ") else RoundFix(BJDHQCLCB," + iXSWS.ToString() + ")*HSBL end,"); + SQL.Add(" XLXSBJDMX_BJDHQCLCBTZ = 'N',"); + } + + } + else + { + SQL.Add(" when matched then update set XLXSBJDMX_CLCB=RoundFix(CLCB," + iXSWS.ToString() + ")*HSBL,"); + SQL.Add(" XLXSBJDMX_JGBJJ=RoundFix(JGBJJ," + iXSWS.ToString() + ")*HSBL,"); + SQL.Add(" XLXSBJDMX_JGBBJ=RoundFix(JGBBJ," + iXSWS.ToString() + ")*HSBL,"); + SQL.Add(" XLXSBJDMX_JGBBJTZ = 'N',XLXSBJDMX_JGBBJGXSJ=:pJGBBJGXSJ,"); + SQL.Add(" XLXSBJDMX_BJLY='JGBBJ',"); + if (!sMXBH.Equals("JGE"))//非表价实时计算价格表 + { + SQL.Add(" XLXSBJDMX_BJDHQCLCB=case when isnull(XLXSBJDMX_BJDHQCLCBTZ,'N') = 'Y' THEN XLXSBJDMX_BJDHQCLCB ELSE RoundFix(BJDHQCLCB," + iXSWS.ToString() + ")*HSBL END,"); + } + else + { + SQL.Add(" XLXSBJDMX_BJDHQCLCB=RoundFix(BJDHQCLCB," + iXSWS.ToString() + ")*HSBL,"); + SQL.Add(" XLXSBJDMX_BJDHQCLCBTZ = 'N',"); + } + + } + SQL.Add(" XLXSBJDMX_WGCPBZ=WGCPBZ,"); + SQL.Add(" XLXSBJDMX_JGFBZ=JGFBZ"); + SQL.ParamByName("pID").Value = VnewID; + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pJGBBJGXSJ").Value = MISproUtils.GetServerTime(); + dberp.ExecSQL(SQL); + + if (!sJGEJJYZList.Trim().Equals("")) + { + SQL.Clear(); + SQL.Add("merge into XLXSBJDJJYZ tar "); + SQL.Add("using "); + SQL.Add("( "); + SQL.Add(" select V_XSBJJSJGB_BJDXH as BJDXH,"); + SQL.Add(" (case when XLXSBJDMX_JLDW in ('Kg', '千克', '公斤') then (case when V_XSBJJSJGB_CLZL=0 then 0 else 1.0/V_XSBJJSJGB_CLZL end)"); + SQL.Add(" when XLXSBJDMX_JLDW in ('T', '吨') then (case when V_XSBJJSJGB_CLZL=0 then 0 else (1.0/V_XSBJJSJGB_CLZL)*1000.0 end)"); + if (sBJU003.ToUpper().Equals("KM") || sBJU003.ToUpper().Equals("千米")) + { + SQL.Add(" when XLXSBJDMX_JLDW in ('M', '米') then 0.001"); + SQL.Add(" when XLXSBJDMX_JLDW in ('Km', '千米') then 1.0"); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when XLXSBJDMX_JLDW='{0}' then 0.001*{1} ", sKey, dicLenJLDWTD[sKey])); + } + } + else if (sBJU003.ToUpper().Equals("米") || sBJU003.ToUpper().Equals("M")) + { + SQL.Add(" when XLXSBJDMX_JLDW in ('M', '米') then 1.0"); + SQL.Add(" when XLXSBJDMX_JLDW in ('Km', '千米') then 1000.0"); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when XLXSBJDMX_JLDW='{0}' then {1} ", sKey, dicLenJLDWTD[sKey])); + } + } + SQL.Add(" else 0.0 "); + SQL.Add(" end "); + SQL.Add(" ) as HSBL"); + SQL.Add(" from V_XSBJJSJGB"); + SQL.Add(" left join XLXSBJDMX on XLXSBJDMX_BJDID=V_XSBJJSJGB_BJDID and XLXSBJDMX_XH=V_XSBJJSJGB_BJDXH"); + SQL.Add(" where V_XSBJJSJGB_ID=:pID"); + SQL.Add(" and V_XSBJJSJGB_BJDID=:pBJDID"); + SQL.Add(" ) sor "); + SQL.Add(" on (XLXSBJDJJYZ_BJDID=:pBJDID and XLXSBJDJJYZ_XH=BJDXH)"); + SQL.Add(" when matched then update set "); + string[] sTJYZ = sJGEJJYZList.Split(','); + SQL.Add(string.Format("XLXSBJDJJYZ_YZZ{0}=XLXSBJDJJYZ_YZZ{0}*HSBL", sTJYZ[0].Trim().Replace("JZ", ""))); + for (int i = 1; i < sTJYZ.Length; i++) + { + if (!sTJYZ[i].Trim().Equals("")) + { + SQL.Add(string.Format(",XLXSBJDJJYZ_YZZ{0}=XLXSBJDJJYZ_YZZ{0}*HSBL", sTJYZ[i].Trim().Replace("JZ", ""))); + } + } + SQL.ParamByName("pID").Value = VnewID; + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + } + if (Act == CalcAction.Insert || Act == CalcAction.Copy) + { + SQL.Clear(); + SQL.Add("merge into XLXSBJDMX tar "); + SQL.Add("using "); + SQL.Add("( "); + SQL.Add(" select V_XSBJJSJGB_BJDXH as BJDXH,"); + SQL.Add(" (case when XLXSBJDMX_JLDW in ('Kg', '千克', '公斤') then 1.0"); + SQL.Add(" when XLXSBJDMX_JLDW in ('T', '吨') then 1000.0"); + if (sBJU003.ToUpper().Equals("KM") || sBJU003.ToUpper().Equals("千米")) + { + SQL.Add(" when XLXSBJDMX_JLDW in ('M', '米') then RoundFix(V_XSBJJSJGB_CLZL,6)*0.001"); + SQL.Add(" when XLXSBJDMX_JLDW in ('Km', '千米') then RoundFix(V_XSBJJSJGB_CLZL,6)"); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when XLXSBJDMX_JLDW='{0}' then RoundFix(V_XSBJJSJGB_CLZL,6)*0.001*{1} ", sKey, dicLenJLDWTD[sKey])); + } + } + else if (sBJU003.ToUpper().Equals("米") || sBJU003.ToUpper().Equals("M")) + { + SQL.Add(" when XLXSBJDMX_JLDW in ('Km', '千米') then RoundFix(V_XSBJJSJGB_CLZL,6)*1000.0"); + SQL.Add(" when XLXSBJDMX_JLDW in ('M', '米') then RoundFix(V_XSBJJSJGB_CLZL,6)"); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when XLXSBJDMX_JLDW='{0}' then RoundFix(V_XSBJJSJGB_CLZL,6)*{1} ", sKey, dicLenJLDWTD[sKey])); + } + } + SQL.Add(" else 0.0 "); + SQL.Add(" end "); + SQL.Add(" ) as DWCLZL"); + SQL.Add(" from V_XSBJJSJGB"); + SQL.Add(" left join XLXSBJDMX on XLXSBJDMX_BJDID=V_XSBJJSJGB_BJDID and XLXSBJDMX_XH=V_XSBJJSJGB_BJDXH"); + SQL.Add(" where V_XSBJJSJGB_ID=:pID"); + SQL.Add(" and V_XSBJJSJGB_BJDID=:pBJDID"); + SQL.Add(" ) sor "); + SQL.Add(" on (XLXSBJDMX_BJDID=:pBJDID and XLXSBJDMX_XH=BJDXH)"); + SQL.Add(" when matched then update set XLXSBJDMX_CLZL=XLXSBJDMX_BJSL*DWCLZL"); + SQL.ParamByName("pID").Value = VnewID; + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + CalBJDTLZL(dberp, SQL, sBJDID); + + } + } + catch (Exception ex) + { + sErrMsg = ex.Message; + } + finally + { + //删除计算临时表 + SQL.Clear(); + SQL.Add("delete from V_XSBJJSJGB "); + SQL.Add(" where V_XSBJJSJGB_ID=:pID"); + SQL.Add(" and V_XSBJJSJGB_BJDID=:pBJDID"); + SQL.ParamByName("pID").Value = VnewID; + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + } + } + + public static void CalcUpdateJGBBJ_JGE(TDatabase dberp, TSQL SQL, DataSet dsJGBYZ, int VnewID, string sBJDID, string sMXBH, string sJGBID, int iXSWS, string sJSBLFS, string sWHRID, string sWHR, string sJGBIDS) + { + //据材料成本及调整因子的值计算无税产品单价、含税产品单价 + //SQL.Clear(); + //SQL.Add("select XLXSJGBYZ_YZID,XLXSTZYZ_JJFS,XLXSTZYZ_TJYZID,XLXSTZYZ_TJYS"); + //SQL.Add(" from XLXSJGBYZ"); + //SQL.Add(" left join XLXSTZYZ on XLXSTZYZ_MXBH='JZJ' and XLXSTZYZ_YZID=XLXSJGBYZ_YZID"); + //SQL.Add(" where XLXSJGBYZ_JGBID=:pJGBID"); + //SQL.Add(" order by XLXSTZYZ_TJYZID,XLXSTZYZ_XSXH,XLXSJGBYZ_YZID"); + //SQL.ParamByName("pJGBID").Value = sJGBID; + //DataSet dsJGBYZ = dberp.OpenDataSet(SQL); + if (dsJGBYZ.Tables[0].Rows.Count > 0) + { + SQL.Clear(); + SQL.Add("select XLXSBJD_BJFLID "); + SQL.Add(" from XLXSBJD "); + SQL.Add(" where XLXSBJD_BJDID=:pBJDID"); + SQL.ParamByName("pBJDID").Value = sBJDID; + DataSet dsBJD = dberp.OpenDataSet(SQL); + string sBJFLID = ""; + if (dsBJD.Tables[0].Rows.Count > 0) + { + sBJFLID = dsBJD.Tables[0].Rows[0]["XLXSBJD_BJFLID"].ToString().Trim(); + } + string sJSGS = XLBJDUtils.GetJGBJSGS(sJGBID); + + string sJGBJJLY = XLBJDUtils.GetXLXSJGBXXByJGBID(sJGBID).XLXSJGB_JJLY; + string ABJDHQJSBJ = XLBJDUtils.GetBJFLXX(sBJFLID).XLXSBJFL_ABJDHQJSBJ; + string sTJYSList_ = "";//记录调价因素为空的因子id + string sTJYSList1 = "";//记录调价因素为'1'的因子id + string sTJYSList3 = "";//记录调价因素为'3'的因子id + string sTJYSList4 = "";//记录调价因素为'4'的因子id + string sTJYSList5 = "";//记录调价因素为'5'的因子id + string sTJYSList8 = "";//记录调价因素为'8'的因子id + for (int i = 0; i < dsJGBYZ.Tables[0].Rows.Count; i++) + { + if (dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYS"].ToString().Trim().Equals("")) + { + sTJYSList_ += dsJGBYZ.Tables[0].Rows[i]["XLXSJGBYZ_YZID"].ToString().Trim() + ","; + } + else if (dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYS"].ToString().Trim().Equals("1")) + { + sTJYSList1 += dsJGBYZ.Tables[0].Rows[i]["XLXSJGBYZ_YZID"].ToString().Trim() + ","; + } + else if (dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYS"].ToString().Trim().Equals("3")) + { + sTJYSList3 += dsJGBYZ.Tables[0].Rows[i]["XLXSJGBYZ_YZID"].ToString().Trim() + ","; + } + else if (dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYS"].ToString().Trim().Equals("4")) + { + sTJYSList4 += dsJGBYZ.Tables[0].Rows[i]["XLXSJGBYZ_YZID"].ToString().Trim() + ","; + } + else if (dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYS"].ToString().Trim().Equals("5")) + { + sTJYSList5 += dsJGBYZ.Tables[0].Rows[i]["XLXSJGBYZ_YZID"].ToString().Trim() + ","; + } + else if (dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYS"].ToString().Trim().Equals("8")) + { + sTJYSList8 += dsJGBYZ.Tables[0].Rows[i]["XLXSJGBYZ_YZID"].ToString().Trim() + ","; + } + } + sTJYSList_ = sTJYSList_.TrimEnd(','); + sTJYSList1 = sTJYSList1.TrimEnd(','); + sTJYSList3 = sTJYSList3.TrimEnd(','); + sTJYSList4 = sTJYSList4.TrimEnd(','); + sTJYSList5 = sTJYSList5.TrimEnd(','); + sTJYSList8 = sTJYSList8.TrimEnd(','); + if (ABJDHQJSBJ == "Y" && sJGBJJLY == "A" && sMXBH == "JGB") + { + SQL.Clear(); + SQL.Add("delete from XLXSBJDJJYZ where XLXSBJDJJYZ_BJDID=:pBJDID "); + SQL.Add(" and exists(select 1 from V_XSBJJSJGB where V_XSBJJSJGB_ID=:pID and V_XSBJJSJGB_BJDID=:pBJDID and V_XSBJJSJGB_BJDXH=XLXSBJDJJYZ_XH)");//这里不用限制V_XSBJJSJGB_WGCPBZ<>'Y' + SQL.ParamByName("pID").Value = VnewID; + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + SQL.Clear(); + SQL.Add("insert into XLXSBJDJJYZ(XLXSBJDJJYZ_BJDID, XLXSBJDJJYZ_XH, XLXSBJDJJYZ_YZZ01,XLXSBJDJJYZ_YZZ02,XLXSBJDJJYZ_YZZ03,XLXSBJDJJYZ_YZZ04,XLXSBJDJJYZ_YZZ05,XLXSBJDJJYZ_YZZ06,XLXSBJDJJYZ_YZZ07,XLXSBJDJJYZ_YZZ08,XLXSBJDJJYZ_YZZ09,XLXSBJDJJYZ_YZZ10,XLXSBJDJJYZ_YSJDZ) "); + SQL.Add("select V_XSBJJSJGB_BJDID,V_XSBJJSJGB_BJDXH,isnull(XLXSJGBYZZ0_YZZ01,0),isnull(XLXSJGBYZZ0_YZZ02,0),isnull(XLXSJGBYZZ0_YZZ03,0),isnull(XLXSJGBYZZ0_YZZ04,0),isnull(XLXSJGBYZZ0_YZZ05,0),isnull(XLXSJGBYZZ0_YZZ06,0),isnull(XLXSJGBYZZ0_YZZ07,0),isnull(XLXSJGBYZZ0_YZZ08,0),isnull(XLXSJGBYZZ0_YZZ09,0),isnull(XLXSJGBYZZ0_YZZ10,0),V_XSBJJSJGB_JGBYSJDZ "); + SQL.Add(" from V_XSBJJSJGB"); + SQL.Add(" left join XLXSJGBYZZ0 on XLXSJGBYZZ0_JGBID=:pJGBID and XLXSJGBYZZ0_XH=V_XSBJJSJGB_SYJGBXH"); + SQL.Add(" where V_XSBJJSJGB_ID=:pID and V_XSBJJSJGB_BJDID=:pBJDID "); + SQL.Add(" and V_XSBJJSJGB_WGCPBZ<>'Y' and V_XSBJJSJGB_JGFBZ<>'Y' and V_XSBJJSJGB_JGBMXCPBZ = 'Y' "); + SQL.ParamByName("pID").Value = VnewID; + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + } + else + AddXLXSBJDJJYZ(dberp, SQL, VnewID, sBJDID, sMXBH, sJGBID, sJGBIDS, sTJYSList_, sTJYSList1, sTJYSList3, sTJYSList4, sTJYSList5, sTJYSList8); + + string sJDSQL = "1"; + string sKDSQL = "1"; + string sJJSQL = "0"; + string sSXSQL = "1"; + string sTJYZID = dsJGBYZ.Tables[0].Rows[0]["XLXSTZYZ_TJYZID"].ToString().Trim(); + string sJJFS = dsJGBYZ.Tables[0].Rows[0]["XLXSTZYZ_JJFS"].ToString().Trim(); + for (int i = 1; i < dsJGBYZ.Tables[0].Rows.Count; i++) + { + if (!sTJYZID.Equals(dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYZID"].ToString().Trim())) + { + if (sJJFS.Equals("JD")) + sJDSQL = sJDSQL + "*(1+JDYZZ_" + sTJYZID + "/100.0)"; + else if (sJJFS.Equals("KD")) + sKDSQL = sKDSQL + "/(1-KDYZZ_" + sTJYZID + "/100.0)"; + else if (sJJFS.Equals("JJ")) + sJJSQL += "+JJYZZ_" + sTJYZID; + else if (sJJFS.Equals("SX")) + sSXSQL = sSXSQL + "*(case when SXYZZ_" + sTJYZID + ">=0 then 1/(1-SXYZZ_" + sTJYZID + "/100.0) else (1+SXYZZ_" + sTJYZID + "/100.0) end)"; + + sTJYZID = dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYZID"].ToString().Trim(); + sJJFS = dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_JJFS"].ToString().Trim(); + } + } + if (sJJFS.Equals("JD")) + sJDSQL = sJDSQL + "*(1+JDYZZ_" + sTJYZID + "/100.0)"; + else if (sJJFS.Equals("KD")) + sKDSQL = sKDSQL + "/(1-KDYZZ_" + sTJYZID + "/100.0)"; + else if (sJJFS.Equals("JJ")) + sJJSQL += "+JJYZZ_" + sTJYZID; + else if (sJJFS.Equals("SX")) + sSXSQL = sSXSQL + "*(case when SXYZZ_" + sTJYZID + ">=0 then 1/(1-SXYZZ_" + sTJYZID + "/100.0) else (1+SXYZZ_" + sTJYZID + "/100.0) end)"; + + SQL.Clear(); + SQL.Add(" merge into V_XSBJJSJGB tar "); + SQL.Add(" using ( "); + SQL.Add("select BJDID,BJDXH," + sJDSQL + " as JDYZZ," + sKDSQL + " as KDYZZ," + sJJSQL + " as JJYZZ," + sSXSQL + " as SXYZZ,XLXSBJDJJYZ_YZZ01,XLXSBJDJJYZ_YZZ02,XLXSBJDJJYZ_YZZ03,XLXSBJDJJYZ_YZZ04,XLXSBJDJJYZ_YZZ05,XLXSBJDJJYZ_YZZ06,XLXSBJDJJYZ_YZZ07,XLXSBJDJJYZ_YZZ08,XLXSBJDJJYZ_YZZ09,XLXSBJDJJYZ_YZZ10 "); + SQL.Add(" from "); + SQL.Add("("); + SQL.Add(" select XLXSBJDJJYZ_BJDID as BJDID,XLXSBJDJJYZ_XH as BJDXH,XLXSBJDJJYZ_YZZ01,XLXSBJDJJYZ_YZZ02,XLXSBJDJJYZ_YZZ03,XLXSBJDJJYZ_YZZ04,XLXSBJDJJYZ_YZZ05,XLXSBJDJJYZ_YZZ06,XLXSBJDJJYZ_YZZ07,XLXSBJDJJYZ_YZZ08,XLXSBJDJJYZ_YZZ09,XLXSBJDJJYZ_YZZ10,"); + SQL.Add(" ("); + SQL.Add(string.Format("XLXSBJDJJYZ_YZZ{0}", dsJGBYZ.Tables[0].Rows[0]["XLXSJGBYZ_YZID"].ToString().Trim().Replace("JZ", ""))); + + sTJYZID = dsJGBYZ.Tables[0].Rows[0]["XLXSTZYZ_TJYZID"].ToString().Trim(); + sJJFS = dsJGBYZ.Tables[0].Rows[0]["XLXSTZYZ_JJFS"].ToString().Trim(); + for (int i = 1; i < dsJGBYZ.Tables[0].Rows.Count; i++) + { + if (sTJYZID.Equals(dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYZID"].ToString().Trim())) + { + SQL.Add(string.Format("+XLXSBJDJJYZ_YZZ{0}", dsJGBYZ.Tables[0].Rows[i]["XLXSJGBYZ_YZID"].ToString().Trim().Replace("JZ", ""))); + } + else + { + if (sJJFS.Equals("JD")) + SQL.Add(") as " + "JDYZZ_" + sTJYZID); + else if (sJJFS.Equals("KD")) + SQL.Add(") as " + "KDYZZ_" + sTJYZID); + else if (sJJFS.Equals("JJ")) + SQL.Add(") as " + "JJYZZ_" + sTJYZID); + else if (sJJFS.Equals("SX")) + SQL.Add(") as " + "SXYZZ_" + sTJYZID); + + sTJYZID = dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYZID"].ToString().Trim(); + sJJFS = dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_JJFS"].ToString().Trim(); + SQL.Add(",("); + SQL.Add(string.Format("XLXSBJDJJYZ_YZZ{0}", dsJGBYZ.Tables[0].Rows[i]["XLXSJGBYZ_YZID"].ToString().Trim().Replace("JZ", ""))); + } + } + if (sJJFS.Equals("JD")) + SQL.Add(") as " + "JDYZZ_" + sTJYZID); + else if (sJJFS.Equals("KD")) + SQL.Add(") as " + "KDYZZ_" + sTJYZID); + else if (sJJFS.Equals("JJ")) + SQL.Add(") as " + "JJYZZ_" + sTJYZID); + else if (sJJFS.Equals("SX")) + SQL.Add(") as " + "SXYZZ_" + sTJYZID); + + SQL.Add(" from XLXSBJDJJYZ"); + SQL.Add(" where XLXSBJDJJYZ_BJDID=:pBJDID "); + SQL.Add(" ) a"); + SQL.Add(" ) sor "); + SQL.Add(" on( "); + SQL.Add(" V_XSBJJSJGB_ID=:pID "); + SQL.Add(" and V_XSBJJSJGB_BJDID=:pBJDID "); + SQL.Add(" and V_XSBJJSJGB_WGCPBZ<>'Y' and V_XSBJJSJGB_JGFBZ<>'Y' "); + SQL.Add(" and V_XSBJJSJGB_BJDID=sor.BJDID "); + SQL.Add(" and V_XSBJJSJGB_BJDXH=BJDXH "); + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + if (ABJDHQJSBJ == "Y" && sJGBJJLY == "A" && sMXBH == "JGB") + { + if (sJSBLFS.Equals("C1") || sJSBLFS.Equals("C2"))//C1|进一法(材料价各分项进一)、C2|进一法(材料价汇总进一) + { + if (sJSGS.Equals("")) + { + //此处根据序号区分先加价还是先加点/扣点 + if (XLBJDUtils.JJFirst_JGBYZ(sJGBID)) + { + //先加价 + SQL.Add(string.Format("V_XSBJJSJGB_JGBBJ=CEILING(RoundFix((abs(RoundFix(V_XSBJJSJGB_JGBJJ," + iXSWS + "))+isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)*(case when V_XSBJJSJGB_JGBYSJDZ = 0 then 1 else V_XSBJJSJGB_JGBYSJDZ end)*{0},8))/{0}", Math.Pow(10.0, iXSWS))); + SQL.Add(" * (case when V_XSBJJSJGB_JGBJJ < 0 then (-1) when V_XSBJJSJGB_JGBJJ = 0 then 0 else 1 end) "); + } + else + { + //先加点 + SQL.Add(string.Format("V_XSBJJSJGB_JGBBJ=CEILING(RoundFix((abs(RoundFix(V_XSBJJSJGB_JGBJJ," + iXSWS + "))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+isnull(JJYZZ,0))*(case when V_XSBJJSJGB_JGBYSJDZ = 0 then 1 else V_XSBJJSJGB_JGBYSJDZ end)*{0},8))/{0}", Math.Pow(10.0, iXSWS))); + SQL.Add(" * (case when V_XSBJJSJGB_JGBJJ < 0 then (-1) when V_XSBJJSJGB_JGBJJ = 0 then 0 else 1 end) "); + } + } + else + { + SQL.Add(string.Format("V_XSBJJSJGB_JGBBJ=CEILING(RoundFix({0}*{1},8))/{1}", sJSGS.Replace("JZ", "XLXSBJDJJYZ_YZZ").Replace("JGBJJ", "abs(RoundFix(V_XSBJJSJGB_JGBJJ," + iXSWS + "))"), Math.Pow(10.0, iXSWS))); + SQL.Add(" * (case when V_XSBJJSJGB_JGBJJ < 0 then (-1) when V_XSBJJSJGB_JGBJJ = 0 then 0 else 1 end) "); + } + } + else if (sJSBLFS.Equals("C3"))//C3|材料价汇总进一+表价进一到十位 + { + if (sJSGS.Equals("")) + { + //此处根据序号区分先加价还是先加点/扣点 + if (XLBJDUtils.JJFirst_JGBYZ(sJGBID)) + { + //先加价 + SQL.Add(string.Format(" V_XSBJJSJGB_JGBBJ=CEILING(RoundFix((abs(RoundFix(V_XSBJJSJGB_JGBJJ," + iXSWS + "))+isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)*(case when V_XSBJJSJGB_JGBYSJDZ = 0 then 1 else V_XSBJJSJGB_JGBYSJDZ end),{0})/10)*10", iXSWS.ToString().Trim())); + SQL.Add(" * (case when V_XSBJJSJGB_JGBJJ < 0 then (-1) when V_XSBJJSJGB_JGBJJ = 0 then 0 else 1 end) "); + } + else + { + //先加点 + SQL.Add(string.Format(" V_XSBJJSJGB_JGBBJ=CEILING(RoundFix((abs(RoundFix(V_XSBJJSJGB_JGBJJ," + iXSWS + "))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+isnull(JJYZZ,0))*(case when V_XSBJJSJGB_JGBYSJDZ = 0 then 1 else V_XSBJJSJGB_JGBYSJDZ end),{0})/10)*10", iXSWS.ToString().Trim())); + SQL.Add(" * (case when V_XSBJJSJGB_JGBJJ < 0 then (-1) when V_XSBJJSJGB_JGBJJ = 0 then 0 else 1 end) "); + } + } + else + { + SQL.Add(string.Format("V_XSBJJSJGB_JGBBJ=CEILING(RoundFix({0},{1})/10)*10", sJSGS.Replace("JZ", "XLXSBJDJJYZ_YZZ").Replace("JGBJJ", "abs(RoundFix(V_XSBJJSJGB_JGBJJ," + iXSWS + "))"), iXSWS.ToString().Trim())); + SQL.Add(" * (case when V_XSBJJSJGB_JGBJJ < 0 then (-1) when V_XSBJJSJGB_JGBJJ = 0 then 0 else 1 end) "); + } + } + else + { + if (sJSGS.Equals("")) + { + //此处根据序号区分先加价还是先加点/扣点 + if (XLBJDUtils.JJFirst_JGBYZ(sJGBID)) + { + //先加价 + SQL.Add("V_XSBJJSJGB_JGBBJ=(RoundFix((abs(RoundFix(V_XSBJJSJGB_JGBJJ," + iXSWS + "))+isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)," + iXSWS + ")*(case when V_XSBJJSJGB_JGBYSJDZ = 0 then 1 else V_XSBJJSJGB_JGBYSJDZ end))"); + SQL.Add(" * (case when V_XSBJJSJGB_JGBJJ < 0 then (-1) when V_XSBJJSJGB_JGBJJ = 0 then 0 else 1 end) "); + } + else + { + //先加点 + SQL.Add("V_XSBJJSJGB_JGBBJ=(RoundFix((abs(RoundFix(V_XSBJJSJGB_JGBJJ," + iXSWS + "))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+isnull(JJYZZ,0))," + iXSWS + ")*(case when V_XSBJJSJGB_JGBYSJDZ = 0 then 1 else V_XSBJJSJGB_JGBYSJDZ end))"); + SQL.Add(" * (case when V_XSBJJSJGB_JGBJJ < 0 then (-1) when V_XSBJJSJGB_JGBJJ = 0 then 0 else 1 end) "); + } + } + else + { + SQL.Add(string.Format("V_XSBJJSJGB_JGBBJ=RoundFix({0},{1})", sJSGS.Replace("JZ", "XLXSBJDJJYZ_YZZ").Replace("JGBJJ", "abs(RoundFix(V_XSBJJSJGB_JGBJJ," + iXSWS + "))"),iXSWS)); + SQL.Add(" * (case when V_XSBJJSJGB_JGBJJ < 0 then (-1) when V_XSBJJSJGB_JGBJJ = 0 then 0 else 1 end) "); + } + } + } + else + { + if (sJSBLFS.Equals("C1") || sJSBLFS.Equals("C2"))//C1|进一法(材料价各分项进一)、C2|进一法(材料价汇总进一) + { + if (sJSGS.Equals("")) + { + //此处根据序号区分先加价还是先加点/扣点 + if (XLBJDUtils.JJFirst_JGBYZ(sJGBID)) + { + //先加价 + SQL.Add(string.Format("V_XSBJJSJGB_JGBBJ=CEILING(RoundFix((abs(V_XSBJJSJGB_JGBJJ)+isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)*{0},8))/{0}", Math.Pow(10.0, iXSWS))); + SQL.Add(" * (case when V_XSBJJSJGB_JGBJJ < 0 then (-1) when V_XSBJJSJGB_JGBJJ = 0 then 0 else 1 end) "); + } + else + { + //先加点 + SQL.Add(string.Format("V_XSBJJSJGB_JGBBJ=CEILING(RoundFix((abs(V_XSBJJSJGB_JGBJJ)*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+isnull(JJYZZ,0))*{0},8))/{0}", Math.Pow(10.0, iXSWS))); + SQL.Add(" * (case when V_XSBJJSJGB_JGBJJ < 0 then (-1) when V_XSBJJSJGB_JGBJJ = 0 then 0 else 1 end) "); + } + } + else + { + SQL.Add(string.Format("V_XSBJJSJGB_JGBBJ=CEILING(RoundFix({0}*{1},8))/{1}", sJSGS.Replace("JZ", "XLXSBJDJJYZ_YZZ").Replace("JGBJJ", "abs(RoundFix(V_XSBJJSJGB_JGBJJ," + iXSWS + "))"), Math.Pow(10.0, iXSWS))); + SQL.Add(" * (case when V_XSBJJSJGB_JGBJJ < 0 then (-1) when V_XSBJJSJGB_JGBJJ = 0 then 0 else 1 end) "); + } + } + else if (sJSBLFS.Equals("C3"))//C3|材料价汇总进一+表价进一到十位 + { + if (sJSGS.Equals("")) + { + //此处根据序号区分先加价还是先加点/扣点 + if (XLBJDUtils.JJFirst_JGBYZ(sJGBID)) + { + //先加价 + SQL.Add(string.Format(" V_XSBJJSJGB_JGBBJ=CEILING(RoundFix((abs(V_XSBJJSJGB_JGBJJ)+isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0),{0})/10)*10", iXSWS.ToString().Trim())); + SQL.Add(" * (case when V_XSBJJSJGB_JGBJJ < 0 then (-1) when V_XSBJJSJGB_JGBJJ = 0 then 0 else 1 end) "); + } + else + { + //先加点 + SQL.Add(string.Format(" V_XSBJJSJGB_JGBBJ=CEILING(RoundFix((abs(V_XSBJJSJGB_JGBJJ)*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+isnull(JJYZZ,0)),{0})/10)*10", iXSWS.ToString().Trim())); + SQL.Add(" * (case when V_XSBJJSJGB_JGBJJ < 0 then (-1) when V_XSBJJSJGB_JGBJJ = 0 then 0 else 1 end) "); + } + } + else + { + SQL.Add(string.Format("V_XSBJJSJGB_JGBBJ=CEILING(RoundFix({0},{1})/10)*10", sJSGS.Replace("JZ", "XLXSBJDJJYZ_YZZ").Replace("JGBJJ", "abs(RoundFix(V_XSBJJSJGB_JGBJJ," + iXSWS + "))"), iXSWS.ToString().Trim())); + SQL.Add(" * (case when V_XSBJJSJGB_JGBJJ < 0 then (-1) when V_XSBJJSJGB_JGBJJ = 0 then 0 else 1 end) "); + } + } + else + { + if (sJSGS.Equals("")) + { + //此处根据序号区分先加价还是先加点/扣点 + if (XLBJDUtils.JJFirst_JGBYZ(sJGBID)) + { + //先加价 + SQL.Add("V_XSBJJSJGB_JGBBJ=RoundFix((abs(RoundFix(V_XSBJJSJGB_JGBJJ," + iXSWS + "))+isnull(JJYZZ,0))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)," + iXSWS + ")"); + SQL.Add(" * (case when V_XSBJJSJGB_JGBJJ < 0 then (-1) when V_XSBJJSJGB_JGBJJ = 0 then 0 else 1 end) "); + } + else + { + //先加点 + SQL.Add("V_XSBJJSJGB_JGBBJ=RoundFix(abs(RoundFix(V_XSBJJSJGB_JGBJJ," + iXSWS + "))*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)*isnull(SXYZZ,1.0)+isnull(JJYZZ,0)," + iXSWS + ")"); + SQL.Add(" * (case when V_XSBJJSJGB_JGBJJ < 0 then (-1) when V_XSBJJSJGB_JGBJJ = 0 then 0 else 1 end) "); + } + } + else + { + SQL.Add(string.Format("V_XSBJJSJGB_JGBBJ=RoundFix({0},{1})", sJSGS.Replace("JZ", "XLXSBJDJJYZ_YZZ").Replace("JGBJJ", "abs(RoundFix(V_XSBJJSJGB_JGBJJ," + iXSWS + "))"), iXSWS)); + SQL.Add(" * (case when V_XSBJJSJGB_JGBJJ < 0 then (-1) when V_XSBJJSJGB_JGBJJ = 0 then 0 else 1 end) "); + } + } + } + + SQL.ParamByName("pID").Value = VnewID; + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + } + else + { + AddXLXSBJDJJYZ(dberp, SQL, VnewID, sBJDID, sMXBH, sJGBID, sJGBIDS, "", "", "", "", "", ""); + } + } + + //sTJYSList1:记录调价因素不为空的因子id + //sTJYSList_:记录调价因素为空的因子id + public static void AddXLXSBJDJJYZ(TDatabase dberp, TSQL SQL, int VnewID, string sBJDID, string sMXBH, string sJGBID, string sJGBIDS, string sTJYSList_, string sTJYSList1, string sTJYSList3, string sTJYSList4, string sTJYSList5, string sTJYSList8) + { + SQL.Clear(); + SQL.Add("delete from XLXSBJDJJYZ where XLXSBJDJJYZ_BJDID=:pBJDID "); + SQL.Add(" and exists(select 1 from V_XSBJJSJGB where V_XSBJJSJGB_ID=:pID and V_XSBJJSJGB_BJDID=:pBJDID and V_XSBJJSJGB_BJDXH=XLXSBJDJJYZ_XH)");//这里不用限制V_XSBJJSJGB_WGCPBZ<>'Y' + SQL.ParamByName("pID").Value = VnewID; + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + //价格表调价因素3,直接使用价格表调价因子值 + if (!sJGBIDS.Equals("")) + { + //SQL.Clear(); + //SQL.Add("insert into XLXSBJDJJYZ(XLXSBJDJJYZ_BJDID, XLXSBJDJJYZ_XH, XLXSBJDJJYZ_YZZ01,XLXSBJDJJYZ_YZZ02,XLXSBJDJJYZ_YZZ03,XLXSBJDJJYZ_YZZ04,XLXSBJDJJYZ_YZZ05,XLXSBJDJJYZ_YZZ06,XLXSBJDJJYZ_YZZ07,XLXSBJDJJYZ_YZZ08,XLXSBJDJJYZ_YZZ09,XLXSBJDJJYZ_YZZ10) "); + //SQL.Add("select V_XSBJJSJGB_BJDID,V_XSBJJSJGB_BJDXH,isnull(XLXSJGBYZZ0_YZZ01,0),isnull(XLXSJGBYZZ0_YZZ02,0),isnull(XLXSJGBYZZ0_YZZ03,0),isnull(XLXSJGBYZZ0_YZZ04,0),isnull(XLXSJGBYZZ0_YZZ05,0),isnull(XLXSJGBYZZ0_YZZ06,0),isnull(XLXSJGBYZZ0_YZZ07,0),isnull(XLXSJGBYZZ0_YZZ08,0),isnull(XLXSJGBYZZ0_YZZ09,0),isnull(XLXSJGBYZZ0_YZZ10,0) "); + //SQL.Add(" from V_XSBJJSJGB "); + //SQL.Add(" left join XLXSJGBMX on XLXSJGBMX_JGBID=:pJGBID and XLXSJGBMX_XLXHID=V_XSBJJSJGB_XLXHID and XLXSJGBMX_XLGGID=V_XSBJJSJGB_XLGGID "); + //SQL.Add(" and XLXSJGBMX_XLBZID=V_XSBJJSJGB_XLBZID and XLXSJGBMX_DYDJID=V_XSBJJSJGB_DYDJID"); + //SQL.Add(" left join XLXSJGBYZZ0 on XLXSJGBYZZ0_JGBID=:pJGBID and XLXSJGBYZZ0_XH=XLXSJGBMX_XH"); + //SQL.Add(" where V_XSBJJSJGB_ID=:pID "); + //SQL.Add(" and V_XSBJJSJGB_BJDID=:pBJDID "); + //SQL.Add(" and V_XSBJJSJGB_WGCPBZ<>'Y' "); + //SQL.ParamByName("pID").Value = VnewID; + //SQL.ParamByName("pBJDID").Value = sBJDID; + //SQL.ParamByName("pJGBID").Value = sJGBID; + //dberp.ExecSQL(SQL); + + SQL.Clear(); + SQL.Add("insert into XLXSBJDJJYZ(XLXSBJDJJYZ_BJDID, XLXSBJDJJYZ_XH, XLXSBJDJJYZ_YZZ01,XLXSBJDJJYZ_YZZ02,XLXSBJDJJYZ_YZZ03,XLXSBJDJJYZ_YZZ04,XLXSBJDJJYZ_YZZ05,XLXSBJDJJYZ_YZZ06,XLXSBJDJJYZ_YZZ07,XLXSBJDJJYZ_YZZ08,XLXSBJDJJYZ_YZZ09,XLXSBJDJJYZ_YZZ10,XLXSBJDJJYZ_YSJDZ) "); + SQL.Add("select V_XSBJJSJGB_BJDID,V_XSBJJSJGB_BJDXH,isnull(XLXSJGBYZZ0_YZZ01,0),isnull(XLXSJGBYZZ0_YZZ02,0),isnull(XLXSJGBYZZ0_YZZ03,0),isnull(XLXSJGBYZZ0_YZZ04,0),isnull(XLXSJGBYZZ0_YZZ05,0),isnull(XLXSJGBYZZ0_YZZ06,0),isnull(XLXSJGBYZZ0_YZZ07,0),isnull(XLXSJGBYZZ0_YZZ08,0),isnull(XLXSJGBYZZ0_YZZ09,0),isnull(XLXSJGBYZZ0_YZZ10,0),V_XSBJJSJGB_JGBYSJDZ "); + SQL.Add(" from V_XSBJJSJGB"); + SQL.Add(" left join XLXSJGBYZZ0 on XLXSJGBYZZ0_JGBID=:pJGBID3 and XLXSJGBYZZ0_XH=V_XSBJJSJGB_SYJGBXH"); + SQL.Add(" where V_XSBJJSJGB_ID=:pID and V_XSBJJSJGB_BJDID=:pBJDID and V_XSBJJSJGB_SYJGBID=:pJGBID1"); + SQL.Add(" and V_XSBJJSJGB_WGCPBZ<>'Y' and V_XSBJJSJGB_JGFBZ<>'Y' "); + SQL.ParamByName("pID").Value = VnewID; + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pJGBID3").Value = sJGBID; + SQL.ParamByName("pJGBID1").Value = sJGBIDS; + dberp.ExecSQL(SQL); + + sTJYSList_ = ""; + sTJYSList1 = ""; + sTJYSList3 = ""; + sTJYSList4 = ""; + sTJYSList5 = ""; + sTJYSList8 = ""; + } + else + { + //如果存在调价因素为空的因子 + if (!sTJYSList_.Trim().Equals("")) + { + string[] sTJYZs = sTJYSList_.Split(','); + + SQL.Clear(); + SQL.Add("insert into XLXSBJDJJYZ(XLXSBJDJJYZ_BJDID,XLXSBJDJJYZ_XH"); + for (int i = 0; i < sTJYZs.Length; i++) + { + SQL.Add(string.Format(",XLXSBJDJJYZ_YZZ{0}", sTJYZs[i].Trim().Replace("JZ", ""))); + } + SQL.Add(") "); + SQL.Add("select V_XSBJJSJGB_BJDID,V_XSBJJSJGB_BJDXH"); + for (int i = 0; i < sTJYZs.Length; i++) + { + SQL.Add(string.Format(",sum(CASE XLXSTZYZ_YZID WHEN '{0}' THEN XLXSJGBYZZ_YZZ ELSE 0 END) as YZZ{1}", sTJYZs[i].Trim(), sTJYZs[i].Trim().Replace("JZ", ""))); + } + + SQL.Add(" from V_XSBJJSJGB,XLXSTZYZ,XLXSJGBYZZ "); + SQL.Add("where V_XSBJJSJGB_ID=:pID "); + SQL.Add(" and V_XSBJJSJGB_BJDID=:pBJDID"); + SQL.Add(" and V_XSBJJSJGB_WGCPBZ<>'Y' and V_XSBJJSJGB_JGFBZ<>'Y' "); + SQL.Add("and XLXSTZYZ_MXBH='JZJ' and " + CMISproDataBase.GetWhereEqual("XLXSTZYZ_YZID", sTJYSList_.Trim())); + SQL.Add("and XLXSTZYZ_TJYS=' ' and XLXSJGBYZZ_JGBID=XLXSTZYZ_JGBID and XLXSJGBYZZ_YZID=XLXSTZYZ_YZID "); + SQL.Add(" group by V_XSBJJSJGB_BJDID,V_XSBJJSJGB_BJDXH"); + SQL.ParamByName("pID").Value = VnewID; + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + } + else + { + SQL.Clear(); + SQL.Add("insert into XLXSBJDJJYZ(XLXSBJDJJYZ_BJDID,XLXSBJDJJYZ_XH) "); + SQL.Add("select V_XSBJJSJGB_BJDID,V_XSBJJSJGB_BJDXH"); + SQL.Add(" from V_XSBJJSJGB "); + SQL.Add("where V_XSBJJSJGB_ID=:pID "); + SQL.Add(" and V_XSBJJSJGB_BJDID=:pBJDID"); + SQL.Add(" and V_XSBJJSJGB_WGCPBZ<>'Y' and V_XSBJJSJGB_JGFBZ<>'Y' "); + SQL.ParamByName("pID").Value = VnewID; + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + } + } + + + Dictionary dicJGBFGQCPYZ = XLBJDInfo.GetJGBFGQCPYZ(sJGBID);//覆盖全产品的价格表因子 + if (dicJGBFGQCPYZ.Count > 0) + { + List sYZList = new List(); + foreach (string sKey in dicJGBFGQCPYZ.Keys) + { + if (sTJYSList1.Contains(sKey) || sTJYSList3.Contains(sKey) || sTJYSList4.Contains(sKey) || sTJYSList5.Contains(sKey) || sTJYSList8.Contains(sKey)) + { + sYZList.Add(sKey); + } + } + if (sYZList.Count > 0) + { + SQL.Clear(); + SQL.Add(" update XLXSBJDJJYZ set "); + foreach(string sYZ in sYZList) + SQL.Add(string.Format("XLXSBJDJJYZ_YZZ{0}=-9999,", sYZ.Replace("JZ", ""))); + SQL.Add(" XLXSBJDJJYZ_BJDID=:pBJDID "); + SQL.Add(" where XLXSBJDJJYZ_BJDID=:pBJDID "); + SQL.Add(" and exists(select 1 from V_XSBJJSJGB where V_XSBJJSJGB_ID=:pID and V_XSBJJSJGB_BJDID=:pBJDID and V_XSBJJSJGB_WGCPBZ<>'Y' and V_XSBJJSJGB_JGFBZ<>'Y' and V_XSBJJSJGB_BJDID=XLXSBJDJJYZ_BJDID and V_XSBJJSJGB_BJDXH=XLXSBJDJJYZ_XH ) "); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pID").Value = VnewID; + dberp.ExecSQL(SQL); + + } + } + + + + + if (!sTJYSList1.Trim().Equals("")) + { + string[] sTJYZ = sTJYSList1.Split(','); + for (int i = 0; i < sTJYZ.Length; i++) + { + if (!sTJYZ[i].Trim().Equals("")) + { + TZYZXX yzxx = XLBJDUtils.GetYZXXByYZID(sTJYZ[i].Trim()); + SQL.Clear(); + SQL.Add(" merge into XLXSBJDJJYZ tar "); + SQL.Add(" using "); + SQL.Add(" ("); + SQL.Add(" select V_XSBJJSJGB_BJDID as BJDID,V_XSBJJSJGB_BJDXH as BJDXH"); + SQL.Add(string.Format(",XLXSJGBYZZ1_YZZ as YZZ{0}", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.Add(" from V_XSBJJSJGB,XLXSJGBYZZ1 "); + SQL.Add(" where V_XSBJJSJGB_ID=:pID "); + SQL.Add(" and V_XSBJJSJGB_BJDID=:pBJDID"); + SQL.Add(" and V_XSBJJSJGB_WGCPBZ<>'Y' and V_XSBJJSJGB_JGFBZ<>'Y' "); + SQL.Add(" and XLXSJGBYZZ1_JGBID=:pTJJGBID and XLXSJGBYZZ1_YZID=:pYZID "); + SQL.Add(" and XLXSJGBYZZ1_XLXHID=V_XSBJJSJGB_XLXHID and XLXSJGBYZZ1_XLGGID=V_XSBJJSJGB_XLGGID and XLXSJGBYZZ1_XLBZID=V_XSBJJSJGB_XLBZID and XLXSJGBYZZ1_DYDJID=V_XSBJJSJGB_DYDJID "); + SQL.Add(" ) sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSBJDJJYZ_BJDID=:pBJDID and XLXSBJDJJYZ_XH=BJDXH "); + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSBJDJJYZ_YZZ{0}=YZZ{0}", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.ParamByName("pID").Value = VnewID; + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pTJJGBID").Value = yzxx.XLXSTZYZ_JGBID.Trim(); + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + dberp.ExecSQL(SQL); + } + } + } + + if (!sTJYSList3.Trim().Equals("")) + { + string[] sTJYZ = sTJYSList3.Split(','); + + SQL.Clear(); + SQL.Add("select XLXSJGB_XSQYIDS from XLXSJGB where XLXSJGB_MXBH=:pMXBH and XLXSJGB_JGBID=:pJGBID"); + SQL.ParamByName("pMXBH").Value = sMXBH; + SQL.ParamByName("pJGBID").Value = sJGBID; + DataSet dsJGB = dberp.OpenDataSet(SQL); + string sXSQYIDS = dsJGB.Tables[0].Rows[0][0].ToString().Trim(); + sXSQYIDS = sXSQYIDS.Split(',')[0].Trim();//只取第一个区域设置的因子值 + + for (int i = 0; i < sTJYZ.Length; i++) + { + if (!sTJYZ[i].Trim().Equals("")) + { + SQL.Clear(); + SQL.Add(" merge into XLXSBJDJJYZ tar "); + SQL.Add(" using ( "); + SQL.Add("select V_XSBJJSJGB_BJDID as BJDID,V_XSBJJSJGB_BJDXH as BJDXH "); + SQL.Add(string.Format(",isnull(YZZ,0) as YZZ{0}", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.Add(" from V_XSBJJSJGB "); + SQL.Add("left join XLXHB on XLXHB_XLXHID=V_XSBJJSJGB_XLXHID "); + SQL.Add("left join "); + SQL.Add("( "); + SQL.Add(" select XLXSJGBYZZ3_XSQYID as XSQYID,XLXSJGBYZZ3_DTCLID as DTCLID,XLXSJGBYZZ3_YZID as YZID,XLXSJGBYZZ3_YZZ as YZZ"); + SQL.Add(" from XLXSJGBYZZ3,XLXSTZYZ"); + SQL.Add(" where XLXSTZYZ_MXBH='JZJ' and XLXSTZYZ_TJYS='3' and XLXSJGBYZZ3_JGBID=XLXSTZYZ_JGBID and XLXSJGBYZZ3_YZID=XLXSTZYZ_YZID"); + //型号、主芯截面都没有匹配 + SQL.Add(" and XLXSJGBYZZ3_XLXHID=' '"); + SQL.Add(" and XLXSJGBYZZ3_ZXJM=0"); + SQL.Add(" and XLXSJGBYZZ3_XSQYID='" + sXSQYIDS + "'"); + SQL.Add(" and XLXSJGBYZZ3_YZID=:pYZID"); + SQL.Add(" ) a on a.DTCLID=XLXHB_DTCLID "); + SQL.Add("where V_XSBJJSJGB_ID=:pID "); + SQL.Add(" and V_XSBJJSJGB_BJDID=:pBJDID"); + SQL.Add(" and V_XSBJJSJGB_WGCPBZ<>'Y' and V_XSBJJSJGB_JGFBZ<>'Y' "); + SQL.Add(" and isnull(YZID,' ')<>' '"); + SQL.Add(" ) sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSBJDJJYZ_BJDID=:pBJDID and XLXSBJDJJYZ_XH=BJDXH "); + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSBJDJJYZ_YZZ{0}=YZZ{0}", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.ParamByName("pID").Value = VnewID; + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + dberp.ExecSQL(SQL); + + SQL.Clear(); + SQL.Add(" merge into XLXSBJDJJYZ tar "); + SQL.Add(" using ( "); + SQL.Add("select V_XSBJJSJGB_BJDID as BJDID,V_XSBJJSJGB_BJDXH as BJDXH "); + SQL.Add(string.Format(",isnull(YZZ,0) as YZZ{0}", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.Add(" from V_XSBJJSJGB "); + SQL.Add("left join XLXHB on XLXHB_XLXHID=V_XSBJJSJGB_XLXHID "); + SQL.Add("left join XLGGB on XLGGB_XLGGID = REPLACE(V_XSBJJSJGB_XLGGID , '*','×') and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); + SQL.Add("left join "); + SQL.Add("( "); + SQL.Add(" select XLXSJGBYZZ3_XSQYID as XSQYID,XLXSJGBYZZ3_DTCLID as DTCLID,XLXSJGBYZZ3_ZXJM as ZXJM,XLXSJGBYZZ3_YZID as YZID,XLXSJGBYZZ3_YZZ as YZZ"); + SQL.Add(" from XLXSJGBYZZ3,XLXSTZYZ"); + SQL.Add(" where XLXSTZYZ_MXBH='JZJ' and XLXSTZYZ_TJYS='3' and XLXSJGBYZZ3_JGBID=XLXSTZYZ_JGBID and XLXSJGBYZZ3_YZID=XLXSTZYZ_YZID"); + //主芯截面完全匹配 + SQL.Add(" and XLXSJGBYZZ3_XLXHID=' ' "); + SQL.Add(" and XLXSJGBYZZ3_ZXJM<>0 "); + SQL.Add(" and XLXSJGBYZZ3_XSQYID='" + sXSQYIDS + "'"); + SQL.Add(" and XLXSJGBYZZ3_YZID=:pYZID"); + SQL.Add(" ) a on a.DTCLID=XLXHB_DTCLID"); + SQL.Add(" and ((convert(char,a.ZXJM)=XLGGB_DTJMZHID) or (XLGGB_DTJMZHID like (rtrim(convert(char,a.ZXJM))||'/%'))) "); + SQL.Add("where V_XSBJJSJGB_ID=:pID "); + SQL.Add(" and V_XSBJJSJGB_BJDID=:pBJDID"); + SQL.Add(" and V_XSBJJSJGB_WGCPBZ<>'Y' and V_XSBJJSJGB_JGFBZ<>'Y' "); + SQL.Add(" and isnull(YZID,' ')<>' ' "); + SQL.Add(" ) sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSBJDJJYZ_BJDID=:pBJDID and XLXSBJDJJYZ_XH=BJDXH "); + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSBJDJJYZ_YZZ{0}=YZZ{0}", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.ParamByName("pID").Value = VnewID; + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + dberp.ExecSQL(SQL); + + SQL.Clear(); + SQL.Add(" merge into XLXSBJDJJYZ tar "); + SQL.Add(" using ( "); + SQL.Add("select V_XSBJJSJGB_BJDID as BJDID,V_XSBJJSJGB_BJDXH as BJDXH "); + SQL.Add(string.Format(",isnull(YZZ,0) as YZZ{0}", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.Add(" from V_XSBJJSJGB "); + SQL.Add("left join XLXHB on XLXHB_XLXHID=V_XSBJJSJGB_XLXHID "); + SQL.Add("left join "); + SQL.Add("( "); + SQL.Add(" select XLXSJGBYZZ3_XSQYID as XSQYID,XLXSJGBYZZ3_DTCLID as DTCLID,XLXSJGBYZZ3_XLXHID as XLXHID,XLXSJGBYZZ3_YZID as YZID,XLXSJGBYZZ3_YZZ as YZZ"); + SQL.Add(" from XLXSJGBYZZ3,XLXSTZYZ"); + SQL.Add(" where XLXSTZYZ_MXBH='JZJ' and XLXSTZYZ_TJYS='3' and XLXSJGBYZZ3_JGBID=XLXSTZYZ_JGBID and XLXSJGBYZZ3_YZID=XLXSTZYZ_YZID"); + //型号完全匹配 + SQL.Add(" and XLXSJGBYZZ3_ZXJM=0"); + SQL.Add(" and XLXSJGBYZZ3_XSQYID='" + sXSQYIDS + "'"); + SQL.Add(" and XLXSJGBYZZ3_YZID=:pYZID"); + SQL.Add(" ) a on a.DTCLID=XLXHB_DTCLID"); + SQL.Add(" and a.XLXHID=V_XSBJJSJGB_XLXHID "); + SQL.Add("where V_XSBJJSJGB_ID=:pID "); + SQL.Add(" and V_XSBJJSJGB_BJDID=:pBJDID"); + SQL.Add(" and V_XSBJJSJGB_WGCPBZ<>'Y' and V_XSBJJSJGB_JGFBZ<>'Y' "); + SQL.Add(" and isnull(YZID,' ')<>' ' "); + SQL.Add(" ) sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSBJDJJYZ_BJDID=:pBJDID and XLXSBJDJJYZ_XH=BJDXH "); + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSBJDJJYZ_YZZ{0}=YZZ{0}", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.ParamByName("pID").Value = VnewID; + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + dberp.ExecSQL(SQL); + + SQL.Clear(); + SQL.Add(" merge into XLXSBJDJJYZ tar "); + SQL.Add(" using ( "); + SQL.Add("select V_XSBJJSJGB_BJDID as BJDID,V_XSBJJSJGB_BJDXH as BJDXH "); + SQL.Add(string.Format(",isnull(YZZ,0) as YZZ{0}", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.Add(" from V_XSBJJSJGB "); + SQL.Add("left join XLXHB on XLXHB_XLXHID=V_XSBJJSJGB_XLXHID "); + SQL.Add("left join XLGGB on XLGGB_XLGGID = REPLACE(V_XSBJJSJGB_XLGGID , '*','×') and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); + SQL.Add("left join "); + SQL.Add("( "); + SQL.Add(" select XLXSJGBYZZ3_XSQYID as XSQYID,XLXSJGBYZZ3_DTCLID as DTCLID,XLXSJGBYZZ3_XLXHID as XLXHID,XLXSJGBYZZ3_ZXJM as ZXJM,XLXSJGBYZZ3_YZID as YZID,XLXSJGBYZZ3_YZZ as YZZ"); + SQL.Add(" from XLXSJGBYZZ3,XLXSTZYZ"); + SQL.Add(" where XLXSTZYZ_MXBH='JZJ' and XLXSTZYZ_TJYS='3' and XLXSJGBYZZ3_JGBID=XLXSTZYZ_JGBID and XLXSJGBYZZ3_YZID=XLXSTZYZ_YZID"); + //型号、主芯截面完全匹配 + SQL.Add(" and XLXSJGBYZZ3_ZXJM<>0 "); + SQL.Add(" and XLXSJGBYZZ3_XSQYID='" + sXSQYIDS + "'"); + SQL.Add(" and XLXSJGBYZZ3_YZID=:pYZID"); + SQL.Add(" ) a on a.DTCLID=XLXHB_DTCLID"); + SQL.Add(" and a.XLXHID=V_XSBJJSJGB_XLXHID"); + SQL.Add(" and ((convert(char,a.ZXJM)=XLGGB_DTJMZHID) or (XLGGB_DTJMZHID like (rtrim(convert(char,a.ZXJM))||'/%'))) "); + SQL.Add("where V_XSBJJSJGB_ID=:pID "); + SQL.Add(" and V_XSBJJSJGB_BJDID=:pBJDID"); + SQL.Add(" and V_XSBJJSJGB_WGCPBZ<>'Y' and V_XSBJJSJGB_JGFBZ<>'Y' "); + SQL.Add(" and isnull(YZID,' ')<>' ' "); + SQL.Add(" ) sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSBJDJJYZ_BJDID=:pBJDID and XLXSBJDJJYZ_XH=BJDXH "); + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSBJDJJYZ_YZZ{0}=YZZ{0}", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.ParamByName("pID").Value = VnewID; + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + dberp.ExecSQL(SQL); + } + } + } + + if (!sTJYSList4.Trim().Equals("")) + { + string[] sTJYZ = sTJYSList4.Split(','); + for (int i = 0; i < sTJYZ.Length; i++) + { + if (!sTJYZ[i].Trim().Equals("")) + { + SQL.Clear(); + SQL.Add("merge into XLXSBJDJJYZ tar "); + SQL.Add(" using ("); + SQL.Add(" select V_XSBJJSJGB_BJDID as BJDID,V_XSBJJSJGB_BJDXH as BJDXH"); + SQL.Add(string.Format(",XLXSJGBYZZ4_YZZ as YZZ{0}", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.Add(" from V_XSBJJSJGB "); + SQL.Add(" left join XLXHB on XLXHB_XLXHID=V_XSBJJSJGB_XLXHID "); + SQL.Add(" left join XLGGB on XLGGB_XLGGID = REPLACE(V_XSBJJSJGB_XLGGID , '*','×') and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); + SQL.Add(" left join XLDTJMZHB on XLDTJMZHB_DTJMZHID=XLGGB_DTJMZHID "); + SQL.Add(" left join ( "); + SQL.Add(" select XLXSJGBYZZ4_XLXHID,XLXSJGBYZZ4_DYDJID,XLXSJGBYZZ4_XXJGID,XLXSJGBYZZ4_ZXJMXX,XLXSJGBYZZ4_ZXJMSX,XLXSJGBYZZ4_YZZ "); + SQL.Add(" from XLXSJGBYZZ4 "); + SQL.Add(" where exists(select 1 from XLXSTZYZ where XLXSTZYZ_MXBH='JZJ' and XLXSTZYZ_YZID=:pYZID and XLXSTZYZ_TJYS='4' "); + SQL.Add(" and XLXSTZYZ_JGBID=XLXSJGBYZZ4_JGBID and XLXSTZYZ_YZID=XLXSJGBYZZ4_YZID )"); + //1、优先级由低到高依次更新:电压、芯线结构为空 + SQL.Add(" and XLXSJGBYZZ4_DYDJID=' '"); + SQL.Add(" and XLXSJGBYZZ4_XXJGID=' ' "); + SQL.Add(" ) a "); + SQL.Add(" on XLXSJGBYZZ4_XLXHID=V_XSBJJSJGB_XLXHID "); + SQL.Add(" and XLXSJGBYZZ4_ZXJMXX<= ISNULL(XLDTJMZHB_DTJM1,0) and ((XLXSJGBYZZ4_ZXJMSX<>0 and XLXSJGBYZZ4_ZXJMSX>=ISNULL(XLDTJMZHB_DTJM1,0)) or XLXSJGBYZZ4_ZXJMSX=0)"); + SQL.Add(" where V_XSBJJSJGB_ID=:pID and XLXSJGBYZZ4_XLXHID<>' '"); + SQL.Add(" and V_XSBJJSJGB_BJDID=:pBJDID"); + SQL.Add(" and V_XSBJJSJGB_WGCPBZ<>'Y' and V_XSBJJSJGB_JGFBZ<>'Y' "); + SQL.Add(" ) sor "); + SQL.Add(" on (XLXSBJDJJYZ_BJDID=:pBJDID and XLXSBJDJJYZ_XH=BJDXH )"); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSBJDJJYZ_YZZ{0}=YZZ{0}", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.ParamByName("pID").Value = VnewID; + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + dberp.ExecSQL(SQL); + + SQL.Clear(); + SQL.Add("merge into XLXSBJDJJYZ tar "); + SQL.Add(" using ("); + SQL.Add(" select V_XSBJJSJGB_BJDID as BJDID,V_XSBJJSJGB_BJDXH as BJDXH"); + SQL.Add(string.Format(",XLXSJGBYZZ4_YZZ as YZZ{0}", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.Add(" from V_XSBJJSJGB "); + SQL.Add(" left join XLXHB on XLXHB_XLXHID=V_XSBJJSJGB_XLXHID "); + SQL.Add(" left join XLGGB on XLGGB_XLGGID = REPLACE(V_XSBJJSJGB_XLGGID , '*','×') and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); + SQL.Add(" left join XLDTJMZHB on XLDTJMZHB_DTJMZHID=XLGGB_DTJMZHID "); + SQL.Add(" left join ( "); + SQL.Add(" select XLXSJGBYZZ4_XLXHID,XLXSJGBYZZ4_DYDJID,XLXSJGBYZZ4_XXJGID,XLXSJGBYZZ4_ZXJMXX,XLXSJGBYZZ4_ZXJMSX,XLXSJGBYZZ4_YZZ "); + SQL.Add(" from XLXSJGBYZZ4 "); + SQL.Add(" where exists(select 1 from XLXSTZYZ where XLXSTZYZ_MXBH='JZJ' and XLXSTZYZ_YZID=:pYZID and XLXSTZYZ_TJYS='4' "); + SQL.Add(" and XLXSTZYZ_JGBID=XLXSJGBYZZ4_JGBID and XLXSTZYZ_YZID=XLXSJGBYZZ4_YZID )"); + //2、优先级由低到高依次更新:电压为空、芯线结构不为空 + SQL.Add(" and XLXSJGBYZZ4_DYDJID=' '"); + SQL.Add(" ) a "); + SQL.Add(" on XLXSJGBYZZ4_XLXHID=V_XSBJJSJGB_XLXHID "); + SQL.Add(" and XLXSJGBYZZ4_ZXJMXX<= ISNULL(XLDTJMZHB_DTJM1,0) and ((XLXSJGBYZZ4_ZXJMSX<>0 and XLXSJGBYZZ4_ZXJMSX>=ISNULL(XLDTJMZHB_DTJM1,0)) or XLXSJGBYZZ4_ZXJMSX=0)"); + SQL.Add(" and XLXSJGBYZZ4_XXJGID=XLGGB_XXJGID"); + SQL.Add(" where V_XSBJJSJGB_ID=:pID and XLXSJGBYZZ4_XLXHID<>' ' "); + SQL.Add(" and V_XSBJJSJGB_BJDID=:pBJDID"); + SQL.Add(" and V_XSBJJSJGB_WGCPBZ<>'Y' and V_XSBJJSJGB_JGFBZ<>'Y' "); + SQL.Add(" ) sor "); + SQL.Add(" on (XLXSBJDJJYZ_BJDID=:pBJDID and XLXSBJDJJYZ_XH=BJDXH )"); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSBJDJJYZ_YZZ{0}=YZZ{0}", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.ParamByName("pID").Value = VnewID; + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + dberp.ExecSQL(SQL); + + SQL.Clear(); + SQL.Add("merge into XLXSBJDJJYZ tar "); + SQL.Add(" using ("); + SQL.Add(" select V_XSBJJSJGB_BJDID as BJDID,V_XSBJJSJGB_BJDXH as BJDXH"); + SQL.Add(string.Format(",XLXSJGBYZZ4_YZZ as YZZ{0}", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.Add(" from V_XSBJJSJGB "); + SQL.Add(" left join XLXHB on XLXHB_XLXHID=V_XSBJJSJGB_XLXHID "); + SQL.Add(" left join XLGGB on XLGGB_XLGGID = REPLACE(V_XSBJJSJGB_XLGGID , '*','×') and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); + SQL.Add(" left join XLDTJMZHB on XLDTJMZHB_DTJMZHID=XLGGB_DTJMZHID "); + SQL.Add(" left join ( "); + SQL.Add(" select XLXSJGBYZZ4_XLXHID,XLXSJGBYZZ4_DYDJID,XLXSJGBYZZ4_XXJGID,XLXSJGBYZZ4_ZXJMXX,XLXSJGBYZZ4_ZXJMSX,XLXSJGBYZZ4_YZZ "); + SQL.Add(" from XLXSJGBYZZ4 "); + SQL.Add(" where exists(select 1 from XLXSTZYZ where XLXSTZYZ_MXBH='JZJ' and XLXSTZYZ_YZID=:pYZID and XLXSTZYZ_TJYS='4' "); + SQL.Add(" and XLXSTZYZ_JGBID=XLXSJGBYZZ4_JGBID and XLXSTZYZ_YZID=XLXSJGBYZZ4_YZID )"); + //3、优先级由低到高依次更新:电压不为空、芯线结构为空 + SQL.Add(" and XLXSJGBYZZ4_XXJGID=' '"); + SQL.Add(" ) a "); + SQL.Add(" on XLXSJGBYZZ4_XLXHID=V_XSBJJSJGB_XLXHID "); + SQL.Add(" and XLXSJGBYZZ4_ZXJMXX<= ISNULL(XLDTJMZHB_DTJM1,0) and ((XLXSJGBYZZ4_ZXJMSX<>0 and XLXSJGBYZZ4_ZXJMSX>=ISNULL(XLDTJMZHB_DTJM1,0)) or XLXSJGBYZZ4_ZXJMSX=0)"); + SQL.Add(" and XLXSJGBYZZ4_DYDJID=V_XSBJJSJGB_DYDJID"); + SQL.Add(" where V_XSBJJSJGB_ID=:pID and XLXSJGBYZZ4_XLXHID<>' ' "); + SQL.Add(" and V_XSBJJSJGB_BJDID=:pBJDID"); + SQL.Add(" and V_XSBJJSJGB_WGCPBZ<>'Y' and V_XSBJJSJGB_JGFBZ<>'Y' "); + SQL.Add(" ) sor "); + SQL.Add(" on (XLXSBJDJJYZ_BJDID=:pBJDID and XLXSBJDJJYZ_XH=BJDXH )"); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSBJDJJYZ_YZZ{0}=YZZ{0}", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.ParamByName("pID").Value = VnewID; + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + dberp.ExecSQL(SQL); + + SQL.Clear(); + SQL.Add("merge into XLXSBJDJJYZ tar "); + SQL.Add(" using ("); + SQL.Add(" select V_XSBJJSJGB_BJDID as BJDID,V_XSBJJSJGB_BJDXH as BJDXH"); + SQL.Add(string.Format(",XLXSJGBYZZ4_YZZ as YZZ{0}", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.Add(" from V_XSBJJSJGB "); + SQL.Add(" left join XLXHB on XLXHB_XLXHID=V_XSBJJSJGB_XLXHID "); + SQL.Add(" left join XLGGB on XLGGB_XLGGID = REPLACE(V_XSBJJSJGB_XLGGID , '*','×') and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); + SQL.Add(" left join XLDTJMZHB on XLDTJMZHB_DTJMZHID=XLGGB_DTJMZHID "); + SQL.Add(" left join ( "); + SQL.Add(" select XLXSJGBYZZ4_XLXHID,XLXSJGBYZZ4_DYDJID,XLXSJGBYZZ4_XXJGID,XLXSJGBYZZ4_ZXJMXX,XLXSJGBYZZ4_ZXJMSX,XLXSJGBYZZ4_YZZ "); + SQL.Add(" from XLXSJGBYZZ4 "); + SQL.Add(" where exists(select 1 from XLXSTZYZ where XLXSTZYZ_MXBH='JZJ' and XLXSTZYZ_YZID=:pYZID and XLXSTZYZ_TJYS='4' "); + SQL.Add(" and XLXSTZYZ_JGBID=XLXSJGBYZZ4_JGBID and XLXSTZYZ_YZID=XLXSJGBYZZ4_YZID )"); + //4、优先级由低到高依次更新:电压不为空、芯线结构不为空 + SQL.Add(" ) a "); + SQL.Add(" on XLXSJGBYZZ4_XLXHID=V_XSBJJSJGB_XLXHID "); + SQL.Add(" and XLXSJGBYZZ4_ZXJMXX<= ISNULL(XLDTJMZHB_DTJM1,0) and ((XLXSJGBYZZ4_ZXJMSX<>0 and XLXSJGBYZZ4_ZXJMSX>=ISNULL(XLDTJMZHB_DTJM1,0)) or XLXSJGBYZZ4_ZXJMSX=0)"); + SQL.Add(" and XLXSJGBYZZ4_DYDJID=V_XSBJJSJGB_DYDJID"); + SQL.Add(" and XLXSJGBYZZ4_XXJGID=XLGGB_XXJGID"); + SQL.Add(" where V_XSBJJSJGB_ID=:pID and XLXSJGBYZZ4_XLXHID<>' ' "); + SQL.Add(" and V_XSBJJSJGB_BJDID=:pBJDID"); + SQL.Add(" and V_XSBJJSJGB_WGCPBZ<>'Y' and V_XSBJJSJGB_JGFBZ<>'Y' "); + SQL.Add(" ) sor "); + SQL.Add(" on (XLXSBJDJJYZ_BJDID=:pBJDID and XLXSBJDJJYZ_XH=BJDXH )"); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSBJDJJYZ_YZZ{0}=YZZ{0}", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.ParamByName("pID").Value = VnewID; + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + dberp.ExecSQL(SQL); + } + } + } + + if (!sTJYSList5.Trim().Equals("")) + { + string[] sTJYZ = sTJYSList5.Split(','); + for (int i = 0; i < sTJYZ.Length; i++) + { + if (!sTJYZ[i].Trim().Equals("")) + { + SQL.Clear(); + SQL.Add("merge into XLXSBJDJJYZ tar "); + SQL.Add(" using ("); + SQL.Add(" select V_XSBJJSJGB_BJDID as BJDID,V_XSBJJSJGB_BJDXH as BJDXH"); + SQL.Add(string.Format(",XLXSJGBYZZ5_YZZ as YZZ{0}", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.Add(" from XLXSTZYZ,XLXSJGBYZZ5,V_XSBJJSJGB "); + SQL.Add(" left join XLXHB on XLXHB_XLXHID=V_XSBJJSJGB_XLXHID "); + SQL.Add(" left join XLGGB on XLGGB_XLGGID = REPLACE(V_XSBJJSJGB_XLGGID , '*','×') and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); + SQL.Add(" left join XLDTJMZHB on XLDTJMZHB_DTJMZHID=XLGGB_DTJMZHID "); + SQL.Add(" where V_XSBJJSJGB_ID=:pID "); + SQL.Add(" and V_XSBJJSJGB_BJDID=:pBJDID"); + SQL.Add(" and V_XSBJJSJGB_WGCPBZ<>'Y' and V_XSBJJSJGB_JGFBZ<>'Y' "); + SQL.Add(" and XLXSTZYZ_MXBH='JZJ' and XLXSTZYZ_YZID=:pYZID"); + SQL.Add(" and XLXSTZYZ_TJYS='5' and XLXSJGBYZZ5_JGBID=XLXSTZYZ_JGBID and XLXSJGBYZZ5_YZID=XLXSTZYZ_YZID "); + SQL.Add(" and XLXSJGBYZZ5_XLXHID=V_XSBJJSJGB_XLXHID "); + SQL.Add(" and XLXSJGBYZZ5_ZXJMXX<=ISNULL(XLDTJMZHB_DTJM1,0) and ((XLXSJGBYZZ5_ZXJMSX<>0 and XLXSJGBYZZ5_ZXJMSX>=ISNULL(XLDTJMZHB_DTJM1,0)) or XLXSJGBYZZ5_ZXJMSX=0)"); + SQL.Add(" and XLXSJGBYZZ5_ZXSXX<=XLGGB_GGZXS and ((XLXSJGBYZZ5_ZXSSX<>0 and XLXSJGBYZZ5_ZXSSX>=XLGGB_GGZXS) or XLXSJGBYZZ5_ZXSSX=0)"); + //1、优先级由低到高依次更新:电压为空 + SQL.Add(" and XLXSJGBYZZ5_DYDJID=' '"); + SQL.Add(" ) a "); + SQL.Add(" on (XLXSBJDJJYZ_BJDID=:pBJDID and XLXSBJDJJYZ_XH=BJDXH )"); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSBJDJJYZ_YZZ{0}=YZZ{0}", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.ParamByName("pID").Value = VnewID; + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + dberp.ExecSQL(SQL); + + SQL.Clear(); + SQL.Add("merge into XLXSBJDJJYZ tar "); + SQL.Add(" using ("); + SQL.Add(" select V_XSBJJSJGB_BJDID as BJDID,V_XSBJJSJGB_BJDXH as BJDXH"); + SQL.Add(string.Format(",XLXSJGBYZZ5_YZZ as YZZ{0}", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.Add(" from XLXSTZYZ,XLXSJGBYZZ5,V_XSBJJSJGB "); + SQL.Add(" left join XLXHB on XLXHB_XLXHID=V_XSBJJSJGB_XLXHID "); + SQL.Add(" left join XLGGB on XLGGB_XLGGID = REPLACE(V_XSBJJSJGB_XLGGID , '*','×') and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); + SQL.Add(" left join XLDTJMZHB on XLDTJMZHB_DTJMZHID=XLGGB_DTJMZHID "); + SQL.Add(" where V_XSBJJSJGB_ID=:pID "); + SQL.Add(" and V_XSBJJSJGB_BJDID=:pBJDID"); + SQL.Add(" and V_XSBJJSJGB_WGCPBZ<>'Y' and V_XSBJJSJGB_JGFBZ<>'Y' "); + SQL.Add(" and XLXSTZYZ_MXBH='JZJ' and XLXSTZYZ_YZID=:pYZID"); + SQL.Add(" and XLXSTZYZ_TJYS='5' and XLXSJGBYZZ5_JGBID=XLXSTZYZ_JGBID and XLXSJGBYZZ5_YZID=XLXSTZYZ_YZID "); + SQL.Add(" and XLXSJGBYZZ5_XLXHID=V_XSBJJSJGB_XLXHID "); + SQL.Add(" and XLXSJGBYZZ5_ZXJMXX<=ISNULL(XLDTJMZHB_DTJM1,0) and ((XLXSJGBYZZ5_ZXJMSX<>0 and XLXSJGBYZZ5_ZXJMSX>=ISNULL(XLDTJMZHB_DTJM1,0)) or XLXSJGBYZZ5_ZXJMSX=0)"); + SQL.Add(" and XLXSJGBYZZ5_ZXSXX<=XLGGB_GGZXS and ((XLXSJGBYZZ5_ZXSSX<>0 and XLXSJGBYZZ5_ZXSSX>=XLGGB_GGZXS) or XLXSJGBYZZ5_ZXSSX=0)"); + //2、优先级由低到高依次更新:电压不为空 + SQL.Add(" and XLXSJGBYZZ5_DYDJID=V_XSBJJSJGB_DYDJID "); + SQL.Add(" ) a "); + SQL.Add(" on (XLXSBJDJJYZ_BJDID=:pBJDID and XLXSBJDJJYZ_XH=BJDXH )"); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSBJDJJYZ_YZZ{0}=YZZ{0}", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.ParamByName("pID").Value = VnewID; + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + dberp.ExecSQL(SQL); + } + } + } + + if (!sTJYSList8.Trim().Equals("")) + { + string[] sTJYZ = sTJYSList8.Split(','); + for (int i = 0; i < sTJYZ.Length; i++) + { + if (!sTJYZ[i].Trim().Equals("")) + { + SQL.Clear(); + SQL.Add(" merge into XLXSBJDJJYZ tar "); + SQL.Add(" using "); + SQL.Add(" ("); + SQL.Add(" select V_XSBJJSJGB_BJDID as BJDID,V_XSBJJSJGB_BJDXH as BJDXH"); + SQL.Add(string.Format(",ISNULL(XLXSJGBYZZ8_YZZ * XLXSCLQD_CLZL/1000,0) as YZZ{0}", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.Add(" from V_XSBJJSJGB,XLXSTZYZ,XLXSJGBYZZ8 "); + SQL.Add(" LEFT JOIN XLXSCLQD ON XLXSCLQD_XLXHID = XLXSJGBYZZ8_XLXHID AND XLXSCLQD_XLGGID = XLXSJGBYZZ8_XLGGID AND XLXSCLQD_XLBZID = XLXSJGBYZZ8_XLBZID AND XLXSCLQD_DYDJID = XLXSJGBYZZ8_DYDJID "); + SQL.Add(" where V_XSBJJSJGB_ID=:pID "); + SQL.Add(" and V_XSBJJSJGB_BJDID=:pBJDID"); + SQL.Add(" and V_XSBJJSJGB_WGCPBZ<>'Y' and V_XSBJJSJGB_JGFBZ<>'Y' "); + SQL.Add(" and XLXSTZYZ_MXBH='JZJ' and XLXSTZYZ_YZID=:pYZID"); + SQL.Add(" and XLXSTZYZ_TJYS='8' and XLXSJGBYZZ8_JGBID=XLXSTZYZ_JGBID and XLXSJGBYZZ8_YZID=XLXSTZYZ_YZID "); + SQL.Add(" and XLXSJGBYZZ8_XLXHID=V_XSBJJSJGB_XLXHID and XLXSJGBYZZ8_XLGGID=V_XSBJJSJGB_XLGGID and XLXSJGBYZZ8_XLBZID=V_XSBJJSJGB_XLBZID and XLXSJGBYZZ8_DYDJID=V_XSBJJSJGB_DYDJID "); + SQL.Add(" ) sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSBJDJJYZ_BJDID=:pBJDID and XLXSBJDJJYZ_XH=BJDXH "); + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSBJDJJYZ_YZZ{0}=YZZ{0}", sTJYZ[i].Trim().Replace("JZ", ""))); + SQL.ParamByName("pID").Value = VnewID; + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + dberp.ExecSQL(SQL); + } + } + } + + + + + + //最后补上外购产品XLXSBJDJJYZ的记录 + SQL.Clear(); + SQL.Add("insert into XLXSBJDJJYZ(XLXSBJDJJYZ_BJDID,XLXSBJDJJYZ_XH) "); + SQL.Add("select V_XSBJJSJGB_BJDID,V_XSBJJSJGB_BJDXH"); + SQL.Add(" from V_XSBJJSJGB "); + SQL.Add("where V_XSBJJSJGB_ID=:pID "); + SQL.Add(" and V_XSBJJSJGB_BJDID=:pBJDID"); + SQL.Add(" and V_XSBJJSJGB_WGCPBZ='Y' or V_XSBJJSJGB_JGFBZ='Y' "); + SQL.ParamByName("pID").Value = VnewID; + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + } + + + /// + /// 短米校验和修正 + /// + public static void Check_UpdBJSLYZZ(TDatabase dberp, TSQL SQL, string sBJDID, string sBJFLID, string sBJU002, string sBJU003) + { + Dictionary dicCheckedYZIDList = BJSLYZZCheck(dberp, SQL, sBJDID, sBJFLID, sBJU003); + if (dicCheckedYZIDList.Count > 0) + { + string sYZIDList2 = ""; + string sYZIDList3 = ""; + string sYZIDList6 = ""; + string sYZIDListE = ""; + string sYZIDListF = ""; + string sYZIDListG = ""; + string sYZIDListH = ""; + if (dicCheckedYZIDList.ContainsKey("sTJYSList2")) + sYZIDList2 = dicCheckedYZIDList["sTJYSList2"]; + if (dicCheckedYZIDList.ContainsKey("sTJYSList3")) + sYZIDList3 = dicCheckedYZIDList["sTJYSList3"]; + if (dicCheckedYZIDList.ContainsKey("sTJYSList6")) + sYZIDList6 = dicCheckedYZIDList["sTJYSList6"]; + if (dicCheckedYZIDList.ContainsKey("sTJYSListE")) + sYZIDListE = dicCheckedYZIDList["sTJYSListE"]; + if (dicCheckedYZIDList.ContainsKey("sTJYSListF")) + sYZIDListF = dicCheckedYZIDList["sTJYSListF"]; + if (dicCheckedYZIDList.ContainsKey("sTJYSListG")) + sYZIDListG = dicCheckedYZIDList["sTJYSListG"]; + if (dicCheckedYZIDList.ContainsKey("sTJYSListH")) + sYZIDListH = dicCheckedYZIDList["sTJYSListH"]; + + CalcWithBJSLYZZCheck(dberp, SQL, sBJDID, sYZIDList2, sYZIDList3, sYZIDList6, sYZIDListE, sYZIDListF, sYZIDListG, sYZIDListH, sBJU002, sBJU003, false);//这里bUpdXLBJD传入false,表示不用执行UpdateXLXSBJD + } + } + + public static Dictionary BJSLYZZCheck(TDatabase dberp, TSQL SQL, string sBJDID, string sBJFLID, string sBJU003) + { + //如果用到了和报价数量相关的因子,则进行整单短米校验 + Dictionary dicCheckedYZIDList = new Dictionary(); + + SQL.Clear(); + SQL.Add("select XLXSBJFLYZ_YZID from XLXSBJFLYZ"); + SQL.Add(" left join XLXSTZYZ on XLXSTZYZ_YZID=XLXSBJFLYZ_YZID and XLXSTZYZ_MXBH='BJD'"); + SQL.Add(" where XLXSBJFLYZ_BJFLID=:pBJFLID"); + SQL.Add(" and isnull(XLXSTZYZ_ABJCPJYYZZ,'N')='Y'"); + SQL.Add(" order by XLXSTZYZ_XSXH,XLXSBJFLYZ_YZID"); + SQL.ParamByName("pBJFLID").Value = sBJFLID; + DataSet ds = dberp.OpenDataSet(SQL); + //记录按报价产品校验因子值因子 + Dictionary dicABJCPJYYZList = new Dictionary(); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + dicABJCPJYYZList.Add(ds.Tables[0].Rows[i]["XLXSBJFLYZ_YZID"].ToString().Trim(), ""); + } + + if (dicABJCPJYYZList.Keys.Count==0) + { + return dicCheckedYZIDList; + } + + Dictionary dicTJYZList = new Dictionary(); + XLBJDUtils.GetDicTJYZList(dberp, SQL, sBJFLID, ref dicTJYZList); + + if (dicTJYZList.ContainsKey("sTJYSList2")) + { + string[] sYZIDs = dicTJYZList["sTJYSList2"].Split(','); + for (int i = 0; i < sYZIDs.Length; i++) + { + string sYZID = sYZIDs[i].Trim(); + if (dicABJCPJYYZList.ContainsKey(sYZID)) + { + bool chkResult = CheckBJDTJYS2(dberp, SQL, sBJDID, sBJFLID, sYZID, sBJU003); + if (chkResult) + { + if (!dicCheckedYZIDList.ContainsKey("sTJYSList2")) + dicCheckedYZIDList.Add("sTJYSList2", sYZID); + else + dicCheckedYZIDList["sTJYSList2"] = dicCheckedYZIDList["sTJYSList2"] + "," + sYZID; + } + } + } + } + if (dicTJYZList.ContainsKey("sTJYSList3")) + { + string[] sYZIDs = dicTJYZList["sTJYSList3"].Split(','); + for (int i = 0; i < sYZIDs.Length; i++) + { + string sYZID = sYZIDs[i].Trim(); + if (dicABJCPJYYZList.ContainsKey(sYZID)) + { + bool chkResult = CheckBJDTJYS3(dberp, SQL, sBJDID, sBJFLID, sYZID, sBJU003); + if (chkResult) + { + if (!dicCheckedYZIDList.ContainsKey("sTJYSList3")) + dicCheckedYZIDList.Add("sTJYSList3", sYZID); + else + dicCheckedYZIDList["sTJYSList3"] = dicCheckedYZIDList["sTJYSList3"] + "," + sYZID; + } + } + } + } + if (dicTJYZList.ContainsKey("sTJYSList6")) + { + string[] sYZIDs = dicTJYZList["sTJYSList6"].Split(','); + for (int i = 0; i < sYZIDs.Length; i++) + { + string sYZID = sYZIDs[i].Trim(); + if (dicABJCPJYYZList.ContainsKey(sYZID)) + { + bool chkResult = CheckBJDTJYS6(dberp, SQL, sBJDID, sBJFLID, sYZID, sBJU003); + if (chkResult) + { + if (!dicCheckedYZIDList.ContainsKey("sTJYSList6")) + dicCheckedYZIDList.Add("sTJYSList6", sYZID); + else + dicCheckedYZIDList["sTJYSList6"] = dicCheckedYZIDList["sTJYSList6"] + "," + sYZID; + } + } + } + } + if (dicTJYZList.ContainsKey("sTJYSListE")) + { + string[] sYZIDs = dicTJYZList["sTJYSListE"].Split(','); + for (int i = 0; i < sYZIDs.Length; i++) + { + string sYZID = sYZIDs[i].Trim(); + if (dicABJCPJYYZList.ContainsKey(sYZID)) + { + bool chkResult = CheckBJDTJYSE(dberp, SQL, sBJDID, sBJFLID, sYZID, sBJU003); + if (chkResult) + { + if (!dicCheckedYZIDList.ContainsKey("sTJYSListE")) + dicCheckedYZIDList.Add("sTJYSListE", sYZID); + else + dicCheckedYZIDList["sTJYSListE"] = dicCheckedYZIDList["sTJYSListE"] + "," + sYZID; + } + } + } + } + if (dicTJYZList.ContainsKey("sTJYSListG")) + { + string[] sYZIDs = dicTJYZList["sTJYSListG"].Split(','); + for (int i = 0; i < sYZIDs.Length; i++) + { + string sYZID = sYZIDs[i].Trim(); + if (dicABJCPJYYZList.ContainsKey(sYZID)) + { + bool chkResult = CheckBJDTJYSG(dberp, SQL, sBJDID, sBJFLID, sYZID, sBJU003); + if (chkResult) + { + if (!dicCheckedYZIDList.ContainsKey("sTJYSListG")) + dicCheckedYZIDList.Add("sTJYSListG", sYZID); + else + dicCheckedYZIDList["sTJYSListG"] = dicCheckedYZIDList["sTJYSListG"] + "," + sYZID; + } + } + } + } + if (dicTJYZList.ContainsKey("sTJYSListF")) + { + string[] sYZIDs = dicTJYZList["sTJYSListF"].Split(','); + for (int i = 0; i < sYZIDs.Length; i++) + { + string sYZID = sYZIDs[i].Trim(); + if (dicABJCPJYYZList.ContainsKey(sYZID)) + { + bool chkResult = CheckBJDTJYSF(dberp, SQL, sBJDID, sBJFLID, sYZID, sBJU003); + if (chkResult) + { + if (!dicCheckedYZIDList.ContainsKey("sTJYSListF")) + dicCheckedYZIDList.Add("sTJYSListF", sYZID); + else + dicCheckedYZIDList["sTJYSListF"] = dicCheckedYZIDList["sTJYSListF"] + "," + sYZID; + } + } + } + } + if (dicTJYZList.ContainsKey("sTJYSListH")) + { + string[] sYZIDs = dicTJYZList["sTJYSListH"].Split(','); + for (int i = 0; i < sYZIDs.Length; i++) + { + string sYZID = sYZIDs[i].Trim(); + if (dicABJCPJYYZList.ContainsKey(sYZID)) + { + bool chkResult = CheckBJDTJYSH(dberp, SQL, sBJDID, sBJFLID, sYZID, sBJU003); + if (chkResult) + { + if (!dicCheckedYZIDList.ContainsKey("sTJYSListH")) + dicCheckedYZIDList.Add("sTJYSListH", sYZID); + else + dicCheckedYZIDList["sTJYSListH"] = dicCheckedYZIDList["sTJYSListH"] + "," + sYZID; + } + } + } + } + return dicCheckedYZIDList; + } + + //对“2|导体材料&电压区间&报价数量区间”进行整单因子值校验,返回true代表因子值不一致 + public static bool CheckBJDTJYS2(TDatabase dberp, TSQL SQL, string sBJDID, string sBJFLID, string sYZID, string sBJU003) + { + SQL.Clear(); + XLBJD_YZZCheck.GetBJSLTJYS_SQL(SQL, sBJDID, sBJFLID, "2", sYZID, sBJU003, "exists"); + DataSet dsTJYS = dberp.OpenDataSet(SQL); + if (dsTJYS.Tables[0].Rows.Count > 0) + return true; + else + return false; + } + + //对“3|产品用途&电压等级分类&报价数量区间”进行整单因子值校验,返回true代表因子值不一致 + public static bool CheckBJDTJYS3(TDatabase dberp, TSQL SQL, string sBJDID, string sBJFLID, string sYZID, string sBJU003) + { + SQL.Clear(); + XLBJD_YZZCheck.GetBJSLTJYS_SQL(SQL, sBJDID, sBJFLID, "3", sYZID, sBJU003, "exists"); + DataSet dsTJYS = dberp.OpenDataSet(SQL); + if (dsTJYS.Tables[0].Rows.Count > 0) + return true; + else + return false; + } + + //对“6|报价数量区间调价米数/报价数量”进行整单因子值校验,返回true代表因子值不一致 + public static bool CheckBJDTJYS6(TDatabase dberp, TSQL SQL, string sBJDID, string sBJFLID, string sYZID, string sBJU003) + { + SQL.Clear(); + XLBJD_YZZCheck.GetBJSLTJYS_SQL(SQL, sBJDID, sBJFLID, "6", sYZID, sBJU003, "exists"); + DataSet dsTJYS = dberp.OpenDataSet(SQL); + if (dsTJYS.Tables[0].Rows.Count > 0) + return true; + else + return false; + } + + //对“E|型号&电压等级&主芯截面范围&报价数量区间”进行整单因子值校验,返回true代表因子值不一致 + public static bool CheckBJDTJYSE(TDatabase dberp, TSQL SQL, string sBJDID, string sBJFLID, string sYZID, string sBJU003) + { + SQL.Clear(); + XLBJD_YZZCheck.GetBJSLTJYS_SQL(SQL, sBJDID, sBJFLID, "E", sYZID, sBJU003, "exists"); + DataSet dsTJYS = dberp.OpenDataSet(SQL); + if (dsTJYS.Tables[0].Rows.Count > 0) + return true; + else + return false; + } + public static bool CheckBJDTJYSG(TDatabase dberp, TSQL SQL, string sBJDID, string sBJFLID, string sYZID, string sBJU003) + { + SQL.Clear(); + XLBJD_YZZCheck.GetBJSLTJYS_SQL(SQL, sBJDID, sBJFLID, "G", sYZID, sBJU003, "exists"); + DataSet dsTJYS = dberp.OpenDataSet(SQL); + if (dsTJYS.Tables[0].Rows.Count > 0) + return true; + else + return false; + } + + //对“F|电压等级&芯线结构&报价数量区间加价/报价数量”进行整单因子值校验,返回true代表因子值不一致 + public static bool CheckBJDTJYSF(TDatabase dberp, TSQL SQL, string sBJDID, string sBJFLID, string sYZID, string sBJU003) + { + SQL.Clear(); + XLBJD_YZZCheck.GetBJSLTJYS_SQL(SQL, sBJDID, sBJFLID, "F", sYZID, sBJU003, "exists"); + DataSet dsTJYS = dberp.OpenDataSet(SQL); + if (dsTJYS.Tables[0].Rows.Count > 0) + return true; + else + return false; + } + + public static bool CheckBJDTJYSH(TDatabase dberp, TSQL SQL, string sBJDID, string sBJFLID, string sYZID, string sBJU003) + { + SQL.Clear(); + XLBJD_YZZCheck.GetBJSLTJYS_SQL(SQL, sBJDID, sBJFLID, "H", sYZID, sBJU003, "exists"); + DataSet dsTJYS = dberp.OpenDataSet(SQL); + if (dsTJYS.Tables[0].Rows.Count > 0) + return true; + else + return false; + } + + public static void CalcWithBJSLYZZCheck(TDatabase dberp, TSQL SQL, string sBJDID, string strYZIDList2, string strYZIDList3, string strYZIDList6, string strYZIDListE, string strYZIDListF, string strYZIDListG, + string strYZIDListH, string sBJU002, string sBJU003, bool bUpdXLBJD) + { + try + { + if (strYZIDList2.Equals("") && strYZIDList3.Equals("") && strYZIDList6.Equals("") && strYZIDListE.Equals("") + && strYZIDListF.Equals("") && strYZIDListG.Equals("") && strYZIDListH.Equals("")) + return; + string[] sYZIDList2 = strYZIDList2.Split(new Char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); + string[] sYZIDList3 = strYZIDList3.Split(new Char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); + string[] sYZIDList6 = strYZIDList6.Split(new Char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); + string[] sYZIDListE = strYZIDListE.Split(new Char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); + string[] sYZIDListF = strYZIDListF.Split(new Char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); + string[] sYZIDListG = strYZIDListG.Split(new Char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); + string[] sYZIDListH = strYZIDListH.Split(new Char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); + + SQL.Clear(); + SQL.Add("select XLXSBJD_JGBID,XLXSJGB_MXBH,XLXSJGB_JGBIDS,XLXSJGB_JGCIDS,XLXSJGB_BJLY,XLXSJGB_TJYS,XLXSJGB_JSBLFS,XLXSBJFL_XSTZZDXJ, "); + SQL.Add(" XLXSBJD_BJFLID,XLXSBJFL_BJDHQLY,XLXSBJFL_TZCLHQ,XLXSBJFL_JGBTJYSS,XLXSBJFL_BJJCLLX,XLXSBJFL_LJJCLLX,XLXSBJFL_CPBJMRXSWS,"); + SQL.Add(" XLXSBJFL_ZDXJJCLLX,XLXSBJFL_JYF,XLXSBJFL_YFWLID,XLXSBJFL_BJHYF,XLXSBJFL_ZDXJGS,XLXSBJFL_JSJGS,"); + SQL.Add(" XLXSBJD_JZBJHS,XLXSBJD_BJRQ"); + SQL.Add(" from XLXSBJD "); + SQL.Add(" left join XLXSJGB on XLXSJGB_JGBID=XLXSBJD_JGBID "); + SQL.Add(" left join XLXSBJFL on XLXSBJFL_BJFLID=XLXSBJD_BJFLID"); + SQL.Add(" where XLXSBJD_BJDID=:pBJDID"); + SQL.ParamByName("pBJDID").Value = sBJDID; + DataSet dsBJD = dberp.OpenDataSet(SQL); + if (dsBJD.Tables[0].Rows.Count == 0) + { + return; + } + + int iXSWS = string.IsNullOrEmpty(sBJU002) ? 5 : CMISproConvert.StrToInt(sBJU002); + if (iXSWS < 0) + iXSWS = 0; + else if (iXSWS > 8) + iXSWS = 8; + + bool bHSBZ = dsBJD.Tables[0].Rows[0]["XLXSBJD_JZBJHS"].ToString().Trim().Equals("Y"); + string sBJRQ = dsBJD.Tables[0].Rows[0]["XLXSBJD_BJRQ"].ToString().Trim(); + + string sJGBID = dsBJD.Tables[0].Rows[0]["XLXSBJD_JGBID"].ToString().Trim(); + string sMXBH = dsBJD.Tables[0].Rows[0]["XLXSJGB_MXBH"].ToString().Trim(); + string sJGBIDS = dsBJD.Tables[0].Rows[0]["XLXSJGB_JGBIDS"].ToString().Trim(); + string sJGCIDS = dsBJD.Tables[0].Rows[0]["XLXSJGB_JGCIDS"].ToString().Trim(); + string sBJLY = dsBJD.Tables[0].Rows[0]["XLXSJGB_BJLY"].ToString().Trim(); + string sTJYS = dsBJD.Tables[0].Rows[0]["XLXSJGB_TJYS"].ToString().Trim(); + string sJSBLFS = dsBJD.Tables[0].Rows[0]["XLXSJGB_JSBLFS"].ToString().Trim(); + + string sBJFLID = dsBJD.Tables[0].Rows[0]["XLXSBJD_BJFLID"].ToString().Trim(); + string sBJDHQLY = dsBJD.Tables[0].Rows[0]["XLXSBJFL_BJDHQLY"].ToString().Trim();//1|价格表行情、2|报价日行情 + string sJGBTJYSS = dsBJD.Tables[0].Rows[0]["XLXSBJFL_JGBTJYSS"].ToString().Trim();//价格表调价因素 + string sJCLLX = dsBJD.Tables[0].Rows[0]["XLXSBJFL_BJJCLLX"].ToString().Trim(); + string sLJJCLLX = dsBJD.Tables[0].Rows[0]["XLXSBJFL_LJJCLLX"].ToString().Trim(); + string sCPBJMRXSWS = dsBJD.Tables[0].Rows[0]["XLXSBJFL_CPBJMRXSWS"].ToString().Trim(); + string sZDXJJCLLX = dsBJD.Tables[0].Rows[0]["XLXSBJFL_ZDXJJCLLX"].ToString().Trim(); + string sJYF = dsBJD.Tables[0].Rows[0]["XLXSBJFL_JYF"].ToString().Trim(); + string sYFWLID = dsBJD.Tables[0].Rows[0]["XLXSBJFL_YFWLID"].ToString().Trim(); + string sBJHYF = dsBJD.Tables[0].Rows[0]["XLXSBJFL_BJHYF"].ToString().Trim(); + string sZDXJGS = dsBJD.Tables[0].Rows[0]["XLXSBJFL_ZDXJGS"].ToString().Trim(); + string sXSTZZDXJ = dsBJD.Tables[0].Rows[0]["XLXSBJFL_XSTZZDXJ"].ToString().Trim(); + string sJSJGS = dsBJD.Tables[0].Rows[0]["XLXSBJFL_JSJGS"].ToString().Trim(); + + //利用tWHSJCondition来锁定需要重算的报价单明细 + DateTime tWHSJCondition = MISproUtils.GetServerTime(); + + SQL.Clear(); + SQL.Add("merge into XLXSBJDMX tar "); + SQL.Add("using "); + SQL.Add("( "); + SQL.Add(" select XLXSBJDMX_XH as BJDXH"); + SQL.Add(" from XLXSBJDMX cur"); + SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID"); + //SQL.Add(" and XLXSBJDMX_XH>=:pstartBJDXH"); + //if (!sBJDXHList.Equals("")) + // SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + //if (bYBJ) + // SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + //if (bWG) + // SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + //if (bFWG) + // SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y'"); + //if (!sTLcpList.Equals("")) + // SQL.Add(" and exists(select 1 from XLXHB where XLXHB_XLXHID=UPPER(XLXSBJDMX_XLXHID) and " + CMISproDataBase.GetWhereEqual("XLXHB_DTCLID", sTLcpList) + ") "); + bool bFirstYZ = true; + SQL.Add(" and ("); + for (int i = 0; i < sYZIDList2.Length; i++) + { + if (!bFirstYZ) + SQL.Add(" or "); + bFirstYZ = false; + + SQL.Add(" exists ("); + + XLBJD_YZZCheck.GetBJSLTJYS_SQL(SQL, sBJDID, sBJFLID, "2", sYZIDList2[i], sBJU003, "exists"); + + SQL.Add(" and upper(cur.XLXSBJDMX_XLXHID)=upper(tmp.XLXSBJDMX_XLXHID)"); + SQL.Add(" and cur.XLXSBJDMX_XLGGID=tmp.XLXSBJDMX_XLGGID"); + SQL.Add(" and cur.XLXSBJDMX_XLBZID=tmp.XLXSBJDMX_XLBZID"); + SQL.Add(" and isnull(cur.XLXSBJDMX_DYDJID,' ')=isnull(tmp.XLXSBJDMX_DYDJID,' ')"); + SQL.Add(" ) "); + } + for (int i = 0; i < sYZIDList3.Length; i++) + { + if (!bFirstYZ) + SQL.Add(" or "); + bFirstYZ = false; + + SQL.Add(" exists ("); + + XLBJD_YZZCheck.GetBJSLTJYS_SQL(SQL, sBJDID, sBJFLID, "3", sYZIDList3[i], sBJU003, "exists"); + + SQL.Add(" and upper(cur.XLXSBJDMX_XLXHID)=upper(tmp.XLXSBJDMX_XLXHID)"); + SQL.Add(" and cur.XLXSBJDMX_XLGGID=tmp.XLXSBJDMX_XLGGID"); + SQL.Add(" and cur.XLXSBJDMX_XLBZID=tmp.XLXSBJDMX_XLBZID"); + SQL.Add(" and isnull(cur.XLXSBJDMX_DYDJID,' ')=isnull(tmp.XLXSBJDMX_DYDJID,' ')"); + SQL.Add(" ) "); + } + for (int i = 0; i < sYZIDList6.Length; i++) + { + if (!bFirstYZ) + SQL.Add(" or "); + bFirstYZ = false; + + SQL.Add(" exists ("); + + XLBJD_YZZCheck.GetBJSLTJYS_SQL(SQL, sBJDID, sBJFLID, "6", sYZIDList6[i], sBJU003, "exists"); + + SQL.Add(" and upper(cur.XLXSBJDMX_XLXHID)=upper(tmp.XLXSBJDMX_XLXHID)"); + SQL.Add(" and cur.XLXSBJDMX_XLGGID=tmp.XLXSBJDMX_XLGGID"); + SQL.Add(" and cur.XLXSBJDMX_XLBZID=tmp.XLXSBJDMX_XLBZID"); + SQL.Add(" and isnull(cur.XLXSBJDMX_DYDJID,' ')=isnull(tmp.XLXSBJDMX_DYDJID,' ')"); + SQL.Add(" ) "); + } + for (int i = 0; i < sYZIDListE.Length; i++) + { + if (!bFirstYZ) + SQL.Add(" or "); + bFirstYZ = false; + + SQL.Add(" exists ("); + + XLBJD_YZZCheck.GetBJSLTJYS_SQL(SQL, sBJDID, sBJFLID, "E", sYZIDListE[i], sBJU003, "exists"); + + SQL.Add(" and upper(cur.XLXSBJDMX_XLXHID)=upper(tmp.XLXSBJDMX_XLXHID)"); + SQL.Add(" and cur.XLXSBJDMX_XLGGID=tmp.XLXSBJDMX_XLGGID"); + SQL.Add(" and cur.XLXSBJDMX_XLBZID=tmp.XLXSBJDMX_XLBZID"); + SQL.Add(" and isnull(cur.XLXSBJDMX_DYDJID,' ')=isnull(tmp.XLXSBJDMX_DYDJID,' ')"); + SQL.Add(" ) "); + } + for (int i = 0; i < sYZIDListF.Length; i++) + { + if (!bFirstYZ) + SQL.Add(" or "); + bFirstYZ = false; + + SQL.Add(" exists ("); + + XLBJD_YZZCheck.GetBJSLTJYS_SQL(SQL, sBJDID, sBJFLID, "F", sYZIDListF[i], sBJU003, "exists"); + + SQL.Add(" and upper(cur.XLXSBJDMX_XLXHID)=upper(tmp.XLXSBJDMX_XLXHID)"); + SQL.Add(" and cur.XLXSBJDMX_XLGGID=tmp.XLXSBJDMX_XLGGID"); + SQL.Add(" and cur.XLXSBJDMX_XLBZID=tmp.XLXSBJDMX_XLBZID"); + SQL.Add(" and isnull(cur.XLXSBJDMX_DYDJID,' ')=isnull(tmp.XLXSBJDMX_DYDJID,' ')"); + SQL.Add(" ) "); + } + for (int i = 0; i < sYZIDListG.Length; i++) + { + if (!bFirstYZ) + SQL.Add(" or "); + bFirstYZ = false; + + SQL.Add(" exists ("); + + XLBJD_YZZCheck.GetBJSLTJYS_SQL(SQL, sBJDID, sBJFLID, "G", sYZIDListG[i], sBJU003, "exists"); + + SQL.Add(" and upper(cur.XLXSBJDMX_XLXHID)=upper(tmp.XLXSBJDMX_XLXHID)"); + SQL.Add(" and cur.XLXSBJDMX_XLGGID=tmp.XLXSBJDMX_XLGGID"); + SQL.Add(" and cur.XLXSBJDMX_XLBZID=tmp.XLXSBJDMX_XLBZID"); + SQL.Add(" and isnull(cur.XLXSBJDMX_DYDJID,' ')=isnull(tmp.XLXSBJDMX_DYDJID,' ')"); + SQL.Add(" ) "); + } + for (int i = 0; i < sYZIDListH.Length; i++) + { + if (!bFirstYZ) + SQL.Add(" or "); + bFirstYZ = false; + + SQL.Add(" exists ("); + + XLBJD_YZZCheck.GetBJSLTJYS_SQL(SQL, sBJDID, sBJFLID, "H", sYZIDListH[i], sBJU003, "exists"); + + SQL.Add(" and upper(cur.XLXSBJDMX_XLXHID)=upper(tmp.XLXSBJDMX_XLXHID)"); + SQL.Add(" and cur.XLXSBJDMX_XLGGID=tmp.XLXSBJDMX_XLGGID"); + SQL.Add(" and cur.XLXSBJDMX_XLBZID=tmp.XLXSBJDMX_XLBZID"); + SQL.Add(" and isnull(cur.XLXSBJDMX_DYDJID,' ')=isnull(tmp.XLXSBJDMX_DYDJID,' ')"); + SQL.Add(" ) "); + } + SQL.Add(" )"); + SQL.Add(" ) sor "); + SQL.Add(" on (XLXSBJDMX_BJDID=:pBJDID and XLXSBJDMX_XH=BJDXH)"); + SQL.Add(" when matched then update set XLXSBJDMX_TZCPBJ=0,XLXSBJDMX_CLCBJCLSDBZ='N',XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pBJDID").Value = sBJDID; + //SQL.ParamByName("pstartBJDXH").Value = startBJDXH; + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + dberp.ExecSQL(SQL); + + for (int i = 0; i < sYZIDList2.Length; i++) + { + SQL.Clear(); + SQL.Add("merge into XLXSBJDYZZ0 tar "); + SQL.Add("using "); + SQL.Add("( "); + XLBJD_YZZCheck.GetBJSLTJYS_SQL(SQL, sBJDID, sBJFLID, "2", sYZIDList2[i], sBJU003, "selectBJDXH"); + SQL.Add(" ) sor "); + SQL.Add(" on (XLXSBJDYZZ0_BJDID=:pBJDID and XLXSBJDYZZ0_XH=BJDXH)"); + SQL.Add(string.Format(" when matched then update set XLXSBJDYZZ0_YZZ{0}=YZZ", sYZIDList2[i].Replace("BJ", ""))); + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + } + for (int i = 0; i < sYZIDList3.Length; i++) + { + SQL.Clear(); + SQL.Add("merge into XLXSBJDYZZ0 tar "); + SQL.Add("using "); + SQL.Add("( "); + XLBJD_YZZCheck.GetBJSLTJYS_SQL(SQL, sBJDID, sBJFLID, "3", sYZIDList3[i], sBJU003, "selectBJDXH"); + SQL.Add(" ) sor "); + SQL.Add(" on (XLXSBJDYZZ0_BJDID=:pBJDID and XLXSBJDYZZ0_XH=BJDXH)"); + SQL.Add(string.Format(" when matched then update set XLXSBJDYZZ0_YZZ{0}=YZZ", sYZIDList3[i].Replace("BJ", ""))); + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + } + for (int i = 0; i < sYZIDList6.Length; i++) + { + SQL.Clear(); + SQL.Add("merge into XLXSBJDYZZ0 tar "); + SQL.Add("using "); + SQL.Add("( "); + XLBJD_YZZCheck.GetBJSLTJYS_SQL(SQL, sBJDID, sBJFLID, "6", sYZIDList6[i], sBJU003, "selectBJDXH"); + SQL.Add(" ) sor "); + SQL.Add(" on (XLXSBJDYZZ0_BJDID=:pBJDID and XLXSBJDYZZ0_XH=BJDXH)"); + SQL.Add(string.Format(" when matched then update set XLXSBJDYZZ0_YZZ{0}=YZZ", sYZIDList6[i].Replace("BJ", ""))); + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + } + for (int i = 0; i < sYZIDListE.Length; i++) + { + SQL.Clear(); + SQL.Add("merge into XLXSBJDYZZ0 tar "); + SQL.Add("using "); + SQL.Add("( "); + XLBJD_YZZCheck.GetBJSLTJYS_SQL(SQL, sBJDID, sBJFLID, "E", sYZIDListE[i], sBJU003, "selectBJDXH"); + SQL.Add(" ) sor "); + SQL.Add(" on (XLXSBJDYZZ0_BJDID=:pBJDID and XLXSBJDYZZ0_XH=BJDXH)"); + SQL.Add(string.Format(" when matched then update set XLXSBJDYZZ0_YZZ{0}=YZZ", sYZIDListE[i].Replace("BJ", ""))); + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + } + for (int i = 0; i < sYZIDListG.Length; i++) + { + SQL.Clear(); + SQL.Add("merge into XLXSBJDYZZ0 tar "); + SQL.Add("using "); + SQL.Add("( "); + XLBJD_YZZCheck.GetBJSLTJYS_SQL(SQL, sBJDID, sBJFLID, "G", sYZIDListG[i], sBJU003, "selectBJDXH"); + SQL.Add(" ) sor "); + SQL.Add(" on (XLXSBJDYZZ0_BJDID=:pBJDID and XLXSBJDYZZ0_XH=BJDXH)"); + SQL.Add(string.Format(" when matched then update set XLXSBJDYZZ0_YZZ{0}=YZZ", sYZIDListG[i].Replace("BJ", ""))); + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + } + string sBJU003JSDW = XLBJDUtils.GetsJSDW(sBJU003, sBJU003); + Dictionary dicLenJLDWTD = XLBJDUtils.GetLenJLDWTD(); + for (int i = 0; i < sYZIDListF.Length; i++) + { + SQL.Clear(); + SQL.Add("merge into XLXSBJDYZZ0 tar "); + SQL.Add("using "); + SQL.Add("( "); + XLBJD_YZZCheck.GetBJSLTJYS_SQL(SQL, sBJDID, sBJFLID, "F", sYZIDListF[i], sBJU003, "selectBJDXH"); + SQL.Add(" ) sor "); + SQL.Add(" on (XLXSBJDYZZ0_BJDID=:pBJDID and XLXSBJDYZZ0_XH=BJDXH)"); + if (sBJU003JSDW.Equals("M")) + { + SQL.Add(string.Format(" when matched then update set XLXSBJDYZZ0_YZZ{0}= (case when XLXSBJDMX_JLDW in('Km','千米') then RoundFix(1000*YZZ,6) ", sYZIDListF[i].Replace("BJ", ""))); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when XLXSBJDMX_JLDW='{0}' then RoundFix(YZZ*{1},6) ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else YZZ end)"); + } + + else if (sBJU003JSDW.Equals("Km")) + { + SQL.Add(string.Format(" when matched then update set XLXSBJDYZZ0_YZZ{0}= (case when XLXSBJDMX_JLDW in('M','米') then RoundFix(0.001*YZZ,6) ", sYZIDListF[i].Replace("BJ", ""))); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when XLXSBJDMX_JLDW='{0}' then RoundFix(YZZ/{1},6) ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else YZZ end)"); + } + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + } + for (int i = 0; i < sYZIDListH.Length; i++) + { + SQL.Clear(); + SQL.Add("merge into XLXSBJDYZZ0 tar "); + SQL.Add("using "); + SQL.Add("( "); + XLBJD_YZZCheck.GetBJSLTJYS_SQL(SQL, sBJDID, sBJFLID, "H", sYZIDListH[i], sBJU003, "selectBJDXH"); + SQL.Add(" ) sor "); + SQL.Add(" on (XLXSBJDYZZ0_BJDID=:pBJDID and XLXSBJDYZZ0_XH=BJDXH)"); + if (sBJU003JSDW.Equals("M")) + { + SQL.Add(string.Format(" when matched then update set XLXSBJDYZZ0_YZZ{0}= (case when XLXSBJDMX_JLDW in('Km','千米') then RoundFix(1000*YZZ,6) ", sYZIDListH[i].Replace("BJ", ""))); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when XLXSBJDMX_JLDW='{0}' then RoundFix(YZZ*{1},6) ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else YZZ end)"); + } + + else if (sBJU003JSDW.Equals("Km")) + { + SQL.Add(string.Format(" when matched then update set XLXSBJDYZZ0_YZZ{0}= (case when XLXSBJDMX_JLDW in('M','米') then RoundFix(0.001*YZZ,6) ", sYZIDListH[i].Replace("BJ", ""))); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when XLXSBJDMX_JLDW='{0}' then RoundFix(YZZ/{1},6) ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else YZZ end)"); + } + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + } + + XLBJDUtils.UpdateBJDMX(dberp, SQL, sBJFLID, sBJDID, iXSWS, sJCLLX, sLJJCLLX, sCPBJMRXSWS, tWHSJCondition); + + bool bZDXJTZ = false; + if (sZDXJGS.Contains("BJ01") || sZDXJGS.Contains("BJ02") || sZDXJGS.Contains("BJ03") || sZDXJGS.Contains("BJ04") || sZDXJGS.Contains("BJ05") + || sZDXJGS.Contains("BJ06") || sZDXJGS.Contains("BJ07") || sZDXJGS.Contains("BJ08") || sZDXJGS.Contains("BJ09") || sZDXJGS.Contains("BJ10") + || sZDXJGS.Contains("BJ11") || sZDXJGS.Contains("BJ12") || sZDXJGS.Contains("BJ13") || sZDXJGS.Contains("BJ14") || sZDXJGS.Contains("BJ15") + || sZDXJGS.Contains("BJ16") || sZDXJGS.Contains("BJ17") || sZDXJGS.Contains("BJ18") || sZDXJGS.Contains("BJ19") || sZDXJGS.Contains("BJ20") + || sZDXJGS.Contains("CPBJ") || sXSTZZDXJ.Equals("Y")) + { + XLBJDUtils.UpdateZDXJGS(dberp, SQL, sBJDID, sBJFLID, sBJU002, "", 1, false, false, false, false, "", tWHSJCondition); + bZDXJTZ = true; + + } + if (sJSJGS.Contains("BJ01") || sJSJGS.Contains("BJ02") || sJSJGS.Contains("BJ03") || sJSJGS.Contains("BJ04") || sJSJGS.Contains("BJ05") + || sJSJGS.Contains("BJ06") || sJSJGS.Contains("BJ07") || sJSJGS.Contains("BJ08") || sJSJGS.Contains("BJ09") || sJSJGS.Contains("BJ10") + || sJSJGS.Contains("BJ11") || sJSJGS.Contains("BJ12") || sJSJGS.Contains("BJ13") || sJSJGS.Contains("BJ14") || sJSJGS.Contains("BJ15") + || sJSJGS.Contains("BJ16") || sJSJGS.Contains("BJ17") || sJSJGS.Contains("BJ18") || sJSJGS.Contains("BJ19") || sJSJGS.Contains("BJ20") + || sJSJGS.Contains("CPBJ") || sXSTZZDXJ.Equals("Y")||bZDXJTZ) + { + XLBJDUtils.UpdateJSJGS(dberp, SQL, sBJDID, sBJFLID, sBJU002, "", 1, false, false, false, false, "", tWHSJCondition); + + } + + + if (bUpdXLBJD) + { + XLBJDUtils.UpdateXLXSBJD(dberp, SQL, sBJDID, sJCLLX, sLJJCLLX, sZDXJJCLLX, sJYF, "", "", sYFWLID, sBJHYF); + } + } + catch (Exception ex) + { + throw new Exception(ex.Message); + } + } + + + //计算材料价价差 + public static void UpdateJGBTJYS_3(TDatabase dberp, TSQL SQL, string sJGBID, int iXSWS, string sJSBLFS, string sWHRID, string sWHR, string sJGBID1, + string sBJDID, int iMinXH) + { + //bool bExistsWLHQ = false;//是否存在物料行情报价材料 + //if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select top 1 XLXSBJCL_BJCLID from XLXSBJCL where XLXSBJCL_BJHQ='2'"))) + // bExistsWLHQ = true; + + string sBJFLID = ""; + string sBJRQ = ""; + string sTBJCLID = ""; + string sLBJCLID = ""; + double dTJ = 0.0; + double dLJ = 0.0; + //string sBJDHQLX = "JGBHQ";//报价单行情类型 + bool bNeedCalJGBEx = false;//被报价单调用时,是否需要重算衍生扩展价格表 + if (!sBJDID.Trim().Equals("")) + { + SQL.Clear(); + SQL.Add("select XLXSBJD_BJFLID,XLXSBJD_BJRQ,XLXSBJD_TJ,XLXSBJD_LJ, "); + SQL.Add(" XLXSBJFL_BJDHQLY,XLXSBJFL_TZCLHQ,XLXSBJFL_TBJCLID,XLXSBJFL_LBJCLID"); + SQL.Add(" from XLXSBJD"); + SQL.Add(" left join XLXSBJFL on XLXSBJFL_BJFLID=XLXSBJD_BJFLID"); + SQL.Add(" where XLXSBJD_BJDID=:pBJDID"); + SQL.ParamByName("pBJDID").Value = sBJDID.Trim(); + DataSet dsBJD = dberp.OpenDataSet(SQL); + if (dsBJD.Tables[0].Rows.Count > 0) + { + sBJFLID = dsBJD.Tables[0].Rows[0]["XLXSBJD_BJFLID"].ToString().Trim(); + sBJRQ = dsBJD.Tables[0].Rows[0]["XLXSBJD_BJRQ"].ToString().Trim(); + sTBJCLID = dsBJD.Tables[0].Rows[0]["XLXSBJFL_TBJCLID"].ToString().Trim(); + sLBJCLID = dsBJD.Tables[0].Rows[0]["XLXSBJFL_LBJCLID"].ToString().Trim(); + dTJ = CMISproConvert.StrToFloat(dsBJD.Tables[0].Rows[0]["XLXSBJD_TJ"].ToString()); + dLJ = CMISproConvert.StrToFloat(dsBJD.Tables[0].Rows[0]["XLXSBJD_LJ"].ToString()); + //string sBJDHQLY = dsBJD.Tables[0].Rows[0]["XLXSBJFL_BJDHQLY"].ToString().Trim(); + //if (sBJDHQLY.Equals("1"))//1|价格表行情 + //{ + // //报价分类设置了“报价日行情材料” + // if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select top 1 XLXSBJFLBJRHQCL_BJCLID from XLXSBJFLBJRHQCL where XLXSBJFLBJRHQCL_BJFLID='{0}'", sBJFLID))) + // { + // sBJDHQLX = "BJRCLHQ"; + // } + // else + // sBJDHQLX = "JGBHQ"; + //} + //else//2|报价日行情 + //{ + // sBJDHQLX = "BJRHQ"; + // if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select top 1 XLXSBJDCLHQ_BJCLID from XLXSBJDCLHQ where XLXSBJDCLHQ_BJDID='{0}'", sBJDID))) + // sBJDHQLX = "BJDHQ"; + //} + } + + //if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select top 1 XLXSJGBMX_XH from XLXSJGBMX where XLXSJGBMX_JGBID='{0}' and XLXSJGBMX_SYXH>0.0", sJGBID))) + //{ + // bNeedCalJGBEx = true; + //} + } + + //bool bNeedAddWLHQ = bExistsWLHQ && (!sJGBID.Equals("") || sBJDHQLX.Equals("BJDHQ")); + + if (sBJDID.Trim().Equals(""))//sBJDID为空,说明是销售价格表模块调用 + { + SQL.Clear(); + SQL.Add("select distinct XLXSJGBCLQD_JGCZBID,XLXSJGBCLQD_JGCZBBBID,XLXSJGBCLQD_JJFPSJ");//,XLJGCZBML_CZBLX + SQL.Add(" from XLXSJGBMX"); + SQL.Add(" left join XLXSJGBCLQD on XLXSJGBCLQD_JGBID=:pJGBID1 and XLXSJGBCLQD_XH=XLXSJGBMX_XH"); + //SQL.Add(" left join XLJGCZBML on XLJGCZBML_JGCZBID=XLXSJGBYLLM_JGCZBID"); + SQL.Add(" where XLXSJGBMX_JGBID=:pJGBID"); + SQL.Add(" order by XLXSJGBCLQD_JGCZBID,XLXSJGBCLQD_JGCZBBBID,XLXSJGBCLQD_JJFPSJ"); + SQL.ParamByName("pJGBID1").Value = sJGBID1; + SQL.ParamByName("pJGBID").Value = sJGBID; + } + else//sBJDID不为空,说明是被报价单调用 + { + if (bNeedCalJGBEx) + { + //衍生扩展的价格表支持被报价单重算 + } + else + { + SQL.Clear(); + SQL.Add("select distinct XLXSJGBCLQD_JGCZBID,XLXSJGBCLQD_JGCZBBBID,XLXSJGBCLQD_JJFPSJ");//,XLJGCZBML_CZBLX + SQL.Add(" from XLXSBJDMX"); + SQL.Add(" left join XLXSJGBMX on XLXSJGBMX_JGBID=:pJGBID1 and XLXSJGBMX_XLXHID=XLXSBJDMX_XLXHID and XLXSJGBMX_XLGGID=XLXSBJDMX_XLGGID"); + SQL.Add(" and XLXSJGBMX_XLBZID=XLXSBJDMX_XLBZID and XLXSJGBMX_DYDJID=XLXSBJDMX_DYDJID"); + SQL.Add(" left join XLXSJGBCLQD on XLXSJGBCLQD_JGBID=:pJGBID1 and XLXSJGBCLQD_XH=XLXSJGBMX_XH"); + //SQL.Add(" left join XLJGCZBML on XLJGCZBML_JGCZBID=XLXSCLQD_JGCZBID"); + SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID"); + SQL.Add(" and XLXSBJDMX_XH >= :piMinXH"); + SQL.Add(" order by XLXSJGBCLQD_JGCZBID,XLXSJGBCLQD_JGCZBBBID,XLXSJGBCLQD_JJFPSJ"); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("piMinXH").Value = iMinXH; + SQL.ParamByName("pJGBID1").Value = sJGBID1; + } + } + DataSet dsJGCZB = dberp.OpenDataSet(SQL); + for (int j = 0; j < dsJGCZB.Tables[0].Rows.Count; j++) + { + string tmpJGCZBID = dsJGCZB.Tables[0].Rows[j]["XLXSJGBCLQD_JGCZBID"].ToString().Trim(); + string tmpJGCZBBBID = dsJGCZB.Tables[0].Rows[j]["XLXSJGBCLQD_JGCZBBBID"].ToString().Trim(); + string tmpJJFPSJ = dsJGCZB.Tables[0].Rows[j]["XLXSJGBCLQD_JJFPSJ"].ToString().Trim(); + //标志材料行情/物料行情 + //int flag_1 = 0; + //int flag_2 = 0; + string sCLQDL = ""; + string sBJHQ = ""; + + SQL.Clear(); + SQL.Add("select XLXSJGBYLLM_CLQDL,isnull(XLXSBJCL_BJHQ,'1') as XLXSBJCL_BJHQ "); + SQL.Add(" from XLXSJGBYLLM"); + SQL.Add(" left join XLXSBJCL on XLXSBJCL_BJCLID=XLXSJGBYLLM_BJCLID"); + SQL.Add(" where XLXSJGBYLLM_JGBID=:pJGBID1"); + SQL.Add(" and XLXSJGBYLLM_JJFPSJ=:pJJFPSJ"); + SQL.Add(" and XLXSJGBYLLM_JGCZBID=:pJGCZBID"); + SQL.Add(" and XLXSJGBYLLM_JGCZBBBID=:pJGCZBBBID"); + SQL.Add(" order by XLXSJGBYLLM_CLQDL"); + SQL.ParamByName("pJGBID1").Value = sJGBID1; + SQL.ParamByName("pJJFPSJ").Value = tmpJJFPSJ; + SQL.ParamByName("pJGCZBID").Value = tmpJGCZBID; + SQL.ParamByName("pJGCZBBBID").Value = tmpJGCZBBBID; + DataSet dsCLQDL = dberp.OpenDataSet(SQL); + + //for (int i = 0; i < dsCLQDL.Tables[0].Rows.Count; i++) + //{ + // sBJHQ = dsCLQDL.Tables[0].Rows[i]["XLXSBJCL_BJHQ"].ToString().Trim(); + // if (sBJHQ.Equals("1"))//1|材料行情 + // { + // flag_1 = 1; + // } + // if (sBJHQ.Equals("2"))//2|物料行情 + // { + // flag_2 = 1; + // } + // if (1 == flag_1 && 1 == flag_2) + // { + // break; + // } + //} + + /* + merge into 目标表 a + using 源表 b + on(a.条件字段1=b.条件字段1 and a.条件字段2=b.条件字段2 ……) + when matched then update set a.更新字段=b.字段 + when not matched then insert into a(字段1,字段2……)values(值1,值2……) + */ + SQL.Clear(); + SQL.Add(" merge into XLXSJGBCLQD a "); + SQL.Add(" using "); + SQL.Add(" ("); + SQL.Add(" select XLXSJGBYLLM_JGBID as JGBID, XLXSJGBYLLM_JJFPSJ as JJFPSJ, XLXSJGBYLLM_JGCZBID as JGCZBID, XLXSJGBYLLM_JGCZBBBID as JGCZBBBID,"); + for (int i = 0; i < dsCLQDL.Tables[0].Rows.Count; i++) + { + sCLQDL = dsCLQDL.Tables[0].Rows[i]["XLXSJGBYLLM_CLQDL"].ToString().Trim(); + sBJHQ = dsCLQDL.Tables[0].Rows[i]["XLXSBJCL_BJHQ"].ToString().Trim(); + //if (sBJHQ.Equals("1"))//1|材料行情--这里之所以能涵盖2|物料行情,是因为因素3价格表和因素1价格表的物料行情不能随意改、且即使它们能发生变化也是因为期货铜价引起的,所以物料之前的价格差与细分之前的报价材料之间的价格差等同 + { + SQL.Add(string.Format(" sum(case when XLXSJGBYLLM_CLQDL='{0}' then isnull(XLXSCLHQ_WSJG,0.0) else 0.0 end) as CLJG{1},", sCLQDL, sCLQDL.Replace("第", "").Replace("列", ""))); + SQL.Add(string.Format(" sum(case when XLXSJGBYLLM_CLQDL='{0}' then isnull(XLXSCLHQ_HSJG,0.0) else 0.0 end) as HSJG{1},", sCLQDL, sCLQDL.Replace("第", "").Replace("列", ""))); + } + } + SQL.Add(" ' ' as MJBZ "); + SQL.Add(" from XLXSJGBYLLM "); + SQL.Add(" left join ("); + + if (sBJDID.Trim().Equals(""))//sBJDID为空,说明是销售价格表模块调用 + { + SQL.Add(" select j3.XLXSCLHQ_BJCLID as XLXSCLHQ_BJCLID,"); + SQL.Add(" j3.XLXSCLHQ_HSJG-j1.XLXSCLHQ_HSJG as XLXSCLHQ_HSJG,j3.XLXSCLHQ_WSJG-j1.XLXSCLHQ_WSJG as XLXSCLHQ_WSJG"); + + SQL.Add(" from XLXSCLHQ j1,XLXSCLHQ j3"); + SQL.Add(" where j1.XLXSCLHQ_JGBID=:pJGBID1 and j3.XLXSCLHQ_JGBID=:pJGBID"); + SQL.Add(" and j1.XLXSCLHQ_BJCLID=j3.XLXSCLHQ_BJCLID"); + SQL.Add(" ) jj on XLXSCLHQ_BJCLID=XLXSJGBYLLM_BJCLID"); + //SQL.ParamByName("pJGBID1").Value = sJGBID1; + SQL.ParamByName("pJGBID").Value = sJGBID; + } + else + { + SQL.Add(" select j3.XLXSCLHQ_BJCLID as XLXSCLHQ_BJCLID,"); + SQL.Add(" case when isnull(XLXSBJDCLHQ_BJCLID,' ')=' ' then (j3.XLXSCLHQ_HSJG-j1.XLXSCLHQ_HSJG) else (XLXSBJDCLHQ_HSJG-j1.XLXSCLHQ_HSJG) end as XLXSCLHQ_HSJG,"); + SQL.Add(" case when isnull(XLXSBJDCLHQ_BJCLID,' ')=' ' then (j3.XLXSCLHQ_WSJG-j1.XLXSCLHQ_WSJG) else (XLXSBJDCLHQ_WSJG-j1.XLXSCLHQ_WSJG) end as XLXSCLHQ_WSJG "); + + SQL.Add(" from XLXSCLHQ j1,XLXSCLHQ j3"); + SQL.Add(" left join XLXSBJDCLHQ on XLXSBJDCLHQ_BJDID=:pBJDIDD and XLXSBJDCLHQ_BJCLID=j3.XLXSCLHQ_BJCLID"); + SQL.Add(" where j1.XLXSCLHQ_JGBID=:pJGBID1 and j3.XLXSCLHQ_JGBID=:pJGBID"); + SQL.Add(" and j1.XLXSCLHQ_BJCLID=j3.XLXSCLHQ_BJCLID"); + SQL.Add(" ) jj on XLXSCLHQ_BJCLID=XLXSJGBYLLM_BJCLID"); + //SQL.ParamByName("pJGBID1").Value = sJGBID1; + SQL.ParamByName("pJGBID").Value = sJGBID; + SQL.ParamByName("pBJDIDD").Value = sBJDID.Trim(); + } + + SQL.Add(" where XLXSJGBYLLM_JGBID=:pJGBID1"); + SQL.Add(" and XLXSJGBYLLM_JJFPSJ=:pJJFPSJ"); + SQL.Add(" and XLXSJGBYLLM_JGCZBID=:pJGCZBID"); + SQL.Add(" and XLXSJGBYLLM_JGCZBBBID=:pJGCZBBBID"); + SQL.Add(" group by XLXSJGBYLLM_JGBID,XLXSJGBYLLM_JJFPSJ,XLXSJGBYLLM_JGCZBID,XLXSJGBYLLM_JGCZBBBID"); + SQL.Add(" ) b "); + SQL.Add(" on( "); + SQL.Add(" a.XLXSJGBCLQD_JGBID=:pJGBID1 and a.XLXSJGBCLQD_JJFPSJ=:pJJFPSJ and a.XLXSJGBCLQD_JGCZBID=:pJGCZBID and a.XLXSJGBCLQD_JGCZBBBID=:pJGCZBBBID"); + SQL.Add(" and a.XLXSJGBCLQD_JGBID=b.JGBID and a.XLXSJGBCLQD_JJFPSJ=b.JJFPSJ and a.XLXSJGBCLQD_JGCZBID=b.JGCZBID and a.XLXSJGBCLQD_JGCZBBBID=b.JGCZBBBID "); + if (!sBJDID.Trim().Equals(""))//这段是否有必要限制到具体要重算的产品,还是整个尺重表一起算,需要看项目执行效果再定 + { + if (bNeedCalJGBEx) + { + //衍生扩展的价格表支持被报价单重算,需要弄个临时表,将如下语句的查询结果插入到临时表中,然后用临时表与所依价格表明细进行关联 + + } + else + { + //SQL.Add(" and exists ("); + //SQL.Add("select top 1 XLXSBJDMX_BJDID"); + //SQL.Add(" from XLXSBJDMX"); + //SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID"); + //SQL.Add(" and XLXSBJDMX_XH >= :piMinXH"); + //SQL.Add(" and XLXSBJDMX_XLXHID=a.XLXSCLQD_XLXHID and XLXSBJDMX_XLGGID=a.XLXSCLQD_XLGGID"); + //SQL.Add(" and XLXSBJDMX_XLBZID=a.XLXSCLQD_XLBZID and XLXSBJDMX_DYDJID=a.XLXSCLQD_DYDJID"); + //SQL.Add(" ) "); + //SQL.ParamByName("pBJDID").Value = sBJDID; + //SQL.ParamByName("piMinXH").Value = iMinXH; + } + } + SQL.Add(" ) "); + SQL.Add(" when matched then update set a.XLXSJGBCLQD_WSCLCBC= "); + + SQL.Add(" ( "); + if (sJSBLFS.Equals("C1"))//C1|进一法(材料价各分项进一) + { + for (int i = 0; i < dsCLQDL.Tables[0].Rows.Count; i++) + { + sCLQDL = dsCLQDL.Tables[0].Rows[i]["XLXSJGBYLLM_CLQDL"].ToString().Trim(); + sBJHQ = dsCLQDL.Tables[0].Rows[i]["XLXSBJCL_BJHQ"].ToString().Trim(); + //if (sBJHQ.Equals("1"))//1|材料行情 + { + SQL.Add(string.Format("CEILING(RoundFix(XLXSJGBCLQD_ZL{0}*CLJG{0}*{1},8))/{1}+", sCLQDL.Replace("第", "").Replace("列", ""), Math.Pow(10.0, iXSWS))); + } + } + } + else + { + for (int i = 0; i < dsCLQDL.Tables[0].Rows.Count; i++) + { + sCLQDL = dsCLQDL.Tables[0].Rows[i]["XLXSJGBYLLM_CLQDL"].ToString().Trim(); + sBJHQ = dsCLQDL.Tables[0].Rows[i]["XLXSBJCL_BJHQ"].ToString().Trim(); + //if (sBJHQ.Equals("1"))//1|材料行情 + { + SQL.Add(string.Format("XLXSJGBCLQD_ZL{0}*CLJG{0}+", sCLQDL.Replace("第", "").Replace("列", ""))); + } + } + } + //if (bNeedAddWLHQ) + //{ + // SQL.Add("1.0), ");//这里+1.0是为了解决即使材料价都为0,也要保证成本之和不为0 + //} + //else + SQL.Add("0), "); + SQL.Add(" a.XLXSJGBCLQD_HSCLCBC="); + + SQL.Add(" ( "); + if (sJSBLFS.Equals("C1"))//C1|进一法(材料价各分项进一) + { + for (int i = 0; i < dsCLQDL.Tables[0].Rows.Count; i++) + { + sCLQDL = dsCLQDL.Tables[0].Rows[i]["XLXSJGBYLLM_CLQDL"].ToString().Trim(); + sBJHQ = dsCLQDL.Tables[0].Rows[i]["XLXSBJCL_BJHQ"].ToString().Trim(); + //if (sBJHQ.Equals("1"))//1|材料行情 + { + SQL.Add(string.Format("CEILING(RoundFix(XLXSJGBCLQD_ZL{0}*HSJG{0}*{1},8))/{1}+", sCLQDL.Replace("第", "").Replace("列", ""), Math.Pow(10.0, iXSWS))); + } + } + } + else + { + for (int i = 0; i < dsCLQDL.Tables[0].Rows.Count; i++) + { + sCLQDL = dsCLQDL.Tables[0].Rows[i]["XLXSJGBYLLM_CLQDL"].ToString().Trim(); + sBJHQ = dsCLQDL.Tables[0].Rows[i]["XLXSBJCL_BJHQ"].ToString().Trim(); + //if (sBJHQ.Equals("1"))//1|材料行情 + { + SQL.Add(string.Format("XLXSJGBCLQD_ZL{0}*HSJG{0}+", sCLQDL.Replace("第", "").Replace("列", ""))); + } + } + } + //if (bNeedAddWLHQ) + //{ + // SQL.Add("1.0) ");//这里+1.0是为了解决即使材料价都为0,也要保证成本之和不为0 + //} + //else + SQL.Add("0) "); + SQL.ParamByName("pJGBID1").Value = sJGBID1; + SQL.ParamByName("pJJFPSJ").Value = tmpJJFPSJ; + SQL.ParamByName("pJGCZBID").Value = tmpJGCZBID; + SQL.ParamByName("pJGCZBBBID").Value = tmpJGCZBBBID; + dberp.ExecSQL(SQL); + + + + //if (bNeedAddWLHQ) + //{ + // /* + // merge into 目标表 a + // using 源表 b + // on(a.条件字段1=b.条件字段1 and a.条件字段2=b.条件字段2 ……) + // when matched then update set a.更新字段=b.字段 + // when not matched then insert into a(字段1,字段2……)values(值1,值2……) + // */ + // SQL.Clear(); + // SQL.Add(" merge into XLXSJGBCLQD a "); + // SQL.Add(" using "); + // SQL.Add(" (");//获取结构尺重表每个单元格所指报价物料的无税价格、含税价格 + // SQL.Add(" select XLXSJGBCLQD_JGBID as JGBID,XLXSJGBCLQD_XH as XH, "); + // for (int i = 0; i < dsCLQDL.Tables[0].Rows.Count; i++) + // { + // sCLQDL = dsCLQDL.Tables[0].Rows[i]["XLXSJGBYLLM_CLQDL"].ToString().Trim(); + // sBJHQ = dsCLQDL.Tables[0].Rows[i]["XLXSBJCL_BJHQ"].ToString().Trim(); + // if (sBJHQ.Equals("2"))//2|物料行情 + // { + // if (sBJDHQLX.Equals("BJDHQ"))//报价单行情 + // { + // SQL.Add(string.Format("case when isnull(d{0}.XLXSBJDWLHQ_WLID,' ')<>' ' then isnull(d{0}.WSJG,0)-isnull(w{0}.XLXSWLHQ_WSJG,0) else isnull(c{0}.WSJG,0)-isnull(w{0}.XLXSWLHQ_WSJG,0) end as WSJG{0}, ", sCLQDL.Replace("第", "").Replace("列", ""))); + // SQL.Add(string.Format("case when isnull(d{0}.XLXSBJDWLHQ_WLID,' ')<>' ' then isnull(d{0}.HSJG,0)-isnull(w{0}.XLXSWLHQ_HSJG,0) else isnull(c{0}.HSJG,0)-isnull(w{0}.XLXSWLHQ_HSJG,0) end as HSJG{0}, ", sCLQDL.Replace("第", "").Replace("列", ""))); + // } + // else + // { + // SQL.Add(string.Format(" isnull(c{0}.XLXSWLHQ_WSJG,0)-isnull(w{0}.XLXSWLHQ_WSJG,0) as WSJG{0},isnull(c{0}.XLXSWLHQ_HSJG,0)-isnull(w{0}.XLXSWLHQ_HSJG,0) as HSJG{0},", sCLQDL.Replace("第", "").Replace("列", ""))); + // } + // } + // } + // SQL.Add(" ' ' as MJBZ "); + // SQL.Add(" from XLXSJGBCLQD");//这里不直接查XLXSCLQDWL的原因是XLXSCLQDWL可能还没有记录 + // SQL.Add(" left join XLXSJGBCLQDWL on XLXSJGBCLQDWL_JGBID=XLXSJGBCLQD_JGBID and XLXSJGBCLQDWL_XH=XLXSJGBCLQD_XH"); + // for (int i = 0; i < dsCLQDL.Tables[0].Rows.Count; i++) + // { + // sCLQDL = dsCLQDL.Tables[0].Rows[i]["XLXSJGBYLLM_CLQDL"].ToString().Trim(); + // sBJHQ = dsCLQDL.Tables[0].Rows[i]["XLXSBJCL_BJHQ"].ToString().Trim(); + // if (sBJHQ.Equals("2"))//2|物料行情 + // { + // SQL.Add(string.Format(" left join XLXSWLHQ w{0} on w{0}.XLXSWLHQ_JGBID='{1}' and w{0}.XLXSWLHQ_WLID=XLXSJGBCLQDWL_WLID{0}", sCLQDL.Replace("第", "").Replace("列", ""), sJGBID1)); + + // if (sBJDHQLX.Equals("BJDHQ"))//报价单行情 + // { + // //关联XLXSBJDWLHQ,获取报价单物料行情 + // SQL.Add(" left join "); + // SQL.Add(" ("); + // SQL.Add(" select XLXSBJDWLHQ_WLID,"); + // SQL.Add(string.Format("case when isnull(XLXSBJCL_JGYBJCLID,' ')<>' ' and XLXSBJCL_JGYBJCLID='{0}' then {1}+XLXSBJDWLHQ_WSJGF", sTBJCLID, dTJ)); + // SQL.Add(string.Format(" when isnull(XLXSBJCL_JGYBJCLID,' ')<>' ' and XLXSBJCL_JGYBJCLID='{0}' then {1}+XLXSBJDWLHQ_WSJGF", sLBJCLID, dLJ)); + // SQL.Add(" else XLXSBJDWLHQ_WSJG end as WSJG, "); + // SQL.Add(string.Format("case when isnull(XLXSBJCL_JGYBJCLID,' ')<>' ' and XLXSBJCL_JGYBJCLID='{0}' then {1}+XLXSBJDWLHQ_HSJGF", sTBJCLID, dTJ)); + // SQL.Add(string.Format(" when isnull(XLXSBJCL_JGYBJCLID,' ')<>' ' and XLXSBJCL_JGYBJCLID='{0}' then {1}+XLXSBJDWLHQ_HSJGF", sLBJCLID, dLJ)); + // SQL.Add(" else XLXSBJDWLHQ_HSJG end as HSJG "); + // SQL.Add(" from XLXSBJDWLHQ"); + // SQL.Add(" left join XLXSBJCLWL on XLXSBJCLWL_WLID=XLXSBJDWLHQ_WLID"); + // SQL.Add(" left join XLXSBJCL on XLXSBJCL_BJCLID=XLXSBJCLWL_BJCLID"); + // SQL.Add(string.Format(" where XLXSBJDWLHQ_BJDID='{0}'", sBJDID)); + // SQL.Add(string.Format(") d{0} on d{0}.XLXSBJDWLHQ_WLID=XLXSJGBCLQDWL_WLID{0} ", sCLQDL.Replace("第", "").Replace("列", ""))); + // //关联XLXSWLHQ,获取物料行情 + // SQL.Add(" left join"); + // SQL.Add(" ("); + // SQL.Add(" select XLXSWLHQ_WLID,"); + // SQL.Add(string.Format("case when isnull(XLXSBJCL_JGYBJCLID,' ')<>' ' and XLXSBJCL_JGYBJCLID='{0}' then {1}+XLXSWLHQ_WSJGF", sTBJCLID, dTJ)); + // SQL.Add(string.Format(" when isnull(XLXSBJCL_JGYBJCLID,' ')<>' ' and XLXSBJCL_JGYBJCLID='{0}' then {1}+XLXSWLHQ_WSJGF", sLBJCLID, dLJ)); + // SQL.Add(" else XLXSWLHQ_WSJG end as WSJG, "); + // SQL.Add(string.Format("case when isnull(XLXSBJCL_JGYBJCLID,' ')<>' ' and XLXSBJCL_JGYBJCLID='{0}' then {1}+XLXSWLHQ_HSJGF", sTBJCLID, dTJ)); + // SQL.Add(string.Format(" when isnull(XLXSBJCL_JGYBJCLID,' ')<>' ' and XLXSBJCL_JGYBJCLID='{0}' then {1}+XLXSWLHQ_HSJGF", sLBJCLID, dLJ)); + // SQL.Add(" else XLXSWLHQ_HSJG end as HSJG "); + // SQL.Add(" from XLXSWLHQ"); + // SQL.Add(" left join XLXSBJCLWL on XLXSBJCLWL_WLID=XLXSWLHQ_WLID"); + // SQL.Add(" left join XLXSBJCL on XLXSBJCL_BJCLID=XLXSBJCLWL_BJCLID"); + // SQL.Add(string.Format(" where XLXSWLHQ_JGBID='{0}'", sJGBID)); + // SQL.Add(string.Format(") c{0} on c{0}.XLXSWLHQ_WLID=XLXSJGBCLQDWL_WLID{0} ", sCLQDL.Replace("第", "").Replace("列", ""))); + // } + // else + // { + // SQL.Add(" left join"); + // SQL.Add(" ("); + // SQL.Add(" select XLXSWLHQ_WLID,XLXSWLHQ_WSJG,XLXSWLHQ_HSJG"); + // SQL.Add(" from XLXSWLHQ"); + // SQL.Add(string.Format(" where XLXSWLHQ_JGBID='{0}'", sJGBID)); + + // SQL.Add(string.Format(") c{0} on c{0}.XLXSWLHQ_WLID=XLXSJGBCLQDWL_WLID{0} ", sCLQDL.Replace("第", "").Replace("列", ""))); + // } + // } + // } + // SQL.Add(" where XLXSJGBCLQD_JGBID=:pJGBID1 and XLXSJGBCLQD_JJFPSJ=:pJJFPSJ and XLXSJGBCLQD_JGCZBID=:pJGCZBID and XLXSJGBCLQD_JGCZBBBID=:pJGCZBBBID"); + // SQL.Add(" ) b "); + // SQL.Add(" on( "); + // SQL.Add(" a.XLXSJGBCLQD_JGBID=:pJGBID1 and a.XLXSJGBCLQD_JJFPSJ=:pJJFPSJ and a.XLXSJGBCLQD_JGCZBID=:pJGCZBID and a.XLXSJGBCLQD_JGCZBBBID=:pJGCZBBBID"); + // SQL.Add(" and a.XLXSJGBCLQD_JGBID=b.JGBID and a.XLXSJGBCLQD_XH=b.XH "); + // if (!sBJDID.Trim().Equals(""))//这段是否有必要限制到具体要重算的产品,还是整个尺重表一起算,需要看项目执行效果再定 + // { + // if (bNeedCalJGBEx) + // { + // //衍生扩展的价格表支持被报价单重算,需要弄个临时表,将如下语句的查询结果插入到临时表中,然后用临时表与所依价格表明细进行关联 + + // } + // else + // { + // //SQL.Add(" and exists ("); + // //SQL.Add("select top 1 XLXSBJDMX_BJDID"); + // //SQL.Add(" from XLXSBJDMX"); + // //SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID"); + // //SQL.Add(" and XLXSBJDMX_XH >= :piMinXH"); + // //SQL.Add(" and XLXSBJDMX_XLXHID=a.XLXSCLQD_XLXHID and XLXSBJDMX_XLGGID=a.XLXSCLQD_XLGGID"); + // //SQL.Add(" and XLXSBJDMX_XLBZID=a.XLXSCLQD_XLBZID and XLXSBJDMX_DYDJID=a.XLXSCLQD_DYDJID"); + // //SQL.Add(" ) "); + // //SQL.ParamByName("pBJDID").Value = sBJDID; + // //SQL.ParamByName("piMinXH").Value = iMinXH; + // } + // } + // SQL.Add(" ) "); + // SQL.Add(" when matched then update set a.XLXSJGBCLQD_WSCLCBC= "); + // SQL.Add(" (XLXSJGBCLQD_WSCLCBC+ "); + // if (sJSBLFS.Equals("C1"))//C1|进一法(材料价各分项进一) + // { + // for (int i = 0; i < dsCLQDL.Tables[0].Rows.Count; i++) + // { + // sCLQDL = dsCLQDL.Tables[0].Rows[i]["XLXSJGBYLLM_CLQDL"].ToString().Trim(); + // sBJHQ = dsCLQDL.Tables[0].Rows[i]["XLXSBJCL_BJHQ"].ToString().Trim(); + // if (sBJHQ.Equals("2"))//2|物料行情 + // { + // SQL.Add(string.Format("CEILING(RoundFix(XLXSJGBCLQD_ZL{0}*isnull(WSJG{0},0)*{1},8))/{1}+", sCLQDL.Replace("第", "").Replace("列", ""), Math.Pow(10.0, iXSWS))); + // } + // } + // } + // else + // { + // for (int i = 0; i < dsCLQDL.Tables[0].Rows.Count; i++) + // { + // sCLQDL = dsCLQDL.Tables[0].Rows[i]["XLXSJGBYLLM_CLQDL"].ToString().Trim(); + // sBJHQ = dsCLQDL.Tables[0].Rows[i]["XLXSBJCL_BJHQ"].ToString().Trim(); + // if (sBJHQ.Equals("2"))//2|物料行情 + // { + // SQL.Add(string.Format("XLXSJGBCLQD_ZL{0}*isnull(WSJG{0},0)+", sCLQDL.Replace("第", "").Replace("列", ""))); + // } + // } + // } + // SQL.Add("0), "); + // SQL.Add(" XLXSJGBCLQD_HSCLCBC="); + // SQL.Add(" (XLXSJGBCLQD_HSCLCBC+ "); + // if (sJSBLFS.Equals("C1"))//C1|进一法(材料价各分项进一) + // { + // for (int i = 0; i < dsCLQDL.Tables[0].Rows.Count; i++) + // { + // sCLQDL = dsCLQDL.Tables[0].Rows[i]["XLXSJGBYLLM_CLQDL"].ToString().Trim(); + // sBJHQ = dsCLQDL.Tables[0].Rows[i]["XLXSBJCL_BJHQ"].ToString().Trim(); + // if (sBJHQ.Equals("2"))//2|物料行情 + // { + // SQL.Add(string.Format("CEILING(RoundFix(XLXSJGBCLQD_ZL{0}*isnull(HSJG{0},0)*{1},8))/{1}+", sCLQDL.Replace("第", "").Replace("列", ""), Math.Pow(10.0, iXSWS))); + // } + // } + // } + // else + // { + // for (int i = 0; i < dsCLQDL.Tables[0].Rows.Count; i++) + // { + // sCLQDL = dsCLQDL.Tables[0].Rows[i]["XLXSJGBYLLM_CLQDL"].ToString().Trim(); + // sBJHQ = dsCLQDL.Tables[0].Rows[i]["XLXSBJCL_BJHQ"].ToString().Trim(); + // if (sBJHQ.Equals("2"))//2|物料行情 + // { + // SQL.Add(string.Format("XLXSJGBCLQD_ZL{0}*isnull(HSJG{0},0)+", sCLQDL.Replace("第", "").Replace("列", ""))); + // } + // } + // } + // SQL.Add("0)"); + // SQL.ParamByName("pJGBID1").Value = sJGBID1; + // SQL.ParamByName("pJJFPSJ").Value = tmpJJFPSJ; + // SQL.ParamByName("pJGCZBID").Value = tmpJGCZBID; + // SQL.ParamByName("pJGCZBBBID").Value = tmpJGCZBBBID; + // dberp.ExecSQL(SQL); + //} + } + if (sBJDID.Equals("")) + { + DateTime tWHSJCondition = MISproUtils.GetServerTime(); + + //重算价格表基价前清空基价、表价 + SQL.Clear(); + SQL.Add(" update XLXSJGBMX set XLXSJGBMX_WSJJ = 0, XLXSJGBMX_WSBJ = 0, XLXSJGBMX_HSJJ = 0, XLXSJGBMX_HSBJ = 0, XLXSJGBMX_WHR=:pWHR,XLXSJGBMX_WHRID=:pWHRID,XLXSJGBMX_WHSJ=:pWHSJ "); + SQL.Add(" where XLXSJGBMX_JGBID=:pJGBID "); + SQL.Add(" and XLXSJGBMX_SYXH=0 "); + SQL.ParamByName("pJGBID").Value = sJGBID; + SQL.ParamByName("pWHR").Value = sWHR; + SQL.ParamByName("pWHRID").Value = sWHRID; + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + dberp.ExecSQL(SQL); + + if (dsJGCZB.Tables[0].Rows.Count > 0) + { + /* + merge into 目标表 a + using 源表 b + on(a.条件字段1=b.条件字段1 and a.条件字段2=b.条件字段2 ……) + when matched then update set a.更新字段=b.字段 + when not matched then insert into a(字段1,字段2……)values(值1,值2……) + */ + SQL.Clear(); + SQL.Add(" merge into XLXSJGBMX a "); + SQL.Add(" using XLXSJGBCLQD b "); + SQL.Add(" on ( "); + SQL.Add(" XLXSJGBMX_JGBID=:pJGBID "); + SQL.Add(" and XLXSJGBCLQD_JGBID=:pJGBID1 and XLXSJGBMX_XH=XLXSJGBCLQD_XH "); + SQL.Add(" and XLXSJGBMX_SYXH=0 "); + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + if (sJSBLFS.Equals("C1") || sJSBLFS.Equals("C2"))//C1|进一法(材料价各分项进一)、C2|进一法(材料价汇总进一) + { + SQL.Add(string.Format(" XLXSJGBMX_WSJJ=CEILING(RoundFix(isnull(XLXSJGBCLQD_WSCLCBC,0)*{0},8))/{0},XLXSJGBMX_HSJJ=CEILING(RoundFix(isnull(XLXSJGBCLQD_HSCLCBC,0)*{0},8))/{0},", Math.Pow(10.0, iXSWS))); + SQL.Add(string.Format(" XLXSJGBMX_WSBJ=CEILING(RoundFix(isnull(XLXSJGBCLQD_WSCLCBC,0)*{0},8))/{0},XLXSJGBMX_HSBJ=CEILING(RoundFix(isnull(XLXSJGBCLQD_HSCLCBC,0)*{0},8))/{0},", Math.Pow(10.0, iXSWS))); + } + else if (sJSBLFS.Equals("C3"))//C3|材料价汇总进一+表价进一到十位 + { + SQL.Add(string.Format(" XLXSJGBMX_WSJJ=CEILING(RoundFix(isnull(XLXSJGBCLQD_WSCLCBC,0)*{0},8))/{0},XLXSJGBMX_HSJJ=CEILING(RoundFix(isnull(XLXSJGBCLQD_HSCLCBC,0)*{0},8))/{0},", Math.Pow(10.0, iXSWS))); + SQL.Add(string.Format(" XLXSJGBMX_WSBJ=CEILING(RoundFix(isnull(XLXSJGBCLQD_WSCLCBC,0),{0})/10)*10,XLXSJGBMX_HSBJ=CEILING(RoundFix(isnull(XLXSJGBCLQD_HSCLCBC,0),{0})/10)*10,", iXSWS.ToString().Trim())); + } + else + { + SQL.Add(" XLXSJGBMX_WSJJ=RoundFix(isnull(XLXSJGBCLQD_WSCLCBC,0)," + iXSWS.ToString() + "),XLXSJGBMX_HSJJ=RoundFix(isnull(XLXSJGBCLQD_HSCLCBC,0)," + iXSWS.ToString() + "),"); + SQL.Add(" XLXSJGBMX_WSBJ=RoundFix(isnull(XLXSJGBCLQD_WSCLCBC,0)," + iXSWS.ToString() + "),XLXSJGBMX_HSBJ=RoundFix(isnull(XLXSJGBCLQD_HSCLCBC,0)," + iXSWS.ToString() + "),"); + } + SQL.Add(" XLXSJGBMX_WHR=:pWHR, "); + SQL.Add(" XLXSJGBMX_WHRID=:pWHRID, "); + SQL.Add(" XLXSJGBMX_WHSJ=:pWHSJ "); + SQL.ParamByName("pJGBID").Value = sJGBID; + SQL.ParamByName("pJGBID1").Value = sJGBID1; + SQL.ParamByName("pWHR").Value = sWHR; + SQL.ParamByName("pWHRID").Value = sWHRID; + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + dberp.ExecSQL(SQL); + } + + SQL.Clear(); + SQL.Add(" merge into XLXSJGBMX tar "); + SQL.Add(" using "); + SQL.Add(" ("); + SQL.Add(" select XLXSJGBMX_JGBID,XLXSJGBMX_XLXHID,XLXSJGBMX_XLGGID,XLXSJGBMX_XLBZID,XLXSJGBMX_DYDJID, "); + SQL.Add(" XLXSJGBMX_HSJJ,XLXSJGBMX_WSJJ, "); + SQL.Add(" XLXSJGBMX_HSBJ,XLXSJGBMX_WSBJ from XLXSJGBMX "); + SQL.Add(" where XLXSJGBMX_JGBID=:pOLDJGBID"); + SQL.Add(" ) sor "); + SQL.Add(" on( "); + SQL.Add(" tar.XLXSJGBMX_JGBID = :pNEWJGBID "); + SQL.Add(" and sor.XLXSJGBMX_XLXHID = tar.XLXSJGBMX_XLXHID "); + SQL.Add(" and sor.XLXSJGBMX_XLGGID = tar.XLXSJGBMX_XLGGID "); + SQL.Add(" and sor.XLXSJGBMX_XLBZID = tar.XLXSJGBMX_XLBZID "); + SQL.Add(" and sor.XLXSJGBMX_DYDJID = tar.XLXSJGBMX_DYDJID "); + //此处未传参数区分,暂先默认 + SQL.Add(" and tar.XLXSJGBMX_SYXH=0 "); + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(" tar.XLXSJGBMX_HSJJ = tar.XLXSJGBMX_HSBJ + sor.XLXSJGBMX_HSBJ, "); + SQL.Add(" tar.XLXSJGBMX_WSJJ = tar.XLXSJGBMX_WSBJ + sor.XLXSJGBMX_WSBJ, "); + SQL.Add(" tar.XLXSJGBMX_HSBJ = tar.XLXSJGBMX_HSBJ + sor.XLXSJGBMX_HSBJ, "); + SQL.Add(" tar.XLXSJGBMX_WSBJ = tar.XLXSJGBMX_WSBJ + sor.XLXSJGBMX_WSBJ "); + SQL.ParamByName("pOLDJGBID").Value = sJGBID1; + SQL.ParamByName("pNEWJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + + } + } + + public static void UpdateBJDMXByGS(TDatabase dberp, TSQL SQL, string sTZQCPBJGS, string sBJDID, string sBJFLID, int tmpXSWS, string sJCLLX, string sLJJCLLX, string sBJLJJCLLX, string sCPBJMRXSWS, string sXHList, int minBJDXH, bool bYBJ, bool bWG, bool bFWG, string sTLcpList, DateTime tWHSJCondition) + { + UpdateBJDMXByGS(dberp, SQL, sTZQCPBJGS, sBJDID, sBJFLID, tmpXSWS, sJCLLX, sLJJCLLX, sBJLJJCLLX, sCPBJMRXSWS, sXHList, minBJDXH, bYBJ, bWG, bFWG, sTLcpList, tWHSJCondition, false); + } + public static void UpdateBJDMXByGS(TDatabase dberp, TSQL SQL, string sTZQCPBJGS, string sBJDID, string sBJFLID, int tmpXSWS, string sJCLLX, string sLJJCLLX, string sBJLJJCLLX, string sCPBJMRXSWS, string sXHList, int minBJDXH, bool bYBJ, bool bWG, bool bFWG, string sTLcpList, DateTime tWHSJCondition, bool bYLZD) + { + UpdateBJDMXByGS( dberp, SQL, sTZQCPBJGS, sBJDID, sBJFLID, tmpXSWS, sJCLLX, sLJJCLLX, sBJLJJCLLX, sCPBJMRXSWS, sXHList, minBJDXH, bYBJ, bWG, bFWG, sTLcpList, tWHSJCondition, bYLZD,0); + } + + public static void UpdateBJDMXByGS(TDatabase dberp, TSQL SQL, string sTZQCPBJGS, string sBJDID, string sBJFLID, int tmpXSWS, string sJCLLX, string sLJJCLLX, string sBJLJJCLLX, string sCPBJMRXSWS, string sXHList, int minBJDXH, bool bYBJ, bool bWG, bool bFWG, string sTLcpList, DateTime tWHSJCondition, bool bYLZD,int VBJDID) + { + Dictionary dicLenJLDWTD = XLBJDUtils.GetLenJLDWTD(); + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(sBJFLID); + string sJSJJCLLX = XLBJDUtils.GetBJFLXX(sBJFLID).XLXSBJFL_JSJJCLLX; + sTZQCPBJGS = sTZQCPBJGS.Replace("JGBBJ", "XXX01"); + + sTZQCPBJGS = sTZQCPBJGS.Replace("BJ", "tar.XLXSBJDYZZ0_YZZ"); + sTZQCPBJGS = sTZQCPBJGS.Replace("XXX01", "sor.XLXSBJDMX_JGBBJ"); + sTZQCPBJGS = sTZQCPBJGS.Replace(" ", "").Replace("×", "*").Replace("100", "100.00"); + sTZQCPBJGS = sTZQCPBJGS.Replace("round", "roundFix"); + sTZQCPBJGS = sTZQCPBJGS.Replace("TZZDXJ", "sor.XLXSBJDMX_TZZDXJ"); + if (sTZQCPBJGS.Trim().Equals("")) + sTZQCPBJGS = "sor.XLXSBJDMX_JGBBJ"; + else + sTZQCPBJGS = "(" + sTZQCPBJGS + ")"; + string sBTYZJYSQL = "";//必填因子校验SQL + SQL.Clear(); + SQL.Add("select XLXSBJFLYZ_YZID "); + SQL.Add(" from XLXSBJFLYZ"); + SQL.Add(" left join XLXSTZYZ on XLXSTZYZ_MXBH='BJD' and XLXSTZYZ_YZID=XLXSBJFLYZ_YZID"); + SQL.Add(" where XLXSBJFLYZ_BJFLID=:pBJFLID"); + SQL.Add(" and isnull(XLXSTZYZ_YZZBT,'N') = 'Y' "); + SQL.Add(" order by XLXSTZYZ_TJYZID,XLXSTZYZ_XSXH,XLXSBJFLYZ_YZID"); + SQL.ParamByName("pBJFLID").Value = sBJFLID; + DataSet dsBJDYZ = dberp.OpenDataSet(SQL); + if (dsBJDYZ.Tables[0].Rows.Count > 0) + { + for (int i = 0; i < dsBJDYZ.Tables[0].Rows.Count; i++) + { + if (sBTYZJYSQL.Equals("")) + sBTYZJYSQL = "*( case "; + string sBTYZZ_SQL = string.Format("tar.XLXSBJDYZZ0_YZZ{0}", dsBJDYZ.Tables[0].Rows[i]["XLXSBJFLYZ_YZID"].ToString().Trim().Replace("BJ", "")); + sBTYZJYSQL += "when " + sBTYZZ_SQL + " = 0 then 0 "; + } + if (!sBTYZJYSQL.Equals("")) + sBTYZJYSQL += " else 1 end )"; + sTZQCPBJGS = sTZQCPBJGS + sBTYZJYSQL; + } + string sCPBJBLXSWS = Math.Pow(10, -1 * CMISproConvert.StrToFloat(sCPBJMRXSWS)).ToString("F9"); + //区别非锁定-sqlBJJE,XLXSBJDMX_BJSDBZ + string sqlBJJE = string.Format("RoundFix(RoundFix((" + sTZQCPBJGS + "*(1+XLXSBJDMX_TZCPBJ/100))/{0},0)*{0}*XLXSBJDMX_BJSL+XLXSBJDMX_TZBJJE,2)", sCPBJBLXSWS); + + SQL.Clear(); + SQL.Add(" merge into XLXSBJDMX sor "); + SQL.Add(" using ("); + SQL.Add(" select XLXSBJDMX_BJDID,XLXSBJDMX_XH,"); + SQL.Add(" XLXSBJDYZZ0_YZZ01,XLXSBJDYZZ0_YZZ02,XLXSBJDYZZ0_YZZ03,XLXSBJDYZZ0_YZZ04,XLXSBJDYZZ0_YZZ05, "); + SQL.Add(" XLXSBJDYZZ0_YZZ06,XLXSBJDYZZ0_YZZ07,XLXSBJDYZZ0_YZZ08,XLXSBJDYZZ0_YZZ09,XLXSBJDYZZ0_YZZ10, "); + SQL.Add(" XLXSBJDYZZ0_YZZ11,XLXSBJDYZZ0_YZZ12,XLXSBJDYZZ0_YZZ13,XLXSBJDYZZ0_YZZ14,XLXSBJDYZZ0_YZZ15, "); + SQL.Add(" XLXSBJDYZZ0_YZZ16,XLXSBJDYZZ0_YZZ17,XLXSBJDYZZ0_YZZ18,XLXSBJDYZZ0_YZZ19,XLXSBJDYZZ0_YZZ20 from XLXSBJDMX "); + SQL.Add(" left join XLXSBJDYZZ0 on XLXSBJDYZZ0_BJDID = XLXSBJDMX_BJDID and XLXSBJDYZZ0_XH = XLXSBJDMX_XH "); + SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID "); + SQL.Add(" and XLXSBJDMX_BJSDBZ<>'Y'"); + //SQL.Add(" and upper(XLXSBJDMX_JLDW) in ('KM','M','千米','米') ");特意不执行,非长度单位与界面直接维护逻辑一致,按因子值正常计算 + if (bYLZD) + { + SQL.Add(@" and exists( select 1 from XLXSBJYLZD + left join XLXSBJYLZDMX on XLXSBJYLZD_SQDH=XLXSBJYLZDMX_SQDH + where XLXSBJYLZD_BJDID=:pBJDID and XLXSBJYLZDMX_BJDXH=XLXSBJDMX_XH ) "); + } + else + { + + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDMX_XH >= :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + if (VBJDID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pID and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "); + SQL.ParamByName("pID").Value = VBJDID; + } + else + { + if (!sXHList.Trim().Equals("")) + { + SQL.Add(" and " + XLBJDUtils.GetWhereEqual("XLXSBJDMX_XH", sXHList)); + } + } + } + + if (bYBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + if (bWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y' "); + if (!sTLcpList.Equals("")) + SQL.Add(" and exists(select 1 from XLXHB where XLXHB_XLXHID=UPPER(XLXSBJDMX_XLXHID) and " + CMISproDataBase.GetWhereEqual("XLXHB_DTCLID", sTLcpList) + ") "); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + SQL.Add(" ) tar "); + SQL.Add(" on ( "); + SQL.Add(" tar.XLXSBJDMX_BJDID = sor.XLXSBJDMX_BJDID "); + SQL.Add(" and tar.XLXSBJDMX_XH = sor.XLXSBJDMX_XH "); + SQL.Add(" and sor.XLXSBJDMX_BJDID=:pBJDID "); + SQL.Add(" and sor.XLXSBJDMX_BJSDBZ<>'Y'"); + if (bYLZD) + { + SQL.Add(@" and exists( select 1 from XLXSBJYLZD + left join XLXSBJYLZDMX on XLXSBJYLZD_SQDH=XLXSBJYLZDMX_SQDH + where XLXSBJYLZD_BJDID=:pBJDID and XLXSBJYLZDMX_BJDXH=sor.XLXSBJDMX_XH ) "); + } + else + { + + if (VBJDID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pID and V_BJDXH_BJDID = sor.XLXSBJDMX_BJDID and V_BJDXH_BJDXH = sor.XLXSBJDMX_XH) "); + SQL.ParamByName("pID").Value = VBJDID; + } + else + { + if (!sXHList.Equals("")) + { + SQL.Add(" and " + XLBJDUtils.GetWhereEqual("sor.XLXSBJDMX_XH", sXHList)); + } + } + } + if (minBJDXH != 0) + { + SQL.Add("and sor.XLXSBJDMX_XH >= :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + if (bYBJ) + SQL.Add(" and sor.XLXSBJDMX_JGBBJ<>0.0"); + if (bWG) + SQL.Add(" and sor.XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and sor.XLXSBJDMX_WGCPBZ<>'Y' "); + if (!sTLcpList.Equals("")) + SQL.Add(" and exists(select 1 from XLXHB where XLXHB_XLXHID=UPPER(sor.XLXSBJDMX_XLXHID) and " + CMISproDataBase.GetWhereEqual("XLXHB_DTCLID", sTLcpList) + ") "); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add("XLXSBJDMX_TZQCPBJ=RoundFix(" + sTZQCPBJGS + "," + (CMISproConvert.StrToInt(sCPBJMRXSWS) > tmpXSWS ? CMISproConvert.StrToInt(sCPBJMRXSWS) : tmpXSWS) + "),");//保留精度高的 + SQL.Add(string.Format("XLXSBJDMX_CPBJ=RoundFix((" + sTZQCPBJGS + "*(1+XLXSBJDMX_TZCPBJ/100))/{0},0)*{0},", sCPBJBLXSWS)); + SQL.Add(string.Format("XLXSBJDMX_TZQBJJE=RoundFix(RoundFix((" + sTZQCPBJGS + "*(1+XLXSBJDMX_TZCPBJ/100))/{0},0)*{0}*XLXSBJDMX_BJSL,2),", sCPBJBLXSWS)); + SQL.Add("XLXSBJDMX_BJJE=" + sqlBJJE + ","); + + if (bjflxx.XLXSBJFL_XSLSBJ == "Y") + SQL.Text = SQL.Text.Replace("sor.XLXSBJDMX_JGBBJ", " case when sor.XLXSBJDMX_LSJGBBJ=0 then sor.XLXSBJDMX_JGBBJ else sor.XLXSBJDMX_LSJGBBJ end "); + if (sJCLLX.Equals("1"))//表价价差率公式 + { + SQL.Add("XLXSBJDMX_JGBBJJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + "-XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); + SQL.Add("XLXSBJDMX_JGBBJJCE =RoundFix(" + sqlBJJE + "-RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)," + tmpXSWS + "), "); + } + else if (sJCLLX.Equals("2")) + { + SQL.Add("XLXSBJDMX_JGBBJJCL =case when RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL-" + sqlBJJE + ")/(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL),2) end,"); + SQL.Add("XLXSBJDMX_JGBBJJCE =RoundFix(RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)-" + sqlBJJE + "," + tmpXSWS + "), "); + } + else if (sJCLLX.Equals("3")) + { + SQL.Add("XLXSBJDMX_JGBBJJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); + SQL.Add("XLXSBJDMX_JGBBJJCE =0, "); + } + else if (sJCLLX.Equals("4")) + { + SQL.Add("XLXSBJDMX_JGBBJJCL =case when RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + " - XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL),2) end,"); + SQL.Add("XLXSBJDMX_JGBBJJCE =RoundFix(" + sqlBJJE + " - RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)," + tmpXSWS + "), "); + } + else + { + SQL.Add("XLXSBJDMX_JGBBJJCL=0,"); + SQL.Add("XLXSBJDMX_JGBBJJCE=0,"); + } + if (sLJJCLLX.Equals("1"))//料价价差率公式 + { + SQL.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")) + { + SQL.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")) + { + SQL.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")) + { + SQL.Add("XLXSBJDMX_CLCBJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); + } + else + { + SQL.Add("XLXSBJDMX_CLCBJCL=0,"); + } + + SQL.Add("XLXSBJDMX_JSJJE=RoundFix(XLXSBJDMX_JSJG*XLXSBJDMX_BJSL,2),"); + if (sJSJJCLLX.Equals("1")) + { + SQL.Add("XLXSBJDMX_JSJJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + "-XLXSBJDMX_JSJG*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); + } + else if (sJSJJCLLX.Equals("2")) + { + SQL.Add("XLXSBJDMX_JSJJCL =case when XLXSBJDMX_JSJG*XLXSBJDMX_BJSL=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + "-XLXSBJDMX_JSJG*XLXSBJDMX_BJSL)/(XLXSBJDMX_JSJG*XLXSBJDMX_BJSL),2) end,"); + } + else if (sJSJJCLLX.Equals("3")) + { + SQL.Add("XLXSBJDMX_JSJJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_JSJG*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); + } + else + { + SQL.Add("XLXSBJDMX_JSJJCL=0,"); + } + + if (sBJLJJCLLX.Equals("1"))//表价料价价差率公式 + { + SQL.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 + { + SQL.Add("XLXSBJDMX_JGBBJLJJCL=0,"); + } + SQL.Add("XLXSBJDMX_BJTJCZ='TJYZJS',"); + SQL.Add("XLXSBJDMX_CLCBJCLSDBZ='N'"); + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + sqlBJJE = "RoundFix(XLXSBJDMX_CPBJ*XLXSBJDMX_BJSL,2)+XLXSBJDMX_TZBJJE"; + SQL.Clear(); + SQL.Add(" merge into XLXSBJDMX sor "); + SQL.Add(" using ("); + SQL.Add(" select XLXSBJDMX_BJDID,XLXSBJDMX_XH,"); + SQL.Add(" XLXSBJDYZZ0_YZZ01,XLXSBJDYZZ0_YZZ02,XLXSBJDYZZ0_YZZ03,XLXSBJDYZZ0_YZZ04,XLXSBJDYZZ0_YZZ05, "); + SQL.Add(" XLXSBJDYZZ0_YZZ06,XLXSBJDYZZ0_YZZ07,XLXSBJDYZZ0_YZZ08,XLXSBJDYZZ0_YZZ09,XLXSBJDYZZ0_YZZ10, "); + SQL.Add(" XLXSBJDYZZ0_YZZ11,XLXSBJDYZZ0_YZZ12,XLXSBJDYZZ0_YZZ13,XLXSBJDYZZ0_YZZ14,XLXSBJDYZZ0_YZZ15, "); + SQL.Add(" XLXSBJDYZZ0_YZZ16,XLXSBJDYZZ0_YZZ17,XLXSBJDYZZ0_YZZ18,XLXSBJDYZZ0_YZZ19,XLXSBJDYZZ0_YZZ20 from XLXSBJDMX "); + SQL.Add(" left join XLXSBJDYZZ0 on XLXSBJDYZZ0_BJDID = XLXSBJDMX_BJDID and XLXSBJDYZZ0_XH = XLXSBJDMX_XH "); + SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID "); + SQL.Add(" and XLXSBJDMX_BJSDBZ='Y'"); + SQL.Add(" and (XLXSBJDMX_JLDW in ('Km','M','千米','米') "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" or XLXSBJDMX_JLDW='{0}'", sKey)); + } + SQL.Add(" ) "); + if (bYLZD) + { + SQL.Add(@" and exists( select 1 from XLXSBJYLZD + left join XLXSBJYLZDMX on XLXSBJYLZD_SQDH=XLXSBJYLZDMX_SQDH + where XLXSBJYLZD_BJDID=:pBJDID and XLXSBJYLZDMX_BJDXH=XLXSBJDMX_XH ) "); + } + else + { + + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDMX_XH >= :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + if (VBJDID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pID and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "); + SQL.ParamByName("pID").Value = VBJDID; + } + else + { + if (!sXHList.Trim().Equals("")) + { + SQL.Add(" and " + XLBJDUtils.GetWhereEqual("XLXSBJDMX_XH", sXHList)); + } + } + } + if (bYBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + if (bWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y' "); + if (!sTLcpList.Equals("")) + SQL.Add(" and exists(select 1 from XLXHB where XLXHB_XLXHID=UPPER(XLXSBJDMX_XLXHID) and " + CMISproDataBase.GetWhereEqual("XLXHB_DTCLID", sTLcpList) + ") "); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + SQL.Add(" ) tar "); + SQL.Add(" on ( "); + SQL.Add(" tar.XLXSBJDMX_BJDID = sor.XLXSBJDMX_BJDID "); + SQL.Add(" and tar.XLXSBJDMX_XH = sor.XLXSBJDMX_XH "); + SQL.Add(" and sor.XLXSBJDMX_BJDID=:pBJDID "); + SQL.Add(" and sor.XLXSBJDMX_BJSDBZ='Y'"); + SQL.Add(" and (sor.XLXSBJDMX_JLDW in ('Km','M','千米','米') "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" or sor.XLXSBJDMX_JLDW='{0}'", sKey)); + } + SQL.Add(" ) "); + if (bYLZD) + { + SQL.Add(@" and exists( select 1 from XLXSBJYLZD + left join XLXSBJYLZDMX on XLXSBJYLZD_SQDH=XLXSBJYLZDMX_SQDH + where XLXSBJYLZD_BJDID=:pBJDID and XLXSBJYLZDMX_BJDXH=sor.XLXSBJDMX_XH ) "); + } + else + { + + if (minBJDXH != 0) + { + SQL.Add("and sor.XLXSBJDMX_XH >= :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + if (VBJDID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pID and V_BJDXH_BJDID = sor.XLXSBJDMX_BJDID and V_BJDXH_BJDXH = sor.XLXSBJDMX_XH) "); + SQL.ParamByName("pID").Value = VBJDID; + } + else + { + if (!sXHList.Equals("")) + { + SQL.Add(" and " + XLBJDUtils.GetWhereEqual("sor.XLXSBJDMX_XH", sXHList)); + } + } + } + if (bYBJ) + SQL.Add(" and sor.XLXSBJDMX_JGBBJ<>0.0"); + if (bWG) + SQL.Add(" and sor.XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and sor.XLXSBJDMX_WGCPBZ<>'Y' "); + if (!sTLcpList.Equals("")) + SQL.Add(" and exists(select 1 from XLXHB where XLXHB_XLXHID=UPPER(sor.XLXSBJDMX_XLXHID) and " + CMISproDataBase.GetWhereEqual("XLXHB_DTCLID", sTLcpList) + ") "); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add("XLXSBJDMX_TZQCPBJ=RoundFix(" + sTZQCPBJGS + "," + (CMISproConvert.StrToInt(sCPBJMRXSWS) > tmpXSWS ? CMISproConvert.StrToInt(sCPBJMRXSWS) : tmpXSWS) + "),");//保留精度高的 + SQL.Add("XLXSBJDMX_TZQBJJE=RoundFix(XLXSBJDMX_CPBJ*XLXSBJDMX_BJSL,2),"); + SQL.Add("XLXSBJDMX_BJJE=" + sqlBJJE + ","); + + if (bjflxx.XLXSBJFL_XSLSBJ == "Y") + SQL.Text = SQL.Text.Replace("sor.XLXSBJDMX_JGBBJ", " case when sor.XLXSBJDMX_LSJGBBJ=0 then sor.XLXSBJDMX_JGBBJ else sor.XLXSBJDMX_LSJGBBJ end "); + if (sJCLLX.Equals("1"))//表价价差率公式 + { + SQL.Add("XLXSBJDMX_JGBBJJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + "-XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); + SQL.Add("XLXSBJDMX_JGBBJJCE =RoundFix(" + sqlBJJE + "-RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)," + tmpXSWS + "), "); + } + else if (sJCLLX.Equals("2")) + { + SQL.Add("XLXSBJDMX_JGBBJJCL =case when RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL-" + sqlBJJE + ")/(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL),2) end,"); + SQL.Add("XLXSBJDMX_JGBBJJCE =RoundFix(RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)-" + sqlBJJE + "," + tmpXSWS + "), "); + } + else if (sJCLLX.Equals("3")) + { + SQL.Add("XLXSBJDMX_JGBBJJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); + SQL.Add("XLXSBJDMX_JGBBJJCE =0, "); + } + else if (sJCLLX.Equals("4")) + { + SQL.Add("XLXSBJDMX_JGBBJJCL =case when RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + " - XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL),2) end,"); + SQL.Add("XLXSBJDMX_JGBBJJCE =RoundFix(" + sqlBJJE + " - RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)," + tmpXSWS + "), "); + } + else + { + SQL.Add("XLXSBJDMX_JGBBJJCL=0,"); + SQL.Add("XLXSBJDMX_JGBBJJCE=0,"); + } + if (sLJJCLLX.Equals("1"))//料价价差率公式 + { + SQL.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")) + { + SQL.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")) + { + SQL.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")) + { + SQL.Add("XLXSBJDMX_CLCBJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); + } + else + { + SQL.Add("XLXSBJDMX_CLCBJCL=0,"); + } + + SQL.Add("XLXSBJDMX_JSJJE=RoundFix(XLXSBJDMX_JSJG*XLXSBJDMX_BJSL,2),"); + if (sJSJJCLLX.Equals("1")) + { + SQL.Add("XLXSBJDMX_JSJJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + "-XLXSBJDMX_JSJG*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); + } + else if (sJSJJCLLX.Equals("2")) + { + SQL.Add("XLXSBJDMX_JSJJCL =case when XLXSBJDMX_JSJG*XLXSBJDMX_BJSL=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + "-XLXSBJDMX_JSJG*XLXSBJDMX_BJSL)/(XLXSBJDMX_JSJG*XLXSBJDMX_BJSL),2) end,"); + } + else if (sJSJJCLLX.Equals("3")) + { + SQL.Add("XLXSBJDMX_JSJJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_JSJG*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); + } + else + { + SQL.Add("XLXSBJDMX_JSJJCL=0,"); + } + + + if (sBJLJJCLLX.Equals("1"))//表价料价价差率公式 + { + SQL.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 + { + SQL.Add("XLXSBJDMX_JGBBJLJJCL=0,"); + } + SQL.Add("XLXSBJDMX_CLCBJCLSDBZ='N'"); + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + //处理调整报价% + SQL.Clear(); + SQL.Add("update XLXSBJDMX set XLXSBJDMX_TZCPBJ=(case when XLXSBJDMX_TZQCPBJ=0.0 then 0.0 else 100.0*(XLXSBJDMX_CPBJ-XLXSBJDMX_TZQCPBJ)/XLXSBJDMX_TZQCPBJ end)"); + SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID"); + SQL.Add(" and XLXSBJDMX_BJSDBZ='Y'"); + SQL.Add(" and (XLXSBJDMX_JLDW in ('Km','M','千米','米') "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" or XLXSBJDMX_JLDW='{0}'", sKey)); + } + SQL.Add(" ) "); + if (bYLZD) + { + SQL.Add(@" and exists( select 1 from XLXSBJYLZD + left join XLXSBJYLZDMX on XLXSBJYLZD_SQDH=XLXSBJYLZDMX_SQDH + where XLXSBJYLZD_BJDID=:pBJDID and XLXSBJYLZDMX_BJDXH=XLXSBJDMX_XH ) "); + } + else + { + + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDMX_XH >= :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + if (VBJDID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pID and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "); + SQL.ParamByName("pID").Value = VBJDID; + } + else + { + if (!sXHList.Trim().Equals("")) + { + SQL.Add(" and " + XLBJDUtils.GetWhereEqual("XLXSBJDMX_XH", sXHList)); + } + } + } + if (bYBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + if (bWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y' "); + if (!sTLcpList.Equals("")) + SQL.Add(" and exists(select 1 from XLXHB where XLXHB_XLXHID=UPPER(XLXSBJDMX_XLXHID) and " + CMISproDataBase.GetWhereEqual("XLXHB_DTCLID", sTLcpList) + ") "); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + } + } +} diff --git a/XLBJDInfo.aspx b/XLBJDInfo.aspx new file mode 100644 index 0000000..ef6bdf9 --- /dev/null +++ b/XLBJDInfo.aspx @@ -0,0 +1,1931 @@ +<%@ Page Language="C#" AutoEventWireup="True" MasterPageFile="~/N_MODEL/Page/MasterBDOBill.Master" + Codebehind="XLBJDInfo.aspx.cs" Inherits="GThinking.U20261363_N_XLXSBJ.XLBJDInfo" Title="线缆销售报价单" %> + +<%@ MasterType VirtualPath="~/N_MODEL/Page/MasterBDOBill.Master" %> + + + + + + + + + + + + + + + + + + + + + + + + + + + + <%--报价利润/线缆销售报价单价差--%> + + + + + + <%--材料成本--%> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <%--只是简单的刷新界面,重新加载下记录--%> + + + + <%--外部报价单导入刷新--%> + + + + <%--批量调价刷新----报价单因子--%> + + + + <%--批量调价刷新----运费因子--%> + + + + + + + + + + <%--批量调价刷新----报价数量--%> + + + + <%--批量调价刷新----价格表表价--%> + + + + <%--批量删除表价刷新----价格表表价--%> + + + + <%--批量调价刷新----报价上浮--%> + + + + <%--批量调价刷新----报价下浮--%> + + + + <%--批量调价刷新----料价价差--%> + + + + <%--批量调价刷新----料价价差--%> + + + + <%--批量调价刷新----报价限价--%> + + + + <%--批量调价刷新----所有因子界面的刷新--%> + + + + <%--批量调整标准刷新--%> + + + + + + + <%--报价单备注以及报价说明助手--%> + + + + <%--报价单备注以及报价说明助手--%> + + + + <%--刷新铜铝价标签--%> + + + + + + + + + + + + + <%--调价因子价格表-付款期限--%> + + + + + + + + +
+ + + +
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ 报价单号: + + + + + 报价日期: + + + + + + : + + + + + + + + + + +
+ + + + + : + + + + + : + + + + + + +
+
+ 行情价差校验正常 +
+ 报价分类: + + + + + 销售区域: + + + + + : + + + + 材料总重量: + : + + + + +
+ 销售单位: + + : + + + + + + + 销售经理: + + + + + 客户: + : + + + + + +
+ + + + +
+
+ 销售部门: + + + + + 销售员: + + + + + + + + 客户联系人: + + + + 客户电话: + + +
+ + + + 预中标日期: + + + + 计划交货日期始: + + + + 日期止: + + + + + + +
+ + + +
+
+ 预中标数量: + + + + 预中标金额: + + + + + + +
+ 付款期限: + + : + + + + + +
+ + + + + + +
+
+ 客户单号: + : + + + + 项目: + : + + + + + + + + +
+ + + + + + + + + + +
+
+ + : + + : + + + + + + 详细地址: + + + + 流程状态: + + + 表价价差率(%): + +
+ 送货地点: + + + + + 运输单位: + + + + + 运费: + + + +
+ + : + + + + + +
+ +
+
+ 有无技术协议: + + + + + + +
+ + + + +
+
+ 附件数: + + + + + + +
+ + + +
+
+ 维护人: + + + + 维护时间: + + + +
+ + + + + + + + + + <%--只读因子--%> + + <%--必填因子--%> + + <%--显示金额因子--%> + + <%--反算因子--%> + + <%--只读流程--%> + + + <%--调整表价--%> + + <%--调整报价单行情料价--%> + + <%--最低限价价差率--%> + + + + <%--盘费因子ID--%> + + <%--新建明细报价数量,计量单位--%> + + +
+
+
+ + + + + + +
+
+ + +
+
+
+
+
+
+
+ +
+ + +
+ + + + + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + <%-- 当前用户是否是询价员、审价员、核价员 --%> + + + + <%--复制时是否复制明细--%> + + <%--行过滤字段--%> + + + + + + + + + + + + + + + + <%--普通因子----BJ01|20|Y--%> + + + + <%--报价数量--%> + + <%--价格表表价调整--%> + + <%--报价上浮--%> + + <%--报价下浮--%> + + <%--料价价差率--%> + + + + + + <%--批量调整标准--%> + + + + <%--行政划分--%> + + <%--与售前项目关联的项目ID--%> + + <%--项目--%> + + <%--报价单备注以及报价说明助手--%> + + + + + + + + + + + + + + + + + + <%--客户ID --%> + + + + + + + + + + +
+
+
+ + + + + + +
+ + diff --git a/XLBJDInfo.aspx.cs b/XLBJDInfo.aspx.cs new file mode 100644 index 0000000..b6fca05 --- /dev/null +++ b/XLBJDInfo.aspx.cs @@ -0,0 +1,30647 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; +using GThinking.N_MODEL.Page; +using GThinking.N_MISPRO.Utility; +using GThinking.N_MISPRO; +using GThinking.N_CONTROL; +using GThinking.N_MISPRO.Data; +using GThinking.N_WORKFLOW; +using System.Text; +using System.Collections.Generic; +using GThinking.N_MISPRO.TableCache; +using System.Data.OleDb; +using System.IO; +using System.Web.UI.MobileControls; +using GThinking.N_COMPRESS; +using System.Xml; +using GThinking.N_PUBLIC2; +using GThinking.N_MISPROAS.SysData; +using GThinking.N_MODEL.Dialog; +using System.Drawing; +using System.Text.RegularExpressions; +using GThinking.N_MISPRO.MISPROAS; +using GThinking.N_PUBLIC; + + +namespace GThinking.U20261363_N_XLXSBJ +{ + public partial class XLBJDInfo : BDOBillBase + { + XLBJD_BDOBill entity = new XLBJD_BDOBill(); + public static int iXSWS = 5; + TControlState State; + public string tmpXJDYBJTXS = "";//限价低于报价提醒色 + public string tmpBJDYBJTXS = "";//报价低于表价提醒色 + public string tmpBJQSTXS = "";//表价缺失提醒色 + public string tmpZDXJJCLTXS = "";//最低限价价差率提醒色 + public string tmpBZTXYS = "";//标准提醒色 + public double iZDXJJCLXX = 0;//最低限价价差率下限 + public int iBJXSWS = 5;//报价表价比较小数位数 + //当前的aspx页面,固定写出的列数 + private int sConColumnsCount = 30; + //非报价单因子动态增加的列数_sAddColumnsCount + private int sAddColumnsCount = 67; + + //XLXSBJXHML对应的产品目录 + Dictionary dicCPML = new Dictionary(); + + Dictionary dicTJYZ = new Dictionary(); + + //打印预览标记,为Y表示查询所有报价单明细、而非当前页明细 + string sReportTag = "N"; + //记录导出、记录汇总标记,为Y表示查询Grid当下所有明细、而非当前页明细 + //string sHeaderMenuTag = "N"; + + public static bool ShowFJXX = false; + public static bool bZDXSFJXX = true; + //public static bool bReadBBYS = false; + public static Dictionary dicReadBBYS = new Dictionary(); + + + protected void Page_Load(object sender, EventArgs e) + { + this.UMID = 100860174; + this.UMName = "线缆销售报价单"; + this.CurMaster = Master; + this.CurEntity = entity; + this.PageWidth = 1000; + this.PageHeight = 600; + entity.EntityTable.IsAttach = true; + entity.EntityTable.IsWf = true; + + iXSWS = string.IsNullOrEmpty(GetOption(100860000, "BJU002")) ? 5 : CMISproConvert.StrToInt(GetOption(100860000, "BJU002")); + if (iXSWS < 0) + iXSWS = 0; + else if (iXSWS > 8) + iXSWS = 8; + + tmpBJDYBJTXS = ""; + tmpXJDYBJTXS = ""; + tmpBJQSTXS = ""; + tmpZDXJJCLTXS = ""; + tmpBZTXYS = ""; + iZDXJJCLXX = 0; + if (!IsPostBack) + { + if (GetOption(100860000, "BJU070").Trim() == "Y") + { + cbxTXY.Visible = false; + cbxTXYMC.Visible = true; + } + else + { + cbxTXY.Visible = true; + cbxTXYMC.Visible = false; + } + //设置隐藏控件IsXJY、IsSJY、IsHJY + IsXJY.Value = "N"; + IsSJY.Value = "N"; + IsHJY.Value = "N"; + + TYGXX tRYXX = TRYXX.GetRYXXByGH(CurSession.UserId); + string sXJYROLEID = string.Empty; + string sSJYROLEID = string.Empty; + string sHJYROLEID = string.Empty; + XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860000); + if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_XJYROLEID)) + sXJYROLEID = pzxx.XLXSBJPZ_XJYROLEID; + + if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_SJYROLEID)) + sSJYROLEID = pzxx.XLXSBJPZ_SJYROLEID; + + if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_HJYROLEID)) + sHJYROLEID = pzxx.XLXSBJPZ_HJYROLEID; + + if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from USERROLE where URUSERID='{0}' and " + CMISproDataBase.GetWhereEqual("URROLEID", sXJYROLEID), tRYXX.RYID))) + { + IsXJY.Value = "Y"; + } + if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from USERROLE where URUSERID='{0}' and " + CMISproDataBase.GetWhereEqual("URROLEID", sSJYROLEID), tRYXX.RYID))) + { + IsSJY.Value = "Y"; + } + if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from USERROLE where URUSERID='{0}' and " + CMISproDataBase.GetWhereEqual("URROLEID", sHJYROLEID), tRYXX.RYID))) + { + IsHJY.Value = "Y"; + } + } + txtBJU074.Value = GetOption(100860000, "BJU074").Trim(); + + LoadTJYZData(); + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); + string sHidJSLMList = XLBJDUtils.GetHidJSLMList(cbxBJFLID.SelectedValue.Trim(), IsXJY.Value.Equals("Y"), IsSJY.Value.Equals("Y"), IsHJY.Value.Equals("Y")); + if (!IsPostBack) + { + if (Request.Form["BBYS"] == null)//如果是“按复制内容导入”后触发则不再重复执行 + { + Dictionary dicBJDYZ = XLBJDUtils.GetBJDYZ(cbxBJFLID.SelectedValue.Trim()); + txtBJDYZ.Text = dicBJDYZ["BJDYZ"]; + txtTJYSList.Text = dicBJDYZ["TJYSList"]; + txtYZWPIDList.Text = dicBJDYZ["YZWPIDList"]; + txtReadOnlyYZ.Text = dicBJDYZ["ReadOnlyYZ"]; + txtZDWPIDList.Text = dicBJDYZ["ZDWPIDList"]; + txtPFYZID.Text = dicBJDYZ["PFYZ"]; + txtBTYZ.Text = dicBJDYZ["BTYZ"]; + txtXSJEYZ.Text = dicBJDYZ["XSJEYZ"]; + txtFSYZ.Text = dicBJDYZ["FSYZ"]; + txtTZJGBBJ.Text = bjflxx.XLXSBJFL_TZJGBBJ; + txtTZBJDHQLJ.Text = bjflxx.XLXSBJFL_TZBJDHQLJ; + } + } + else if (txtBJDYZ.Text.Trim().Equals("")) + { + //解决新建取消、再新建时txtBJDYZ为空的问题 + Dictionary dicBJDYZ = XLBJDUtils.GetBJDYZ(cbxBJFLID.SelectedValue.Trim()); + txtBJDYZ.Text = dicBJDYZ["BJDYZ"]; + txtTJYSList.Text = dicBJDYZ["TJYSList"]; + txtYZWPIDList.Text = dicBJDYZ["YZWPIDList"]; + txtReadOnlyYZ.Text = dicBJDYZ["ReadOnlyYZ"]; + txtZDWPIDList.Text = dicBJDYZ["ZDWPIDList"]; + txtPFYZID.Text = dicBJDYZ["PFYZ"]; + txtBTYZ.Text = dicBJDYZ["BTYZ"]; + txtXSJEYZ.Text = dicBJDYZ["XSJEYZ"]; + txtFSYZ.Text = dicBJDYZ["FSYZ"]; + txtTZJGBBJ.Text = bjflxx.XLXSBJFL_TZJGBBJ; + txtTZBJDHQLJ.Text = bjflxx.XLXSBJFL_TZBJDHQLJ; + + } + + InitGrid(cbxBJFLID.SelectedValue.Trim(), iXSWS, txtBJDYZ.Text.Trim(), txtYZWPIDList.Text.Trim(),txtTZJGBBJ.Text.Trim(), txtTZBJDHQLJ.Text.Trim(),txtReadOnlyYZ.Text.Trim(), txtZDWPIDList.Text.Trim(),txtPFYZID.Text.Trim(),sHidJSLMList); + + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJDHQCLCB").NumberDecimalPlace = iXSWS; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CLCB").NumberDecimalPlace = iXSWS; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBJJ").NumberDecimalPlace = iXSWS; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJ").NumberDecimalPlace = iXSWS; + + int iBJU030 = CMISproConvert.StrToInt(GetOption(100860000, "BJU030")); + if (iBJU030 >= 0) + { + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJSL").NumberIsQuantity = false; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJSL").NumberDecimalPlace = iBJU030; + } + + + AddListSetMap(new ListSet("", null, grdXLBJDMX, entity.XLXSBJDMX, null)); + + + entity.fCanSubmit = bjflxx.XLXSBJFL_XTCPBJYZ; + entity.sBJU003 = GetOption(100860000, "BJU003"); + entity.XLXSBJDMX.sBJU002 = GetOption(100860000, "BJU002"); + grdXLBJDMX.CanDeleteAll = true; + if (!IsPostBack) + { + if (Request.Form["BBYS"] == null)//如果是“按复制内容导入”后触发则不再重复执行 + { + LoadUserandGroup(); + LoadXMGroup(); + LoadYZGroup(); + } + } + + if (!IsPostBack) + { + if (CurSession.DbId != "") + { + string sMAXHS = "200"; + if (PageParam.ContainsKey("XLXSBJD_BJDID")) + { + string sBJFLID = GetBJFLID(PageParam.GetRTrimString("XLXSBJD_BJDID")); + sMAXHS = XLBJDUtils.GetBJFLXX(sBJFLID).XLXSBJFL_MYHSSX; + } + + TGtPager.LoadPageSize(TContextDatabases.GetDatabase("DBERP"), CurSession.UserId, this.UMID, "XLBJDInfo.aspx", pgBar); + pgBar.MaxPageSize = CMISproConvert.StrToInt(sMAXHS); + if (pgBar.PageSize > pgBar.MaxPageSize) + pgBar.PageSize = pgBar.MaxPageSize; + } + } + txtLJ.DecimalPlaces = XLBJDUtils.BJCLPriceDecimal; + txtTJ.DecimalPlaces = XLBJDUtils.BJCLPriceDecimal; + //分页模式下,初始化翻页控件 + base.CustomPageSize = pgBar.MaxPageSize; + base.InitPage(); + //============================================================================================ + + + sHidJSLMList = XLBJDUtils.GetHidJSLMList(cbxBJFLID.SelectedValue.Trim(), IsXJY.Value.Equals("Y"), IsSJY.Value.Equals("Y"), IsHJY.Value.Equals("Y")); + txtPTBB.Value = N_MISPROAS.AppRuntime.GtipsVerInt.ToString().Trim(); + if (XLBJDUtils.GetXLXSBJPZXX(100860000).XLXSBJPZ_XSZBXX == "Y") + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_WLID").Visible = true; + + if (!IsPostBack) + { + bool bVisble = false; + DataSet dsFJXXSZ = XLBJDUtils.GetKZXX(); + if (dsFJXXSZ.Tables[0].Rows.Count > 0) + { + foreach (DataRow trow in dsFJXXSZ.Tables[0].Rows) + { + if (sHidJSLMList.Trim().Contains(trow["XLXSBJKZXXSZ_DYZD"].ToString().Trim())) + continue; + string sXSBZ = trow["XLXSBJKZXXSZ_XSBZ"].ToString().Trim(); + string sWPID = txtWPID.Value.Trim().Equals("") ? "0010" : txtWPID.Value.Trim(); + string sSYBJFLID = trow["XLXSBJKZXXSZ_SYBJFLID"].ToString().Trim(); + string sBJFLID = cbxBJFLID.SelectedValue.Trim(); + string sXSBZC = "," + sXSBZ + ","; + if (!sXSBZ.Equals("") && !sXSBZC.Contains("," + sWPID + ",")) + continue; + string sSYBJFLIDC = "," + sSYBJFLID + ","; + if (!sSYBJFLID.Equals("") && !sSYBJFLIDC.Contains("," + sBJFLID + ",")) + continue; + bVisble = true; + ShowFJXX = true; + break; + } + } + Mac.MacLog.TraceFormat("Page_Load:{0}", bVisble ? "Y" : "N"); + divFJXXLabel.Visible = bVisble; + divFJXX.Visible = bVisble; + } + + + try + { + if (ControlState == TControlState.ctsInsert) + { + LoadFJXX(true, "A", txtBJDID.Text, divFJXX, sHidJSLMList.Trim()); + setFJXXControlState(divFJXX, true, txtBJDID.Text, false, ""); + } + else if (ControlState == TControlState.ctsCopy) + { + LoadFJXX(true, "C", txtBJDID.Text, divFJXX, sHidJSLMList.Trim()); + setFJXXControlState(divFJXX, true, txtBJDID.Text, false, ""); + } + else if (ControlState == TControlState.ctsEdit) + { + LoadFJXX(true, "E", txtBJDID.Text, divFJXX, sHidJSLMList.Trim()); + setFJXXControlState(divFJXX, true, txtBJDID.Text, false, ""); + } + else + { + LoadFJXX(true, "", txtBJDID.Text, divFJXX, sHidJSLMList.Trim()); + setFJXXControlState(divFJXX, false, txtBJDID.Text, false, ""); + } + + } + catch + { + } + + + SetGridVisible_BJFLID(cbxBJFLID.SelectedValue.Trim()); + //分页模式下,显示序号不能交由模板处理了 + //grdXLBJDMX.AutoIndexColumn = "XLXSBJDMX_XSSX"; + this.WorkFlowId = _CurWorkFlow.GetWFID("XLXSBJ_BJD"); + + if (!IsPostBack) + { + //标签 + if (CheckModule("102579012")) + { + lblZZL.Visible = false; + + linkZZL.Visible = true; + LinkZZLMH.Visible = true; + } + else + { + lblZZL.Visible = true; + + linkZZL.Visible = false; + LinkZZLMH.Visible = false; + + } + + } + + + + //分页模式下,创建翻页控件的委托事件 + pgBar.PageChanged += new EventHandler(pgBar_PageChanged); + pgBar.PageSizeChanged += new EventHandler(pgBar_PageSizeChanged); + + gtToolButton btnCopyEx = ((gtToolButton)CurMaster.FindControl("btnCopy")); + btnCopyEx.Click += new EventHandler(btnCopyEx_Click); + + HiddenField HiddenJSCQGRPID = ((HiddenField)CurMaster.FindControl("txtJSCQDOCGRPID")); + if (HiddenJSCQGRPID != null) + txtJSCQDOCGRPID.Value = HiddenJSCQGRPID.Value; + + btnSend.Visible = DSMAC.IsRegMAC("N_HLXT8") && DSActiveModule.IsActiveModule(102551000) && GetOption(100860000, "BJU068").Equals("B"); + btnQXSend.Visible = DSMAC.IsRegMAC("N_HLXT8") && DSActiveModule.IsActiveModule(102551000) && GetOption(100860000, "BJU068").Equals("B"); + + } + + + + protected override void OnInit(EventArgs e) + { + base.OnInit(e); + string eventTarget = Request["__EVENTTARGET"]; + string eventArgument = Request["__EVENTARGUMENT"]; + if (string.IsNullOrEmpty(eventTarget)) + { + grdXLBJDMX.SkipPostDataProcessing = false; + return; + } + grdXLBJDMX.SkipPostDataProcessing = IsNonDetailOperation(eventTarget, eventArgument); + } + private bool IsNonDetailOperation(string eventTarget, string eventArgument) + { + string[] standaloneTargets = new string[] { + "ctl00$CPHButton$btnBJSM", + "ctl00$CPHButton$btnAIZXQK", + "ctl00$CPHButton$btnBJLR", + "ctl00$CPHButton$btnCLCYZD", + "ctl00$CPHButton$btnYLZDFP", + "ctl00$CPHButton$btnZDFX", + "ctl00$CPHButton$btnBJFK", + "ctl00$CPHButton$btnCXJS", + "ctl00$btnAttach" + }; + + if (Array.IndexOf(standaloneTargets, eventTarget) >= 0) + { + return true; + } + if (eventTarget == "ctl00$CPHButton$btnMXOper" && eventArgument != "TZBZ") + return true; + + Dictionary paramDependentTargets =new Dictionary(); + + paramDependentTargets.Add("ctl00$CPHButton$btnCLCB", new string[] { "WGCPBJ", "WBJCPBJ", "GYJDCP", "ctl00$CPHButton$btnCLCB_ArrowDrop" }); + paramDependentTargets.Add("ctl00$CPHButton$btnLJ", new string[] { "ctl00$CPHButton$btnLJ", "ctl00$CPHButton$btnLJ_ArrowDrop", "CLHQTZ", "BJDHQLJDC", "JGQSCL" }); + paramDependentTargets.Add("ctl00$CPHButton$btnBJ", new string[] { "ctl00$CPHButton$btnBJ_ArrowDrop", "0" }); + paramDependentTargets.Add("ctl00$CPHButton$btnBDBJ", new string[] { "ctl00$CPHButton$btnBDBJ_ArrowDrop", "BDBJ", "HBBJ", "CFBJ" }); + + if (paramDependentTargets.ContainsKey(eventTarget)) + { + string[] validArgs = paramDependentTargets[eventTarget]; + return Array.IndexOf(validArgs, eventArgument) >= 0; + } + + return false; + } + + protected override void SetControlState() + { + base.SetControlState(); + if (ControlState == TControlState.ctsInsert || ControlState == TControlState.ctsCopy) + { + _CurWorkFlow.SetFormRights(this.Page, _CurWorkFlow.GetWFID("XLXSBJ_BJD"), ControlState); + } + + pgBar.Visible = false; + if (GetOption(100860000, "BJU075").Equals("Y")) + { + chkJZBJHS.ReadOnly = true; + } + + //分页模式下,设置翻页控件 + pgBar.Enabled = true; + if (ControlState == TControlState.ctsBrowse) + { + pgBar.Visible = true; + divBarQY.Visible = true; + SetRecordCount(pgBar, txtBJDID.Text, txtXSSXFilter.Value, txtXLXHIDFilter.Value, txtXLGGIDFilter.Value, txtXLBZIDFilter.Value, txtDYDJIDFilter.Value, txtXLYSIDFilter.Value, txtBJCPFilter.Value, txtJGBBJFilter.Value, txtZDXJJCLFilter.Value, txtCPMLFilter.Value, txtZHCPMLFilter.Value, txtBZFilter.Value); + btnSend.Enabled = true; + btnQXSend.Enabled = true; + } + else + { + pgBar.Visible = false; + divBarQY.Visible = false; + btnSend.Enabled = false; + btnQXSend.Enabled = false; + } + + + if (ControlState != TControlState.ctsBrowse && ControlState != TControlState.ctsBrowse) + btnAIZXQK.Enabled = false; + else + btnAIZXQK.Enabled = true; + + //由于复制保存对明细进行了后台复制,复制主记录功能暂不能支持 + //gtToolButton btnCopyEx = ((gtToolButton)CurMaster.FindControl("btnCopy")); + //if (btnCopyEx.Nodes[0] != null) + //{ + // btnCopyEx.Nodes[0].Enabled = false; + //} + //btnCopyEx.Click += new EventHandler(btnCopyEx_Click); + + if (IsFilterState()) + { + grdXLBJDMX.CanInsertAtIndex = false; + } + else + grdXLBJDMX.CanInsertAtIndex = true; + + cbxKHID.Enabled = false; + txtZJE.Enabled = false; + txtZZL.Enabled = false; + txtLRL.Enabled = false; + this.txtBJDID.Enabled = false; + this.txtFJS.Enabled = false; + this.txtWHR.Enabled = false; + this.datWHSJ.Enabled = false; + txtLCZT.Enabled = false; + txtYSFY.Enabled = false; + + chkYZB.Enabled = false; + datYZBRQ.Enabled = false; + datJHJHRQS.Enabled = false; + datJHJHRQZ.Enabled = false; + txtYZBSL.Enabled = false; + txtYZBJE.Enabled = false; + if (ControlState != TControlState.ctsBrowse && ControlState != TControlState.ctsNull) + { + chkYZB.Enabled = true; + datYZBRQ.Enabled = true; + datJHJHRQS.Enabled = true; + datJHJHRQZ.Enabled = true; + txtYZBSL.Enabled = true; + txtYZBJE.Enabled = true; + } + + + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + string sSQL = ""; + string sBZSW = TWorkflow.Utils.WFGetBZSWID("XLXSBJ_BJD", _CurWorkFlow.GetWPID(this.WorkFlowId, this.WorkFlowInst)); + + string sUser = "," + CurSession.UserId.Trim() + ","; + if (ControlState == TControlState.ctsBrowse && !sBZSW.Trim().Equals("ZZZZ") && !sBZSW.Trim().Equals("ZZZY")) + { + //btnDRBJDMX.Enabled = txtAWAITER.Value.Trim().Contains(sUser); + + if (sBZSW.Equals("0010")) + { + btnMXOper.Enabled = txtAWAITER.Value.Trim().Contains(sUser); + } + else + btnMXOper.Enabled = false; + } + else + { + //btnDRBJDMX.Enabled = false; + btnMXOper.Enabled = false; + } + + if (CheckLL()) + { + if (ControlState == TControlState.ctsBrowse) + { + if (grdXLBJDMX.RowCount <= 0) + { + btnBJLR.Enabled = false; + } + else + { + btnBJLR.Enabled = true; + } + } + else + { + btnBJLR.Enabled = false; + } + } + if (CheckCLCB()) + { + if (ControlState == TControlState.ctsBrowse) + { + if (grdXLBJDMX.RowCount <= 0) + { + btnCLCB.Enabled = false; + } + else + { + btnCLCB.Enabled = true; + } + } + else + { + btnCLCB.Enabled = false; + } + } + + if (ControlState == TControlState.ctsEdit) + { + cbxBJFLID.Enabled = false; + cbxJGBID.Enabled = false; + if (XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()).XLXSBJFL_JGBTJYSS.Contains("2")) + cbxXSQYID.Enabled = false; + + datBJRQ.Enabled = false; + + if (grdXLBJDMX.RowCount > 0) + { + chkJZBJHS.Enabled = false; + txtTJ.Enabled = false; + txtLJ.Enabled = false; + cbxFKQXNR.Enabled = false; + cbxPJLX.Enabled = false; + + if (txtTJYSList.Text.Trim().Contains(",B,"))//B|销售单位 + { + cbxSYDWID.Enabled = false; + } + } + } + if (ControlState == TControlState.ctsCopy) + chkJZBJHS.Enabled = false; + + if (CMISproDataBase.ExistsRecord("DBERP", string.Format("SELECT 1 FROM XLXSBJFL WHERE XLXSBJFL_BJFLID = '{0}' AND XLXSBJFL_MXBH = 'JGB'", cbxBJFLID.SelectedValue.Trim()))) + { + txtTJ.Enabled = false; + txtLJ.Enabled = false; + } + + btnLJ.Enabled = false; + if (CheckLJ()) + { + if (ControlState == TControlState.ctsBrowse) + { + btnLJ.Enabled = true; + } + } + if (DSActiveModule.IsActiveModule(100956005)) + { + txtXM.Width = 234; + //lblKHSZD.Visible = true; + cbxKHSZDPRO.Visible = true; + cbxKHSZDCITY.Visible = true; + //报价运费地区维护到了区县时,区县才显示 + SQL.Clear(); + SQL.Add(" select 1 from XLXSBJDQYFZB left join XZQH on XZQH_XZQHID = XLXSBJDQYFZB_XZQHID "); + SQL.Add(" where isnull(XZQH_COUNTY,' ') <> ' ' "); + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + cbxKHSZDCOUNTY.Visible = true; + txtXM.Width = 174; + } + else + { + cbxKHSZDCOUNTY.Visible = false; + txtXM.Width = 234; + } + } + else + { + txtXM.Width = 354; + //lblKHSZD.Visible = false; + cbxKHSZDPRO.Visible = false; + cbxKHSZDCITY.Visible = false; + cbxKHSZDCOUNTY.Visible = false; + } + + //100860068|撞单分析 + if (CheckModule("100860068")) + { + btnZDFX.Visible = true; + } + else + { + btnZDFX.Visible = false; + } + + + btnAIZXQK.Visible = false; + if (CheckModule("102849002")) + { + btnAIZXQK.Visible = true; + } + + + btnBJCPJX.Visible = false; + if (CheckModule("100860140")) + { + btnBJCPJX.Visible = true; + } + + btnTBSJKSLR.Visible = false; + if (CheckModule("100860154")) + { + btnTBSJKSLR.Visible = true; + } + + linkXM.Visible = false; + linkXMMH.Visible = false; + lblXM.Visible = true; + //是否注册100860122|报价产品辐照工序模块且配置辐照费因子ID + if (DSActiveModule.IsActiveModule(100860122)) + { + string sql = "select 1 from XLXSTZYZ WHERE ISNULL(XLXSTZYZ_QYGYGXXD,'N')='Y' AND XLXSTZYZ_MXBH='BJD' AND EXISTS(SELECT 1 FROM XLXSBJFLYZ "; + sql += string.Format(" where XLXSBJFLYZ_BJFLID='{0}' AND XLXSBJFLYZ_YZID=XLXSTZYZ_YZID) ", cbxBJFLID.SelectedValue.Trim()); ; + if (CMISproDataBase.ExistsRecord("DBERP", sql)) + btnFZGX.Visible = true; + else + { + btnFZGX.Visible = false; + } + } + else + { + btnFZGX.Visible = false; + } + if (ControlState == TControlState.ctsBrowse) + { + btnFZGX.Enabled = true; + cbxYSJDID.Enabled = false; + cbxGYSID.Enabled = false; + + //推销员显示变化 + XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860000); + if (pzxx.XLXSBJPZ_KHJSLY == "KH") + { + SQL.Clear(); + SQL.Add(" select KH_TXY from KH where KH_MC = :pMC "); + SQL.ParamByName("pMC").Value = txtKH.Text.Trim(); + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + string sKHTXY = ds.Tables[0].Rows[0][0].ToString().Trim(); + if (!GetTXYValue().Equals(sKHTXY) && !sKHTXY.Equals("") && !GetTXYValue().Equals("")) + { + lblTXY.ForeColor = Color.Red; + lblTXY.ToolTip = "客户销售员:" + sKHTXY; + } + } + } + else if (pzxx.XLXSBJPZ_KHJSLY == "KHXX") + { + SQL.Clear(); + SQL.Add(" select KHXX_FZR from KHXX where KHXX_MC = :pKHXX_MC "); + SQL.ParamByName("pKHXX_MC").Value = txtKH.Text.Trim(); + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + string sKHTXY = ds.Tables[0].Rows[0][0].ToString().Trim(); + if (!GetTXYValue().Equals(sKHTXY) && !sKHTXY.Equals("") && !GetTXYValue().Equals("")) + { + lblTXY.ForeColor = Color.Red; + lblTXY.ToolTip = "客户销售员:" + sKHTXY; + } + } + } + + // + if (!txtXMID.Value.Trim().Equals("") || pzxx.XLXSBJPZ_SQXMBAGL == "Y") + { + linkXM.Visible = true; + linkXMMH.Visible = true; + linkXM.Enabled = true; + + lblXM.Visible = false; + } + + + } + else + { + btnFZGX.Enabled = false; + cbxYSJDID.Enabled = true; + cbxGYSID.Enabled = true; + + lblTXY.ForeColor = Color.Black; + lblTXY.ToolTip = ""; + + } + + + SetHQJCL(); + //以上需要先判定状态 + //================================================================================================== + //以下需要先判定条件 + + //关联报价单的权限控制 + sSQL = string.Format("select top 1 XLXSBJDBDMX_BJDID from XLXSBJDBDMX where XLXSBJDBDMX_BJDID = '{0}' and XLXSBJDBDMX_BDBZ <> '0' ", txtBJDID.Text.Trim()); + if (CMISproDataBase.ExistsRecord("DBERP", sSQL)) + { + btnMXOper.Enabled = false; + btnLJ.Enabled = false; + btnBJ.Enabled = false; + } + else + { + btnBJ.Enabled = ControlState == TControlState.ctsBrowse && _CurWorkFlow.Awaiter.IndexOf("," + CurSession.UserId + ",") >= 0 && Master.CanEdit; + btnMXOper.Enabled = ControlState == TControlState.ctsBrowse && _CurWorkFlow.Awaiter.IndexOf("," + CurSession.UserId + ",") >= 0 && Master.CanEdit; + btnLJ.Enabled = ControlState == TControlState.ctsBrowse; + } + btnBJCPJX.Enabled = ControlState == TControlState.ctsBrowse && _CurWorkFlow.Awaiter.IndexOf("," + CurSession.UserId + ",") >= 0 && Master.CanEdit; + btnTBSJKSLR.Enabled = ControlState == TControlState.ctsBrowse && _CurWorkFlow.Awaiter.IndexOf("," + CurSession.UserId + ",") >= 0 && Master.CanEdit; + + //按钮权限 + lblTJ.Enabled = ControlState == TControlState.ctsBrowse && _CurWorkFlow.Awaiter.IndexOf("," + CurSession.UserId + ",") >= 0 && Master.CanEdit; + lblLJ.Enabled = ControlState == TControlState.ctsBrowse && _CurWorkFlow.Awaiter.IndexOf("," + CurSession.UserId + ",") >= 0 && Master.CanEdit; + lblJGBID.Enabled = ControlState == TControlState.ctsBrowse && _CurWorkFlow.Awaiter.IndexOf("," + CurSession.UserId + ",") >= 0 && Master.CanEdit; + linkSYDWID.Enabled = ControlState == TControlState.ctsBrowse && _CurWorkFlow.Awaiter.IndexOf("," + CurSession.UserId + ",") >= 0 && Master.CanEdit; + linkFKQXNR.Enabled = ControlState == TControlState.ctsBrowse && _CurWorkFlow.Awaiter.IndexOf("," + CurSession.UserId + ",") >= 0 && Master.CanEdit; + lblPJLX.Enabled = ControlState == TControlState.ctsBrowse && _CurWorkFlow.Awaiter.IndexOf("," + CurSession.UserId + ",") >= 0 && Master.CanEdit; + + lblZJE.Enabled = ControlState == TControlState.ctsBrowse && _CurWorkFlow.Awaiter.IndexOf("," + CurSession.UserId + ",") >= 0 && Master.CanEdit; + lblFKSM.Enabled = (ControlState == TControlState.ctsInsert || ControlState == TControlState.ctsEdit || ControlState == TControlState.ctsCopy); + lblBZ.Enabled = (ControlState == TControlState.ctsInsert || ControlState == TControlState.ctsEdit || ControlState == TControlState.ctsCopy); + + lblZLGZCLS.Enabled = ControlState == TControlState.ctsBrowse; + lblBJDID.Enabled = ControlState == TControlState.ctsBrowse; + btnZDFX.Enabled = ControlState == TControlState.ctsBrowse; + btnBJFK.Enabled = ControlState == TControlState.ctsBrowse; + + btnBJSM.Enabled = ControlState == TControlState.ctsBrowse; + lblFKQXTJB.Enabled = (ControlState == TControlState.ctsInsert || ControlState == TControlState.ctsEdit || ControlState == TControlState.ctsCopy); + + //材料总重量 + linkZZL.Enabled = ControlState == TControlState.ctsBrowse; + + + + //材料用量制定 + btnCLCYZD.Enabled = false; + btnYLZDFP.Enabled = false; + XLXSBJPZXX pzxx2 = XLBJDUtils.GetXLXSBJPZXX(100860014); + string sCLYLZJFS = string.Empty; + if (!string.IsNullOrEmpty(pzxx2.XLXSBJPZ_CLYLZJFS)) + { + sCLYLZJFS = "," + pzxx2.XLXSBJPZ_CLYLZJFS + ","; + } + + if (sCLYLZJFS.Contains(",2,") || sCLYLZJFS.Contains(",3,") || sCLYLZJFS.Contains(",4,")) + { + if (ControlState == TControlState.ctsBrowse && _CurWorkFlow.Awaiter.IndexOf("," + CurSession.UserId + ",") >= 0 && Master.CanEdit) + { + btnCLCYZD.Enabled = true; + btnYLZDFP.Enabled = true; + } + } + + XLXSBJPZXX pzxx3 = XLBJDUtils.GetXLXSBJPZXX(100860000); + string sBMYSLIST = string.Empty; + if (!string.IsNullOrEmpty(pzxx3.XLXSBJPZ_BMYSLIST)) + { + sBMYSLIST = "," + pzxx3.XLXSBJPZ_BMYSLIST + ","; + } + //控制省市如果需要编码则必填 + if (sBMYSLIST.Contains(",XZQHID,")) + { + if (ControlState == TControlState.ctsEdit) + { + cbxKHSZDCITY.Enabled = false; + cbxKHSZDPRO.Enabled = false; + } + } + btnKHWL.Visible = false; + if (pzxx3.XLXSBJPZ_XZMXKXX.Contains("KHWLDR"))//仅业务配置勾选“按客户物料导入”时显示。 + btnKHWL.Visible = true; + + + btnCXJS.Visible = false; + if (XLBJDUtils.ExistGYKH()) + btnCXJS.Visible = true; + btnCXJS.Enabled = false; + if (ControlState == TControlState.ctsBrowse && _CurWorkFlow.Awaiter.IndexOf("," + CurSession.UserId + ",") >= 0 && Master.CanEdit) + { + btnCXJS.Enabled =true; + } + + + + + + linkKH.Visible = false; + linkKHMH.Visible = false; + linkKH.Enabled = false; + lblKH.Visible = true; + //100956000 N_SQKH8 售前客户 + if (CheckModule("100956000")) + { + if (pzxx3.XLXSBJPZ_KHJSLY == "KHXX") + { + linkKH.Visible = true; + linkKHMH.Visible = true; + linkKH.Enabled = true; + lblKH.Visible = false; + } + } + + linkKHDH.Visible = false; + linkKHDHMH.Visible = false; + linkKHDH.Enabled = false; + lblKHDH.Visible = true; + if (!GetKHDHURL().Equals("")) + { + linkKHDH.Visible = true; + linkKHDHMH.Visible = true; + linkKHDH.Enabled = true; + lblKHDH.Visible = false; + txtKHDH.Enabled = false; + } + + if (ControlState != TControlState.ctsBrowse && ControlState != TControlState.ctsNull) + { + if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from BJD where BJD_BJDID='{0}'", txtBJDID.Text.Trim()))) + txtKH.Enabled = false; + else + txtKH.Enabled = true; + } + + if(!XSCBXKHID()) + { + txtKHID.Visible = true; + cbxKHID.Visible = false; + txtKH.Width = Unit.Pixel(245); + txtKH.Enabled = false; + } + else + { + txtKHID.Visible = false; + txtKH.Width = Unit.Pixel(354); + txtKH.Enabled = true; + } + + if (ControlState == TControlState.ctsEdit) + { + if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSBJDMX where XLXSBJDMX_ZB in('P','Y') and XLXSBJDMX_ZBSL<>0 and XLXSBJDMX_BJDID='{0}'", txtBJDID.Text.Trim()))) + { + grdXLBJDMX.CanDelete = false; + grdXLBJDMX.CanEdit = false; + grdXLBJDMX.CanDeleteAll = false; + grdXLBJDMX.CanInsert = false; + grdXLBJDMX.CanInsertAtIndex = false; + + } + } + //注册了N_XLBJAISBYQ8|线缆销售报价AI识别引擎下的引擎模块就可以看到AI机器人窗口 + if (OpRightUtils.GetUserRight(CurSession.UserId, 102849000).Open == true) + { + divAiButton.Visible = true; + } + else + { + divAiButton.Visible = false; + } + if (!lblTJ.Enabled) + lblTJ.ForeColor = ColorTranslator.FromHtml("#6f6f6f"); + else + lblTJ.ForeColor = ColorTranslator.FromHtml("#0000ff"); + if (!lblLJ.Enabled) + lblLJ.ForeColor = ColorTranslator.FromHtml("#6f6f6f"); + else + lblLJ.ForeColor = ColorTranslator.FromHtml("#0000ff"); + if (!lblJGBID.Enabled) + lblJGBID.ForeColor = ColorTranslator.FromHtml("#6f6f6f"); + else + lblJGBID.ForeColor = ColorTranslator.FromHtml("#0000ff"); + if (!lblZJE.Enabled) + lblZJE.ForeColor = ColorTranslator.FromHtml("#6f6f6f"); + else + lblZJE.ForeColor = ColorTranslator.FromHtml("#0000ff"); + if (!linkZZL.Enabled) + linkZZL.ForeColor = ColorTranslator.FromHtml("#6f6f6f"); + else + linkZZL.ForeColor = ColorTranslator.FromHtml("#0000ff"); + if (!linkKH.Enabled) + linkKH.ForeColor = ColorTranslator.FromHtml("#6f6f6f"); + else + linkKH.ForeColor = ColorTranslator.FromHtml("#0000ff"); + if (!linkXM.Enabled) + linkXM.ForeColor = ColorTranslator.FromHtml("#6f6f6f"); + else + linkXM.ForeColor = ColorTranslator.FromHtml("#0000ff"); + if (!linkKHDH.Enabled) + linkKHDH.ForeColor = ColorTranslator.FromHtml("#6f6f6f"); + else + linkKHDH.ForeColor = ColorTranslator.FromHtml("#0000ff"); + if (!lblFKSM.Enabled) + lblFKSM.ForeColor = ColorTranslator.FromHtml("#6f6f6f"); + else + lblFKSM.ForeColor = ColorTranslator.FromHtml("#0000ff"); + if (!lblBZ.Enabled) + lblBZ.ForeColor = ColorTranslator.FromHtml("#6f6f6f"); + else + lblBZ.ForeColor = ColorTranslator.FromHtml("#0000ff"); + + if (!linkSYDWID.Enabled) + linkSYDWID.ForeColor = ColorTranslator.FromHtml("#6f6f6f"); + else + linkSYDWID.ForeColor = ColorTranslator.FromHtml("#0000ff"); + if (!linkFKQXNR.Enabled) + linkFKQXNR.ForeColor = ColorTranslator.FromHtml("#6f6f6f"); + else + linkFKQXNR.ForeColor = ColorTranslator.FromHtml("#0000ff"); + if (!lblPJLX.Enabled) + lblPJLX.ForeColor = ColorTranslator.FromHtml("#6f6f6f"); + else + lblPJLX.ForeColor = ColorTranslator.FromHtml("#0000ff"); + + if (cbxKHID.Visible) + { + lblSYDWID.Text = "客户:"; + linkSYDWID.Text = "客户"; + linkSYDWID.ToolTip = "客户调整"; + lblKH.Text = "售前客户:"; + linkKH.Text = "售前客户"; + } + else + { + lblSYDWID.Text = "销售单位:"; + linkSYDWID.Text = "销售单位"; + linkSYDWID.ToolTip = "销售单位调整"; + lblKH.Text = "客户:"; + linkKH.Text = "客户"; + } + } + + protected override void LoadRecord() + { + base.LoadRecord(); + if (GetOption(100860000, "BJU070").Trim() == "Y") + { + string sTXY = cbxTXY.SelectedValue.Trim(); + txtTXYold.Value = sTXY; + txtTXY.Text = sTXY; + + if (!string.IsNullOrEmpty(sTXY)) + { + cbxTXYMC.Text = GetTXYMC(sTXY); + } + else + { + cbxTXYMC.Text = ""; + } + } + + txtLCZT.Text = _CurWorkFlow.GetWPName(txtWFID.Value.Trim(), txtWPID.Value.Trim()); + + if (chkJZBJHS.Checked) + txtJZBJHS.Text = "Y"; + else + txtJZBJHS.Text = "N"; + + txtOLDTJ.Value = txtTJ.Value.ToString(); + txtOLDLJ.Value = txtLJ.Value.ToString(); + + txtBGQKHID.Value = txtKHID.Text.ToString(); + txtBGQKH.Value = txtKH.Text.ToString(); + + cbxFKQXNR.SelectedValue = txtFKQXNR.Text.Trim(); + + txtOLDBJDID.Value = ""; + txtOLDBJDID2.Value = txtBJDID.Text.Trim(); + txtOldJGBID.Value = cbxJGBID.SelectedValue.Trim(); + txtOLDXM.Value = txtXM.Text.Trim(); + //处理所在地 + + + + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add("select XZQH_XZQHID,XZQH_FID,XZQH_PROVINCE,XZQH_CITY,XZQH_COUNTY from XZQH where XZQH_XZQHID = :pXZQHID "); + SQL.ParamByName("pXZQHID").Value = txtXZQHID.Value.Trim(); + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + + if (ds.Tables[0].Rows[0]["XZQH_FID"].ToString().Trim().Equals("86")) + { + cbxKHSZDPRO.SelectedValue = ds.Tables[0].Rows[0]["XZQH_XZQHID"].ToString().Trim(); + cbxKHSZDCITY.SelectedValue = ""; + cbxKHSZDCOUNTY.SelectedValue = ""; + } + else + { + if (ds.Tables[0].Rows[0]["XZQH_COUNTY"].ToString().Trim().Equals("")) + { + cbxKHSZDPRO.SelectedValue = ds.Tables[0].Rows[0]["XZQH_FID"].ToString().Trim(); + cbxKHSZDCITY.SelectedValue = ds.Tables[0].Rows[0]["XZQH_XZQHID"].ToString().Trim(); + cbxKHSZDCOUNTY.SelectedValue = ""; + } + else + { + cbxKHSZDCITY.SelectedValue = ds.Tables[0].Rows[0]["XZQH_FID"].ToString().Trim(); + cbxKHSZDCOUNTY.SelectedValue = ds.Tables[0].Rows[0]["XZQH_XZQHID"].ToString().Trim(); + SQL.Clear(); + SQL.Add("select XZQH_XZQHID,XZQH_FID,XZQH_PROVINCE,XZQH_CITY,XZQH_COUNTY from XZQH where XZQH_XZQHID = :pXZQHID "); + SQL.ParamByName("pXZQHID").Value = ds.Tables[0].Rows[0]["XZQH_FID"].ToString().Trim(); + DataSet dsCITY = dberp.OpenDataSet(SQL); + if (dsCITY.Tables[0].Rows.Count > 0) + { + cbxKHSZDPRO.SelectedValue = dsCITY.Tables[0].Rows[0]["XZQH_FID"].ToString().Trim(); + } + } + + } + } + + // + string sSQL = string.Format("select top 1 XLXSBJDBDMX_BJDID from XLXSBJDBDMX where XLXSBJDBDMX_BJDID = '{0}' and XLXSBJDBDMX_BDBZ <> '0' ", txtBJDID.Text.Trim()); + if (CMISproDataBase.ExistsRecord("DBERP", sSQL)) + { + entity.fCanE = false; + } + else + { + if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from BJD where BJD_BJDID = '{0}'", txtBJDID.Text.Trim()))) + entity.fCanE = false; + else + entity.fCanE = true; + } + + if (!IsPostBack) + { + + string sZDQRWPID = XLBJDUtils.GetXLXSBJPZXX(100860068).XLXSBJPZ_ZDQRWPID; + if (!sZDQRWPID.Equals("")) + { + if (sZDQRWPID.Contains(txtWPID.Value.Trim())) + { + if (!txtZDZDLX.Value.Trim().Equals("")) + { + string encodedValue = Server.HtmlEncode(txtZDZDLX.Value.Trim()); + string sScript = string.Format("window.setTimeout(function(){{ alert('自动撞单提醒:' + '{0}' + ''); }}, 100);", encodedValue); + ClientScript.RegisterStartupScript(this.GetType(), "Script_SHowMesage", sScript, true); + } + } + } + } + + if (IsPostBack) + { + string sHidJSLMList = XLBJDUtils.GetHidJSLMList(cbxBJFLID.SelectedValue.Trim(), IsXJY.Value.Equals("Y"), IsSJY.Value.Equals("Y"), IsHJY.Value.Equals("Y")); + LoadFJXX(true, "", txtBJDID.Text, divFJXX, sHidJSLMList); + setFJXXControlState(divFJXX, false, txtBJDID.Text, true, ""); + } + + txtKHID.Text = txtHidKHID.Value.Trim(); + cbxKHID.SelectedValue = txtHidKHID.Value.Trim(); + InitLable_TLJ(); + if (!IsPostBack) + { + string sBZSWID=TWorkflow.Utils.WFGetBZSWID("XLXSBJ_BJD",txtWPID.Value.Trim()); + if (XLBJDUtils.GetXLXSBJPZXX(100860000).XLXSBJPZ_XSZBXX == "Y" && (sBZSWID == "0030" || sBZSWID=="ZZZZ")) + { + XLBJDUtils.InsertFKMX(CurSession, txtBJDID.Text.Trim()); + } + } + lblJGBIDMH.Visible = lblJGBID.Visible; + } + + protected override void OnNewRecorder() + { + base.OnNewRecorder(); + this.txtWPID.Value = ""; + txtLCZT.Text = ""; + txtOLDBJDID2.Value = ""; + this.txtWHR.Text = CurSession.UserName.Trim(); + this.txtWHRID.Value = CurSession.UserId.Trim(); + this.datWHSJ.Value = CMISproConvert.ConvertTime(System.DateTime.Now.ToString()); + this.datBJRQ.Text = CMISproConvert.ConvertDate(System.DateTime.Now.ToString()); + + chkJZBJHS.Checked = true; + txtJZBJHS.Text = "Y"; + + cbxFKQXNR.SelectedValue = ""; + txtZT.Value = ""; + txtYBJDIDS.Value = ""; + txtZDZDLX.Value = ""; + txtKHID.Text = ""; + cbxKHID.Text = ""; + + txtOLDTJ.Value = ""; + txtOLDLJ.Value = ""; + txtBGQKHID.Value = ""; + txtBGQKH.Value = ""; + txtOLDXM.Value = ""; + txtXMID.Value = ""; + txtFZBZ.Value = "N"; + txtBJSQDH.Value = ""; + if (PageParam.ContainsKey("YXXM_XMID")) + { + txtXMID.Value = PageParam.GetRTrimString("YXXM_XMID"); + txtKH.Text = PageParam.GetRTrimString("KHMC"); + txtXM.Text = PageParam.GetRTrimString("MC"); + cbxKHSZDPRO.SelectedValue = PageParam.GetRTrimString("SQXM_KHSZDPRO"); + cbxKHSZDCITY.SelectedValue = PageParam.GetRTrimString("SQXM_KHSZDCITY"); + SetTXYValue(PageParam.GetRTrimString("SQXM_FZRMC")); + cbxTXY_SelectedIndexChanged(null, null); + } + else + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sSQL = new TSQL(dberp); + sSQL.Add(" select XSY_TXY from XSY where 1=1 and ISNULL(XSY_TYBZ,'N') <> 'Y' and XSY_GH ='" + CurSession.UserId + "'"); + DataSet ds = dberp.OpenDataSet(sSQL); + if (ds.Tables[0].Rows.Count == 1) + { + SetTXYValue(ds.Tables[0].Rows[0]["XSY_TXY"].ToString().Trim()); + cbxTXY_SelectedIndexChanged(null, null); + } + } + + ClearFilterCtrl(); + } + + protected override void OnCopyRecorder() + { + base.OnCopyRecorder(); + this.txtWPID.Value = ""; + txtZDZDLX.Value = ""; + txtLCZT.Text = ""; + txtZJE.Value = 0; + txtZZL.Value = 0; + txtLRL.Value = 0; + txtYSFY.Value = 0; + this.txtWHR.Text = CurSession.UserName.Trim(); + this.txtWHRID.Value = CurSession.UserId.Trim(); + XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860000); + if (!pzxx.XLXSBJPZ_BJDWQFZ.Equals("Y")) + datBJRQ.Text = DateTime.Now.Date.ToString().Trim(); + datWHSJ.Value = CMISproConvert.ConvertTime(System.DateTime.Now.ToString()); + + txtOLDTJ.Value = ""; + txtOLDLJ.Value = ""; + txtOLDXM.Value = ""; + txtXMID.Value = ""; + //点击+号进行多次报价 + txtSQRQ.Value = ""; + txtSQRGH.Value = ""; + txtSQRID.Value = ""; + txtSQRQ.Value = ""; + txtZT.Value = ""; + txtYBJDIDS.Value = ""; + txtFZBZ.Value = "Y"; + txtBJSQDH.Value = ""; + if (!txtOLDBJDID.Value.Trim().Equals("")) + { + string sYBJDID = XLBJDUtils.GetYBJDID(txtOLDBJDID.Value.Trim()); + txtFZBZ.Value = "A"; + txtZT.Value = "Z"; + txtYBJDIDS.Value = sYBJDID; + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + sql.Add("select max(XLXSBJD_BJDID) from XLXSBJD where XLXSBJD_BJDID like :pBJDID"); + sql.ParamByName("pBJDID").Value = sYBJDID + "-%"; + DataSet ds = dberp.OpenDataSet(sql); + if (ds.Tables[0].Rows.Count > 0) + { + string maxBJDID = ds.Tables[0].Rows[0][0].ToString().Trim(); + if (maxBJDID.Equals("")) + txtBJDID.Text = sYBJDID + "-01"; + else + txtBJDID.Text = sYBJDID + "-" + Convert.ToString(CMISproConvert.StrToFloat(maxBJDID.Substring(maxBJDID.LastIndexOf('-') + 1)) + 1).PadLeft(2, '0'); + } + else + { + txtBJDID.Text = sYBJDID + "-01"; + } + } + + double OldDOCGRPID = GetDOCGRPID(txtOLDBJDID2.Value); + if (OldDOCGRPID > 0) + { + HiddenField HiddenGRPID = ((HiddenField)CurMaster.FindControl("txtDOCGRPID")); + if (HiddenGRPID != null) + { + HiddenGRPID.Value = Convert.ToString(CopyAttach(OldDOCGRPID, 1)[0]); + } + } + + //规避ajaxGridView控件缺陷:复制报价单,重新选择价格表,报价单明细的表价没有及时更新,需要再重复选择一次价格表,报价单明细的表价才会更新。 + //DoAjaxGridView(); + if (PageParam.GetRTrimString("CopyFromList").Equals("Y")) + { + btnCopyEx_Click(null, null); + } + else + CanCopyMX.Value = "N";//复制、复制主记录默认都不复制明细 + string sHidJSLMList = XLBJDUtils.GetHidJSLMList(cbxBJFLID.SelectedValue.Trim(), IsXJY.Value.Equals("Y"), IsSJY.Value.Equals("Y"), IsHJY.Value.Equals("Y")); + LoadFJXX(true, "C", txtOLDBJDID2.Value, divFJXX, sHidJSLMList); + setFJXXControlState(divFJXX, true, txtOLDBJDID2.Value, true, ""); + + ClearFilterCtrl(); + if (!pzxx.XLXSBJPZ_BJDWQFZ.Equals("Y")) + { + if (XLBJDUtils.IsJGEJGB(cbxJGBID.SelectedValue.Trim())) + { + Dictionary dicTLJG = GetTLJByRQ(datBJRQ.Text, cbxBJFLID.SelectedValue.Trim(), chkJZBJHS.Checked, cbxJGBID.SelectedValue.Trim()); + txtTJ.Value = CMISproConvert.StrToFloat(dicTLJG["TJ"], 0); + txtLJ.Value = CMISproConvert.StrToFloat(dicTLJG["LJ"], 0); + } + } + string sBJU051 = GetOption(100860000, "BJU051"); + if (sBJU051 == "Y") + { + cbxBJFLID.SelectedValue = GetOption(100860000, "BJU019"); + } + } + + protected override bool Master_BeforeEditAction(object sender, EventArgs e) + { + string sHidJSLMList = XLBJDUtils.GetHidJSLMList(cbxBJFLID.SelectedValue.Trim(), IsXJY.Value.Equals("Y"), IsSJY.Value.Equals("Y"), IsHJY.Value.Equals("Y")); + LoadFJXX(true, "E", txtBJDID.Text, divFJXX, sHidJSLMList); + setFJXXControlState(divFJXX, true, txtBJDID.Text, true, ""); + + if (!base.Master_BeforeEditAction(sender, e)) + return false; + //规避ajaxGridView控件缺陷:点编辑重选付款期限,报价单明细的表价或付款期限因子没有及时更新,需要再重复选择一次,才会更新。 + //DoAjaxGridView(); + return true; + } + + protected override void OnNullRecorder() + { + base.OnNullRecorder(); + string sHidJSLMList = XLBJDUtils.GetHidJSLMList(cbxBJFLID.SelectedValue.Trim(), IsXJY.Value.Equals("Y"), IsSJY.Value.Equals("Y"), IsHJY.Value.Equals("Y")); + LoadFJXX(true, "", txtBJDID.Text, divFJXX, sHidJSLMList); + setFJXXControlState(divFJXX, false, txtBJDID.Text, false, ""); + } + + protected override void ReportRecordSetAdd() + { + base.ReportRecordSetAdd(); + sReportTag = "Y"; + } + + protected override bool Grid_BeforeHeaderMenuClick(object sender, AjaxGridViewMenuClickEventArgs e) + { + if (!base.Grid_BeforeHeaderMenuClick(sender, e)) + return false; + + //记录导出 不限制页数 + entity.XLXSBJDMX.curPageIndex = 0; + entity.XLXSBJDMX.curPageSize = 0; + entity.XLXSBJDMX.sXSSXFilter = txtXSSXFilter.Value; + entity.XLXSBJDMX.sXLXHIDFilter = txtXLXHIDFilter.Value; + entity.XLXSBJDMX.sXLGGIDFilter = txtXLGGIDFilter.Value; + entity.XLXSBJDMX.sXLBZIDFilter = txtXLBZIDFilter.Value; + entity.XLXSBJDMX.sDYDJIDFilter = txtDYDJIDFilter.Value; + entity.XLXSBJDMX.sXLYSIDFilter = txtXLYSIDFilter.Value; + entity.XLXSBJDMX.sBJCPFilter = txtBJCPFilter.Value; + entity.XLXSBJDMX.sCPMLFilter = txtCPMLFilter.Value; + entity.XLXSBJDMX.sZHCPMLFilter = txtZHCPMLFilter.Value; + entity.XLXSBJDMX.sJGBBJFilter = txtJGBBJFilter.Value; + entity.XLXSBJDMX.sZDXJJCLFilter = txtZDXJJCLFilter.Value; + entity.XLXSBJDMX.sBZFilter = txtBZFilter.Value; + entity.XLXSBJDMX.sBZBJDIDFilter = PageParam.GetRTrimString("BZBJDID"); + entity.XLXSBJDMX.sCPCFXLBZ = PageParam.GetRTrimString("CPCFXLBZ"); + entity.XLXSBJDMX.BJDID = txtBJDID.Text.Trim(); + entity.XLXSBJDMX.sXSYZJEFilter = txtXSJEYZ.Text.Trim(); + + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + sql = entity.XLXSBJDMX.SetQuerySql(); + DataSet dsBJDMX = dberp.OpenDataSet(sql); + if (dsBJDMX.Tables.Count > 0) + { + if (dsBJDMX.Tables[0].Rows.Count > ExcelUtils.ExportRecords) + { + ShowMessage("记录数大于" + ExcelUtils.ExportRecords + "条,不允许导出!"); + return false; + } + + HiddenField txtMasterBDOTabLMSZ = (HiddenField)CurMaster.FindControl("txtCustomize"); + //HiddenField txtDefVisible = (HiddenField)CurMaster.FindControl("txtDefVisible"); + string sGridID = ""; + Dictionary> ColumnDef = JavaScriptConvert.DeserializeObject>>(txtMasterBDOTabLMSZ.Value); + foreach (string key in ColumnDef.Keys) + { + if (!key.Trim().Equals("")) + { + sGridID = key; + break; + } + } + List> ColumnList = JavaScriptConvert.DeserializeObject>>(ColumnDef[sGridID]["V"]); + string columnOutField = ""; + string columnOutCaption = ""; + string columnOutWidth = ""; + for (int i = 0; i < ColumnList.Count; i++) + { + if (ColumnList[i]["V"].Equals("Y"))//栏目可见 + { + if (columnOutField.Equals("")) + columnOutField = ColumnList[i]["F"].Trim(); + else + columnOutField += "#@#" + ColumnList[i]["F"].Trim(); + + if (columnOutCaption.Equals("")) + columnOutCaption = ColumnList[i]["C"].Trim(); + else + columnOutCaption += "#@#" + ColumnList[i]["C"].Trim(); + + if (columnOutWidth.Equals("")) + columnOutWidth = ColumnList[i]["W"].Trim(); + else + columnOutWidth += "#@#" + ColumnList[i]["W"].Trim(); + } + } + + DataView dv = new DataView(dsBJDMX.Tables[0], "", "XLXSBJDMX_XSSX,XLXSBJDMX_XH", DataViewRowState.CurrentRows); + string[] outColumnFields = Regex.Split(columnOutField, "#@#", RegexOptions.IgnoreCase); + string[] outColumnCaptions = Regex.Split(columnOutCaption, "#@#", RegexOptions.IgnoreCase); + string[] outColumnWidths = Regex.Split(columnOutWidth, "#@#", RegexOptions.IgnoreCase); + DataTable dt = dv.ToTable("Sheet1", false, outColumnFields); + DataSet dsOut = new DataSet(); + dsOut.Tables.Add(dt); + DataRow HJrow = dt.NewRow(); + + //屏蔽标准ID、颜色ID + int XLBZIDColIndex = -1; + int XLYSIDColIndex = -1; + bool bflag = false; + bool bBJSL = false; + bool bBJJE = false; + for (int i = 0; i < outColumnFields.Length; i++) + { + if (outColumnFields[i].Equals("XLXSBJDMX_XLBZID")) + { + XLBZIDColIndex = i; + bflag = true; + } + else if (outColumnFields[i].Equals("XLXSBJDMX_XLYSID")) + { + XLYSIDColIndex = i; + bflag = true; + } + if (outColumnFields[i].Equals("XLXSBJDMX_BJSL")) + bBJSL = true; + if (outColumnFields[i].Equals("XLXSBJDMX_BJJE")) + bBJJE = true; + } + double dHJSL = 0; + double dHJJE = 0; + if (bflag) + { + for (int i = 0; i < dsOut.Tables[0].Rows.Count; i++) + { + if (bBJSL) + { + double dTSL = CMISproConvert.StrToFloat(dsOut.Tables[0].Rows[i]["XLXSBJDMX_BJSL"].ToString().Trim()); + dHJSL += dTSL; + } + if (bBJJE) + { + double dTJE = CMISproConvert.StrToFloat(dsOut.Tables[0].Rows[i]["XLXSBJDMX_BJJE"].ToString().Trim()); + dHJJE += dTJE; + } + if (XLBZIDColIndex > -1) + { + string tmpXLBZID = dsOut.Tables[0].Rows[i][XLBZIDColIndex].ToString().Trim(); + if (tmpXLBZID.Contains("|")) + { + if (tmpXLBZID.Substring(tmpXLBZID.IndexOf("|")) != "|") + dsOut.Tables[0].Rows[i][XLBZIDColIndex] = tmpXLBZID.Substring(tmpXLBZID.IndexOf("|") + 1); + } + } + if (XLYSIDColIndex > -1) + { + string tmpXLYSID = dsOut.Tables[0].Rows[i][XLYSIDColIndex].ToString().Trim(); + if (tmpXLYSID.Contains("|")) + { + if (tmpXLYSID.Substring(tmpXLYSID.IndexOf("|")) != "|") + dsOut.Tables[0].Rows[i][XLYSIDColIndex] = tmpXLYSID.Substring(tmpXLYSID.IndexOf("|") + 1); + } + } + } + } + if (bBJSL) + { + HJrow["XLXSBJDMX_BJSL"] = dHJSL.ToString().Trim(); + } + if (bBJJE) + { + HJrow["XLXSBJDMX_BJJE"] = dHJJE.ToString().Trim(); + } + if ((bBJSL || bBJJE) && dsBJDMX.Tables[0].Rows.Count < ExcelUtils.ExportRecords) + { + dsOut.Tables[0].Rows.Add(HJrow); + } + NpoiSheetData sd = new NpoiSheetData(); + sd.ColumnStyle = new System.Collections.Generic.Dictionary(); + sd.ColumnType = new System.Collections.Generic.Dictionary(); + for (int i = 0; i < dsOut.Tables[0].Columns.Count; i++) + { + dsOut.Tables[0].Columns[i].Caption = outColumnCaptions[i]; + + string sColRef = TExcelData.ColIndexToReference(i);//A列、B列、C列、… + string sColumnName = dsOut.Tables[0].Columns[i].ColumnName; + gtAjaxGridViewColumn gvCol = grdXLBJDMX.FindColumnByFieldName(sColumnName); + + NpoiColumnStyle ct = new NpoiColumnStyle(); + + //if (sColumnName.Equals("XLXSBJDMX_XLGGID")) + //{ + // ct.DataFormat = "@";//规格列显示为文本 + // ct.ColWidth = gvCol.Width.Value; + // sd.ColumnStyle.Add(sColRef, ct); + //} + + if (gvCol.EditType == TEditType.etNumber) + { + sd.ColumnType.Add(sColRef, NpoiColumnType.Double); + + if (gvCol.NumberDecimalPlace == 0) + { + ct.DataFormat = "#,##0;-#,##0;#"; + } + else + { + string sDecimalZero = "0"; + sDecimalZero = sDecimalZero.PadLeft(gvCol.NumberDecimalPlace, '0'); + ct.DataFormat = string.Format("#,##0.{0};-#,##0.{0};#", sDecimalZero);//比如"#,##0.00;-#,##0.00;#"代表两位小数 + } + ct.ColWidth = CMISproConvert.StrToFloat(outColumnWidths[i], gvCol.Width.Value); + sd.ColumnStyle.Add(sColRef, ct); + } + else + { + ct.ColWidth = CMISproConvert.StrToFloat(outColumnWidths[i], gvCol.Width.Value); + sd.ColumnStyle.Add(sColRef, ct); + } + + } + string sFileName = "线缆销售报价单 " + txtBJDID.Text.Trim().Replace("/", "-").Replace("\\", "-").Replace(":", "-").Replace("?", "-").Replace("*", "-").Replace("\"", "-").Replace("|", "-"); + string Ti = CurSession.UserId.Trim() + Guid.NewGuid().ToString(); + string m_tmpFilePath = FileService.CombineTempPath(Ti + sFileName + ".xls"); + string smessage = ""; + TExcelData.CreateExcel_NPOI(m_tmpFilePath, dsOut, true, null, sd, ref smessage); + if (smessage.Equals("")) + { + System.IO.FileInfo file = new System.IO.FileInfo(m_tmpFilePath); + string URL = Page.ResolveClientUrl("~") + "/N_MODEL/Dialog/TempFileDownload.ashx?TempFileName=" + file.Name + "&FileName=" + sFileName + file.Extension; + string jsript = @"var JLDCDiv = document.createElement('div');JLDCDiv.style.width=0;JLDCDiv.style.height=0;JLDCDiv.id = 'DivifrDownLoad';" + + " var ele=document.documentElement||document.body;ele.appendChild(JLDCDiv);var iJLDCfrm = document.createElement('iframe');iJLDCfrm.id = 'iJLDCfrmDownLoad';iJLDCfrm.src = '" + URL + "';" + + "iJLDCfrm.style.width = 0;iJLDCfrm.style.height = 0; JLDCDiv.appendChild(iJLDCfrm);"; + AjaxRunScript("JLDC_EX", jsript); + } + else + { + ShowMessage(smessage); + } + } + + return false; + } + + protected override void Grid_OnHeaderMenuClick(object sender, AjaxGridViewMenuClickEventArgs e) + { + base.Grid_OnHeaderMenuClick(sender, e); + //sHeaderMenuTag = "Y"; + } + + protected override void InitQueryString() + { + if (!IsPostBack) + { + if (!string.IsNullOrEmpty(PageParam.GetRTrimString("WFID")) && !string.IsNullOrEmpty(PageParam.GetRTrimString("WFINST"))) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + sql.Add("select XLXSBJD_BJDID from XLXSBJD where XLXSBJD_WFID=:XLXSBJD_WFID and XLXSBJD_WFINST=:XLXSBJD_WFINST"); + sql.ParamByName("XLXSBJD_WFID").Value = PageParam.GetRTrimString("WFID"); + sql.ParamByName("XLXSBJD_WFINST").Value = PageParam.GetRTrimString("WFINST"); + DataSet ds = dberp.OpenDataSet(sql); + if (ds.Tables[0].Rows.Count > 0) + { + entity.BJDID = ds.Tables[0].Rows[0][0].ToString().Trim(); + } + } + else + { + if (string.IsNullOrEmpty(PageParam.GetRTrimString("XLXSBJD_BJDID"))) + { + entity.BJDID = ""; + } + else + { + entity.BJDID = PageParam.GetRTrimString("XLXSBJD_BJDID"); + } + } + } + else + { + entity.BJDID = this.txtBJDID.Text.Trim(); + } + + //分页模式下,传入页数和每页显示数,用于控制明细查询结果 + if (sReportTag.Equals("N")) + { + //if (sHeaderMenuTag.Equals("N")) + //{ + // entity.XLXSBJDMX.curPageIndex = pgBar.CurrentPageIndex; + // entity.XLXSBJDMX.curPageSize = pgBar.PageSize; + //} + entity.XLXSBJDMX.curPageIndex = pgBar.CurrentPageIndex; + entity.XLXSBJDMX.curPageSize = pgBar.PageSize; + + entity.XLXSBJDMX.sXSSXFilter = txtXSSXFilter.Value; + entity.XLXSBJDMX.sXLXHIDFilter = txtXLXHIDFilter.Value; + entity.XLXSBJDMX.sXLGGIDFilter = txtXLGGIDFilter.Value; + entity.XLXSBJDMX.sXLBZIDFilter = txtXLBZIDFilter.Value; + entity.XLXSBJDMX.sDYDJIDFilter = txtDYDJIDFilter.Value; + entity.XLXSBJDMX.sXLYSIDFilter = txtXLYSIDFilter.Value; + entity.XLXSBJDMX.sBJCPFilter = txtBJCPFilter.Value; + entity.XLXSBJDMX.sCPMLFilter = txtCPMLFilter.Value; + entity.XLXSBJDMX.sZHCPMLFilter = txtZHCPMLFilter.Value; + entity.XLXSBJDMX.sJGBBJFilter = txtJGBBJFilter.Value; + entity.XLXSBJDMX.sZDXJJCLFilter = txtZDXJJCLFilter.Value; + entity.XLXSBJDMX.sBZFilter = txtBZFilter.Value; + entity.XLXSBJDMX.sBZBJDIDFilter = PageParam.GetRTrimString("BZBJDID"); + entity.XLXSBJDMX.sCPCFXLBZ = PageParam.GetRTrimString("CPCFXLBZ"); + entity.XLXSBJDMX.sXSYZJEFilter = txtXSJEYZ.Text.Trim(); + } + + sReportTag = "N";//重置标记 + //sHeaderMenuTag = "N"; + + base.InitQueryString(); + } + + private string GetDetailPrimaryKey(string sBJDID, string sXH) + { + return (sBJDID ?? string.Empty).Trim() + "\t" + (sXH ?? string.Empty).Trim(); + } + + private string GetDetailFieldValue(string value) + { + string result = (value ?? string.Empty).Trim(); + int separatorIndex = result.IndexOf('|'); + if (separatorIndex >= 0) + result = result.Substring(0, separatorIndex).Trim(); + return result; + } + + private List GetChangedDetailKeyFieldMessages() + { + List changedMessages = new List(); + if (ControlState != TControlState.ctsEdit) + return changedMessages; + + string sBJDID = txtBJDID.Text.Trim(); + if (sBJDID.Equals("")) + return changedMessages; + + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Add("select XLXSBJDMX_BJDID,XLXSBJDMX_XH,XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID,XLXSBJDMX_XLBZID,XLXSBJDMX_DYDJID "); + SQL.Add(" from XLXSBJDMX "); + SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID "); + SQL.ParamByName("pBJDID").Value = sBJDID; + DataSet dsOldDetails = dberp.OpenDataSet(SQL); + + Dictionary oldDetails = new Dictionary(); + foreach (DataRow oldRow in dsOldDetails.Tables[0].Rows) + { + string oldKey = GetDetailPrimaryKey(oldRow["XLXSBJDMX_BJDID"].ToString(), oldRow["XLXSBJDMX_XH"].ToString()); + if (!oldDetails.ContainsKey(oldKey)) + oldDetails.Add(oldKey, oldRow); + } + + foreach (GridViewRow row in grdXLBJDMX.NewRows) + { + string editAction = row.Attributes["EditAction"]; + if (editAction != null && (editAction.Equals("A") || editAction.Equals("D"))) + continue; + + string rowBJDID = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_BJDID", row).Trim(); + if (rowBJDID.Equals("")) + rowBJDID = sBJDID; + string sXH = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XH", row).Trim(); + + DataRow oldRow; + if (!oldDetails.TryGetValue(GetDetailPrimaryKey(rowBJDID, sXH), out oldRow)) + continue; + + List changedFields = new List(); + if (!GetDetailFieldValue(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XLXHID", row)).Equals(GetDetailFieldValue(oldRow["XLXSBJDMX_XLXHID"].ToString()))) + changedFields.Add("型号"); + if (!GetDetailFieldValue(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XLGGID", row)).Equals(GetDetailFieldValue(oldRow["XLXSBJDMX_XLGGID"].ToString()))) + changedFields.Add("规格"); + if (!GetDetailFieldValue(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XLBZID", row)).Equals(GetDetailFieldValue(oldRow["XLXSBJDMX_XLBZID"].ToString()))) + changedFields.Add("标准"); + if (!GetDetailFieldValue(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_DYDJID", row)).Equals(GetDetailFieldValue(oldRow["XLXSBJDMX_DYDJID"].ToString()))) + changedFields.Add("电压等级"); + string sXSXH = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XSSX", row).Trim(); + if (changedFields.Count > 0) + changedMessages.Add("显示序号【" + sXSXH + "】修改了:" + string.Join("、", changedFields.ToArray())); + } + + return changedMessages; + } + + protected override bool Master_BeforeSaveAction(object sender, EventArgs e) + { + if (GetOption(100860000, "BJU070").Trim() == "Y") + { + string sTXY = cbxTXYMC.Text.Trim(); + if (sTXY.Contains("|")) + { + sTXY = sTXY.Split('|')[0]; + } + + if (cbxTXY.Items.FindByValue(sTXY) == null && !string.IsNullOrEmpty(sTXY)) + { + cbxTXY.Items.Add(new ListItem(sTXY, sTXY)); + } + cbxTXY.SelectedValue = sTXY; + } + + //项目所在地---如果只维护了省、没有选择市,则XLXSBJD_XZQHID应记录下省的区划代码 + if (!cbxKHSZDCOUNTY.SelectedValue.Trim().Equals("")) + { + txtXZQHID.Value = cbxKHSZDCOUNTY.SelectedValue.Trim(); + } + else if (!cbxKHSZDCITY.SelectedValue.Trim().Equals("")) + { + txtXZQHID.Value = cbxKHSZDCITY.SelectedValue.Trim(); + } + else if (!cbxKHSZDPRO.SelectedValue.Trim().Equals("")) + { + txtXZQHID.Value = cbxKHSZDPRO.SelectedValue.Trim(); + } + else + { + txtXZQHID.Value = ""; + } + + if (ControlState == TControlState.ctsInsert || ControlState == TControlState.ctsCopy) + { + if (txtBJDID.Text.Trim().Equals("")) + { + string sError=string.Empty; + string sBJDID = string.Empty; + XLBJDUtils.GetBJDID(txtXZQHID.Value.Trim(), cbxBJFLID.SelectedValue.Trim(), cbxSYDWID.SelectedValue.Trim(),100860000,txtTJ.Value,ref sBJDID,ref sError); + if (!string.IsNullOrEmpty(sError)) + { + ShowMessage(sError); + return false; + } + txtBJDID.Text = sBJDID; + } + + txtSQR.Value = CurSession.UserName; + txtSQRGH.Value = CurSession.UserId; + txtSQRID.Value = CurSession.RYID; + txtSQRQ.Value = DateTime.Now.ToString().Trim(); + + if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select top 1 XLXSBJFLBJRHQCL_BJCLID from XLXSBJFLBJRHQCL where XLXSBJFLBJRHQCL_BJFLID='{0}'", cbxBJFLID.SelectedValue.Trim()))) + { + txtCLHQJGBID.Value = "ZZZZZZZZ"; + } + else + { + txtCLHQJGBID.Value = cbxJGBID.SelectedValue.Trim(); + } + } + + this.txtWHR.Text = CurSession.UserName.Trim(); + this.txtWHRID.Value = CurSession.UserId.Trim(); + datWHSJ.Value = CMISproConvert.ConvertTime(System.DateTime.Now.ToString()); + entity.BJDID = this.txtBJDID.Text; + if (cbxFKQXNR.Visible == false) + { + cbxFKQXNR.SelectedValue = ""; + } + else + { + txtFKQXNR.Text = cbxFKQXNR.SelectedValue; + } + if (cbxPJLX.Visible == false) + { + cbxPJLX.SelectedValue = ""; + } + if (!txtTJ.Visible) + { + txtTJ.Value = 0; + } + if (!txtLJ.Visible) + { + txtLJ.Value = 0; + } + + + //int maxXH = CMISproDataBase.GetMaxXH("DBERP", "XLXSBJDMX", "XLXSBJDMX_XH", "XLXSBJDMX_BJDID = '" + txtBJDID.Text + "'") + 1; + + //分页模式下,显示序号需手动赋值 + int maxXSSX = pgBar.PageSize * (pgBar.CurrentPageIndex - 1) + 1; + + grdXLBJDMX.BeginUpdate(); + string[] sBJDYZ = txtBJDYZ.Text.Trim().Split(','); + foreach (GridViewRow row in grdXLBJDMX.NewRows) + { + //复制保存时,所有记录的XLXSBJDMX_XH都重新编码,否则会出现新增的明细与复制过来的明细序号重复的问题 + //if (ControlState == TControlState.ctsCopy) + //{ + // if (!row.Attributes["EditAction"].Equals("D")) + // { + // grdXLBJDMX.EditRow(row, "XLXSBJDMX_XH", Convert.ToString(maxXH++)); + // } + //} + //else//其他情况下,只给新增的明细XLXSBJDMX_XH复制 + //{ + // if (row.Attributes["EditAction"].Equals("A")) + // { + // grdXLBJDMX.EditRow(row, "XLXSBJDMX_XH", Convert.ToString(maxXH++)); + // } + //} + + if (!row.Attributes["EditAction"].Equals("D")) + { + //保存时,清空报价分类没使用的因子的值 + for (int i = 0; i < grdXLBJDMX.Columns.Count; i++) + { + if (grdXLBJDMX.Columns[i].DataField.StartsWith("TZYZ_")) + { + for (int j = 0; j < sBJDYZ.Length; j++) + { + if (grdXLBJDMX.Columns[i].DataField.Equals("TZYZ_" + sBJDYZ[j].Split('|')[0]) && sBJDYZ[j].EndsWith("()")) + grdXLBJDMX.EditRow(row, grdXLBJDMX.Columns[i].DataField, "0"); + } + } + } + } + + //分页模式下,显示序号需手动赋值 + if (!IsFilterState())//如果处于行过滤状态下,则显示序号不进行自动处理,而是按最大号+1保存 + { + if (!row.Attributes["EditAction"].Equals("D") && maxXSSX > 0) + { + grdXLBJDMX.EditRow(row, "XLXSBJDMX_XSSX", Convert.ToString(maxXSSX++)); + } + } + } + + if(txtKHID.Visible) + { + txtHidKHID.Value = txtKHID.Text.Trim(); + } + else + { + txtHidKHID.Value = cbxKHID.SelectedValue.Trim(); + } + grdXLBJDMX.EndUpdate(); + State = ControlState; + if (CMISproDataBase.ExistsRecord("DBERP", "select 1 from XLXSBJPZ where XLXSBJPZ_MDID=100860000 and isnull(XLXSBJPZ_BJCSJYLM,' ')<>' ' ")) + { + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); + string sTZQCPBJGS = XLBJDUtils.GetTZQCPBJGS(cbxBJFLID.SelectedValue.Trim()); + Dictionary dicTJYZID = XLBJDUtils.GetTJYZIDXX("BJD");//获取YZID对应的TJYZID + Dictionary dicTYZZYZID = XLBJDUtils.GetTYZZYZIDXX("BJD");//获取YZID对应的TYZZYZID + string sCPBJMRXSWS = bjflxx.XLXSBJFL_CPBJMRXSWS.Trim(); + foreach (GridViewRow row in grdXLBJDMX.NewRows) + { + string sXH = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XH", row).Trim(); + string sXSSX = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XSSX", row).Trim(); + string sorYZZ01 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ01", row).Trim(); + string sorYZZ02 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ02", row).Trim(); + string sorYZZ03 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ03", row).Trim(); + string sorYZZ04 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ04", row).Trim(); + string sorYZZ05 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ05", row).Trim(); + string sorYZZ06 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ06", row).Trim(); + string sorYZZ07 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ07", row).Trim(); + string sorYZZ08 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ08", row).Trim(); + string sorYZZ09 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ09", row).Trim(); + string sorYZZ10 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ10", row).Trim(); + string sorYZZ11 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ11", row).Trim(); + string sorYZZ12 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ12", row).Trim(); + string sorYZZ13 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ13", row).Trim(); + string sorYZZ14 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ14", row).Trim(); + string sorYZZ15 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ15", row).Trim(); + string sorYZZ16 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ16", row).Trim(); + string sorYZZ17 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ17", row).Trim(); + string sorYZZ18 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ18", row).Trim(); + string sorYZZ19 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ19", row).Trim(); + string sorYZZ20 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ20", row).Trim(); + string sorTZZDXJ = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_TZZDXJ", row).Trim(); + double dOLD_CPBJ = CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_CPBJ", row), 0); + double dBJSL = CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_BJSL", row), 0); + double dBJJE = CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_BJJE", row), 0); + string sBJLY = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_BJTJCZ", row).Trim(); + double dTZJG = CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_TZCPBJ", row), 0); + + if (Math.Abs(NumberUtils.RoundX(dOLD_CPBJ * dBJSL, 2) - NumberUtils.RoundX(dBJJE, 2)) > 0.01) + { + if (CMISproDataBase.ExistsRecord("DBERP", "select 1 from XLXSBJPZ where XLXSBJPZ_MDID=100860000 and isnull(XLXSBJPZ_BJCSJYLM,' ') like '%报价数量%' ")) + { + InsBJCSYCRZ(txtBJDID.Text.Trim(), CMISproConvert.StrToFloat(sXH), "报价金额和报价*报价数量计算结果不一致"); + ShowMessage("显示顺序【" + sXSSX + "】的明细报价金额和报价*报价数量计算结果不一致,请重新检查!"); + return false; + } + } + + if (sBJLY == "SSBJ") + continue; + Dictionary dicChangedField = new Dictionary(); + double dCPBJ = 0.0; + string sXSJEYZ = txtXSJEYZ.Text.Trim(); + double dJGBBJ = CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_JGBBJ", row), 0); + if (!sTZQCPBJGS.Equals("")) + { + dCPBJ = XLBJDUtils.GetTZQCPBJ(dJGBBJ.ToString(), sorYZZ01, sorYZZ02, sorYZZ03, sorYZZ04, sorYZZ05, sorYZZ06, sorYZZ07, sorYZZ08, sorYZZ09, sorYZZ10, sorYZZ11, sorYZZ12, sorYZZ13, sorYZZ14, sorYZZ15, sorYZZ16, sorYZZ17, sorYZZ18, sorYZZ19, sorYZZ20, dicChangedField, sTZQCPBJGS, sorTZZDXJ); + } + else + { + if (dJGBBJ != 0) + { + Dictionary dicTJYZIDValue = new Dictionary(); + Dictionary dicTYZZYZIDValue = new Dictionary(); + + //将因子纳入dicTYZZYZIDValue + for (int i = sConColumnsCount; i < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) + { + string sFieldName = grdXLBJDMX.Columns[i].DataField; + string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); + + if (dicValueContained(dicTYZZYZID, sFieldName.Substring(5))) + { + if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5)))//此处无需考虑因子最小值限制 + dicTYZZYZIDValue.Add(sFieldName.Substring(5), CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName(sFieldName, row), 0)); + else + dicTYZZYZIDValue[sFieldName.Substring(5)] += CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName(sFieldName, row), 0); + } + + + string sYZID = sFieldName.Replace("TZYZ_", ""); + if (sXSJEYZ.Contains(sYZID)) + i++; + } + + //将因子纳入dicTJYZIDValue + for (int i = sConColumnsCount; i < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) + { + string sFieldName = grdXLBJDMX.Columns[i].DataField; + string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); + + string tmpTJYZID = dicTJYZID[sFieldName.Substring(5)]; + double tmpYZZ = CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName(sFieldName, row), 0); + string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; + if (!tmpTYZZYZID.Equals("")) + { + tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); + } + if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) + { + if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) + { + //此处无需考虑因子最小值限制 + dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); + } + else + { + dicTJYZIDValue[tmpTJYZID] += tmpYZZ; + } + } + + string sYZID = sFieldName.Replace("TZYZ_", ""); + if (sXSJEYZ.Contains(sYZID)) + i++; + } + //true表示先加价 + bool JJFirst = XLBJDUtils.JJFirst_BJDYZ(cbxBJFLID.SelectedValue.Trim()); + + dCPBJ = dJGBBJ; + + double dTZYZ_JJ = 0; + for (int i = sConColumnsCount; i < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) + { + string sFieldName = grdXLBJDMX.Columns[i].DataField; + string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); + + if (txtBJDYZ.Text.Contains(sFieldName.Substring(5) + "|" + sColName + "(JJ)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) + dTZYZ_JJ += dicTJYZIDValue[sFieldName.Substring(5)]; + } + + string sYZID = sFieldName.Replace("TZYZ_", ""); + if (sXSJEYZ.Contains(sYZID)) + i++; + } + if (JJFirst) + { + dCPBJ = dCPBJ + dTZYZ_JJ; + } + for (int i = sConColumnsCount; i < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) + { + string sFieldName = grdXLBJDMX.Columns[i].DataField; + string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); + + if (txtBJDYZ.Text.Contains(sFieldName.Substring(5) + "|" + sColName + "(JD)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) + dCPBJ = dCPBJ * (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); + } + else if (txtBJDYZ.Text.Contains(sFieldName.Substring(5) + "|" + sColName + "(KD)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) + dCPBJ = dCPBJ / (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); + } + else if (txtBJDYZ.Text.Contains(sFieldName.Substring(5) + "|" + sColName + "(DD)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) + dCPBJ = dCPBJ / (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); + } + else if (txtBJDYZ.Text.Contains(sFieldName.Substring(5) + "|" + sColName + "(MD)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) + dCPBJ = dCPBJ * (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); + } + else if (txtBJDYZ.Text.Contains(sFieldName.Substring(5) + "|" + sColName + "(MP)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) + dCPBJ = dCPBJ * (dicTJYZIDValue[sFieldName.Substring(5)] / 100); + + } + //MX乘以/DX除以-系数 + else if (txtBJDYZ.Text.Contains(sFieldName.Substring(5) + "|" + sColName + "(MX)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) + dCPBJ = dCPBJ * (dicTJYZIDValue[sFieldName.Substring(5)]); + + } + else if (txtBJDYZ.Text.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 (txtBJDYZ.Text.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); + } + } + + string sYZID = sFieldName.Replace("TZYZ_", ""); + if (sXSJEYZ.Contains(sYZID)) + i++; + } + if (!JJFirst) + { + dCPBJ = dCPBJ + dTZYZ_JJ; + } + } + } + string sBTYZ = txtBTYZ.Text.Trim(); + if (!sBTYZ.Equals("")) + { + foreach (string stBTYZ in sBTYZ.Split(',')) + { + double dYZZ = CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName("TZYZ_" + stBTYZ, row).Trim(), 0); + if (dYZZ == 0) + { + dCPBJ = Math.Abs(dCPBJ) * 0; + break; + } + } + } + dCPBJ = XLBJDUtils.RoundSZ(dCPBJ, (CMISproConvert.StrToInt(sCPBJMRXSWS) < iXSWS ? CMISproConvert.StrToInt(sCPBJMRXSWS) : iXSWS));//保留精度高的 + dCPBJ = XLBJDUtils.RoundSZ(dCPBJ * (1 + dTZJG / 100), 2); + if (dCPBJ != 0 && Math.Abs(XLBJDUtils.RoundSZ(dOLD_CPBJ,2) - dCPBJ) > 0.01) + { + if (CMISproDataBase.ExistsRecord("DBERP", "select 1 from XLXSBJPZ where XLXSBJPZ_MDID=100860000 and isnull(XLXSBJPZ_BJCSJYLM,' ') like '%调价因子%' ")) + { + InsBJCSYCRZ(txtBJDID.Text.Trim(), CMISproConvert.StrToFloat(sXH), "报价和表价*上点系数计算结果不一致"); + ShowMessage("显示顺序【" + sXSSX + "】的明细报价和表价*上点系数计算结果不一致,请重新检查!"); + return false; + } + + } + + } + + } + + if (GetOption(100860000, "BJU076").Equals("Y")) + { + List errorMessages = new List(); + foreach (GridViewRow row in grdXLBJDMX.NewRows) + { + if (row.Attributes["EditAction"] != null && row.Attributes["EditAction"].Equals("D")) + continue; + + string sXSSX = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XSSX", row).Trim(); + string sXH = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XLXHID", row).Trim(); + string sGG = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XLGGID", row).Trim(); + string sDYDJ = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_DYDJID", row).Trim(); + string sBJCP = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_BJCP", row).Trim(); + + string sEXPBJCP; + if (!string.IsNullOrEmpty(sDYDJ)) + sEXPBJCP = sXH + "-" + sDYDJ + " " + sGG; + else + sEXPBJCP = sXH + " " + sGG; + + if (sBJCP != sEXPBJCP) + { + string errMsg = "显示顺序【" + sXSSX + "】的报价产品与型号、规格、电压等级不一致!"; + errorMessages.Add(errMsg); + } + } + if (errorMessages.Count > 0) + { + ShowMessage("请核对:\n" + string.Join("\n", errorMessages.ToArray())); + } + } + if (GetOption(100860000, "BJU078").Equals("Y")) + { + List changedDetailMessages = GetChangedDetailKeyFieldMessages(); + if (changedDetailMessages.Count > 0) + { + ShowMessage("以下明细中的型号、规格、电压、标准已调整:\n" + string.Join("\n", changedDetailMessages.ToArray())); + } + + } + + return base.Master_BeforeSaveAction(sender, e); + } + + protected override bool Master_AfterSaveAction(object sender, EventArgs e) + { + txtTXYold.Value = cbxTXY.SelectedValue.Trim(); + txtTXY.Text = cbxTXY.SelectedValue.Trim(); + + if (State != TControlState.ctsEdit) + { + txtWFID.Value = _CurWorkFlow.WFID; + txtWFINST.Value = _CurWorkFlow.WFInst.ToString(); + txtWPID.Value = _CurWorkFlow.WPID; + } + txtLCZT.Text = _CurWorkFlow.GetWPName(txtWFID.Value.Trim(), txtWPID.Value.Trim()); + + //分页模式下,处理显示序号 + int iCountMX = 0; + if (!IsFilterState())//如果处于行过滤状态下,则显示序号不进行自动处理,而是按最大号+1保存 + { + iCountMX = SetXssxAfterSave(txtBJDID.Text.Trim()); + } + string sLogicValid = txtLogicValid.Value.Trim(); + txtLogicValid.Value = ""; + + string sOldBJFLID = ""; + string sOldJGBID = ""; + + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add("select XLXSBJD_BJFLID,XLXSBJD_SYDWID,XLXSBJD_FKQXNR,XLXSBJD_PJLX,");//与调价因子相关 + SQL.Add(" XLXSBJD_BJRQ,XLXSBJD_JGBID,XLXSBJD_TJ,XLXSBJD_LJ,");//与价格相关 + SQL.Add(" XLXSBJD_BJSM,XLXSBJD_SQRGH "); + SQL.Add(" from XLXSBJD"); + SQL.Add(" where XLXSBJD_BJDID=:pOLDBJDID"); + SQL.ParamByName("pOLDBJDID").Value = txtOLDBJDID2.Value; + DataSet dsOLDBJD = dberp.OpenDataSet(SQL); + if (dsOLDBJD.Tables[0].Rows.Count > 0) + { + sOldBJFLID = dsOLDBJD.Tables[0].Rows[0]["XLXSBJD_BJFLID"].ToString().Trim(); + sOldJGBID = dsOLDBJD.Tables[0].Rows[0]["XLXSBJD_JGBID"].ToString().Trim(); + } + string sErrMsg = "";//注:sErrMsg不为空就会抛出异常 + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); + XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860000); + try + { + dberp.BeginTrans(); + //完全复制报价单 + bool bWQFZ = false; + if (!sOldBJFLID.Equals("") && !sOldBJFLID.Equals("") && cbxBJFLID.SelectedValue.Trim().Equals(sOldBJFLID) && cbxJGBID.SelectedValue.Trim().Equals(sOldJGBID) && ctrlState.Value.Equals("C") + && pzxx.XLXSBJPZ_BJDWQFZ.Equals("Y")) + { + bWQFZ = true; + } + + + if (ctrlState.Value.Equals("I") || ctrlState.Value.Equals("C")) + { + if (ctrlState.Value.Equals("C") && bWQFZ) + { + + SQL.Clear(); + SQL.Add("insert into XLXSBJDCLHQ(XLXSBJDCLHQ_BJDID,XLXSBJDCLHQ_BJCLID,XLXSBJDCLHQ_WSJG,XLXSBJDCLHQ_HSJG,XLXSBJDCLHQ_WSJGF,XLXSBJDCLHQ_HSJGF,"); + SQL.Add(" XLXSBJDCLHQ_JGYBJCLID1,XLXSBJDCLHQ_WSJG1,XLXSBJDCLHQ_HSJG1,XLXSBJDCLHQ_JGBL1, "); + SQL.Add(" XLXSBJDCLHQ_WHR,XLXSBJDCLHQ_WHRID,XLXSBJDCLHQ_WHSJ)"); + SQL.Add(" select :pBJDID, XLXSBJDCLHQ_BJCLID,XLXSBJDCLHQ_WSJG,XLXSBJDCLHQ_HSJG,XLXSBJDCLHQ_WSJGF,XLXSBJDCLHQ_HSJGF,"); + SQL.Add(" XLXSBJDCLHQ_JGYBJCLID1,XLXSBJDCLHQ_WSJG1,XLXSBJDCLHQ_HSJG1,XLXSBJDCLHQ_JGBL1,"); + SQL.Add(" :pWHR,:pWHRID,:pWHSJ "); + SQL.Add(" from XLXSBJDCLHQ"); + SQL.Add(" where XLXSBJDCLHQ_BJDID= :pOldBJDID "); + SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); + SQL.ParamByName("pOldBJDID").Value = txtOLDBJDID2.Value; + SQL.ParamByName("pWHR").Value = CurSession.UserName; + SQL.ParamByName("pWHRID").Value = CurSession.UserId; + SQL.ParamByName("pWHSJ").Value = DateTime.Now; + dberp.ExecSQL(SQL); + + SQL.Clear(); + SQL.Add("insert into XLXSBJDWLHQ(XLXSBJDWLHQ_BJDID,XLXSBJDWLHQ_WLID,XLXSBJDWLHQ_WSJG,XLXSBJDWLHQ_HSJG,XLXSBJDWLHQ_WSJGF,XLXSBJDWLHQ_HSJGF,"); + SQL.Add(" XLXSBJDWLHQ_JGYBJCLID1,XLXSBJDWLHQ_WSJG1,XLXSBJDWLHQ_HSJG1,XLXSBJDWLHQ_JGBL1,"); + SQL.Add(" XLXSBJDWLHQ_WHR,XLXSBJDWLHQ_WHRID,XLXSBJDWLHQ_WHSJ)"); + SQL.Add(" select :pBJDID, XLXSBJDWLHQ_WLID,XLXSBJDWLHQ_WSJG,XLXSBJDWLHQ_HSJG,XLXSBJDWLHQ_WSJGF,XLXSBJDWLHQ_HSJGF, "); + SQL.Add(" XLXSBJDWLHQ_JGYBJCLID1,XLXSBJDWLHQ_WSJG1,XLXSBJDWLHQ_HSJG1,XLXSBJDWLHQ_JGBL1,"); + SQL.Add(" :pWHR,:pWHRID,:pWHSJ "); + SQL.Add(" from XLXSBJDWLHQ"); + SQL.Add(" where XLXSBJDWLHQ_BJDID= :pOldBJDID "); + SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); + SQL.ParamByName("pOldBJDID").Value = txtOLDBJDID2.Value; + SQL.ParamByName("pWHR").Value = CurSession.UserName; + SQL.ParamByName("pWHRID").Value = CurSession.UserId; + SQL.ParamByName("pWHSJ").Value = DateTime.Now; + dberp.ExecSQL(SQL); + + } + else + { + if (XLBJDUtils.IsJGEJGB(cbxJGBID.SelectedValue.Trim())) + { + XLBJDUtils.InsertXLXSBJDCLHQ_WLHQ(dberp, SQL, bjflxx.XLXSBJFL_BJDHQLY, txtBJDID.Text.Trim(), datBJRQ.Text.Trim(), chkJZBJHS.Checked, + bjflxx.XLXSBJFL_TBJCLID, bjflxx.XLXSBJFL_LBJCLID, + txtTJ.Value, txtLJ.Value, + CurSession.UserName, CurSession.UserId, cbxJGBID.SelectedValue.Trim()); + } + else + { + //JGB价格表判断是否勾选记录报价单行情 + if (bjflxx.JLBJDHQChecked()) + { + XLBJDUtils.InsertXLXSBJDCLHQ_WLHQ_WithJGBHQ(dberp, SQL, bjflxx.XLXSBJFL_BJDHQLY, txtBJDID.Text.Trim(), datBJRQ.Text.Trim(), CurSession.UserName, CurSession.UserId, cbxJGBID.SelectedValue.Trim()); + XLBJDUtils.UpdateBJDHQByTLJ(dberp, SQL, txtBJDID.Text.Trim(), bjflxx.XLXSBJFL_TBJCLID, bjflxx.XLXSBJFL_LBJCLID, + txtTJ.Value, txtLJ.Value, chkJZBJHS.Checked, CurSession.UserId, CurSession.UserName); + } + } + } + } + else if (ctrlState.Value.Equals("E") && (!txtOLDTJ.Value.Equals(txtTJ.Value.ToString()) || !txtOLDLJ.Value.Equals(txtLJ.Value.ToString()))) + { + XLBJDUtils.UpdateBJDHQByTLJ(dberp, SQL, txtBJDID.Text.Trim(), bjflxx.XLXSBJFL_TBJCLID, bjflxx.XLXSBJFL_LBJCLID, + txtTJ.Value, txtLJ.Value, chkJZBJHS.Checked, CurSession.UserId, CurSession.UserName); + } + + + //复制报价单 + if (ctrlState.Value.Equals("C")) + { + if (dsOLDBJD.Tables[0].Rows.Count > 0) + { + //同步复制报价说明 + SQL.Clear(); + SQL.Add("update XLXSBJD set XLXSBJD_BJSM=:pBJSM"); + SQL.Add(" where XLXSBJD_BJDID=:pBJDID"); + SQL.ParamByName("pBJSM").Value = dsOLDBJD.Tables[0].Rows[0]["XLXSBJD_BJSM"].ToString().Trim(); + SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); + dberp.ExecSQL(SQL); + + //保存时,后台复制明细,复制主记录时不走该分支 + if (CanCopyMX.Value.Equals("Y")) + { + if ((!bjflxx.XLXSBJFL_ZDXJQZBJDFL.Equals("")) && bjflxx.XLXSBJFL_ZDXJQZBJDFL.Equals(dsOLDBJD.Tables[0].Rows[0]["XLXSBJD_BJFLID"].ToString().Trim()) && !bWQFZ) + { + SQL.Clear(); + SQL.Add(" insert into XLXSBJDMX( "); + SQL.Add(" XLXSBJDMX_BJDID, XLXSBJDMX_XH, XLXSBJDMX_XSSX, XLXSBJDMX_XLXHID,XLXSBJDMX_XDXLXHID, XLXSBJDMX_XLGGID, "); + SQL.Add(" XLXSBJDMX_XLBZID,XLXSBJDMX_XDXLBZID, XLXSBJDMX_DYDJID, XLXSBJDMX_XLYSID, XLXSBJDMX_BJCP,XLXSBJDMX_GYKH,XLXSBJDMX_PWQDID,XLXSBJDMX_PWQDWLMC,XLXSBJDMX_PWQDMS,XLXSBJDMX_BJCPSD,XLXSBJDMX_WGCPBZ, "); + SQL.Add(" XLXSBJDMX_JLDW, XLXSBJDMX_BJSL, XLXSBJDMX_JGBBJ,XLXSBJDMX_LSJGBBJ, XLXSBJDMX_TZQZDXJ,XLXSBJDMX_TZZDXJ,XLXSBJDMX_TZQCPBJ,XLXSBJDMX_TZCPBJ,XLXSBJDMX_CPBJ, XLXSBJDMX_TZQBJJE,XLXSBJDMX_BJJE, XLXSBJDMX_JGBJJ,XLXSBJDMX_CLCB,XLXSBJDMX_JGBBJJCL,XLXSBJDMX_JGBBJJCE,XLXSBJDMX_CLZL, "); + SQL.Add(" XLXSBJDMX_YXJJCL,XLXSBJDMX_BJDHQCLCB,XLXSBJDMX_BJDHQCLCBTZ,XLXSBJDMX_CLCBJCL,XLXSBJDMX_JGBBJLJJCL,XLXSBJDMX_BZ, XLXSBJDMX_DZSC,XLXSBJDMX_WHRID, XLXSBJDMX_WHR, XLXSBJDMX_WHSJ,"); + SQL.Add(" XLXSBJDMX_TZBJJE,XLXSBJDMX_BJSDBZ,XLXSBJDMX_PJJE,XLXSBJDMX_JSYCBZ,XLXSBJDMX_CLCBJCLSDBZ,XLXSBJDMX_JMBGS,XLXSBJDMX_YXJG,XLXSBJDMX_YZ,XLXSBJDMX_YSCP,XLXSBJDMX_KHWLID,XLXSBJDMX_FBH,XLXSBJDMX_CPBJXJ,XLXSBJDMX_BJXJKD,XLXSBJDMX_BJXJJJ,XLXSBJDMX_BJJEXJ, "); + SQL.Add(" XLXSBJDMX_ZDXJ,XLXSBJDMX_ZDXJJCL,XLXSBJDMX_JSJG,XLXSBJDMX_JSJJE,XLXSBJDMX_JSJJCL,XLXSBJDMX_ZHCPMLMC,XLXSBJDMX_CPMLMC,XLXSBJDMX_BJLY,XLXSBJDMX_BJTJCZ,XLXSBJDMX_JGBBJGXSJ,XLXSBJDMX_JGBBJTZ,XLXSBJDMX_JGFBZ,XLXSBJDMX_ZDXJBJDID,XLXSBJDMX_ZDXJBJDXH ");//XLXSBJDMX_WLID不能复制! + SQL.Add(" ) "); + SQL.Add(" select"); + SQL.Add(" :pBJDID, XLXSBJDMX_XH, XLXSBJDMX_XSSX, XLXSBJDMX_XLXHID,XLXSBJDMX_XDXLXHID, XLXSBJDMX_XLGGID, "); + SQL.Add(" XLXSBJDMX_XLBZID,XLXSBJDMX_XDXLBZID, XLXSBJDMX_DYDJID, XLXSBJDMX_XLYSID, XLXSBJDMX_BJCP,XLXSBJDMX_GYKH,XLXSBJDMX_PWQDID,XLXSBJDMX_PWQDWLMC,XLXSBJDMX_PWQDMS,XLXSBJDMX_BJCPSD,XLXSBJDMX_WGCPBZ, "); + SQL.Add(" XLXSBJDMX_JLDW, XLXSBJDMX_BJSL, XLXSBJDMX_JGBBJ,XLXSBJDMX_LSJGBBJ, XLXSBJDMX_CPBJ,0,XLXSBJDMX_TZQCPBJ,XLXSBJDMX_TZCPBJ,XLXSBJDMX_CPBJ, XLXSBJDMX_TZQBJJE,XLXSBJDMX_BJJE, XLXSBJDMX_JGBJJ,XLXSBJDMX_CLCB,XLXSBJDMX_JGBBJJCL,XLXSBJDMX_JGBBJJCE,XLXSBJDMX_CLZL, "); + SQL.Add(" XLXSBJDMX_YXJJCL,XLXSBJDMX_BJDHQCLCB,XLXSBJDMX_BJDHQCLCBTZ,XLXSBJDMX_CLCBJCL,XLXSBJDMX_JGBBJLJJCL,XLXSBJDMX_BZ, XLXSBJDMX_DZSC,:pWHRID, :pWHR, :pWHSJ,"); + SQL.Add(" XLXSBJDMX_TZBJJE,XLXSBJDMX_BJSDBZ,XLXSBJDMX_PJJE,XLXSBJDMX_JSYCBZ,XLXSBJDMX_CLCBJCLSDBZ,XLXSBJDMX_JMBGS,XLXSBJDMX_YXJG,XLXSBJDMX_YZ,XLXSBJDMX_YSCP,XLXSBJDMX_KHWLID,XLXSBJDMX_FBH,XLXSBJDMX_CPBJXJ,XLXSBJDMX_BJXJKD,XLXSBJDMX_BJXJJJ,XLXSBJDMX_BJJEXJ, "); + SQL.Add(" XLXSBJDMX_CPBJ as ZDXJ,XLXSBJDMX_ZDXJJCL,XLXSBJDMX_JSJG,XLXSBJDMX_JSJJE,XLXSBJDMX_JSJJCL,XLXSBJDMX_ZHCPMLMC,XLXSBJDMX_CPMLMC,XLXSBJDMX_BJLY,XLXSBJDMX_BJTJCZ,XLXSBJDMX_JGBBJGXSJ,XLXSBJDMX_JGBBJTZ,XLXSBJDMX_JGFBZ,XLXSBJDMX_BJDID,XLXSBJDMX_XH "); + SQL.Add(" from XLXSBJDMX"); + SQL.Add(" where XLXSBJDMX_BJDID=:pOLDBJDID"); + SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); + SQL.ParamByName("pOLDBJDID").Value = txtOLDBJDID2.Value; + SQL.ParamByName("pWHRID").Value = CurSession.UserId; + SQL.ParamByName("pWHR").Value = CurSession.UserName; + SQL.ParamByName("pWHSJ").Value = DateTime.Now; + dberp.ExecSQL(SQL); + } + else + { + SQL.Clear(); + SQL.Add(" insert into XLXSBJDMX( "); + SQL.Add(" XLXSBJDMX_BJDID, XLXSBJDMX_XH, XLXSBJDMX_XSSX, XLXSBJDMX_XLXHID,XLXSBJDMX_XDXLXHID, XLXSBJDMX_XLGGID, "); + SQL.Add(" XLXSBJDMX_XLBZID,XLXSBJDMX_XDXLBZID, XLXSBJDMX_DYDJID, XLXSBJDMX_XLYSID, XLXSBJDMX_BJCP,XLXSBJDMX_GYKH,XLXSBJDMX_PWQDID,XLXSBJDMX_PWQDWLMC,XLXSBJDMX_PWQDMS,XLXSBJDMX_BJCPSD,XLXSBJDMX_WGCPBZ, "); + SQL.Add(" XLXSBJDMX_JLDW, XLXSBJDMX_BJSL, XLXSBJDMX_JGBBJ,XLXSBJDMX_LSJGBBJ, XLXSBJDMX_TZQZDXJ,XLXSBJDMX_TZZDXJ,XLXSBJDMX_TZQCPBJ,XLXSBJDMX_TZCPBJ,XLXSBJDMX_CPBJ, XLXSBJDMX_TZQBJJE,XLXSBJDMX_BJJE, XLXSBJDMX_JGBJJ,XLXSBJDMX_CLCB,XLXSBJDMX_JGBBJJCL,XLXSBJDMX_JGBBJJCE,XLXSBJDMX_CLZL, "); + SQL.Add(" XLXSBJDMX_YXJJCL,XLXSBJDMX_BJDHQCLCB,XLXSBJDMX_BJDHQCLCBTZ,XLXSBJDMX_CLCBJCL,XLXSBJDMX_JGBBJLJJCL,XLXSBJDMX_BZ, XLXSBJDMX_DZSC,XLXSBJDMX_WHRID, XLXSBJDMX_WHR, XLXSBJDMX_WHSJ,"); + SQL.Add(" XLXSBJDMX_TZBJJE,XLXSBJDMX_BJSDBZ,XLXSBJDMX_PJJE,XLXSBJDMX_JSYCBZ,XLXSBJDMX_CLCBJCLSDBZ,XLXSBJDMX_JMBGS,XLXSBJDMX_YXJG,XLXSBJDMX_YZ,XLXSBJDMX_YSCP,XLXSBJDMX_KHWLID,XLXSBJDMX_FBH,XLXSBJDMX_CPBJXJ,XLXSBJDMX_BJXJKD,XLXSBJDMX_BJXJJJ,XLXSBJDMX_BJJEXJ, "); + SQL.Add(" XLXSBJDMX_ZDXJ,XLXSBJDMX_ZDXJJCL,XLXSBJDMX_JSJG,XLXSBJDMX_JSJJE,XLXSBJDMX_JSJJCL,XLXSBJDMX_ZHCPMLMC,XLXSBJDMX_CPMLMC,XLXSBJDMX_BJLY,XLXSBJDMX_BJTJCZ,XLXSBJDMX_JGBBJGXSJ,XLXSBJDMX_JGBBJTZ,XLXSBJDMX_JGFBZ,XLXSBJDMX_ZDXJBJDID,XLXSBJDMX_ZDXJBJDXH");//XLXSBJDMX_WLID不能复制! + SQL.Add(" ) "); + SQL.Add(" select"); + SQL.Add(" :pBJDID, XLXSBJDMX_XH, XLXSBJDMX_XSSX, XLXSBJDMX_XLXHID,XLXSBJDMX_XDXLXHID, XLXSBJDMX_XLGGID, "); + SQL.Add(" XLXSBJDMX_XLBZID,XLXSBJDMX_XDXLBZID, XLXSBJDMX_DYDJID, XLXSBJDMX_XLYSID, XLXSBJDMX_BJCP,XLXSBJDMX_GYKH,XLXSBJDMX_PWQDID,XLXSBJDMX_PWQDWLMC,XLXSBJDMX_PWQDMS,XLXSBJDMX_BJCPSD,XLXSBJDMX_WGCPBZ, "); + SQL.Add(" XLXSBJDMX_JLDW, XLXSBJDMX_BJSL, XLXSBJDMX_JGBBJ,XLXSBJDMX_LSJGBBJ, XLXSBJDMX_TZQZDXJ,XLXSBJDMX_TZZDXJ,XLXSBJDMX_TZQCPBJ,XLXSBJDMX_TZCPBJ,XLXSBJDMX_CPBJ, XLXSBJDMX_TZQBJJE,XLXSBJDMX_BJJE, XLXSBJDMX_JGBJJ,XLXSBJDMX_CLCB,XLXSBJDMX_JGBBJJCL,XLXSBJDMX_JGBBJJCE,XLXSBJDMX_CLZL, "); + SQL.Add(" XLXSBJDMX_YXJJCL,XLXSBJDMX_BJDHQCLCB,XLXSBJDMX_BJDHQCLCBTZ,XLXSBJDMX_CLCBJCL,XLXSBJDMX_JGBBJLJJCL,XLXSBJDMX_BZ, XLXSBJDMX_DZSC,:pWHRID, :pWHR, :pWHSJ,"); + SQL.Add(" XLXSBJDMX_TZBJJE,XLXSBJDMX_BJSDBZ,XLXSBJDMX_PJJE,XLXSBJDMX_JSYCBZ,XLXSBJDMX_CLCBJCLSDBZ,XLXSBJDMX_JMBGS,XLXSBJDMX_YXJG,XLXSBJDMX_YZ,XLXSBJDMX_YSCP,XLXSBJDMX_KHWLID,XLXSBJDMX_FBH,XLXSBJDMX_CPBJXJ,XLXSBJDMX_BJXJKD,XLXSBJDMX_BJXJJJ,XLXSBJDMX_BJJEXJ, "); + SQL.Add(" XLXSBJDMX_ZDXJ,XLXSBJDMX_ZDXJJCL,XLXSBJDMX_JSJG,XLXSBJDMX_JSJJE,XLXSBJDMX_JSJJCL,XLXSBJDMX_ZHCPMLMC,XLXSBJDMX_CPMLMC,XLXSBJDMX_BJLY,XLXSBJDMX_BJTJCZ,XLXSBJDMX_JGBBJGXSJ,XLXSBJDMX_JGBBJTZ,XLXSBJDMX_JGFBZ,XLXSBJDMX_ZDXJBJDID,XLXSBJDMX_ZDXJBJDXH"); + SQL.Add(" from XLXSBJDMX"); + SQL.Add(" where XLXSBJDMX_BJDID=:pOLDBJDID"); + SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); + SQL.ParamByName("pOLDBJDID").Value = txtOLDBJDID2.Value; + SQL.ParamByName("pWHRID").Value = CurSession.UserId; + SQL.ParamByName("pWHR").Value = CurSession.UserName; + SQL.ParamByName("pWHSJ").Value = DateTime.Now; + dberp.ExecSQL(SQL); + } + + + + //复制时清空手输表价标识 + if (pzxx.XLXSBJPZ_TJGBFZBLBJ.Contains("3")) + { + SQL.Clear(); + SQL.Add("update XLXSBJDMX set XLXSBJDMX_BJLY=' ' "); + SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID and XLXSBJDMX_BJLY='SSJGBBJ' "); + SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); + dberp.ExecSQL(SQL); + } + else if (pzxx.XLXSBJPZ_TJGBFZBLBJ.Contains("4") && (sOldJGBID != cbxJGBID.SelectedValue.Trim())) + { + SQL.Clear(); + SQL.Add("update XLXSBJDMX set XLXSBJDMX_BJLY=' ' "); + SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID and XLXSBJDMX_BJLY='SSJGBBJ' "); + SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); + dberp.ExecSQL(SQL); + } + + + SQL.Clear(); + SQL.Add(" insert into XLXSBJDJJYZ( "); + SQL.Add(" XLXSBJDJJYZ_BJDID,XLXSBJDJJYZ_XH,XLXSBJDJJYZ_YZZ01,XLXSBJDJJYZ_YZZ02,XLXSBJDJJYZ_YZZ03,XLXSBJDJJYZ_YZZ04,XLXSBJDJJYZ_YZZ05, "); + SQL.Add(" XLXSBJDJJYZ_YZZ06,XLXSBJDJJYZ_YZZ07,XLXSBJDJJYZ_YZZ08,XLXSBJDJJYZ_YZZ09,XLXSBJDJJYZ_YZZ10,XLXSBJDJJYZ_YSJDZ"); + SQL.Add(" ) "); + SQL.Add(" select :pBJDID,XLXSBJDJJYZ_XH,XLXSBJDJJYZ_YZZ01,XLXSBJDJJYZ_YZZ02,XLXSBJDJJYZ_YZZ03,XLXSBJDJJYZ_YZZ04,XLXSBJDJJYZ_YZZ05, "); + SQL.Add(" XLXSBJDJJYZ_YZZ06,XLXSBJDJJYZ_YZZ07,XLXSBJDJJYZ_YZZ08,XLXSBJDJJYZ_YZZ09,XLXSBJDJJYZ_YZZ10,XLXSBJDJJYZ_YSJDZ "); + SQL.Add(" from XLXSBJDJJYZ"); + SQL.Add(" where XLXSBJDJJYZ_BJDID=:pOLDBJDID"); + SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); + SQL.ParamByName("pOLDBJDID").Value = txtOLDBJDID2.Value; + dberp.ExecSQL(SQL); + + SQL.Clear(); + SQL.Add(" insert into XLXSBJDCLCB( "); + SQL.Add(" XLXSBJDCLCB_BJDID,XLXSBJDCLCB_XH,XLXSBJDCLCB_BJCP,XLXSBJDCLCB_JLDW,XLXSBJDCLCB_BJSL, "); + SQL.Add(" XLXSBJDCLCB_XLXHID,XLXSBJDCLCB_XLGGID,XLXSBJDCLCB_XLBZID,XLXSBJDCLCB_DYDJID,XLXSBJDCLCB_XLYSID,"); + SQL.Add(" XLXSBJDCLCB_CLSL01,XLXSBJDCLCB_CLSL02,XLXSBJDCLCB_CLSL03,XLXSBJDCLCB_CLSL04,XLXSBJDCLCB_CLSL05,XLXSBJDCLCB_CLSL06,XLXSBJDCLCB_CLSL07,XLXSBJDCLCB_CLSL08,XLXSBJDCLCB_CLSL09,XLXSBJDCLCB_CLSL10,"); + SQL.Add(" XLXSBJDCLCB_CLSL11,XLXSBJDCLCB_CLSL12,XLXSBJDCLCB_CLSL13,XLXSBJDCLCB_CLSL14,XLXSBJDCLCB_CLSL15,XLXSBJDCLCB_CLSL16,XLXSBJDCLCB_CLSL17,XLXSBJDCLCB_CLSL18,XLXSBJDCLCB_CLSL19,XLXSBJDCLCB_CLSL20,"); + SQL.Add(" XLXSBJDCLCB_CLSL21,XLXSBJDCLCB_CLSL22,XLXSBJDCLCB_CLSL23,XLXSBJDCLCB_CLSL24,XLXSBJDCLCB_CLSL25,XLXSBJDCLCB_CLSL26,XLXSBJDCLCB_CLSL27,XLXSBJDCLCB_CLSL28,XLXSBJDCLCB_CLSL29,XLXSBJDCLCB_CLSL30,"); + SQL.Add(" XLXSBJDCLCB_CLSL31,XLXSBJDCLCB_CLSL32,XLXSBJDCLCB_CLSL33,XLXSBJDCLCB_CLSL34,XLXSBJDCLCB_CLSL35,XLXSBJDCLCB_CLSL36,XLXSBJDCLCB_CLSL37,XLXSBJDCLCB_CLSL38,XLXSBJDCLCB_CLSL39,XLXSBJDCLCB_CLSL40,"); + SQL.Add(" XLXSBJDCLCB_CLSL41,XLXSBJDCLCB_CLSL42,XLXSBJDCLCB_CLSL43,XLXSBJDCLCB_CLSL44,XLXSBJDCLCB_CLSL45,XLXSBJDCLCB_CLSL46,XLXSBJDCLCB_CLSL47,XLXSBJDCLCB_CLSL48,XLXSBJDCLCB_CLSL49,XLXSBJDCLCB_CLSL50,"); + SQL.Add(" XLXSBJDCLCB_CLSL51,XLXSBJDCLCB_CLSL52,XLXSBJDCLCB_CLSL53,XLXSBJDCLCB_CLSL54,XLXSBJDCLCB_CLSL55,XLXSBJDCLCB_CLSL56,XLXSBJDCLCB_CLSL57,XLXSBJDCLCB_CLSL58,XLXSBJDCLCB_CLSL59,XLXSBJDCLCB_CLSL60,"); + SQL.Add(" XLXSBJDCLCB_CLSL61,XLXSBJDCLCB_CLSL62,XLXSBJDCLCB_CLSL63,XLXSBJDCLCB_CLSL64,XLXSBJDCLCB_CLSL65,XLXSBJDCLCB_CLSL66,XLXSBJDCLCB_CLSL67,XLXSBJDCLCB_CLSL68,XLXSBJDCLCB_CLSL69,XLXSBJDCLCB_CLSL70,"); + SQL.Add(" XLXSBJDCLCB_CLSL71,XLXSBJDCLCB_CLSL72,XLXSBJDCLCB_CLSL73,XLXSBJDCLCB_CLSL74,XLXSBJDCLCB_CLSL75,XLXSBJDCLCB_CLSL76,XLXSBJDCLCB_CLSL77,XLXSBJDCLCB_CLSL78,XLXSBJDCLCB_CLSL79,XLXSBJDCLCB_CLSL80,"); + SQL.Add(" XLXSBJDCLCB_CLDJ01,XLXSBJDCLCB_CLDJ02,XLXSBJDCLCB_CLDJ03,XLXSBJDCLCB_CLDJ04,XLXSBJDCLCB_CLDJ05,XLXSBJDCLCB_CLDJ06,XLXSBJDCLCB_CLDJ07,XLXSBJDCLCB_CLDJ08,XLXSBJDCLCB_CLDJ09,XLXSBJDCLCB_CLDJ10,"); + SQL.Add(" XLXSBJDCLCB_CLDJ11,XLXSBJDCLCB_CLDJ12,XLXSBJDCLCB_CLDJ13,XLXSBJDCLCB_CLDJ14,XLXSBJDCLCB_CLDJ15,XLXSBJDCLCB_CLDJ16,XLXSBJDCLCB_CLDJ17,XLXSBJDCLCB_CLDJ18,XLXSBJDCLCB_CLDJ19,XLXSBJDCLCB_CLDJ20,"); + SQL.Add(" XLXSBJDCLCB_CLDJ21,XLXSBJDCLCB_CLDJ22,XLXSBJDCLCB_CLDJ23,XLXSBJDCLCB_CLDJ24,XLXSBJDCLCB_CLDJ25,XLXSBJDCLCB_CLDJ26,XLXSBJDCLCB_CLDJ27,XLXSBJDCLCB_CLDJ28,XLXSBJDCLCB_CLDJ29,XLXSBJDCLCB_CLDJ30,"); + SQL.Add(" XLXSBJDCLCB_CLDJ31,XLXSBJDCLCB_CLDJ32,XLXSBJDCLCB_CLDJ33,XLXSBJDCLCB_CLDJ34,XLXSBJDCLCB_CLDJ35,XLXSBJDCLCB_CLDJ36,XLXSBJDCLCB_CLDJ37,XLXSBJDCLCB_CLDJ38,XLXSBJDCLCB_CLDJ39,XLXSBJDCLCB_CLDJ40,"); + SQL.Add(" XLXSBJDCLCB_CLDJ41,XLXSBJDCLCB_CLDJ42,XLXSBJDCLCB_CLDJ43,XLXSBJDCLCB_CLDJ44,XLXSBJDCLCB_CLDJ45,XLXSBJDCLCB_CLDJ46,XLXSBJDCLCB_CLDJ47,XLXSBJDCLCB_CLDJ48,XLXSBJDCLCB_CLDJ49,XLXSBJDCLCB_CLDJ50,"); + SQL.Add(" XLXSBJDCLCB_CLDJ51,XLXSBJDCLCB_CLDJ52,XLXSBJDCLCB_CLDJ53,XLXSBJDCLCB_CLDJ54,XLXSBJDCLCB_CLDJ55,XLXSBJDCLCB_CLDJ56,XLXSBJDCLCB_CLDJ57,XLXSBJDCLCB_CLDJ58,XLXSBJDCLCB_CLDJ59,XLXSBJDCLCB_CLDJ60,"); + SQL.Add(" XLXSBJDCLCB_CLDJ61,XLXSBJDCLCB_CLDJ62,XLXSBJDCLCB_CLDJ63,XLXSBJDCLCB_CLDJ64,XLXSBJDCLCB_CLDJ65,XLXSBJDCLCB_CLDJ66,XLXSBJDCLCB_CLDJ67,XLXSBJDCLCB_CLDJ68,XLXSBJDCLCB_CLDJ69,XLXSBJDCLCB_CLDJ70,"); + SQL.Add(" XLXSBJDCLCB_CLDJ71,XLXSBJDCLCB_CLDJ72,XLXSBJDCLCB_CLDJ73,XLXSBJDCLCB_CLDJ74,XLXSBJDCLCB_CLDJ75,XLXSBJDCLCB_CLDJ76,XLXSBJDCLCB_CLDJ77,XLXSBJDCLCB_CLDJ78,XLXSBJDCLCB_CLDJ79,XLXSBJDCLCB_CLDJ80,"); + SQL.Add(" XLXSBJDCLCB_CLID01,XLXSBJDCLCB_CLID02,XLXSBJDCLCB_CLID03,XLXSBJDCLCB_CLID04,XLXSBJDCLCB_CLID05,XLXSBJDCLCB_CLID06,XLXSBJDCLCB_CLID07,XLXSBJDCLCB_CLID08,XLXSBJDCLCB_CLID09,XLXSBJDCLCB_CLID10,"); + SQL.Add(" XLXSBJDCLCB_CLID11,XLXSBJDCLCB_CLID12,XLXSBJDCLCB_CLID13,XLXSBJDCLCB_CLID14,XLXSBJDCLCB_CLID15,XLXSBJDCLCB_CLID16,XLXSBJDCLCB_CLID17,XLXSBJDCLCB_CLID18,XLXSBJDCLCB_CLID19,XLXSBJDCLCB_CLID20,"); + SQL.Add(" XLXSBJDCLCB_CLID21,XLXSBJDCLCB_CLID22,XLXSBJDCLCB_CLID23,XLXSBJDCLCB_CLID24,XLXSBJDCLCB_CLID25,XLXSBJDCLCB_CLID26,XLXSBJDCLCB_CLID27,XLXSBJDCLCB_CLID28,XLXSBJDCLCB_CLID29,XLXSBJDCLCB_CLID30,"); + SQL.Add(" XLXSBJDCLCB_CLID31,XLXSBJDCLCB_CLID32,XLXSBJDCLCB_CLID33,XLXSBJDCLCB_CLID34,XLXSBJDCLCB_CLID35,XLXSBJDCLCB_CLID36,XLXSBJDCLCB_CLID37,XLXSBJDCLCB_CLID38,XLXSBJDCLCB_CLID39,XLXSBJDCLCB_CLID40,"); + SQL.Add(" XLXSBJDCLCB_CLID41,XLXSBJDCLCB_CLID42,XLXSBJDCLCB_CLID43,XLXSBJDCLCB_CLID44,XLXSBJDCLCB_CLID45,XLXSBJDCLCB_CLID46,XLXSBJDCLCB_CLID47,XLXSBJDCLCB_CLID48,XLXSBJDCLCB_CLID49,XLXSBJDCLCB_CLID50,"); + SQL.Add(" XLXSBJDCLCB_CLID51,XLXSBJDCLCB_CLID52,XLXSBJDCLCB_CLID53,XLXSBJDCLCB_CLID54,XLXSBJDCLCB_CLID55,XLXSBJDCLCB_CLID56,XLXSBJDCLCB_CLID57,XLXSBJDCLCB_CLID58,XLXSBJDCLCB_CLID59,XLXSBJDCLCB_CLID60,"); + SQL.Add(" XLXSBJDCLCB_CLID61,XLXSBJDCLCB_CLID62,XLXSBJDCLCB_CLID63,XLXSBJDCLCB_CLID64,XLXSBJDCLCB_CLID65,XLXSBJDCLCB_CLID66,XLXSBJDCLCB_CLID67,XLXSBJDCLCB_CLID68,XLXSBJDCLCB_CLID69,XLXSBJDCLCB_CLID70,"); + SQL.Add(" XLXSBJDCLCB_CLID71,XLXSBJDCLCB_CLID72,XLXSBJDCLCB_CLID73,XLXSBJDCLCB_CLID74,XLXSBJDCLCB_CLID75,XLXSBJDCLCB_CLID76,XLXSBJDCLCB_CLID77,XLXSBJDCLCB_CLID78,XLXSBJDCLCB_CLID79,XLXSBJDCLCB_CLID80,"); + SQL.Add(" XLXSBJDCLCB_HSJGBBJ,XLXSBJDCLCB_WSJGBBJ,XLXSBJDCLCB_HSJGBJJ,XLXSBJDCLCB_WSJGBJJ,XLXSBJDCLCB_BZ,XLXSBJDCLCB_JGBBJGXSJ,XLXSBJDCLCB_WHR,XLXSBJDCLCB_WHRID,XLXSBJDCLCB_WHSJ"); + SQL.Add(" ) "); + SQL.Add(" select :pBJDID,XLXSBJDCLCB_XH,XLXSBJDCLCB_BJCP,XLXSBJDCLCB_JLDW,XLXSBJDCLCB_BJSL, "); + SQL.Add(" XLXSBJDCLCB_XLXHID,XLXSBJDCLCB_XLGGID,XLXSBJDCLCB_XLBZID,XLXSBJDCLCB_DYDJID,XLXSBJDCLCB_XLYSID,"); + SQL.Add(" XLXSBJDCLCB_CLSL01,XLXSBJDCLCB_CLSL02,XLXSBJDCLCB_CLSL03,XLXSBJDCLCB_CLSL04,XLXSBJDCLCB_CLSL05,XLXSBJDCLCB_CLSL06,XLXSBJDCLCB_CLSL07,XLXSBJDCLCB_CLSL08,XLXSBJDCLCB_CLSL09,XLXSBJDCLCB_CLSL10,"); + SQL.Add(" XLXSBJDCLCB_CLSL11,XLXSBJDCLCB_CLSL12,XLXSBJDCLCB_CLSL13,XLXSBJDCLCB_CLSL14,XLXSBJDCLCB_CLSL15,XLXSBJDCLCB_CLSL16,XLXSBJDCLCB_CLSL17,XLXSBJDCLCB_CLSL18,XLXSBJDCLCB_CLSL19,XLXSBJDCLCB_CLSL20,"); + SQL.Add(" XLXSBJDCLCB_CLSL21,XLXSBJDCLCB_CLSL22,XLXSBJDCLCB_CLSL23,XLXSBJDCLCB_CLSL24,XLXSBJDCLCB_CLSL25,XLXSBJDCLCB_CLSL26,XLXSBJDCLCB_CLSL27,XLXSBJDCLCB_CLSL28,XLXSBJDCLCB_CLSL29,XLXSBJDCLCB_CLSL30,"); + SQL.Add(" XLXSBJDCLCB_CLSL31,XLXSBJDCLCB_CLSL32,XLXSBJDCLCB_CLSL33,XLXSBJDCLCB_CLSL34,XLXSBJDCLCB_CLSL35,XLXSBJDCLCB_CLSL36,XLXSBJDCLCB_CLSL37,XLXSBJDCLCB_CLSL38,XLXSBJDCLCB_CLSL39,XLXSBJDCLCB_CLSL40,"); + SQL.Add(" XLXSBJDCLCB_CLSL41,XLXSBJDCLCB_CLSL42,XLXSBJDCLCB_CLSL43,XLXSBJDCLCB_CLSL44,XLXSBJDCLCB_CLSL45,XLXSBJDCLCB_CLSL46,XLXSBJDCLCB_CLSL47,XLXSBJDCLCB_CLSL48,XLXSBJDCLCB_CLSL49,XLXSBJDCLCB_CLSL50,"); + SQL.Add(" XLXSBJDCLCB_CLSL51,XLXSBJDCLCB_CLSL52,XLXSBJDCLCB_CLSL53,XLXSBJDCLCB_CLSL54,XLXSBJDCLCB_CLSL55,XLXSBJDCLCB_CLSL56,XLXSBJDCLCB_CLSL57,XLXSBJDCLCB_CLSL58,XLXSBJDCLCB_CLSL59,XLXSBJDCLCB_CLSL60,"); + SQL.Add(" XLXSBJDCLCB_CLSL61,XLXSBJDCLCB_CLSL62,XLXSBJDCLCB_CLSL63,XLXSBJDCLCB_CLSL64,XLXSBJDCLCB_CLSL65,XLXSBJDCLCB_CLSL66,XLXSBJDCLCB_CLSL67,XLXSBJDCLCB_CLSL68,XLXSBJDCLCB_CLSL69,XLXSBJDCLCB_CLSL70,"); + SQL.Add(" XLXSBJDCLCB_CLSL71,XLXSBJDCLCB_CLSL72,XLXSBJDCLCB_CLSL73,XLXSBJDCLCB_CLSL74,XLXSBJDCLCB_CLSL75,XLXSBJDCLCB_CLSL76,XLXSBJDCLCB_CLSL77,XLXSBJDCLCB_CLSL78,XLXSBJDCLCB_CLSL79,XLXSBJDCLCB_CLSL80,"); + SQL.Add(" XLXSBJDCLCB_CLDJ01,XLXSBJDCLCB_CLDJ02,XLXSBJDCLCB_CLDJ03,XLXSBJDCLCB_CLDJ04,XLXSBJDCLCB_CLDJ05,XLXSBJDCLCB_CLDJ06,XLXSBJDCLCB_CLDJ07,XLXSBJDCLCB_CLDJ08,XLXSBJDCLCB_CLDJ09,XLXSBJDCLCB_CLDJ10,"); + SQL.Add(" XLXSBJDCLCB_CLDJ11,XLXSBJDCLCB_CLDJ12,XLXSBJDCLCB_CLDJ13,XLXSBJDCLCB_CLDJ14,XLXSBJDCLCB_CLDJ15,XLXSBJDCLCB_CLDJ16,XLXSBJDCLCB_CLDJ17,XLXSBJDCLCB_CLDJ18,XLXSBJDCLCB_CLDJ19,XLXSBJDCLCB_CLDJ20,"); + SQL.Add(" XLXSBJDCLCB_CLDJ21,XLXSBJDCLCB_CLDJ22,XLXSBJDCLCB_CLDJ23,XLXSBJDCLCB_CLDJ24,XLXSBJDCLCB_CLDJ25,XLXSBJDCLCB_CLDJ26,XLXSBJDCLCB_CLDJ27,XLXSBJDCLCB_CLDJ28,XLXSBJDCLCB_CLDJ29,XLXSBJDCLCB_CLDJ30,"); + SQL.Add(" XLXSBJDCLCB_CLDJ31,XLXSBJDCLCB_CLDJ32,XLXSBJDCLCB_CLDJ33,XLXSBJDCLCB_CLDJ34,XLXSBJDCLCB_CLDJ35,XLXSBJDCLCB_CLDJ36,XLXSBJDCLCB_CLDJ37,XLXSBJDCLCB_CLDJ38,XLXSBJDCLCB_CLDJ39,XLXSBJDCLCB_CLDJ40,"); + SQL.Add(" XLXSBJDCLCB_CLDJ41,XLXSBJDCLCB_CLDJ42,XLXSBJDCLCB_CLDJ43,XLXSBJDCLCB_CLDJ44,XLXSBJDCLCB_CLDJ45,XLXSBJDCLCB_CLDJ46,XLXSBJDCLCB_CLDJ47,XLXSBJDCLCB_CLDJ48,XLXSBJDCLCB_CLDJ49,XLXSBJDCLCB_CLDJ50,"); + SQL.Add(" XLXSBJDCLCB_CLDJ51,XLXSBJDCLCB_CLDJ52,XLXSBJDCLCB_CLDJ53,XLXSBJDCLCB_CLDJ54,XLXSBJDCLCB_CLDJ55,XLXSBJDCLCB_CLDJ56,XLXSBJDCLCB_CLDJ57,XLXSBJDCLCB_CLDJ58,XLXSBJDCLCB_CLDJ59,XLXSBJDCLCB_CLDJ60,"); + SQL.Add(" XLXSBJDCLCB_CLDJ61,XLXSBJDCLCB_CLDJ62,XLXSBJDCLCB_CLDJ63,XLXSBJDCLCB_CLDJ64,XLXSBJDCLCB_CLDJ65,XLXSBJDCLCB_CLDJ66,XLXSBJDCLCB_CLDJ67,XLXSBJDCLCB_CLDJ68,XLXSBJDCLCB_CLDJ69,XLXSBJDCLCB_CLDJ70,"); + SQL.Add(" XLXSBJDCLCB_CLDJ71,XLXSBJDCLCB_CLDJ72,XLXSBJDCLCB_CLDJ73,XLXSBJDCLCB_CLDJ74,XLXSBJDCLCB_CLDJ75,XLXSBJDCLCB_CLDJ76,XLXSBJDCLCB_CLDJ77,XLXSBJDCLCB_CLDJ78,XLXSBJDCLCB_CLDJ79,XLXSBJDCLCB_CLDJ80,"); + SQL.Add(" XLXSBJDCLCB_CLID01,XLXSBJDCLCB_CLID02,XLXSBJDCLCB_CLID03,XLXSBJDCLCB_CLID04,XLXSBJDCLCB_CLID05,XLXSBJDCLCB_CLID06,XLXSBJDCLCB_CLID07,XLXSBJDCLCB_CLID08,XLXSBJDCLCB_CLID09,XLXSBJDCLCB_CLID10,"); + SQL.Add(" XLXSBJDCLCB_CLID11,XLXSBJDCLCB_CLID12,XLXSBJDCLCB_CLID13,XLXSBJDCLCB_CLID14,XLXSBJDCLCB_CLID15,XLXSBJDCLCB_CLID16,XLXSBJDCLCB_CLID17,XLXSBJDCLCB_CLID18,XLXSBJDCLCB_CLID19,XLXSBJDCLCB_CLID20,"); + SQL.Add(" XLXSBJDCLCB_CLID21,XLXSBJDCLCB_CLID22,XLXSBJDCLCB_CLID23,XLXSBJDCLCB_CLID24,XLXSBJDCLCB_CLID25,XLXSBJDCLCB_CLID26,XLXSBJDCLCB_CLID27,XLXSBJDCLCB_CLID28,XLXSBJDCLCB_CLID29,XLXSBJDCLCB_CLID30,"); + SQL.Add(" XLXSBJDCLCB_CLID31,XLXSBJDCLCB_CLID32,XLXSBJDCLCB_CLID33,XLXSBJDCLCB_CLID34,XLXSBJDCLCB_CLID35,XLXSBJDCLCB_CLID36,XLXSBJDCLCB_CLID37,XLXSBJDCLCB_CLID38,XLXSBJDCLCB_CLID39,XLXSBJDCLCB_CLID40,"); + SQL.Add(" XLXSBJDCLCB_CLID41,XLXSBJDCLCB_CLID42,XLXSBJDCLCB_CLID43,XLXSBJDCLCB_CLID44,XLXSBJDCLCB_CLID45,XLXSBJDCLCB_CLID46,XLXSBJDCLCB_CLID47,XLXSBJDCLCB_CLID48,XLXSBJDCLCB_CLID49,XLXSBJDCLCB_CLID50,"); + SQL.Add(" XLXSBJDCLCB_CLID51,XLXSBJDCLCB_CLID52,XLXSBJDCLCB_CLID53,XLXSBJDCLCB_CLID54,XLXSBJDCLCB_CLID55,XLXSBJDCLCB_CLID56,XLXSBJDCLCB_CLID57,XLXSBJDCLCB_CLID58,XLXSBJDCLCB_CLID59,XLXSBJDCLCB_CLID60,"); + SQL.Add(" XLXSBJDCLCB_CLID61,XLXSBJDCLCB_CLID62,XLXSBJDCLCB_CLID63,XLXSBJDCLCB_CLID64,XLXSBJDCLCB_CLID65,XLXSBJDCLCB_CLID66,XLXSBJDCLCB_CLID67,XLXSBJDCLCB_CLID68,XLXSBJDCLCB_CLID69,XLXSBJDCLCB_CLID70,"); + SQL.Add(" XLXSBJDCLCB_CLID71,XLXSBJDCLCB_CLID72,XLXSBJDCLCB_CLID73,XLXSBJDCLCB_CLID74,XLXSBJDCLCB_CLID75,XLXSBJDCLCB_CLID76,XLXSBJDCLCB_CLID77,XLXSBJDCLCB_CLID78,XLXSBJDCLCB_CLID79,XLXSBJDCLCB_CLID80,"); + SQL.Add(" XLXSBJDCLCB_HSJGBBJ,XLXSBJDCLCB_WSJGBBJ,XLXSBJDCLCB_HSJGBJJ,XLXSBJDCLCB_WSJGBJJ,XLXSBJDCLCB_BZ,XLXSBJDCLCB_JGBBJGXSJ,:pWHR,:pWHRID,:pWHSJ "); + SQL.Add(" from XLXSBJDCLCB"); + SQL.Add(" where XLXSBJDCLCB_BJDID=:pOLDBJDID"); + SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); + SQL.ParamByName("pOLDBJDID").Value = txtOLDBJDID2.Value; + SQL.ParamByName("pWHRID").Value = CurSession.UserId; + SQL.ParamByName("pWHR").Value = CurSession.UserName; + SQL.ParamByName("pWHSJ").Value = DateTime.Now; + dberp.ExecSQL(SQL); + + if (bjflxx.XLXSBJFL_TZYLBL.Equals("Y")) { + SQL.Clear(); + SQL.Add(" insert into BJDCLYLBL( "); + SQL.Add(" BJDCLYLBL_BJDID,BJDCLYLBL_XH,BJDCLYLBL_BBID,BJDCLYLBL_XLXHID,BJDCLYLBL_XLGGID, "); + SQL.Add(" BJDCLYLBL_XLBZID,BJDCLYLBL_DYDJID,BJDCLYLBL_XLYSID,BJDCLYLBL_YLBL01,"); + SQL.Add(" BJDCLYLBL_YLBL02,BJDCLYLBL_YLBL03,BJDCLYLBL_YLBL04,BJDCLYLBL_YLBL05,BJDCLYLBL_YLBL06,BJDCLYLBL_YLBL07,BJDCLYLBL_YLBL08,BJDCLYLBL_YLBL09,BJDCLYLBL_YLBL10,BJDCLYLBL_YLBL11,"); + SQL.Add(" BJDCLYLBL_YLBL12,BJDCLYLBL_YLBL13,BJDCLYLBL_YLBL14,BJDCLYLBL_YLBL15,BJDCLYLBL_YLBL16,BJDCLYLBL_YLBL17,BJDCLYLBL_YLBL18,BJDCLYLBL_YLBL19,BJDCLYLBL_YLBL20,BJDCLYLBL_YLBL21,"); + SQL.Add(" BJDCLYLBL_YLBL22,BJDCLYLBL_YLBL23,BJDCLYLBL_YLBL24,BJDCLYLBL_YLBL25,BJDCLYLBL_YLBL26,BJDCLYLBL_YLBL27,BJDCLYLBL_YLBL28,BJDCLYLBL_YLBL29,BJDCLYLBL_YLBL30,BJDCLYLBL_YLBL31,"); + SQL.Add(" BJDCLYLBL_YLBL32,BJDCLYLBL_YLBL33,BJDCLYLBL_YLBL34,BJDCLYLBL_YLBL35,BJDCLYLBL_YLBL36,BJDCLYLBL_YLBL37,BJDCLYLBL_YLBL38,BJDCLYLBL_YLBL39,BJDCLYLBL_YLBL40,BJDCLYLBL_YLBL41,"); + SQL.Add(" BJDCLYLBL_YLBL42,BJDCLYLBL_YLBL43,BJDCLYLBL_YLBL44,BJDCLYLBL_YLBL45,BJDCLYLBL_YLBL46,BJDCLYLBL_YLBL47,BJDCLYLBL_YLBL48,BJDCLYLBL_YLBL49,BJDCLYLBL_YLBL50,BJDCLYLBL_YLBL51,"); + SQL.Add(" BJDCLYLBL_YLBL52,BJDCLYLBL_YLBL53,BJDCLYLBL_YLBL54,BJDCLYLBL_YLBL55,BJDCLYLBL_YLBL56,BJDCLYLBL_YLBL57,BJDCLYLBL_YLBL58,BJDCLYLBL_YLBL59,BJDCLYLBL_YLBL60,BJDCLYLBL_YLBL61,"); + SQL.Add(" BJDCLYLBL_YLBL62,BJDCLYLBL_YLBL63,BJDCLYLBL_YLBL64,BJDCLYLBL_YLBL65,BJDCLYLBL_YLBL66,BJDCLYLBL_YLBL67,BJDCLYLBL_YLBL68,BJDCLYLBL_YLBL69,BJDCLYLBL_YLBL70,BJDCLYLBL_YLBL71,"); + SQL.Add(" BJDCLYLBL_YLBL72,BJDCLYLBL_YLBL73,BJDCLYLBL_YLBL74,BJDCLYLBL_YLBL75,BJDCLYLBL_YLBL76,BJDCLYLBL_YLBL77,BJDCLYLBL_YLBL78,BJDCLYLBL_YLBL79,BJDCLYLBL_YLBL80"); + SQL.Add(" ) "); + SQL.Add(" select :pBJDID,BJDCLYLBL_XH,BJDCLYLBL_BBID,BJDCLYLBL_XLXHID,BJDCLYLBL_XLGGID, "); + SQL.Add(" BJDCLYLBL_XLBZID,BJDCLYLBL_DYDJID,BJDCLYLBL_XLYSID,BJDCLYLBL_YLBL01,"); + SQL.Add(" BJDCLYLBL_YLBL02,BJDCLYLBL_YLBL03,BJDCLYLBL_YLBL04,BJDCLYLBL_YLBL05,BJDCLYLBL_YLBL06,BJDCLYLBL_YLBL07,BJDCLYLBL_YLBL08,BJDCLYLBL_YLBL09,BJDCLYLBL_YLBL10,BJDCLYLBL_YLBL11,"); + SQL.Add(" BJDCLYLBL_YLBL12,BJDCLYLBL_YLBL13,BJDCLYLBL_YLBL14,BJDCLYLBL_YLBL15,BJDCLYLBL_YLBL16,BJDCLYLBL_YLBL17,BJDCLYLBL_YLBL18,BJDCLYLBL_YLBL19,BJDCLYLBL_YLBL20,BJDCLYLBL_YLBL21,"); + SQL.Add(" BJDCLYLBL_YLBL22,BJDCLYLBL_YLBL23,BJDCLYLBL_YLBL24,BJDCLYLBL_YLBL25,BJDCLYLBL_YLBL26,BJDCLYLBL_YLBL27,BJDCLYLBL_YLBL28,BJDCLYLBL_YLBL29,BJDCLYLBL_YLBL30,BJDCLYLBL_YLBL31,"); + SQL.Add(" BJDCLYLBL_YLBL32,BJDCLYLBL_YLBL33,BJDCLYLBL_YLBL34,BJDCLYLBL_YLBL35,BJDCLYLBL_YLBL36,BJDCLYLBL_YLBL37,BJDCLYLBL_YLBL38,BJDCLYLBL_YLBL39,BJDCLYLBL_YLBL40,BJDCLYLBL_YLBL41,"); + SQL.Add(" BJDCLYLBL_YLBL42,BJDCLYLBL_YLBL43,BJDCLYLBL_YLBL44,BJDCLYLBL_YLBL45,BJDCLYLBL_YLBL46,BJDCLYLBL_YLBL47,BJDCLYLBL_YLBL48,BJDCLYLBL_YLBL49,BJDCLYLBL_YLBL50,BJDCLYLBL_YLBL51,"); + SQL.Add(" BJDCLYLBL_YLBL52,BJDCLYLBL_YLBL53,BJDCLYLBL_YLBL54,BJDCLYLBL_YLBL55,BJDCLYLBL_YLBL56,BJDCLYLBL_YLBL57,BJDCLYLBL_YLBL58,BJDCLYLBL_YLBL59,BJDCLYLBL_YLBL60,BJDCLYLBL_YLBL61,"); + SQL.Add(" BJDCLYLBL_YLBL62,BJDCLYLBL_YLBL63,BJDCLYLBL_YLBL64,BJDCLYLBL_YLBL65,BJDCLYLBL_YLBL66,BJDCLYLBL_YLBL67,BJDCLYLBL_YLBL68,BJDCLYLBL_YLBL69,BJDCLYLBL_YLBL70,BJDCLYLBL_YLBL71,"); + SQL.Add(" BJDCLYLBL_YLBL72,BJDCLYLBL_YLBL73,BJDCLYLBL_YLBL74,BJDCLYLBL_YLBL75,BJDCLYLBL_YLBL76,BJDCLYLBL_YLBL77,BJDCLYLBL_YLBL78,BJDCLYLBL_YLBL79,BJDCLYLBL_YLBL80"); + SQL.Add(" from BJDCLYLBL"); + SQL.Add(" where BJDCLYLBL_BJDID=:pOLDBJDID"); + SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); + SQL.ParamByName("pOLDBJDID").Value = txtOLDBJDID2.Value; + dberp.ExecSQL(SQL); + } + + + + + SQL.Clear(); + SQL.Add(@"insert into XLXSBJDGYJD(XLXSBJDGYJD_BJDID,XLXSBJDGYJD_BJDXH,XLXSBJDGYJD_XLXHID,XLXSBJDGYJD_XLGGID,XLXSBJDGYJD_XLBZID,XLXSBJDGYJD_DYDJID, + XLXSBJDGYJD_CKXLXHID,XLXSBJDGYJD_CKXLGGID,XLXSBJDGYJD_CKXLBZID,XLXSBJDGYJD_CKDYDJID,XLXSBJDGYJD_ZXGXBZ,XLXSBJDGYJD_JDGS, + XLXSBJDGYJD_JDZ,XLXSBJDGYJD_BZ,XLXSBJDGYJD_WHR,XLXSBJDGYJD_WHRID,XLXSBJDGYJD_WHSJ) + select :pBJDID,XLXSBJDGYJD_BJDXH,XLXSBJDGYJD_XLXHID,XLXSBJDGYJD_XLGGID,XLXSBJDGYJD_XLBZID,XLXSBJDGYJD_DYDJID, + XLXSBJDGYJD_CKXLXHID,XLXSBJDGYJD_CKXLGGID,XLXSBJDGYJD_CKXLBZID,XLXSBJDGYJD_CKDYDJID,XLXSBJDGYJD_ZXGXBZ,XLXSBJDGYJD_JDGS, + XLXSBJDGYJD_JDZ,XLXSBJDGYJD_BZ,:pWHR,:pWHRID,:pWHSJ + from XLXSBJDGYJD + where XLXSBJDGYJD_BJDID=:pOLDBJDID "); + SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); + SQL.ParamByName("pWHR").Value = CurSession.UserName; + SQL.ParamByName("pWHRID").Value = CurSession.UserId; + SQL.ParamByName("pWHSJ").Value = DateTime.Now; + SQL.ParamByName("pOLDBJDID").Value = txtOLDBJDID2.Value; + dberp.ExecSQL(SQL); + + + SQL.Clear(); + SQL.Add("update XLXSBJDGYJD set XLXSBJDGYJD_ZXGXBZ='N' where XLXSBJDGYJD_BJDID=:pOLDBJDID and XLXSBJDGYJD_ZXGXBZ='Y' "); + SQL.ParamByName("pOLDBJDID").Value = txtOLDBJDID2.Value; + dberp.ExecSQL(SQL); + + bool updBJDYZZ = false; + string SFCHYZZ = ""; + if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_FZCHYZZ)) + SFCHYZZ = pzxx.XLXSBJPZ_FZCHYZZ; + if (!SFCHYZZ.Equals("") && !bWQFZ) + { + string[] sBJDYZ = txtBJDYZ.Text.Trim().Split(',');//报价单用到的调价因子 + SQL.Clear(); + SQL.Add("insert into XLXSBJDYZZ0(XLXSBJDYZZ0_BJDID,XLXSBJDYZZ0_XH"); + for (int i = 0; i < sBJDYZ.Length; i++) + { + if (sBJDYZ[i].Trim().EndsWith("()")) + continue; + SQL.Add(string.Format(",XLXSBJDYZZ0_YZZ{0}", sBJDYZ[i].Split('|')[0].Replace("BJ", ""))); + } + SQL.Add(" ) "); + SQL.Add("select :pBJDID,XLXSBJDYZZ0_XH"); + for (int i = 0; i < sBJDYZ.Length; i++) + { + if (sBJDYZ[i].Trim().EndsWith("()")) + continue; + SQL.Add(string.Format(",XLXSBJDYZZ0_YZZ{0}", sBJDYZ[i].Split('|')[0].Replace("BJ", ""))); + } + SQL.Add(" from XLXSBJDYZZ0"); + SQL.Add(" where XLXSBJDYZZ0_BJDID=:pOLDBJDID"); + SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); + SQL.ParamByName("pOLDBJDID").Value = txtOLDBJDID2.Value; + dberp.ExecSQL(SQL); + Dictionary dicTJYZList = new Dictionary(); + XLBJDUtils.GetDicTJYZList(dberp, SQL, cbxBJFLID.SelectedValue.Trim(), ref dicTJYZList); + if (SFCHYZZ.Equals("Y")) + { + if (dicTJYZList.ContainsKey("sTJYSList_")) + dicTJYZList.Remove("sTJYSList_"); + } + XLBJDUtils.AddXLXSBJDYZZ0(dberp, txtBJDID.Text.Trim(), cbxBJFLID.SelectedValue.Trim(), GetOption(100860000, "BJU003"), dicTJYZList, true, "", 0, ref sErrMsg); + if (SFCHYZZ.Equals("Y")) + { + //盘费因子存在,复制盘费要素 + if (!txtPFYZID.Text.Trim().Equals("")) + { + SQL.Clear(); + SQL.Add(" insert into XLXSBJDMXFD "); + SQL.Add(" (XLXSBJDMXFD_BJDID,XLXSBJDMXFD_BJDXH,XLXSBJDMXFD_XLFDYQ,XLXSBJDMXFD_XLWJ,XLXSBJDMXFD_PJZJE,XLXSBJDMXFD_PJZPZ,XLXSBJDMXFD_WHR,XLXSBJDMXFD_WHRID,XLXSBJDMXFD_WHSJ,XLXSBJDMXFD_PJPPQK)"); + SQL.Add(" select :pBJDID,XLXSBJDMXFD_BJDXH,XLXSBJDMXFD_XLFDYQ,XLXSBJDMXFD_XLWJ,XLXSBJDMXFD_PJZJE,XLXSBJDMXFD_PJZPZ,:pWHR,:pWHRID,:pWHSJ,XLXSBJDMXFD_PJPPQK "); + SQL.Add(" from XLXSBJDMXFD"); + SQL.Add(" where XLXSBJDMXFD_BJDID=:pOLDBJDID"); + SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); + SQL.ParamByName("pOLDBJDID").Value = txtOLDBJDID2.Value; + SQL.ParamByName("pWHR").Value = CurSession.UserName; + SQL.ParamByName("pWHRID").Value = CurSession.UserId; + SQL.ParamByName("pWHSJ").Value = DateTime.Now; + dberp.ExecSQL(SQL); + + SQL.Clear(); + SQL.Add(" insert into XLXSBJDMXZP "); + SQL.Add(" (XLXSBJDMXZP_BJDID,XLXSBJDMXZP_BJDXH,XLXSBJDMXZP_ZPXH,XLXSBJDMXZP_DC,XLXSBJDMXZP_DS,XLXSBJDMXZP_PJCZ,XLXSBJDMXZP_PJWJ,XLXSBJDMXZP_PJNJ,"); + SQL.Add(" XLXSBJDMXZP_PJKD,XLXSBJDMXZP_PJJG,XLXSBJDMXZP_PJJE,XLXSBJDMXZP_PJPZ,XLXSBJDMXZP_PJZPZ,XLXSBJDMXZP_WHR,XLXSBJDMXZP_WHRID,XLXSBJDMXZP_WHSJ) "); + SQL.Add(" select :pBJDID,XLXSBJDMXZP_BJDXH,XLXSBJDMXZP_ZPXH,XLXSBJDMXZP_DC,XLXSBJDMXZP_DS,XLXSBJDMXZP_PJCZ,XLXSBJDMXZP_PJWJ,XLXSBJDMXZP_PJNJ,"); + SQL.Add(" XLXSBJDMXZP_PJKD,XLXSBJDMXZP_PJJG,XLXSBJDMXZP_PJJE,XLXSBJDMXZP_PJPZ,XLXSBJDMXZP_PJZPZ,:pWHR,:pWHRID,:pWHSJ "); + SQL.Add(" from XLXSBJDMXZP"); + SQL.Add(" where XLXSBJDMXZP_BJDID=:pOLDBJDID"); + SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); + SQL.ParamByName("pOLDBJDID").Value = txtOLDBJDID2.Value; + SQL.ParamByName("pWHR").Value = CurSession.UserName; + SQL.ParamByName("pWHRID").Value = CurSession.UserId; + SQL.ParamByName("pWHSJ").Value = DateTime.Now; + dberp.ExecSQL(SQL); + } + } + + updBJDYZZ = true; + } + else + { + if (!cbxBJFLID.SelectedValue.Trim().Equals(dsOLDBJD.Tables[0].Rows[0]["XLXSBJD_BJFLID"].ToString().Trim())) + { + string[] sBJDYZ = txtBJDYZ.Text.Trim().Split(',');//报价单用到的调价因子 + SQL.Clear(); + SQL.Add("insert into XLXSBJDYZZ0(XLXSBJDYZZ0_BJDID,XLXSBJDYZZ0_XH"); + for (int i = 0; i < sBJDYZ.Length; i++) + { + if (sBJDYZ[i].Trim().EndsWith("()")) + continue; + SQL.Add(string.Format(",XLXSBJDYZZ0_YZZ{0}", sBJDYZ[i].Split('|')[0].Replace("BJ", ""))); + } + SQL.Add(" ) "); + SQL.Add("select :pBJDID,XLXSBJDYZZ0_XH"); + for (int i = 0; i < sBJDYZ.Length; i++) + { + if (sBJDYZ[i].Trim().EndsWith("()")) + continue; + SQL.Add(string.Format(",XLXSBJDYZZ0_YZZ{0}", sBJDYZ[i].Split('|')[0].Replace("BJ", ""))); + } + SQL.Add(" from XLXSBJDYZZ0"); + SQL.Add(" where XLXSBJDYZZ0_BJDID=:pOLDBJDID"); + SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); + SQL.ParamByName("pOLDBJDID").Value = txtOLDBJDID2.Value; + dberp.ExecSQL(SQL); + + Dictionary dicTJYZList = new Dictionary(); + GetDicTJYZList_NewYZ(cbxBJFLID.SelectedValue.Trim(), dsOLDBJD.Tables[0].Rows[0]["XLXSBJD_BJFLID"].ToString().Trim(), ref dicTJYZList); + XLBJDUtils.AddXLXSBJDYZZ0(dberp, txtBJDID.Text.Trim(), cbxBJFLID.SelectedValue.Trim(), GetOption(100860000, "BJU003"), dicTJYZList, true, "", 0, ref sErrMsg); + + + //盘费因子存在,复制盘费要素 + if (!txtPFYZID.Text.Trim().Equals("")) + { + SQL.Clear(); + SQL.Add(" insert into XLXSBJDMXFD "); + SQL.Add(" (XLXSBJDMXFD_BJDID,XLXSBJDMXFD_BJDXH,XLXSBJDMXFD_XLFDYQ,XLXSBJDMXFD_XLWJ,XLXSBJDMXFD_PJZJE,XLXSBJDMXFD_PJZPZ,XLXSBJDMXFD_WHR,XLXSBJDMXFD_WHRID,XLXSBJDMXFD_WHSJ,XLXSBJDMXFD_PJPPQK)"); + SQL.Add(" select :pBJDID,XLXSBJDMXFD_BJDXH,XLXSBJDMXFD_XLFDYQ,XLXSBJDMXFD_XLWJ,XLXSBJDMXFD_PJZJE,XLXSBJDMXFD_PJZPZ,:pWHR,:pWHRID,:pWHSJ,XLXSBJDMXFD_PJPPQK "); + SQL.Add(" from XLXSBJDMXFD"); + SQL.Add(" where XLXSBJDMXFD_BJDID=:pOLDBJDID"); + SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); + SQL.ParamByName("pOLDBJDID").Value = txtOLDBJDID2.Value; + SQL.ParamByName("pWHR").Value = CurSession.UserName; + SQL.ParamByName("pWHRID").Value = CurSession.UserId; + SQL.ParamByName("pWHSJ").Value = DateTime.Now; + dberp.ExecSQL(SQL); + + SQL.Clear(); + SQL.Add(" insert into XLXSBJDMXZP "); + SQL.Add(" (XLXSBJDMXZP_BJDID,XLXSBJDMXZP_BJDXH,XLXSBJDMXZP_ZPXH,XLXSBJDMXZP_DC,XLXSBJDMXZP_DS,XLXSBJDMXZP_PJCZ,XLXSBJDMXZP_PJWJ,XLXSBJDMXZP_PJNJ,"); + SQL.Add(" XLXSBJDMXZP_PJKD,XLXSBJDMXZP_PJJG,XLXSBJDMXZP_PJJE,XLXSBJDMXZP_PJPZ,XLXSBJDMXZP_PJZPZ,XLXSBJDMXZP_WHR,XLXSBJDMXZP_WHRID,XLXSBJDMXZP_WHSJ) "); + SQL.Add(" select :pBJDID,XLXSBJDMXZP_BJDXH,XLXSBJDMXZP_ZPXH,XLXSBJDMXZP_DC,XLXSBJDMXZP_DS,XLXSBJDMXZP_PJCZ,XLXSBJDMXZP_PJWJ,XLXSBJDMXZP_PJNJ,"); + SQL.Add(" XLXSBJDMXZP_PJKD,XLXSBJDMXZP_PJJG,XLXSBJDMXZP_PJJE,XLXSBJDMXZP_PJPZ,XLXSBJDMXZP_PJZPZ,:pWHR,:pWHRID,:pWHSJ "); + SQL.Add(" from XLXSBJDMXZP"); + SQL.Add(" where XLXSBJDMXZP_BJDID=:pOLDBJDID"); + SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); + SQL.ParamByName("pOLDBJDID").Value = txtOLDBJDID2.Value; + SQL.ParamByName("pWHR").Value = CurSession.UserName; + SQL.ParamByName("pWHRID").Value = CurSession.UserId; + SQL.ParamByName("pWHSJ").Value = DateTime.Now; + dberp.ExecSQL(SQL); + } + + updBJDYZZ = true; + } + else + { + SQL.Clear(); + SQL.Add("insert into XLXSBJDYZZ0(XLXSBJDYZZ0_BJDID,XLXSBJDYZZ0_XH,XLXSBJDYZZ0_YZZ01,XLXSBJDYZZ0_YZZ02,XLXSBJDYZZ0_YZZ03,XLXSBJDYZZ0_YZZ04,"); + SQL.Add(" XLXSBJDYZZ0_YZZ05,XLXSBJDYZZ0_YZZ06,XLXSBJDYZZ0_YZZ07,XLXSBJDYZZ0_YZZ08,XLXSBJDYZZ0_YZZ09,XLXSBJDYZZ0_YZZ10, "); + SQL.Add(" XLXSBJDYZZ0_YZZ11,XLXSBJDYZZ0_YZZ12,XLXSBJDYZZ0_YZZ13,XLXSBJDYZZ0_YZZ14,"); + SQL.Add(" XLXSBJDYZZ0_YZZ15,XLXSBJDYZZ0_YZZ16,XLXSBJDYZZ0_YZZ17,XLXSBJDYZZ0_YZZ18,XLXSBJDYZZ0_YZZ19,XLXSBJDYZZ0_YZZ20) "); + SQL.Add("select :pBJDID,XLXSBJDYZZ0_XH,XLXSBJDYZZ0_YZZ01,XLXSBJDYZZ0_YZZ02,XLXSBJDYZZ0_YZZ03,XLXSBJDYZZ0_YZZ04,"); + SQL.Add(" XLXSBJDYZZ0_YZZ05,XLXSBJDYZZ0_YZZ06,XLXSBJDYZZ0_YZZ07,XLXSBJDYZZ0_YZZ08,XLXSBJDYZZ0_YZZ09,XLXSBJDYZZ0_YZZ10, "); + SQL.Add(" XLXSBJDYZZ0_YZZ11,XLXSBJDYZZ0_YZZ12,XLXSBJDYZZ0_YZZ13,XLXSBJDYZZ0_YZZ14,"); + SQL.Add(" XLXSBJDYZZ0_YZZ15,XLXSBJDYZZ0_YZZ16,XLXSBJDYZZ0_YZZ17,XLXSBJDYZZ0_YZZ18,XLXSBJDYZZ0_YZZ19,XLXSBJDYZZ0_YZZ20 "); + SQL.Add(" from XLXSBJDYZZ0"); + SQL.Add(" where XLXSBJDYZZ0_BJDID=:pOLDBJDID"); + SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); + SQL.ParamByName("pOLDBJDID").Value = txtOLDBJDID2.Value; + dberp.ExecSQL(SQL); + + SQL.Clear(); + SQL.Add(" insert into XLXSBJDMXFD "); + SQL.Add(" (XLXSBJDMXFD_BJDID,XLXSBJDMXFD_BJDXH,XLXSBJDMXFD_XLFDYQ,XLXSBJDMXFD_XLWJ,XLXSBJDMXFD_PJZJE,XLXSBJDMXFD_PJZPZ,XLXSBJDMXFD_WHR,XLXSBJDMXFD_WHRID,XLXSBJDMXFD_WHSJ,XLXSBJDMXFD_PJPPQK )"); + SQL.Add(" select :pBJDID,XLXSBJDMXFD_BJDXH,XLXSBJDMXFD_XLFDYQ,XLXSBJDMXFD_XLWJ,XLXSBJDMXFD_PJZJE,XLXSBJDMXFD_PJZPZ,:pWHR,:pWHRID,:pWHSJ,XLXSBJDMXFD_PJPPQK "); + SQL.Add(" from XLXSBJDMXFD"); + SQL.Add(" where XLXSBJDMXFD_BJDID=:pOLDBJDID"); + SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); + SQL.ParamByName("pOLDBJDID").Value = txtOLDBJDID2.Value; + SQL.ParamByName("pWHR").Value = CurSession.UserName; + SQL.ParamByName("pWHRID").Value = CurSession.UserId; + SQL.ParamByName("pWHSJ").Value = DateTime.Now; + dberp.ExecSQL(SQL); + + SQL.Clear(); + SQL.Add(" insert into XLXSBJDMXZP "); + SQL.Add(" (XLXSBJDMXZP_BJDID,XLXSBJDMXZP_BJDXH,XLXSBJDMXZP_ZPXH,XLXSBJDMXZP_DC,XLXSBJDMXZP_DS,XLXSBJDMXZP_PJCZ,XLXSBJDMXZP_PJWJ,XLXSBJDMXZP_PJNJ,"); + SQL.Add(" XLXSBJDMXZP_PJKD,XLXSBJDMXZP_PJJG,XLXSBJDMXZP_PJJE,XLXSBJDMXZP_PJPZ,XLXSBJDMXZP_PJZPZ,XLXSBJDMXZP_WHR,XLXSBJDMXZP_WHRID,XLXSBJDMXZP_WHSJ) "); + SQL.Add(" select :pBJDID,XLXSBJDMXZP_BJDXH,XLXSBJDMXZP_ZPXH,XLXSBJDMXZP_DC,XLXSBJDMXZP_DS,XLXSBJDMXZP_PJCZ,XLXSBJDMXZP_PJWJ,XLXSBJDMXZP_PJNJ,"); + SQL.Add(" XLXSBJDMXZP_PJKD,XLXSBJDMXZP_PJJG,XLXSBJDMXZP_PJJE,XLXSBJDMXZP_PJPZ,XLXSBJDMXZP_PJZPZ,:pWHR,:pWHRID,:pWHSJ "); + SQL.Add(" from XLXSBJDMXZP"); + SQL.Add(" where XLXSBJDMXZP_BJDID=:pOLDBJDID"); + SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); + SQL.ParamByName("pOLDBJDID").Value = txtOLDBJDID2.Value; + SQL.ParamByName("pWHR").Value = CurSession.UserName; + SQL.ParamByName("pWHRID").Value = CurSession.UserId; + SQL.ParamByName("pWHSJ").Value = DateTime.Now; + dberp.ExecSQL(SQL); + + } + } + if (!bWQFZ) + { + if (txtTJYSList.Text.Trim().Contains(",B,"))//B|销售单位 + { + if (!cbxSYDWID.SelectedValue.Trim().Equals(dsOLDBJD.Tables[0].Rows[0]["XLXSBJD_SYDWID"].ToString().Trim())) + { + XLBJD_ZDTJYSInfo.updBJDYZZB(dberp, SQL, cbxSYDWID.SelectedValue.Trim(), cbxBJFLID.SelectedValue.Trim(), txtBJDID.Text.Trim()); + updBJDYZZ = true; + } + } + if (txtTJYSList.Text.Trim().Contains(",8,"))//8|付款期限 + { + if (!cbxFKQXNR.SelectedValue.Trim().Equals(dsOLDBJD.Tables[0].Rows[0]["XLXSBJD_FKQXNR"].ToString().Trim())) + { + XLBJD_ZDTJYSInfo.updBJDYZZ8(dberp, SQL, cbxFKQXNR.SelectedValue.Trim(), cbxBJFLID.SelectedValue.Trim(), txtBJDID.Text.Trim()); + updBJDYZZ = true; + } + } + if (txtTJYSList.Text.Trim().Contains(",1,"))//1|付款方式 + { + if (!cbxPJLX.SelectedValue.Trim().Equals(dsOLDBJD.Tables[0].Rows[0]["XLXSBJD_PJLX"].ToString().Trim())) + { + XLBJD_ZDTJYSInfo.updBJDYZZ1(dberp, SQL, cbxPJLX.SelectedValue.Trim(), cbxBJFLID.SelectedValue.Trim(), txtBJDID.Text.Trim()); + updBJDYZZ = true; + } + } + } + + bool bUpdJGBBJ = false; + string sTJGBFZBLBJ = ""; + if (!bWQFZ) + { + if (XLBJDUtils.IsJGEJGB(cbxJGBID.SelectedValue.Trim())) + { + //if (!cbxJGBID.SelectedValue.Trim().Equals(dsOLDBJD.Tables[0].Rows[0]["XLXSBJD_JGBID"].ToString().Trim()) + // || txtTJ.Value != CMISproConvert.StrToFloat(dsOLDBJD.Tables[0].Rows[0]["XLXSBJD_TJ"].ToString()) + // || txtLJ.Value != CMISproConvert.StrToFloat(dsOLDBJD.Tables[0].Rows[0]["XLXSBJD_LJ"].ToString())) + //{ + // bUpdJGBBJ = true; + //} + bUpdJGBBJ = true;//JGE价格表报价,复制时都要触发一次重新计算 + } + else + { + if (!cbxJGBID.SelectedValue.Trim().Equals(dsOLDBJD.Tables[0].Rows[0]["XLXSBJD_JGBID"].ToString().Trim())) + { + bUpdJGBBJ = true; + } + else + { + if (txtRefOldJGBBJ.Value.Trim().Equals("Y")) + { + bUpdJGBBJ = true; + if (dsOLDBJD.Tables[0].Rows[0]["XLXSBJD_SQRGH"].ToString().Trim().Equals(CurSession.UserId)) + sTJGBFZBLBJ = pzxx.XLXSBJPZ_TJGBFZBLBJ; + } + } + } + } + + if (bUpdJGBBJ) + { + XLBJDCalcUtils.CalcAfterBJDHQChange(dberp, SQL, txtBJDID.Text.Trim(), 1, GetOption(100860000, "BJU002"), GetOption(100860000, "BJU003"), GetOption(100860000, "BJU018"), CurSession.UserId, CurSession.UserName, CalcAction.Copy, sTJGBFZBLBJ, ref sErrMsg); + if (!sTJGBFZBLBJ.Equals(""))//更新表价调整标志为C + { + SQL.Clear(); + SQL.Add(" update XLXSBJDMX set XLXSBJDMX_JGBBJTZ = 'C' where XLXSBJDMX_BJDID = :pBJDID "); + SQL.Add(" and (1<>1 "); + if (sTJGBFZBLBJ.Contains("1"))//表价调整 + SQL.Add(" or isnull(XLXSBJDMX_JGBBJTZ,' ') = 'Y' "); + if (sTJGBFZBLBJ.Contains("2"))//外购产品 + SQL.Add(" or isnull(XLXSBJDMX_WGCPBZ,' ') = 'Y' "); + SQL.Add(" ) "); + SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); + dberp.ExecSQL(SQL); + } + ShowMessage(string.Format("复制完成,并已重新完成{0}、{1}报价计算!", bjflxx.XLXSBJFL_JGBBJBM.Equals("") ? "表价" : bjflxx.XLXSBJFL_JGBBJBM, bjflxx.XLXSBJFL_BJBM.Equals("") ? "报价" : bjflxx.XLXSBJFL_BJBM) + "\r\n"); + } + else + { + if (!bWQFZ) + { + //用txtOLDBJDID2.Value的报价单材料行情、物料行情更新或插入txtBJDID.Text的报价单材料行情、物料行情 + SQL.Clear(); + SQL.Add(" MERGE INTO XLXSBJDCLHQ tag "); + SQL.Add(" using "); + SQL.Add(" ( "); + SQL.Add(" select XLXSBJDCLHQ_BJDID,XLXSBJDCLHQ_BJCLID,XLXSBJDCLHQ_HSJG,XLXSBJDCLHQ_HSJGF,XLXSBJDCLHQ_WSJGF,XLXSBJDCLHQ_WSJG,XLXSBJDCLHQ_JGYBJCLID1,XLXSBJDCLHQ_HSJG1,XLXSBJDCLHQ_WSJG1,XLXSBJDCLHQ_JGBL1 "); + SQL.Add(" from XLXSBJDCLHQ "); + SQL.Add(" where XLXSBJDCLHQ_BJDID = :pOLDBJDID "); + SQL.Add(" ) sor "); + SQL.Add(" on (tag.XLXSBJDCLHQ_BJCLID = sor.XLXSBJDCLHQ_BJCLID "); + SQL.Add(" AND sor.XLXSBJDCLHQ_BJDID = :pOLDBJDID "); + SQL.Add(" AND tag.XLXSBJDCLHQ_BJDID = :pBJDID ) "); + SQL.Add(" when matched then update set tag.XLXSBJDCLHQ_HSJG = sor.XLXSBJDCLHQ_HSJG,tag.XLXSBJDCLHQ_HSJGF = sor.XLXSBJDCLHQ_HSJGF,"); + SQL.Add(" tag.XLXSBJDCLHQ_WSJGF = sor.XLXSBJDCLHQ_WSJGF,tag.XLXSBJDCLHQ_WSJG = sor.XLXSBJDCLHQ_WSJG, "); + SQL.Add(" tag.XLXSBJDCLHQ_JGYBJCLID1 = sor.XLXSBJDCLHQ_JGYBJCLID1,tag.XLXSBJDCLHQ_HSJG1 = sor.XLXSBJDCLHQ_HSJG1, "); + SQL.Add(" tag.XLXSBJDCLHQ_WSJG1 = sor.XLXSBJDCLHQ_WSJG1,tag.XLXSBJDCLHQ_JGBL1 = sor.XLXSBJDCLHQ_JGBL1, "); + SQL.Add(" tag.XLXSBJDCLHQ_WHRID = :pWHRID,tag.XLXSBJDCLHQ_WHR = :pWHR, tag.XLXSBJDCLHQ_WHSJ = :pWHSJ "); + SQL.Add(" when not matched then insert (XLXSBJDCLHQ_BJDID,XLXSBJDCLHQ_BJCLID,XLXSBJDCLHQ_HSJG,XLXSBJDCLHQ_HSJGF,XLXSBJDCLHQ_WSJGF,XLXSBJDCLHQ_WSJG,"); + SQL.Add(" XLXSBJDCLHQ_JGYBJCLID1,XLXSBJDCLHQ_HSJG1,XLXSBJDCLHQ_WSJG1,XLXSBJDCLHQ_JGBL1,XLXSBJDCLHQ_WHRID,XLXSBJDCLHQ_WHR,XLXSBJDCLHQ_WHSJ) "); + SQL.Add(" values(:pBJDID,sor.XLXSBJDCLHQ_BJCLID,sor.XLXSBJDCLHQ_HSJG,sor.XLXSBJDCLHQ_HSJGF,sor.XLXSBJDCLHQ_WSJGF,sor.XLXSBJDCLHQ_WSJG, "); + SQL.Add(" sor.XLXSBJDCLHQ_JGYBJCLID1,sor.XLXSBJDCLHQ_HSJG1,sor.XLXSBJDCLHQ_WSJG1,sor.XLXSBJDCLHQ_JGBL1,:pWHRID,:pWHR,:pWHSJ )"); + SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); + SQL.ParamByName("pOLDBJDID").Value = txtOLDBJDID2.Value.Trim(); + SQL.ParamByName("pWHR").Value = CurSession.UserName; + SQL.ParamByName("pWHRID").Value = CurSession.UserId; + SQL.ParamByName("pWHSJ").Value = DateTime.Now; + dberp.ExecSQL(SQL); + + SQL.Clear(); + SQL.Add(" MERGE INTO XLXSBJDWLHQ tag "); + SQL.Add(" using "); + SQL.Add(" ( "); + SQL.Add(" select XLXSBJDWLHQ_BJDID,XLXSBJDWLHQ_WLID,XLXSBJDWLHQ_HSJG,XLXSBJDWLHQ_HSJGF,XLXSBJDWLHQ_WSJGF,XLXSBJDWLHQ_WSJG,XLXSBJDWLHQ_JGYBJCLID1,XLXSBJDWLHQ_HSJG1,XLXSBJDWLHQ_WSJG1,XLXSBJDWLHQ_JGBL1 "); + SQL.Add(" from XLXSBJDWLHQ "); + SQL.Add(" where XLXSBJDWLHQ_BJDID = :pOLDBJDID "); + SQL.Add(" ) sor "); + SQL.Add(" on (tag.XLXSBJDWLHQ_WLID = sor.XLXSBJDWLHQ_WLID "); + SQL.Add(" AND sor.XLXSBJDWLHQ_BJDID = :pOLDBJDID "); + SQL.Add(" AND tag.XLXSBJDWLHQ_BJDID = :pBJDID ) "); + SQL.Add(" when matched then update set tag.XLXSBJDWLHQ_HSJG = sor.XLXSBJDWLHQ_HSJG,tag.XLXSBJDWLHQ_HSJGF = sor.XLXSBJDWLHQ_HSJGF,"); + SQL.Add(" tag.XLXSBJDWLHQ_WSJGF = sor.XLXSBJDWLHQ_WSJGF,tag.XLXSBJDWLHQ_WSJG = sor.XLXSBJDWLHQ_WSJG, "); + SQL.Add(" tag.XLXSBJDWLHQ_JGYBJCLID1 = sor.XLXSBJDWLHQ_JGYBJCLID1,tag.XLXSBJDWLHQ_HSJG1 = sor.XLXSBJDWLHQ_HSJG1, "); + SQL.Add(" tag.XLXSBJDWLHQ_WSJG1 = sor.XLXSBJDWLHQ_WSJG1,tag.XLXSBJDWLHQ_JGBL1 = sor.XLXSBJDWLHQ_JGBL1, "); + SQL.Add(" tag.XLXSBJDWLHQ_WHRID = :pWHRID,tag.XLXSBJDWLHQ_WHR = :pWHR, tag.XLXSBJDWLHQ_WHSJ = :pWHSJ "); + SQL.Add(" when not matched then insert (XLXSBJDWLHQ_BJDID,XLXSBJDWLHQ_WLID,XLXSBJDWLHQ_HSJG,XLXSBJDWLHQ_HSJGF,XLXSBJDWLHQ_WSJGF,XLXSBJDWLHQ_WSJG, "); + SQL.Add(" XLXSBJDWLHQ_JGYBJCLID1,XLXSBJDWLHQ_HSJG1,XLXSBJDWLHQ_WSJG1,XLXSBJDWLHQ_JGBL1,XLXSBJDWLHQ_WHRID,XLXSBJDWLHQ_WHR,XLXSBJDWLHQ_WHSJ)"); + SQL.Add(" values(:pBJDID,sor.XLXSBJDWLHQ_WLID,sor.XLXSBJDWLHQ_HSJG,sor.XLXSBJDWLHQ_HSJGF,sor.XLXSBJDWLHQ_WSJGF,sor.XLXSBJDWLHQ_WSJG, "); + SQL.Add(" sor.XLXSBJDWLHQ_JGYBJCLID1,sor.XLXSBJDWLHQ_HSJG1,sor.XLXSBJDWLHQ_WSJG1,sor.XLXSBJDWLHQ_JGBL1,:pWHRID,:pWHR,:pWHSJ )"); + SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); + SQL.ParamByName("pOLDBJDID").Value = txtOLDBJDID2.Value.Trim(); + SQL.ParamByName("pWHR").Value = CurSession.UserName; + SQL.ParamByName("pWHRID").Value = CurSession.UserId; + SQL.ParamByName("pWHSJ").Value = DateTime.Now; + dberp.ExecSQL(SQL); + + } + + if (updBJDYZZ) + { + XLBJDCalcUtils.CalcAfterBJDYZZChange(dberp, SQL, txtBJDID.Text.Trim(), 1, "", false, false, false, "", DateTime.MinValue, GetOption(100860000, "BJU002"), GetOption(100860000, "BJU003"), CurSession.UserId, CurSession.UserName, ref sErrMsg); + ShowMessage(string.Format("复制完成,并已重新完成{0}计算!", bjflxx.XLXSBJFL_BJBM.Equals("") ? "报价" : bjflxx.XLXSBJFL_BJBM) + "\r\n"); + } + else + { + XLBJDUtils.UpdateXLXSBJD(dberp, SQL, txtBJDID.Text.Trim(), bjflxx.XLXSBJFL_BJJCLLX, bjflxx.XLXSBJFL_LJJCLLX, bjflxx.XLXSBJFL_ZDXJJCLLX, bjflxx.XLXSBJFL_JYF, "", "", bjflxx.XLXSBJFL_YFWLID, bjflxx.XLXSBJFL_BJHYF); + } + } + } + } + } + //新建保存、编辑保存、复制主记录保存时执行 + if (!ctrlState.Value.Equals("C") + || (ctrlState.Value.Equals("C") && CanCopyMX.Value.Equals("N")) + ) + { + UpdateXLXSBJD(dberp, SQL, bjflxx, true); + + InsertCLCBandJJYZ(dberp, SQL, State, txtBJDID.Text.Trim(), cbxJGBID.SelectedValue.Trim(), datBJRQ.Text.Trim(), CurSession.UserId, CurSession.UserName, GetOption(100860000, "BJU003"), chkJZBJHS.Checked); + + //如果显示最低限价栏目,则在明细记录维护时,已经计算过最低限价了,这里不用重复执行 + if (!bjflxx.XSZDXJ()) + { + XLBJDUtils.UpdateZDXJGS(dberp, SQL, txtBJDID.Text.Trim(), cbxBJFLID.SelectedValue.Trim(), GetOption(100860000, "BJU002"), "", 0); + + } + else + { + XLBJDUtils.UpdateXLXSBJDJCXJ4(dberp, SQL, txtBJDID.Text.Trim()); + } + } + txtOLDBJDID2.Value = txtBJDID.Text.Trim(); + txtOldJGBID.Value = cbxJGBID.SelectedValue.Trim(); + + InsertCLQDorJGBMX(dberp, SQL, txtBJDID.Text.Trim(), cbxJGBID.SelectedValue.Trim(), txtJGCIDS.Text.Trim(), CurSession); + XLBJDCalcUtils.CalBJDTLZL(dberp, SQL, txtBJDID.Text.Trim()); + + + //分页模式下,传入页数和每页显示数,用于控制明细查询结果 + //最后一页记录删除后,应改为查询上一页数据 + if (pgBar.CurrentPageIndex != 1 && (pgBar.CurrentPageIndex - 1) * pgBar.PageSize >= iCountMX) + { + pgBar.CurrentPageIndex = pgBar.CurrentPageIndex - 1; + } + entity.XLXSBJDMX.curPageIndex = pgBar.CurrentPageIndex; + entity.XLXSBJDMX.curPageSize = pgBar.PageSize; + entity.XLXSBJDMX.sXSSXFilter = txtXSSXFilter.Value; + entity.XLXSBJDMX.sXLXHIDFilter = txtXLXHIDFilter.Value; + entity.XLXSBJDMX.sXLGGIDFilter = txtXLGGIDFilter.Value; + entity.XLXSBJDMX.sXLBZIDFilter = txtXLBZIDFilter.Value; + entity.XLXSBJDMX.sDYDJIDFilter = txtDYDJIDFilter.Value; + entity.XLXSBJDMX.sXLYSIDFilter = txtXLYSIDFilter.Value; + entity.XLXSBJDMX.sBJCPFilter = txtBJCPFilter.Value; + entity.XLXSBJDMX.sCPMLFilter = txtCPMLFilter.Value; + entity.XLXSBJDMX.sZHCPMLFilter = txtZHCPMLFilter.Value; + entity.XLXSBJDMX.sJGBBJFilter = txtJGBBJFilter.Value; + entity.XLXSBJDMX.sZDXJJCLFilter = txtZDXJJCLFilter.Value; + entity.XLXSBJDMX.sBZFilter = txtBZFilter.Value; + entity.XLXSBJDMX.sBZBJDIDFilter = PageParam.GetRTrimString("BZBJDID"); + entity.XLXSBJDMX.sCPCFXLBZ = PageParam.GetRTrimString("CPCFXLBZ"); + entity.XLXSBJDMX.BJDID = this.txtBJDID.Text.Trim(); + entity.XLXSBJDMX.sXSYZJEFilter = txtXSJEYZ.Text.Trim(); + entity.XLXSBJDMX.Query(); + grdXLBJDMX.DataSource = entity.XLXSBJDMX.Entites; + grdXLBJDMX.DataBind(); + grdXLBJDMX.SaveDataInfo.SaveDataFlag = DSaveDataFlag.sdNormal; + + + //是否存在“按报价产品校验因子值”的因子(XLXSTZYZ_ABJCPJYYZZ=’Y’),比如短米,且存在型号、规格、标准、电压等级相同的情况下短米值不同的情况。 + ShowBJSLYZZCheckOrZDFX(dberp, SQL, txtBJDID.Text.Trim(), cbxBJFLID.SelectedValue.Trim(), GetOption(100860000, "BJU003"), bjflxx.XLXSBJFL_XTCPBJYZ); + + + // + XLXSBJPZXX pzxx2 = XLBJDUtils.GetXLXSBJPZXX(100860068); + + if (pzxx2.XLXSBJPZ_XMMCCZCF == "Y") + { + if (!txtOLDXM.Value.Equals(txtXM.Text.Trim())) + { + DelXLXSBJZDCZ(dberp, SQL, txtBJDID.Text.Trim()); + InsXLXSBJZDCZ(dberp, SQL, txtBJDID.Text.Trim(), txtXM.Text.Trim(), CurSession); + } + } + + + + txtOLDXM.Value = txtXM.Text.Trim(); + + if (!txtOLDBJDID.Value.Trim().Equals("")) + XLBJDUtils.UpdateTJBZ(dberp, SQL, txtBJDID.Text.Trim(), "Insert"); + + if (divFJXX.Visible) + { + SQL.Clear(); + SQL.Add("select 1 from XLXSBJKZXX where XLXSBJKZXX_BJDID = :pBJDID "); + SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); + DataSet dsKZXX = dberp.OpenDataSet(SQL); + + if (dsKZXX.Tables[0].Rows.Count > 0) + { + SQL.Clear(); + SQL.Add(" update XLXSBJKZXX set XLXSBJKZXX_WHRID = :pWHRID, XLXSBJKZXX_WHR = :pWHR, XLXSBJKZXX_WHSJ = :pWHSJ "); + foreach (string sKey in entity.sFJXXParams.Keys) + { + SQL.Add(" ," + sKey + " = :" + sKey); + SQL.ParamByName(sKey).Value = entity.sFJXXParams[sKey]; + } + SQL.Add(" where XLXSBJKZXX_BJDID = :pBJDID "); + SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); + SQL.ParamByName("pWHRID").Value = CurSession.UserId; + SQL.ParamByName("pWHR").Value = CurSession.UserName; + SQL.ParamByName("pWHSJ").Value = CMISproConvert.ConvertTime(DateTime.Now); ; + dberp.ExecSQL(SQL); + } + else + { + + SQL.Clear(); + SQL.Add("insert into XLXSBJKZXX"); + SQL.Add("(XLXSBJKZXX_BJDID,"); + foreach (string sKey in entity.sFJXXParams.Keys) + { + SQL.Add(sKey + ","); + } + SQL.Add(" XLXSBJKZXX_WHRID, XLXSBJKZXX_WHR, XLXSBJKZXX_WHSJ)"); + SQL.Add("values"); + SQL.Add("(:XLXSBJKZXX_BJDID,"); + foreach (string sKey in entity.sFJXXParams.Keys) + { + SQL.Add(":" + sKey + ","); + SQL.ParamByName(sKey).Value = entity.sFJXXParams[sKey]; + } + SQL.Add(" :XLXSBJKZXX_WHRID, :XLXSBJKZXX_WHR, :XLXSBJKZXX_WHSJ)"); + SQL.ParamByName("XLXSBJKZXX_BJDID").Value = txtBJDID.Text.Trim(); + SQL.ParamByName("XLXSBJKZXX_WHRID").Value = CurSession.UserId; + SQL.ParamByName("XLXSBJKZXX_WHR").Value = CurSession.UserName; + SQL.ParamByName("XLXSBJKZXX_WHSJ").Value = CMISproConvert.ConvertTime(DateTime.Now); + dberp.ExecSQL(SQL); + } + } + + dberp.CommitTrans(); + } + catch (Exception ex) + { + dberp.RollbackTrans(); + ShowMessage(sErrMsg + " " + ex.Message); + txtLogicValid.Value = ""; + return false; + } + + //弱校验放在强校验之后显示----共有三处赋值。 + if (!txtLogicValid.Value.Trim().Equals("")) + ShowMessage(txtLogicValid.Value); + + if (!sLogicValid.Trim().Equals("")) + ShowMessage(sLogicValid); + + + txtLogicValid.Value = ""; + + txtOLDTJ.Value = txtTJ.Value.ToString(); + txtOLDLJ.Value = txtLJ.Value.ToString(); + + entity.sYBJDID = ""; + setFJXXControlState(divFJXX, false, txtBJDID.Text, true, ""); + XLXSBJFJXX.UpdateLBXSFJXX(txtBJDID.Text.Trim()); + XLBJDUtils.SyncXLXSBJXLGGTHB_ByXLXSBJDMX_Batch(dberp, CurSession, txtBJDID.Text.Trim()); + + LoadRecord(); + RefreshForm(); + SetControlState(); + FormAreaUpdate(); + return base.Master_AfterSaveAction(sender, e); + } + + protected override bool Master_BeforeDeleteAction(object sender, EventArgs e) + { + string sSQL = string.Format("select top 1 XLXSBJYLZD_BJDID from XLXSBJYLZD where XLXSBJYLZD_BJDID='{0}'", txtBJDID.Text.Trim()); + if (CMISproDataBase.ExistsRecord("DBERP", sSQL)) + { + ShowMessage("已申请材料用量制定,不允许删除!"); + return false; + } + + sSQL = string.Format("select 1 from BJD where BJD_BJDID='{0}'", txtBJDID.Text.Trim()); + if (CMISproDataBase.ExistsRecord("DBERP", sSQL)) + { + ShowMessage("报价单已反馈,不允许删除!"); + return false; + } + + XLBJDUtils.UpdateTJBZ(txtBJDID.Text.Trim(), "Delete"); + + return base.Master_BeforeDeleteAction(sender, e); + } + + protected override void Grid_RowDataBound(object sender, GridViewRowEventArgs e) + { + if (e.Row.RowType == DataControlRowType.DataRow) + { + //这里借用全局变量tmpXJDYBJTXS、tmpBJDYBJTXS、tmpBJQSTXS、tmpZDXJJCLTXS处理,是因为base.InitPage()之前报价分类控件还没有值 + if (tmpXJDYBJTXS.Trim().Equals("") || tmpBJDYBJTXS.Trim().Equals("") || tmpBJQSTXS.Trim().Equals("")) + { + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); + tmpXJDYBJTXS = bjflxx.XLXSBJFL_XJDYBJTXS; + tmpBJDYBJTXS = bjflxx.XLXSBJFL_BJDYBJTXS; + tmpBJQSTXS = bjflxx.XLXSBJFL_BJQSTXS; + tmpZDXJJCLTXS = bjflxx.XLXSBJFL_ZDXJJCLTXS; + iZDXJJCLXX = CMISproConvert.StrToFloat(bjflxx.XLXSBJFL_ZDXJJCLXX,0); + iBJXSWS=CMISproConvert.StrToInt(bjflxx.XLXSBJFL_CPBJMRXSWS,iXSWS); + if (iBJXSWS > iXSWS) + iBJXSWS = iXSWS; + + } + + double iJGBBJ = CMISproConvert.StrToFloat(grdXLBJDMX.GetCellByFieldName("XLXSBJDMX_JGBBJ", e.Row).Text.Trim()); + double iCPBJ = CMISproConvert.StrToFloat(grdXLBJDMX.GetCellByFieldName("XLXSBJDMX_CPBJ", e.Row).Text.Trim()); + double iZDXJJCL = CMISproConvert.StrToFloat(grdXLBJDMX.GetCellByFieldName("XLXSBJDMX_ZDXJJCL", e.Row).Text.Trim()); + double iCPBJXJ = CMISproConvert.StrToFloat(grdXLBJDMX.GetCellByFieldName("XLXSBJDMX_CPBJXJ", e.Row).Text.Trim()); + + if (RoundX(iCPBJXJ, iBJXSWS) < RoundX(iCPBJ, iBJXSWS) && !tmpXJDYBJTXS.Equals("")) + { + grdXLBJDMX.GetCellByFieldName("XLXSBJDMX_CPBJXJ", e.Row).Attributes["BackColor"] = tmpXJDYBJTXS; + grdXLBJDMX.GetCellByFieldName("XLXSBJDMX_CPBJ", e.Row).Attributes["BackColor"] = tmpXJDYBJTXS; + } + if (RoundX(iCPBJ, iBJXSWS) < RoundX(iJGBBJ, iBJXSWS) && !tmpBJDYBJTXS.Equals("")) + { + grdXLBJDMX.GetCellByFieldName("XLXSBJDMX_CPBJ", e.Row).Attributes["BackColor"] = tmpBJDYBJTXS; + } + if (iJGBBJ == 0 && !tmpBJQSTXS.Equals("")) + { + e.Row.BackColor = System.Drawing.ColorTranslator.FromHtml(tmpBJQSTXS); + //e.Row.Style.Add(HtmlTextWriterStyle.Color, "#FFFFFF"); + } + + if (iJGBBJ < 0) + { + e.Row.BackColor = System.Drawing.ColorTranslator.FromHtml("#FF6E69"); + } + + if (iZDXJJCL < iZDXJJCLXX && !tmpZDXJJCLTXS.Equals("")) + { + grdXLBJDMX.GetCellByFieldName("XLXSBJDMX_ZDXJJCL", e.Row).Attributes["BackColor"] = tmpZDXJJCLTXS; + } + //手动调整过价格表表价或复制保留的表价则栏目设置为黄色 + if (grdXLBJDMX.GetCellByFieldName("XLXSBJDMX_JGBBJTZ", e.Row).Text.Trim().Equals("Y") || grdXLBJDMX.GetCellByFieldName("XLXSBJDMX_JGBBJTZ", e.Row).Text.Trim().Equals("C")) + { + grdXLBJDMX.GetCellByFieldName("XLXSBJDMX_JGBBJ", e.Row).Attributes["BackColor"] = "#FFFF00"; + } + if (grdXLBJDMX.GetCellByFieldName("XLXSBJDMX_BJTJCZ", e.Row).Text.Trim().Equals("SSBJ")) + { + grdXLBJDMX.GetCellByFieldName("XLXSBJDMX_CPBJ", e.Row).Attributes["BackColor"] = "#FFFF00"; + } + + //报价单行情料价小于0,字体显示为红色,代表存在有材料用量但没材料价格的情况 + if (CMISproConvert.StrToFloat(grdXLBJDMX.GetCellByFieldName("XLXSBJDMX_BJDHQCLCB", e.Row).Text.Trim()) < 0) + grdXLBJDMX.GetCellByFieldName("XLXSBJDMX_BJDHQCLCB", e.Row).Attributes["ForeColor"] = "#ff0000"; + + //手动调整过报价单行情料价则栏目设置为黄色 + if (grdXLBJDMX.GetCellByFieldName("XLXSBJDMX_BJDHQCLCBTZ", e.Row).Text.Trim().Equals("Y")) + { + grdXLBJDMX.GetCellByFieldName("XLXSBJDMX_BJDHQCLCB", e.Row).Attributes["BackColor"] = "#FFFF00"; + } + + if (!txtPFYZID.Text.Trim().Equals("")) + { + if (grdXLBJDMX.GetCellByFieldName("HasFDJL", e.Row).Text.Trim().Equals("Y")) + { + grdXLBJDMX.GetCellByFieldName("TZYZ_" + txtPFYZID.Text.Trim(), e.Row).Attributes["BackColor"] = "#8784F0"; + } + } + + if (XLBJDUtils.GetXLXSBJPZXX(100860000).XLXSBJPZ_PFBJRBJ == "Y") + { + if (grdXLBJDMX.GetCellByFieldName("HasFDJL", e.Row).Text.Trim().Equals("Y")) + { + grdXLBJDMX.GetCellByFieldName("XLXSBJDMX_PJJE", e.Row).Attributes["BackColor"] = "#8784F0"; + } + } + + if (grdXLBJDMX.GetCellByFieldName("CPCF", e.Row).Text.Trim().Equals("Y")) + { + grdXLBJDMX.GetCellByFieldName("XLXSBJDMX_XLXHID", e.Row).Attributes["BackColor"] = "#87CEFA"; + grdXLBJDMX.GetCellByFieldName("XLXSBJDMX_XLGGID", e.Row).Attributes["BackColor"] = "#87CEFA"; + grdXLBJDMX.GetCellByFieldName("XLXSBJDMX_XLBZID", e.Row).Attributes["BackColor"] = "#87CEFA"; + grdXLBJDMX.GetCellByFieldName("XLBZ_XLBZMS", e.Row).Attributes["BackColor"] = "#87CEFA"; + grdXLBJDMX.GetCellByFieldName("XLXSBJDMX_DYDJID", e.Row).Attributes["BackColor"] = "#87CEFA"; + } + if (grdXLBJDMX.GetCellByFieldName("CPSLCF", e.Row).Text.Trim().Equals("Y")) + { + grdXLBJDMX.GetCellByFieldName("XLXSBJDMX_XLXHID", e.Row).Attributes["BackColor"] = "#87CEFA"; + grdXLBJDMX.GetCellByFieldName("XLXSBJDMX_XLGGID", e.Row).Attributes["BackColor"] = "#87CEFA"; + grdXLBJDMX.GetCellByFieldName("XLXSBJDMX_XLBZID", e.Row).Attributes["BackColor"] = "#87CEFA"; + grdXLBJDMX.GetCellByFieldName("XLBZ_XLBZMS", e.Row).Attributes["BackColor"] = "#87CEFA"; + grdXLBJDMX.GetCellByFieldName("XLXSBJDMX_DYDJID", e.Row).Attributes["BackColor"] = "#87CEFA"; + grdXLBJDMX.GetCellByFieldName("XLXSBJDMX_BJSL", e.Row).Attributes["BackColor"] = "#87CEFA"; + } + if (grdXLBJDMX.GetCellByFieldName("GGSLCF", e.Row).Text.Trim().Equals("Y")) + { + grdXLBJDMX.GetCellByFieldName("XLXSBJDMX_XLGGID", e.Row).Attributes["BackColor"] = "#87CEFA"; + grdXLBJDMX.GetCellByFieldName("XLXSBJDMX_BJSL", e.Row).Attributes["BackColor"] = "#87CEFA"; + } + + string sBZTXYS = grdXLBJDMX.GetCellByFieldName("BZTXYS", e.Row).Text.Trim(); + if (!sBZTXYS.Equals("")) + { + grdXLBJDMX.GetCellByFieldName("XLXSBJDMX_XLBZID", e.Row).Attributes["BackColor"] = sBZTXYS; + grdXLBJDMX.GetCellByFieldName("XLBZ_XLBZMS", e.Row).Attributes["BackColor"] = sBZTXYS; + } + } + + double TJYZValue = 0; + for (int i = 1; i <= 20; i++) + { + string fieldName = "TZYZ_BJ" + i.ToString("00"); + string key = "BJ" + i.ToString("00"); + TJYZValue = CMISproConvert.StrToFloat(grdXLBJDMX.GetCellByFieldName(fieldName, e.Row).Text.Trim()); + if (dicTJYZ.ContainsKey(key)) + { + TJYZEntity entity = dicTJYZ[key]; + bool needRed = false; + + double maxValue = entity.TJBZDYZZ; + double minValue = entity.TJBZXYZZ; + + if (minValue != 0 && TJYZValue < minValue) + needRed = true; + if (maxValue != 0 && TJYZValue > maxValue) + needRed = true; + if (needRed) + { + grdXLBJDMX.GetCellByFieldName(fieldName, e.Row).Attributes["BackColor"] = "#FF4D4D"; + } + } + } + + base.Grid_RowDataBound(sender, e); + } + + protected override void BeforeAttach() + { + _AttDoc.WorkTableName = "XLXSBJD"; + _AttDoc.UpdCondition = string.Format(" XLXSBJD_BJDID='{0}'", this.txtBJDID.Text.Trim()); + _AttDoc.FJSFieldName = "XLXSBJD_FJS"; + _AttDoc.FJSComponentName = txtFJS.ClientID; + + base.BeforeAttach(); + } + + protected override bool DataLogicValid() + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + DataSet ds; + if (cbxJGBID.SelectedValue.Trim().Equals("")) + { + ShowMessage("价格表--不允许为空!"); + return false; + } + if (datBJRQ.Text.Trim().Equals("")) + { + ShowMessage("报价日期--不允许为空!"); + return false; + } + if (cbxKHID.SelectedValue.Trim().Equals("")) + { + if (cbxSYDWID.SelectedValue.Trim().Equals("")) + { + ShowMessage("销售单位--不允许为空!"); + return false; + } + } + //启用运费因子,校验项目所在地不为空 + if (cbxKHSZDPRO.SelectedValue.Trim().Equals("") || cbxKHSZDCITY.SelectedValue.Trim().Equals("")) + { + if(CMISproDataBase.ExistsRecord("DBERP",string.Format(@"select 1 from XLXSTZYZ where XLXSTZYZ_TJMDID = 100860071 and XLXSTZYZ_MXBH='BJD' + and exists(select 1 from XLXSBJFLYZ where XLXSBJFLYZ_YZID=XLXSTZYZ_YZID and XLXSBJFLYZ_BJFLID='{0}' )", cbxBJFLID.SelectedValue.Trim()))) + { + ShowMessage("项目所在地--不允许为空!"); + return false; + } + } + + if (GetOption(100860000,"BJU062").Equals("Y")) + { + if (!Regex.IsMatch(txtXM.Text.Trim(), @"^[\u4e00-\u9fa50-9]*$")) + { + ShowMessage("项目名称不合法,只能输入中文和数字!"); + return false; + } + } + + if (chkYZB.Checked) + { + if (datYZBRQ.Text.Trim().Equals("")) + { + ShowMessage("预中标日期--不允许为空!"); + return false; + } + + if (datJHJHRQS.Text.Trim().Equals("")) + { + ShowMessage("计划交货日期始--不允许为空!"); + return false; + } + + if (datJHJHRQZ.Text.Trim().Equals("")) + { + ShowMessage("计划交货日期止--不允许为空!"); + return false; + } + + if (txtYZBSL.Value<=0) + { + ShowMessage("预中标数量必须大于0!"); + return false; + } + + if (txtYZBJE.Value <= 0) + { + ShowMessage("预中标金额必须大于0!"); + return false; + } + } + + XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860000); + + if (!txtKH.Text.Trim().Equals("") && pzxx.XLXSBJPZ_XZKHYQ=="Q") + { + //配置了客户检索来源“KHXX|售前客户”,则报价单、销售员报价申请模块保存时需要控制维护的“客户”一定要在售前客户表中存在(客户为空不校验) + if (pzxx.XLXSBJPZ_KHJSLY=="KHXX") + { + SQL.Clear(); + SQL.Add("select KHXX_MC from KHXX where KHXX_MC = :pKHXX_MC "); + SQL.ParamByName("pKHXX_MC").Value = txtKH.Text.Trim(); + ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count == 0) + { + ShowMessage("售前客户信息不存在,不允许保存!"); + return false; + } + + } + + //若客户检索来源“KH|客户”,则报价单、销售员报价申请模块保存时需要控制维护的“客户”一定要在客户表中存在(客户为空不校验) + if (pzxx.XLXSBJPZ_KHJSLY=="KH") + { + SQL.Clear(); + SQL.Add("select KH_MC from KH where KH_MC = :pKH_MC "); + SQL.ParamByName("pKH_MC").Value = txtKH.Text.Trim(); + ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count == 0) + { + ShowMessage("客户信息不存在,不允许保存!"); + return false; + } + } + + //若项目检索来源“YXXM|售前项目”,则报价单、销售员报价申请模块保存时需要控制维护的“项目”一定要在售前项目中存在(项目为空不校验),且“项目”一定要是“客户”下的售前项目(客户为空不校验) + } + + //若项目检索来源“YXXM|售前项目”,则报价单、销售员报价申请模块保存时需要控制维护的“项目”一定要在售前项目中存在(项目为空不校验),且“项目”一定要是“客户”下的售前项目(客户为空不校验) + if (!txtXM.Text.Trim().Equals("") && pzxx.XLXSBJPZ_XZXMYQ=="Q") + { + if (pzxx.XLXSBJPZ_XMJSLY=="YXXM") + { + SQL.Clear(); + SQL.Add("select YXXM_MC from YXXM where YXXM_MC = :pYXXM_MC "); + SQL.ParamByName("pYXXM_MC").Value = txtXM.Text.Trim(); + ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count == 0) + { + ShowMessage("项目信息不存在,不允许保存!"); + return false; + } + else + { + if (!txtKH.Text.Trim().Equals("")) + { + SQL.Clear(); + SQL.Add("select 1 from YXXM "); + SQL.Add(" left join KHXX on KHXX_CRMKHID = YXXM_CRMKHID "); + SQL.Add(" where YXXM_MC = :pYXXM_MC and KHXX_MC =:pKHXX_MC "); + SQL.ParamByName("pYXXM_MC").Value = txtXM.Text.Trim(); + SQL.ParamByName("pKHXX_MC").Value = txtKH.Text.Trim(); + ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count == 0) + { + ShowMessage("项目与客户信息不匹配,不允许保存!"); + return false; + } + } + } + } + } + + //若“100860062|销售报价业务配置”模块配置了客户必填,则报价单、销售员报价申请模块保存时需要控制“客户”不允许为空 + if (pzxx.XLXSBJPZ_KHBT=="Y") + { + if (txtKH.Text.Trim().Equals("")) + { + ShowMessage("客户不允许为空"); + return false; + } + } + //若配置了项目必填,则报价单、销售员报价申请模块保存时需要控制“项目”不允许为空。 + if (pzxx.XLXSBJPZ_XMBT=="Y") + { + if (txtXM.Text.Trim().Equals("")) + { + ShowMessage("项目不允许为空"); + return false; + } + } + + + + + + + + string sHasYLDZSQ = ""; + if (ControlState == TControlState.ctsEdit) + { + string sYLZDMXTZ=XLBJDUtils.GetXLXSBJPZXX(100860064).XLXSBJPZ_YLZDMXTZ; + string sYLZDMsg = string.Empty; + for (int i = 0; i < grdXLBJDMX.NewRows.Count; i++) + { + sHasYLDZSQ = grdXLBJDMX.GetValueByFieldName("HasYLDZSQ", grdXLBJDMX.NewRows[i]).Trim(); + + if (grdXLBJDMX.NewRows[i].Attributes["EditAction"] == "D") + { + if (sHasYLDZSQ.Equals("Y")) + { + ShowMessage("不允许删除已经生成用量制定申请的记录!"); + return false; + + } + } + + + if (sYLZDMXTZ == "Y" && sHasYLDZSQ.Equals("Y")) + { + double dBJDXH = CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XH", grdXLBJDMX.NewRows[i]).Trim()); + double dXSSX = CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XSSX", grdXLBJDMX.NewRows[i]).Trim()); + string sXLXHID = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XLXHID", grdXLBJDMX.NewRows[i]).Trim(); + string sXLGGID = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XLGGID", grdXLBJDMX.NewRows[i]).Trim(); + string sXLBZID = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XLBZID", grdXLBJDMX.NewRows[i]).Trim(); + string sDYDJID = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_DYDJID", grdXLBJDMX.NewRows[i]).Trim(); + + SQL.Clear(); + SQL.Add(@" select XLXSBJYLZD_BJDID from XLXSBJYLZD + where XLXSBJYLZD_BJDID=:pBJDID and exists( + select 1 from XLXSBJYLZDMX + where (XLXSBJYLZDMX_BJDXLXHID<>:pBJDXLXHID or XLXSBJYLZDMX_BJDXLGGID<>:pBJDXLGGID + or XLXSBJYLZDMX_BJDXLBZID<>:pBJDXLBZID or XLXSBJYLZDMX_BJDDYDJID<>:pBJDDYDJID ) + and XLXSBJYLZDMX_SQDH=XLXSBJYLZD_SQDH and XLXSBJYLZDMX_BJDXH=:pBJDXH + ) "); + SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); + SQL.ParamByName("pBJDXLXHID").Value = sXLXHID; + SQL.ParamByName("pBJDXLGGID").Value = sXLGGID; + SQL.ParamByName("pBJDXLBZID").Value = sXLBZID; + SQL.ParamByName("pBJDDYDJID").Value = sDYDJID; + SQL.ParamByName("pBJDXH").Value = dBJDXH; + ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + sYLZDMsg += string.Format("[{0}] [{1} {2} {3} {4}]\r\n", dXSSX, sXLXHID, sXLGGID, sXLBZID, sDYDJID); + } + + + } + + } + + if (!string.IsNullOrEmpty(sYLZDMsg)) + { + Confirm.Register("IsQD", "如下报价单明细型号规格标准电压等级与材料用量制定申请明细不一致,是否继续?\r\n" + sYLZDMsg); + Confirm.ShowBtnText = TConfirm.cBtnText.Yes_No; + if (Confirm.GetValue("IsQD").Trim().Equals("")) + { + Confirm.Ask("IsQD"); + return false; + } + else if (Confirm.GetValue("IsQD").Trim().Equals("N")) + { + //表示进行了提示并选择了取消,直接返回或其他处理 + Confirm.Clear(); + return false; + } + else if (Confirm.GetValue("IsQD").Trim().Equals("Y")) + { + //表示进行了提示并选择了确认 + Confirm.Clear(); + + } + } + + + } + + + //互斥校验----若当前报价分类适用的因子中因子1、2、3存在互斥关系,则需要循环每一条明细记录,控制因子1、2、3最多仅存在一个不为0的因子值 + Dictionary dicBJDYZ = XLBJDUtils.GetBJDYZ(cbxBJFLID.SelectedValue.Trim()); + int count = 0; + string sHCYZIDList = dicBJDYZ["HCYZIDList"]; + string sHCYZMCList = dicBJDYZ["HCYZMCList"]; + string[] sTemp = sHCYZIDList.Split(new Char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); + if (sTemp.Length >= 2) + { + int tmpRowNo = 0; + foreach (GridViewRow row in grdXLBJDMX.NewRows) + { + count = 0; + if (!row.Attributes["EditAction"].Equals("D")) + { + tmpRowNo++; + for (int m = 0; m < sTemp.Length; m++) + { + if (CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName("TZYZ_" + sTemp[m].ToString().Trim(), row).Trim()) != 0) + { + count++; + } + } + if (count >= 2) + { + break; + } + } + } + if (count >= 2) + { + ShowMessage("第" + tmpRowNo.ToString() + "行:" + sHCYZMCList + "-不允许同时维护!"); + return false; + } + + } + + + //相同项目的进行提示 + //string sMsg = ""; + //if (!txtXM.Text.Trim().Equals("")) + //{ + // if (!CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSBJZDBJYXX where XLXSBJZDBJYXX_XXLX='XM' and XLXSBJZDBJYXX_XXNR='{0}'", txtXM.Text.Trim()))) + // { + // SQL.Clear(); + // SQL.Add(" SELECT XLXSBJD_BJDID FROM XLXSBJD WHERE XLXSBJD_XMMC= :pXLXSBJD_XM and XLXSBJD_BJDID <> :pXLXSBJD_BJDID order by XLXSBJD_BJRQ desc "); + // SQL.ParamByName("pXLXSBJD_XM").Value = txtXM.Text.Trim(); + // SQL.ParamByName("pXLXSBJD_BJDID").Value = txtBJDID.Text.Trim(); + // ds = dberp.OpenDataSet(SQL); + // if (ds.Tables[0].Rows.Count > 0) + // { + // if (ds.Tables[0].Rows.Count >= 11) + // { + // for (int i = 0; i < 10; i++) + // { + // sMsg = sMsg + ds.Tables[0].Rows[i]["XLXSBJD_BJDID"].ToString().Trim() + "、"; + // } + // sMsg = sMsg.TrimEnd('、'); + // sMsg = sMsg + "……"; + // } + // else + // { + // for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + // { + // sMsg = sMsg + ds.Tables[0].Rows[i]["XLXSBJD_BJDID"].ToString().Trim() + "、"; + // } + // sMsg = sMsg.TrimEnd('、'); + // } + // txtLogicValid.Value = "该项目已经在如下报价单中维护:" + sMsg + "\r\n"; + // } + // } + //} + + + if (ControlState == TControlState.ctsCopy) + { + if (CanCopyMX.Value.Equals("Y")) + { + if (!XLBJDUtils.IsJGEJGB(cbxJGBID.SelectedValue.Trim())) + { + if (cbxJGBID.SelectedValue.Trim().Equals(txtOldJGBID.Value.Trim())) + { + if (XLBJDUtils.IFTJBXYBGJGML(cbxJGBID.SelectedValue.Trim())) + { + Confirm.Register("IsQD", "是否按价格表最新价刷新表价、重算报价?"); + Confirm.ShowBtnText = TConfirm.cBtnText.Yes_No; + if (Confirm.GetValue("IsQD").Trim().Equals("")) + { + Confirm.Ask("IsQD"); + return false; + } + else if (Confirm.GetValue("IsQD").Trim().Equals("N")) + { + //表示进行了提示并选择了取消,直接返回或其他处理 + Confirm.Clear(); + txtRefOldJGBBJ.Value = "N"; + } + else if (Confirm.GetValue("IsQD").Trim().Equals("Y")) + { + //表示进行了提示并选择了确认 + Confirm.Clear(); + txtRefOldJGBBJ.Value = "Y"; + } + } + } + } + } + } + + + if (ControlState == TControlState.ctsCopy) + { + ctrlState.Value = "C"; + } + else if (ControlState == TControlState.ctsInsert) + { + ctrlState.Value = "I"; + } + else if (ControlState == TControlState.ctsEdit) + { + ctrlState.Value = "E"; + } + + //分页模式下,处理显示序号 + if (!IsFilterState())//如果处于行过滤状态下,则显示序号不进行自动处理,而是按最大号+1保存 + { + SetXssxBeforeSave(txtBJDID.Text.Trim(), pgBar.CurrentPageIndex, pgBar.PageSize); + } + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); + string sTLJMsg = ""; + if (!bjflxx.XLXSBJFL_TBJCLID.Equals("")) + { + if (txtTJ.Value == 0) + sTLJMsg += "铜价"; + } + if (!bjflxx.XLXSBJFL_LBJCLID.Equals("")) + { + if (txtLJ.Value == 0) + { + if (!sTLJMsg.Equals("")) + sTLJMsg += "、"; + sTLJMsg += "铝价"; + } + } + if (!sTLJMsg.Equals("")) + { + ShowMessage(sTLJMsg + "不允许为0!"); + return false; + } + + + if (divFJXX.Visible) + { + string sSZJYXX = ""; + DataSet dsFJXXSZ = XLBJDUtils.GetKZXX(); + entity.sFJXXParams.Clear(); + for (int i = 0; i < dsFJXXSZ.Tables[0].Rows.Count; i++) + { + string sXSBZ = dsFJXXSZ.Tables[0].Rows[i]["XLXSBJKZXXSZ_XSBZ"].ToString().Trim(); + string sWPID = txtWPID.Value.Trim().Equals("") ? "0010" : txtWPID.Value.Trim(); + if (!sXSBZ.Equals("")) + { + sXSBZ = "," + sXSBZ + ","; + if (!sXSBZ.Contains("," + sWPID + ",")) + { + continue; + } + } + string SYBJFLID = dsFJXXSZ.Tables[0].Rows[i]["XLXSBJKZXXSZ_SYBJFLID"].ToString().Trim(); + string sBJFLID = cbxBJFLID.SelectedValue.Trim(); + if (!SYBJFLID.Equals("")) + { + SYBJFLID = "," + SYBJFLID + ","; + if (!SYBJFLID.Contains("," + sBJFLID + ",")) + { + continue; + } + } + string sWHBZ = dsFJXXSZ.Tables[0].Rows[i]["XLXSBJKZXXSZ_WHBZ"].ToString().Trim(); + if (!sWHBZ.Equals("")) + { + sWHBZ = "," + sWHBZ + ","; + if (!sWHBZ.Contains("," + sWPID + ",")) + { + continue; + } + } + //entity.sKZXXParams.Add(); + string sDYZD = "XLXSBJKZXX_" + dsFJXXSZ.Tables[0].Rows[i]["XLXSBJKZXXSZ_DYZD"].ToString().Trim(); + string sValue = ""; + if (dsFJXXSZ.Tables[0].Rows[i]["XLXSBJKZXXSZ_SJLX"].ToString().Trim().Equals("A")) + { + gtNumTextBox numTextBox = (gtNumTextBox)this.CurMaster.ContentFormControl.FindControl("txt" + sDYZD); + if (numTextBox != null) + sValue = numTextBox.Value.ToString(); + if (sValue.Equals("0")) + sValue = ""; + } + else if (dsFJXXSZ.Tables[0].Rows[i]["XLXSBJKZXXSZ_SJLX"].ToString().Trim().Equals("B")) + { + //字符型 + if (dsFJXXSZ.Tables[0].Rows[i]["XLXSBJKZXXSZ_SRFS"].ToString().Trim().Equals("A"))//直接输入 + { + gtTextBox textBox = (gtTextBox)this.CurMaster.ContentFormControl.FindControl("txt" + sDYZD); + if (textBox != null) + sValue = textBox.Text.Trim(); + } + else if (dsFJXXSZ.Tables[0].Rows[i]["XLXSBJKZXXSZ_SRFS"].ToString().Trim().Equals("B"))//下拉单选 + { + gtComboBox comboBox = (gtComboBox)this.CurMaster.ContentFormControl.FindControl("cbx" + sDYZD); + if (comboBox != null) + { + sValue = comboBox.SelectedValue.Trim(); + if (getStringByte(sValue) > 250) + { + ShowMessage(dsFJXXSZ.Tables[0].Rows[i]["XLXSBJKZXXSZ_MC"].ToString().Trim() + "的选项长度已超过250字节,请重新选择!"); + return false; + } + } + } + else if (dsFJXXSZ.Tables[0].Rows[i]["XLXSBJKZXXSZ_SRFS"].ToString().Trim().Equals("C"))//下拉多选 + { + gtCheckedDropDownList checkedDropDownList = (gtCheckedDropDownList)this.CurMaster.ContentFormControl.FindControl("cbx" + sDYZD); + if (checkedDropDownList != null) + { + sValue = checkedDropDownList.SelectedValue.Trim(); + if (getStringByte(sValue) > 250) + { + ShowMessage(dsFJXXSZ.Tables[0].Rows[i]["XLXSBJKZXXSZ_MC"].ToString().Trim() + "的选项长度已超过250字节,请重新选择!"); + return false; + } + } + } + } + else if (dsFJXXSZ.Tables[0].Rows[i]["XLXSBJKZXXSZ_SJLX"].ToString().Trim().Equals("D")) + { + //字符型 + if (dsFJXXSZ.Tables[0].Rows[i]["XLXSBJKZXXSZ_SRFS"].ToString().Trim().Equals("A"))//直接输入 + { + gtTextBox textBox = (gtTextBox)this.CurMaster.ContentFormControl.FindControl("txt" + sDYZD); + if (textBox != null) + sValue = textBox.Text.Trim(); + } + } + else if (dsFJXXSZ.Tables[0].Rows[i]["XLXSBJKZXXSZ_SJLX"].ToString().Trim().Equals("C")) + { + gtDateTimeTextBox dateTimeTextBox = (gtDateTimeTextBox)this.CurMaster.ContentFormControl.FindControl("dat" + sDYZD); + if (dateTimeTextBox != null) + sValue = dateTimeTextBox.Text.Trim(); + if (sValue.Equals("")) + sValue = null; + } + if (String.IsNullOrEmpty(sValue) && dsFJXXSZ.Tables[0].Rows[i]["BT"].ToString().Equals("Y")) + { + if (sDYZD.Contains("KZSZ")) + { + if (!sSZJYXX.Equals("")) + sSZJYXX += "、"; + sSZJYXX += dsFJXXSZ.Tables[0].Rows[i]["XLXSBJKZXXSZ_MC"].ToString().Trim(); + } + else + { + ShowMessage(dsFJXXSZ.Tables[0].Rows[i]["XLXSBJKZXXSZ_MC"].ToString().Trim() + "不允许为空!"); + return false; + } + } + entity.sFJXXParams.Add(sDYZD, sValue); + } + if (!sSZJYXX.Equals("")) + ShowMessage(sSZJYXX + "存入0值!"); + } + + + for (int i = 0; i < grdXLBJDMX.NewRows.Count; i++) + { + if (grdXLBJDMX.NewRows[i].Attributes["EditAction"] != "D") + { + string sBJDHQCLCBTZ = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_BJDHQCLCBTZ", grdXLBJDMX.NewRows[i]).Trim(); + if (sBJDHQCLCBTZ.Equals("Y")) + { + double dBJDHQCLCB = CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_BJDHQCLCB", grdXLBJDMX.NewRows[i]).Trim()); + if (dBJDHQCLCB < 0) + { + ShowMessage("手动调整报价单行情料价不允许小于0!"); + return false; + } + } + } + + } + + return base.DataLogicValid(); + } + + protected override void SetComboxItems() + { + if (ControlState == TControlState.ctsBrowse) + { + + + TComboBox.SetComboBox("DBERP", cbxPJLX, string.Format("select SFPJ_PJLX,case isnull(SFPJ_TYBZ,' ') when 'Y' then rtrim(SFPJ_PJMC)||'(停用)' else SFPJ_PJMC end as Name from SFPJ where SFPJ_PJLX='{0}'", cbxPJLX.SelectedValue.Trim()), true); + TComboBox.SetComboBox("DBERP", cbxBJFLID, string.Format("select XLXSBJFL_BJFLID,case isnull(XLXSBJFL_TYBZ,' ') when 'Y' then rtrim(XLXSBJFL_BJFLMC)||'(停用)' else XLXSBJFL_BJFLMC end as Name from XLXSBJFL where XLXSBJFL_BJFLID = '{0}' order by XLXSBJFL_XSXH,XLXSBJFL_BJFLID", cbxBJFLID.SelectedValue.Trim()), false); + TComboBox.SetComboBox("DBERP", cbxFKQXNR, string.Format(" SELECT XLXSBJDYZZ8_FKQXNR as ID,XLXSBJDYZZ8_FKQXNR as NAME FROM XLXSBJDYZZ8 where XLXSBJDYZZ8_FKQXNR='{0}' ", cbxFKQXNR.SelectedValue.Trim().Equals("") ? " " : cbxFKQXNR.SelectedValue.Trim()), true); + TComboBox.SetComboBox("DBERP", cbxYSJDID, string.Format(" select YSJD_YSJDID,rtrim(YSJD_ZJM) || '|'|| rtrim(YSJD_YSJDMC) from YSJD WHERE YSJD_YSJDID='{0}' ", cbxYSJDID.SelectedValue.Trim()), true); + TComboBox.SetComboBox("DBERP", cbxGYSID, string.Format(" select YSDW_GYSID,GYS_MC from YSDW left join GYS on GYS_GYSID = YSDW_GYSID WHERE YSDW_GYSID='{0}' ", cbxGYSID.SelectedValue.Trim()), true); + // + //项目所在地 + TComboBox.SetComboBox("DBERP", cbxKHSZDPRO, string.Format("select XZQH_XZQHID,XZQH_PROVINCE from XZQH where XZQH_XZQHID = '{0}' and XZQH_XZQHID <> '86' ORDER BY XZQH_XZQHID ", cbxKHSZDPRO.SelectedValue.Trim()), true); + + TComboBox.SetComboBox("DBERP", cbxKHSZDCITY, string.Format("select XZQH_XZQHID,XZQH_CITY from XZQH where XZQH_FID = '{0}' and XZQH_XZQHID <> '86' ORDER BY XZQH_XZQHID ", cbxKHSZDPRO.SelectedValue.Trim()), true); + TComboBox.SetComboBox("DBERP", cbxKHSZDCOUNTY, string.Format("select XZQH_XZQHID,XZQH_COUNTY from XZQH where XZQH_XZQHID = '{0}' and XZQH_XZQHID <> '86' ORDER BY XZQH_XZQHID ", cbxKHSZDCOUNTY.SelectedValue.Trim()), true); + + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + + string sJGBMC_HZ = "";//后缀 + if (txtCLHQJGBID.Value.Trim().Equals("ZZZZZZZZ")) + { + sJGBMC_HZ = ",ZZZZZZZZ|基础材料行情"; + } + else if (txtCLHQJGBID.Value.Trim().Equals("YYYYYYYY")) + { + sJGBMC_HZ = ",YYYYYYYY|报价单材料行情"; + } + + sql.Clear(); + sql.Add("select XLXSJGB_JGBID,XLXSJGB_YXQS,XLXSJGB_YXQZ,XLXSJGB_JGBMC from XLXSJGB where XLXSJGB_MXBH in ('JGB','JGE') and XLXSJGB_JGBID=:pJGBID "); + if (!GetOption(100860018,"BJU016").Equals("")) + { + sql.Add(" and (isnull(XLXSJGB_CPMLID,' ')=' ' or " + CMISproDataBase.GetWhereEqual("XLXSJGB_CPMLID", GetOption(100860018,"BJU016")) + ") "); + } + sql.Add(" order by XLXSJGB_YXQS desc,ISNULL(XLXSJGB_YXQZ,'9999-12-31') desc, XLXSJGB_JGBID "); + sql.ParamByName("pJGBID").Value = cbxJGBID.SelectedValue.Trim(); + DataSet ds = dberp.OpenDataSet(sql); + cbxJGBID.ClearItems(); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + string sJGBID = ds.Tables[0].Rows[i]["XLXSJGB_JGBID"].ToString().Trim(); + string sYXQS = ds.Tables[0].Rows[i]["XLXSJGB_YXQS"].ToString().Trim(); + string sYXQZ = ds.Tables[0].Rows[i]["XLXSJGB_YXQZ"].ToString().Trim(); + string sJGBMC = ds.Tables[0].Rows[i]["XLXSJGB_JGBMC"].ToString().Trim(); + if (sYXQS.Equals("")) + sYXQS = "--"; + else + sYXQS = CMISproConvert.ConvertDate(sYXQS); + if (sYXQZ.Equals("")) + sYXQZ = "--"; + else + sYXQZ = CMISproConvert.ConvertDate(sYXQZ); + if (XLBJDUtils.IsJGEJGB(sJGBID)) + { + cbxJGBID.Items.Add(new ListItem(sJGBID + "|" + sJGBMC, sJGBID)); + } + else + { + if (sJGBMC.Equals("")) + cbxJGBID.Items.Add(new ListItem(sJGBID + "|" + sYXQS + "至" + sYXQZ + sJGBMC_HZ, sJGBID)); + else + cbxJGBID.Items.Add(new ListItem(sJGBID + "|" + sYXQS + "至" + sYXQZ + "|" + sJGBMC + sJGBMC_HZ, sJGBID)); + } + } + + sql.Clear(); + sql.Add("select XSY_TXY,XSY_ZJM from XSY where XSY_TXY=:pTXY"); + sql.ParamByName("pTXY").Value = cbxXSJLMC.SelectedValue.Trim(); + ds = dberp.OpenDataSet(sql); + cbxXSJLMC.ClearItems(); + cbxXSJLMC.Items.Add(new ListItem("", "")); + if (ds.Tables[0].Rows.Count > 0) + { + string sTXY = ds.Tables[0].Rows[0][0].ToString().Trim(); + string sZJM = ds.Tables[0].Rows[0][1].ToString().Trim(); + if (sZJM.Equals("")) + sZJM = CMISproConvert.ConvertZJM(sTXY).Trim(); + cbxXSJLMC.Items.Add(new ListItem(sZJM + "|" + sTXY, sTXY)); + } + if (GetOption(100860000,"BJU070").Trim() != "Y") + { + sql.Clear(); + sql.Add("select XSY_TXY,XSY_ZJM,XSY_SJ from XSY where XSY_TXY=:pTXY"); + sql.ParamByName("pTXY").Value = GetTXYValue(); + ds = dberp.OpenDataSet(sql); + cbxTXY.ClearItems(); + cbxTXY.Items.Add(new ListItem("", "")); + if (ds.Tables[0].Rows.Count > 0) + { + string sTXY = ds.Tables[0].Rows[0][0].ToString().Trim(); + string sZJM = ds.Tables[0].Rows[0][1].ToString().Trim(); + string sSJ=ds.Tables[0].Rows[0][2].ToString().Trim(); + if (sZJM.Equals("")) + sZJM = CMISproConvert.ConvertZJM(sTXY).Trim(); + cbxTXY.Items.Add(new ListItem(sZJM + "|" + sTXY+"|"+sSJ, sTXY)); + } + } + + TComboBox.SetComboBox("DBERP", cbxXSQYID, string.Format("select XSQY_XSQYID,XSQY_XSQYMC from XSQY where XSQY_XSQYID='{0}' order by XSQY_XSQYID", cbxXSQYID.SelectedValue.Trim()), true); + TComboBox.SetComboBox("DBERP", cbxKHID, string.Format("select KH_KHID,KH_MC from KH where KH_KHID='{0}' order by KH_KHID", cbxKHID.SelectedValue.Trim()), false); + TComboBox.SetComboBox("DBERP", cbxSYDWID, string.Format("select GS_SYDWID,GS_GSMC from GS where GS_SYDWID='{0}' order by GS_SYDWID", cbxSYDWID.SelectedValue.Trim()), false); + TComboBox.SetComboBox("DBERP", cbxXSBMID, string.Format(" SELECT BM_BMID,BM_MC FROM BM where BM_BMID='{0}' order by BM_BMID", cbxXSBMID.SelectedValue.Trim()), true); + if (!cbxKHID.SelectedValue.Trim().Equals("")) + { + if (XSCBXKHID()) + { + cbxKHID.Visible = true; + cbxSYDWID.Visible = false; + } + else + { + cbxKHID.Visible = false; + cbxSYDWID.Visible = true; + } + } + else + { + cbxKHID.Visible = false; + cbxSYDWID.Visible = true; + } + } + else + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + DataSet ds = null; + + if (ControlState == TControlState.ctsInsert || ControlState == TControlState.ctsCopy) + { + + //检查是否经销商报价 + sql.Clear(); + sql.Add("select JXSXX_KHID,JXSXX_XSQYID from JXSXX where JXSXX_GH=:pGH order by JXSXX_KHID"); + sql.ParamByName("pGH").Value = CurSession.UserId; + ds = dberp.OpenDataSet(sql); + if (ds.Tables[0].Rows.Count > 0) + { + if (XSCBXKHID()) + { + cbxKHID.Visible = true; + cbxSYDWID.Visible = false; + cbxSYDWID.SelectedValue = ""; + TComboBox.SetComboBox("DBERP", cbxKHID, string.Format("select KH_KHID,KH_MC from KH where KH_KHID='{0}' order by KH_KHID", ds.Tables[0].Rows[0]["JXSXX_KHID"].ToString().Trim()), false); + cbxKHID.SelectedValue = ds.Tables[0].Rows[0]["JXSXX_KHID"].ToString().Trim(); + } + else + { + cbxKHID.Visible = false; + cbxSYDWID.Visible = true; + cbxKHID.SelectedValue = ""; + TComboBox.SetComboBox("DBERP", cbxSYDWID, "select GS_SYDWID,GS_GSMC from GS where 1=1 order by GS_SYDWID", false); + if (cbxSYDWID.SelectedValue.Trim().Equals("") && cbxSYDWID.ItemsCount > 0) + { + string sSYDWID = GetSWDWID(CurSession.UserId); + if (!sSYDWID.Equals("")) + cbxSYDWID.SelectedValue = sSYDWID; + else + cbxSYDWID.SelectedIndex = 0; + } + } + + //根据找到的JXSXX_KHID匹配报价分类适用客户,得到报价分类可选项 + sql.Clear(); + sql.Add("select XLXSBJFLKH_BJFLID,XLXSBJFL_BJFLMC "); + sql.Add("from XLXSBJFLKH "); + sql.Add("left join XLXSBJFL on XLXSBJFL_BJFLID=XLXSBJFLKH_BJFLID "); + sql.Add("where XLXSBJFLKH_KHID=:pKHID "); + sql.Add("order by XLXSBJFL_XSXH,XLXSBJFLKH_BJFLID"); + sql.ParamByName("pKHID").Value = cbxKHID.SelectedValue.Trim(); + DataSet dsFLKH = dberp.OpenDataSet(sql); + if (dsFLKH.Tables[0].Rows.Count > 0) + { + string sBJU012 = GetOption(100860000,"BJU012"); + cbxBJFLID.ClearItems(); + for (int i = 0; i < dsFLKH.Tables[0].Rows.Count; i++) + { + if (!sBJU012.Equals("")) + { + sBJU012 = "," + sBJU012 + ","; + if (sBJU012.Contains("," + dsFLKH.Tables[0].Rows[i]["XLXSBJFLKH_BJFLID"].ToString().Trim() + ",")) + { + cbxBJFLID.Items.Add(new ListItem(dsFLKH.Tables[0].Rows[i]["XLXSBJFL_BJFLMC"].ToString().Trim(), dsFLKH.Tables[0].Rows[i]["XLXSBJFLKH_BJFLID"].ToString().Trim())); + } + } + else + cbxBJFLID.Items.Add(new ListItem(dsFLKH.Tables[0].Rows[i]["XLXSBJFL_BJFLMC"].ToString().Trim(), dsFLKH.Tables[0].Rows[i]["XLXSBJFLKH_BJFLID"].ToString().Trim())); + } + } + else + { + sql.Clear(); + sql.Add("select XLXSBJFL_BJFLID,XLXSBJFL_BJFLMC from XLXSBJFL where isnull(XLXSBJFL_TYBZ,' ')<>'Y'"); + sql.Add(" and not exists(select 1 from XLXSBJFLKH where XLXSBJFLKH_BJFLID=XLXSBJFL_BJFLID) "); + if (!GetOption(100860000, "BJU012").Equals("")) + { + sql.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJFL_BJFLID", GetOption(100860000, "BJU012"))); + } + sql.Add(" order by XLXSBJFL_XSXH,XLXSBJFL_BJFLID"); + ds = null; + ds = dberp.OpenDataSet(sql); + cbxBJFLID.ClearItems(); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + cbxBJFLID.Items.Add(new ListItem(ds.Tables[0].Rows[i]["XLXSBJFL_BJFLMC"].ToString().Trim(), ds.Tables[0].Rows[i]["XLXSBJFL_BJFLID"].ToString().Trim())); + } + } + } + else + { + cbxKHID.Visible = false; + cbxSYDWID.Visible = true; + cbxKHID.SelectedValue = ""; + TComboBox.SetComboBox("DBERP", cbxSYDWID, "select GS_SYDWID,GS_GSMC from GS where 1=1 order by GS_SYDWID", false); + if (cbxSYDWID.SelectedValue.Trim().Equals("") && cbxSYDWID.ItemsCount > 0) + { + string sSYDWID = GetSWDWID(CurSession.UserId); + if (!sSYDWID.Equals("")) + cbxSYDWID.SelectedValue = sSYDWID; + else + cbxSYDWID.SelectedIndex = 0; + } + + if (!GetOption(100860000, "BJU012").Equals("")) + { + TComboBox.SetComboBox("DBERP", cbxBJFLID, @"select XLXSBJFL_BJFLID, XLXSBJFL_BJFLMC from XLXSBJFL where isnull(XLXSBJFL_TYBZ,'N')<>'Y' + and not exists(select 1 from XLXSBJFLKH where XLXSBJFLKH_BJFLID=XLXSBJFL_BJFLID) + and " + CMISproDataBase.GetWhereEqual("XLXSBJFL_BJFLID", GetOption(100860000, "BJU012")) + + " order by XLXSBJFL_XSXH,XLXSBJFL_BJFLID ", false); + } + else + { + TComboBox.SetComboBox("DBERP", cbxBJFLID, @"select XLXSBJFL_BJFLID, XLXSBJFL_BJFLMC from XLXSBJFL where isnull(XLXSBJFL_TYBZ,'N')<>'Y' + and not exists(select 1 from XLXSBJFLKH where XLXSBJFLKH_BJFLID=XLXSBJFL_BJFLID) + order by XLXSBJFL_XSXH,XLXSBJFL_BJFLID ", false); + } + } + if (ControlState == TControlState.ctsInsert && cbxBJFLID.ItemsCount > 0) + { + string sMRBJFL = GetOption(100860000, "BJU019").Trim(); + if (!sMRBJFL.Equals("")) + cbxBJFLID.SelectedValue = sMRBJFL; + else + cbxBJFLID.SelectedIndex = 0; + + } + } + else + { + if (!cbxKHID.SelectedValue.Trim().Equals("")) + { + if (XSCBXKHID()) + { + if (!IsPostBack)//列表页直接点编辑时触发 + TComboBox.SetComboBox("DBERP", cbxKHID, string.Format("select KH_KHID,KH_MC from KH where KH_KHID='{0}' order by KH_KHID", cbxKHID.SelectedValue.Trim()), false); + cbxKHID.Visible = true; + cbxSYDWID.Visible = false; + } + else + { + if (!IsPostBack)//列表页直接点编辑时触发 + TComboBox.SetComboBox("DBERP", cbxSYDWID, "select GS_SYDWID,GS_GSMC from GS where 1=1 order by GS_SYDWID", false); + cbxKHID.Visible = false; + cbxSYDWID.Visible = true; + } + + //根据cbxKHID匹配报价分类适用客户,得到报价分类可选项 + sql.Clear(); + sql.Add("select XLXSBJFLKH_BJFLID,XLXSBJFL_BJFLMC "); + sql.Add("from XLXSBJFLKH "); + sql.Add("left join XLXSBJFL on XLXSBJFL_BJFLID=XLXSBJFLKH_BJFLID "); + sql.Add("where XLXSBJFLKH_KHID=:pKHID "); + sql.Add("order by XLXSBJFL_XSXH,XLXSBJFLKH_BJFLID"); + sql.ParamByName("pKHID").Value = cbxKHID.SelectedValue.Trim(); + DataSet dsFLKH = dberp.OpenDataSet(sql); + if (dsFLKH.Tables[0].Rows.Count > 0) + { + string sBJU012 = GetOption(100860000, "BJU012"); + cbxBJFLID.ClearItems(); + for (int i = 0; i < dsFLKH.Tables[0].Rows.Count; i++) + { + if (!sBJU012.Equals("")) + { + sBJU012 = "," + sBJU012 + ","; + if (sBJU012.Contains("," + dsFLKH.Tables[0].Rows[i]["XLXSBJFLKH_BJFLID"].ToString().Trim() + ",")) + { + cbxBJFLID.Items.Add(new ListItem(dsFLKH.Tables[0].Rows[i]["XLXSBJFL_BJFLMC"].ToString().Trim(), dsFLKH.Tables[0].Rows[i]["XLXSBJFLKH_BJFLID"].ToString().Trim())); + } + } + else + cbxBJFLID.Items.Add(new ListItem(dsFLKH.Tables[0].Rows[i]["XLXSBJFL_BJFLMC"].ToString().Trim(), dsFLKH.Tables[0].Rows[i]["XLXSBJFLKH_BJFLID"].ToString().Trim())); + } + } + else + { + sql.Clear(); + sql.Add("select XLXSBJFL_BJFLID,XLXSBJFL_BJFLMC from XLXSBJFL where isnull(XLXSBJFL_TYBZ,' ')<>'Y'"); + sql.Add(" and not exists(select 1 from XLXSBJFLKH where XLXSBJFLKH_BJFLID=XLXSBJFL_BJFLID) "); + if (!GetOption(100860000, "BJU012").Equals("")) + { + sql.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJFL_BJFLID", GetOption(100860000, "BJU012"))); + } + sql.Add(" order by XLXSBJFL_XSXH,XLXSBJFL_BJFLID"); + ds = null; + ds = dberp.OpenDataSet(sql); + cbxBJFLID.ClearItems(); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + cbxBJFLID.Items.Add(new ListItem(ds.Tables[0].Rows[i]["XLXSBJFL_BJFLMC"].ToString().Trim(), ds.Tables[0].Rows[i]["XLXSBJFL_BJFLID"].ToString().Trim())); + } + } + txtBGQKHID.Value = txtKHID.Text.ToString(); + txtBGQKH.Value = txtKH.Text.ToString(); + } + else + { + TComboBox.SetComboBox("DBERP", cbxSYDWID, "select GS_SYDWID,GS_GSMC from GS where 1=1 order by GS_SYDWID", false); + cbxKHID.Visible = false; + cbxSYDWID.Visible = true; + if (!GetOption(100860000, "BJU012").Equals("")) + { + TComboBox.SetComboBox("DBERP", cbxBJFLID, @"select XLXSBJFL_BJFLID, XLXSBJFL_BJFLMC from XLXSBJFL where isnull(XLXSBJFL_TYBZ,'N')<>'Y' + and not exists(select 1 from XLXSBJFLKH where XLXSBJFLKH_BJFLID=XLXSBJFL_BJFLID) + and " + CMISproDataBase.GetWhereEqual("XLXSBJFL_BJFLID", GetOption(100860000, "BJU012")) + + " order by XLXSBJFL_XSXH,XLXSBJFL_BJFLID ", false); + } + else + { + TComboBox.SetComboBox("DBERP", cbxBJFLID, @"select XLXSBJFL_BJFLID, XLXSBJFL_BJFLMC from XLXSBJFL where isnull(XLXSBJFL_TYBZ,'N')<>'Y' + and not exists(select 1 from XLXSBJFLKH where XLXSBJFLKH_BJFLID=XLXSBJFL_BJFLID) + order by XLXSBJFL_XSXH,XLXSBJFL_BJFLID ", false); + } + } + + } + + string sSQL = " SELECT BM_BMID,BM_MC FROM BM where 1=1 "; + if (!string.IsNullOrEmpty(GetOption(100860000, "HJU006").Trim())) + { + sSQL += " and " + CMISproDataBase.GetWhereEqual("BM_BMID", GetOption(100860000, "HJU006").Trim()); + } + sSQL += " order by BM_BMID"; + TComboBox.SetComboBox("DBERP", cbxXSBMID, sSQL, true); + if (ControlState == TControlState.ctsCopy || ControlState == TControlState.ctsInsert) + { + if (cbxXSBMID.ItemsCount == 2) + cbxXSBMID.SelectedIndex = 1; + } + //付款方式 + TComboBox.SetComboBox("DBERP", cbxPJLX, " select XLXSBJDYZZ1_PJLX,SFPJ_PJMC from XLXSBJDYZZ1 left join SFPJ on SFPJ_PJLX=XLXSBJDYZZ1_PJLX where 1=1 " + + " and exists ( select 1 from XLXSTZYZ where XLXSBJDYZZ1_JGBID = XLXSTZYZ_JGBID and XLXSTZYZ_YZID = XLXSBJDYZZ1_YZID and XLXSTZYZ_MXBH ='BJD' " + + " and exists ( select 1 from XLXSBJFLYZ where XLXSBJFLYZ_BJFLID = '" + cbxBJFLID.SelectedValue.Trim() + "' and XLXSBJFLYZ_YZID = XLXSTZYZ_YZID )) " + + " order by XLXSBJDYZZ1_PJLX", true); + //付款期限 + TComboBox.SetComboBox("DBERP", cbxFKQXNR, " select XLXSBJDYZZ8_FKQXNR as ID,XLXSBJDYZZ8_FKQXNR as NAME from XLXSBJDYZZ8 where XLXSBJDYZZ8_FKQXNR<>' ' " + + " and exists ( select 1 from XLXSTZYZ where XLXSBJDYZZ8_JGBID = XLXSTZYZ_JGBID and XLXSTZYZ_YZID = XLXSBJDYZZ8_YZID and XLXSTZYZ_MXBH ='BJD' " + + " and exists ( select 1 from XLXSBJFLYZ where XLXSBJFLYZ_BJFLID = '" + cbxBJFLID.SelectedValue.Trim() + "' and XLXSBJFLYZ_YZID = XLXSTZYZ_YZID ))" + + " order by ID", true); + //运输节点&运输单位 + TComboBox.SetComboBox("DBERP", cbxYSJDID, "select YSJD_YSJDID as ID,rtrim(YSJD_ZJM) || '|'|| rtrim(YSJD_YSJDMC) as NAME from YSJD WHERE ISNULL(YSJD_TYBZ, 'N') <> 'Y' ORDER BY YSJD_ZJM ", true); + TComboBox.SetComboBox("DBERP", cbxGYSID, "select YSDW_GYSID AS ID,GYS_MC AS NAME from YSDW left join GYS on GYS_GYSID = YSDW_GYSID WHERE ISNULL(YSDW_TYBZ, 'N') <> 'Y' ORDER BY ID ", true); + //项目所在地 + TComboBox.SetComboBox("DBERP", cbxKHSZDPRO, "select XZQH_XZQHID,XZQH_PROVINCE from XZQH where XZQH_FID = '86' ORDER BY XZQH_XZQHID ", true); + + if (!cbxKHSZDPRO.SelectedValue.Trim().Equals("")) + { + sql.Clear(); + sql.Add(" select XZQH_XZQHID,XZQH_CITY from XZQH where XZQH_FID = :pFID "); + sql.Add(" order by XZQH_XZQHID "); + sql.ParamByName("pFID").Value = cbxKHSZDPRO.SelectedValue.Trim(); + ds = dberp.OpenDataSet(sql); + cbxKHSZDCITY.Items.Add(new ListItem("", "")); + if (ds.Tables[0].Rows.Count > 0) + { + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + if (!ds.Tables[0].Rows[i]["XZQH_CITY"].ToString().Trim().Equals("")) + { + cbxKHSZDCITY.Items.Add(new ListItem(ds.Tables[0].Rows[i]["XZQH_CITY"].ToString().Trim(), ds.Tables[0].Rows[i]["XZQH_XZQHID"].ToString().Trim())); + } + } + } + } + if (!cbxKHSZDCITY.SelectedValue.Trim().Equals("")) + { + sql.Clear(); + sql.Add(" select XZQH_XZQHID,XZQH_COUNTY from XZQH where XZQH_FID = :pFID "); + sql.Add(" order by XZQH_XZQHID "); + sql.ParamByName("pFID").Value = cbxKHSZDCITY.SelectedValue.Trim(); + ds = dberp.OpenDataSet(sql); + cbxKHSZDCOUNTY.Items.Add(new ListItem("", "")); + if (ds.Tables[0].Rows.Count > 0) + { + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + if (!ds.Tables[0].Rows[i]["XZQH_COUNTY"].ToString().Trim().Equals("")) + { + cbxKHSZDCOUNTY.Items.Add(new ListItem(ds.Tables[0].Rows[i]["XZQH_COUNTY"].ToString().Trim(), ds.Tables[0].Rows[i]["XZQH_XZQHID"].ToString().Trim())); + } + } + } + } + + + sql.Clear(); + sql.Add("select distinct SJ.SJXSYMC,SJ.XSY_ZJM from XSY left join (select XSY_TXY as SJXSYMC, XSY_XSYBH as XSYBH,XSY_ZJM from XSY) SJ on SJ.XSYBH=XSY_SJXSYBH "); + sql.Add(" where isnull(XSY_SJXSYBH,' ')<>' ' order by SJ.XSY_ZJM,SJ.SJXSYMC"); + ds = dberp.OpenDataSet(sql); + cbxXSJLMC.ClearItems(); + if (ds.Tables[0].Rows.Count > 0) + { + cbxXSJLMC.Items.Add(new ListItem("", "")); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + string sTXY = ds.Tables[0].Rows[i][0].ToString().Trim(); + string sZJM = ds.Tables[0].Rows[i][1].ToString().Trim(); + if (sZJM.Equals("")) + sZJM = CMISproConvert.ConvertZJM(sTXY).Trim(); + cbxXSJLMC.Items.Add(new ListItem(sZJM + "|" + sTXY, sTXY)); + } + } + if (GetOption(100860000, "BJU070").Trim() == "Y") + { + cbxTXYMC.Config["XSJLMC"] = cbxXSJLMC.SelectedValue.Trim(); + cbxTXYMC.Config["BMID"] = GetOption(100860000, "HJU006").Trim(); + } + else if (cbxXSJLMC.SelectedValue.Trim().Equals("")) + { + sql.Clear(); + sql.Add("select XSY_TXY,XSY_ZJM,XSY_SJ from XSY where isnull(XSY_TYBZ,' ')<>'Y' "); + if (!string.IsNullOrEmpty(GetOption(100860000, "HJU006").Trim())) + { + sql.Add(" and (" + CMISproDataBase.GetWhereEqual("XSY_BMID", GetOption(100860000, "HJU006").Trim())); + sql.Add(" or isnull(XSY_BMID, ' ') = ' ') "); + } + sql.Add(" order by XSY_ZJM,XSY_TXY"); + ds = dberp.OpenDataSet(sql); + cbxTXY.ClearItems(); + if (ds.Tables[0].Rows.Count > 0) + { + cbxTXY.Items.Add(new ListItem("", "")); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + string sTXY = ds.Tables[0].Rows[i][0].ToString().Trim(); + string sZJM = ds.Tables[0].Rows[i][1].ToString().Trim(); + string sSJ = ds.Tables[0].Rows[i][2].ToString().Trim(); + if (sZJM.Equals("")) + sZJM = CMISproConvert.ConvertZJM(sTXY).Trim(); + cbxTXY.Items.Add(new ListItem(sZJM + "|" + sTXY+"|"+sSJ, sTXY)); + } + } + } + else + { + sql.Clear(); + sql.Add("select XSY_TXY,XSY_ZJM,XSY_SJ from XSY left join (select XSY_TXY as SJXSYMC, XSY_XSYBH as XSYBH from XSY) SJ on SJ.XSYBH=XSY_SJXSYBH"); + sql.Add(" where isnull(XSY_TYBZ,' ')<>'Y' and SJ.SJXSYMC=:pSJXSYMC "); + if (!string.IsNullOrEmpty(GetOption(100860000, "HJU006").Trim())) + { + sql.Add(" and (" + CMISproDataBase.GetWhereEqual("XSY_BMID", GetOption(100860000, "HJU006").Trim())); + sql.Add(" or isnull(XSY_BMID, ' ') = ' ') "); + } + sql.Add(" order by XSY_ZJM,XSY_TXY"); + sql.ParamByName("pSJXSYMC").Value = cbxXSJLMC.SelectedValue.Trim(); + ds = dberp.OpenDataSet(sql); + cbxTXY.ClearItems(); + if (ds.Tables[0].Rows.Count > 0) + { + cbxTXY.Items.Add(new ListItem("", "")); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + string sTXY = ds.Tables[0].Rows[i][0].ToString().Trim(); + string sZJM = ds.Tables[0].Rows[i][1].ToString().Trim(); + string sSJ = ds.Tables[0].Rows[i][2].ToString().Trim(); + if (sZJM.Equals("")) + sZJM = CMISproConvert.ConvertZJM(sTXY).Trim(); + cbxTXY.Items.Add(new ListItem(sZJM + "|" + sTXY+"|"+sSJ, sTXY)); + } + } + } + + TComboBox.SetComboBox("DBERP", cbxXSQYID, string.Format(@"select XSQY_XSQYID,XSQY_XSQYMC from XSQY where isnull(XSQY_TYBZ,' ')<>'Y' + and exists(select 1 from XLXSBJFL where XLXSBJFL_BJFLID='{0}' + and (isnull(XLXSBJFL_XSQYIDS,' ')=' ' or ','||rtrim(XLXSBJFL_XSQYIDS)||',' like '%,'||rtrim(XSQY_XSQYID)||',%') + ) order by XSQY_XSQYID", cbxBJFLID.SelectedValue.Trim()), true); + + //报价分类对应产品目录的行情分段材料、及其报价日行情,用于限制价格表加载项 + Dictionary dicCPML_BJRCLHQ = XLBJDUtils.GetCPMLBJCL_BJRCLHQ(cbxBJFLID.SelectedValue.Trim(), datBJRQ.Text); + string sBJCLIDS = XLBJDUtils.GetCPMLBJCL(cbxBJFLID.SelectedValue.Trim()); ;//报价分类对应产品目录的材料 + //存在明细 + if (CMISproDataBase.ExistsRecord("DBERP",string.Format("select top 1 XLXSBJDMX_BJDID from XLXSBJDMX where XLXSBJDMX_BJDID='{0}'", txtBJDID.Text.Trim()))) + { + sql.Clear(); + sql.Add("select XLXSJGB_JGBID,XLXSJGB_YXQS,XLXSJGB_YXQZ,XLXSJGB_JGBMC from XLXSJGB where XLXSJGB_MXBH in ('JGB','JGE') and XLXSJGB_JGBID=:pJGBID "); + if (!GetOption(100860018,"BJU016").Equals("")) + { + sql.Add(" and (isnull(XLXSJGB_CPMLID,' ')=' ' or " + CMISproDataBase.GetWhereEqual("XLXSJGB_CPMLID", GetOption(100860018, "BJU016")) + ") "); + } + sql.Add(" order by XLXSJGB_YXQS desc,ISNULL(XLXSJGB_YXQZ,'9999-12-31') desc, XLXSJGB_JGBID "); + sql.ParamByName("pJGBID").Value = cbxJGBID.SelectedValue.Trim(); + ds = dberp.OpenDataSet(sql); + cbxJGBID.ClearItems(); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + string sJGBID = ds.Tables[0].Rows[i]["XLXSJGB_JGBID"].ToString().Trim(); + string sYXQS = ds.Tables[0].Rows[i]["XLXSJGB_YXQS"].ToString().Trim(); + string sYXQZ = ds.Tables[0].Rows[i]["XLXSJGB_YXQZ"].ToString().Trim(); + string sJGBMC = ds.Tables[0].Rows[i]["XLXSJGB_JGBMC"].ToString().Trim(); + if (sYXQS.Equals("")) + sYXQS = "--"; + else + sYXQS = CMISproConvert.ConvertDate(sYXQS); + if (sYXQZ.Equals("")) + sYXQZ = "--"; + else + sYXQZ = CMISproConvert.ConvertDate(sYXQZ); + if (XLBJDUtils.IsJGEJGB(sJGBID)) + { + cbxJGBID.Items.Add(new ListItem(sJGBID + "|" + sJGBMC, sJGBID)); + } + else + { + if (sJGBMC.Equals("")) + cbxJGBID.Items.Add(new ListItem(sJGBID + "|" + sYXQS + "至" + sYXQZ , sJGBID)); + else + cbxJGBID.Items.Add(new ListItem(sJGBID + "|" + sYXQS + "至" + sYXQZ + "|" + sJGBMC , sJGBID)); + } + } + + } + else + SetcbxJGBID(); + } + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); + string sHidJSLMList = XLBJDUtils.GetHidJSLMList(cbxBJFLID.SelectedValue.Trim(), IsXJY.Value.Equals("Y"), IsSJY.Value.Equals("Y"), IsHJY.Value.Equals("Y")); + cbxCZJSXY.ClearItems(); + cbxCZJSXY.Items.Add(new ListItem("", "")); + cbxCZJSXY.Items.Add(new ListItem("有", "Y")); + cbxCZJSXY.Items.Add(new ListItem("无", "N")); + cbxCZJSXY.ShowValue = false; + if (Request.Form["BBYS"] == null)//如果是“按复制内容导入”后触发则不再重复执行 + { + Dictionary dicBJDYZ = XLBJDUtils.GetBJDYZ(cbxBJFLID.SelectedValue.Trim()); + txtBJDYZ.Text = dicBJDYZ["BJDYZ"]; + txtTJYSList.Text = dicBJDYZ["TJYSList"]; + txtYZWPIDList.Text = dicBJDYZ["YZWPIDList"]; + txtReadOnlyYZ.Text = dicBJDYZ["ReadOnlyYZ"]; + txtZDWPIDList.Text = dicBJDYZ["ZDWPIDList"]; + txtPFYZID.Text = dicBJDYZ["PFYZ"]; + txtBTYZ.Text = dicBJDYZ["BTYZ"]; + txtXSJEYZ.Text = dicBJDYZ["XSJEYZ"]; + + ReBuildYZColByBJFL(txtBJDYZ.Text.Trim(), txtTJYSList.Text.Trim(), txtYZWPIDList.Text.Trim(), txtReadOnlyYZ.Text.Trim(),txtZDWPIDList.Text.Trim()); + + + txtTZJGBBJ.Text = bjflxx.XLXSBJFL_TZJGBBJ; + txtTZBJDHQLJ.Text = bjflxx.XLXSBJFL_TZBJDHQLJ; + ReBuildJJColByBJFL( txtTZJGBBJ.Text.Trim(), txtTZBJDHQLJ.Text.Trim(),iXSWS, sHidJSLMList); + + if (!bjflxx.XLXSBJFL_ZLGZCLS.Equals("")) + lblZLGZCLS.Visible = true; + else + lblZLGZCLS.Visible = false; + } + if (bjflxx.XLXSBJFL_ST == "Y") + { + trST.Visible = true; + trST2.Visible = true; + if (CMISproDataBase.ExistsRecord("DBERP", "select 1 from XLZCJH where XLZCJH_YWDH='" + txtBJDID.Text.Trim() + "'")) + chkZCJH.Checked = true; + else + chkZCJH.Checked = false; + + } + else + { + trST.Visible = false; + trST2.Visible = false; + } + + + + + + + + if (!string.IsNullOrEmpty(txtBJDID.Text.Trim()) && CheckModule("100860008") && ControlState == TControlState.ctsBrowse) + { + LoadHJXX(txtBJDID.Text.Trim(), cbxBJFLID.SelectedValue.Trim(), sHidJSLMList); + + } + + + if (cbxKHID.Visible) + { + lblSYDWID.Text = "客户:"; + linkSYDWID.Text = "客户"; + linkSYDWID.ToolTip = "客户调整"; + lblKH.Text = "售前客户:"; + linkKH.Text = "售前客户"; + } + else + { + lblSYDWID.Text = "销售单位:"; + linkSYDWID.Text = "销售单位"; + linkSYDWID.ToolTip = "销售单位调整"; + lblKH.Text = "客户:"; + linkKH.Text = "客户"; + } + base.SetComboxItems(); + } + + protected override void OnPreRender(EventArgs e) + { + //分页模式下,设置翻页控件 + pgBar.ShowPublicOpt = base.isSupervisorUser; + pgBar.IsPublic = false; + + //显示过滤行 + if (ControlState == TControlState.ctsBrowse) + grdXLBJDMX.EnabledFilterRow = true; + + if (ControlState == TControlState.ctsCopy) + { + //需要复制明细时,不允许操作明细 + if (CanCopyMX.Value.Equals("Y")) + grdXLBJDMX.EnabledToolBar = false; + } + + ScriptManager.RegisterStartupScript(this, this.GetType(), "moveHJXX", "if(typeof moveHJXXArea === 'function') { window.setTimeout(moveHJXXArea, 200); }", true); + + if (txtBJU074.Value.Trim() == "Y") + { + divBarQY.Style["display"] = "none"; + } + else + { + divBarQY.Style["display"] = "inline-block"; + divBarQY.Style["width"] = "420px"; + txtHJXX.Width = new Unit(418, UnitType.Pixel); + txtHJXX.Height = new Unit(26, UnitType.Pixel); + } + + base.OnPreRender(e); + + grdXLBJDMX.ShowRecordCount = false;//屏蔽记录导出 + + string sScript = ""; + + + string sDivSelect = @" + + function getPos(el,sProp) + { + var iPos = 0; + while (el!=null) + { + iPos+=el['offset' + sProp] + el = el.offsetParent + } + return iPos; + } + //在客户输入框中自动检索 + function edtKeyUp(el,m) + { + if(document.getElementById('" + txtKH.ClientID + @"').readOnly) + return; + if(event.keyCode == 9) + return; + var sUsers,sRYList,lstBox; + sUSR= el.value; + sUsers=document.getElementById('" + hidKH.ClientID + @"').value; + lstBox=document.getElementById('lstUSR'); + lstBox.length=0; + sRYList=sUsers.split('$$,'); + for(var i=0; i=0) || (sRYList[i].indexOf(sUSR.toUpperCase())>=0)) + { var item; + item = sItem.split('↑'); + if (item[0] != '') + lstBox.options.add(new Option(item[0])); + } + } + document.getElementById('btnSel').value=el.id; +// event.keyCode=0; + event.returnValue=false; + if(lstBox.length==0) + m.style.display='none'; + if(lstBox.length==1) + { + if (lstBox.options[0].text =='') + {m.style.display='none'; + } + else if (event.keyCode == 13) m.style.display='none'; + else m.style.display=''; + } + if(lstBox.length>1) + { + m.style.display=''; + } + m.style.pixelLeft =getPos(el,'Left'); + if((event.keyCode==40)&&(idSel.style.display=='')) + { + var lstBox=document.getElementById('lstUSR'); + lstBox.focus(); + if(lstBox.length>0) + lstBox.selectedIndex=0; + } + + //document.getElementById('ctl00_CphForm_IsKHChange').value = 'Y'; + } + + var isin=false; + function selectme(obj) + { + if(!isin||obj) + { + idSel.style.display='none'; + idSel2.style.display='none'; + idSel3.style.display='none'; + + //if (document.getElementById('ctl00_CphForm_IsKHChange').value == 'Y') + //{ + // document.getElementById('ctl00_CPHButton_txtKHChange').click(); + // document.getElementById('ctl00_CphForm_IsKHChange').value = ''; + //} + } + } + function lstUSRClick() + { + var edtSend + var lstBox=document.getElementById('lstUSR'); + var ss=lstBox.options[lstBox.selectedIndex].text; +// event.keyCode=0; + event.returnValue=false; + edtSend= document.getElementById(document.getElementById('btnSel').value); + edtSend.value=ss; + idSel.style.display='none'; + edtSend.focus(); + + //document.getElementById('ctl00_CPHButton_txtKHChange').click(); + } + + + /* 以下使窗体点击时selectme(obj)函数被激活: */ + myActivation='selectme(null)'; + if(document.body.onclick) + { + eval(document.body.onclick.toString().replace('anonymous()','bodyclick()')); + document.body.onclick=new Function('bodyclick();'+myActivation); + } + else document.body.onclick=new Function(myActivation); + + function cc() + { + var e = event.srcElement; + var r =e.createTextRange(); + r.moveStart('character',e.value.length); + r.collapse(true); + r.select(); + } + + "; + + + string sDivSelect2 = @" + + //在项目输入框中自动检索 + function edtKeyUp2(el,m) + { + if(document.getElementById('" + txtXM.ClientID + @"').readOnly) + return; + if(event.keyCode == 9) + return; + var sUsers,sRYList,lstBox; + sUSR= el.value; + sUsers=document.getElementById('" + hidXM.ClientID + @"').value; + lstBox=document.getElementById('lstUSR2'); + lstBox.length=0; + sRYList=sUsers.split('$$,'); + for(var i=0; i=0) || (sItem[0].indexOf(sUSR.toUpperCase())>=0)) && (sItem[1]==document.getElementById('" + txtKH.ClientID + @"').value.trim())) + { var item; + item = sItem[0].split('↑'); + lstBox.options.add(new Option(item[0])); + } + } + document.getElementById('btnSel2').value=el.id; +// event.keyCode=0; + event.returnValue=false; + if(lstBox.length==0) + m.style.display='none'; + if(lstBox.length==1) + { + if (lstBox.options[0].text =='') + {m.style.display='none'; + } + else if (event.keyCode == 13) m.style.display='none'; + else m.style.display=''; + } + if(lstBox.length>1) + { + m.style.display=''; + } + m.style.pixelLeft =getPos(el,'Left'); + + if((event.keyCode==40)&&(idSel2.style.display=='')) + { + var lstBox=document.getElementById('lstUSR2'); + lstBox.focus(); + if(lstBox.length>0) + lstBox.selectedIndex=0; + } + } + + var isin2=false; + function selectme2(obj) + { + if(!isin2||obj) + {idSel2.style.display='none';} + } + function lstUSR2Click() + { + var edtSend + var lstBox=document.getElementById('lstUSR2'); + var ss=lstBox.options[lstBox.selectedIndex].text; +// event.keyCode=0; + event.returnValue=false; + edtSend= document.getElementById(document.getElementById('btnSel2').value); + edtSend.value=ss; + idSel2.style.display='none'; + edtSend.focus(); + } + + + /* 以下使窗体点击时selectme2(obj)函数被激活: */ +// myActivation='selectme2(null)'; +// if(document.body.onclick) +// { +// eval(document.body.onclick.toString().replace('anonymous()','bodyclick()')); +// document.body.onclick=new Function('bodyclick();'+myActivation); +// } +// else document.body.onclick=new Function(myActivation); + + function cc2() + { + var e = event.srcElement; + var r =e.createTextRange(); + r.moveStart('character',e.value.length); + r.collapse(true); + r.select(); + } + + "; + + + string sDivSelect3 = @" + + //在详细地址输入框中自动检索 + function edtKeyUp3(el,m) + { + if(document.getElementById('" + txtXXDZ.ClientID + @"').readOnly) + return; + if(event.keyCode == 9) + return; + var sUsers,sRYList,lstBox; + sUSR= el.value; + sUsers=document.getElementById('" + hidYZ.ClientID + @"').value; + lstBox=document.getElementById('lstUSR3'); + lstBox.length=0; + sRYList=sUsers.split('$$,'); + for(var i=0; i=0) || (sItem[0].indexOf(sUSR.toUpperCase())>=0)) && (sItem[1]==document.getElementById('" + txtXM.ClientID + @"').value.trim())) + { var item; + item = sItem[0].split('↑'); + lstBox.options.add(new Option(item[0])); + } + } + document.getElementById('btnSel3').value=el.id; +// event.keyCode=0; + event.returnValue=false; + if(lstBox.length==0) + m.style.display='none'; + if(lstBox.length==1) + { + if (lstBox.options[0].text =='') + {m.style.display='none'; + } + else if (event.keyCode == 13) m.style.display='none'; + else m.style.display=''; + } + if(lstBox.length>1) + { + m.style.display=''; + } + m.style.pixelLeft =getPos(el,'Left'); + + if((event.keyCode==40)&&(idSel3.style.display=='')) + { + var lstBox=document.getElementById('lstUSR3'); + lstBox.focus(); + if(lstBox.length>0) + lstBox.selectedIndex=0; + } + } + + var isin3=false; + function selectme3(obj) + { + if(!isin3||obj) + {idSel3.style.display='none';} + } + function lstUSR3Click() + { + var edtSend + var lstBox=document.getElementById('lstUSR3'); + var ss=lstBox.options[lstBox.selectedIndex].text; +// event.keyCode=0; + event.returnValue=false; + edtSend= document.getElementById(document.getElementById('btnSel3').value); + edtSend.value=ss; + idSel3.style.display='none'; + edtSend.focus(); + } + + + /* 以下使窗体点击时selectme3(obj)函数被激活: */ +// myActivation='selectme3(null)'; +// if(document.body.onclick) +// { +// eval(document.body.onclick.toString().replace('anonymous()','bodyclick()')); +// document.body.onclick=new Function('bodyclick();'+myActivation); +// } +// else document.body.onclick=new Function(myActivation); + + function cc3() + { + var e = event.srcElement; + var r =e.createTextRange(); + r.moveStart('character',e.value.length); + r.collapse(true); + r.select(); + } + + "; + + sScript += sDivSelect; + + sScript += sDivSelect2; + + sScript += sDivSelect3; + + ClientScript.RegisterStartupScript(this.GetType(), "Script_PreRender", sScript, true); + + if (divFJXXLabel.Visible) + { + Mac.MacLog.TraceFormat("OnPreRender:{0}", ShowFJXX ? "Y" : "N"); + if (ShowFJXX) + AjaxRunScript("SetFJXXDiv", "Setblock();"); + else + AjaxRunScript("SetFJXXDiv", "Setnone();"); + } + + AjaxRunScript("SetdivBarQY", "resize();"); + } + + protected override void OnReportUnknownFunction(string Name, string Params, ref string ValueType, ref string Value, TDatabase db) + { + string[] Param; + Param = Params.Split(','); + if (Name.Trim().ToUpper() == "GETCPBJ") + { + ValueType = "N"; + if (Param.Length >= 5) + { + Value = XLBJDUtils.GetCPBJ(Param[0], Param[1], Param[2], Param[3], Param[4]).ToString(); + } + else + { + Value = "0"; + } + } + else if (Name.Trim().ToUpper() == "GETEWMNR") + { + ValueType = "S"; + string sNR = txtBJDID.Text + "," + txtSQR.Value + "," + datBJRQ.Text; + string encryptedString = AttachDocDlg.EncryptString(sNR, "GTHINKING"); + string encodedData = System.Web.HttpUtility.UrlEncode(encryptedString); + string sTZWZ = ""; + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add(" select XLXSBJPZ_EWMWZ from XLXSBJPZ where 1 = 1 and XLXSBJPZ_MDID = 100860000 "); + DataSet ds = dberp.OpenDataSet(SQL); + if ((ds.Tables[0].Rows.Count > 0) && (!string.IsNullOrEmpty(ds.Tables[0].Rows[0]["XLXSBJPZ_EWMWZ"].ToString().Trim()))) + { + sTZWZ = ds.Tables[0].Rows[0]["XLXSBJPZ_EWMWZ"].ToString().Trim(); + } + else + { + sTZWZ = "http://www.gthinking.com/home/index.asp"; + } + Value = sTZWZ + "?data=" + encodedData; + } + } + + protected override Dictionary CodeSQLParam() + { + Dictionary htResult = base.CodeSQLParam(); + htResult.Add("KH", txtKH); + return htResult; + } + + protected override string CodeClass(string ComponentID) + { + string sFW = GetOption(100860000, "HJU038").Trim(); + string sResult = base.CodeClass(ComponentID); + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + if (ComponentID.ToUpper().Trim().Equals("TXTKH")) + { + //DataSet ds; + string sKHJSLY = ""; + XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860000); + if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_KHJSLY)) + sKHJSLY = pzxx.XLXSBJPZ_KHJSLY; + + if (sKHJSLY.Equals("KH")) + { + sResult += "!select KH_KHID as CODE, KH_MC as MESSAGE from KH where 1=1 and isnull(KH_TYBZ,'N') <> 'Y'"; + if (sFW.Trim().Equals("ZJ")) + { + sResult += string.Format("and KH_TXY='{0}'", CurSession.UserName.Trim()); + } + else if (sFW.Trim().Equals("BM")) + { + sResult += string.Format("and KH_TXY in (select XSY_TXY from XSY where XSY_BMID='{0}')", UserUtils.GetUser(CurSession.UserId).RzBmId); + } + sResult += " order by CODE"; + + } + else if (sKHJSLY.Equals("KHXX")) + { + sResult += "!select KHXX_CRMKHID as CODE, KHXX_MC as MESSAGE from KHXX where 1=1 "; + if (sFW.Trim().Equals("ZJ")) + { + sResult += string.Format("and KHXX_FZR='{0}'", CurSession.UserName.Trim()); + } + else if (sFW.Trim().Equals("BM")) + { + sResult += string.Format("and KHXX_FZR in (select XSY_TXY from XSY where XSY_BMID='{0}')", UserUtils.GetUser(CurSession.UserId).RzBmId); + } + sResult += " order by CODE"; + } + } + else if (ComponentID.ToUpper().Trim().Equals("TXTKHID")) + { + sResult += "!!select KH_KHID as CODE, case when isnull(KH_TXY,' ') = ' ' then KH_MC else rtrim(KH_MC) || '|' || KH_TXY end as MESSAGE from KH where 1=1 and isnull(KH_TYBZ,'N') <> 'Y'"; + if (sFW.Trim().Equals("ZJ")) + { + sResult += string.Format("and KH_TXY='{0}'", CurSession.UserName.Trim()); + } + else if (sFW.Trim().Equals("BM")) + { + sResult += string.Format("and KH_TXY in (select XSY_TXY from XSY where XSY_BMID='{0}')", UserUtils.GetUser(CurSession.UserId).RzBmId); + } + sResult += " order by CODE"; + } + else if (ComponentID.ToUpper().Trim().Equals("TXTXM")) + { + //DataSet ds; + string sXMJSLY = ""; + XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860000); + if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_XMJSLY)) + sXMJSLY = pzxx.XLXSBJPZ_XMJSLY; + + if (sXMJSLY.Equals("YXXM")) + { + sResult += "!select YXXM_XMID as CODE, YXXM_MC as Message from YXXM where 1 = 1 order by CODE "; + } + } + else if (ComponentID.ToUpper().Trim().Equals("TXTKHLXR")) + { + //DataSet ds; + string sKHJSLY = ""; + XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860000); + if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_KHJSLY)) + sKHJSLY = pzxx.XLXSBJPZ_KHJSLY; + + if (sKHJSLY.Equals("KHXX")) + { + Hashtable sSQLParams = GetHashtableValue(Server.HtmlDecode(Request.Form["SQLParam"].ToString())); + StringBuilder strSQL = new StringBuilder(); + strSQL.AppendLine("!select A.KHLXR_LXRID as CODE, case when isnull(A.KHLXR_XM,' ') = ' ' then A.KHLXR_CW else A.KHLXR_XM end as Message "); + strSQL.AppendLine(" from KHLXR A "); + strSQL.AppendLine(" left join KHXX on KHXX_CRMKHID=A.KHLXR_CRMKHID "); + strSQL.AppendLine(" where 1=1 "); + strSQL.AppendLine(" and KHXX_MC = '" + sSQLParams["KH"].ToString().Trim() + "' "); + strSQL.AppendLine(" and A.KHLXR_BB=(select max(KHLXR_BB) as BB "); + strSQL.AppendLine(" from KHLXR B "); + strSQL.AppendLine(" where B.KHLXR_CRMKHID=A.KHLXR_CRMKHID and B.KHLXR_LXRID=A.KHLXR_LXRID "); + strSQL.AppendLine(" and isnull(B.KHLXR_YZF,'N')<>'Y') "); + strSQL.AppendLine(" order by CODE "); + sResult += strSQL.ToString(); + } + } + return sResult; + } + + protected override bool ConfirmWFAction(TWFAction Action) + { + if (Action == TWFAction.wfaSubmit) + { + string sBJDID = txtBJDID.Text.Trim(); + string sWarningMsg = ""; + string sBJFLID = cbxBJFLID.SelectedValue.Trim(); + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(sBJFLID); + if (bjflxx.XLXSBJFL_XTCPBJYZ.Trim().Equals("Z") || bjflxx.XLXSBJFL_XTCPBJYZ.Trim().Equals("6")) + { + XLBJD_BDOBill.JudgeDifBJCP(sBJDID, GetOption(100860000, "BJU003"), ref sWarningMsg, bjflxx.XLXSBJFL_XTCPBJYZ.Trim()); + if (!sWarningMsg.Equals("")) + { + Confirm.Register("ask", "显示序号为" + sWarningMsg + "的相同报价产品的报价不同,是否确认提交?"); + Confirm.ShowBtnText = TConfirm.cBtnText.Yes_No; + if (Confirm.GetValue("ask").Trim().Equals("")) + { + Confirm.Ask("ask"); + return false; + } + else if (Confirm.GetValue("ask").Trim().Equals("N")) + { + Confirm.Clear(); + return false; + } + else if (Confirm.GetValue("ask").Trim().Equals("Y")) + { + Confirm.Clear(); + } + } + } + } + return base.ConfirmWFAction(Action); + } + + + + + + /// + /// 明细grid进行回发时,获取不到txtBJDYZ的值,故在回发事件中重新调用InitGrid + /// + /// + /// + /// + /// + /// + /// 显示价格表行情料价 + /// 显示价格表基价 + /// 显示表价价差率 + /// 显示报价单行情料价 + /// 显示料价价差率 + /// 显示结算价 + /// 显示调整报价 + /// 显示调整最低限价 + /// 显示调整金额 + /// 调整表价选项 + /// 显示表价价差额 + /// 显示最低限价 + /// 最低限价价差率 + /// 只读因子清单 + /// 只读事务清单 + /// 表价别名 + /// 仅录入报价产品 + /// 按角色隐藏栏目 + /// 型号规格右模糊检索 + /// 显示意向价 + /// 显示印字 + /// 显示原始产品 + /// 显示表价料价价差率 + private void InitGrid(string sBJFLID, int iXSWS, string sBJDYZText, string sYZWPIDList, string sTZJGBBJ, string sTZBJDHQLJ, string sReadOnlyYZ, string sZDWPIDList, string sPFYZID, string sHidJSLMList) + { + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(sBJFLID); + XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860000); + if (sBJDYZText.Equals("")) + return; + + if (grdXLBJDMX.Columns.Count > sConColumnsCount)//如果列数大于sConColumnsCount,说明已经执行过InitGrid,无需重复执行 + return; + + grdXLBJDMX.ShowPager = false;//不显示上下页 + + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_ZHCPMLMC").Visible = false; + if (XLBJDUtils.ExistXSCPML()) + { + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CPMLMC").Visible = true; + if(pzxx.XLXSBJPZ_XSCPML=="Z") + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_ZHCPMLMC").Visible = true; + } + else + { + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CPMLMC").Visible = false; + } + + if (XLBJDUtils.ExistGYKH()) + { + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_GYKH").Visible = true; + } + else + { + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_GYKH").Visible = false; + } + + if (pzxx.XLXSBJPZ_XSPWQD == "Y") + { + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_PWQDID").Visible = true; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_PWQDWLMC").Visible = true; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_PWQDMS").Visible = true; + + } + else + { + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_PWQDID").Visible = false; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_PWQDWLMC").Visible = false; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_PWQDMS").Visible = false; + + } + + //=======栏目可见 + //显示线缆标准描述 + if (bjflxx.XSXLBZMS()) + { + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_XLBZID").Visible = false; + grdXLBJDMX.FindColumnByFieldName("XLBZ_XLBZMS").Visible = true; + } + //显示报价单行情料价栏目 + if (bjflxx.XSBJDHQLJ()) + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJDHQCLCB").Visible = true; + else + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJDHQCLCB").Visible = false; + + //显示价格表行情料价栏目 + if (bjflxx.XSLJ()) + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CLCB").Visible = true; + else + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CLCB").Visible = false; + + //显示价格表基价栏目 + if (bjflxx.XSJGBJJChecked()) + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBJJ").Visible = true; + else + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBJJ").Visible = false; + //显示截面比公式栏目 + if (!bjflxx.XLXSBJFL_JMBGSYZID.Equals("")) + { + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JMBGS").Visible = true; + } + else + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JMBGS").Visible = false; + + if (bjflxx.XLXSBJFL_XSLSBJ == "Y") + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_LSJGBBJ").Visible = true; + else + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_LSJGBBJ").Visible = false; + + //=======编辑权限 + //调整表价 + if (XLBJDUtils.IsXSY(CurSession.UserId.Trim()) || XLBJDUtils.IsJXS(CurSession.UserId.Trim())) + { + if (GetOption(100860000, "BJU049") == "N") + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJ").ReadOnly = true; + } + else + { + if (sTZJGBBJ.Trim().Equals("1"))//1|不允许调整表价 + { + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJ").ReadOnly = true; + } + else + { + if (!bjflxx.XLXSBJFL_JGBBJZDWPID.Equals("")) + { + string sWPIDS = "," + bjflxx.XLXSBJFL_JGBBJZDWPID + ","; + string sWPID = txtWPID.Value.Trim().Equals("") ? "0010" : txtWPID.Value.Trim(); + if (sWPIDS.Contains(sWPID)) + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJ").ReadOnly = true; + else + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJ").ReadOnly = false; + } + else + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJ").ReadOnly = false; + } + } + //报价单行情料价 + if (sTZBJDHQLJ.Trim().Equals("1")) + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJDHQCLCB").ReadOnly = true; + else + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJDHQCLCB").ReadOnly = false; + + + string[] sYZWPIDs = sYZWPIDList.Split(new Char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); + string sFirstWPID = "";//新建时流程状态按sFirstWPID算 + if (!sBJFLID.Equals(""))//只有报价分类不为空,才说明取到控件值了,这时的txtWPID.Value为空才代表是新建状态 + { + ListItemCollection listItems = new ListItemCollection(); + WorkFlowUtils.SetListItemCollection_WFYWSW("XLXSBJ_BJD", listItems, false); + if (listItems.Count > 0) + { + sFirstWPID = listItems[0].Value.Trim(); + } + } + + string[] sBJDYZ = sBJDYZText.Split(','); + string[] sReadOnly = sReadOnlyYZ.Split(','); + string[] sZDWPIDs = sZDWPIDList.Split(new Char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); + + for (int i = 0; i < sBJDYZ.Length; i++) + { + gtAjaxGridViewColumn _gtAjaxGridViewColumnTZYZ = new gtAjaxGridViewColumn(); + if (XLBJDUtils.GetYZXXByYZID(sBJDYZ[i].Split('|')[0].Trim()).XLXSTZYZ_TJLX=="1") + _gtAjaxGridViewColumnTZYZ.HeaderText = sBJDYZ[i].Split('|')[1].Trim().Replace("()", "").Replace("(JD)", "(%)").Replace("(JJ)", "(元)").Replace("(KD)", "(%)").Replace("(DD)", "(%)").Replace("(MD)", "(%)").Replace("(XX)", "不参与调价").Replace("(MX)", "").Replace("(DX)", "").Replace("(SX)", "(%)").Replace("(MP)", "(%)"); + else + _gtAjaxGridViewColumnTZYZ.HeaderText = sBJDYZ[i].Split('|')[1].Trim().Replace("()", "").Replace("(JD)", "(%)").Replace("(JJ)", "").Replace("(KD)", "(%)").Replace("(MP)", "(%)"); + _gtAjaxGridViewColumnTZYZ.DataField = "TZYZ_" + sBJDYZ[i].Split('|')[0].Trim(); + if (_gtAjaxGridViewColumnTZYZ.HeaderText.Length < 8) + { + _gtAjaxGridViewColumnTZYZ.Width = Unit.Pixel(80); + } + else + { + _gtAjaxGridViewColumnTZYZ.Width = Unit.Pixel(_gtAjaxGridViewColumnTZYZ.HeaderText.Length * 10 + 20); + } + _gtAjaxGridViewColumnTZYZ.EditType = TEditType.etNumber; + if (sBJDYZ[i].Trim().EndsWith("(MX)") || sBJDYZ[i].Trim().EndsWith("(DX)")) + { + _gtAjaxGridViewColumnTZYZ.NumberDecimalPlace = 4; + } + else if (sBJDYZ[i].Trim().EndsWith("(JJ)"))//"加价"因子显示6位小数 + { + _gtAjaxGridViewColumnTZYZ.NumberDecimalPlace = 6; + } + else + { + _gtAjaxGridViewColumnTZYZ.NumberDecimalPlace = 2; + } + //分类选中的 + //BJ01|因子01(MX) + //BJ02|因子02() + //BJ03|因子03 + if (!sBJDYZ[i].Trim().EndsWith("()")) + { + _gtAjaxGridViewColumnTZYZ.Visible = true; + _gtAjaxGridViewColumnTZYZ.CalculateField = true; + + if (!sBJFLID.Equals(""))//只有报价分类不为空,才说明取到控件值了,这时的txtWPID.Value为空才代表是新建状态 + { + bool bReadOnly = true; + if (sReadOnly[i].Trim().Split('|')[1].Trim().Equals("Y")) + { + for (int j = 0; j < sZDWPIDs.Length; j++) + { + string tmpYZID = sZDWPIDs[j].Split('|')[0].Trim(); + if (tmpYZID.Equals(sReadOnly[i].Split('|')[0].Trim())) + { + string tmpWPIDs = "," + sZDWPIDs[j].Split('|')[1].Trim() + ","; + string curWPID = txtWPID.Value.Trim().Equals("") ? sFirstWPID : txtWPID.Value.Trim(); + //包含则只读 + if (tmpWPIDs.Contains("," + curWPID + ",")) + { + bReadOnly = true; + } + else + { + bReadOnly = false; + } + } + else + { + //只设置到只读,未设置到流程 + } + } + _gtAjaxGridViewColumnTZYZ.ReadOnly = bReadOnly; + + } + } + else + { + if (sReadOnly[i].Trim().Split('|')[1].Trim().Equals("Y")) + { + _gtAjaxGridViewColumnTZYZ.ReadOnly = true; + } + } + } + //没有选中的因子 + else + { + _gtAjaxGridViewColumnTZYZ.Visible = false; + } + _gtAjaxGridViewColumnTZYZ.FilterColumn = false; + grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnTZYZ); + if (txtXSJEYZ.Text.Trim().Contains(sBJDYZ[i].Split('|')[0].Trim())) + { + gtAjaxGridViewColumn _gtAjaxGridViewColumnTZYZJE = new gtAjaxGridViewColumn(); + _gtAjaxGridViewColumnTZYZJE.HeaderText = sBJDYZ[i].Split('|')[1].Trim().Replace("%", "").Replace("(JJ)", "").Replace("()", "").Replace("(XX)", "").Replace("(JD)", "").Replace("(KD)", "").Replace("(DD)", "").Replace("(MD)", "").Replace("(MX)", "").Replace("(DX)", "").Replace("(SX)", "").Replace("(MP)", "") + "金额(元)"; + _gtAjaxGridViewColumnTZYZJE.DataField = "TZYZJE_" + sBJDYZ[i].Split('|')[0].Trim(); + if (_gtAjaxGridViewColumnTZYZJE.HeaderText.Length < 8) + { + _gtAjaxGridViewColumnTZYZJE.Width = Unit.Pixel(80); + } + else + { + _gtAjaxGridViewColumnTZYZJE.Width = Unit.Pixel(_gtAjaxGridViewColumnTZYZJE.HeaderText.Length * 10 + 20); + } + _gtAjaxGridViewColumnTZYZJE.EditType = TEditType.etNumber; + _gtAjaxGridViewColumnTZYZJE.ReadOnly = true; + _gtAjaxGridViewColumnTZYZJE.NumberDecimalPlace = 2; + _gtAjaxGridViewColumnTZYZJE.FilterColumn = false; + if (!sBJDYZ[i].Trim().EndsWith("()")) + { + _gtAjaxGridViewColumnTZYZJE.Visible = true; + } + else + { + _gtAjaxGridViewColumnTZYZJE.Visible = false; + } + grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnTZYZJE); + } + } + + //根据适用工作流事务隐藏因子栏目 + if (!sBJFLID.Equals(""))//只有报价分类不为空,才说明取到控件值了,这时的txtWPID.Value为空才代表是新建状态 + { + for (int i = 0; i < sYZWPIDs.Length; i++) + { + string tmpYZID = sYZWPIDs[i].Split('|')[0].Trim(); + string tmpWPIDs = "," + sYZWPIDs[i].Split('|')[1].Trim() + ","; + string curWPID = txtWPID.Value.Trim().Equals("") ? sFirstWPID : txtWPID.Value.Trim(); + if (!tmpWPIDs.Contains("," + curWPID + ",")) + { + grdXLBJDMX.FindColumnByFieldName("TZYZ_" + tmpYZID).Visible = false; + } + } + } + + + //表价别名 + + string sJGBBJBM = bjflxx.XLXSBJFL_JGBBJBM.Equals("") ? "表价" : bjflxx.XLXSBJFL_JGBBJBM; + btnCLCB.Width = XLBJDUtils.GetBtnLength(ref sJGBBJBM, true); + btnCLCB.Caption = sJGBBJBM; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJ").HeaderText = sJGBBJBM; + + if (bjflxx.XLXSBJFL_XHGGYMHJS.Equals("Y")) + { + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_XLXHID").SearchModle = TSearchModle.R; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_XLGGID").SearchModle = TSearchModle.R; + } + else + { + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_XLXHID").SearchModle = TSearchModle.A; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_XLGGID").SearchModle = TSearchModle.A; + } + + + + XLXSBJPZXX YLPZXX = XLBJDUtils.GetXLXSBJPZXX(100860014); + // + gtAjaxGridViewColumn _gtAjaxGridViewColumnTCLYLBL = new gtAjaxGridViewColumn(); + _gtAjaxGridViewColumnTCLYLBL.HeaderText = "铜用量比例"; + _gtAjaxGridViewColumnTCLYLBL.DataField = "TCLYLBL"; + _gtAjaxGridViewColumnTCLYLBL.Width = Unit.Pixel(80); + _gtAjaxGridViewColumnTCLYLBL.EditType = TEditType.etNumber; + _gtAjaxGridViewColumnTCLYLBL.NumberDecimalPlace = 2; + _gtAjaxGridViewColumnTCLYLBL.ReadOnly = true; + if (!YLPZXX.XLXSBJPZ_TDTGSCLID.Equals("")) + _gtAjaxGridViewColumnTCLYLBL.Visible = true; + else + _gtAjaxGridViewColumnTCLYLBL.Visible = false; + _gtAjaxGridViewColumnTCLYLBL.FilterColumn = false; + grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnTCLYLBL); + + // + gtAjaxGridViewColumn _gtAjaxGridViewColumnLCLYLBL = new gtAjaxGridViewColumn(); + _gtAjaxGridViewColumnLCLYLBL.HeaderText = "铝用量比例"; + _gtAjaxGridViewColumnLCLYLBL.DataField = "LCLYLBL"; + _gtAjaxGridViewColumnLCLYLBL.Width = Unit.Pixel(80); + _gtAjaxGridViewColumnLCLYLBL.EditType = TEditType.etNumber; + _gtAjaxGridViewColumnLCLYLBL.NumberDecimalPlace = 2; + _gtAjaxGridViewColumnLCLYLBL.ReadOnly = true; + if (!YLPZXX.XLXSBJPZ_LBJCLID.Equals("")) + _gtAjaxGridViewColumnLCLYLBL.Visible = true; + else + _gtAjaxGridViewColumnLCLYLBL.Visible = false; + _gtAjaxGridViewColumnLCLYLBL.FilterColumn = false; + grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnLCLYLBL); + + // + gtAjaxGridViewColumn _gtAjaxGridViewColumnLHJCLYLBL = new gtAjaxGridViewColumn(); + _gtAjaxGridViewColumnLHJCLYLBL.HeaderText = "铝合金用量比例"; + _gtAjaxGridViewColumnLHJCLYLBL.DataField = "LHJCLYLBL"; + _gtAjaxGridViewColumnLHJCLYLBL.Width = Unit.Pixel(100); + _gtAjaxGridViewColumnLHJCLYLBL.EditType = TEditType.etNumber; + _gtAjaxGridViewColumnLHJCLYLBL.NumberDecimalPlace = 2; + _gtAjaxGridViewColumnLHJCLYLBL.ReadOnly = true; + if (!YLPZXX.XLXSBJPZ_LHJBJCLID.Equals("")) + _gtAjaxGridViewColumnLHJCLYLBL.Visible = true; + else + _gtAjaxGridViewColumnLHJCLYLBL.Visible = false; + _gtAjaxGridViewColumnLHJCLYLBL.FilterColumn = false; + grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnLHJCLYLBL); + + //——1 + gtAjaxGridViewColumn _gtAjaxGridViewColumnTZQCPBJ = new gtAjaxGridViewColumn(); + _gtAjaxGridViewColumnTZQCPBJ.HeaderText = "调整前报价"; + _gtAjaxGridViewColumnTZQCPBJ.DataField = "XLXSBJDMX_TZQCPBJ"; + _gtAjaxGridViewColumnTZQCPBJ.Width = Unit.Pixel(80); + _gtAjaxGridViewColumnTZQCPBJ.EditType = TEditType.etNumber; + _gtAjaxGridViewColumnTZQCPBJ.NumberDecimalPlace = CMISproConvert.StrToInt(bjflxx.XLXSBJFL_CPBJMRXSWS) > iXSWS ? CMISproConvert.StrToInt(bjflxx.XLXSBJFL_CPBJMRXSWS) : iXSWS;//保留精度高的 + _gtAjaxGridViewColumnTZQCPBJ.ReadOnly = true; + _gtAjaxGridViewColumnTZQCPBJ.Visible = false; + _gtAjaxGridViewColumnTZQCPBJ.FilterColumn = false; + grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnTZQCPBJ); + + //——2 + gtAjaxGridViewColumn _gtAjaxGridViewColumnTZJG = new gtAjaxGridViewColumn(); + _gtAjaxGridViewColumnTZJG.HeaderText = "调整报价(%)"; + _gtAjaxGridViewColumnTZJG.DataField = "XLXSBJDMX_TZCPBJ"; + _gtAjaxGridViewColumnTZJG.Width = Unit.Pixel(80); + _gtAjaxGridViewColumnTZJG.EditType = TEditType.etNumber; + _gtAjaxGridViewColumnTZJG.NumberDecimalPlace = 6; + _gtAjaxGridViewColumnTZJG.CalculateField = true; + if (bjflxx.XSTZCPBJChecked()) + _gtAjaxGridViewColumnTZJG.Visible = true; + else + _gtAjaxGridViewColumnTZJG.Visible = false; + _gtAjaxGridViewColumnTZJG.FilterColumn = false; + grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnTZJG); + + //——3 + //添加报价列 + gtAjaxGridViewColumn _gtAjaxGridViewColumnCPBJ = new gtAjaxGridViewColumn(); + _gtAjaxGridViewColumnCPBJ.HeaderText = "报价"; + _gtAjaxGridViewColumnCPBJ.DataField = "XLXSBJDMX_CPBJ"; + _gtAjaxGridViewColumnCPBJ.Width = Unit.Pixel(80); + _gtAjaxGridViewColumnCPBJ.EditType = TEditType.etNumber; + _gtAjaxGridViewColumnCPBJ.NumberDecimalPlace = CMISproConvert.StrToInt(bjflxx.XLXSBJFL_CPBJMRXSWS) > iXSWS ? CMISproConvert.StrToInt(bjflxx.XLXSBJFL_CPBJMRXSWS) : iXSWS;//保留精度高的 + _gtAjaxGridViewColumnCPBJ.CalculateField = true; + _gtAjaxGridViewColumnCPBJ.FilterColumn = false; + grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnCPBJ); + + //——4 + //添加报价金额列 + gtAjaxGridViewColumn _gtAjaxGridViewColumnTZQBJJE = new gtAjaxGridViewColumn(); + _gtAjaxGridViewColumnTZQBJJE.HeaderText = "报价金额"; + _gtAjaxGridViewColumnTZQBJJE.DataField = "XLXSBJDMX_TZQBJJE"; + _gtAjaxGridViewColumnTZQBJJE.Width = Unit.Pixel(80); + _gtAjaxGridViewColumnTZQBJJE.EditType = TEditType.etNumber; + _gtAjaxGridViewColumnTZQBJJE.NumberDecimalPlace = 2; + _gtAjaxGridViewColumnTZQBJJE.ReadOnly = true; + if (bjflxx.XSTZBJJEChecked()) + _gtAjaxGridViewColumnTZQBJJE.Visible = true; + else + _gtAjaxGridViewColumnTZQBJJE.Visible = false; + _gtAjaxGridViewColumnTZQBJJE.FilterColumn = false; + grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnTZQBJJE); + + //——5 + gtAjaxGridViewColumn _gtAjaxGridViewColumnTZJE = new gtAjaxGridViewColumn(); + _gtAjaxGridViewColumnTZJE.HeaderText = "调整金额(元)"; + _gtAjaxGridViewColumnTZJE.DataField = "XLXSBJDMX_TZBJJE"; + _gtAjaxGridViewColumnTZJE.Width = Unit.Pixel(80); + _gtAjaxGridViewColumnTZJE.EditType = TEditType.etNumber; + _gtAjaxGridViewColumnTZJE.NumberDecimalPlace = 2; + _gtAjaxGridViewColumnTZJE.CalculateField = true; + if (bjflxx.XSTZBJJEChecked()) + _gtAjaxGridViewColumnTZJE.Visible = true; + else + _gtAjaxGridViewColumnTZJE.Visible = false; + _gtAjaxGridViewColumnTZJE.FilterColumn = false; + grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnTZJE); + + + //——6 + gtAjaxGridViewColumn _gtAjaxGridViewColumnBJJE = new gtAjaxGridViewColumn(); + if (bjflxx.XSTZBJJEChecked()) + _gtAjaxGridViewColumnBJJE.HeaderText = "调整后报价金额"; + else + _gtAjaxGridViewColumnBJJE.HeaderText = "报价金额"; + _gtAjaxGridViewColumnBJJE.DataField = "XLXSBJDMX_BJJE"; + _gtAjaxGridViewColumnBJJE.Width = Unit.Pixel(90); + _gtAjaxGridViewColumnBJJE.EditType = TEditType.etNumber; + _gtAjaxGridViewColumnBJJE.NumberDecimalPlace = 2; + _gtAjaxGridViewColumnBJJE.ReadOnly = true; + _gtAjaxGridViewColumnBJJE.FilterColumn = false; + grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnBJJE); + + //——7 + //添加盘具金额列 + gtAjaxGridViewColumn _gtAjaxGridViewColumnPJJE = new gtAjaxGridViewColumn(); + _gtAjaxGridViewColumnPJJE.HeaderText = "盘具金额"; + _gtAjaxGridViewColumnPJJE.DataField = "XLXSBJDMX_PJJE"; + _gtAjaxGridViewColumnPJJE.Width = Unit.Pixel(80); + _gtAjaxGridViewColumnPJJE.EditType = TEditType.etNumber; + _gtAjaxGridViewColumnPJJE.CalculateField = false; + _gtAjaxGridViewColumnPJJE.ReadOnly = true; + _gtAjaxGridViewColumnPJJE.FilterColumn = false; + grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnPJJE); + if (pzxx.XLXSBJPZ_PFBJRBJ == "Y") + _gtAjaxGridViewColumnPJJE.Visible = true; + else + _gtAjaxGridViewColumnPJJE.Visible = false; + + + //——8 + gtAjaxGridViewColumn _gtAjaxGridViewColumnTZHDJ = new gtAjaxGridViewColumn(); + _gtAjaxGridViewColumnTZHDJ.HeaderText = "调整后单价"; + _gtAjaxGridViewColumnTZHDJ.DataField = "TZHDJ"; + _gtAjaxGridViewColumnTZHDJ.Width = Unit.Pixel(90); + _gtAjaxGridViewColumnTZHDJ.EditType = TEditType.etNumber; + _gtAjaxGridViewColumnTZHDJ.NumberDecimalPlace = iXSWS; + _gtAjaxGridViewColumnTZHDJ.ReadOnly = true; + if (bjflxx.XSTZBJJEChecked()) + _gtAjaxGridViewColumnTZHDJ.Visible = true; + else + _gtAjaxGridViewColumnTZHDJ.Visible = false; + _gtAjaxGridViewColumnTZHDJ.FilterColumn = false; + grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnTZHDJ); + + //——9 + gtAjaxGridViewColumn _gtAjaxGridViewColumnYXJ = new gtAjaxGridViewColumn(); + _gtAjaxGridViewColumnYXJ.HeaderText = "意向价"; + _gtAjaxGridViewColumnYXJ.DataField = "XLXSBJDMX_YXJG"; + _gtAjaxGridViewColumnYXJ.Width = Unit.Pixel(80); + _gtAjaxGridViewColumnYXJ.EditType = TEditType.etNumber; + _gtAjaxGridViewColumnYXJ.NumberDecimalPlace = CMISproConvert.StrToInt(bjflxx.XLXSBJFL_CPBJMRXSWS); + if (bjflxx.XSYXJChecked()) + _gtAjaxGridViewColumnYXJ.Visible = true; + else + _gtAjaxGridViewColumnYXJ.Visible = false; + _gtAjaxGridViewColumnYXJ.CalculateField = true; + _gtAjaxGridViewColumnYXJ.FilterColumn = false; + grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnYXJ); + + //——10 + gtAjaxGridViewColumn _gtAjaxGridViewColumnCLZL = new gtAjaxGridViewColumn(); + _gtAjaxGridViewColumnCLZL.HeaderText = "材料重量(Kg)"; + _gtAjaxGridViewColumnCLZL.DataField = "XLXSBJDMX_CLZL"; + _gtAjaxGridViewColumnCLZL.Width = Unit.Pixel(80); + _gtAjaxGridViewColumnCLZL.EditType = TEditType.etNumber; + _gtAjaxGridViewColumnCLZL.NumberDecimalPlace = 3; + _gtAjaxGridViewColumnCLZL.ReadOnly = true; + _gtAjaxGridViewColumnCLZL.FilterColumn = false; + grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnCLZL); + + + //——11 + gtAjaxGridViewColumn _gtAjaxGridViewColumnYXJJCL = new gtAjaxGridViewColumn(); + _gtAjaxGridViewColumnYXJJCL.HeaderText = "意向价价差率(%)"; + _gtAjaxGridViewColumnYXJJCL.DataField = "XLXSBJDMX_YXJJCL"; + _gtAjaxGridViewColumnYXJJCL.Width = Unit.Pixel(120); + _gtAjaxGridViewColumnYXJJCL.EditType = TEditType.etNumber; + _gtAjaxGridViewColumnYXJJCL.NumberDecimalPlace = 2; + _gtAjaxGridViewColumnYXJJCL.CalculateField = true; + _gtAjaxGridViewColumnYXJJCL.ReadOnly = true; + if (!bjflxx.XLXSBJFL_YXJJCLLX.Equals("")) + _gtAjaxGridViewColumnYXJJCL.Visible = true; + else + _gtAjaxGridViewColumnYXJJCL.Visible = false; + _gtAjaxGridViewColumnYXJJCL.FilterColumn = false; + grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnYXJJCL); + + //——12 + gtAjaxGridViewColumn _gtAjaxGridViewColumnBJLJJCL = new gtAjaxGridViewColumn(); + _gtAjaxGridViewColumnBJLJJCL.HeaderText = "表价料价价差率(%)"; + _gtAjaxGridViewColumnBJLJJCL.DataField = "XLXSBJDMX_JGBBJLJJCL"; + _gtAjaxGridViewColumnBJLJJCL.Width = Unit.Pixel(120); + _gtAjaxGridViewColumnBJLJJCL.EditType = TEditType.etNumber; + _gtAjaxGridViewColumnBJLJJCL.NumberDecimalPlace = 2; + _gtAjaxGridViewColumnBJLJJCL.CalculateField = true; + _gtAjaxGridViewColumnBJLJJCL.ReadOnly = true; + if (bjflxx.XSBJLJJCL()) + _gtAjaxGridViewColumnBJLJJCL.Visible = true; + else + _gtAjaxGridViewColumnBJLJJCL.Visible = false; + _gtAjaxGridViewColumnBJLJJCL.FilterColumn = false; + grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnBJLJJCL); + + //——13 + gtAjaxGridViewColumn _gtAjaxGridViewColumnCLCBLRL = new gtAjaxGridViewColumn(); + _gtAjaxGridViewColumnCLCBLRL.HeaderText = "料价价差率(%)"; + _gtAjaxGridViewColumnCLCBLRL.DataField = "XLXSBJDMX_CLCBJCL"; + _gtAjaxGridViewColumnCLCBLRL.Width = Unit.Pixel(120); + _gtAjaxGridViewColumnCLCBLRL.EditType = TEditType.etNumber; + _gtAjaxGridViewColumnCLCBLRL.NumberDecimalPlace = 2; + _gtAjaxGridViewColumnCLCBLRL.CalculateField = true; + if (bjflxx.XSTZCPBJChecked())//仅显示调整报价(%)栏目时可以修改料价价差率 + { + _gtAjaxGridViewColumnCLCBLRL.ReadOnly = false; + } + else + _gtAjaxGridViewColumnCLCBLRL.ReadOnly = true; + if (bjflxx.XSLJJCL()) + _gtAjaxGridViewColumnCLCBLRL.Visible = true; + else + _gtAjaxGridViewColumnCLCBLRL.Visible = false; + _gtAjaxGridViewColumnCLCBLRL.FilterColumn = false; + grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnCLCBLRL); + + //——14 + //添加利润率%列 + gtAjaxGridViewColumn _gtAjaxGridViewColumnLRL = new gtAjaxGridViewColumn(); + _gtAjaxGridViewColumnLRL.HeaderText = "表价价差率(%)"; + _gtAjaxGridViewColumnLRL.DataField = "XLXSBJDMX_JGBBJJCL"; + _gtAjaxGridViewColumnLRL.Width = Unit.Pixel(90); + _gtAjaxGridViewColumnLRL.EditType = TEditType.etNumber; + _gtAjaxGridViewColumnLRL.NumberDecimalPlace = 2; + _gtAjaxGridViewColumnLRL.CalculateField = true; + if (bjflxx.XSTZCPBJChecked())//仅显示调整报价(%)栏目时可以修改表价价差率 + { + _gtAjaxGridViewColumnLRL.ReadOnly = false; + } + else + _gtAjaxGridViewColumnLRL.ReadOnly = true; + if (bjflxx.XSJCL()) + _gtAjaxGridViewColumnLRL.Visible = true; + else + _gtAjaxGridViewColumnLRL.Visible = false; + _gtAjaxGridViewColumnLRL.FilterColumn = false; + grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnLRL); + + //——15 + //添加利润额列 + gtAjaxGridViewColumn _gtAjaxGridViewColumnLRE = new gtAjaxGridViewColumn(); + _gtAjaxGridViewColumnLRE.HeaderText = "表价价差额"; + _gtAjaxGridViewColumnLRE.DataField = "XLXSBJDMX_JGBBJJCE"; + _gtAjaxGridViewColumnLRE.Width = Unit.Pixel(80); + _gtAjaxGridViewColumnLRE.EditType = TEditType.etNumber; + _gtAjaxGridViewColumnLRE.NumberDecimalPlace = 2; + //_gtAjaxGridViewColumnLRE.CalculateField = true; + if (bjflxx.XSJGBBJJCEChecked()) + { + _gtAjaxGridViewColumnLRE.Visible = true; + } + else + { + _gtAjaxGridViewColumnLRE.Visible = false; + } + _gtAjaxGridViewColumnLRE.ReadOnly = true; + _gtAjaxGridViewColumnLRE.FilterColumn = false; + grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnLRE); + + //——16 + gtAjaxGridViewColumn _gtAjaxGridViewColumnTZQZDXJ = new gtAjaxGridViewColumn(); + _gtAjaxGridViewColumnTZQZDXJ.HeaderText = "调整前最低限价"; + _gtAjaxGridViewColumnTZQZDXJ.DataField = "XLXSBJDMX_TZQZDXJ"; + _gtAjaxGridViewColumnTZQZDXJ.Width = Unit.Pixel(80); + _gtAjaxGridViewColumnTZQZDXJ.EditType = TEditType.etNumber; + _gtAjaxGridViewColumnTZQZDXJ.NumberDecimalPlace = 8;//保留精度高的 + _gtAjaxGridViewColumnTZQZDXJ.ReadOnly = true; + _gtAjaxGridViewColumnTZQZDXJ.Visible = false; + _gtAjaxGridViewColumnTZQZDXJ.FilterColumn = false; + grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnTZQZDXJ); + + //——17 + gtAjaxGridViewColumn _gtAjaxGridViewColumnTZZDXJ = new gtAjaxGridViewColumn(); + _gtAjaxGridViewColumnTZZDXJ.HeaderText = "调整最低限价(%)"; + _gtAjaxGridViewColumnTZZDXJ.DataField = "XLXSBJDMX_TZZDXJ"; + _gtAjaxGridViewColumnTZZDXJ.Width = Unit.Pixel(80); + _gtAjaxGridViewColumnTZZDXJ.EditType = TEditType.etNumber; + _gtAjaxGridViewColumnTZZDXJ.NumberDecimalPlace = 6; + _gtAjaxGridViewColumnTZZDXJ.CalculateField = true; + if (bjflxx.XSTZZDXJ()) + _gtAjaxGridViewColumnTZZDXJ.Visible = true; + else + _gtAjaxGridViewColumnTZZDXJ.Visible = false; + _gtAjaxGridViewColumnTZZDXJ.FilterColumn = false; + grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnTZZDXJ); + + + //——18 + //添加最低限价列 + gtAjaxGridViewColumn _gtAjaxGridViewColumnZDXJ = new gtAjaxGridViewColumn(); + _gtAjaxGridViewColumnZDXJ.HeaderText = "最低限价"; + _gtAjaxGridViewColumnZDXJ.DataField = "XLXSBJDMX_ZDXJ"; + _gtAjaxGridViewColumnZDXJ.Width = Unit.Pixel(80); + _gtAjaxGridViewColumnZDXJ.EditType = TEditType.etNumber; + _gtAjaxGridViewColumnZDXJ.NumberDecimalPlace = iXSWS; + if (bjflxx.XSZDXJ()) + { + _gtAjaxGridViewColumnZDXJ.Visible = true; + } + else + { + _gtAjaxGridViewColumnZDXJ.Visible = false; + } + if (bjflxx.XSTZZDXJ()) + { + _gtAjaxGridViewColumnZDXJ.CalculateField = true; + } + else + { + _gtAjaxGridViewColumnZDXJ.ReadOnly = true; + } + _gtAjaxGridViewColumnZDXJ.FilterColumn = false; + grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnZDXJ); + + //——19 + //添加最低限价列 + gtAjaxGridViewColumn _gtAjaxGridViewColumnZDXJJE = new gtAjaxGridViewColumn(); + _gtAjaxGridViewColumnZDXJJE.HeaderText = "最低限价金额"; + _gtAjaxGridViewColumnZDXJJE.DataField = "XLXSBJDMX_ZDXJJE"; + _gtAjaxGridViewColumnZDXJJE.Width = Unit.Pixel(80); + _gtAjaxGridViewColumnZDXJJE.EditType = TEditType.etNumber; + _gtAjaxGridViewColumnZDXJJE.NumberDecimalPlace = 2; + if (bjflxx.XSZDXJ()) + { + _gtAjaxGridViewColumnZDXJJE.Visible = true; + } + else + { + _gtAjaxGridViewColumnZDXJJE.Visible = false; + } + _gtAjaxGridViewColumnZDXJJE.ReadOnly = true; + + _gtAjaxGridViewColumnZDXJJE.FilterColumn = false; + grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnZDXJJE); + + //——20 + //添加最低限价价差率%列 + gtAjaxGridViewColumn _gtAjaxGridViewColumnZDXJJCL = new gtAjaxGridViewColumn(); + _gtAjaxGridViewColumnZDXJJCL.HeaderText = "最低限价价差率(%)"; + _gtAjaxGridViewColumnZDXJJCL.DataField = "XLXSBJDMX_ZDXJJCL"; + _gtAjaxGridViewColumnZDXJJCL.Width = Unit.Pixel(120); + _gtAjaxGridViewColumnZDXJJCL.EditType = TEditType.etNumber; + _gtAjaxGridViewColumnZDXJJCL.NumberDecimalPlace = CMISproConvert.StrToInt(GetOption(100860000, "BJU054")); + _gtAjaxGridViewColumnZDXJJCL.CalculateField = true; + if (bjflxx.XSZDXJ() && !bjflxx.XLXSBJFL_ZDXJJCLLX.Equals("")) + _gtAjaxGridViewColumnZDXJJCL.Visible = true; + else + _gtAjaxGridViewColumnZDXJJCL.Visible = false; + _gtAjaxGridViewColumnZDXJJCL.ReadOnly = true; + _gtAjaxGridViewColumnZDXJJCL.FilterColumn = true; + grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnZDXJJCL); + + //——21 + //添加结算价列 + gtAjaxGridViewColumn _gtAjaxGridViewColumnJSJ = new gtAjaxGridViewColumn(); + _gtAjaxGridViewColumnJSJ.HeaderText = "结算价"; + _gtAjaxGridViewColumnJSJ.DataField = "XLXSBJDMX_JSJG"; + _gtAjaxGridViewColumnJSJ.Width = Unit.Pixel(80); + _gtAjaxGridViewColumnJSJ.EditType = TEditType.etNumber; + if (!bjflxx.XLXSBJFL_JSJXSWS.Equals("0") && !bjflxx.XLXSBJFL_JSJXSWS.Equals("")) + { + int iJSJXSWS = CMISproConvert.StrToInt(bjflxx.XLXSBJFL_JSJXSWS); + _gtAjaxGridViewColumnJSJ.NumberDecimalPlace = iJSJXSWS; + } + else + _gtAjaxGridViewColumnJSJ.NumberDecimalPlace = iXSWS; + if (bjflxx.XSJSJ()) + { + _gtAjaxGridViewColumnJSJ.Visible = true; + } + else + { + _gtAjaxGridViewColumnJSJ.Visible = false; + } + + _gtAjaxGridViewColumnJSJ.ReadOnly = true; + + _gtAjaxGridViewColumnJSJ.FilterColumn = false; + grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnJSJ); + + + //——22 + //添加结算价金额列 + gtAjaxGridViewColumn _gtAjaxGridViewColumnJSJJE = new gtAjaxGridViewColumn(); + _gtAjaxGridViewColumnJSJJE.HeaderText = "结算价金额"; + _gtAjaxGridViewColumnJSJJE.DataField = "XLXSBJDMX_JSJJE"; + _gtAjaxGridViewColumnJSJJE.Width = Unit.Pixel(80); + _gtAjaxGridViewColumnJSJJE.EditType = TEditType.etNumber; + _gtAjaxGridViewColumnJSJ.NumberDecimalPlace = 2; + if (bjflxx.XSJSJ() && !bjflxx.XLXSBJFL_JSJJCLLX.Equals("")) + { + _gtAjaxGridViewColumnJSJJE.Visible = true; + } + else + { + _gtAjaxGridViewColumnJSJJE.Visible = false; + } + + _gtAjaxGridViewColumnJSJJE.ReadOnly = true; + + _gtAjaxGridViewColumnJSJJE.FilterColumn = false; + grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnJSJJE); + + + + //——23 + //添加结算价价差率列 + gtAjaxGridViewColumn _gtAjaxGridViewColumnJSJJCL = new gtAjaxGridViewColumn(); + _gtAjaxGridViewColumnJSJJCL.HeaderText = "结算价价差率(%)"; + _gtAjaxGridViewColumnJSJJCL.DataField = "XLXSBJDMX_JSJJCL"; + _gtAjaxGridViewColumnJSJJCL.Width = Unit.Pixel(80); + _gtAjaxGridViewColumnJSJJCL.EditType = TEditType.etNumber; + + _gtAjaxGridViewColumnJSJJCL.NumberDecimalPlace = 2; + if (bjflxx.XSJSJ()&&!bjflxx.XLXSBJFL_JSJJCLLX.Equals("")) + { + _gtAjaxGridViewColumnJSJJCL.Visible = true; + } + else + { + _gtAjaxGridViewColumnJSJJCL.Visible = false; + } + + _gtAjaxGridViewColumnJSJJCL.ReadOnly = true; + + _gtAjaxGridViewColumnJSJJCL.FilterColumn = false; + grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnJSJJCL); + + + //——24 + //添加原始产品列 + gtAjaxGridViewColumn _gtAjaxGridViewColumnYSCP = new gtAjaxGridViewColumn(); + _gtAjaxGridViewColumnYSCP.HeaderText = "原始产品"; + _gtAjaxGridViewColumnYSCP.DataField = "XLXSBJDMX_YSCP"; + _gtAjaxGridViewColumnYSCP.Width = Unit.Pixel(200); + _gtAjaxGridViewColumnYSCP.EditType = TEditType.etString; + if (bjflxx.XSYSCPChecked()) + _gtAjaxGridViewColumnYSCP.Visible = true; + else + _gtAjaxGridViewColumnYSCP.Visible = false; + _gtAjaxGridViewColumnYSCP.FilterColumn = false; + grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnYSCP); + + //——25 + //添加客户物料编码列 + gtAjaxGridViewColumn _gtAjaxGridViewColumnKHWLID = new gtAjaxGridViewColumn(); + _gtAjaxGridViewColumnKHWLID.HeaderText = "客户物料编码"; + _gtAjaxGridViewColumnKHWLID.DataField = "XLXSBJDMX_KHWLID"; + _gtAjaxGridViewColumnKHWLID.Width = Unit.Pixel(200); + _gtAjaxGridViewColumnKHWLID.EditType = TEditType.etString; + if (pzxx.XLXSBJPZ_XZMXKXX.Contains("KHWLDR"))//仅业务配置勾选“按客户物料导入”时显示。 + _gtAjaxGridViewColumnKHWLID.Visible = true; + else + _gtAjaxGridViewColumnKHWLID.Visible = false; + _gtAjaxGridViewColumnKHWLID.FilterColumn = false; + grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnKHWLID); + _gtAjaxGridViewColumnKHWLID.CalculateField = true; + + //——26 + //添加印字列 + gtAjaxGridViewColumn _gtAjaxGridViewColumnYZ = new gtAjaxGridViewColumn(); + _gtAjaxGridViewColumnYZ.HeaderText = "印字"; + _gtAjaxGridViewColumnYZ.DataField = "XLXSBJDMX_YZ"; + _gtAjaxGridViewColumnYZ.Width = Unit.Pixel(200); + _gtAjaxGridViewColumnYZ.EditType = TEditType.etString; + if (bjflxx.XSYZChecked()) + _gtAjaxGridViewColumnYZ.Visible = true; + else + _gtAjaxGridViewColumnYZ.Visible = false; + _gtAjaxGridViewColumnYZ.FilterColumn = false; + grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnYZ); + + //——27 + //添加包号列 + gtAjaxGridViewColumn _gtAjaxGridViewColumnFBH = new gtAjaxGridViewColumn(); + _gtAjaxGridViewColumnFBH.HeaderText = "包号"; + _gtAjaxGridViewColumnFBH.DataField = "XLXSBJDMX_FBH"; + _gtAjaxGridViewColumnFBH.Width = Unit.Pixel(200); + _gtAjaxGridViewColumnFBH.EditType = TEditType.etString; + if (bjflxx.XSBHChecked()) + _gtAjaxGridViewColumnFBH.Visible = true; + else + _gtAjaxGridViewColumnFBH.Visible = false; + _gtAjaxGridViewColumnFBH.FilterColumn = false; + grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnFBH); + + + //——28 + //产品报价限价 + gtAjaxGridViewColumn _gtAjaxGridViewColumnCPBJXJ = new gtAjaxGridViewColumn(); + _gtAjaxGridViewColumnCPBJXJ.HeaderText = "产品报价限价"; + _gtAjaxGridViewColumnCPBJXJ.DataField = "XLXSBJDMX_CPBJXJ"; + _gtAjaxGridViewColumnCPBJXJ.Width = Unit.Pixel(80); + _gtAjaxGridViewColumnCPBJXJ.EditType = TEditType.etNumber; + _gtAjaxGridViewColumnCPBJXJ.CalculateField = true; + _gtAjaxGridViewColumnCPBJXJ.NumberDecimalPlace = CMISproConvert.StrToInt(bjflxx.XLXSBJFL_CPBJMRXSWS) > iXSWS ? CMISproConvert.StrToInt(bjflxx.XLXSBJFL_CPBJMRXSWS) : iXSWS;//保留精度高的 + if (bjflxx.XSCPBJXJChecked()) + _gtAjaxGridViewColumnCPBJXJ.Visible = true; + else + _gtAjaxGridViewColumnCPBJXJ.Visible = false; + _gtAjaxGridViewColumnCPBJXJ.FilterColumn = false; + grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnCPBJXJ); + + //——29 + //报价限价扣点 + gtAjaxGridViewColumn _gtAjaxGridViewColumnBJXJKD = new gtAjaxGridViewColumn(); + _gtAjaxGridViewColumnBJXJKD.HeaderText = "报价限价扣点"; + _gtAjaxGridViewColumnBJXJKD.DataField = "XLXSBJDMX_BJXJKD"; + _gtAjaxGridViewColumnBJXJKD.Width = Unit.Pixel(80); + _gtAjaxGridViewColumnBJXJKD.EditType = TEditType.etNumber; + _gtAjaxGridViewColumnBJXJKD.NumberDecimalPlace = 2;//保留精度高的 + if (bjflxx.XSCPBJXJChecked()) + _gtAjaxGridViewColumnBJXJKD.Visible = true; + else + _gtAjaxGridViewColumnBJXJKD.Visible = false; + _gtAjaxGridViewColumnBJXJKD.FilterColumn = false; + _gtAjaxGridViewColumnBJXJKD.ReadOnly = true; + grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnBJXJKD); + + //——30 + //报价限价加价 + gtAjaxGridViewColumn _gtAjaxGridViewColumnBJXJJJ = new gtAjaxGridViewColumn(); + _gtAjaxGridViewColumnBJXJJJ.HeaderText = "报价限价加价"; + _gtAjaxGridViewColumnBJXJJJ.DataField = "XLXSBJDMX_BJXJJJ"; + _gtAjaxGridViewColumnBJXJJJ.Width = Unit.Pixel(80); + _gtAjaxGridViewColumnBJXJJJ.EditType = TEditType.etNumber; + _gtAjaxGridViewColumnBJXJJJ.NumberDecimalPlace = 6;//保留精度高的 + if (bjflxx.XSCPBJXJChecked()) + _gtAjaxGridViewColumnBJXJJJ.Visible = true; + else + _gtAjaxGridViewColumnBJXJJJ.Visible = false; + _gtAjaxGridViewColumnBJXJJJ.FilterColumn = false; + _gtAjaxGridViewColumnBJXJJJ.ReadOnly = true; + grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnBJXJJJ); + + //——31 + //限价与报价差额 + gtAjaxGridViewColumn _gtAjaxGridViewColumnXJBJCE= new gtAjaxGridViewColumn(); + _gtAjaxGridViewColumnXJBJCE.HeaderText = "限价与报价差额"; + _gtAjaxGridViewColumnXJBJCE.DataField = "XJBJCE"; + _gtAjaxGridViewColumnXJBJCE.Width = Unit.Pixel(104); + _gtAjaxGridViewColumnXJBJCE.EditType = TEditType.etNumber; + _gtAjaxGridViewColumnXJBJCE.NumberDecimalPlace = CMISproConvert.StrToInt(bjflxx.XLXSBJFL_CPBJMRXSWS) > iXSWS ? CMISproConvert.StrToInt(bjflxx.XLXSBJFL_CPBJMRXSWS) : iXSWS;//保留精度高的 + if (bjflxx.XSCPBJXJChecked()) + _gtAjaxGridViewColumnXJBJCE.Visible = true; + else + _gtAjaxGridViewColumnXJBJCE.Visible = false; + _gtAjaxGridViewColumnXJBJCE.FilterColumn = false; + _gtAjaxGridViewColumnXJBJCE.ReadOnly = true; + grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnXJBJCE); + + //——32 + //报价金额限价 + gtAjaxGridViewColumn _gtAjaxGridViewColumnBJJEXJ = new gtAjaxGridViewColumn(); + _gtAjaxGridViewColumnBJJEXJ.HeaderText = "报价金额限价"; + _gtAjaxGridViewColumnBJJEXJ.DataField = "XLXSBJDMX_BJJEXJ"; + _gtAjaxGridViewColumnBJJEXJ.Width = Unit.Pixel(80); + _gtAjaxGridViewColumnBJJEXJ.EditType = TEditType.etNumber; + _gtAjaxGridViewColumnBJJEXJ.NumberDecimalPlace = 2; + if (bjflxx.XSCPBJXJChecked()) + _gtAjaxGridViewColumnBJJEXJ.Visible = true; + else + _gtAjaxGridViewColumnBJJEXJ.Visible = false; + _gtAjaxGridViewColumnBJJEXJ.FilterColumn = false; + grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnBJJEXJ); + + //——33 + //添加备注列 + gtAjaxGridViewColumn _gtAjaxGridViewColumnBZ = new gtAjaxGridViewColumn(); + _gtAjaxGridViewColumnBZ.HeaderText = "备注"; + _gtAjaxGridViewColumnBZ.DataField = "XLXSBJDMX_BZ"; + _gtAjaxGridViewColumnBZ.Width = Unit.Pixel(200); + _gtAjaxGridViewColumnBZ.EditType = TEditType.etString; + _gtAjaxGridViewColumnBZ.FilterColumn = true; + grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnBZ); + + + //——34 + //添加报价产品锁定列 + gtAjaxGridViewColumn _gtAjaxGridViewColumnBJCPSD = new gtAjaxGridViewColumn(); + _gtAjaxGridViewColumnBJCPSD.HeaderText = "报价产品锁定"; + _gtAjaxGridViewColumnBJCPSD.DataField = "XLXSBJDMX_BJCPSD"; + _gtAjaxGridViewColumnBJCPSD.Width = Unit.Pixel(60); + _gtAjaxGridViewColumnBJCPSD.EditType = TEditType.etCheckBox; + _gtAjaxGridViewColumnBJCPSD.CalculateField = true; + _gtAjaxGridViewColumnBJCPSD.ReadOnly = true; + _gtAjaxGridViewColumnBJCPSD.Visible = false; + _gtAjaxGridViewColumnBJCPSD.FilterColumn = false; + grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnBJCPSD); + + //——35 + //添加报价锁定列 + gtAjaxGridViewColumn _gtAjaxGridViewColumnBJSDBZ = new gtAjaxGridViewColumn(); + _gtAjaxGridViewColumnBJSDBZ.HeaderText = "报价锁定"; + _gtAjaxGridViewColumnBJSDBZ.DataField = "XLXSBJDMX_BJSDBZ"; + _gtAjaxGridViewColumnBJSDBZ.Width = Unit.Pixel(60); + _gtAjaxGridViewColumnBJSDBZ.EditType = TEditType.etCheckBox; + _gtAjaxGridViewColumnBJSDBZ.CalculateField = true; + _gtAjaxGridViewColumnBJSDBZ.FilterColumn = false; + grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnBJSDBZ); + + + + //——36 + //添加报价锁定列 + gtAjaxGridViewColumn _gtAjaxGridViewColumnCLCBJCLSDBZ = new gtAjaxGridViewColumn(); + _gtAjaxGridViewColumnCLCBJCLSDBZ.HeaderText = "按料价价差率算报价"; + _gtAjaxGridViewColumnCLCBJCLSDBZ.DataField = "XLXSBJDMX_CLCBJCLSDBZ"; + _gtAjaxGridViewColumnCLCBJCLSDBZ.Width = Unit.Pixel(90); + _gtAjaxGridViewColumnCLCBJCLSDBZ.EditType = TEditType.etCheckBox; + _gtAjaxGridViewColumnCLCBJCLSDBZ.CalculateField = true; + //仅报价单行情料价显示时显示 + if (bjflxx.XSBJDHQLJ()) + _gtAjaxGridViewColumnCLCBJCLSDBZ.Visible = true; + else + _gtAjaxGridViewColumnCLCBJCLSDBZ.Visible = false; + _gtAjaxGridViewColumnCLCBJCLSDBZ.FilterColumn = false; + grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnCLCBJCLSDBZ); + + //--37 + //物料信息 + gtAjaxGridViewColumn _gtAjaxGridViewColumnWLXX = new gtAjaxGridViewColumn(); + _gtAjaxGridViewColumnWLXX.HeaderText = "物料信息"; + _gtAjaxGridViewColumnWLXX.DataField = "WLXX"; + _gtAjaxGridViewColumnWLXX.Width = Unit.Pixel(100); + _gtAjaxGridViewColumnWLXX.EditType = TEditType.etString; + _gtAjaxGridViewColumnWLXX.FilterColumn = false; + _gtAjaxGridViewColumnWLXX.ReadOnly = true; + grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnWLXX); + if (pzxx.XLXSBJPZ_XSZBXX == "Y") + { + _gtAjaxGridViewColumnWLXX.Visible = true; + } + else + { + _gtAjaxGridViewColumnWLXX.Visible = false; + } + + //--38 + //中标 + gtAjaxGridViewColumn _gtAjaxGridViewColumnZB = new gtAjaxGridViewColumn(); + _gtAjaxGridViewColumnZB.HeaderText = "中标"; + _gtAjaxGridViewColumnZB.DataField = "XLXSBJDMX_ZB"; + _gtAjaxGridViewColumnZB.Width = Unit.Pixel(60); + _gtAjaxGridViewColumnZB.EditType = TEditType.etCheckBox; + _gtAjaxGridViewColumnZB.CalculateField = false; + _gtAjaxGridViewColumnZB.FilterColumn = false; + grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnZB); + _gtAjaxGridViewColumnZB.ReadOnly = true; + if (pzxx.XLXSBJPZ_XSZBXX == "Y") + { + _gtAjaxGridViewColumnZB.Visible = true; + } + else + { + _gtAjaxGridViewColumnZB.Visible = false; + } + + //--39 + //中标数量 + gtAjaxGridViewColumn _gtAjaxGridViewColumnZBSL = new gtAjaxGridViewColumn(); + _gtAjaxGridViewColumnZBSL.HeaderText = "中标数量"; + _gtAjaxGridViewColumnZBSL.DataField = "XLXSBJDMX_ZBSL"; + _gtAjaxGridViewColumnZBSL.Width = Unit.Pixel(80); + _gtAjaxGridViewColumnZBSL.EditType = TEditType.etNumber; + _gtAjaxGridViewColumnZBSL.NumberDecimalPlace = 2; + _gtAjaxGridViewColumnZBSL.ReadOnly = true; + if (pzxx.XLXSBJPZ_XSZBXX == "Y") + _gtAjaxGridViewColumnZBSL.Visible = true; + else + _gtAjaxGridViewColumnZBSL.Visible = false; + _gtAjaxGridViewColumnZBSL.FilterColumn = false; + grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnZBSL); + + //--40 + //中标金额 + gtAjaxGridViewColumn _gtAjaxGridViewColumnZBJE = new gtAjaxGridViewColumn(); + _gtAjaxGridViewColumnZBJE.HeaderText = "中标金额"; + _gtAjaxGridViewColumnZBJE.DataField = "XLXSBJDMX_ZBJE"; + _gtAjaxGridViewColumnZBJE.Width = Unit.Pixel(80); + _gtAjaxGridViewColumnZBJE.EditType = TEditType.etNumber; + _gtAjaxGridViewColumnZBJE.ReadOnly =true; + _gtAjaxGridViewColumnZBJE.NumberDecimalPlace = 2; + if (pzxx.XLXSBJPZ_XSZBXX == "Y") + _gtAjaxGridViewColumnZBJE.Visible = true; + else + _gtAjaxGridViewColumnZBJE.Visible = false; + _gtAjaxGridViewColumnZBJE.FilterColumn = false; + grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnZBJE); + + //——41 + //添加维护人工号列 + gtAjaxGridViewColumn _gtAjaxGridViewColumnWHRID = new gtAjaxGridViewColumn(); + _gtAjaxGridViewColumnWHRID.HeaderText = "维护人工号"; + _gtAjaxGridViewColumnWHRID.DataField = "XLXSBJDMX_WHRID"; + _gtAjaxGridViewColumnWHRID.Width = Unit.Pixel(70); + _gtAjaxGridViewColumnWHRID.EditType = TEditType.etString; + _gtAjaxGridViewColumnWHRID.Visible = false; + _gtAjaxGridViewColumnWHRID.FilterColumn = false; + grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnWHRID); + + //——42 + //添加维护人列 + gtAjaxGridViewColumn _gtAjaxGridViewColumnWHR = new gtAjaxGridViewColumn(); + _gtAjaxGridViewColumnWHR.HeaderText = "维护人"; + _gtAjaxGridViewColumnWHR.DataField = "XLXSBJDMX_WHR"; + _gtAjaxGridViewColumnWHR.Width = Unit.Pixel(72); + _gtAjaxGridViewColumnWHR.EditType = TEditType.etString; + _gtAjaxGridViewColumnWHR.ReadOnly = true; + _gtAjaxGridViewColumnWHR.FilterColumn = false; + grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnWHR); + + //——43 + //添加维护时间列 + gtAjaxGridViewColumn _gtAjaxGridViewColumnWHSJ = new gtAjaxGridViewColumn(); + _gtAjaxGridViewColumnWHSJ.HeaderText = "维护时间"; + _gtAjaxGridViewColumnWHSJ.DataField = "XLXSBJDMX_WHSJ"; + _gtAjaxGridViewColumnWHSJ.Width = Unit.Pixel(125); + _gtAjaxGridViewColumnWHSJ.EditType = TEditType.etDateTime; + _gtAjaxGridViewColumnWHSJ.DateTimeEditKind = TDateTimeEditKinds.dtDateTime; + _gtAjaxGridViewColumnWHSJ.ReadOnly = true; + _gtAjaxGridViewColumnWHSJ.FilterColumn = false; + grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnWHSJ); + + //——44 + //有无清单 + gtAjaxGridViewColumn _gtAjaxGridViewColumnHasCLQD = new gtAjaxGridViewColumn(); + _gtAjaxGridViewColumnHasCLQD.HeaderText = "有无清单"; + _gtAjaxGridViewColumnHasCLQD.DataField = "HasCLQD"; + _gtAjaxGridViewColumnHasCLQD.Width = Unit.Pixel(72); + _gtAjaxGridViewColumnHasCLQD.EditType = TEditType.etString; + _gtAjaxGridViewColumnHasCLQD.ReadOnly = true; + _gtAjaxGridViewColumnHasCLQD.Visible = false; + _gtAjaxGridViewColumnHasCLQD.FilterColumn = false; + grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnHasCLQD); + + + //——45 + //有无用量定制申请记录 + gtAjaxGridViewColumn _gtAjaxGridViewColumnHasYLZDSQ = new gtAjaxGridViewColumn(); + _gtAjaxGridViewColumnHasYLZDSQ.HeaderText = "有无用量制定申请"; + _gtAjaxGridViewColumnHasYLZDSQ.DataField = "HasYLDZSQ"; + _gtAjaxGridViewColumnHasYLZDSQ.Width = Unit.Pixel(72); + _gtAjaxGridViewColumnHasYLZDSQ.EditType = TEditType.etString; + _gtAjaxGridViewColumnHasYLZDSQ.ReadOnly = true; + _gtAjaxGridViewColumnHasYLZDSQ.Visible = false; + _gtAjaxGridViewColumnHasYLZDSQ.FilterColumn = false; + grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnHasYLZDSQ); + + + //——46 + //更新基价因子值 + gtAjaxGridViewColumn _gtAjaxGridViewColumnUpdJJYZList = new gtAjaxGridViewColumn(); + _gtAjaxGridViewColumnUpdJJYZList.HeaderText = "更新基价因子值"; + _gtAjaxGridViewColumnUpdJJYZList.DataField = "UpdJJYZList"; + _gtAjaxGridViewColumnUpdJJYZList.Width = Unit.Pixel(72); + _gtAjaxGridViewColumnUpdJJYZList.EditType = TEditType.etString; + _gtAjaxGridViewColumnUpdJJYZList.ReadOnly = true; + _gtAjaxGridViewColumnUpdJJYZList.Visible = false; + _gtAjaxGridViewColumnUpdJJYZList.FilterColumn = false; + grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnUpdJJYZList); + + //——47 + //根据XLXSBJXHML能否查询出产品目录名称 + gtAjaxGridViewColumn _gtAjaxGridViewColumnHasCPMLID = new gtAjaxGridViewColumn(); + _gtAjaxGridViewColumnHasCPMLID.HeaderText = "有无产品目录"; + _gtAjaxGridViewColumnHasCPMLID.DataField = "HasCPMLID"; + _gtAjaxGridViewColumnHasCPMLID.Width = Unit.Pixel(72); + _gtAjaxGridViewColumnHasCPMLID.EditType = TEditType.etString; + _gtAjaxGridViewColumnHasCPMLID.ReadOnly = true; + _gtAjaxGridViewColumnHasCPMLID.Visible = false; + _gtAjaxGridViewColumnHasCPMLID.FilterColumn = false; + grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnHasCPMLID); + + //——48 + //XLXSBJDMX_BJLY|报价来源 + gtAjaxGridViewColumn _gtAjaxGridViewColumnBJLY = new gtAjaxGridViewColumn(); + _gtAjaxGridViewColumnBJLY.HeaderText = "报价来源"; + _gtAjaxGridViewColumnBJLY.DataField = "XLXSBJDMX_BJLY"; + _gtAjaxGridViewColumnBJLY.Width = Unit.Pixel(72); + _gtAjaxGridViewColumnBJLY.EditType = TEditType.etString; + _gtAjaxGridViewColumnBJLY.ReadOnly = true; + _gtAjaxGridViewColumnBJLY.Visible = false; + _gtAjaxGridViewColumnBJLY.FilterColumn = false; + grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnBJLY); + + //——49 + //XLXSBJDMX_BJTJCZ|报价调价操作 + gtAjaxGridViewColumn _gtAjaxGridViewColumnBJTJCZ = new gtAjaxGridViewColumn(); + _gtAjaxGridViewColumnBJTJCZ.HeaderText = "报价调价操作"; + _gtAjaxGridViewColumnBJTJCZ.DataField = "XLXSBJDMX_BJTJCZ"; + _gtAjaxGridViewColumnBJTJCZ.Width = Unit.Pixel(72); + _gtAjaxGridViewColumnBJTJCZ.EditType = TEditType.etString; + _gtAjaxGridViewColumnBJTJCZ.ReadOnly = true; + _gtAjaxGridViewColumnBJTJCZ.Visible = false; + _gtAjaxGridViewColumnBJTJCZ.FilterColumn = false; + grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnBJTJCZ); + + //——50 + //PFYSQKBZ|盘费要素清空标志 + gtAjaxGridViewColumn _gtAjaxGridViewColumnPFYSQKBZ = new gtAjaxGridViewColumn(); + _gtAjaxGridViewColumnPFYSQKBZ.HeaderText = "盘费要素清空标志"; + _gtAjaxGridViewColumnPFYSQKBZ.DataField = "PFYSQKBZ"; + _gtAjaxGridViewColumnPFYSQKBZ.Width = Unit.Pixel(72); + _gtAjaxGridViewColumnPFYSQKBZ.EditType = TEditType.etString; + _gtAjaxGridViewColumnPFYSQKBZ.ReadOnly = true; + _gtAjaxGridViewColumnPFYSQKBZ.Visible = false; + _gtAjaxGridViewColumnPFYSQKBZ.FilterColumn = false; + grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnPFYSQKBZ); + + //——51 + //HasFDJL|有无分段记录 + gtAjaxGridViewColumn _gtAjaxGridViewColumnHasFDJL = new gtAjaxGridViewColumn(); + _gtAjaxGridViewColumnHasFDJL.HeaderText = "盘费要素清空标志"; + _gtAjaxGridViewColumnHasFDJL.DataField = "HasFDJL"; + _gtAjaxGridViewColumnHasFDJL.Width = Unit.Pixel(72); + _gtAjaxGridViewColumnHasFDJL.EditType = TEditType.etString; + _gtAjaxGridViewColumnHasFDJL.ReadOnly = true; + _gtAjaxGridViewColumnHasFDJL.Visible = false; + _gtAjaxGridViewColumnHasFDJL.FilterColumn = false; + grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnHasFDJL); + + //——52 + //DZSC|定制生产 + gtAjaxGridViewColumn _gtAjaxGridViewColumnDZSC = new gtAjaxGridViewColumn(); + _gtAjaxGridViewColumnDZSC.HeaderText = "定制生产"; + _gtAjaxGridViewColumnDZSC.DataField = "XLXSBJDMX_DZSC"; + _gtAjaxGridViewColumnDZSC.Width = Unit.Pixel(72); + _gtAjaxGridViewColumnDZSC.EditType = TEditType.etString; + _gtAjaxGridViewColumnDZSC.ReadOnly = true; + _gtAjaxGridViewColumnDZSC.Visible = false; + _gtAjaxGridViewColumnDZSC.FilterColumn = false; + grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnDZSC); + + //——53 + //BJDHQCLCBTZ|报价单行情材料成本调整 + gtAjaxGridViewColumn _gtAjaxGridViewColumnBJDHQCLCBTZ = new gtAjaxGridViewColumn(); + _gtAjaxGridViewColumnBJDHQCLCBTZ.HeaderText = "报价单行情材料成本调整"; + _gtAjaxGridViewColumnBJDHQCLCBTZ.DataField = "XLXSBJDMX_BJDHQCLCBTZ"; + _gtAjaxGridViewColumnBJDHQCLCBTZ.Width = Unit.Pixel(72); + _gtAjaxGridViewColumnBJDHQCLCBTZ.EditType = TEditType.etString; + _gtAjaxGridViewColumnBJDHQCLCBTZ.ReadOnly = true; + _gtAjaxGridViewColumnBJDHQCLCBTZ.Visible = false; + _gtAjaxGridViewColumnBJDHQCLCBTZ.FilterColumn = false; + grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnBJDHQCLCBTZ); + + //---54最低限价报价单ID + gtAjaxGridViewColumn _gtAjaxGridViewColumnZDXJBJDID = new gtAjaxGridViewColumn(); + _gtAjaxGridViewColumnZDXJBJDID.HeaderText = "最低限价报价单ID"; + _gtAjaxGridViewColumnZDXJBJDID.DataField = "XLXSBJDMX_ZDXJBJDID"; + _gtAjaxGridViewColumnZDXJBJDID.Width = Unit.Pixel(72); + _gtAjaxGridViewColumnZDXJBJDID.EditType = TEditType.etString; + _gtAjaxGridViewColumnZDXJBJDID.ReadOnly = true; + _gtAjaxGridViewColumnZDXJBJDID.Visible = false; + _gtAjaxGridViewColumnZDXJBJDID.FilterColumn = false; + grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnZDXJBJDID); + + + //——55 + //添加最低限价报价单序号列 + gtAjaxGridViewColumn _gtAjaxGridViewColumnZDXJBJDXH = new gtAjaxGridViewColumn(); + _gtAjaxGridViewColumnZDXJBJDXH.HeaderText = "最低限价报价单序号"; + _gtAjaxGridViewColumnZDXJBJDXH.DataField = "XLXSBJDMX_ZDXJBJDXH"; + _gtAjaxGridViewColumnZDXJBJDXH.Width = Unit.Pixel(80); + _gtAjaxGridViewColumnZDXJBJDXH.EditType = TEditType.etNumber; + _gtAjaxGridViewColumnZDXJBJDXH.NumberDecimalPlace = 0; + _gtAjaxGridViewColumnZDXJBJDXH.ReadOnly = true; + _gtAjaxGridViewColumnZDXJBJDXH.Visible = false; + _gtAjaxGridViewColumnZDXJBJDXH.FilterColumn = false; + grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnZDXJBJDXH); + + //——56 + //下单标准 + gtAjaxGridViewColumn _gtAjaxGridViewColumnXDBZID = new gtAjaxGridViewColumn(); + _gtAjaxGridViewColumnXDBZID.HeaderText = "下单标准"; + _gtAjaxGridViewColumnXDBZID.DataField = "XLXSBJDMX_XDXLBZID"; + _gtAjaxGridViewColumnXDBZID.Width = Unit.Pixel(70); + _gtAjaxGridViewColumnXDBZID.EditType = TEditType.etString; + _gtAjaxGridViewColumnXDBZID.Visible = false; + _gtAjaxGridViewColumnXDBZID.FilterColumn = false; + grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnXDBZID); + + //——57 + //下单型号 + gtAjaxGridViewColumn _gtAjaxGridViewColumnXDXHID = new gtAjaxGridViewColumn(); + _gtAjaxGridViewColumnXDXHID.HeaderText = "下单型号"; + _gtAjaxGridViewColumnXDXHID.DataField = "XLXSBJDMX_XDXLXHID"; + _gtAjaxGridViewColumnXDXHID.Width = Unit.Pixel(70); + _gtAjaxGridViewColumnXDXHID.EditType = TEditType.etString; + _gtAjaxGridViewColumnXDXHID.Visible = false; + _gtAjaxGridViewColumnXDXHID.FilterColumn = false; + grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnXDXHID); + + //——58 + //CPCF|产品重复 + gtAjaxGridViewColumn _gtAjaxGridViewColumnCPCF = new gtAjaxGridViewColumn(); + _gtAjaxGridViewColumnCPCF.HeaderText = "产品重复"; + _gtAjaxGridViewColumnCPCF.DataField = "CPCF"; + _gtAjaxGridViewColumnCPCF.Width = Unit.Pixel(72); + _gtAjaxGridViewColumnCPCF.EditType = TEditType.etString; + _gtAjaxGridViewColumnCPCF.ReadOnly = true; + _gtAjaxGridViewColumnCPCF.Visible = false; + _gtAjaxGridViewColumnCPCF.FilterColumn = false; + grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnCPCF); + + //——59 + //CPSLCF|产品数量重复 + gtAjaxGridViewColumn _gtAjaxGridViewColumnCPSLCF = new gtAjaxGridViewColumn(); + _gtAjaxGridViewColumnCPSLCF.HeaderText = "产品数量重复"; + _gtAjaxGridViewColumnCPSLCF.DataField = "CPSLCF"; + _gtAjaxGridViewColumnCPSLCF.Width = Unit.Pixel(72); + _gtAjaxGridViewColumnCPSLCF.EditType = TEditType.etString; + _gtAjaxGridViewColumnCPSLCF.ReadOnly = true; + _gtAjaxGridViewColumnCPSLCF.Visible = false; + _gtAjaxGridViewColumnCPSLCF.FilterColumn = false; + grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnCPSLCF); + + //GGSLCF|规格数量重复 + gtAjaxGridViewColumn _gtAjaxGridViewColumnGGSLCF = new gtAjaxGridViewColumn(); + _gtAjaxGridViewColumnGGSLCF.HeaderText = "规格数量重复"; + _gtAjaxGridViewColumnGGSLCF.DataField = "GGSLCF"; + _gtAjaxGridViewColumnGGSLCF.Width = Unit.Pixel(72); + _gtAjaxGridViewColumnGGSLCF.EditType = TEditType.etString; + _gtAjaxGridViewColumnGGSLCF.ReadOnly = true; + _gtAjaxGridViewColumnGGSLCF.Visible = false; + _gtAjaxGridViewColumnGGSLCF.FilterColumn = false; + grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnGGSLCF); + + //——60 + //JGBBJTZ|价格表表价调整 + gtAjaxGridViewColumn _gtAjaxGridViewColumnJGBBJTZ = new gtAjaxGridViewColumn(); + _gtAjaxGridViewColumnJGBBJTZ.HeaderText = "价格表表价调整"; + _gtAjaxGridViewColumnJGBBJTZ.DataField = "XLXSBJDMX_JGBBJTZ"; + _gtAjaxGridViewColumnJGBBJTZ.Width = Unit.Pixel(72); + _gtAjaxGridViewColumnJGBBJTZ.EditType = TEditType.etString; + _gtAjaxGridViewColumnJGBBJTZ.ReadOnly = true; + _gtAjaxGridViewColumnJGBBJTZ.Visible = false; + _gtAjaxGridViewColumnJGBBJTZ.FilterColumn = false; + grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnJGBBJTZ); + + //——61 + //BZTXYS|标准提醒色 + gtAjaxGridViewColumn _gtAjaxGridViewColumnBZTXS = new gtAjaxGridViewColumn(); + _gtAjaxGridViewColumnBZTXS.HeaderText = "标准"; + _gtAjaxGridViewColumnBZTXS.DataField = "BZTXYS"; + _gtAjaxGridViewColumnBZTXS.Width = Unit.Pixel(72); + _gtAjaxGridViewColumnBZTXS.EditType = TEditType.etString; + _gtAjaxGridViewColumnBZTXS.ReadOnly = true; + _gtAjaxGridViewColumnBZTXS.Visible = false; + _gtAjaxGridViewColumnBZTXS.FilterColumn = false; + grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnBZTXS); + + + //——62 + //XLXSBJDMX_JGFBZ|JGF标志 + gtAjaxGridViewColumn _gtAjaxGridViewColumnJGFBZ = new gtAjaxGridViewColumn(); + _gtAjaxGridViewColumnJGFBZ.HeaderText = "JGF标志"; + _gtAjaxGridViewColumnJGFBZ.DataField = "XLXSBJDMX_JGFBZ"; + _gtAjaxGridViewColumnJGFBZ.Width = Unit.Pixel(72); + _gtAjaxGridViewColumnJGFBZ.EditType = TEditType.etString; + _gtAjaxGridViewColumnJGFBZ.ReadOnly = true; + _gtAjaxGridViewColumnJGFBZ.Visible = false; + _gtAjaxGridViewColumnJGFBZ.FilterColumn = false; + grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnJGFBZ); + + //——66 + //用量制定明细调整 + gtAjaxGridViewColumn _gtAjaxGridViewColumnYLZDYXTZ = new gtAjaxGridViewColumn(); + _gtAjaxGridViewColumnYLZDYXTZ.HeaderText = "用量制定明细调整"; + _gtAjaxGridViewColumnYLZDYXTZ.DataField = "YLZDYXTZ"; + _gtAjaxGridViewColumnYLZDYXTZ.Width = Unit.Pixel(72); + _gtAjaxGridViewColumnYLZDYXTZ.EditType = TEditType.etString; + _gtAjaxGridViewColumnYLZDYXTZ.ReadOnly = true; + _gtAjaxGridViewColumnYLZDYXTZ.Visible = false; + _gtAjaxGridViewColumnYLZDYXTZ.FilterColumn = false; + grdXLBJDMX.Columns.Add(_gtAjaxGridViewColumnYLZDYXTZ); + + string sALJJCLSBJ = "按料价价差率算报价"; + if (!string.IsNullOrEmpty(bjflxx.XLXSBJFL_JGBBJBM)) + { + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJLJJCL").HeaderText = bjflxx.XLXSBJFL_JGBBJBM.Trim() + "料价价差率(%)"; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJJCL").HeaderText = bjflxx.XLXSBJFL_JGBBJBM.Trim() + "价差率(%)"; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJJCE").HeaderText = bjflxx.XLXSBJFL_JGBBJBM.Trim() + "价差额"; + } + if (!string.IsNullOrEmpty(bjflxx.XLXSBJFL_BJDHQLJBM.Trim())) + { + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJDHQCLCB").HeaderText = bjflxx.XLXSBJFL_BJDHQLJBM.Trim(); + } + if (!string.IsNullOrEmpty(bjflxx.XLXSBJFL_BJBM.Trim())) + { + sALJJCLSBJ = sALJJCLSBJ.Replace("报价", bjflxx.XLXSBJFL_BJBM); + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CLCBJCLSDBZ").HeaderText = sALJJCLSBJ; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CPBJ").HeaderText = bjflxx.XLXSBJFL_BJBM.Trim(); + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJJE").HeaderText = bjflxx.XLXSBJFL_BJBM.Trim() + "金额"; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJSDBZ").HeaderText = bjflxx.XLXSBJFL_BJBM.Trim() + "锁定"; + } + if (!string.IsNullOrEmpty(bjflxx.XLXSBJFL_JSJBM.Trim())) + { + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JSJG").HeaderText = bjflxx.XLXSBJFL_JSJBM; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JSJJE").HeaderText = bjflxx.XLXSBJFL_JSJBM+"金额"; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JSJJCL").HeaderText = bjflxx.XLXSBJFL_JSJBM + "价差率(%)"; + } + if (!string.IsNullOrEmpty(bjflxx.XLXSBJFL_JMBGSBM.Trim())) + { + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JMBGS").HeaderText = bjflxx.XLXSBJFL_JMBGSBM.Trim(); + } + + if (bjflxx.XLXSBJFL_TZBJ.Trim().Equals("1")) + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CPBJ").ReadOnly = true; + else + { + if (!bjflxx.XLXSBJFL_CPBJZDWPID.Equals("")) + { + string sWPIDS = "," + bjflxx.XLXSBJFL_CPBJZDWPID + ","; + string sWPID = txtWPID.Value.Trim().Equals("") ? "0010" : txtWPID.Value.Trim(); + if (sWPIDS.Contains(sWPID)) + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CPBJ").ReadOnly = true; + else + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CPBJ").ReadOnly = false; + } + else + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CPBJ").ReadOnly = false; + } + + if (!sBJFLID.Equals(""))//只有报价分类不为空,才说明取到控件值了,这时的txtWPID.Value为空才代表是新建状态 + { + //仅录入报价产品-栏目权限控制 + SetJLRBJCPCol(bjflxx.XLXSBJFL_JLRBJCP, txtWPID.Value.Trim(), sHidJSLMList); + if (!YXLRBJCP(bjflxx.XLXSBJFL_LRBJCPWPID, txtWPID.Value.Trim())) + { + grdXLBJDMX.CanInsert = false; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_XLXHID").ReadOnly = true; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_XLGGID").ReadOnly = true; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_XLBZID").ReadOnly = true; + grdXLBJDMX.FindColumnByFieldName("XLBZ_XLBZMS").ReadOnly = true; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_DYDJID").ReadOnly = true; + } + } + string sMACID = "U20261363_N_XLXSBJA"; + Dictionary dicBQBM = BQBMUtils.GetBQBMDic(sMACID);//比如U20261363_N_XLXSBJA + if (dicBQBM.Count > 0) + { + foreach (KeyValuePair tab in CurListSetMap) + { + SetGridBQBM(tab.Value.Grid, dicBQBM); + } + } + } + + //报价分类change时重新调整 因子列、与因子有关的维护项 显示情况 + private void ReBuildYZColByBJFL(string sBJDYZText, string sTJYSList, string sYZWPIDList, string sReadOnlyYZ, string sZDWPIDList) + { + if (sBJDYZText.Equals("")) + return; + + if (sTJYSList.Contains(",1,"))//1|付款方式 + { + cbxPJLX.Visible = true; + lblPJLX.Visible = true; + lblPJLXMH.Visible = true; + lblFKSM.Visible = false; + lblFKSMMH.Visible = false; + txtFKSM.Visible = false; + //下拉框赋值 + TComboBox.SetComboBox("DBERP", cbxPJLX, " select XLXSBJDYZZ1_PJLX,SFPJ_PJMC from XLXSBJDYZZ1 left join SFPJ on SFPJ_PJLX=XLXSBJDYZZ1_PJLX where 1=1 " + + " and exists ( select 1 from XLXSTZYZ where XLXSBJDYZZ1_JGBID = XLXSTZYZ_JGBID and XLXSTZYZ_YZID = XLXSBJDYZZ1_YZID and XLXSTZYZ_MXBH ='BJD' " + + " and exists ( select 1 from XLXSBJFLYZ where XLXSBJFLYZ_BJFLID = '" + cbxBJFLID.SelectedValue.Trim() + "' and XLXSBJFLYZ_YZID = XLXSTZYZ_YZID )) " + + " order by XLXSBJDYZZ1_PJLX", true); + } + else + { + cbxPJLX.Visible = false; + lblPJLX.Visible = false; + lblPJLXMH.Visible = false; + lblFKSM.Visible = true; + lblFKSMMH.Visible = true; + txtFKSM.Visible = true; + } + + + if (sTJYSList.Contains(",8,"))//8|付款期限 + { + lblFKQXNR.Visible = false; + linkFKQXNR.Visible = true; + linkFKQXNRMH.Visible = true; + + cbxFKQXNR.Visible = true; + txtFKQXNR.Visible = false; + if (CheckFKQXTJB()) + lblFKQXTJB.Visible = true; + else + lblFKQXTJB.Visible = false; + TComboBox.SetComboBox("DBERP", cbxFKQXNR, " select XLXSBJDYZZ8_FKQXNR as ID,XLXSBJDYZZ8_FKQXNR as NAME from XLXSBJDYZZ8 where XLXSBJDYZZ8_FKQXNR<>' ' " + + " and exists ( select 1 from XLXSTZYZ where XLXSBJDYZZ8_JGBID = XLXSTZYZ_JGBID and XLXSTZYZ_YZID = XLXSBJDYZZ8_YZID and XLXSTZYZ_MXBH ='BJD' " + + " and exists ( select 1 from XLXSBJFLYZ where XLXSBJFLYZ_BJFLID = '" + cbxBJFLID.SelectedValue.Trim() + "' and XLXSBJFLYZ_YZID = XLXSTZYZ_YZID )) " + + " order by ID", true); + } + else + { + lblFKQXNR.Visible = true; + linkFKQXNR.Visible = false; + linkFKQXNRMH.Visible = false; + + cbxFKQXNR.Visible = false; + txtFKQXNR.Visible = true; + lblFKQXTJB.Visible = false; + } + + if (sTJYSList.Contains(",B,"))//B|销售单位 + { + linkSYDWID.Visible = true; + linkSYDWIDMH.Visible = true; + lblSYDWID.Visible = false; + } + else + { + linkSYDWID.Visible = false; + linkSYDWIDMH.Visible = false; + lblSYDWID.Visible = true; + } + + string[] sYZWPIDs = sYZWPIDList.Split(new Char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); + string sFirstWPID = "";//新建时流程状态按sFirstWPID算 + ListItemCollection listItems = new ListItemCollection(); + WorkFlowUtils.SetListItemCollection_WFYWSW("XLXSBJ_BJD", listItems, false); + if (listItems.Count > 0) + { + sFirstWPID = listItems[0].Value.Trim(); + } + + string[] sBJDYZ = sBJDYZText.Split(','); + string[] sReadOnly = sReadOnlyYZ.Split(','); + string[] sZDWPIDs = sZDWPIDList.Split(new Char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); + + for (int i = 0; i < sBJDYZ.Length; i++) + { + if (!sBJDYZ[i].Trim().EndsWith("()")) + { + if (XLBJDUtils.GetYZXXByYZID(sBJDYZ[i].Split('|')[0].Trim()).XLXSTZYZ_TJLX == "1") + grdXLBJDMX.FindColumnByFieldName("TZYZ_" + sBJDYZ[i].Split('|')[0].Trim()).HeaderText = sBJDYZ[i].Split('|')[1].Trim().Replace("()", "").Replace("(JD)", "(%)").Replace("(JJ)", "(元)").Replace("(KD)", "(%)").Replace("(DD)", "(%)").Replace("(MD)", "(%)").Replace("(MX)", "").Replace("(DX)", "").Replace("(SX)", "(%)").Replace("(MP)", "(%)"); + else + grdXLBJDMX.FindColumnByFieldName("TZYZ_" + sBJDYZ[i].Split('|')[0].Trim()).HeaderText = sBJDYZ[i].Split('|')[1].Trim().Replace("()", "").Replace("(JD)", "(%)").Replace("(JJ)", "").Replace("(KD)", "(%)").Replace("(MP)", "(%)"); + + grdXLBJDMX.FindColumnByFieldName("TZYZ_" + sBJDYZ[i].Split('|')[0].Trim()).Visible = true; + grdXLBJDMX.FindColumnByFieldName("TZYZ_" + sBJDYZ[i].Split('|')[0].Trim()).CalculateField = true; + //不参与调价默认为只读 + if (sBJDYZ[i].Trim().EndsWith("(XX)")) + { + grdXLBJDMX.FindColumnByFieldName("TZYZ_" + sBJDYZ[i].Split('|')[0].Trim()).HeaderText = sBJDYZ[i].Split('|')[1].Trim().Replace("()", "").Replace("(JD)", "(%)").Replace("(JJ)", "(元)").Replace("(KD)", "(%)").Replace("(DD)", "(%)").Replace("(MD)", "(%)").Replace("(XX)", "(不参与调价)").Replace("(MX)", "").Replace("(DX)", "").Replace("(SX)", "(%)"); + } + + + + + if (sBJDYZ[i].Trim().EndsWith("(MX)") || sBJDYZ[i].Trim().EndsWith("(DX)")) + { + grdXLBJDMX.FindColumnByFieldName("TZYZ_" + sBJDYZ[i].Split('|')[0].Trim()).NumberDecimalPlace = 4; + } + else if (sBJDYZ[i].Trim().EndsWith("(JJ)"))//"加价"因子显示6位小数 + { + grdXLBJDMX.FindColumnByFieldName("TZYZ_" + sBJDYZ[i].Split('|')[0].Trim()).NumberDecimalPlace = 6; + } + else + { + grdXLBJDMX.FindColumnByFieldName("TZYZ_" + sBJDYZ[i].Split('|')[0].Trim()).NumberDecimalPlace = 2; + } + bool bReadOnly = true; + if (sReadOnly[i].Trim().Split('|')[1].Trim().Equals("Y")) + { + for (int j = 0; j < sZDWPIDs.Length; j++) + { + string tmpYZID = sZDWPIDs[j].Split('|')[0].Trim(); + if (tmpYZID.Equals(sBJDYZ[i].Split('|')[0].Trim())) + { + string tmpWPIDs = "," + sZDWPIDs[j].Split('|')[1].Trim() + ","; + string curWPID = txtWPID.Value.Trim().Equals("") ? sFirstWPID : txtWPID.Value.Trim(); + if (tmpWPIDs.Contains("," + curWPID + ",")) + { + bReadOnly = true; + } + else + { + bReadOnly = false; + } + } + else + { + //只设置到只读,未设置到流程 + } + } + + grdXLBJDMX.FindColumnByFieldName("TZYZ_" + sBJDYZ[i].Split('|')[0].Trim()).ReadOnly = bReadOnly; + + } + if (txtXSJEYZ.Text.Trim().Contains(sBJDYZ[i].Split('|')[0].Trim())) + { + grdXLBJDMX.FindColumnByFieldName("TZYZJE_" + sBJDYZ[i].Split('|')[0].Trim()).Visible = true; + } + } + else + { + grdXLBJDMX.FindColumnByFieldName("TZYZ_" + sBJDYZ[i].Split('|')[0].Trim()).HeaderText = sBJDYZ[i].Split('|')[1].Trim().Replace("()", "").Replace("(JD)", "(%)").Replace("(JJ)", "(元)").Replace("(KD)", "(%)").Replace("(DD)", "(%)").Replace("(MD)", "(%)").Replace("(MX)", "").Replace("(DX)", "").Replace("(SX)", "(%)").Replace("(MP)", "(%)"); + grdXLBJDMX.FindColumnByFieldName("TZYZ_" + sBJDYZ[i].Split('|')[0].Trim()).Visible = false; + if (txtXSJEYZ.Text.Trim().Contains(sBJDYZ[i].Split('|')[0].Trim())) + { + grdXLBJDMX.FindColumnByFieldName("TZYZJE_" + sBJDYZ[i].Split('|')[0].Trim()).Visible = false; + } + } + } + + + //循环可见事务 + for (int i = 0; i < sYZWPIDs.Length; i++) + { + string tmpYZID = sYZWPIDs[i].Split('|')[0].Trim(); + string tmpWPIDs = "," + sYZWPIDs[i].Split('|')[1].Trim() + ","; + string curWPID = txtWPID.Value.Trim().Equals("") ? sFirstWPID : txtWPID.Value.Trim(); + if (!tmpWPIDs.Contains("," + curWPID + ",")) + { + grdXLBJDMX.FindColumnByFieldName("TZYZ_" + tmpYZID).Visible = false; + } + } + + string sMACID = "U20261363_N_XLXSBJA"; + + Dictionary dicBQBM = BQBMUtils.GetBQBMDic(sMACID);//比如U20261363_N_XLXSBJA + if (dicBQBM.Count > 0) + { + foreach (KeyValuePair tab in CurListSetMap) + { + SetGridBQBM(tab.Value.Grid, dicBQBM); + } + } + + + } + + //报价分类change时重新调整 + private void ReBuildJJColByBJFL(string sTZJGBBJ, string sTZBJDHQLJ, int iXSWS, string sHidJSLMList) + { + BJFLXX bjflxx=XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); + XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860000); + //显示铜价 + if (!bjflxx.XLXSBJFL_TBJCLID.Trim().Equals("")) + { + lblTJ.Visible = true; + txtTJ.Visible = true; + lblTJMH.Visible = true; + } + else + { + lblTJ.Visible = false; + txtTJ.Visible = false; + lblTJMH.Visible = false; + } + //显示铝价 + if (!bjflxx.XLXSBJFL_LBJCLID.Trim().Equals("")) + { + lblLJ.Visible = true; + txtLJ.Visible = true; + lblLJMH.Visible = true; + } + else + { + lblLJ.Visible = false; + txtLJ.Visible = false; + lblLJMH.Visible = false; + } + if (!bjflxx.XLXSBJFL_TZCLHQ.Equals("Y") && bjflxx.XLXSBJFL_MXBH.Equals("JGB")) + { + lblTJ.Enabled = false; + lblLJ.Enabled = false; + } + if (ControlState != TControlState.ctsBrowse) + { + if (grdXLBJDMX.RowCount > 0 && ControlState == TControlState.ctsEdit) + { + txtTJ.Enabled = false; + txtLJ.Enabled = false; + } + else + { + + if (bjflxx.XLXSBJFL_MXBH.Equals("JGB")) + { + txtTJ.Enabled = false; + txtLJ.Enabled = false; + } + else + { + txtTJ.Enabled = true; + txtLJ.Enabled = true; + } + } + } + if (bjflxx.XLXSBJFL_TBJCLID.Trim().Equals("") && bjflxx.XLXSBJFL_LBJCLID.Trim().Equals("")) + { + aRefTLJ.Style["display"] = "none"; + cbxJGBID.Width = 358; + } + else + { + if (!bjflxx.XLXSBJFL_TBJCLID.Trim().Equals("") && !bjflxx.XLXSBJFL_LBJCLID.Trim().Equals("")) + cbxJGBID.Width = 128; + else + cbxJGBID.Width = 242; + if (ControlState == TControlState.ctsInsert || ControlState == TControlState.ctsCopy) + aRefTLJ.Style["display"] = "block"; + else + aRefTLJ.Style["display"] = "none"; + + //新建时,给铜价、铝价赋初始值 + if (ControlState == TControlState.ctsInsert) + { + Dictionary dicTLJG = GetTLJByRQ(datBJRQ.Text, cbxBJFLID.SelectedValue.Trim(), chkJZBJHS.Checked, cbxJGBID.SelectedValue.Trim()); + txtTJ.Value = CMISproConvert.StrToFloat(dicTLJG["TJ"], 0); + txtLJ.Value = CMISproConvert.StrToFloat(dicTLJG["LJ"], 0); + } + } + + //计运费 + if (bjflxx.XLXSBJFL_JYF.Equals("Y")) + { + trYSDW.Visible = true; + //运输节点&运输单位 + TComboBox.SetComboBox("DBERP", cbxYSJDID, "select YSJD_YSJDID as ID,rtrim(YSJD_ZJM) || '|'|| rtrim(YSJD_YSJDMC) as NAME from YSJD WHERE ISNULL(YSJD_TYBZ, 'N') <> 'Y' ORDER BY YSJD_ZJM ", true); + TComboBox.SetComboBox("DBERP", cbxGYSID, "select YSDW_GYSID AS ID,GYS_MC AS NAME from YSDW left join GYS on GYS_GYSID = YSDW_GYSID WHERE ISNULL(YSDW_TYBZ, 'N') <> 'Y' ORDER BY ID ", true); + + } + else + { + trYSDW.Visible = false; + cbxYSJDID.SelectedValue = ""; + cbxGYSID.SelectedValue = ""; + txtYSFY.Value = 0; + } + if (bjflxx.XSXLBZMS()) + { + grdXLBJDMX.FindColumnByFieldName("XLBZ_XLBZMS").Visible = true; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_XLBZID").Visible = false; + } + //显示报价单行情料价 + if (bjflxx.XSBJDHQLJ()) + { + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJDHQCLCB").Visible = true; + } + else + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJDHQCLCB").Visible = false; + + //显示价格表行情料价 + if (bjflxx.XSLJ()) + { + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CLCB").Visible = true; + } + else + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CLCB").Visible = false; + + //显示价格表基价 + if (bjflxx.XSJGBJJChecked()) + { + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBJJ").Visible = true; + } + else + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBJJ").Visible = false; + + //显示表价价差率 + if (bjflxx.XSJCL()) + { + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJJCL").Visible = true; + } + else + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJJCL").Visible = false; + + if(bjflxx.XLXSBJFL_XSLSBJ=="Y") + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_LSJGBBJ").Visible = true; + else + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_LSJGBBJ").Visible = false; + + + //显示料价价差率 + if (bjflxx.XSLJJCL()) + { + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CLCBJCL").Visible = true; + } + else + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CLCBJCL").Visible = false; + + //最低限价 + if (bjflxx.XSZDXJ()) + { + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_ZDXJ").Visible = true; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_ZDXJJE").Visible = true; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_ZDXJJE").ReadOnly = true; + if (!bjflxx.XLXSBJFL_ZDXJJCLLX.Trim().Equals("")) + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_ZDXJJCL").Visible = true; + else + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_ZDXJJCL").Visible = false; + } + else + { + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_ZDXJ").Visible = false; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_ZDXJJE").Visible = false; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_ZDXJJCL").Visible = false; + } + + + //结算价 + if (bjflxx.XSJSJ()) + { + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JSJG").Visible = true; + } + else + { + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JSJG").Visible = false; + } + + if (bjflxx.XSJSJ()&&!bjflxx.XLXSBJFL_JSJJCLLX.Equals("")) + { + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JSJJE").Visible = true; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JSJJCL").Visible = true; + } + else + { + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JSJJE").Visible = false; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JSJJCL").Visible = false; + } + + //仅报价单行情料价显示时显示按料价价差率算报价 + if (bjflxx.XSBJDHQLJ()) + { + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CLCBJCLSDBZ").Visible = true; + } + else + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CLCBJCLSDBZ").Visible = false; + + //显示调整报价 + if (bjflxx.XSTZCPBJChecked()) + { + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_TZCPBJ").Visible = true; + } + else + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_TZCPBJ").Visible = false; + + //显示调整最低限价 + if (bjflxx.XSTZZDXJ()) + { + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_TZZDXJ").Visible = true; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_ZDXJ").ReadOnly = false; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_ZDXJ").CalculateField = true; + } + else + { + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_TZZDXJ").Visible = false; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_ZDXJ").ReadOnly = true; + + } + + //显示调整金额 + if (bjflxx.XSTZBJJEChecked()) + { + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_TZQBJJE").Visible = true; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_TZBJJE").Visible = true; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJJE").HeaderText = "调整后报价金额"; + grdXLBJDMX.FindColumnByFieldName("TZHDJ").Visible = true; + } + else + { + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_TZQBJJE").Visible = false; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_TZBJJE").Visible = false; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJJE").HeaderText = "报价金额"; + grdXLBJDMX.FindColumnByFieldName("TZHDJ").Visible = false; + } + + if (bjflxx.XSJGBBJJCEChecked()) + { + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJJCE").Visible = true; + } + else + { + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJJCE").Visible = false; + } + + //显示截面比公式栏目 + if (!bjflxx.XLXSBJFL_JMBGSYZID.Equals("")) + { + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JMBGS").Visible = true; + } + else + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JMBGS").Visible = false; + //显示意向价栏目 + if (bjflxx.XSYXJChecked()) + { + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_YXJG").Visible = true; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_YXJG").NumberDecimalPlace = CMISproConvert.StrToInt(bjflxx.XLXSBJFL_CPBJMRXSWS); + } + else + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_YXJG").Visible = false; + + if (!bjflxx.XLXSBJFL_YXJJCLLX.Equals("")) + { + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_YXJJCL").Visible = true; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_YXJJCL").NumberDecimalPlace = 2; + } + else + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_YXJJCL").Visible = false; + + + //显示表价料价价差率 + if (bjflxx.XSBJLJJCL()) + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJLJJCL").Visible = true; + else + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJLJJCL").Visible = false; + + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_TZQCPBJ").NumberDecimalPlace = CMISproConvert.StrToInt(bjflxx.XLXSBJFL_CPBJMRXSWS) > iXSWS ? CMISproConvert.StrToInt(bjflxx.XLXSBJFL_CPBJMRXSWS) : iXSWS;//保留精度高的 + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CPBJ").NumberDecimalPlace = CMISproConvert.StrToInt(bjflxx.XLXSBJFL_CPBJMRXSWS) > iXSWS ? CMISproConvert.StrToInt(bjflxx.XLXSBJFL_CPBJMRXSWS) : iXSWS;//保留精度高的 + //显示印字 + if (bjflxx.XSYZChecked()) + { + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_YZ").Visible = true; + } + else + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_YZ").Visible = false; + + //显示原始产品 + if (bjflxx.XSYSCPChecked()) + { + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_YSCP").Visible = true; + } + else + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_YSCP").Visible = false; + if (pzxx.XLXSBJPZ_XZMXKXX.Contains("KHWLDR"))//仅业务配置勾选“按客户物料导入”时显示。 + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_KHWLID").Visible = true; + else + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_KHWLID").Visible = false; + + //显示包号 + if (bjflxx.XSBHChecked()) + { + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_FBH").Visible = true; + } + else + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_FBH").Visible = false; + + if (bjflxx.XSCPBJXJChecked()) + { + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CPBJXJ").Visible = true; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJXJKD").Visible = true; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJXJJJ").Visible = true; + grdXLBJDMX.FindColumnByFieldName("XJBJCE").Visible = true; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJJEXJ").Visible = true; + } + else + { + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CPBJXJ").Visible = false; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJXJKD").Visible = false; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJXJJJ").Visible = false; + grdXLBJDMX.FindColumnByFieldName("XJBJCE").Visible = false; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJJEXJ").Visible = false; + } + + //显示中标信息 + if (pzxx.XLXSBJPZ_XSZBXX == "Y") + { + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_WLID").Visible = true; + grdXLBJDMX.FindColumnByFieldName("WLXX").Visible = true; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_ZB").Visible = true; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_ZBSL").Visible = true; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_ZBJE").Visible = true; + } + else + { + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_WLID").Visible = false; + grdXLBJDMX.FindColumnByFieldName("WLXX").Visible = false; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_ZB").Visible = false; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_ZBSL").Visible = false; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_ZBJE").Visible = false; + } + + + //调整表价 + + if (XLBJDUtils.IsXSY(CurSession.UserId.Trim()) || XLBJDUtils.IsJXS(CurSession.UserId.Trim())) + { + if (GetOption(100860000, "BJU049") == "N") + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJ").ReadOnly = true; + } + else + { + if (sTZJGBBJ.Trim().Equals("1"))//1|不允许调整表价 + { + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJ").ReadOnly = true; + } + else + { + if (!bjflxx.XLXSBJFL_JGBBJZDWPID.Equals("")) + { + string sWPIDS = "," + bjflxx.XLXSBJFL_JGBBJZDWPID + ","; + string sWPID = txtWPID.Value.Trim().Equals("") ? "0010" : txtWPID.Value.Trim(); + if (sWPIDS.Contains(sWPID)) + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJ").ReadOnly = true; + else + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJ").ReadOnly = false; + } + else + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJ").ReadOnly = false; + } + } + + //报价单行情料价 + if (sTZBJDHQLJ.Trim().Equals("1")) + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJDHQCLCB").ReadOnly = true; + else + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJDHQCLCB").ReadOnly = false; + + + //报价 + if (bjflxx.XLXSBJFL_TZBJ.Equals("1")) + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CPBJ").ReadOnly = true; + else + { + if (!bjflxx.XLXSBJFL_CPBJZDWPID.Equals("")) + { + string sWPIDS = "," + bjflxx.XLXSBJFL_CPBJZDWPID + ","; + string sWPID = txtWPID.Value.Trim().Equals("") ? "0010" : txtWPID.Value.Trim(); + if (sWPIDS.Contains(sWPID)) + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CPBJ").ReadOnly = true; + else + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CPBJ").ReadOnly = false; + } + else + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CPBJ").ReadOnly = false; + } + + if (bjflxx.XSTZCPBJChecked())//仅显示调整报价(%)栏目时可以修改料价价差率 + { + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CLCBJCL").ReadOnly = false; + } + else + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CLCBJCL").ReadOnly = true; + + + if (bjflxx.XSTZCPBJChecked())//仅显示调整报价(%)栏目时可以修改表价价差率 + { + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJJCL").ReadOnly = false; + } + else + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJJCL").ReadOnly = true; + + + //表价别名 + string sJGBBJBM = bjflxx.XLXSBJFL_JGBBJBM.Trim().Equals("") ? "表价" : bjflxx.XLXSBJFL_JGBBJBM; + btnCLCB.Width = XLBJDUtils.GetBtnLength(ref sJGBBJBM, true); + btnCLCB.Caption = sJGBBJBM; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJ").HeaderText = sJGBBJBM; + string sALJJCLSBJ = "按料价价差率算报价"; + if (!string.IsNullOrEmpty(sJGBBJBM.Trim())) + { + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJLJJCL").HeaderText = sJGBBJBM.Trim() + "料价价差率(%)"; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJJCL").HeaderText = sJGBBJBM.Trim() + "价差率(%)"; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJJCE").HeaderText = sJGBBJBM.Trim() + "价差额"; + } + if (!string.IsNullOrEmpty(bjflxx.XLXSBJFL_BJDHQLJBM.Trim())) + { + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJDHQCLCB").HeaderText = bjflxx.XLXSBJFL_BJDHQLJBM.Trim(); + } + if (!string.IsNullOrEmpty(bjflxx.XLXSBJFL_BJBM.Trim())) + { + sALJJCLSBJ = sALJJCLSBJ.Replace("报价", bjflxx.XLXSBJFL_BJBM); + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CLCBJCLSDBZ").HeaderText = sALJJCLSBJ; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CPBJ").HeaderText = bjflxx.XLXSBJFL_BJBM.Trim(); + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJJE").HeaderText = bjflxx.XLXSBJFL_BJBM.Trim() + "金额"; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJSDBZ").HeaderText = bjflxx.XLXSBJFL_BJBM.Trim() + "锁定"; + } + if (!string.IsNullOrEmpty(bjflxx.XLXSBJFL_JSJBM.Trim())) + { + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JSJG").HeaderText = bjflxx.XLXSBJFL_JSJBM; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JSJJE").HeaderText = bjflxx.XLXSBJFL_JSJBM + "金额"; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JSJJCL").HeaderText = bjflxx.XLXSBJFL_JSJBM + "价差率(%)"; + } + if (!string.IsNullOrEmpty(bjflxx.XLXSBJFL_JMBGSBM.Trim())) + { + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JMBGS").HeaderText = bjflxx.XLXSBJFL_JMBGSBM.Trim(); + } + if (bjflxx.XLXSBJFL_XHGGYMHJS.Equals("Y")) + { + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_XLXHID").SearchModle = TSearchModle.R; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_XLGGID").SearchModle = TSearchModle.R; + } + else + { + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_XLXHID").SearchModle = TSearchModle.A; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_XLGGID").SearchModle = TSearchModle.A; + } + + //在SetJLRBJCPCol方法设置栏目隐藏状态前统一设置栏目的默认显示状态 + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJ").Visible = true; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CPBJ").Visible = true; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CLZL").Visible = true; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_TZQCPBJ").Visible = false; + + //仅录入报价产品-栏目权限控制 + SetJLRBJCPCol(bjflxx.XLXSBJFL_JLRBJCP, txtWPID.Value.Trim(), sHidJSLMList); + + string sMACID = "U20261363_N_XLXSBJA"; + + Dictionary dicBQBM = BQBMUtils.GetBQBMDic(sMACID);//比如U20261363_N_XLXSBJA + if (dicBQBM.Count > 0) + { + foreach (KeyValuePair tab in CurListSetMap) + { + SetGridBQBM(tab.Value.Grid, dicBQBM); + } + } + + + } + + /// + /// 仅录入报价产品-栏目权限控制 + /// + private void SetJLRBJCPCol(string sJLRBJCP, string sWPID, string sHidJSLMList) + { + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); + string sLRYZID = ""; + if (!bjflxx.XLXSBJFL_XSYLRYZID.Trim().Equals("") && CMISproDataBase.ExistsRecord("DBERP",string.Format("SELECT 1 FROM XLXSTZYZ WHERE XLXSTZYZ_MXBH='BJD' AND XLXSTZYZ_YZID='{0}' AND (ISNULL(XLXSTZYZ_WPIDLIST,' ') = ' ' OR (','||rtrim(XLXSTZYZ_WPIDLIST)||',') like '%,{1},%') ", + bjflxx.XLXSBJFL_XSYLRYZID.Trim(),sWPID))) + { + sLRYZID = bjflxx.XLXSBJFL_XSYLRYZID.Trim(); + } + lblZJE.Visible = true; + lbllblZJEMH.Visible = true; + txtZJE.Visible = true; + if (sWPID.Equals(""))//新建 + { + if (sJLRBJCP.Equals("Y")) + { + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJDHQCLCB").Visible = false; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CLCB").Visible = false; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBJJ").Visible = false; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJ").Visible = false; + + for (int i = 1; i <= 20; i++) + { + grdXLBJDMX.FindColumnByFieldName("TZYZ_BJ" + i.ToString().Trim().PadLeft(2, '0')).Visible = false; + } + if (!sLRYZID.Equals("")) + grdXLBJDMX.FindColumnByFieldName("TZYZ_" + sLRYZID).Visible = true; ; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_TZQCPBJ").Visible = false; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_TZCPBJ").Visible = false; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CPBJ").Visible = false; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_TZQZDXJ").Visible = false; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_TZZDXJ").Visible = false; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_TZQBJJE").Visible = false; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_TZBJJE").Visible = false; + + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJJE").Visible = false; + lblZJE.Visible = false; + lbllblZJEMH.Visible = false; + txtZJE.Visible = false; + grdXLBJDMX.FindColumnByFieldName("TZHDJ").Visible = false; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CLZL").Visible = false; + + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CLCBJCL").Visible = false; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJLJJCL").Visible = false; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJJCL").Visible = false; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJJCE").Visible = false; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_ZDXJ").Visible = false; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_ZDXJJCL").Visible = false; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJSDBZ").Visible = false; + if (!bjflxx.XLXSBJFL_XSYKJJGHJ.Trim().Equals("")) + { + bool bExistsBZSW = false; + string[] sKJJGHJ = bjflxx.XLXSBJFL_XSYKJJGHJ.Trim().Split(','); + for (int i = 0; i < sKJJGHJ.Length; i++) + { + string sKJJGHJBZSW = TWorkflow.Utils.WFGetBZSWID("XLXSBJ_BJD", sKJJGHJ[i].Trim()); + if (sKJJGHJBZSW.Equals("0010")) + { + bExistsBZSW = true; + break; + } + + } + if (!bjflxx.XLXSBJFL_XSYKJJGLM.Trim().Equals("") && bExistsBZSW) + { + string[] sKJJGLM = bjflxx.XLXSBJFL_XSYKJJGLM.Trim().Split(','); + for (int i = 0; i < sKJJGLM.Length; i++) + { + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_"+sKJJGLM[i].Trim()).Visible = true; + } + } + + } + + btnBJLR.Visible = false; + divBarQY.Visible = false; + btnCLCB.Visible = false; + btnLJ.Visible = false; + btnBJ.Visible = false; + btnCLCYZD.Visible = false; + btnYLZDFP.Visible = false; + btnBJFK.Visible = false; + } + } + else + { + string sBZSW = TWorkflow.Utils.WFGetBZSWID("XLXSBJ_BJD", sWPID); + if (sBZSW.Equals("0010")) + { + if (sJLRBJCP.Equals("Y")) + { + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJDHQCLCB").Visible = false; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CLCB").Visible = false; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBJJ").Visible = false; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJ").Visible = false; + + for (int i = 1; i <= 20; i++) + { + grdXLBJDMX.FindColumnByFieldName("TZYZ_BJ" + i.ToString().Trim().PadLeft(2, '0')).Visible = false; + } + if (!sLRYZID.Equals("")) + grdXLBJDMX.FindColumnByFieldName("TZYZ_" + sLRYZID).Visible = true; ; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_TZQCPBJ").Visible = false; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_TZCPBJ").Visible = false; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CPBJ").Visible = false; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_TZQZDXJ").Visible = false; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_TZZDXJ").Visible = false; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_TZQBJJE").Visible = false; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_TZBJJE").Visible = false; + + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJJE").Visible = false; + lblZJE.Visible = false; + lbllblZJEMH.Visible = false; + txtZJE.Visible = false; + grdXLBJDMX.FindColumnByFieldName("TZHDJ").Visible = false; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CLZL").Visible = false; + + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CLCBJCL").Visible = false; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJLJJCL").Visible = false; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJJCL").Visible = false; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJJCE").Visible = false; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_ZDXJ").Visible = false; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_ZDXJJCL").Visible = false; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJSDBZ").Visible = false; + if (!bjflxx.XLXSBJFL_XSYKJJGHJ.Trim().Equals("")) + { + bool bExistsBZSW = false; + string[] sKJJGHJ = bjflxx.XLXSBJFL_XSYKJJGHJ.Trim().Split(','); + for (int i = 0; i < sKJJGHJ.Length; i++) + { + string sKJJGHJBZSW = TWorkflow.Utils.WFGetBZSWID("XLXSBJ_BJD", sKJJGHJ[i].Trim()); + if (sKJJGHJBZSW.Equals("0010")) + { + bExistsBZSW = true; + break; + } + + } + if (!bjflxx.XLXSBJFL_XSYKJJGLM.Trim().Equals("") && bExistsBZSW) + { + string[] sKJJGLM = bjflxx.XLXSBJFL_XSYKJJGLM.Trim().Split(','); + for (int i = 0; i < sKJJGLM.Length; i++) + { + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_" + sKJJGLM[i].Trim()).Visible = true; + } + } + + } + + btnBJLR.Visible = false; + divBarQY.Visible = false; + btnCLCB.Visible = false; + btnLJ.Visible = false; + btnBJ.Visible = false; + btnCLCYZD.Visible = false; + btnYLZDFP.Visible = false; + btnBJFK.Visible = false; + } + } + else + { + if (txtSQRID.Value.Trim().Equals(CurSession.RYID.Trim())) + { + //单据不在第一步0010环节,报价申请人只允许比第一步时多看到“报价”、“报价金额”两个栏目,“报价数量”至“备注”之间的其他栏目仍然控制隐藏。 + //根据报价分类中可见价格栏目控制:表价“、“报价”、“报价金额” + if (sJLRBJCP.Equals("Y")) + { + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJ").Visible = false; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJJE").Visible = false; + lblZJE.Visible = false; + lbllblZJEMH.Visible = false; + txtZJE.Visible = false; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CPBJ").Visible = false; + if (bjflxx.XLXSBJFL_XSYKJJGHJ.Trim().Equals("")) + { + if (!bjflxx.XLXSBJFL_XSYKJJGLM.Trim().Equals("")) + { + string[] sKJJGLM = bjflxx.XLXSBJFL_XSYKJJGLM.Trim().Split(','); + for (int i = 0; i < sKJJGLM.Length; i++) + { + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_"+sKJJGLM[i].Trim()).Visible = true; + } + } + } + else if (("," + bjflxx.XLXSBJFL_XSYKJJGHJ.Trim() + ",").Contains("," + sWPID + ",")) + { + if (!bjflxx.XLXSBJFL_XSYKJJGLM.Trim().Equals("")) + { + string[] sKJJGLM = bjflxx.XLXSBJFL_XSYKJJGLM.Trim().Split(','); + for (int i = 0; i < sKJJGLM.Length; i++) + { + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_" + sKJJGLM[i].Trim()).Visible = true; + } + } + } + + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJDHQCLCB").Visible = false; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CLCB").Visible = false; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBJJ").Visible = false; + + + for (int i = 1; i <= 20; i++) + { + grdXLBJDMX.FindColumnByFieldName("TZYZ_BJ" + i.ToString().Trim().PadLeft(2, '0')).Visible = false; + } + if (!sLRYZID.Equals("")) + grdXLBJDMX.FindColumnByFieldName("TZYZ_" + sLRYZID).Visible = true; ; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_TZQCPBJ").Visible = false; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_TZCPBJ").Visible = false; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_TZBJJE").Visible = false; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_TZQZDXJ").Visible = false; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_TZZDXJ").Visible = false; + + //grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJJE").Visible = false; + grdXLBJDMX.FindColumnByFieldName("TZHDJ").Visible = false; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CLZL").Visible = false; + + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CLCBJCL").Visible = false; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJLJJCL").Visible = false; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJJCL").Visible = false; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJJCE").Visible = false; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_ZDXJ").Visible = false; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_ZDXJJCL").Visible = false; + + btnBJLR.Visible = false; + divBarQY.Visible = false; + btnCLCB.Visible = false; + btnLJ.Visible = false; + btnBJ.Visible = false; + btnCLCYZD.Visible = false; + btnYLZDFP.Visible = false; + btnBJFK.Visible = false; + } + } + } + } + + if (!sJLRBJCP.Equals("Y")) + { + if (CheckLL()) + { + btnBJLR.Visible = true; + } + else + { + btnBJLR.Visible = false; + divBarQY.Visible = false; + } + if (CheckLJ()) + { + btnLJ.Visible = true; + } + else + { + btnLJ.Visible = false; + } + + string sYWSW = TWorkflow.Utils.WFGetYHSWID(this.WorkFlowId, "0030");//0030|反馈 + if (Convert.ToString("," + sYWSW + ",").Contains("," + sWPID + ",") || sWPID.Equals("ZZZZ")) + { + btnBJFK.Visible = true; + } + else + { + btnBJFK.Visible = false; + } + + btnCLCB.Visible = true; + + btnBJ.Visible = true; + + //材料用量制定 + if (CheckModule("102579007")) + { + btnCLCYZD.Visible = true; + if (CheckYLZDFP()) + btnYLZDFP.Visible = true; + else + btnYLZDFP.Visible = false; + //若注册了102109005|线缆材料用量认领,即不允许派发,统一用制定 + if (DSActiveModule.IsActiveModule(102109005)) + { + btnCLCYZD.Visible = true; + btnYLZDFP.Visible = false; + btnCLCYZD.Caption = "材料用量认领"; + } + } + else + { + btnCLCYZD.Visible = false; + btnYLZDFP.Visible = false; + } + } + + //获取需要按角色隐藏的栏目ID列表 + if (!sHidJSLMList.Trim().Equals("")) + { + string[] sHidJSLMs = sHidJSLMList.Split(','); + for (int i = 0; i < sHidJSLMs.Length; i++) + { + string sLMID = sHidJSLMs[i].Trim(); + + switch (sLMID) + { + case "btnBJSM": + btnBJSM.Visible = false; + break; + case "btnMXOper": + btnMXOper.Visible = false; + break; + case "btnCLCB": + btnCLCB.Visible = false; + break; + case "btnBJLR": + btnBJLR.Visible = false; + divBarQY.Visible = false; + break; + case "btnLJ": + btnLJ.Visible = false; + break; + case "btnBJ": + btnBJ.Visible = false; + break; + + + case "btnCLCYZD": + { + btnCLCYZD.Visible = false; + btnYLZDFP.Visible = false; + } + break; + case "btnZDFX": + btnZDFX.Visible = false; + break; + case "btnBJFK": + btnBJFK.Visible = false; + break; + case "txtBZ": + txtBZ.Visible = false; + lblBZ.Visible = false; + lblBZMH.Visible = false; + break; + default: + if (grdXLBJDMX.FindColumnByFieldName(sLMID) != null) + { + grdXLBJDMX.FindColumnByFieldName(sLMID).Visible = false; + if (sLMID.Equals("XLXSBJDMX_BJJE")) + { + lblZJE.Visible = false; + lbllblZJEMH.Visible = false; + txtZJE.Visible = false; + } + } + break; + } + } + } + if (!txtBJSQDH.Value.Trim().Equals("") && CheckXSYBJSQ_SS()) + { + btnBJFK.Visible = false; + + } + } + + + + private void SetGridVisible_BJFLID(string sBJFLID) + { + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); + if (sBJFLID.Equals("")) + { + return; + } + //处理权限问题 + if (ControlState == TControlState.ctsBrowse) + { + string sBJU012 = GetOption(100860000, "BJU012"); + if (!sBJU012.Contains(sBJFLID) && !sBJU012.Equals("")) + { + //显示序号、型号、规格、标准、电压等级、颜色、外购、报价产品、计量单位、报价数量、报价、报价金额。 + Dictionary dicColumns = new Dictionary(); + dicColumns.Add("XLXSBJDMX_XSSX", "XLXSBJDMX_XSSX"); + dicColumns.Add("XLXSBJDMX_XLXHID", "XLXSBJDMX_XLXHID"); + dicColumns.Add("XLXSBJDMX_XLGGID", "XLXSBJDMX_XLGGID"); + dicColumns.Add("XLXSBJDMX_XLBZID", "XLXSBJDMX_XLBZID"); + dicColumns.Add("XLBZ_XLBZMS", "XLBZ_XLBZMS"); + dicColumns.Add("XLXSBJDMX_DYDJID", "XLXSBJDMX_DYDJID"); + dicColumns.Add("XLXSBJDMX_BJCP", "XLXSBJDMX_BJCP"); + dicColumns.Add("XLXSBJDMX_JLDW", "XLXSBJDMX_JLDW"); + + dicColumns.Add("XLXSBJDMX_BJSL", "XLXSBJDMX_BJSL"); + dicColumns.Add("XLXSBJDMX_CPBJ", "XLXSBJDMX_CPBJ"); + if (bjflxx.XSTZBJJEChecked()) + { + dicColumns.Add("XLXSBJDMX_TZQBJJE", "XLXSBJDMX_TZQBJJE"); + dicColumns.Add("XLXSBJDMX_TZBJJE", "XLXSBJDMX_TZBJJE"); + dicColumns.Add("XLXSBJDMX_BJJE", "XLXSBJDMX_BJJE"); + } + else + { + dicColumns.Add("XLXSBJDMX_BJJE", "XLXSBJDMX_BJJE"); + } + if (bjflxx.XSZDXJ()) + { + dicColumns.Add("XLXSBJDMX_ZDXJ", "XLXSBJDMX_ZDXJ"); + if (!bjflxx.XLXSBJFL_ZDXJJCLLX.Trim().Equals("")) + dicColumns.Add("XLXSBJDMX_ZDXJJCL", "XLXSBJDMX_ZDXJJCL"); + } + dicColumns.Add("XLXSBJDMX_BZ", "XLXSBJDMX_BZ"); + dicColumns.Add("XLXSBJDMX_WHR", "XLXSBJDMX_WHR"); + dicColumns.Add("XLXSBJDMX_WHSJ", "XLXSBJDMX_WHSJ"); + + for (int i = 0; i < grdXLBJDMX.Columns.Count; i++) + { + if (!dicColumns.ContainsKey(grdXLBJDMX.Columns[i].DataField)) + { + grdXLBJDMX.Columns[i].Visible = false; + } + } + } + } + } + + private void AddChangedField(Dictionary dicChangedField, string sEventField, string sEventValue) + { + if (dicChangedField.ContainsKey(sEventField)) + dicChangedField[sEventField] = sEventValue; + else + dicChangedField.Add(sEventField, sEventValue); + } + + + private void DelXLXSBJZDCZ(TDatabase dberp, TSQL SQL, string sBJDID) + { + SQL.Clear(); + SQL.Add("delete from XLXSBJZDCZ where XLXSBJZDCZ_BJDID = :pBJDID"); + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + } + + private void InsXLXSBJZDCZ(TDatabase dberp, TSQL SQL, string sBJDID, string sXM, CMISproSession CurSession) + { + if (!sXM.Equals("")) + { + List lst = new List(); + List lstValue = new List(); + lst.Clear(); + lstValue.Clear(); + Regex reg = new Regex(@"."); + foreach (Match m in reg.Matches(sXM)) + { + lst.Add(m.Value); + } + string sStr = ""; + for (int i = 1; i < lst.Count; i++) + { + sStr = lst[i-1] + lst[i]; + sStr = sStr.ToUpper(); + if (!lstValue.Contains(sStr) && !sStr.Trim().Equals("")) + { + lstValue.Add(sStr); + } + } + SQL.Clear(); + SQL.Add(" insert into XLXSBJZDCZ(XLXSBJZDCZ_BJDID, XLXSBJZDCZ_XMCZ, XLXSBJZDCZ_WHR, XLXSBJZDCZ_WHRID, XLXSBJZDCZ_WHSJ) "); + SQL.Add(" values(:XLXSBJZDCZ_BJDID, :XLXSBJZDCZ_XMCZ, :XLXSBJZDCZ_WHR, :XLXSBJZDCZ_WHRID, :XLXSBJZDCZ_WHSJ) "); + SQL.ParamByName("XLXSBJZDCZ_BJDID").Value = sBJDID; + SQL.ParamByName("XLXSBJZDCZ_WHR").Value = CurSession.UserName; + SQL.ParamByName("XLXSBJZDCZ_WHRID").Value = CurSession.UserId; + SQL.ParamByName("XLXSBJZDCZ_WHSJ").Value = DateTime.Now; + for (int i = 0; i < lstValue.Count; i++) + { + SQL.ParamByName("XLXSBJZDCZ_XMCZ").Value = lstValue[i]; + dberp.ExecSQL(SQL); + } + } + } + + //规避ajaxGridView控件缺陷:复制报价单重新选择价格表 或 点编辑重选付款期限,报价单明细的表价或付款期限因子没有及时更新,需要再重复选择一次,才会更新。 + //private void DoAjaxGridView() + //{ + // foreach (GridViewRow row in grdXLBJDMX.NewRows) + // { + // string sWHR = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_WHR", row).ToString().Trim(); + // grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_WHR", sWHR); + // grdXLBJDMX.CommitEdit(); + // break; + // } + //} + + private Hashtable GetHashtableValue(string sSQLParam) + { + Hashtable hParam = new Hashtable(); + hParam.Clear(); + if (!sSQLParam.Trim().Equals("")) + { + string[] sTemp = sSQLParam.Split(':', ';'); + for (int i = 0; i < sTemp.Length; i++) + { + hParam.Add(sTemp[i], sTemp[i + 1]); + i++; + } + } + return hParam; + } + + //同步调价因素为‘C’的当前报价单的的报价单因子值 + private void TBBJDYZZ_C(string sBJDID,string sJGBID) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Add(" merge into XLXSBJDYZZC tar "); + SQL.Add(" using "); + SQL.Add(" (select XLXSBJDYZZC_JGBID as JGBID,XLXSBJDYZZC_YZID as YZID,XLXSBJDYZZC_CPMLID as CPMLID,XLXSBJDYZZC_ZXJMSX as ZXJMSX ,XLXSBJDYZZC_ZXJMXX as ZXJMXX, "); + SQL.Add(" XLXSBJDYZZC_CPMLYZZ as CPMLYZZ, XLXSBJDYZZC_RDTYZZ as RDTYZZ,XLXSBJDYZZC_NHYZZ as NHYZZ,XLXSBJDYZZC_PBYZZ as PBYZZ "); + SQL.Add(" from XLXSBJDYZZC where XLXSBJDYZZC_JGBID=:pJGBID and ISNULL(XLXSBJDYZZC_BJDID, ' ') = ' '"); + SQL.Add(" ) a "); + SQL.Add(" on ( XLXSBJDYZZC_JGBID = a.JGBID and XLXSBJDYZZC_YZID = a.YZID and XLXSBJDYZZC_CPMLID = a.CPMLID and XLXSBJDYZZC_ZXJMSX = a.ZXJMSX and XLXSBJDYZZC_ZXJMXX = a.ZXJMXX "); + SQL.Add(" and XLXSBJDYZZC_BJDID = :pBJDID )"); + SQL.Add(" when not matched then "); + SQL.Add(" insert (XLXSBJDYZZC_JGBID, XLXSBJDYZZC_BJDID, XLXSBJDYZZC_CPMLID,XLXSBJDYZZC_ZXJMSX,XLXSBJDYZZC_ZXJMXX,XLXSBJDYZZC_YZID,"); + SQL.Add(" XLXSBJDYZZC_CPMLYZZ, XLXSBJDYZZC_RDTYZZ,XLXSBJDYZZC_PBYZZ,XLXSBJDYZZC_NHYZZ,XLXSBJDYZZC_WHR, XLXSBJDYZZC_WHRID, XLXSBJDYZZC_WHSJ )"); + SQL.Add(" values(a.JGBID,:pBJDID,a.CPMLID,a.ZXJMSX,a.ZXJMXX,a.YZID,a.CPMLYZZ,a.RDTYZZ,a.PBYZZ,a.NHYZZ,:pWHR,:pWHRID,:pWHSJ )"); + SQL.ParamByName("pJGBID").Value = sJGBID; + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pWHR").Value = CurSession.UserName; + SQL.ParamByName("pWHRID").Value = CurSession.UserId; + SQL.ParamByName("pWHSJ").Value = DateTime.Now; + dberp.ExecSQL(SQL); + } + + //短米校验对话框or撞单分析 + private void ShowBJSLYZZCheckOrZDFX(TDatabase dberp, TSQL SQL, string sBJDID, string sBJFLID, string sBJU003, string sXTCPBJYZ) + { + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); + Dictionary dicCheckedYZIDList = XLBJDCalcUtils.BJSLYZZCheck(dberp, SQL, sBJDID, sBJFLID, sBJU003); + if (dicCheckedYZIDList.Count > 0) + { + TPageParams pageParams = new TPageParams(); + pageParams.UrlPath = "XLBJD_YZZCheck.aspx"; + pageParams.Title = "因子值校验"; + pageParams.AddString("BJDID", sBJDID); + pageParams.AddString("BJFLID", sBJFLID); + pageParams.AddString("BJBM", bjflxx.XLXSBJFL_BJBM.Trim()); + if (dicCheckedYZIDList.ContainsKey("sTJYSList2")) + pageParams.AddString("sYZIDList2", dicCheckedYZIDList["sTJYSList2"]); + if (dicCheckedYZIDList.ContainsKey("sTJYSList3")) + pageParams.AddString("sYZIDList3", dicCheckedYZIDList["sTJYSList3"]); + if (dicCheckedYZIDList.ContainsKey("sTJYSList6")) + pageParams.AddString("sYZIDList6", dicCheckedYZIDList["sTJYSList6"]); + if (dicCheckedYZIDList.ContainsKey("sTJYSListE")) + pageParams.AddString("sYZIDListE", dicCheckedYZIDList["sTJYSListE"]); + if (dicCheckedYZIDList.ContainsKey("sTJYSListG")) + pageParams.AddString("sYZIDListG", dicCheckedYZIDList["sTJYSListG"]); + if (dicCheckedYZIDList.ContainsKey("sTJYSListF")) + pageParams.AddString("sYZIDListF", dicCheckedYZIDList["sTJYSListF"]); + if (dicCheckedYZIDList.ContainsKey("sTJYSListH")) + pageParams.AddString("sYZIDListH", dicCheckedYZIDList["sTJYSListH"]); + OpenDialogClickBtn(pageParams, btnRefreshYZZCheck.ClientID); + } + else + { + //只返回第一次不相同的----仅提示 + if (!bjflxx.XLXSBJFL_XTCPBJYZ.Trim().Equals("N")) + { + string WarningMsg = ""; + XLBJD_BDOBill.JudgeDifBJCP(sBJDID, sBJU003, ref WarningMsg, bjflxx.XLXSBJFL_XTCPBJYZ.Trim()); + if (!WarningMsg.Equals("")) + { + ShowMessage("如下显示序号的相同报价产品的报价不同!" + "\r\n" + WarningMsg); + } + } + //自动撞单分析 + XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860068); + + if (pzxx.XLXSBJPZ_ZDZD=="Y") + { + SQL.Clear(); + SQL.Add("select XLXSBJD_ZDQRRGH from XLXSBJD where XLXSBJD_BJDID = :pBJDID and isnull(XLXSBJD_ZDQRRGH,' ') = ' ' "); + SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + btnZDFX_Click(null, null); + } + } + + } + } + + //批量调价料价价差率,dCLCBLR:材料成本利润 + public static void PLTJ_LJJCL(string sBJDXHList, int VnewID, string sBJDID, string sBJFLID, double dCLCBLR, string sCLCBLX, string sCZLM, string sJCLLX, string sLJJCLLX, string sZDXJJCLLX, string sJYF, string sYFWLID, string sBJHYF, + string sCPBJMRXSWS, int tmpXSWS, string sBJU002, bool bWBJ, bool bFWG, ref string sErrorMsg) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + try + { + dberp.BeginTrans(); + string sqlBJJE = "0"; + string sYZZ = ""; + if (sCLCBLX.Equals("GDZ"))//固定值 + { + sYZZ = "0.0"; + } + else//相对值 + { + if (!sCZLM.Equals("LJ")) + { + sYZZ = string.Format("a.XLXSBJDYZZ0_YZZ{0}", sCZLM.Replace("BJ", "")); + } + else + { + sYZZ = "XLXSBJDMX_CLCBJCL"; + } + } + if (sLJJCLLX.Equals("1"))//料价价差率公式 + { + sqlBJJE = "RoundFix(case WHEN (:pUpdCLCBLRL + " + sYZZ + ") = 100 OR XLXSBJDMX_BJSL=0 THEN 0 else XLXSBJDMX_CLCB*XLXSBJDMX_BJSL/(1-(:pUpdCLCBLRL + " + sYZZ + ")/100.0) END,2)"; + } + else if (sLJJCLLX.Equals("2")) + { + sqlBJJE = "RoundFix(case WHEN (:pUpdCLCBLRL + " + sYZZ + ") = 100 OR XLXSBJDMX_BJSL=0 THEN 0 else XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL/(1-(:pUpdCLCBLRL + " + sYZZ + ")/100.0) END,2)"; + } + else if (sLJJCLLX.Equals("3")) + { + sqlBJJE = "RoundFix(case WHEN XLXSBJDMX_BJSL=0 THEN 0 else XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL*(1+(:pUpdCLCBLRL + " + sYZZ + ")/100.0) END,2)"; + } + else if (sLJJCLLX.Equals("4")) + { + sqlBJJE = "RoundFix(case WHEN (:pUpdCLCBLRL + " + sYZZ + ") = 0 THEN 0 else XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL/((:pUpdCLCBLRL + " + sYZZ + ")/100.0) END,2)"; + } + else + { + sqlBJJE = "0"; + } + + SQL.Add(" update XLXSBJDMX set "); + SQL.Add(" XLXSBJDMX_CLCBJCL = :pUpdCLCBLRL + " + sYZZ + ","); + SQL.Add(" XLXSBJDMX_CLCBJCLSDBZ='Y',"); + SQL.Add(" XLXSBJDMX_TZQBJJE=RoundFix(" + sqlBJJE + " - XLXSBJDMX_TZBJJE,2),"); + SQL.Add(" XLXSBJDMX_CPBJ=case when XLXSBJDMX_BJSL = 0 then 0 else RoundFix((" + sqlBJJE + " - XLXSBJDMX_TZBJJE)/XLXSBJDMX_BJSL," + (CMISproConvert.StrToInt(sCPBJMRXSWS) > tmpXSWS ? CMISproConvert.StrToInt(sCPBJMRXSWS) : tmpXSWS) + " ) end, ");//保留精度高的 + SQL.Add(" XLXSBJDMX_TZCPBJ=RoundFix(case when XLXSBJDMX_TZQCPBJ=0 or XLXSBJDMX_BJSL = 0 then 0 else 100*((" + sqlBJJE + " - XLXSBJDMX_TZBJJE)/XLXSBJDMX_BJSL-XLXSBJDMX_TZQCPBJ)/XLXSBJDMX_TZQCPBJ end,15),"); + SQL.Add(" XLXSBJDMX_BJJE=" + sqlBJJE + ","); + SQL.Add("XLXSBJDMX_BJTJCZ = 'LJJCLTZ',"); + if (sLJJCLLX.Equals("1")) + { + SQL.Add("XLXSBJDMX_BJLY = 'JGBHQLJ',"); + } + else if (sLJJCLLX.Equals("2") || sLJJCLLX.Equals("3") || sLJJCLLX.Equals("4")) + { + SQL.Add("XLXSBJDMX_BJLY = 'BJDHQLJ',"); + } + if (sJCLLX.Equals("1"))//表价价差率公式 + { + SQL.Add("XLXSBJDMX_JGBBJJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + "-XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); + SQL.Add("XLXSBJDMX_JGBBJJCE =RoundFix(" + sqlBJJE + "-RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)," + tmpXSWS + ") "); + } + else if (sJCLLX.Equals("2")) + { + SQL.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,"); + SQL.Add("XLXSBJDMX_JGBBJJCE =RoundFix(RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)-" + sqlBJJE + "," + tmpXSWS + ") "); + } + else if (sJCLLX.Equals("3")) + { + SQL.Add("XLXSBJDMX_JGBBJJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); + SQL.Add("XLXSBJDMX_JGBBJJCE =0 "); + } + else if (sJCLLX.Equals("4")) + { + SQL.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,"); + SQL.Add("XLXSBJDMX_JGBBJJCE =RoundFix(" + sqlBJJE + " - RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)," + tmpXSWS + ") "); + } + else + { + SQL.Add("XLXSBJDMX_JGBBJJCL=0,"); + SQL.Add("XLXSBJDMX_JGBBJJCE=0 "); + } + SQL.Add(" from "); + SQL.Add(" ( "); + SQL.Add(" SELECT XLXSBJDYZZ0_BJDID,XLXSBJDYZZ0_XH as XH,XLXSBJDYZZ0_YZZ01,XLXSBJDYZZ0_YZZ02,XLXSBJDYZZ0_YZZ03, "); + SQL.Add(" XLXSBJDYZZ0_YZZ04,XLXSBJDYZZ0_YZZ05,XLXSBJDYZZ0_YZZ06,XLXSBJDYZZ0_YZZ07,XLXSBJDYZZ0_YZZ08,XLXSBJDYZZ0_YZZ09,XLXSBJDYZZ0_YZZ10, "); + SQL.Add(" XLXSBJDYZZ0_YZZ11,XLXSBJDYZZ0_YZZ12,XLXSBJDYZZ0_YZZ13, "); + SQL.Add(" XLXSBJDYZZ0_YZZ14,XLXSBJDYZZ0_YZZ15,XLXSBJDYZZ0_YZZ16,XLXSBJDYZZ0_YZZ17,XLXSBJDYZZ0_YZZ18,XLXSBJDYZZ0_YZZ19,XLXSBJDYZZ0_YZZ20 "); + SQL.Add(" FROM XLXSBJDYZZ0"); + SQL.Add(" LEFT JOIN XLXSBJDMX ON XLXSBJDMX_BJDID = XLXSBJDYZZ0_BJDID AND XLXSBJDMX_XH = XLXSBJDYZZ0_XH "); + SQL.Add(" WHERE 1 = 1 "); + SQL.Add(" and XLXSBJDMX_BJDID=XLXSBJDYZZ0_BJDID "); + SQL.Add(" and XLXSBJDMX_XH=XLXSBJDYZZ0_XH "); + SQL.Add(" and XLXSBJDYZZ0_BJDID=:pBJDID "); + SQL.Add(" and XLXSBJDMX_BJSDBZ<>'Y'");//跳过报价锁定为Y的明细数据 + if (bWBJ)//注意文字是----跳过表价不为0的记录,即计算表价为0的记录,默认勾选 + { + SQL.Add(" and XLXSBJDMX_JGBBJ = 0"); + } + if (bFWG) + { + SQL.Add(" and isnull(XLXSBJDMX_WGCPBZ,'N') = 'N'"); + } + SQL.Add(" ) a "); + SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID "); + + SQL.Add(" and a.XH=XLXSBJDMX_XH "); + if (!sBJDXHList.Equals("")) + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + if (VnewID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = " + VnewID.ToString().Trim() + " and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "); + } + SQL.Add(" and XLXSBJDMX_BJSDBZ<>'Y'");//跳过报价锁定为Y的明细数据 + if (bWBJ)//注意文字是----跳过表价不为0的记录,即计算表价为0的记录,默认勾选 + { + SQL.Add(" and XLXSBJDMX_JGBBJ = 0"); + } + if (bFWG) + { + SQL.Add(" and isnull(XLXSBJDMX_WGCPBZ,'N') = 'N'"); + } + SQL.ParamByName("pUpdCLCBLRL").Value = dCLCBLR; + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + string sCPBJBLXSWS = Math.Pow(10, -1 * CMISproConvert.StrToFloat(sCPBJMRXSWS)).ToString("F9"); + string sqlBJJE2 = string.Format("(RoundFix(RoundFix(XLXSBJDMX_CPBJ/{0},0)*{0}*XLXSBJDMX_BJSL,2)+XLXSBJDMX_TZBJJE)", sCPBJBLXSWS); + SQL.Clear(); + SQL.Add(" update XLXSBJDMX set "); + SQL.Add(string.Format(" XLXSBJDMX_CPBJ=RoundFix(XLXSBJDMX_CPBJ/{0},0)*{0},", sCPBJBLXSWS)); + SQL.Add(string.Format(" XLXSBJDMX_TZCPBJ=case when XLXSBJDMX_TZQCPBJ=0 then 0 else 100*RoundFix((RoundFix(XLXSBJDMX_CPBJ/{0},0)*{0}-XLXSBJDMX_TZQCPBJ)/XLXSBJDMX_TZQCPBJ,15) end,", sCPBJBLXSWS)); + SQL.Add(string.Format(" XLXSBJDMX_TZQBJJE=RoundFix(RoundFix(XLXSBJDMX_CPBJ/{0},0)*{0}*XLXSBJDMX_BJSL,2),", sCPBJBLXSWS)); + SQL.Add(" XLXSBJDMX_BJXJKD = 0, XLXSBJDMX_BJXJJJ = 0, "); + SQL.Add(" XLXSBJDMX_BJJE=" + sqlBJJE2 + ","); + SQL.Add("XLXSBJDMX_BJTJCZ = 'LJJCLTZ',"); + if (sLJJCLLX.Equals("1")) + { + SQL.Add("XLXSBJDMX_BJLY = 'JGBHQLJ',"); + } + else if (sLJJCLLX.Equals("2") || sLJJCLLX.Equals("3") || sLJJCLLX.Equals("4")) + { + SQL.Add("XLXSBJDMX_BJLY = 'BJDHQLJ',"); + } + if (sJCLLX.Equals("1"))//表价价差率公式 + { + SQL.Add("XLXSBJDMX_JGBBJJCL =case when " + sqlBJJE2 + "=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE2 + "-XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(" + sqlBJJE2 + "),2) end,"); + SQL.Add("XLXSBJDMX_JGBBJJCE =RoundFix(" + sqlBJJE2 + "-RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)," + tmpXSWS + "), "); + } + else if (sJCLLX.Equals("2")) + { + SQL.Add("XLXSBJDMX_JGBBJJCL =case when XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL-" + sqlBJJE2 + ")/(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL),2) end,"); + SQL.Add("XLXSBJDMX_JGBBJJCE =RoundFix(RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)-" + sqlBJJE2 + "," + tmpXSWS + "), "); + } + else if (sJCLLX.Equals("3")) + { + SQL.Add("XLXSBJDMX_JGBBJJCL =case when " + sqlBJJE2 + "=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(" + sqlBJJE2 + "),2) end,"); + SQL.Add("XLXSBJDMX_JGBBJJCE =0, "); + } + else if (sJCLLX.Equals("4")) + { + SQL.Add("XLXSBJDMX_JGBBJJCL =case when XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE2 + " - XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL),2) end,"); + SQL.Add("XLXSBJDMX_JGBBJJCE =RoundFix(" + sqlBJJE2 + " - RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)," + tmpXSWS + "), "); + } + else + { + SQL.Add("XLXSBJDMX_JGBBJJCL=0,"); + SQL.Add("XLXSBJDMX_JGBBJJCE=0,"); + } + if (sLJJCLLX.Equals("1"))//料价价差率公式 + { + SQL.Add("XLXSBJDMX_CLCBJCL =case when " + sqlBJJE2 + "=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE2 + "-XLXSBJDMX_CLCB*XLXSBJDMX_BJSL)/(" + sqlBJJE2 + "),2) end"); + } + else if (sLJJCLLX.Equals("2")) + { + SQL.Add("XLXSBJDMX_CLCBJCL =case when " + sqlBJJE2 + "=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE2 + "-XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL)/(" + sqlBJJE2 + "),2) end"); + } + else if (sLJJCLLX.Equals("3")) + { + SQL.Add("XLXSBJDMX_CLCBJCL =case when XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE2 + "-XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL)/(XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL),2) end"); + } + else if (sLJJCLLX.Equals("4")) + { + SQL.Add("XLXSBJDMX_CLCBJCL =case when " + sqlBJJE2 + "=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL)/(" + sqlBJJE2 + "),2) end"); + } + else + { + SQL.Add("XLXSBJDMX_CLCBJCL=0"); + } + + SQL.Add(" from XLXSBJDMX"); + SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID "); + if (!sBJDXHList.Equals("")) + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + if (VnewID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = " + VnewID.ToString().Trim() + " and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "); + } + SQL.Add(" and XLXSBJDMX_BJSDBZ<>'Y'");//跳过报价锁定为Y的明细数据 + if (bWBJ)//注意文字是----跳过表价不为0的记录,即计算表价为0的记录,默认勾选 + { + SQL.Add(" and XLXSBJDMX_JGBBJ = 0"); + } + if (bFWG) + { + SQL.Add(" and isnull(XLXSBJDMX_WGCPBZ,'N') = 'N'"); + } + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + XLBJDUtils.UpdateZDXJGS(dberp, SQL, sBJDID, sBJFLID, sBJU002, sBJDXHList, 1, false, bWBJ, false, bFWG, ""); + XLBJDUtils.UpdateJSJGS(dberp, SQL, sBJDID, sBJFLID, sBJU002, sBJDXHList, 1, false, bWBJ, false, bFWG, ""); + + XLBJDUtils.UpdateXLXSBJD(dberp, SQL, sBJDID, sJCLLX, sLJJCLLX, sZDXJJCLLX, sJYF, "", "", sYFWLID, sBJHYF); + + dberp.CommitTrans(); + } + catch (Exception ex) + { + sErrorMsg = "批量调价-料价价差率出现错误,请联系系统管理员!" + ex.Message; + dberp.RollbackTrans(); + } + } + + + //批量调报价限价,dKDYZ:扣点因子值、dJJYZ:加价因子值 + public static void PLTJ_BJXJ(string sBJDXHList, int VnewID, string sBJDID, string sBJFLID, string sJCLLX, string sLJJCLLX, string sZDXJJCLLX, string sJYF, string sYFWLID, string sBJHYF, + string sCPBJBLXSWS, string sBJU002, string sJTZBJXJWF, double dKDYZ, double dJJYZ, ref string sErrorMsg) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + try + { + dberp.BeginTrans(); + //更新非报价锁定记录 + string sqlBJJE = ""; + string sqlCPBJ = ""; + + sqlCPBJ = "(XLXSBJDMX_CPBJXJ*(1-:pKDYZ/100.0)+:pJJYZ)"; + sqlBJJE = string.Format("RoundFix(XLXSBJDMX_BJSL*RoundFix({1},{0})+XLXSBJDMX_TZBJJE,2)", sCPBJBLXSWS, sqlCPBJ); + + SQL.Clear(); + SQL.Add("update XLXSBJDMX set "); + SQL.Add(" XLXSBJDMX_BJXJKD=:pKDYZ,XLXSBJDMX_BJXJJJ=:pJJYZ, "); + SQL.Add(string.Format("XLXSBJDMX_CPBJ=RoundFix(" + sqlCPBJ + ",{0}),", sCPBJBLXSWS)); + SQL.Add(string.Format("XLXSBJDMX_TZCPBJ=RoundFix(case when XLXSBJDMX_TZQCPBJ=0 then 0 else 100*(RoundFix(" + sqlCPBJ + ",{0})-XLXSBJDMX_TZQCPBJ)/XLXSBJDMX_TZQCPBJ end,15),", sCPBJBLXSWS)); + SQL.Add(string.Format("XLXSBJDMX_TZQBJJE=RoundFix(XLXSBJDMX_BJSL*RoundFix(" + sqlCPBJ + ",{0}),2),", sCPBJBLXSWS)); + SQL.Add("XLXSBJDMX_BJJE=" + sqlBJJE + ","); + if (sJCLLX.Equals("1"))//表价价差率公式 + { + SQL.Add("XLXSBJDMX_JGBBJJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + "-XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); + SQL.Add(string.Format("XLXSBJDMX_JGBBJJCE =RoundFix((" + sqlBJJE + " - RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2))/{0},0)*{0}, ", sCPBJBLXSWS)); + } + else if (sJCLLX.Equals("2")) + { + SQL.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,"); + SQL.Add(string.Format("XLXSBJDMX_JGBBJJCE =RoundFix((RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)-" + sqlBJJE + ")/{0},0)*{0}, ", sCPBJBLXSWS)); + } + else if (sJCLLX.Equals("3")) + { + SQL.Add("XLXSBJDMX_JGBBJJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); + SQL.Add("XLXSBJDMX_JGBBJJCE =0, "); + } + else if (sJCLLX.Equals("4")) + { + SQL.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,"); + SQL.Add(string.Format("XLXSBJDMX_JGBBJJCE =RoundFix((" + sqlBJJE + " - RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2))/{0},0)*{0}, ", sCPBJBLXSWS)); + } + + else + { + SQL.Add("XLXSBJDMX_JGBBJJCL=0,"); + SQL.Add("XLXSBJDMX_JGBBJJCE=0,"); + } + if (sLJJCLLX.Equals("1"))//料价价差率公式 + { + SQL.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")) + { + SQL.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")) + { + SQL.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")) + { + SQL.Add("XLXSBJDMX_CLCBJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); + } + else + { + SQL.Add("XLXSBJDMX_CLCBJCL=0,"); + } + SQL.Add("XLXSBJDMX_BJTJCZ = 'BJXJ',"); + SQL.Add("XLXSBJDMX_CLCBJCLSDBZ='N'"); + SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID "); + if (!sBJDXHList.Trim().Equals("")) + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + if (VnewID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = " + VnewID.ToString().Trim() + " and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "); + } + SQL.Add(" and XLXSBJDMX_BJSDBZ<>'Y'");//跳过报价锁定为Y的明细数据 + if (sJTZBJXJWF.Equals("Y")) + SQL.Add(" and (XLXSBJDMX_CPBJXJ - XLXSBJDMX_CPBJ)<0 "); + SQL.ParamByName("pKDYZ").Value =dKDYZ ; + SQL.ParamByName("pJJYZ").Value = dJJYZ; + + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + XLBJDUtils.UpdateZDXJGS(dberp, SQL, sBJDID, sBJFLID, sBJU002, sBJDXHList, 1, false, false, false, true, ""); + XLBJDUtils.UpdateJSJGS(dberp, SQL, sBJDID, sBJFLID, sBJU002, sBJDXHList, 1, false, false, false, true, ""); + + XLBJDUtils.UpdateXLXSBJD(dberp, SQL, sBJDID, sJCLLX, sLJJCLLX, sZDXJJCLLX, sJYF, "", "", sYFWLID, sBJHYF); + + dberp.CommitTrans(); + } + catch (Exception ex) + { + sErrorMsg ="批量调价-报价限价出现错误,请联系系统管理员!" + ex; + dberp.RollbackTrans(); + } + + } + + //批量调价报价单因子 + public static void PLTJ_BJDYZ(string sBJDXHList, int VnewID, string sBJDID, string sYZID, double fYZZ, bool bTLCP, string sTLcpList, string sTcpList, double fTcpYZZ, string sLcpList, double fLcpYZZ, bool bYBJ, bool bWG, bool bFWG, + string sJMBGSYZID, string sWHRID, string sWHR, string sBJU002, string sBJU003, ref string sErrorMsg) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + try + { + dberp.BeginTrans(); + string sSQL = ""; + if (bTLCP) + { + sSQL = string.Format(@"update XLXSBJDYZZ0 set XLXSBJDYZZ0_YZZ{0}={1} where XLXSBJDYZZ0_BJDID='{2}' + and exists(select 1 from XLXSBJDMX + left join XLXSBJDGYJD on XLXSBJDGYJD_BJDID = XLXSBJDMX_BJDID and XLXSBJDGYJD_BJDXH = XLXSBJDMX_XH + left join XLXHB on XLXHB_XLXHID=UPPER(case when isnull(XLXSBJDGYJD_CKXLXHID,' ') = ' ' then XLXSBJDMX_XLXHID + else XLXSBJDGYJD_CKXLXHID end) + where XLXSBJDMX_BJDID=XLXSBJDYZZ0_BJDID and XLXSBJDMX_XH=XLXSBJDYZZ0_XH + and " + CMISproDataBase.GetWhereEqual("XLXHB_DTCLID", sTcpList), sYZID.Replace("BJ", ""), fTcpYZZ, sBJDID); + if (bYBJ) + sSQL += " and XLXSBJDMX_JGBBJ<>0 "; + if (bWG) + sSQL += " and isnull(XLXSBJDMX_WGCPBZ,'N') = 'Y' "; + if (bFWG) + sSQL += " and isnull(XLXSBJDMX_WGCPBZ,'N') = 'N' "; + sSQL += " ) "; + if (!sBJDXHList.Equals("")) + sSQL += " and " + CMISproDataBase.GetWhereEqual("XLXSBJDYZZ0_XH", sBJDXHList); + if (VnewID > 0) + { + sSQL += " and exists(select 1 from V_BJDXH where V_BJDXH_ID = " + VnewID.ToString().Trim() + " and V_BJDXH_BJDID = XLXSBJDYZZ0_BJDID and V_BJDXH_BJDXH = XLXSBJDYZZ0_XH) "; + } + dberp.ExecSQL(sSQL); + + sSQL = string.Format(@"update XLXSBJDYZZ0 set XLXSBJDYZZ0_YZZ{0}={1} where XLXSBJDYZZ0_BJDID='{2}' + and exists(select 1 from XLXSBJDMX + left join XLXSBJDGYJD on XLXSBJDGYJD_BJDID = XLXSBJDMX_BJDID and XLXSBJDGYJD_BJDXH = XLXSBJDMX_XH + left join XLXHB on XLXHB_XLXHID=UPPER(case when isnull(XLXSBJDGYJD_CKXLXHID,' ') = ' ' then XLXSBJDMX_XLXHID + else XLXSBJDGYJD_CKXLXHID end) + where XLXSBJDMX_BJDID=XLXSBJDYZZ0_BJDID and XLXSBJDMX_XH=XLXSBJDYZZ0_XH + and " + CMISproDataBase.GetWhereEqual("XLXHB_DTCLID", sLcpList), sYZID.Replace("BJ", ""), fLcpYZZ, sBJDID); + if (bYBJ) + sSQL += " and XLXSBJDMX_JGBBJ<>0 "; + if (bWG) + sSQL += " and isnull(XLXSBJDMX_WGCPBZ,'N') = 'Y' "; + if (bFWG) + sSQL += " and isnull(XLXSBJDMX_WGCPBZ,'N') = 'N' "; + sSQL += " ) "; + if (!sBJDXHList.Equals("")) + sSQL += " and " + CMISproDataBase.GetWhereEqual("XLXSBJDYZZ0_XH", sBJDXHList); + if (VnewID > 0) + { + sSQL += " and exists(select 1 from V_BJDXH where V_BJDXH_ID = " + VnewID.ToString().Trim() + " and V_BJDXH_BJDID = XLXSBJDYZZ0_BJDID and V_BJDXH_BJDXH = XLXSBJDYZZ0_XH) "; + } + dberp.ExecSQL(sSQL); + + //清空截面比公式 + if (sJMBGSYZID.Equals(sYZID)) + { + sSQL = string.Format(@"update XLXSBJDMX set XLXSBJDMX_JMBGS=null where XLXSBJDMX_BJDID='{0}' + and exists(select 1 from XLXHB where XLXHB_XLXHID=UPPER(XLXSBJDMX_XLXHID) + and " + CMISproDataBase.GetWhereEqual("XLXHB_DTCLID", sTLcpList), sBJDID); + sSQL += " ) "; + if (bYBJ) + sSQL += " and XLXSBJDMX_JGBBJ<>0 "; + if (bWG) + sSQL += " and isnull(XLXSBJDMX_WGCPBZ,'N') = 'Y' "; + if (bFWG) + sSQL += " and isnull(XLXSBJDMX_WGCPBZ,'N') = 'N' "; + if (!sBJDXHList.Equals("")) + sSQL += " and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList); + if (VnewID > 0) + { + sSQL += " and exists(select 1 from V_BJDXH where V_BJDXH_ID = " + VnewID.ToString().Trim() + " and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "; + } + dberp.ExecSQL(sSQL); + } + } + else + { + sSQL = string.Format("update XLXSBJDYZZ0 set XLXSBJDYZZ0_YZZ{0}={1} where XLXSBJDYZZ0_BJDID='{2}' and exists(select 1 from XLXSBJDMX where XLXSBJDMX_BJDID=XLXSBJDYZZ0_BJDID and XLXSBJDMX_XH=XLXSBJDYZZ0_XH ", sYZID.Replace("BJ", ""), fYZZ, sBJDID); + if (bYBJ) + sSQL += " and XLXSBJDMX_JGBBJ<>0 "; + if (bWG) + sSQL += " and isnull(XLXSBJDMX_WGCPBZ,'N') = 'Y' "; + if (bFWG) + sSQL += " and isnull(XLXSBJDMX_WGCPBZ,'N') = 'N' "; + sSQL += " ) "; + if (!sBJDXHList.Equals("")) + sSQL += " and " + CMISproDataBase.GetWhereEqual("XLXSBJDYZZ0_XH", sBJDXHList); + if (VnewID > 0) + { + sSQL += " and exists(select 1 from V_BJDXH where V_BJDXH_ID = " + VnewID.ToString().Trim() + " and V_BJDXH_BJDID = XLXSBJDYZZ0_BJDID and V_BJDXH_BJDXH = XLXSBJDYZZ0_XH) "; + } + dberp.ExecSQL(sSQL); + + //清空截面比公式 + if (sJMBGSYZID.Equals(sYZID)) + { + sSQL = string.Format(@"update XLXSBJDMX set XLXSBJDMX_JMBGS=null where XLXSBJDMX_BJDID='{0}'", sBJDID); + if (bYBJ) + sSQL += " and XLXSBJDMX_JGBBJ<>0 "; + if (bWG) + sSQL += " and isnull(XLXSBJDMX_WGCPBZ,'N') = 'Y' "; + if (bFWG) + sSQL += " and isnull(XLXSBJDMX_WGCPBZ,'N') = 'N' "; + if (!sBJDXHList.Equals("")) + sSQL += " and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList); + if (VnewID > 0) + { + sSQL += " and exists(select 1 from V_BJDXH where V_BJDXH_ID = " + VnewID.ToString().Trim() + " and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "; + } + dberp.ExecSQL(sSQL); + } + } + if (!CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 FROM XLXSTZYZ WHERE XLXSTZYZ_MXBH='BJD' AND XLXSTZYZ_YZID='{0}' and isnull(XLXSTZYZ_BCYTJ,'N')='Y'",sYZID.Trim()))) + XLBJDCalcUtils.CalcAfterBJDYZZChange(dberp, SQL, sBJDID, 1, sBJDXHList, bYBJ, bWG, bFWG, sTLcpList, DateTime.MinValue, sBJU002, sBJU003, sWHRID, sWHR, ref sErrorMsg); + else + { + SQL.Clear(); + SQL.Add("select XLXSBJD_BJFLID from XLXSBJD where XLXSBJD_BJDID=:pBJDID "); + SQL.ParamByName("pBJDID").Value = sBJDID; + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + + if (dberp.DriverName == "ORACLE") + { + if (dberp.InTransaction) + { + dberp.CommitTrans(); + + dberp.BeginTrans(); + } + } + + string sBJFLID = ds.Tables[0].Rows[0][0].ToString().Trim(); + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(sBJFLID); + bool bXJTZ = false; + if (bjflxx.XLXSBJFL_ZDXJGS.Contains(sYZID.Trim())) + { + XLBJDUtils.UpdateZDXJGS(dberp, SQL, sBJDID, sBJFLID, sBJU002, sBJDXHList, 1, bYBJ, false, bWG, bFWG, sTLcpList, DateTime.MinValue); + bXJTZ = true; + } + if (bjflxx.XLXSBJFL_JSJGS.Contains(sYZID.Trim()) || bXJTZ) + { + XLBJDUtils.UpdateJSJGS(dberp, SQL, sBJDID, sBJFLID, sBJU002, "", 1); + bXJTZ = true; + } + if(bXJTZ) + XLBJDUtils.UpdateXLXSBJD(dberp, SQL, sBJDID, bjflxx.XLXSBJFL_BJJCLLX, bjflxx.XLXSBJFL_LJJCLLX, bjflxx.XLXSBJFL_ZDXJJCLLX, bjflxx.XLXSBJFL_JYF, "", "", bjflxx.XLXSBJFL_YFWLID, bjflxx.XLXSBJFL_BJHYF); + } + + } + if (!sErrorMsg.Equals("")) + throw new Exception(sErrorMsg); + + dberp.CommitTrans(); + } + catch (Exception ex) + { + sErrorMsg = "批量调价出现错误,请联系系统管理员!" + ex.Message; + dberp.RollbackTrans(); + } + } + + private void InsBJCSYCRZ(string BJDID,double BJDXH,string sYCXX) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Add("insert into BJCSYCRZ(BJCSYCRZ_ID,BJCSYCRZ_BJDID,BJCSYCRZ_XH,BJCSYCRZ_CZRID,BJCSYCRZ_CZRGH,BJCSYCRZ_CZR,BJCSYCRZ_CZSJ,BJCSYCRZ_YCQK) "); + SQL.Add(" values(:BJCSYCRZ_ID,:BJCSYCRZ_BJDID,:BJCSYCRZ_XH,:BJCSYCRZ_CZRID,:BJCSYCRZ_CZRGH,:BJCSYCRZ_CZR,:BJCSYCRZ_CZSJ,:BJCSYCRZ_YCQK) "); + SQL.ParamByName("BJCSYCRZ_ID").Value = CMISproDataBase.NewID("DBERP", "BJCSYCRZ"); + SQL.ParamByName("BJCSYCRZ_BJDID").Value = BJDID; + SQL.ParamByName("BJCSYCRZ_XH").Value = BJDXH; + SQL.ParamByName("BJCSYCRZ_CZRID").Value = CurSession.RYID; + SQL.ParamByName("BJCSYCRZ_CZRGH").Value = CurSession.UserId; + SQL.ParamByName("BJCSYCRZ_CZR").Value = CurSession.UserName; + SQL.ParamByName("BJCSYCRZ_CZSJ").Value = DateTime.Now; + SQL.ParamByName("BJCSYCRZ_YCQK").Value = sYCXX; + dberp.ExecSQL(SQL); + } + + private int getStringByte(string text) + { + Encoding _encoding = System.Text.Encoding.GetEncoding("GB2312"); + byte[] bytes = _encoding.GetBytes(text); + return bytes.Length; + } + + /// + /// 动态加载数据项 + /// + /// 是否同步值 + /// 页面状态 + /// 报价单号 + /// 附加信息的父控件 + private void LoadFJXX(bool bAddValues, string sControlState, string sBJDID, HtmlGenericControl divFJXX,string sHidJSLMList) + { + if (!sControlState.Equals("A")) + { + if (divFJXX.Controls.Count > 0) + if (divFJXX.Controls[0].ID != null) + if (divFJXX.Controls[0].ID.Equals("tableXLXSBJKZXX")) + if (!sControlState.Equals("C")) + return; + } + divFJXX.Controls.Clear(); + Table TabFJXX = new Table(); + TabFJXX.ID = "tableXLXSBJKZXX"; + TabFJXX.Attributes.Add("cellpadding", "0"); + TabFJXX.Attributes.Add("align", "left"); + TabFJXX.Attributes.Add("cellspacing", "0"); + TabFJXX.Attributes.Add("width", "100%"); + TableRow RowFJXX = new TableRow(); + int iCount = 0; + DataSet dsXLXSBJKZXX = entity.getXLXSBJKZXX(sBJDID); + if (dsXLXSBJKZXX.Tables[0].Rows.Count == 0) + bAddValues = false; + DataSet ds = XLBJDUtils.GetKZXX(); + int irow = 1; + bool newtrow = true; + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + if (sHidJSLMList.Contains(ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_DYZD"].ToString().Trim())) + continue; + string sXSBZ = ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_XSBZ"].ToString().Trim(); + if (!sXSBZ.Equals("")) + { + string sWPID = txtWPID.Value.Trim().Equals("") ? "0010" : txtWPID.Value.Trim(); + sXSBZ = "," + sXSBZ + ","; + if (!sXSBZ.Contains("," + sWPID + ",")) + { + continue; + } + } + string SYBJFLID = ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_SYBJFLID"].ToString().Trim(); + if (!SYBJFLID.Equals("")) + { + string sBJFLID = cbxBJFLID.SelectedValue.Trim(); + SYBJFLID = "," + SYBJFLID + ","; + if (!SYBJFLID.Contains("," + sBJFLID + ",")) + { + continue; + } + } + if (iCount == 4) + { + if (RowFJXX != null) + TabFJXX.Rows.Add(RowFJXX); + RowFJXX = new TableRow(); + newtrow = true; + iCount = 0; + irow++; + } + //根据维护步骤、适用条件先判断是否必填 + bool bSFBT = ds.Tables[0].Rows[i]["BT"].ToString().Trim().Equals("Y"); + RowFJXX.Height = 20; + string sDYZD = "XLXSBJKZXX_" + ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_DYZD"].ToString().Trim(); + + string sFJXXValue = ""; + if (sControlState.Equals("A")) + sFJXXValue = ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_QSZ"].ToString().Trim(); + if (bAddValues) + sFJXXValue = dsXLXSBJKZXX.Tables[0].Rows[0][sDYZD].ToString().Trim(); + string sKZXXMC = ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_MC"].ToString().Trim(); + + if (ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_SJLX"].ToString().Trim().Equals("D")) + { + if (newtrow) + { + iCount = 4; + + int iRows = CMISproConvert.StrToInt(ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_ROWS"].ToString().Trim(), 3); + + //标签单元格 + XLXSBJFJXX.createLabel(RowFJXX, sDYZD, sKZXXMC, iRows); + + //文本型 + XLXSBJFJXX.createTextBox(RowFJXX, sDYZD, bSFBT, sFJXXValue, iRows == 0 ? 1 : iRows, 0, 7, this.PageWidth); + irow += iRows == 0 ? 1 : iRows; + irow--; + } + else + { + if (iCount != 4 && iCount != 0) + { + XLXSBJFJXX.createTableCell(RowFJXX, (4 - iCount) * 2, irow); + } + if (RowFJXX != null) + TabFJXX.Rows.Add(RowFJXX); + RowFJXX = new TableRow(); + RowFJXX.Height = 20; + iCount = 4; + + int iRows = CMISproConvert.StrToInt(ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_ROWS"].ToString().Trim(), 3); + + //标签单元格 + XLXSBJFJXX.createLabel(RowFJXX, sDYZD, sKZXXMC, iRows); + + //文本型 + XLXSBJFJXX.createTextBox(RowFJXX, sDYZD, bSFBT, sFJXXValue, iRows == 0 ? 1 : iRows, 0, 7, this.PageWidth); + irow += iRows == 0 ? 1 : iRows; + } + newtrow = true; + } + else + { + newtrow = false; + //标签单元格 + XLXSBJFJXX.createLabel(RowFJXX, sDYZD, sKZXXMC, 0); + + if (ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_SJLX"].ToString().Trim().Equals("A")) + { + //数值型 + bool bReadOnly = false; + string sSZSQL = ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_MJSQL"].ToString().Trim(); + if (!sSZSQL.Equals("")) + { + //通过SQL取值,控件不允许编辑 + sSZSQL = sSZSQL.Replace("{BJDID}", sBJDID); + try + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add(sSZSQL); + DataSet dsSQL = dberp.OpenDataSet(SQL); + if (dsSQL.Tables[0].Rows.Count > 0) + { + sFJXXValue = dsSQL.Tables[0].Rows[0][0].ToString().Trim(); + } + } + catch { } + bReadOnly = true; + } + XLXSBJFJXX.createNumTextBox(RowFJXX, sDYZD, bSFBT, CMISproConvert.StrToFloat(sFJXXValue, 0), ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_JLDW"].ToString().Trim()); + if (bReadOnly) + { + gtNumTextBox numTextBox = (gtNumTextBox)RowFJXX.FindControl("txt" + sDYZD); + if (numTextBox != null) + numTextBox.ReadOnly = true; + } + } + else if (ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_SJLX"].ToString().Trim().Equals("B")) + { + //字符型 + if (ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_SRFS"].ToString().Trim().Equals("A"))//直接输入 + { + XLXSBJFJXX.createTextBox(RowFJXX, sDYZD, bSFBT, sFJXXValue, CMISproConvert.StrToInt(ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_ROWS"].ToString().Trim()), + CMISproConvert.StrToInt(ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_WIDTH"].ToString().Trim()), 1, 1000); + } + else if (ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_SRFS"].ToString().Trim().Equals("B"))//单选输入 + { + XLXSBJFJXX.createComboBox(RowFJXX, sDYZD, bSFBT, sFJXXValue, ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_MJLB"].ToString().Trim(), + ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_MJSQL"].ToString().Trim(), CMISproConvert.StrToInt(ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_WIDTH"].ToString().Trim())); + } + else if (ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_SRFS"].ToString().Trim().Equals("C"))//多选输入 + { + XLXSBJFJXX.createCheckedDropDownList(RowFJXX, sDYZD, bSFBT, sFJXXValue, ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_MJLB"].ToString().Trim(), + ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_MJSQL"].ToString().Trim(), CMISproConvert.StrToInt(ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_WIDTH"].ToString().Trim())); + } + } + else if (ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_SJLX"].ToString().Trim().Equals("C")) + { + //日期型 + XLXSBJFJXX.createDateTimeTextBox(RowFJXX, sDYZD, bSFBT, sFJXXValue); + } + iCount++; + } + } + if (iCount != 4) + { + XLXSBJFJXX.createTableCell(RowFJXX, (4 - iCount) * 2, irow); + } + TabFJXX.Rows.Add(RowFJXX); + divFJXX.Controls.Add(TabFJXX); + int iHeight = irow * 27; + divFJXX.Style["height"] = iHeight.ToString().Trim() + "px"; + } + + private void setFJXXControlState(HtmlGenericControl divFJXX, bool bEnable, string sBJDID, bool bSetValue, string sControlState) + { + if (!divFJXXLabel.Visible) + return; + DataSet dsXLXSBJKZXX = null; + if (bSetValue) + { + dsXLXSBJKZXX = entity.getXLXSBJKZXX(sBJDID); + if (dsXLXSBJKZXX.Tables[0].Rows.Count == 0) + bSetValue = false; + } + DataSet ds = XLBJDUtils.GetKZXX(); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + bool dEnabled = true; + string sWHBZ = ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_WHBZ"].ToString().Trim(); + string sWPID = txtWPID.Value.Trim().Equals("") ? "0010" : txtWPID.Value.Trim(); + if (!sWHBZ.Equals("")) + { + sWHBZ = "," + sWHBZ + ","; + if (!sWHBZ.Contains("," + sWPID + ",")) + { + dEnabled = false; + } + } + string sDYZD = "XLXSBJKZXX_" + ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_DYZD"].ToString().Trim(); + if (ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_SJLX"].ToString().Trim().Equals("A")) + { + gtNumTextBox numTextBox = (gtNumTextBox)this.CurMaster.ContentFormControl.FindControl("txt" + sDYZD); + if (numTextBox != null) + { + bool bSQLReadOnly = !ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_MJSQL"].ToString().Trim().Equals(""); + numTextBox.Enabled = bEnable && dEnabled && !bSQLReadOnly; + if (bSetValue) + { + if (bSQLReadOnly) + { + //SQL取值:重新执行SQL获取最新值 + string sSZSQL = ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_MJSQL"].ToString().Trim(); + sSZSQL = sSZSQL.Replace("{BJDID}", sBJDID); + try + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add(sSZSQL); + DataSet dsSQL = dberp.OpenDataSet(SQL); + if (dsSQL.Tables[0].Rows.Count > 0) + { + numTextBox.Value = CMISproConvert.StrToFloat(dsSQL.Tables[0].Rows[0][0].ToString().Trim(), 0); + } + } + catch { } + } + else + { + numTextBox.Value = CMISproConvert.StrToFloat(dsXLXSBJKZXX.Tables[0].Rows[0][sDYZD].ToString().Trim(), 0); + } + } + } + } + else if (ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_SJLX"].ToString().Trim().Equals("B")) + { + //字符型 + if (ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_SRFS"].ToString().Trim().Equals("A"))//直接输入 + { + gtTextBox textBox = (gtTextBox)this.CurMaster.ContentFormControl.FindControl("txt" + sDYZD); + if (textBox != null) + { + textBox.Enabled = bEnable && dEnabled; + if (bSetValue) + textBox.Text = dsXLXSBJKZXX.Tables[0].Rows[0][sDYZD].ToString().Trim(); + } + } + else if (ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_SRFS"].ToString().Trim().Equals("B"))//下拉单选 + { + gtComboBox comboBox = (gtComboBox)this.CurMaster.ContentFormControl.FindControl("cbx" + sDYZD); + if (comboBox != null) + { + comboBox.Enabled = bEnable && dEnabled; + if (bSetValue) + comboBox.SelectedValue = dsXLXSBJKZXX.Tables[0].Rows[0][sDYZD].ToString().Trim(); + } + } + else if (ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_SRFS"].ToString().Trim().Equals("C"))//下拉多选 + { + gtCheckedDropDownList checkedDropDownList = (gtCheckedDropDownList)this.CurMaster.ContentFormControl.FindControl("cbx" + sDYZD); + if (checkedDropDownList != null) + { + checkedDropDownList.Enabled = bEnable && dEnabled; + if (bSetValue) + checkedDropDownList.SelectedValue = dsXLXSBJKZXX.Tables[0].Rows[0][sDYZD].ToString().Trim(); + } + } + } + else if (ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_SJLX"].ToString().Trim().Equals("C")) + { + gtDateTimeTextBox dateTimeTextBox = (gtDateTimeTextBox)this.CurMaster.ContentFormControl.FindControl("dat" + sDYZD); + if (dateTimeTextBox != null) + { + dateTimeTextBox.Enabled = bEnable && dEnabled; + if (bSetValue) + dateTimeTextBox.Text = CMISproConvert.ConvertDate(dsXLXSBJKZXX.Tables[0].Rows[0][sDYZD].ToString().Trim()); + } + } + else if (ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_SJLX"].ToString().Trim().Equals("D")) + { + gtTextBox textBox = (gtTextBox)this.CurMaster.ContentFormControl.FindControl("txt" + sDYZD); + if (textBox != null) + { + textBox.Enabled = bEnable && dEnabled; + if (bSetValue) + textBox.Text = dsXLXSBJKZXX.Tables[0].Rows[0][sDYZD].ToString().Trim(); + } + } + } + } + + private void SetcbxJGBID() + { + string sBJU053 = GetOption(100860018,"BJU053"); + Dictionary dicJGBID = new Dictionary(); + dicJGBID = XLBJDUtils.GetJGBIDByXSQYID("", cbxBJFLID.SelectedValue.Trim(), datBJRQ.Text.Trim(), cbxXSQYID.SelectedValue.Trim()); + cbxJGBID.ClearItems(); + foreach (KeyValuePair kvp in dicJGBID) + { + if (sBJU053.Contains(kvp.Key) || sBJU053.Equals("")) + cbxJGBID.Items.Add(new ListItem(kvp.Value, kvp.Key)); + } + if (ControlState == TControlState.ctsInsert && cbxJGBID.Items.Count > 0) + { + cbxJGBID.SelectedIndex = 0; + cbxJGBID_SelectedIndexChanged(null, null); + } + } + + private static string GetSWDWID(string sUserGH) + { + string sSYDWID = ""; + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add("select RSRYJBXX_SYDWID "); + SQL.Add(" from RSRYJBXX "); + SQL.Add(" where 1=1 "); + SQL.Add(" and RSRYJBXX_GH = :pGH "); + SQL.ParamByName("pGH").Value = sUserGH; + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + sSYDWID = ds.Tables[0].Rows[0][0].ToString().Trim(); + if (sSYDWID.Equals("")) + { + SQL.Clear(); + SQL.Add(" select GS_SYDWID,GS_GSMC from GS where 1=1 order by GS_SYDWID "); + ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + sSYDWID = ds.Tables[0].Rows[0][0].ToString().Trim(); + } + } + } + return sSYDWID; + } + + private string GetKHID(string sMC) + { + string sKHID = ""; + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add("select kh_khid "); + SQL.Add(" from kh "); + SQL.Add(" where 1=1 and (KH_MC = :pMC or KH_YWMC=:pMC) "); + SQL.ParamByName("pMC").Value = sMC; + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + sKHID = ds.Tables[0].Rows[0][0].ToString().Trim(); + } + return sKHID; + } + + private string GetGYKHSQL(string sKHID, int fGYKHID) + { + string sSQL = ""; + if (string.IsNullOrEmpty(sKHID)) + return sSQL; + + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add("insert into V_GYKH (V_GYKH_ID, V_GYKH_GYKH)"); + SQL.Add("select distinct"); + SQL.Add(" :pID,"); + SQL.Add(" ltrim(rtrim(XLGYKMXXX_GYKH))"); + SQL.Add("from BZGYCS"); + SQL.Add("left join XLGYKMXXX"); + SQL.Add(" on XLGYKMXXX_GYCSID = BZGYCS_GYCSID"); + SQL.Add("where BZGYCS_GYCSMC = '客户代码'"); + SQL.Add(" and ("); + SQL.Add(" ((','||ltrim(rtrim(XLGYKMXXX_CSZ))||',') like :pCSZ)"); + SQL.Add(" or isnull(XLGYKMXXX_CSZ,' ')=' '"); + SQL.Add(" )"); + SQL.ParamByName("pID").Value = fGYKHID; + SQL.ParamByName("pCSZ").Value = "%," + sKHID + ",%"; + dberp.ExecSQL(SQL); + + sSQL = @" + and + ( + isnull(XLBZ_DZSC,'N')='N' + or exists + ( + select 1 + from V_GYKH + where V_GYKH_ID = " + fGYKHID + @" + and rtrim(XLBZ_XLBZLXMC) like rtrim(V_GYKH_GYKH) + '/%' + ) + )"; + + return sSQL; + } + + + //是否配置汇总区域隐藏栏目 + private bool HidJSMLHZQY(string sBJFLID) + { + + bool rt = false; + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add(" select 1 from XLXSBJFLJSLM where XLXSBJFLJSLM_BJFLID = :pBJFLID and isnull(XLXSBJFLJSLM_YCBZ,'N') = 'Y' "); + SQL.Add(" and (XLXSBJFLJSLM_LMID = 'lblZDXJZJE' or XLXSBJFLJSLM_LMID = 'lblZDXJJCL' or XLXSBJFLJSLM_LMID = 'lblLJZJE' "); + SQL.Add(" or XLXSBJFLJSLM_LMID = 'lblLJJCL' or XLXSBJFLJSLM_LMID = 'lblJJZJE' or XLXSBJFLJSLM_LMID = 'lblBJJCL' "); + SQL.Add(" or XLXSBJFLJSLM_LMID = 'lblBJZJE' or XLXSBJFLJSLM_LMID = 'lblBJLJJCL' or XLXSBJFLJSLM_LMID = 'lblJSJZJE' or XLXSBJFLJSLM_LMID = 'lblJSJJCL')"); + SQL.ParamByName("pBJFLID").Value = sBJFLID; + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + rt = true; + } + return rt; + } + + private void LoadHJXX(string sBJDID, string sBJFLID, string sHidJSLMList) + { + + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL strSQL = new TSQL(dberp); + + + strSQL.Clear(); + strSQL.Add(" select sum(XLXSBJDMX_BJSL) as XLXSBJDMX_BJSL, "); + if (bjflxx.XLXSBJFL_BJJCLBJRQDWCP.Equals("Y")) + strSQL.Add(" sum(case when XLXSBJDMX_CLZL = 0 then 0 else 1 end * XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) as CPJJJE, "); + else + strSQL.Add(" sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) as CPJJJE, "); + strSQL.Add(" sum(XLXSBJDMX_BJJE) as XLXSBJDMX_BJJE, "); + if (bjflxx.XLXSBJFL_LJJCLBJRQDWCP.Equals("Y")) + { + strSQL.Add(" sum(case when XLXSBJDMX_CLZL = 0 then 0 else 1 end * XLXSBJDMX_BJSL*XLXSBJDMX_CLCB) as CLCBJE, "); + strSQL.Add(" sum(case when XLXSBJDMX_CLZL = 0 then 0 else 1 end * XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB) as BJDHQCLCBJE, "); + } + else + { + strSQL.Add(" sum(XLXSBJDMX_BJSL*XLXSBJDMX_CLCB) as CLCBJE, "); + strSQL.Add(" sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB) as BJDHQCLCBJE, "); + } + strSQL.Add(" case sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) when 0 then 0 else RoundFix((sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) - sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB))/ sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) * 100,2) end as BJLJJCL ,"); + if (bjflxx.XLXSBJFL_BJJCLLX.Equals("1")) + { + strSQL.Add(" (select case sum(XLXSBJDMX_BJJE) when 0 then 0 else RoundFix(sum(XLXSBJDMX_JGBBJJCE)/sum(XLXSBJDMX_BJJE),4) *100 end as XLXSBJDMX_JGBBJJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 "); + if (bjflxx.XLXSBJFL_BJJCLBJRQDWCP.Equals("Y")) + strSQL.Add(" and XLXSBJDMX_CLZL <> 0 "); + strSQL.Add(" ) as XLXSBJDMX_JGBBJJCL, "); + } + else if (bjflxx.XLXSBJFL_BJJCLLX.Equals("2") || bjflxx.XLXSBJFL_BJJCLLX.Equals("4")) + { + strSQL.Add(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ) when 0 then 0 else RoundFix(sum(XLXSBJDMX_JGBBJJCE)/sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ),4) *100 end as XLXSBJDMX_JGBBJJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 "); + if (bjflxx.XLXSBJFL_BJJCLBJRQDWCP.Equals("Y")) + strSQL.Add(" and XLXSBJDMX_CLZL <> 0 "); + strSQL.Add(" ) as XLXSBJDMX_JGBBJJCL, "); + } + else + { + strSQL.Add(" (select case sum(XLXSBJDMX_BJJE) when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ)/sum(XLXSBJDMX_BJJE),4) *100 end as XLXSBJDMX_JGBBJJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 "); + if (bjflxx.XLXSBJFL_BJJCLBJRQDWCP.Equals("Y")) + strSQL.Add(" and XLXSBJDMX_CLZL <> 0 "); + strSQL.Add(" ) as XLXSBJDMX_JGBBJJCL, "); + } + if (bjflxx.XLXSBJFL_BJJCLBJRQDWCP.Equals("Y")) + strSQL.Add(" sum(case when XLXSBJDMX_CLZL = 0 then 0 else 1 end * XLXSBJDMX_JGBBJJCE) as XLXSBJDMX_JGBBJJCE, "); + else + strSQL.Add(" sum(XLXSBJDMX_JGBBJJCE) as XLXSBJDMX_JGBBJJCE, "); + if (bjflxx.XLXSBJFL_LJJCLLX.Equals("1")) + { + strSQL.Add(" (select case sum(case when XLXSBJDMX_CLCB = 0 then 0 else XLXSBJDMX_BJJE end) when 0 then 0 else 100-RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_CLCB)/sum(case when XLXSBJDMX_CLCB = 0 then 0 else XLXSBJDMX_BJJE end),4) *100 end as XLXSBJDMX_CLCBJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 "); + if (bjflxx.XLXSBJFL_LJJCLBJRQDWCP.Equals("Y")) + strSQL.Add(" and XLXSBJDMX_CLZL <> 0 "); + strSQL.Add(" ) as XLXSBJDMX_CLCBJCL, "); + } + else if (bjflxx.XLXSBJFL_LJJCLLX.Equals("2")) + { + strSQL.Add(" (select case sum(case when XLXSBJDMX_BJDHQCLCB = 0 then 0 else XLXSBJDMX_BJJE end) when 0 then 0 else 100-RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB)/sum(case when XLXSBJDMX_BJDHQCLCB = 0 then 0 else XLXSBJDMX_BJJE end),4) *100 end as XLXSBJDMX_CLCBJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 "); + if (bjflxx.XLXSBJFL_LJJCLBJRQDWCP.Equals("Y")) + strSQL.Add(" and XLXSBJDMX_CLZL <> 0 "); + strSQL.Add(" ) as XLXSBJDMX_CLCBJCL, "); + } + else if (bjflxx.XLXSBJFL_LJJCLLX.Equals("4")) + { + strSQL.Add(" (select case sum(case when XLXSBJDMX_BJDHQCLCB = 0 then 0 else XLXSBJDMX_BJJE end) when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB)/sum(case when XLXSBJDMX_BJDHQCLCB = 0 then 0 else XLXSBJDMX_BJJE end),4) *100 end as XLXSBJDMX_CLCBJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 "); + if (bjflxx.XLXSBJFL_LJJCLBJRQDWCP.Equals("Y")) + strSQL.Add(" and XLXSBJDMX_CLZL <> 0 "); + strSQL.Add(" ) as XLXSBJDMX_CLCBJCL, "); + } + else + { + strSQL.Add(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB) when 0 then 0 else RoundFix(sum(case when XLXSBJDMX_BJDHQCLCB = 0 then 0 else XLXSBJDMX_BJJE end)/sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB),4) *100 - 100 end as XLXSBJDMX_CLCBJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 "); + if (bjflxx.XLXSBJFL_LJJCLBJRQDWCP.Equals("Y")) + strSQL.Add(" and XLXSBJDMX_CLZL <> 0 "); + strSQL.Add(" ) as XLXSBJDMX_CLCBJCL, "); + } + strSQL.Add(" sum(XLXSBJDMX_BJSL*XLXSBJDMX_JSJG) as XLXSBJDMX_JSJJE, "); + if (bjflxx.XLXSBJFL_JSJJCLLX.Equals("1")) + { + strSQL.Add(" (select case sum(case when XLXSBJDMX_JSJG = 0 then 0 else XLXSBJDMX_BJJE end) when 0 then 0 else 100-RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_JSJG)/sum(case when XLXSBJDMX_JSJG = 0 then 0 else XLXSBJDMX_BJJE end),4) *100 end as XLXSBJDMX_JSJJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0) as XLXSBJDMX_JSJJCL, "); + } + else if (bjflxx.XLXSBJFL_JSJJCLLX.Equals("3")) + { + strSQL.Add(" (select case sum(case when XLXSBJDMX_JSJG = 0 then 0 else XLXSBJDMX_BJJE end) when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_JSJG)/sum(case when XLXSBJDMX_JSJG = 0 then 0 else XLXSBJDMX_BJJE end),4) *100 end as XLXSBJDMX_JSJJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 ) as XLXSBJDMX_JSJJCL, "); + } + else + { + strSQL.Add(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_JSJG) when 0 then 0 else RoundFix(sum(case when XLXSBJDMX_JSJG = 0 then 0 else XLXSBJDMX_BJJE end)/sum(XLXSBJDMX_BJSL*XLXSBJDMX_JSJG),4) *100 - 100 end as XLXSBJDMX_JSJJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 ) as XLXSBJDMX_JSJJCL, "); + } + if (bjflxx.XLXSBJFL_ZDXJJCLBJRQDWCP.Equals("Y")) + strSQL.Add(" sum(case when XLXSBJDMX_CLZL = 0 then 0 else 1 end * XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ) as XLXSBJDMX_ZDXJZJE, "); + else + strSQL.Add(" sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ) as XLXSBJDMX_ZDXJZJE, "); + if (bjflxx.XLXSBJFL_ZDXJJCLLX.Equals("1")) + { + strSQL.Add(string.Format(" (select case sum(XLXSBJDMX_BJJE) when 0 then 0 else 100-RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ)/sum(XLXSBJDMX_BJJE),{0}) *100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 ", (CMISproConvert.StrToInt(GetOption(100860000, "BJU054")) + 2).ToString())); + if (bjflxx.XLXSBJFL_ZDXJJCLBJRQDWCP.Equals("Y")) + strSQL.Add(" and XLXSBJDMX_CLZL <> 0 "); + strSQL.Add(" ) as XLXSBJDMX_ZDXJJCL "); + } + else if (bjflxx.XLXSBJFL_ZDXJJCLLX.Equals("2")) + { + strSQL.Add(string.Format(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ) when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJJE)/sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ),{0}) *100-100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 ", (CMISproConvert.StrToInt(GetOption(100860000, "BJU054")) + 2).ToString())); + if (bjflxx.XLXSBJFL_ZDXJJCLBJRQDWCP.Equals("Y")) + strSQL.Add(" and XLXSBJDMX_CLZL <> 0 "); + strSQL.Add(" ) as XLXSBJDMX_ZDXJJCL "); + } + else if (bjflxx.XLXSBJFL_ZDXJJCLLX.Equals("3")) + { + strSQL.Add(string.Format(" (select case sum(XLXSBJDMX_BJJE) when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ)/sum(XLXSBJDMX_BJJE),{0}) *100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 ", (CMISproConvert.StrToInt(GetOption(100860000, "BJU054")) + 2).ToString())); + if (bjflxx.XLXSBJFL_ZDXJJCLBJRQDWCP.Equals("Y")) + strSQL.Add(" and XLXSBJDMX_CLZL <> 0 "); + strSQL.Add(" ) as XLXSBJDMX_ZDXJJCL "); + } + else if (bjflxx.XLXSBJFL_ZDXJJCLLX.Equals("4")) + { + strSQL.Add(string.Format(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ) when 0 then 0 else 100 - RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB)/sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ),{0}) *100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 ", (CMISproConvert.StrToInt(GetOption(100860000, "BJU054")) + 2).ToString())); + if (bjflxx.XLXSBJFL_ZDXJJCLBJRQDWCP.Equals("Y")) + strSQL.Add(" and XLXSBJDMX_CLZL <> 0 "); + strSQL.Add(" ) as XLXSBJDMX_ZDXJJCL "); + } + else if (bjflxx.XLXSBJFL_ZDXJJCLLX.Equals("5")) + { + strSQL.Add(string.Format(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ*" + XLBJDUtils.sCJXS.ToString() + ") when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ)/(sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ*" + XLBJDUtils.sCJXS.ToString() + ")),{0}) *100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 ", (CMISproConvert.StrToInt(GetOption(100860000, "BJU054")) + 2).ToString())); + if (bjflxx.XLXSBJFL_ZDXJJCLBJRQDWCP.Equals("Y")) + strSQL.Add(" and XLXSBJDMX_CLZL <> 0 "); + strSQL.Add(" ) as XLXSBJDMX_ZDXJJCL "); + } + else + strSQL.Add(" 0 as XLXSBJDMX_ZDXJJCL "); + strSQL.Add(" from XLXSBJDMX "); + strSQL.Add(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID "); + strSQL.Add(" group by XLXSBJDMX_BJDID "); + strSQL.ParamByName("XLXSBJDMX_BJDID").Value = sBJDID; + + + + DataSet ds = dberp.OpenDataSet(strSQL); + double dBJDHQLJZJE = 0; + double dJGBHQLJZJE = 0; + double dJJZJE = 0; + double dBJZJE = 0; + double dZDXJZJE = 0; + double dJSJZJE = 0; + double dBJLJJCL = 0; + double dLRL = 0; + double dCLCBJCL = 0; + double dZDXJJCL = 0; + double HJLRL = 0; + double HJCLCBJCL = 0; + double HJZDXJJCL = 0; + double HBJLJJCL = 0; + double HJSJJCL = 0; + if (ds.Tables[0].Rows.Count > 0) + { + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + dBJDHQLJZJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["BJDHQCLCBJE"].ToString().Trim()), 2); + dJGBHQLJZJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["CLCBJE"].ToString().Trim()), 2); + dJJZJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["CPJJJE"].ToString().Trim()), 2); + dBJZJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSBJDMX_BJJE"].ToString().Trim()), 2); + dZDXJZJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSBJDMX_ZDXJZJE"].ToString().Trim()), 2); + dJSJZJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSBJDMX_JSJJE"].ToString().Trim()), 2); + HBJLJJCL = NumberUtils.RoundX(CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["BJLJJCL"].ToString().Trim()), 2); + HJLRL = NumberUtils.RoundX(CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSBJDMX_JGBBJJCL"].ToString().Trim()), 2); + HJCLCBJCL = NumberUtils.RoundX(CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSBJDMX_CLCBJCL"].ToString().Trim()), 2); + HJZDXJJCL = NumberUtils.RoundX(CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSBJDMX_ZDXJJCL"].ToString().Trim()), CMISproConvert.StrToInt(GetOption(100860000, "BJU054"))); + HJSJJCL = NumberUtils.RoundX(CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSBJDMX_JSJJCL"].ToString().Trim()), 2); + GetBJDLRL(sBJDID, ref dLRL, ref dCLCBJCL, ref dZDXJJCL, ref dBJLJJCL); + } + } + + + + string sBJDHQLJZJE = string.Empty; + string sJGBHQLJZJE = string.Empty; + string sJJZJE = string.Empty; + string sBJZJE = string.Empty; + string sJSJZJE = string.Empty; + string sZDXJZJE = string.Empty; + string sBJLJJCL = string.Empty; + string sBJJCL = string.Empty; + string sLJJCL=string.Empty; + string sZDXJJCL = string.Empty; + string sZHCPMLLJJE = string.Empty; + string sJSJJCL = string.Empty; + int rowItemsCount = txtBJU074.Value.Trim() == "Y" ? 4 : 2; + + if (GetOption(100860000, "BJU065").Equals("Y")) + { + //报价单行情料价 + if (bjflxx.XSBJDHQLJ()) + { + sBJDHQLJZJE = "料价总金额:" + dBJDHQLJZJE.ToString("#,##0.00"); + sZHCPMLLJJE = GetZHCPMLHJXX(sBJDID, rowItemsCount); + } + //价格表行情料价 + if (bjflxx.XSLJ()) + { + sJGBHQLJZJE = "料价总金额:" + dJGBHQLJZJE.ToString("#,##0.00"); + sZHCPMLLJJE = GetZHCPMLHJXX(sBJDID, rowItemsCount); + } + //表价价差率 + if (!string.IsNullOrEmpty(bjflxx.XLXSBJFL_BJJCLLX) && bjflxx.XSJCL()) + { + sBJJCL = "表价价差率:" + dLRL.ToString("0.00") + "%"; + if (Math.Abs(HJLRL - dLRL) > 0.001) + sBJJCL = GetHTMLString(sBJJCL, 3); + + } + + //料价价差率 + if (bjflxx.XSLJJCL()) + { + sLJJCL = "料价价差率:" + dCLCBJCL.ToString("0.00") + "%"; + if (Math.Abs(HJCLCBJCL - dCLCBJCL) > 0.001) + sLJJCL = GetHTMLString(sLJJCL, 3); + } + + if (!bjflxx.XLXSBJFL_JSJJCLLX.Equals("")) + { + sJSJJCL = "结算价价差率:" + HJSJJCL.ToString("0.00") + "%"; + sJSJZJE = "结算价总金额:" + dJSJZJE.ToString("#,##0.00"); + } + + //最低限价总金额、最低限价价差率 + if (bjflxx.XSZDXJ()) + { + sZDXJZJE = "最低限价总金额:" + dZDXJZJE.ToString("#,##0.00"); + sZDXJJCL = "最低限价价差率:" + dZDXJJCL.ToString("F" + (CMISproConvert.StrToInt(GetOption(100860000, "BJU054")))) + "%"; + if (Math.Abs(HJZDXJJCL - dZDXJJCL) > 0.001) + sZDXJJCL = GetHTMLString(sZDXJJCL, 3); + + } + //表价料价价差率 + if (bjflxx.XSBJLJJCL()) + { + sBJLJJCL = "表价料价价差率:" + dBJLJJCL.ToString("0.00") + "%"; + if (Math.Abs(HBJLJJCL - dBJLJJCL) > 0.001) + sBJLJJCL = GetHTMLString(sBJLJJCL, 3); + } + + sJJZJE = "表价总金额:" + dJJZJE.ToString("#,##0.00"); + + sBJZJE = "报价总金额:" + dBJZJE.ToString("#,##0.00"); + + } + else + { + //报价单行情料价 + if (bjflxx.XSBJDHQLJ()) + { + sBJDHQLJZJE = "料价总金额:" + dBJDHQLJZJE.ToString("0.00") ; + sZHCPMLLJJE = GetZHCPMLHJXX(sBJDID, rowItemsCount); + } + //价格表行情料价 + if (bjflxx.XSLJ()) + { + sJGBHQLJZJE = "料价总金额:" + dJGBHQLJZJE.ToString("0.00"); + sZHCPMLLJJE = GetZHCPMLHJXX(sBJDID, rowItemsCount); + } + //表价价差率 + if (!string.IsNullOrEmpty(bjflxx.XLXSBJFL_BJJCLLX) && bjflxx.XSJCL()) + { + sBJJCL = "表价价差率:" + dLRL.ToString("0.00") + "%"; + if (Math.Abs(HJLRL - dLRL) > 0.001) + sBJJCL = GetHTMLString(sBJJCL, 3); + + } + + //料价价差率 + if (bjflxx.XSLJJCL()) + { + sLJJCL = "料价价差率:" + dCLCBJCL.ToString("0.00") + "%"; + if (Math.Abs(HJCLCBJCL - dCLCBJCL) > 0.001) + sLJJCL = GetHTMLString(sLJJCL, 3); + } + + if (!bjflxx.XLXSBJFL_JSJJCLLX.Equals("")) + { + sJSJJCL = "结算价价差率:" + HJSJJCL.ToString("0.00") + "%"; + sJSJZJE = "结算价总金额:" + dJSJZJE.ToString("0.00"); + } + + //最低限价总金额、最低限价价差率 + if (bjflxx.XSZDXJ()) + { + sZDXJZJE = "最低限价总金额:" + dZDXJZJE.ToString("0.00"); + sZDXJJCL = "最低限价价差率:" + dZDXJJCL.ToString("F" + (CMISproConvert.StrToInt(GetOption(100860000,"BJU054")))) + "%"; + if (Math.Abs(HJZDXJJCL - dZDXJJCL) > 0.001) + sZDXJJCL = GetHTMLString(sZDXJJCL, 3); + + } + //表价料价价差率 + if (bjflxx.XSBJLJJCL()) + { + sBJLJJCL = "表价料价价差率:" + dBJLJJCL.ToString("0.00") + "%"; + if (Math.Abs(HBJLJJCL - dBJLJJCL) > 0.001) + sBJLJJCL = GetHTMLString(sBJLJJCL, 3); + } + + sJJZJE = "表价总金额:" + dJJZJE.ToString("0.00") ; + + sBJZJE = "报价总金额:" + dBJZJE.ToString("0.00") ; + + } + + if (HidJSMLHZQY(sBJFLID)) + { + if (!string.IsNullOrEmpty(sHidJSLMList)) + { + sHidJSLMList += ","; + if (sHidJSLMList.Contains("lblZDXJZJE,")) + sZDXJZJE = ""; + + if (sHidJSLMList.Contains("lblZDXJJCL,")) + sZDXJJCL = ""; + + if (sHidJSLMList.Contains("lblLJZJE,")) + { + sBJDHQLJZJE = ""; + sJGBHQLJZJE = ""; + sZHCPMLLJJE = ""; + } + + if (sHidJSLMList.Contains("lblLJJCL,")) + sLJJCL = ""; + + if (sHidJSLMList.Contains("lblJJZJE,")) + sJJZJE = ""; + + if (sHidJSLMList.Contains("lblBJJCL,")) + sBJJCL = ""; + + if (sHidJSLMList.Contains("lblBJZJE,")) + sBJZJE = ""; + + if (sHidJSLMList.Contains("lblBJLJJCL,")) + sBJLJJCL = ""; + if (sHidJSLMList.Contains("lblJSJZJE,")) + sJSJZJE = ""; + if (sHidJSLMList.Contains("lblJSJJCL,")) + sJSJJCL = ""; + } + } + else + { + sBJDHQLJZJE = grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJDHQCLCB").Visible ? sBJDHQLJZJE:"" ; + sJGBHQLJZJE = grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CLCB").Visible ? sJGBHQLJZJE : ""; + sJJZJE = grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJ").Visible ? sJJZJE : ""; + sBJZJE = grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_BJJE").Visible ? sBJZJE : ""; + sZDXJZJE = grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_ZDXJ").Visible ? sZDXJZJE : ""; + sLJJCL = grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_CLCBJCL").Visible ? sLJJCL : ""; + sBJJCL = grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJJCL").Visible ? sBJJCL : ""; + sBJLJJCL = grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJLJJCL").Visible ? sBJLJJCL : ""; + sZDXJJCL = grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_ZDXJJCL").Visible ? sZDXJJCL : ""; + sZHCPMLLJJE = sBJDHQLJZJE.Equals("") && sJGBHQLJZJE.Equals("") ? "" : sZHCPMLLJJE; + sJSJJCL = grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JSJJCL").Visible ? sJSJJCL : ""; + sJSJZJE = grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JSJJE").Visible ? sJSJZJE : ""; + } + + + if (!string.IsNullOrEmpty(bjflxx.XLXSBJFL_JGBBJBM)) + { + sJJZJE = sJJZJE.Replace("表价", bjflxx.XLXSBJFL_JGBBJBM).Trim(); + sBJLJJCL = sBJLJJCL.Replace("表价", bjflxx.XLXSBJFL_JGBBJBM).Trim(); + sBJJCL = sBJJCL.Replace("表价", bjflxx.XLXSBJFL_JGBBJBM).Trim(); + + } + if (!string.IsNullOrEmpty(bjflxx.XLXSBJFL_BJBM)) + { + sBJZJE= sBJZJE.Replace("报价", bjflxx.XLXSBJFL_BJBM).Trim(); + } + if (!string.IsNullOrEmpty(bjflxx.XLXSBJFL_JSJBM)) + { + sJSJJCL = sJSJJCL.Replace("结算价", bjflxx.XLXSBJFL_JSJBM).Trim(); + sJSJZJE = sJSJZJE.Replace("结算价", bjflxx.XLXSBJFL_JSJBM).Trim(); + } + + string sMACID = "U20261363_N_XLXSBJA"; + + try + { + Dictionary dicBQBM = BQBMUtils.GetBQBMDic(sMACID);//比如U20261363_N_XLXSBJA + if (dicBQBM.Count > 0) + { + if (dicBQBM.ContainsKey(sZDXJZJE.Trim().Split(':')[0])) + sZDXJZJE = dicBQBM[sZDXJZJE.Trim().Split(':')[0]] + sZDXJZJE.Trim().Split(':')[1]; + + if (dicBQBM.ContainsKey(sZDXJJCL.Trim().Split(':')[0])) + sZDXJJCL = dicBQBM[sZDXJJCL.Trim().Split(':')[0]] + sZDXJJCL.Trim().Split(':')[1]; + + if (dicBQBM.ContainsKey(sBJDHQLJZJE.Trim().Split(':')[0])) + sBJDHQLJZJE = dicBQBM[sBJDHQLJZJE.Trim().Split(':')[0]] + sBJDHQLJZJE.Trim().Split(':')[1]; + + if (dicBQBM.ContainsKey(sJGBHQLJZJE.Trim().Split(':')[0])) + sJGBHQLJZJE = dicBQBM[sJGBHQLJZJE.Trim().Split(':')[0]] + sJGBHQLJZJE.Trim().Split(':')[1]; + + if (dicBQBM.ContainsKey(sLJJCL.Trim().Split(':')[0])) + sLJJCL = dicBQBM[sLJJCL.Trim().Split(':')[0]] + sLJJCL.Trim().Split(':')[1]; + + if (dicBQBM.ContainsKey(sJJZJE.Trim().Split(':')[0])) + sJJZJE = dicBQBM[sJJZJE.Trim().Split(':')[0]] + sJJZJE.Trim().Split(':')[1]; + + if (dicBQBM.ContainsKey(sBJJCL.Trim().Split(':')[0])) + sBJJCL = dicBQBM[sBJJCL.Trim().Split(':')[0]] + sBJJCL.Trim().Split(':')[1]; + + if (dicBQBM.ContainsKey(sBJZJE.Trim().Split(':')[0])) + sBJZJE = dicBQBM[sBJZJE.Trim().Split(':')[0]] + sBJZJE.Trim().Split(':')[1]; + + if (dicBQBM.ContainsKey(sBJLJJCL.Trim().Split(':')[0])) + sBJLJJCL = dicBQBM[sBJLJJCL.Trim().Split(':')[0]] + sBJLJJCL.Trim().Split(':')[1]; + } + } + catch + { + + } + if (XLBJDUtils.GetXLXSBJPZXX(100860000).XLXSBJPZ_XSCPML != "Z") + sZHCPMLLJJE = ""; + if (rowItemsCount == 2) + { + int flag = -4; + txtHJXX.Value = ""; + if (!sZDXJZJE.Trim().Equals("")) + { + txtHJXX.Value += GetHTMLString(sZDXJZJE, flag); + flag *= -1; + } + + if (!sZDXJJCL.Trim().Equals("")) + { + txtHJXX.Value += GetHTMLString(sZDXJJCL, flag); + flag *= -1; + } + + if (!sBJDHQLJZJE.Trim().Equals("")) + { + txtHJXX.Value += GetHTMLString(sBJDHQLJZJE, flag); + flag *= -1; + } + if (!sJGBHQLJZJE.Trim().Equals("")) + { + txtHJXX.Value += GetHTMLString(sJGBHQLJZJE, flag); + flag *= -1; + } + + if (!sLJJCL.Trim().Equals("")) + { + txtHJXX.Value += GetHTMLString(sLJJCL, flag); + flag *= -1; + } + + + if (!sJSJJCL.Trim().Equals("")) + { + txtHJXX.Value += GetHTMLString(sJSJJCL, flag); + flag *= -1; + } + if (!sJSJZJE.Trim().Equals("")) + { + txtHJXX.Value += GetHTMLString(sJSJZJE, flag); + flag *= -1; + } + + if (!sJJZJE.Trim().Equals("")) + { + txtHJXX.Value += GetHTMLString(sJJZJE, flag); + flag *= -1; + } + + + + + if (!sBJLJJCL.Trim().Equals("")) + { + txtHJXX.Value += GetHTMLString(sBJLJJCL, flag); + flag *= -1; + } + if (!sBJZJE.Trim().Equals("")) + { + txtHJXX.Value += GetHTMLString(sBJZJE, flag); + flag *= -1; + } + + + if (!sBJJCL.Trim().Equals("")) + { + txtHJXX.Value += GetHTMLString(sBJJCL, flag); + flag *= -1; + } + + + if (!sZHCPMLLJJE.Trim().Equals("")) + { + if (flag == 1) + txtHJXX.Value += "
"; + txtHJXX.Value += sZHCPMLLJJE; + } + } + else + { + System.Collections.Generic.List items = new System.Collections.Generic.List(); + + if (!sZDXJZJE.Trim().Equals("")) items.Add(sZDXJZJE); + if (!sZDXJJCL.Trim().Equals("")) items.Add(sZDXJJCL); + if (!sBJDHQLJZJE.Trim().Equals("")) items.Add(sBJDHQLJZJE); + if (!sJGBHQLJZJE.Trim().Equals("")) items.Add(sJGBHQLJZJE); + if (!sLJJCL.Trim().Equals("")) items.Add(sLJJCL); + if (!sJSJJCL.Trim().Equals("")) items.Add(sJSJJCL); + if (!sJSJZJE.Trim().Equals("")) items.Add(sJSJZJE); + if (!sJJZJE.Trim().Equals("")) items.Add(sJJZJE); + if (!sBJLJJCL.Trim().Equals("")) items.Add(sBJLJJCL); + if (!sBJZJE.Trim().Equals("")) items.Add(sBJZJE); + if (!sBJJCL.Trim().Equals("")) items.Add(sBJJCL); + + txtHJXX.Value = ""; + for (int i = 0; i < items.Count; i++) + { + int flag; + bool isFirstInRow = (i % rowItemsCount == 0); + bool isLastInRow = (i % rowItemsCount == rowItemsCount - 1) || (i == items.Count - 1); + + if (isFirstInRow && isLastInRow) + flag = 7; + else if (isFirstInRow) + flag = -4; + else if (isLastInRow) + flag = 4; + else + flag = 6; + + txtHJXX.Value += GetHTMLString(items[i], flag, rowItemsCount); + } + + if (!sZHCPMLLJJE.Trim().Equals("")) + { + txtHJXX.Value += sZHCPMLLJJE; + } + } + txtHJXX.Value = GetHTMLString(txtHJXX.Value, 5); + } + private string GetZHCPMLHJXX(string sBJDID, int rowItemsCount) + { + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL strSQL = new TSQL(dberp); + + + strSQL.Clear(); + strSQL.Add(" select case when isnull(XLXSBJDMX_ZHCPMLMC,' ')=' ' then '无组合产品目录' else XLXSBJDMX_ZHCPMLMC end as ZHCPMLMC,sum(XLXSBJDMX_BJSL) as XLXSBJDMX_BJSL, "); + strSQL.Add(" sum(XLXSBJDMX_BJSL*XLXSBJDMX_CLCB) as CLCBJE, "); + strSQL.Add(" sum(XLXSBJDMX_BJDHQCLCB) as XLXSBJDMX_BJDHQCLCB, "); + strSQL.Add(" sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB) as BJDHQCLCBJE "); + strSQL.Add(" from XLXSBJDMX "); + strSQL.Add(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID "); + strSQL.Add(" group by XLXSBJDMX_ZHCPMLMC "); + strSQL.ParamByName("XLXSBJDMX_BJDID").Value = sBJDID; + + + + DataSet ds = dberp.OpenDataSet(strSQL); + double dBJDHQLJZJE = 0; + double dJGBHQLJZJE = 0; + string sZHCPMLMC = string.Empty; + string sZHCPMLMCBJDHQ = string.Empty; + string sZHCPMLMCJGBHQ = string.Empty; + + if (ds.Tables[0].Rows.Count > 0) + { + if (rowItemsCount == 2) + { + int flag = -4; + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + dBJDHQLJZJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["BJDHQCLCBJE"].ToString().Trim()), 2); + dJGBHQLJZJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["CLCBJE"].ToString().Trim()), 2); + sZHCPMLMC = ds.Tables[0].Rows[i]["ZHCPMLMC"].ToString().Trim(); + sZHCPMLMCBJDHQ += GetHTMLString(sZHCPMLMC + ":" + dBJDHQLJZJE.ToString(), flag); + sZHCPMLMCJGBHQ += GetHTMLString(sZHCPMLMC + ":" + dJGBHQLJZJE.ToString(), flag); + flag *= -1; + } + } + else + { + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + int flag; + bool isFirstInRow = (i % rowItemsCount == 0); + bool isLastInRow = (i % rowItemsCount == rowItemsCount - 1) || (i == ds.Tables[0].Rows.Count - 1); + + if (isFirstInRow && isLastInRow) + flag = 7; + else if (isFirstInRow) + flag = -4; + else if (isLastInRow) + flag = 4; + else + flag = 6; + + dBJDHQLJZJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["BJDHQCLCBJE"].ToString().Trim()), 2); + dJGBHQLJZJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["CLCBJE"].ToString().Trim()), 2); + sZHCPMLMC = ds.Tables[0].Rows[i]["ZHCPMLMC"].ToString().Trim(); + + sZHCPMLMCBJDHQ += GetHTMLString(sZHCPMLMC + ":" + dBJDHQLJZJE.ToString(), flag, rowItemsCount); + sZHCPMLMCJGBHQ += GetHTMLString(sZHCPMLMC + ":" + dJGBHQLJZJE.ToString(), flag, rowItemsCount); + } + } + } + + if (bjflxx.XSBJDHQLJ()) + { + return sZHCPMLMCBJDHQ; + } + //价格表行情料价 + if (bjflxx.XSLJ()) + { + return sZHCPMLMCJGBHQ; + + } + return ""; + + } + private string GetHTMLString(string str,int flag) + { + return GetHTMLString(str, flag, 2); + } + private string GetHTMLString(string str, int flag, int rowItemsCount) + { + if (str.Trim().Equals("")) + return ""; + if (flag == -1)//增加空格 + str += "    "; + if(flag == 1)//换行 + str += "
"; + if(flag==3)//红色 + str = "" + str + ""; + + // 以下逻辑通过计算百分比来支持每行多个字段 + string widthPercent = (100.0 / rowItemsCount).ToString("0.##") + "%"; + + if (rowItemsCount == 2) + { + if (flag == -4)//左 + str = "" + str + ""; + if (flag == 4)//右 + str = "" + str + ""; + } + else + { + if (flag == -4) + str = "" + str + ""; + else if (flag == 4) + str = "" + str + ""; + else if (flag == 6)//中间项 + str = "" + str + ""; + else if (flag == 7) + str = "" + str + ""; + } + + if(flag==5) + str = "" + str + "
"; + return str; + + } + + + + //直接查询报价单利润率字段 + private void GetBJDLRL(string sBJDID, ref double dLRL, ref double dCLCBJCL, ref double dZDXJJCL, ref double dBJLJJCL) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add("select XLXSBJD_JGBBJLJJCL,XLXSBJD_LRL,XLXSBJD_CLCBJCL,XLXSBJD_ZDXJJCL from XLXSBJD where XLXSBJD_BJDID = :pBJDID "); + SQL.ParamByName("pBJDID").Value = sBJDID; + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + dLRL = NumberUtils.RoundX(CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSBJD_LRL"].ToString().Trim()), 2); + dCLCBJCL = NumberUtils.RoundX(CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSBJD_CLCBJCL"].ToString().Trim()), 2); + dZDXJJCL = NumberUtils.RoundX(CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSBJD_ZDXJJCL"].ToString().Trim()), CMISproConvert.StrToInt(GetOption(100860000, "BJU054"))); + dBJLJJCL = NumberUtils.RoundX(CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSBJD_JGBBJLJJCL"].ToString().Trim()), 2); + } + } + + + private bool GetCKCPXX(string sBJDID, string sXH, ref string sCKXLXHID, ref string sCKXLGGID, ref string sCKXLBZID, ref string sCKDYDJID) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add("select XLXSBJDGYJD_CKXLXHID,XLXSBJDGYJD_CKXLGGID,XLXSBJDGYJD_CKXLBZID,XLXSBJDGYJD_CKDYDJID from XLXSBJDGYJD where XLXSBJDGYJD_BJDID = :pBJDID and XLXSBJDGYJD_BJDXH=:pBJDXH "); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pBJDXH").Value = sXH; + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + sCKXLXHID = ds.Tables[0].Rows[0]["XLXSBJDGYJD_CKXLXHID"].ToString().Trim(); + sCKXLGGID = ds.Tables[0].Rows[0]["XLXSBJDGYJD_CKXLGGID"].ToString().Trim(); + sCKXLBZID = ds.Tables[0].Rows[0]["XLXSBJDGYJD_CKXLBZID"].ToString().Trim(); + sCKDYDJID = ds.Tables[0].Rows[0]["XLXSBJDGYJD_CKDYDJID"].ToString().Trim(); + return true; + } + + return false; + } + + + /// + /// 形成dicTJYZList(sTJYSList_, BJ01),dicTJYZList(sTJYSList1, BJ02),dicTJYZList(sTJYSListA, BJ03) + /// + /// + /// + /// + /// + /// + /// + public static void GetDicTJYZList_NewYZ(TDatabase dberp, TSQL SQL, string sNewBJFLID, string sOldBJFLID, ref Dictionary dicTJYZList) + + { + dicTJYZList.Clear(); + SQL.Clear(); + SQL.Add(" SELECT XLXSBJFLYZ_YZID,XLXSTZYZ_TJYS FROM XLXSBJFLYZ "); + SQL.Add(" LEFT JOIN XLXSTZYZ on XLXSTZYZ_YZID = XLXSBJFLYZ_YZID and XLXSTZYZ_MXBH = 'BJD' "); + SQL.Add(" where 1=1 and XLXSBJFLYZ_BJFLID = :pBJFLID "); + SQL.Add(" and XLXSBJFLYZ_YZID not in (select XLXSBJFLYZ_YZID from XLXSBJFLYZ where XLXSBJFLYZ_BJFLID = :pOldBJFL )"); + SQL.ParamByName("pBJFLID").Value = sNewBJFLID; + SQL.ParamByName("pOldBJFL").Value = sOldBJFLID; + DataSet dsBJDYZ = dberp.OpenDataSet(SQL); + if (dsBJDYZ.Tables[0].Rows.Count > 0) + { + string chr = ""; + for (int i = 0; i < dsBJDYZ.Tables[0].Rows.Count; i++) + { + for (int j = 0; j <= 35; j++) + { + + chr = XLXSBJCL_HQFDKRInfo.int10Convert36(j); + if (dsBJDYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYS"].ToString().Trim().Equals("")) + { + if (dicTJYZList.ContainsKey("sTJYSList_")) + { + dicTJYZList["sTJYSList_"] = dicTJYZList["sTJYSList_"] + "," + dsBJDYZ.Tables[0].Rows[i]["XLXSBJFLYZ_YZID"].ToString().Trim(); + } + else + { + dicTJYZList.Add("sTJYSList_", dsBJDYZ.Tables[0].Rows[i]["XLXSBJFLYZ_YZID"].ToString().Trim()); + } + break; + } + else if (dsBJDYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYS"].ToString().Trim().Equals(chr)) + { + if (dicTJYZList.ContainsKey("sTJYSList" + chr)) + { + dicTJYZList["sTJYSList" + chr] = dicTJYZList["sTJYSList" + chr] + "," + dsBJDYZ.Tables[0].Rows[i]["XLXSBJFLYZ_YZID"].ToString().Trim(); + } + else + { + dicTJYZList.Add("sTJYSList" + chr, dsBJDYZ.Tables[0].Rows[i]["XLXSBJFLYZ_YZID"].ToString().Trim()); + } + break; + } + } + } + } + } + + public static void GetDicTJYZList_NewYZ(string sNewBJFLID, string sOldBJFLID, ref Dictionary dicTJYZList) + { + dicTJYZList.Clear(); + List yzxx_NewList = XLBJDUtils.GetBJFLYZOrderByXSXH(sNewBJFLID); + List yzxx_OldList = XLBJDUtils.GetBJFLYZXXByBJFLID(sOldBJFLID); + string chr = ""; + foreach (TZYZXX yzxxNew in yzxx_NewList) + { + bool bSameYZID = false; + foreach (XLXSBJFLYZXX yzxxOld in yzxx_OldList) + { + if (yzxxNew.XLXSTZYZ_YZID.Equals(yzxxOld.XLXSBJFLYZ_YZID)) + { + bSameYZID = true; + break; + } + } + if (!bSameYZID) + { + for (int j = 0; j <= 35; j++) + { + + chr = XLXSBJCL_HQFDKRInfo.int10Convert36(j); + if (yzxxNew.XLXSTZYZ_TJYS.Trim().Equals("")) + { + if (yzxxNew.XLXSTZYZ_TJMDID.Trim().Equals("100860124")) + { + if (dicTJYZList.ContainsKey("sTJYSListPFBZ")) + { + dicTJYZList["sTJYSListPFBZ"] = dicTJYZList["sTJYSListPFBZ"] + "," + yzxxNew.XLXSTZYZ_YZID.Trim(); + } + else + { + dicTJYZList.Add("sTJYSListPFBZ", yzxxNew.XLXSTZYZ_YZID.Trim()); + } + } + else if (yzxxNew.XLXSTZYZ_TJMDID.Trim().Equals("100860162")) + { + if (dicTJYZList.ContainsKey("sTJYSListPFCPWJ")) + { + dicTJYZList["sTJYSListPFCPWJ"] = dicTJYZList["sTJYSListPFCPWJ"] + "," + yzxxNew.XLXSTZYZ_YZID.Trim(); + } + else + { + dicTJYZList.Add("sTJYSListPFCPWJ", yzxxNew.XLXSTZYZ_YZID.Trim()); + } + } + else + { + if (dicTJYZList.ContainsKey("sTJYSList_")) + { + dicTJYZList["sTJYSList_"] = dicTJYZList["sTJYSList_"] + "," + yzxxNew.XLXSTZYZ_YZID.Trim(); + } + else + { + dicTJYZList.Add("sTJYSList_", yzxxNew.XLXSTZYZ_YZID.Trim()); + } + } + break; + } + else if (yzxxNew.XLXSTZYZ_TJYS.Trim().Equals(chr)) + { + if (dicTJYZList.ContainsKey("sTJYSList" + chr)) + { + dicTJYZList["sTJYSList" + chr] = dicTJYZList["sTJYSList" + chr] + "," + yzxxNew.XLXSTZYZ_YZID.Trim(); + } + else + { + dicTJYZList.Add("sTJYSList" + chr, yzxxNew.XLXSTZYZ_YZID.Trim()); + } + break; + } + } + } + + } + + } + + private bool XSCBXKHID() + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + //客户ID + XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860000); + + //销售报价业务配置“客户检索来源”为“KH|客户”、且“新增客户要求”为“报价前维护”时,txtKHID显示,cbxKHID不显示 + if (pzxx.XLXSBJPZ_KHJSLY == "KH" && pzxx.XLXSBJPZ_XZKHYQ=="Q") + return false; + + return true; + } + + private void SetHQJCL() + { + bool bExistBJDHQ = false; + if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select top 1 XLXSBJDCLHQ_BJCLID from XLXSBJDCLHQ where XLXSBJDCLHQ_BJDID='{0}'", txtBJDID.Text.Trim()))) + bExistBJDHQ = true; + double dSX = CMISproConvert.StrToFloat(GetOption(100860000, "BJU022")); + if (dSX > 0 && bExistBJDHQ) + { + trHQJCJY.Visible = true; + lblHQJCJY.ForeColor = Color.Green; + lblHQJCJY.Text = "行情价差校验正常"; + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add(" select 1 from XLXSBJDCLHQ "); + SQL.Add(" left join XLXSBJCL on XLXSBJCL_BJCLID=XLXSBJDCLHQ_BJCLID "); + SQL.Add(" left join ("); + SQL.Add(" select BJCLID,XLXSCLHQ_WSJG as CLJG,XLXSCLHQ_HSJG as HSJG "); + SQL.Add(" from XLXSCLHQ, "); + SQL.Add(" ( select XLXSCLHQ_BJCLID as BJCLID,max(XLXSCLHQ_YXQS)as maxYXQS "); + SQL.Add(" from XLXSCLHQ where XLXSCLHQ_JGBID='ZZZZZZZZ' "); + SQL.Add(" and XLXSCLHQ_YXQS<=:pBJRQ and(XLXSCLHQ_YXQZ>=:pBJRQ or XLXSCLHQ_YXQZ is null) "); + SQL.Add(" group by XLXSCLHQ_BJCLID )a where XLXSCLHQ_JGBID='ZZZZZZZZ' and XLXSCLHQ_BJCLID=BJCLID and XLXSCLHQ_YXQS=maxYXQS "); + SQL.Add(" )bjrqclhq on bjrqclhq.BJCLID=XLXSBJDCLHQ_BJCLID "); + SQL.Add(" where XLXSBJDCLHQ_BJDID=:pBJDID and XLXSBJDCLHQ_BJCLID=XLXSBJCL_BJCLID and XLXSBJCL_BJHQ='1' "); + SQL.Add(" and case when isnull(bjrqclhq.HSJG,0) = 0 then 0 else Round(abs(XLXSBJDCLHQ_HSJG - bjrqclhq.HSJG)/bjrqclhq.HSJG*100,2) end > :pJCL "); + SQL.ParamByName("pBJRQ").Value = datBJRQ.Text.Trim(); + SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); + SQL.ParamByName("pJCL").Value = dSX; + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + lblHQJCJY.ForeColor = Color.Red; + lblHQJCJY.Text = "行情价差率超限"; + return; + } + else + { + + SQL.Clear(); + SQL.Add(" select 1 from XLXSBJDWLHQ "); + SQL.Add("left join "); + SQL.Add("( "); + SQL.Add(" select WLID,XLXSWLHQ_WSJG as CLJG,XLXSWLHQ_HSJG as HSJG "); + SQL.Add(" from XLXSWLHQ, "); + SQL.Add(" ( "); + SQL.Add(" select XLXSWLHQ_WLID as WLID,max(XLXSWLHQ_YXQS)as maxYXQS "); + SQL.Add(" from XLXSWLHQ "); + SQL.Add(" where XLXSWLHQ_JGBID=' ' "); + SQL.Add(" and XLXSWLHQ_YXQS<=:pBJRQ and(XLXSWLHQ_YXQZ>=:pBJRQ or XLXSWLHQ_YXQZ is null) "); + SQL.Add(" group by XLXSWLHQ_WLID "); + SQL.Add(" ) a "); + SQL.Add(" where XLXSWLHQ_JGBID=' ' "); + SQL.Add(" and XLXSWLHQ_WLID=WLID "); + SQL.Add(" and XLXSWLHQ_YXQS=maxYXQS "); + SQL.Add(") bjrqwlhq on bjrqwlhq.WLID=XLXSBJDWLHQ_WLID "); + SQL.Add(" where XLXSBJDWLHQ_BJDID=:pBJDID "); + SQL.Add(" and case when isnull(bjrqwlhq.HSJG,0) = 0 then 0 else RoundFix(abs(XLXSBJDWLHQ_HSJG - bjrqwlhq.HSJG)/bjrqwlhq.HSJG*100,2) end > :pJCL "); + SQL.ParamByName("pBJRQ").Value = datBJRQ.Text.Trim(); + SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); + SQL.ParamByName("pJCL").Value = dSX; + ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + lblHQJCJY.ForeColor = Color.Red; + lblHQJCJY.Text = "行情价差率超限"; + } + } + } + else + trHQJCJY.Visible = false; + } + + private string GetKHDHURL() + { + string sUrl = ""; + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add(" select XLXSBJD_KHDHURL from XLXSBJD where XLXSBJD_BJDID = :pBJDID "); + SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + sUrl = ds.Tables[0].Rows[0]["XLXSBJD_KHDHURL"].ToString().Trim(); + } + return sUrl; + } + + private double GetDOCGRPID(string sBJDID) + { + double dDOCGRPID = 0; + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add(" select XLXSBJD_DOCGRPID from XLXSBJD where XLXSBJD_BJDID = :pBJDID "); + SQL.ParamByName("pBJDID").Value = sBJDID; + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + dDOCGRPID = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSBJD_DOCGRPID"].ToString().Trim()); + } + return dDOCGRPID; + } + + private double[] CopyAttach(double dSrcGrp, int CopyCount) + { + DocGroupResult DocFile = FileService.CopyGroup(dSrcGrp, CopyCount); + double[] NewGRPID = DocFile.GroupIdArray; + return NewGRPID; + } + + //表价下拉按钮跳转 + private void HandleCLCBPageParams(string sWGCPTZBZ) + { + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); + TPageParams pageParams = new TPageParams(); + pageParams.UrlPath = "XLBJD_WGCPBJList.aspx"; + pageParams.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); + pageParams.AddString("BJDID", txtBJDID.Text.Trim()); + pageParams.AddString("BJRQ", datBJRQ.Text); + pageParams.AddString("JGBID", cbxJGBID.SelectedValue.Trim()); + pageParams.AddString("JGBIDS", txtJGBIDS.Text.Trim()); + pageParams.AddString("JGBBJBM", bjflxx.XLXSBJFL_JGBBJBM); + pageParams.AddString("JCLLX", bjflxx.XLXSBJFL_BJJCLLX); + pageParams.AddString("LJJCLLX", bjflxx.XLXSBJFL_LJJCLLX); + pageParams.AddString("BJDHQLY", bjflxx.XLXSBJFL_BJDHQLY); + pageParams.AddString("ZDXJJCLLX", bjflxx.XLXSBJFL_ZDXJJCLLX); + pageParams.AddString("BJLY", txtBJLY.Text.Trim()); + pageParams.AddString("JSBLFS", txtJSBLFS.Text.Trim()); + pageParams.AddString("JGBTJYS", txtJGBTJYS.Text.Trim()); + + pageParams.AddString("HSBZ", chkJZBJHS.Checked ? "Y" : "N"); + pageParams.AddString("TBJCLID", bjflxx.XLXSBJFL_TBJCLID); + pageParams.AddString("LBJCLID", bjflxx.XLXSBJFL_LBJCLID); + pageParams.AddString("TJ", txtTJ.Value.ToString()); + pageParams.AddString("LJ", txtLJ.Value.ToString()); + pageParams.AddString("CPBJMRXSWS", bjflxx.XLXSBJFL_CPBJMRXSWS); + + pageParams.AddString("JYF", bjflxx.XLXSBJFL_JYF);//计运费 + pageParams.AddString("YSJDID", cbxYSJDID.SelectedValue.Trim());//运输节点 + pageParams.AddString("GYSID", cbxGYSID.SelectedValue.Trim());//运输单位 + pageParams.AddString("YFWLID", bjflxx.XLXSBJFL_YFWLID);//运费物料 + pageParams.AddString("BJHYF", bjflxx.XLXSBJFL_BJHYF);//报价含运费 + pageParams.AddString("WGCPTZBZ", sWGCPTZBZ);//是否点击外购产品跳转 + + pageParams.AddString("XSQYID", cbxXSQYID.SelectedValue.Trim()); + pageParams.AddString("TZCLHQ", bjflxx.XLXSBJFL_TZCLHQ); + pageParams.AddString("JGCIDS", txtJGCIDS.Text.Trim()); + + + + + OpenDialogClickBtn(pageParams, btnRefreshCLHQTZ.ClientID); + + } + + //允许录入报价产品 + public static bool YXLRBJCP(string sLRBJCPWPID, string sWPID) + { + bool bRe = true; + if (sWPID.Equals("")) + sWPID = "0010"; + if (!sLRBJCPWPID.Equals("")) + { + string sWPIDS = "," + sLRBJCPWPID + ","; + sWPID = "," + sWPID + ","; + if (!sWPIDS.Contains(sWPID)) + bRe = false; + } + return bRe; + } + + + public static void PDFDC(string sBJDID) + { + string sBBXH = ""; + string sBBMC = ""; + double dDOCGRPID = 0; + double dFJS = 0; + double dOLDFileID = 0; + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + string sBJU040 = CMISproSessionManager.GetCurrentSession().GetOption(100860000, "BJU040"); + SQL.Clear(); + if (string.IsNullOrEmpty(sBJU040)) + SQL.Add(" select BBYS_XH,BBYS_SM from BBYS where BBYS_UMID = 100860000 and BBYS_FORMID = 'XLBJDInfo' and BBYS_QSBB='Y' "); + else + { + SQL.Add(" select BBYS_XH,BBYS_SM from BBYS where BBYS_UMID = 100860000 and BBYS_FORMID = 'XLBJDInfo' and BBYS_XH=:pXH "); + SQL.ParamByName("pXH").Value = CMISproConvert.StrToFloat(sBJU040); + } + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count <= 0) + return; + sBBXH = ds.Tables[0].Rows[0]["BBYS_XH"].ToString().Trim(); + sBBMC = ds.Tables[0].Rows[0]["BBYS_SM"].ToString().Trim(); + + + string strPath = System.AppDomain.CurrentDomain.BaseDirectory + "\\work\\" + "temp"; + if (!Directory.Exists(strPath)) + Directory.CreateDirectory(strPath); + + string pdfPath = strPath + "\\" + "[" + Guid.NewGuid().ToString() + "]" + ".pdf"; + FileStream fsPdf = new FileStream(pdfPath, FileMode.OpenOrCreate); + try + { + //将xml字符串转化为流 + //byte[] array = Encoding.Default.GetBytes(sReportXML); + //MemoryStream fsXml = new MemoryStream(array); + + //调用服务将报表XML文件流转化为EXCEL文件流 + string sReportXML = GetBBNR(sBJDID, CMISproConvert.StrToFloat(sBBXH)); + try + { + XmlDocument xml = new XmlDocument(); + xml.LoadXml(sReportXML); + XmlNode XmlRoot = xml.SelectSingleNode("Report"); + sBBMC = XmlRoot.Attributes["Name"].Value.Trim(); + } + catch + { + + } + + SQL.Clear(); + SQL.Add(" select XLXSBJD_DOCGRPID,XLXSBJD_FJS from XLXSBJD where XLXSBJD_BJDID=:pBJDID "); + SQL.ParamByName("pBJDID").Value = sBJDID; + ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count <= 0) + return; + dDOCGRPID = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSBJD_DOCGRPID"].ToString().Trim(),0); + dFJS = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSBJD_FJS"].ToString().Trim(), 0); + + + if (dDOCGRPID != 0) + { + DocFileInfo[] docFileInfo = FileService.GetFilesInfo(dDOCGRPID); + for (int i = 0; i < docFileInfo.Length; i++) + { + if (docFileInfo[i].FileName.Equals(sBBMC + ".pdf")) + dOLDFileID = docFileInfo[i].FileId; + + } + + } + + + GThinking.N_MISPROAS.MISproAS.ReportService.Rpt2Pdf(sReportXML, fsPdf); + DocFileInfo tempDOCInfo = FileService.AddFile(fsPdf, sBBMC + ".pdf", dDOCGRPID); + dDOCGRPID = tempDOCInfo.GroupId; + if (dOLDFileID == 0) + dFJS += 1; + SQL.Clear(); + SQL.Add(" update XLXSBJD set XLXSBJD_DOCGRPID = :pDOCGRPID,XLXSBJD_FJS=:pFJS where XLXSBJD_BJDID = :pBJDID "); + SQL.ParamByName("pDOCGRPID").Value = dDOCGRPID; + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pFJS").Value = dFJS; + dberp.ExecSQL(SQL); + + if (dOLDFileID != 0) + FileService.DeleteFile(dDOCGRPID, dOLDFileID); + fsPdf.Close(); + } + finally + { + fsPdf.Close(); + } + } + + public static DataSet GetDs_XLXSBJDMX(string sBJDID) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Add(@"select XLXSBJDMX_BJDID,XLXSBJDMX_XH, OLD_XLXSBJDMX_XH,XLXSBJDMX_XSSX, XLXSBJDMX_XLXHID, XLXSBJDMX_XLGGID,XLXSBJDMX_XLBZID,XLBZ_XLBZMS,XLXSBJDMX_DYDJID, + XLXSBJDMX_XLYSID,XLXSBJDMX_WLID, XLXSBJDMX_CPMLMC,HasCPMLID,XLXSBJDMX_BJCP,XLWLXX, + XLXSBJDMX_WGCPBZ,XLXSBJDMX_JLDW,XLXSBJDMX_BJSL,XLXSBJDMX_BJDHQCLCB,XLXSBJDMX_CLCB,XLXSBJDMX_JGBJJ,XLXSBJDMX_JGBBJ, + TZYZ_BJ01,TZYZ_BJ02,TZYZ_BJ03,TZYZ_BJ04,TZYZ_BJ05,TZYZ_BJ06,TZYZ_BJ07,TZYZ_BJ08,TZYZ_BJ09,TZYZ_BJ10, + XLXSBJDMX_TZQCPBJ,XLXSBJDMX_TZCPBJ,XLXSBJDMX_CPBJ,XLXSBJDMX_TZQBJJE,XLXSBJDMX_TZBJJE,XLXSBJDMX_BJJE, + TZHDJ, XLXSBJDMX_CLZL,XLXSBJDMX_CLCBJCL,XLXSBJDMX_JGBBJLJJCL,XLXSBJDMX_JGBBJJCL,XLXSBJDMX_JGBBJJCE,XLXSBJDMX_ZDXJ,XLXSBJDMX_ZDXJJCL, + XLXSBJDMX_BZ,XLXSBJDMX_BJCPSD,XLXSBJDMX_BJSDBZ,XLXSBJDMX_CLCBJCLSDBZ,XLXSBJDMX_WHRID,XLXSBJDMX_WHR,XLXSBJDMX_WHSJ, + HasCLQD,HasYLDZSQ,UpdJJYZList,XLXSBJDMX_BJLY,XLXSBJDMX_BJTJCZ,'N' as PFYSQKBZ,HasFDJL + from + (select ROW_NUMBER()over(order by XLXSBJDMX_XSSX,XLXSBJDMX_XH) as RNum, + XLXSBJDMX_BJDID,XLXSBJDMX_XH, XLXSBJDMX_XH as OLD_XLXSBJDMX_XH,XLXSBJDMX_XSSX, XLXSBJDMX_XLXHID, XLXSBJDMX_XLGGID, + rtrim(XLXSBJDMX_XLBZID)||'|'||rtrim(XLXSBJDMX_XLBZID)||'|'||rtrim(XLBZ_XLBZLXMC) as XLXSBJDMX_XLBZID,XLBZ_XLBZMS,XLXSBJDMX_DYDJID, + rtrim(XLXSBJDMX_XLYSID)||'|'||rtrim(XLYSB_XLYSMC) as XLXSBJDMX_XLYSID,XLXSBJDMX_WLID, XLXSBJDMX_CPMLMC, + case + (case when ISNULL(A.XLXSBJXHML_CPMLID,' ') = ' ' then ISNULL(B.XLXSBJXHML_CPMLID,' ') else ISNULL(A.XLXSBJXHML_CPMLID,' ') end) + when ' ' then ' ' else + rtrim(case when ISNULL(A.XLXSBJXHML_CPMLID,' ') = ' ' then ISNULL(B.XLXSBJXHML_CPMLID,' ') else ISNULL(A.XLXSBJXHML_CPMLID,' ') end) || '|'|| rtrim(XLXSCPML_CPMLMC) end as HasCPMLID, + XLXSBJDMX_BJCP,' ' as XLWLXX, + ISNULL(XLXSBJDMX_WGCPBZ,'N') as XLXSBJDMX_WGCPBZ,XLXSBJDMX_JLDW,XLXSBJDMX_BJSL,XLXSBJDMX_BJDHQCLCB,XLXSBJDMX_CLCB,XLXSBJDMX_JGBJJ,XLXSBJDMX_JGBBJ, + XLXSBJDYZZ0_YZZ01 as TZYZ_BJ01,XLXSBJDYZZ0_YZZ02 as TZYZ_BJ02,XLXSBJDYZZ0_YZZ03 as TZYZ_BJ03,XLXSBJDYZZ0_YZZ04 as TZYZ_BJ04,XLXSBJDYZZ0_YZZ05 as TZYZ_BJ05, + XLXSBJDYZZ0_YZZ06 as TZYZ_BJ06,XLXSBJDYZZ0_YZZ07 as TZYZ_BJ07,XLXSBJDYZZ0_YZZ08 as TZYZ_BJ08,XLXSBJDYZZ0_YZZ09 as TZYZ_BJ09,XLXSBJDYZZ0_YZZ10 as TZYZ_BJ10, + XLXSBJDYZZ0_YZZ11 as TZYZ_BJ11,XLXSBJDYZZ0_YZZ12 as TZYZ_BJ12,XLXSBJDYZZ0_YZZ13 as TZYZ_BJ13,XLXSBJDYZZ0_YZZ14 as TZYZ_BJ14,XLXSBJDYZZ0_YZZ15 as TZYZ_BJ15, + XLXSBJDYZZ0_YZZ16 as TZYZ_BJ16,XLXSBJDYZZ0_YZZ17 as TZYZ_BJ17,XLXSBJDYZZ0_YZZ18 as TZYZ_BJ18,XLXSBJDYZZ0_YZZ19 as TZYZ_BJ19,XLXSBJDYZZ0_YZZ20 as TZYZ_BJ20, + XLXSBJDMX_TZQCPBJ,XLXSBJDMX_TZCPBJ,XLXSBJDMX_CPBJ,XLXSBJDMX_TZQBJJE,XLXSBJDMX_TZBJJE,XLXSBJDMX_BJJE, + case when XLXSBJDMX_BJSL=0 then 0 else RoundFix(XLXSBJDMX_BJJE/XLXSBJDMX_BJSL,14) end as TZHDJ, XLXSBJDMX_CLZL,XLXSBJDMX_CLCBJCL,XLXSBJDMX_JGBBJLJJCL,XLXSBJDMX_JGBBJJCL,XLXSBJDMX_JGBBJJCE, + XLXSBJDMX_ZDXJ,XLXSBJDMX_ZDXJJCL, + XLXSBJDMX_BZ,XLXSBJDMX_BJCPSD,XLXSBJDMX_BJSDBZ,XLXSBJDMX_CLCBJCLSDBZ,XLXSBJDMX_WHRID,XLXSBJDMX_WHR,XLXSBJDMX_WHSJ, + case when isnull(XLXSCLQD_WPID,' ')='ZZZZ' then 'Y' else 'N' end as HasCLQD, + case when ((ISNULL(XLXSBJYLZD_WPID,' ')= '0060' or ISNULL(XLXSBJYLZD_WPID,' ')= 'ZZZZ') and isnull(XLXSBJYLZDMX_BZDBZ,'N') ='Y' and isnull(XLXSBJYLZDMX_BJDXH,0) <> 0) then 'N' + when (ISNULL(XLXSBJYLZD_WPID,' ')<> ' ' and isnull(XLXSBJYLZDMX_BJDXH,0) <> 0) then 'Y' + else 'N' end as HasYLDZSQ, + case when isnull(XLXSJGB_MXBH,' ')='JGB' then ' ' else rtrim(convert(char,XLXSBJDJJYZ_YZZ01))||'|'||rtrim(convert(char,XLXSBJDJJYZ_YZZ02))||'|'||rtrim(convert(char,XLXSBJDJJYZ_YZZ03)) + ||'|'||rtrim(convert(char,XLXSBJDJJYZ_YZZ04))||'|'||rtrim(convert(char,XLXSBJDJJYZ_YZZ05))||'|'||rtrim(convert(char,XLXSBJDJJYZ_YZZ06)) + ||'|'||rtrim(convert(char,XLXSBJDJJYZ_YZZ07))||'|'||rtrim(convert(char,XLXSBJDJJYZ_YZZ08))||'|'||rtrim(convert(char,XLXSBJDJJYZ_YZZ09)) + ||'|'||rtrim(convert(char,XLXSBJDJJYZ_YZZ10))||'|'||rtrim(convert(char,XLXSBJDJJYZ_YSJDZ)) end as UpdJJYZList,XLXSBJDMX_BJLY,XLXSBJDMX_BJTJCZ,case when isnull(XLXSBJDMXFD_BJDID,' ') = ' ' then 'N' else 'Y' end as HasFDJL + from XLXSBJDMX + left join XLBZ on XLBZ_XLBZID = XLXSBJDMX_XLBZID + left join XLYSB on XLYSB_XLYSID = XLXSBJDMX_XLYSID + left join XLXSBJDYZZ0 on XLXSBJDYZZ0_BJDID=XLXSBJDMX_BJDID and XLXSBJDYZZ0_XH=XLXSBJDMX_XH + left join XLXSBJDJJYZ on XLXSBJDJJYZ_BJDID=XLXSBJDMX_BJDID and XLXSBJDJJYZ_XH=XLXSBJDMX_XH + left join XLXSBJD on XLXSBJD_BJDID=XLXSBJDMX_BJDID + left join XLXSJGB on XLXSJGB_JGBID=XLXSBJD_JGBID + left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSBJDMX_XLXHID and XLXSCLQD_XLGGID=XLXSBJDMX_XLGGID and XLXSCLQD_XLBZID=XLXSBJDMX_XLBZID and XLXSCLQD_DYDJID=isnull(XLXSBJDMX_DYDJID,' ') + left join ( select XLXSBJYLZD_BJDID,XLXSBJYLZD_SQDH,XLXSBJYLZD_WPID,XLXSBJYLZDMX_BJDXH,XLXSBJYLZDMX_BZDBZ + from XLXSBJYLZDMX left join XLXSBJYLZD on XLXSBJYLZD_SQDH = XLXSBJYLZDMX_SQDH where XLXSBJYLZD_BJDID = :XLXSBJDMX_BJDID ) YLZDMX on XLXSBJYLZD_BJDID = XLXSBJDMX_BJDID and XLXSBJYLZDMX_BJDXH = XLXSBJDMX_XH + left join XLXSBJXHML A on A.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and A.XLXSBJXHML_DYDJID = isnull(XLXSBJDMX_DYDJID, ' ') + left join XLXSBJXHML B on B.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and B.XLXSBJXHML_DYDJID = ' ' + left join XLXSCPML on XLXSCPML_CPMLID = case when ISNULL(A.XLXSBJXHML_CPMLID,' ') = ' ' then ISNULL(B.XLXSBJXHML_CPMLID,' ') else ISNULL(A.XLXSBJXHML_CPMLID,' ') end + left join XLXSBJDMXFD on XLXSBJDMXFD_BJDID = XLXSBJDMX_BJDID and XLXSBJDMXFD_BJDXH = XLXSBJDMX_XH + where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID ) BJD where 1=1 order by RNum "); + SQL.ParamByName("XLXSBJDMX_BJDID").Value = sBJDID; + return dberp.OpenDataSet(SQL); + } + + public static DataSet GetDs_XLXSBJD(string sBJDID) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Add(@" select XLXSBJD_BJDID, XLXSBJD_JGBID,XLXSBJD_CLHQJGBID, XLXSBJD_BJFLID, XLXSBJD_KHID, XLXSBJD_XSQYID, XLXSBJD_WPID,XLXSBJD_SYDWID, XLXSBJD_BJRQ, XLXSBJD_XSJLMC, + XLXSBJD_TXY, XLXSBJD_XSBMID, XLXSBJD_KH, XLXSBJD_KHLXR,XLXSBJD_LXDH,XLXSBJD_CZ, XLXSBJD_PJLX, XLXSBJD_JZBJHS, XLXSBJD_XMMC, XLXSBJD_XXDZ, XLXSBJD_FKSM, XLXSBJD_BZ, + XLXSBJD_ZJE,XLXSBJD_ZZL,XLXSBJD_LRL,XLXSBJD_SQR,XLXSBJD_SQRGH,XLXSBJD_SQRID,XLXSBJD_FKQXNR,XLXSBJD_BJSM,XLXSBJD_TJ,XLXSBJD_LJ,XLXSBJD_CZJSXY,XLXSBJD_KHDH,XLXSBJD_SQRQ, + XLXSBJD_XZQHID,XLXSBJD_XMID,XLXSBJD_YBJDIDS,XLXSBJD_ZT,XLXSBJD_YSJDID,XLXSBJD_GYSID,XLXSBJD_YSFY,XLXSBJD_ZB,XLXSBJD_ZBJE, XLXSBJD_WHR, XLXSBJD_WHSJ, XLXSBJD_FJS + from XLXSBJD + where XLXSBJD_BJDID = :pBJDID + order by XLXSBJD_BJDID "); + SQL.ParamByName("pBJDID").Value = sBJDID; + return dberp.OpenDataSet(SQL); + } + + //获取默认打印样式报表内容 + public static string GetBBNR(string sBJDID, double dXH) + { + string sYSNR = string.Empty; + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add("select BBYS_NR from BBYS where BBYS_UMID = 100860000 and BBYS_FORMID = 'XLBJDInfo' and BBYS_XH = :pXH "); + SQL.ParamByName("pXH").Value = dXH; + DataSet dsYS = dberp.OpenDataSet(SQL); + if (dsYS.Tables[0].Rows.Count > 0) + { + string sYSMB = dsYS.Tables[0].Rows[0][0].ToString().Trim(); + if (sYSMB.Equals("")) + throw new Exception("报表样式内容为空,无法导出pdf!"); + byte[] b = new byte[0]; + byte[] c = new byte[0]; + byte[] zipbuf = new byte[0]; + b = (byte[])dsYS.Tables[0].Rows[0][0]; + if (IsZlib(b)) + { + zipbuf = ZlibCompress.DecompressBytes(b); + } + else + { + zipbuf = ZipCompress.DecompressBytes(b); + } + sYSMB = System.Text.Encoding.Default.GetString(zipbuf, 0, zipbuf.Length); + sYSMB = sYSMB.Replace("\'", "\""); + TReportComClass Report = new TReportComClass(CMISproSessionManager.GetCurrentSession(), TContextDatabases.GetDatabase("DBERP")); + Report.OnReportUnknownFunction += ReportOnUnknownFunction; + Report.OnReportUnknownVariable += ReportOnUnknownVariable; + DataSet dsXLXSBJDMX = GetDs_XLXSBJDMX(sBJDID); + DataSet dsXLXSBJD = GetDs_XLXSBJD(sBJDID); + + //添加明细数据集及字段 + if (dsXLXSBJDMX.Tables[0].Rows.Count > 0) + { + Report.AddUserReportDataSet("XLXSBJDMX", dsXLXSBJDMX); + Report.ReportRecordSetAdd(); + + //添加明细字段值 + for (int i = 0; i < dsXLXSBJDMX.Tables[0].Columns.Count; i++) + { + Report.AllVariableValue.Add(dsXLXSBJDMX.Tables[0].Columns[i].ColumnName, new TReportComClass.StrMap(dsXLXSBJDMX.Tables[0].Columns[i].ColumnName, dsXLXSBJDMX.Tables[0].Rows[0][i].ToString().Trim(), "S")); + } + } + + //添加主表数据集及字段 + if (dsXLXSBJD.Tables[0].Rows.Count > 0) + { + Report.AddUserReportDataSet("XLXSBJD", dsXLXSBJD); + Report.ReportRecordSetAdd(); + //Report.AddReportField("XLXSBJD", "XLXSBJD_BJDID", "报价单号", "S"); + + + //添加字段值 + for (int i = 0; i < dsXLXSBJD.Tables[0].Columns.Count; i++) + { + Report.AllVariableValue.Add(dsXLXSBJD.Tables[0].Columns[i].ColumnName, new TReportComClass.StrMap(dsXLXSBJD.Tables[0].Columns[i].ColumnName, dsXLXSBJD.Tables[0].Rows[0][i].ToString().Trim(), "S")); + } + } + + sYSNR = Report.GetReportResult(sYSMB); + } + return sYSNR; + } + + + public static bool IsZlib(byte[] SourceBytes) + { + bool bZlib = false; + if (SourceBytes.Length > 2) + { + if (SourceBytes[0].Equals(120) && SourceBytes[1].Equals(156)) + { + bZlib = true; + } + else if (SourceBytes[0].Equals(80) && SourceBytes[1].Equals(75)) + { + bZlib = false; + } + } + return bZlib; + } + + public static void ReportOnUnknownFunction(string Name, string Params, ref string ValueType, ref string Value, TDatabase db) + { + int _Year = 0; + string _DWID = string.Empty; + string _BBID = string.Empty; + DateTime _End = new DateTime(); + DateTime _Start = new DateTime(); + int _Month = 0; + int _BBQH = 0; + bool _Exist = false; + TLogicContext.Current.SetContextVar("BBYear", _Year.ToString()); + TLogicContext.Current.SetContextVar("BBDWID", _DWID); + TLogicContext.Current.SetContextVar("BBID", _BBID); + TLogicContext.Current.SetContextVar("END", _End.ToString()); + TLogicContext.Current.SetContextVar("START", _Start.ToString()); + TLogicContext.Current.SetContextVar("BBMonth", _Month.ToString()); + TLogicContext.Current.SetContextVar("BBQH", _BBQH.ToString()); + TLogicContext.Current.SetContextVar("SYBBQJ", _Exist ? "Y" : "N");//使用报表期间 + ReportOnUnknownFunction(Name, Params, ref ValueType, ref Value); + } + + public static void ReportOnUnknownFunction(string Name, string Params, ref string ValueType, ref string Value) + {//Params: CS1,CS2,CS3 + //OnReportUnknownFunction(Name, Params, ref ValueType, ref Value); + CMISproSession tSession = CMISproSessionManager.GetCurrentSession(); + if (Name.ToUpper() == "GETN") + { + ValueType = "N"; + string[] par = Params.Split(','); + if (par.Length > 0) + { + if (par.Length == 1) + { + Value = tSession.GetN(N_MISPRO.Utility.CMISproConvert.StrToInt(par[0]), "").ToString(); + } + else + { + Value = tSession.GetN(N_MISPRO.Utility.CMISproConvert.StrToInt(par[0]), Params.Substring(Params.IndexOf(',') + 1)).ToString(); + } + } + else + { + Value = tSession.GetN(0, Params).ToString(); + } + } + else if (Name.ToUpper() == "GETS") + { + ValueType = "S"; + string[] par = Params.Split(','); + if (par.Length > 0) + { + if (par.Length == 1) + { + Value = tSession.GetS(N_MISPRO.Utility.CMISproConvert.StrToInt(par[0]), ""); + } + else + { + Value = tSession.GetS(N_MISPRO.Utility.CMISproConvert.StrToInt(par[0]), Params.Substring(Params.IndexOf(',') + 1)); + } + } + else + { + Value = tSession.GetS(0, Params); + } + } + else if (Name.ToUpper() == "DATEDIFF") + { + ValueType = "N"; + string[] par = Params.Split(','); + if (par.Length != 2) + { + Value = "0"; + } + else + { + TimeSpan spart = N_MISPRO.Utility.CMISproConvert.StrToDateTime(par[1]) - N_MISPRO.Utility.CMISproConvert.StrToDateTime(par[0]); + Value = spart.Days.ToString(); + } + } + else if (Name.ToUpper() == "DATEADD") + { + ValueType = "S"; + string[] par = Params.Split(','); + if (par.Length != 3) + { + Value = ""; + } + else + { + string sDateKind = par[0].ToUpper(); + int number = N_MISPRO.Utility.CMISproConvert.StrToInt(par[1]); + string CustomKind = ""; + if (par[2].Trim().Length > 10) + { + CustomKind = "Time"; + } + else + { + CustomKind = "Date"; + } + DateTime dDest = N_MISPRO.Utility.CMISproConvert.StrToDateTime(par[2]); + switch (sDateKind) + { + case ("HOUR"): + Value = dDest.AddHours(number).ToString("yyyy-MM-dd HH:mm:ss"); + break; + case ("MINUTE"): + Value = dDest.AddMinutes(number).ToString("yyyy-MM-dd HH:mm:ss"); + break; + case ("SECOND"): + Value = dDest.AddSeconds(number).ToString("yyyy-MM-dd HH:mm:ss"); + break; + case ("DAY"): + if (CustomKind == "Time") + Value = dDest.AddDays(number).ToString("yyyy-MM-dd HH:mm:ss"); + else + Value = dDest.AddDays(number).ToString("yyyy-MM-dd"); + break; + case ("WEEK"): + if (CustomKind == "Time") + Value = dDest.AddDays(number * 7).ToString("yyyy-MM-dd HH:mm:ss"); + else + Value = dDest.AddDays(number * 7).ToString("yyyy-MM-dd"); + break; + case ("MONTH"): + if (CustomKind == "Time") + Value = dDest.AddMonths(number).ToString("yyyy-MM-dd HH:mm:ss"); + else + Value = dDest.AddMonths(number).ToString("yyyy-MM-dd"); + break; + case ("QUARTER"): + if (CustomKind == "Time") + Value = dDest.AddMonths(number * 3).ToString("yyyy-MM-dd HH:mm:ss"); + else + Value = dDest.AddMonths(number * 3).ToString("yyyy-MM-dd"); + break; + case ("YEAR"): + if (CustomKind == "Time") + Value = dDest.AddYears(number).ToString("yyyy-MM-dd HH:mm:ss"); + else + Value = dDest.AddYears(number).ToString("yyyy-MM-dd"); + break; + default: + Value = ""; + break; + } + } + } + else if (Name.ToUpper() == "ADDTIME") + { + ValueType = "S"; + string[] par = Params.Split(','); + if (par.Length != 2) + { + Value = ""; + } + else + { + string sH1 = par[0].Trim().Split(':').GetValue(0).ToString().Trim(); + string sMI1 = par[0].Trim().Split(':').GetValue(1).ToString().Trim(); + string sH2 = par[1].Trim().Split(':').GetValue(0).ToString().Trim(); + string sMI2 = par[1].Trim().Split(':').GetValue(1).ToString().Trim(); + int iModMin = (N_MISPRO.Utility.CMISproConvert.StrToInt(sMI1) + N_MISPRO.Utility.CMISproConvert.StrToInt(sMI2)) % 60; + int iModH = Convert.ToInt32(Math.Floor(Convert.ToDouble((N_MISPRO.Utility.CMISproConvert.StrToInt(sMI1) + N_MISPRO.Utility.CMISproConvert.StrToInt(sMI2)) / 60))); + Value = Convert.ToString(N_MISPRO.Utility.CMISproConvert.StrToInt(sH1) + N_MISPRO.Utility.CMISproConvert.StrToInt(sH2) + iModH) + ":" + iModMin.ToString().PadLeft(2, '0'); + } + } + else if (Name.ToUpper() == "TIMEDIFF") + { + ValueType = "S"; + string[] par = Params.Split(','); + if (par.Length != 3) + { + Value = ""; + } + else + { + bool bNeedAdd1 = false; + string sDateB = par[0].Trim(); + string sDateE = par[1].Trim(); + if (sDateE.Trim().Equals("24:00")) + { + bNeedAdd1 = true; + sDateE = "23:59"; + } + string sReturnType = par[2].Trim(); + TimeSpan spart; + bool bDownZ = false; + if (sDateB.Trim().Length > 5) + { + spart = N_MISPRO.Utility.CMISproConvert.StrToDateTime(sDateE) - N_MISPRO.Utility.CMISproConvert.StrToDateTime(sDateB); + if (N_MISPRO.Utility.CMISproConvert.StrToDateTime(sDateE) < N_MISPRO.Utility.CMISproConvert.StrToDateTime(sDateB)) + { + bDownZ = true; + } + } + else + { + if (N_MISPRO.Utility.CMISproConvert.StrToDateTime(sDateE) < N_MISPRO.Utility.CMISproConvert.StrToDateTime(sDateB)) + { + spart = N_MISPRO.Utility.CMISproConvert.StrToDateTime(sDateE).AddHours(24) - N_MISPRO.Utility.CMISproConvert.StrToDateTime(sDateB); + } + else + { + spart = N_MISPRO.Utility.CMISproConvert.StrToDateTime(sDateE) - N_MISPRO.Utility.CMISproConvert.StrToDateTime(sDateB); + } + } + switch (sReturnType) + { + case "HH": + if (!bNeedAdd1) + { + Value = bDownZ == false ? Convert.ToString(Math.Abs(spart.Hours)) : "-" + Convert.ToString(Math.Abs(spart.Hours)); + } + else + { + if (Math.Abs(spart.Minutes) + 1 >= 60) + { + Value = bDownZ == false ? Convert.ToString(Math.Abs(spart.Hours) + 1) : "-" + Convert.ToString(Math.Abs(spart.Hours) + 1); + } + else + { + Value = bDownZ == false ? Convert.ToString(Math.Abs(spart.Hours)) : "-" + Convert.ToString(Math.Abs(spart.Hours)); + } + } + break; + case "MI": + if (!bNeedAdd1) + { + Value = bDownZ == false ? Convert.ToString(Math.Abs(spart.Hours) * 60 + Math.Abs(spart.Minutes)) : "-" + Convert.ToString(Math.Abs(spart.Hours) * 60 + Math.Abs(spart.Minutes)); + } + else + { + Value = bDownZ == false ? Convert.ToString(Math.Abs(spart.Hours) * 60 + Math.Abs(spart.Minutes) + 1) : "-" + Convert.ToString(Math.Abs(spart.Hours) * 60 + Math.Abs(spart.Minutes) + 1); + } + break; + case "SS": + if (!bNeedAdd1) + { + Value = bDownZ == false ? Convert.ToString((Math.Abs(spart.Hours) * 60 + Math.Abs(spart.Minutes)) * 60 + Math.Abs(spart.Seconds)) : "-" + Convert.ToString((Math.Abs(spart.Hours) * 60 + Math.Abs(spart.Minutes)) * 60 + Math.Abs(spart.Seconds)); + } + else + { + Value = bDownZ == false ? Convert.ToString((Math.Abs(spart.Hours) * 60 + Math.Abs(spart.Minutes) + 1) * 60 + Math.Abs(spart.Seconds)) : "-" + Convert.ToString((Math.Abs(spart.Hours) * 60 + Math.Abs(spart.Minutes) + 1) * 60 + Math.Abs(spart.Seconds)); + } + break; + case "HH:MI:SS": + if (!bNeedAdd1) + { + Value = bDownZ == false ? Convert.ToString(Math.Abs(spart.Hours)).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Minutes)).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Seconds)).PadLeft(2, '0') : "-" + Convert.ToString(Math.Abs(spart.Hours)).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Minutes)).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Seconds)).PadLeft(2, '0'); + } + else + { + if (Math.Abs(spart.Minutes) + 1 >= 60) + { + Value = bDownZ == false ? Convert.ToString(Math.Abs(spart.Hours) + 1).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Minutes) - 59).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Seconds)).PadLeft(2, '0') : "-" + Convert.ToString(Math.Abs(spart.Hours) + 1).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Minutes) - 59).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Seconds)).PadLeft(2, '0'); + } + else + { + Value = bDownZ == false ? Convert.ToString(Math.Abs(spart.Hours)).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Minutes) + 1).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Seconds)).PadLeft(2, '0') : "-" + Convert.ToString(Math.Abs(spart.Hours)).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Minutes) + 1).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Seconds)).PadLeft(2, '0'); + } + + } + break; + case "HH:MI": + if (!bNeedAdd1) + { + Value = bDownZ == false ? Convert.ToString(Math.Abs(spart.Hours)).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Minutes)).PadLeft(2, '0') : "-" + Convert.ToString(Math.Abs(spart.Hours)).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Minutes)).PadLeft(2, '0'); + } + else + { + if (Math.Abs(spart.Minutes) + 1 >= 60) + { + Value = bDownZ == false ? Convert.ToString(Math.Abs(spart.Hours) + 1).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Minutes) - 59).PadLeft(2, '0') : "-" + Convert.ToString(Math.Abs(spart.Hours) + 1).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Minutes) - 59).PadLeft(2, '0'); + } + else + { + Value = bDownZ == false ? Convert.ToString(Math.Abs(spart.Hours)).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Minutes) + 1).PadLeft(2, '0') : "-" + Convert.ToString(Math.Abs(spart.Hours)).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Minutes) + 1).PadLeft(2, '0'); + } + } + break; + case "MI:SS": + if (!bNeedAdd1) + { + Value = bDownZ == false ? Convert.ToString(Math.Abs(spart.Minutes)).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Seconds)).PadLeft(2, '0') : "-" + Convert.ToString(Math.Abs(spart.Minutes)).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Seconds)).PadLeft(2, '0'); + } + else + { + if (Math.Abs(spart.Minutes) + 1 >= 60) + { + Value = bDownZ == false ? Convert.ToString(Math.Abs(spart.Minutes) - 59).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Seconds)).PadLeft(2, '0') : "-" + Convert.ToString(Math.Abs(spart.Minutes) - 59).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Seconds)).PadLeft(2, '0'); + } + else + { + Value = bDownZ == false ? Convert.ToString(Math.Abs(spart.Minutes) + 1).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Seconds)).PadLeft(2, '0') : "-" + Convert.ToString(Math.Abs(spart.Minutes) + 1).PadLeft(2, '0') + ":" + Convert.ToString(Math.Abs(spart.Seconds)).PadLeft(2, '0'); + } + } + break; + } + } + } + else if (Name.ToUpper() == "FORMATMINUTETOHHMM") + { + ValueType = "S"; + string[] par = Params.Split(','); + if (par.Length > 0) + { + if (par.Length == 1) + { + int iMM = 0; + try + { + iMM = Convert.ToInt32(par[0].Trim()); + } + catch + { + Value = ""; + } + int iRHH = iMM / 60; + int iRMM = iMM % 60; + string sHHMM = (iRHH == 0 ? "" : (Convert.ToString(iRHH) + "小时")) + (iRMM == 0 ? "" : (Convert.ToString(iRMM) + "分钟")); + Value = sHHMM; + + } + else + { + Value = ""; + } + } + else + { + Value = ""; + } + } + else if (Name.ToUpper() == "FORMATHHMMTOMINUTE") + { + ValueType = "S"; + string[] par = Params.Split(','); + if (par.Length > 0) + { + if (par.Length == 1) + { + string sParam = par[0].Trim(); + bool bHasHour = false; + bool bHasMinute = false; + try + { + if (sParam.IndexOf("小时") >= 0) + bHasHour = true; + if (sParam.IndexOf("分钟") >= 0) + bHasMinute = true; + if (bHasHour && !bHasMinute) //仅仅有小时没有分钟 + { + string sHour = sParam.Substring(0, sParam.IndexOf("小时")); + Value = Convert.ToString(N_MISPRO.Utility.CMISproConvert.StrToInt(sHour) * 60); + } + else if (!bHasHour && bHasMinute) //仅仅有分钟没有小时 + { + string sMinute = sParam.Substring(0, sParam.IndexOf("分钟")); + Value = sMinute; + } + else if (bHasHour && bHasMinute) //既有分钟也有小时 + { + string sHour = sParam.Substring(0, sParam.IndexOf("小时")); + string sMinuteAll = sParam.Replace(sHour + "小时", ""); + string sMinute = sMinuteAll.Substring(0, sMinuteAll.IndexOf("分钟")); + Value = Convert.ToString(N_MISPRO.Utility.CMISproConvert.StrToInt(sHour) * 60 + N_MISPRO.Utility.CMISproConvert.StrToInt(sMinute)); + } + } + catch + { + Value = ""; + } + } + else + { + Value = ""; + } + } + else + { + Value = ""; + } + } + else if (Name.ToUpper() == "HOURDIFF") + { + ValueType = "N"; + string[] par = Params.Split(','); + if (par.Length != 2) + { + Value = "0"; + } + else + { + TimeSpan spart = N_MISPRO.Utility.CMISproConvert.StrToDateTime(par[1]) - N_MISPRO.Utility.CMISproConvert.StrToDateTime(par[0]); + Value = spart.TotalHours.ToString(); + } + } + else if (Name.ToUpper() == "MINUTEDIFF") + { + ValueType = "N"; + string[] par = Params.Split(','); + if (par.Length != 2) + { + Value = "0"; + } + else + { + TimeSpan spart = N_MISPRO.Utility.CMISproConvert.StrToDateTime(par[1]) - N_MISPRO.Utility.CMISproConvert.StrToDateTime(par[0]); + Value = spart.TotalMinutes.ToString(); + } + } + else if (Name.ToUpper() == "EXP") + { + ValueType = "N"; + string[] par = Params.Split(','); + if (par.Length != 1) + { + Value = "0"; + } + else + { + Value = Math.Pow(Math.E, CMISproConvert.StrToFloat(par[0])).ToString(); + } + } + else if (Name.ToUpper() == "SORT") + { + Value = Sort(Params); + ValueType = "N"; + } + else if (Name.ToUpper() == "INVERTEDSORT") + { + Value = InvertedSort(Params); + ValueType = "N"; + } + else if (Name.ToUpper() == "GETWFLOGXX") + { + Value = ""; + ValueType = "S"; + } + else if (Name.ToUpper() == "GETUSERQM") + { + string[] par = Params.Split(','); + if (par.Length != 1) + { + ValueType = "S"; + Value = ""; + } + else + { + string sGH = par[0].Trim(); + if (sGH.Trim() != "") + { + byte[] bbImage = new byte[0]; + bbImage = GetUserQM(sGH); + if (bbImage.Length == 0) //空图片 + { + ValueType = "S"; + Value = ""; + } + else + { + MemoryStream oMy = null; + oMy = new MemoryStream(bbImage); + ValueType = "S"; + Value = GetPhoto(oMy); + } + } + else + { + ValueType = "S"; + Value = ""; + } + } + } + else + { + List lstAMID = GetAMIDByAMNAME(Name); + if (lstAMID.Count == 0) return; + if (lstAMID.Count > 1) + { + ValueType = "S"; + Value = "错误:模块名为[" + Name + "]的模块存在多个,不允许计算!"; + } + int iAMID = lstAMID[0]; + object obj = tSession.DataAgentGetValue(iAMID, Params); + if (obj is double) + { + ValueType = "N"; + } + else if (obj is string) + { + ValueType = "S"; + } + Value = obj.ToString(); + } + } + + public static void ReportOnUnknownVariable(string Name, ref string ValueType, ref string Value, TDatabase db) + { + int _Year = 0; + string _DWID = string.Empty; + string _BBID = string.Empty; + DateTime _End = new DateTime(); + DateTime _Start = new DateTime(); + int _Month = 0; + int _BBQH = 0; + bool _Exist = false; + TLogicContext.Current.SetContextVar("BBYear", _Year.ToString()); + TLogicContext.Current.SetContextVar("BBDWID", _DWID); + TLogicContext.Current.SetContextVar("BBID", _BBID); + TLogicContext.Current.SetContextVar("END", _End.ToString()); + TLogicContext.Current.SetContextVar("START", _Start.ToString()); + TLogicContext.Current.SetContextVar("BBMonth", _Month.ToString()); + TLogicContext.Current.SetContextVar("BBQH", _BBQH.ToString()); + TLogicContext.Current.SetContextVar("SYBBQJ", _Exist ? "Y" : "N");//使用报表期间 + ReportOnUnknownVariable("", Name, ref ValueType, ref Value); + + } + + public static void ReportOnUnknownVariable(string sSQL, string Name, ref string ValueType, ref string Value) + { + CMISproSession tSession = CMISproSessionManager.GetCurrentSession(); + string _DWID = string.Empty; + string _BBID = string.Empty; + DateTime _End = new DateTime(); + DateTime _Start = new DateTime(); + if (Name.ToUpper() == "USERID") + { + ValueType = "S"; + Value = tSession.UserId; + } + if (Name.ToUpper() == "DEPTNAME") + { + ValueType = "S"; + User user = UserUtils.GetUser(tSession.UserId); + if (user != null) + { + string sBMID = user.RzBmId.Trim(); + Value = GetBMMC(sBMID); + } + else + { + Value = ""; + } + } + if (Name.ToUpper() == "KJDWMC") + { + ValueType = "S"; + Value = GetKJDW(_DWID); + } + + if (Name.ToUpper() == "START") + { + ValueType = "S"; + Value = _Start.ToString("yyyy-MM-dd"); + } + if (Name.ToUpper() == "END") + { + ValueType = "S"; + Value = _End.ToString("yyyy-MM-dd"); + } + } + + public static string Sort(string sValue) + { + List dValue = new List(); + double dStartValue = 0; + string[] aValue = sValue.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); + for (int i = 0; i < aValue.Length; i++) + { + double ddValue = 0; + if (i == 0) + { + if (!double.TryParse(aValue[i], out dStartValue)) + return dStartValue.ToString(); + } + else + { + if (double.TryParse(aValue[i], out ddValue) && !dValue.Contains(ddValue)) + dValue.Add(ddValue); + } + } + dValue.Sort(); + return Convert.ToString(dValue.IndexOf(dStartValue) + 1); + } + + public static string InvertedSort(string sValue) + { + List dValue = new List(); + double dStartValue = 0; + string[] aValue = sValue.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); + for (int i = 0; i < aValue.Length; i++) + { + double ddValue = 0; + if (i == 0) + { + if (!double.TryParse(aValue[i], out dStartValue)) + return dStartValue.ToString(); + } + else + { + if (double.TryParse(aValue[i], out ddValue) && !dValue.Contains(ddValue)) + dValue.Add(ddValue); + } + } + dValue.Sort(); + if (dValue.IndexOf(dStartValue) != -1) + return Convert.ToString(dValue.Count - dValue.IndexOf(dStartValue)); + else + return "0"; + } + + public static byte[] GetUserQM(string sUserID) + { + byte[] bImage = new byte[0]; + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + try + { + string sSQLText = string.Format(" select YHQMTP_QMTP from YHQMTP where YHQMTP_GH='{0}' ", sUserID); + DataSet ds = dberp.OpenDataSet(sSQLText); + + if (ds.Tables[0].Rows.Count > 0) + { + bImage = (byte[])ds.Tables[0].Rows[0]["YHQMTP_QMTP"]; + } + } + catch + { + + } + return bImage; + } + + public static string GetPhoto(MemoryStream pPhoto) + { + Random iRa = new Random(); + int iResult; + string sTemp = "", sPath = "", TempSavePath = ""; + CMISproSession tSession = CMISproApp.GetSession(); + string sUsrID = tSession.UserId; + if (string.IsNullOrEmpty(sUsrID)) + { + sUsrID = "XXXX"; + } + do //防止产生的随机数相同导致打印图片相同 + { + iResult = iRa.Next(); //产生随机数 + sTemp = "TempOA" + CMISproConvert.ConvertDate(DateTime.Now) + Convert.ToString(iResult) + "-" + sUsrID + ".bmp"; + sPath = System.Web.Hosting.HostingEnvironment.MapPath("~/UploadFile"); + TempSavePath = sPath + "\\" + sTemp; + } + while (File.Exists(TempSavePath)); + FileStream copyToFile = new FileStream(TempSavePath, FileMode.Append, FileAccess.Write); + MemoryStream oMy = null; + + try + { + oMy = pPhoto; + byte[] buffer = new byte[oMy.Length]; + oMy.Read(buffer, 0, (int)oMy.Length); + oMy.Flush(); + copyToFile.Write(buffer, 0, (int)oMy.Length); + copyToFile.Flush(); + } + catch + { + } + + finally + { + if (oMy != null) + { + oMy.Close(); + } + copyToFile.Close(); + + } + return TempSavePath; + } + + public static string GetBMMC(string sBMID) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sSql = new TSQL(dberp); + sSql.Add("select BM_MC from BM where BM_BMID=:pBMID "); + sSql.ParamByName("pBMID").Value = sBMID; + DataSet ds = dberp.OpenDataSet(sSql); + if (ds.Tables[0].Rows.Count > 0) + { + return ds.Tables[0].Rows[0]["BM_MC"].ToString().Trim(); + } + else + { + return ""; + } + } + + public static List GetAMIDByAMNAME(string sAMNAME) + { + List lstAMID = new List(); + + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Add("select AMID from ACTIVEMODULE"); + SQL.Add(" where AMNAME = :pAMNAME"); + SQL.Add(" and AMTYPE = 'D'"); + SQL.Add(" and AMPLATFORM = 'N'"); + SQL.ParamByName("pAMNAME").Value = sAMNAME; + DataSet ds = dberp.OpenDataSet(SQL); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + lstAMID.Add(CMISproConvert.StrToInt(ds.Tables[0].Rows[i]["AMID"].ToString().Trim())); + } + return lstAMID; + } + + public static string GetKJDW(string sDWID) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sSQL = new TSQL(dberp); + sSQL.Clear(); + sSQL.Add(" select BBDW_KJDWID, isnull(KJDW_QC,' ') as KJDW_QC from BBDW"); + sSQL.Add(" left join KJDW on KJDW_KJDWID=BBDW_KJDWID"); + sSQL.Add(" where BBDW_DWID=:pDWID"); + sSQL.ParamByName("pDWID").Value = sDWID; + DataSet ds = dberp.OpenDataSet(sSQL); + if (ds.Tables[0].Rows.Count > 0) + { + return ds.Tables[0].Rows[0]["KJDW_QC"].ToString().Trim(); + } + else + { + return ""; + } + } + + + + + public static double RoundX(double Num,int Fragment) + { + //小数位数大于等于0 + if (Fragment >= 0) + return NumberUtils.RoundX(Num, Fragment); + + //小数位数小于0 + double factor = Math.Pow(10, -Fragment); + return Math.Round(Num / factor) * factor; + + } + + + private void UpdateXLXSBJD(TDatabase dberp, TSQL SQL, BJFLXX bjflxx, bool bBJSM) + { + double fZJE = 0; + double fLRE = 0; + double fZZL = 0; + double fCPJE = 0;//表价金额 + double fCLCB = 0;//材料成本 + double fBJDCLCB = 0;//报价单材料成本 + double fZDXJ = 0;//最低限价 + double fBJLJJJCL = 0; + double fLJF0ZJE = 0; + double fPFZJE = 0; + double fZJEQDN = 0; + double fLREQDN = 0; + double fCPJEQDN = 0; + double fCLCBQDN = 0; + double fBJDCLCBQDN = 0; + double fZDXJQDN = 0; + double fLJF0ZJEQDN = 0; + SQL.Clear(); + SQL.Add(" select sum(XLXSBJDMX_BJJE) as ZJE,sum(XLXSBJDMX_PJJE) as PJZJE,sum(XLXSBJDMX_JGBBJJCE) as LRE,sum(XLXSBJDMX_CLZL) as ZZL,"); + SQL.Add(" sum(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL) as CPJE,sum(XLXSBJDMX_CLCB*XLXSBJDMX_BJSL) as CLCB,"); + SQL.Add(" sum(XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL) as BJDCLCB,sum(XLXSBJDMX_ZDXJ*XLXSBJDMX_BJSL) as ZDXJ "); + if (bjflxx.XLXSBJFL_LJJCLLX.Equals("1")) + { + SQL.Add(" ,sum(case when XLXSBJDMX_CLCB = 0 then 0 else XLXSBJDMX_BJJE end) as LJF0ZJE "); + } + else + { + SQL.Add(" ,sum(case when XLXSBJDMX_BJDHQCLCB = 0 then 0 else XLXSBJDMX_BJJE end) as LJF0ZJE "); + } + if (bjflxx.XLXSBJFL_BJJCLBJRQDWCP.Equals("Y") || bjflxx.XLXSBJFL_LJJCLBJRQDWCP.Equals("Y") || bjflxx.XLXSBJFL_ZDXJJCLBJRQDWCP.Equals("Y")) + { + SQL.Add(" ,sum(case when XLXSBJDMX_CLZL = 0 then 0 else 1 end * XLXSBJDMX_BJJE ) as ZJEQDN "); + SQL.Add(" ,sum(case when XLXSBJDMX_CLZL = 0 then 0 else 1 end * XLXSBJDMX_JGBBJJCE ) as LREQDN "); + SQL.Add(" ,sum(case when XLXSBJDMX_CLZL = 0 then 0 else 1 end * XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL ) as CPJEQDN "); + SQL.Add(" ,sum(case when XLXSBJDMX_CLZL = 0 then 0 else 1 end * XLXSBJDMX_CLCB*XLXSBJDMX_BJSL ) as CLCBQDN "); + SQL.Add(" ,sum(case when XLXSBJDMX_CLZL = 0 then 0 else 1 end * XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL ) as BJDCLCBQDN "); + SQL.Add(" ,sum(case when XLXSBJDMX_CLZL = 0 then 0 else 1 end * XLXSBJDMX_ZDXJ*XLXSBJDMX_BJSL ) as ZDXJQDN "); + if (bjflxx.XLXSBJFL_LJJCLLX.Equals("1")) + SQL.Add(" ,sum(case when XLXSBJDMX_CLZL = 0 then 0 else 1 end * case when XLXSBJDMX_CLCB = 0 then 0 else XLXSBJDMX_BJJE end ) as LJF0ZJEQDN "); + else + SQL.Add(" ,sum(case when XLXSBJDMX_CLZL = 0 then 0 else 1 end * case when XLXSBJDMX_BJDHQCLCB = 0 then 0 else XLXSBJDMX_BJJE end ) as LJF0ZJEQDN "); + } + SQL.Add(" from XLXSBJDMX"); + SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID"); + SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); + DataSet dsBJD = dberp.OpenDataSet(SQL); + if (dsBJD.Tables[0].Rows.Count > 0) + { + fZJE = CMISproConvert.StrToFloat(dsBJD.Tables[0].Rows[0]["ZJE"].ToString(), 0); + fLRE = CMISproConvert.StrToFloat(dsBJD.Tables[0].Rows[0]["LRE"].ToString(), 0); + fZZL = CMISproConvert.StrToFloat(dsBJD.Tables[0].Rows[0]["ZZL"].ToString(), 0); + fCPJE = CMISproConvert.StrToFloat(dsBJD.Tables[0].Rows[0]["CPJE"].ToString(), 0); + fCLCB = CMISproConvert.StrToFloat(dsBJD.Tables[0].Rows[0]["CLCB"].ToString(), 0); + fBJDCLCB = CMISproConvert.StrToFloat(dsBJD.Tables[0].Rows[0]["BJDCLCB"].ToString(), 0); + fZDXJ = CMISproConvert.StrToFloat(dsBJD.Tables[0].Rows[0]["ZDXJ"].ToString(), 0); + fLJF0ZJE = CMISproConvert.StrToFloat(dsBJD.Tables[0].Rows[0]["LJF0ZJE"].ToString(), 0); + fPFZJE = CMISproConvert.StrToFloat(dsBJD.Tables[0].Rows[0]["PJZJE"].ToString(), 0); + if (bjflxx.XLXSBJFL_BJJCLBJRQDWCP.Equals("Y") || bjflxx.XLXSBJFL_LJJCLBJRQDWCP.Equals("Y") || bjflxx.XLXSBJFL_ZDXJJCLBJRQDWCP.Equals("Y")) + { + fZJEQDN = CMISproConvert.StrToFloat(dsBJD.Tables[0].Rows[0]["ZJEQDN"].ToString(), 0); + fLREQDN = CMISproConvert.StrToFloat(dsBJD.Tables[0].Rows[0]["LREQDN"].ToString(), 0); + fCPJEQDN = CMISproConvert.StrToFloat(dsBJD.Tables[0].Rows[0]["CPJEQDN"].ToString(), 0); + fCLCBQDN = CMISproConvert.StrToFloat(dsBJD.Tables[0].Rows[0]["CLCBQDN"].ToString(), 0); + fBJDCLCBQDN = CMISproConvert.StrToFloat(dsBJD.Tables[0].Rows[0]["BJDCLCBQDN"].ToString(), 0); + fZDXJQDN = CMISproConvert.StrToFloat(dsBJD.Tables[0].Rows[0]["ZDXJQDN"].ToString(), 0); + fLJF0ZJEQDN = CMISproConvert.StrToFloat(dsBJD.Tables[0].Rows[0]["LJF0ZJEQDN"].ToString(), 0); + } + } + txtZJE.Value = NumberUtils.RoundX(fZJE, 2); + txtLRL.Value = 0; + txtLJJCL.Value = 0; + txtZDXJJCL.Value = 0; + if (bjflxx.XLXSBJFL_BJJCLBJRQDWCP.Equals("Y")) + { + fZJE = fZJEQDN; + fLRE = fLREQDN; + fCPJE = fCPJEQDN; + } + if (bjflxx.XLXSBJFL_BJJCLLX.Equals("1")) + { + if (fZJE == 0) + txtLRL.Value = 0; + else + txtLRL.Value = NumberUtils.RoundX(fLRE / fZJE * 100, 2); + } + else if (bjflxx.XLXSBJFL_BJJCLLX.Equals("2")) + { + if (fCPJE == 0) + txtLRL.Value = 0; + else + txtLRL.Value = NumberUtils.RoundX(fLRE / fCPJE * 100, 2); + } + else if (bjflxx.XLXSBJFL_BJJCLLX.Equals("3")) + { + if (fZJE == 0) + txtLRL.Value = 0; + else + txtLRL.Value = NumberUtils.RoundX(fCPJE / fZJE * 100, 2); + } + else if (bjflxx.XLXSBJFL_BJJCLLX.Equals("4")) + { + if (fCPJE == 0) + txtLRL.Value = 0; + else + txtLRL.Value = NumberUtils.RoundX(fLRE / fCPJE * 100, 2); + } + + if (bjflxx.XLXSBJFL_LJJCLBJRQDWCP.Equals("Y")) + { + fLJF0ZJE = fLJF0ZJEQDN; + fCLCB = fCLCBQDN; + fBJDCLCB = fBJDCLCBQDN; + } + if (bjflxx.XLXSBJFL_LJJCLLX.Equals("1")) + { + if (fLJF0ZJE == 0) + txtLJJCL.Value = 0; + else + txtLJJCL.Value = 100 - NumberUtils.RoundX(fCLCB / fLJF0ZJE * 100, 2); + } + else if (bjflxx.XLXSBJFL_LJJCLLX.Equals("2")) + { + if (fLJF0ZJE == 0) + txtLJJCL.Value = 0; + else + txtLJJCL.Value = 100 - NumberUtils.RoundX(fBJDCLCB / fLJF0ZJE * 100, 2); + } + else if (bjflxx.XLXSBJFL_LJJCLLX.Equals("3")) + { + if (fBJDCLCB == 0) + txtLJJCL.Value = 0; + else + txtLJJCL.Value = NumberUtils.RoundX(fLJF0ZJE / fBJDCLCB * 100, 2) - 100; + } + else if (bjflxx.XLXSBJFL_LJJCLLX.Equals("4")) + { + if (fLJF0ZJE == 0) + txtLJJCL.Value = 0; + else + txtLJJCL.Value = NumberUtils.RoundX(fBJDCLCB / fLJF0ZJE * 100, 2); + } + + if (bjflxx.XLXSBJFL_BJJCLBJRQDWCP.Equals("Y") || bjflxx.XLXSBJFL_LJJCLBJRQDWCP.Equals("Y")) + { + fCPJE = fCPJEQDN; + fBJDCLCB = fBJDCLCBQDN; + } + if (bjflxx.XLXSBJFL_BJLJJCLLX.Equals("1")) + { + if (fCPJE != 0) + fBJLJJJCL = NumberUtils.RoundX((fCPJE - fBJDCLCB) / fCPJE * 100, 2); + } + + int iXSWS = CMISproConvert.StrToInt(GetOption(100860000, "BJU054")); + + if (bjflxx.XLXSBJFL_ZDXJJCLBJRQDWCP.Equals("Y")) + { + fZDXJ = fZDXJQDN; + fZJE = fZJEQDN; + fBJDCLCB = fBJDCLCBQDN; + + } + if (bjflxx.XLXSBJFL_ZDXJJCLLX.Equals("1")) + { + if (fZJE == 0) + txtZDXJJCL.Value = 0; + else + txtZDXJJCL.Value = 100 - NumberUtils.RoundX(fZDXJ / fZJE * 100, iXSWS); + } + else if (bjflxx.XLXSBJFL_ZDXJJCLLX.Equals("2")) + { + if (fZDXJ == 0) + txtZDXJJCL.Value = 0; + else + txtZDXJJCL.Value = NumberUtils.RoundX(fZJE / fZDXJ * 100, iXSWS) - 100; + } + else if (bjflxx.XLXSBJFL_ZDXJJCLLX.Equals("3")) + { + if (fZJE == 0) + txtZDXJJCL.Value = 0; + else + txtZDXJJCL.Value = NumberUtils.RoundX(fZDXJ / fZJE * 100, iXSWS); + } + else if (bjflxx.XLXSBJFL_ZDXJJCLLX.Equals("4")) + { + if (fZDXJ == 0) + txtZDXJJCL.Value = 0; + else + txtZDXJJCL.Value = 100 - NumberUtils.RoundX(fBJDCLCB / fZDXJ * 100, iXSWS); + } + else if (bjflxx.XLXSBJFL_ZDXJJCLLX.Equals("5")) + { + if (fCPJE == 0) + txtZDXJJCL.Value = 0; + else + txtZDXJJCL.Value = NumberUtils.RoundX(fZDXJ / (fCPJE * XLBJDUtils.sCJXS) * 100, iXSWS); + } + + + txtZZL.Value = NumberUtils.RoundX(fZZL, 3); + + double fYSFY = 0; + //计运费 + if (bjflxx.XLXSBJFL_JYF.Equals("Y")) + { + fYSFY = GetYSFY(cbxYSJDID.SelectedValue.Trim(), cbxGYSID.SelectedValue.Trim(), bjflxx.XLXSBJFL_YFWLID, txtZZL.Value); + } + txtYSFY.Value = fYSFY * txtZZL.Value; + + string sBJSM = string.Empty; + if (bBJSM) + { + SQL.Clear(); + SQL.Add(" select XLXSBJD_BJSM from XLXSBJD where XLXSBJD_BJDID=:pBJDID "); + SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); + DataSet dsBJSM = dberp.OpenDataSet(SQL); + if (dsBJSM.Tables[0].Rows.Count > 0) + { + if (dsBJSM.Tables[0].Rows[0]["XLXSBJD_BJSM"].ToString().Trim().Equals("")) + { + SQL.Clear(); + SQL.Add(" select XLXSBJSM_SMNR from XLXSBJSM where XLXSBJSM_MRBZ = 'Y' and XLXSBJSM_ZDM = 'BJSM' "); + SQL.Add(" and (isnull(XLXSBJSM_KH,' ')=' ' or isnull(XLXSBJSM_KH,' ')=:pKH) "); + SQL.Add(" order by isnull(XLXSBJSM_KH,' ') desc "); + SQL.ParamByName("pKH").Value = txtKH.Text.Trim(); + DataSet dsXLXSBJSM = dberp.OpenDataSet(SQL); + if (dsXLXSBJSM.Tables[0].Rows.Count > 0) + { + sBJSM = dsXLXSBJSM.Tables[0].Rows[0]["XLXSBJSM_SMNR"].ToString().Trim(); + } + } + else + sBJSM = dsBJSM.Tables[0].Rows[0]["XLXSBJD_BJSM"].ToString().Trim(); + } + } + + SQL.Clear(); + SQL.Add(" update XLXSBJD set XLXSBJD_ZJE=:pZJE,XLXSBJD_YSFY=:pYSFY,XLXSBJD_LRL=:pLRL,XLXSBJD_ZZL=:pZZL,XLXSBJD_CLCBJCL= :pCLCBJCL, "); + SQL.Add(" XLXSBJD_JGBBJLJJCL= :pJGBBJLJJCL,XLXSBJD_ZDXJJCL = :pZDXJJCL,XLXSBJD_PJZJE=:pPJZJE "); + if (bBJSM) + SQL.Add(" ,XLXSBJD_BJSM=:pBJSM "); + SQL.Add(" where XLXSBJD_BJDID=:pBJDID "); + + if (XLBJDUtils.GetXLXSBJPZXX(100860000).XLXSBJPZ_PFBJRBJ == "Y") + txtZJE.Value += fPFZJE; + if (bjflxx.XLXSBJFL_BJHYF.Equals("Y")) + SQL.ParamByName("pZJE").Value = txtZJE.Value + txtYSFY.Value; + else + SQL.ParamByName("pZJE").Value = txtZJE.Value; + SQL.ParamByName("pYSFY").Value = txtYSFY.Value; + SQL.ParamByName("pLRL").Value = txtLRL.Value; + SQL.ParamByName("pZZL").Value = txtZZL.Value; + SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); + SQL.ParamByName("pCLCBJCL").Value = txtLJJCL.Value; + SQL.ParamByName("pJGBBJLJJCL").Value = fBJLJJJCL; + SQL.ParamByName("pZDXJJCL").Value = txtZDXJJCL.Value; + if (bBJSM) + SQL.ParamByName("pBJSM").Value = sBJSM; + SQL.ParamByName("pPJZJE").Value = fPFZJE; + dberp.ExecSQL(SQL); + } + + protected void OpenFZDRXInfo() + { + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); + string sStr = CurSession.UserId + "|" + DateTime.Now.ToString().Trim(); + TPageParams pageParams = new TPageParams(); + pageParams.Title = "按复制内容导入"; + pageParams.UrlPath = "XLBJD_FZDRXInfo.aspx"; + pageParams.AddString("BJDID", txtBJDID.Text.Trim()); + pageParams.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); + pageParams.AddString("BJRQ", datBJRQ.Text); + pageParams.AddString("JGBID", cbxJGBID.SelectedValue.Trim()); + pageParams.AddString("JGCIDS", txtJGCIDS.Text.Trim()); + pageParams.AddString("BJLY", txtBJLY.Text.Trim()); + pageParams.AddString("JSBLFS", txtJSBLFS.Text.Trim()); + pageParams.AddString("XSQYID", cbxXSQYID.SelectedValue.Trim()); + pageParams.AddString("PJLX", cbxPJLX.SelectedValue.Trim()); + pageParams.AddString("FKQXNR", cbxFKQXNR.SelectedValue.Trim()); + pageParams.AddString("SYDWID", cbxSYDWID.SelectedValue.Trim()); + pageParams.AddString("BJU003", GetOption(100860000, "BJU003")); + pageParams.AddString("HSBZ", chkJZBJHS.Checked ? "Y" : "N"); + pageParams.AddString("sDefaultXLBZID", XLBJDUtils.GetDefaultXLBZID()); + pageParams.AddString("XSYXJ", bjflxx.XLXSBJFL_XSYXJ); + pageParams.AddString("XSYZ", bjflxx.XLXSBJFL_XSYZ); + pageParams.AddString("XSYSCP", bjflxx.XLXSBJFL_XSYSCP); + pageParams.AddString("XSBH", bjflxx.XLXSBJFL_XSFBH); + pageParams.AddString("XSCPBJXJ", bjflxx.XLXSBJFL_XSCPBJXJ); + pageParams.AddString("TBJCLID", bjflxx.XLXSBJFL_TBJCLID); + pageParams.AddString("LBJCLID", bjflxx.XLXSBJFL_LBJCLID); + pageParams.AddString("TJ", txtTJ.Value.ToString()); + pageParams.AddString("LJ", txtLJ.Value.ToString()); + pageParams.AddString("txtMRBZID", txtMRBZID.Value.ToString()); + pageParams.AddString("CPBJMRXSWS", bjflxx.XLXSBJFL_CPBJMRXSWS); + pageParams.AddString("BJU002", GetOption(100860000, "BJU002")); + pageParams.AddString("BJU018", GetOption(100860000, "BJU018")); + pageParams.AddString("BJU038", GetOption(100860000, "BJU038")); + pageParams.AddString("XLJGU007", GetOption(102579000, "XLJGU007")); + pageParams.AddString("txtTimeSpan", sStr); + OpenDialogClickBtn(pageParams, btnRefreshCLHQTZ.ClientID); + } + + private string GetTXYValue() + { + string sTXY = cbxTXYMC.Text.Trim(); + if (!string.IsNullOrEmpty(sTXY)) + { + int iPos = sTXY.IndexOf("|"); + if (iPos >= 0) return sTXY.Substring(0, iPos).Trim(); + return sTXY; + } + else + { + return cbxTXY.SelectedValue.Trim(); + } + + } + private void SetTXYValue(string value) + { + if (cbxTXY.Items.FindByValue(value) == null && !string.IsNullOrEmpty(value)) + { + cbxTXY.Items.Add(new ListItem(value, value)); + } + cbxTXY.SelectedValue = value; + + if (!string.IsNullOrEmpty(value)) + { + cbxTXYMC.Text = GetTXYMC(value); + } + else + { + cbxTXYMC.Text = ""; + } + } + private string GetTXYMC(string sTXY) + { + if (string.IsNullOrEmpty(sTXY)) return ""; + TDatabase db = TContextDatabases.GetDatabase("DBERP"); + + string sSQL = "select isnull(XSY_ZJM, '') as ZJM, XSY_TXY as NAME, isnull(XSY_SJ, '') as SJ from XSY where XSY_TXY = '" + sTXY + "'"; + DataSet ds = db.OpenDataSet(sSQL); + if (ds != null && ds.Tables[0].Rows.Count > 0) + { + string sZJM = ds.Tables[0].Rows[0]["ZJM"].ToString().Trim(); + string sNAME = ds.Tables[0].Rows[0]["NAME"].ToString().Trim(); + string sSJ = ds.Tables[0].Rows[0]["SJ"].ToString().Trim(); + + return sNAME + "|" + string.Format("{0}|{1}|{2}", sZJM, sNAME, sSJ); + } + return ""; + } + + + + + + protected void btnSend_Click(object sender, EventArgs e) + { + ResultObject ressult = new ResultObject(); + + RestClientUtils rs = new RestClientUtils(); + + ressult = rs.DataSendFS(102551000, "I", txtBJDID.Text.Trim(), "", "", "", "1"); + + if (ressult.Success) + { + + SendFJ.UploadFile(txtBJDID.Text.Trim()); + + ShowMessage("发送成功!"); + } + else + { + ShowMessage("发送失败!原因如下:" + ressult.ErrorMessage); + } + + } + + + + protected void btnQXSend_Click(object sender, EventArgs e) + { + ResultObject ressult = new ResultObject(); + + RestClientUtils rs = new RestClientUtils(); + + ressult = rs.DataSendFS(102551000, "D", txtBJDID.Text.Trim(), "", "", "", "1"); + + if (ressult.Success) + { + ShowMessage("取消发送成功!"); + } + else + { + ShowMessage("取消发送失败!原因如下:" + ressult.ErrorMessage); + } + + } + + + protected void datBJRQ_TextChanged(object sender, EventArgs e) + { + //报价分类对应产品目录的行情分段材料、及其报价日行情,用于限制价格表加载项 + Dictionary dicCPML_BJRCLHQ = XLBJDUtils.GetCPMLBJCL_BJRCLHQ(cbxBJFLID.SelectedValue.Trim(), datBJRQ.Text); + if (dicCPML_BJRCLHQ.Keys.Count > 0) + { + //重新加载价格表 + SetcbxJGBID(); + } + else + { + cbxJGBID_SelectedIndexChanged(null,null); + } + } + + //报价分类- + protected void cbxBJFLID_SelectedIndexChanged(object sender, EventArgs e) + { + TComboBox.SetComboBox("DBERP", cbxXSQYID, string.Format(@"select XSQY_XSQYID,XSQY_XSQYMC from XSQY where isnull(XSQY_TYBZ,' ')<>'Y' + and exists(select 1 from XLXSBJFL where XLXSBJFL_BJFLID='{0}' + and (isnull(XLXSBJFL_XSQYIDS,' ')=' ' or ','||rtrim(XLXSBJFL_XSQYIDS)||',' like '%,'||rtrim(XSQY_XSQYID)||',%') + ) order by XSQY_XSQYID", cbxBJFLID.SelectedValue.Trim()), true); + + if (IsPostBack) + { + Dictionary dicBJDYZ = XLBJDUtils.GetBJDYZ(cbxBJFLID.SelectedValue.Trim()); + txtBJDYZ.Text = dicBJDYZ["BJDYZ"]; + txtTJYSList.Text = dicBJDYZ["TJYSList"]; + txtYZWPIDList.Text = dicBJDYZ["YZWPIDList"]; + txtReadOnlyYZ.Text = dicBJDYZ["ReadOnlyYZ"]; + txtZDWPIDList.Text = dicBJDYZ["ZDWPIDList"]; + txtPFYZID.Text = dicBJDYZ["PFYZ"]; + txtBZPFYZID.Text = dicBJDYZ["BZPFYZ"]; + txtBTYZ.Text = dicBJDYZ["BTYZ"]; + txtXSJEYZ.Text = dicBJDYZ["XSJEYZ"]; + txtFSYZ.Text = dicBJDYZ["FSYZ"]; + ReBuildYZColByBJFL(txtBJDYZ.Text.Trim(), txtTJYSList.Text.Trim(), txtYZWPIDList.Text.Trim(), txtReadOnlyYZ.Text.Trim(), txtZDWPIDList.Text.Trim()); + + if (grdXLBJDMX.NewRows.Count > 0) + { + if (ControlState == TControlState.ctsInsert || ControlState == TControlState.ctsCopy) + { + + foreach (GridViewRow row in grdXLBJDMX.NewRows) + { + + string sWGCPBZ = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_WGCPBZ", row).Trim(); + string sJLDW = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_JLDW", row).ToString().Trim(); + string sBJU003 = GetOption(100860000, "BJU003"); + string sXLXHID = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XLXHID", row).ToString().Trim(); + string sXLGGID = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XLGGID", row).ToString().Trim(); + string sXLBZID = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XLBZID", row).ToString().Trim(); + string sDYDJID = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_DYDJID", row).ToString().Trim(); + string sXLYSID = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XLYSID", row).ToString().Trim(); + double dBJSL = CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_BJSL", row).ToString().Trim(), 0); + string[] BJDYZList = txtBJDYZ.Text.Split(','); + foreach (string sYZID in BJDYZList) + { + grdXLBJDMX.EditNewRow(row.RowIndex, "TZYZ_" + sYZID.Split('|')[0], "0"); + } + + + Dictionary dicYZZ_ = new Dictionary(); + if (txtTJYSList.Text.Trim().Contains(",空,")) + { + + dicYZZ_ = XLBJDUtils.GetBJDYZZ0(cbxBJFLID.SelectedValue.Trim(), sWGCPBZ.Equals("Y"), false, sJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID, txtBJDID.Text.Trim()); + foreach (string sYZID in dicYZZ_.Keys) + { + grdXLBJDMX.EditNewRow(row.RowIndex,"TZYZ_" + sYZID, dicYZZ_[sYZID].ToString()); + } + + } + + Dictionary dicYZZ1 = new Dictionary(); + if (txtTJYSList.Text.Trim().Contains(",1,")) + { + + dicYZZ1 = XLBJDUtils.GetBJDYZZ1(cbxBJFLID.SelectedValue.Trim(), cbxPJLX.SelectedValue.Trim(), sJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID, txtBJDID.Text.Trim()); + foreach (string sYZID in dicYZZ1.Keys) + { + grdXLBJDMX.EditNewRow(row.RowIndex, "TZYZ_" + sYZID, dicYZZ1[sYZID].ToString()); + } + + } + + //短段因子合并后的值如果为0、需要重新赋值、否则调整报价产品后就不会校验该产品的合并值了,因为系统判断短段都为0、合并后就是0 + //重新获取按“2|导体材料&电压区间&报价数量区间”设置的调价因子值 + Dictionary dicYZZ2 = new Dictionary(); + if (txtTJYSList.Text.Trim().Contains(",2,")) + { + if (dBJSL != 0) + { + dicYZZ2 = XLBJDUtils.GetBJDYZZ2(cbxBJFLID.SelectedValue.Trim(), sDYDJID, dBJSL, sXLXHID, sJLDW, sBJU003, sXLGGID, sXLBZID, txtBJDID.Text.Trim()); + foreach (string sYZID in dicYZZ2.Keys) + { + grdXLBJDMX.EditNewRow(row.RowIndex, "TZYZ_" + sYZID, dicYZZ2[sYZID].ToString()); + + } + } + } + + //短段因子合并后的值如果为0、需要重新赋值、否则调整报价产品后就不会校验该产品的合并值了,因为系统判断短段都为0、合并后就是0 + //重新获取按“3|产品用途&电压等级分类&报价数量区间”设置的调价因子值 + Dictionary dicYZZ3 = new Dictionary(); + if (txtTJYSList.Text.Trim().Contains(",3,")) + { + if (dBJSL != 0) + { + dicYZZ3 = XLBJDUtils.GetBJDYZZ3(cbxBJFLID.SelectedValue.Trim(), dBJSL, sXLXHID, sXLGGID, sXLBZID, sDYDJID, sJLDW, sBJU003, txtBJDID.Text.Trim()); + foreach (string sYZID in dicYZZ3.Keys) + { + grdXLBJDMX.EditNewRow(row.RowIndex, "TZYZ_" + sYZID, dicYZZ3[sYZID].ToString()); + + } + } + } + + //短段因子合并后的值如果为0、需要重新赋值、否则调整报价产品后就不会校验该产品的合并值了,因为系统判断短段都为0、合并后就是0 + //重新获取按“E|型号&电压等级&主芯截面范围&报价数量区间”设置的调价因子值 + Dictionary dicYZZE = new Dictionary(); + if (txtTJYSList.Text.Trim().Contains(",E,")) + { + if (dBJSL != 0) + { + + Dictionary dicXLGGB = XLBJDUtils.GetXXJGIDByXLGGID(sXLGGID, sXLXHID); + dicYZZE = XLBJDUtils.GetBJDYZZE(cbxBJFLID.SelectedValue.Trim(), sXLXHID, sDYDJID, CMISproConvert.StrToFloat(dicXLGGB["ZXJM"]), dBJSL, sJLDW, sBJU003, sXLGGID, sXLBZID, txtBJDID.Text.Trim()); + foreach (string sYZID in dicYZZE.Keys) + { + grdXLBJDMX.EditNewRow(row.RowIndex, "TZYZ_" + sYZID, dicYZZE[sYZID].ToString()); + + } + + } + } + Dictionary dicYZZG = new Dictionary(); + if (txtTJYSList.Text.Trim().Contains(",G,")) + { + if (dBJSL != 0) + { + + Dictionary dicXLGGB = XLBJDUtils.GetXXJGIDByXLGGID(sXLGGID, sXLXHID); + dicYZZG = XLBJDUtils.GetBJDYZZG(cbxBJFLID.SelectedValue.Trim(), sXLXHID, sDYDJID, dicXLGGB["XXJGID"], CMISproConvert.StrToFloat(dicXLGGB["ZXJM"]), dBJSL, sJLDW, sBJU003, txtBJDID.Text.Trim()); + foreach (string sYZID in dicYZZG.Keys) + { + grdXLBJDMX.EditNewRow(row.RowIndex, "TZYZ_" + sYZID, dicYZZG[sYZID].ToString()); + + } + + } + } + + //短段因子合并后的值如果为0、需要重新赋值、否则调整报价产品后就不会校验该产品的合并值了,因为系统判断短段都为0、合并后就是0 + //重新获取按“F|电压等级&芯线结构&报价数量区间加价/报价数量”设置的调价因子值 + Dictionary dicYZZF = new Dictionary(); + if (txtTJYSList.Text.Trim().Contains(",F,")) + { + if (dBJSL != 0) + { + + Dictionary dicXLGGB = XLBJDUtils.GetXXJGIDByXLGGID(sXLGGID, sXLXHID); + dicYZZF = XLBJDUtils.GetBJDYZZF(cbxBJFLID.SelectedValue.Trim(), sXLXHID, sDYDJID, dicXLGGB["XXJGID"], dBJSL, sJLDW, sBJU003, txtBJDID.Text.Trim()); + foreach (string sYZID in dicYZZF.Keys) + { + grdXLBJDMX.EditNewRow(row.RowIndex, "TZYZ_" + sYZID, dicYZZF[sYZID].ToString()); + + } + + } + } + Dictionary dicYZZH = new Dictionary(); + if (txtTJYSList.Text.Trim().Contains(",H,")) + { + if (dBJSL != 0) + { + Dictionary dicXLGGB = XLBJDUtils.GetXXJGIDByXLGGID(sXLGGID, sXLXHID); + dicYZZH = XLBJDUtils.GetBJDYZZH(cbxBJFLID.SelectedValue.Trim(), sXLXHID, sDYDJID, sXLYSID, CMISproConvert.StrToFloat(dicXLGGB["ZXJM"]), dBJSL, sJLDW, sBJU003, txtBJDID.Text.Trim()); + foreach (string sYZID in dicYZZH.Keys) + { + grdXLBJDMX.EditNewRow(row.RowIndex, "TZYZ_" + sYZID, dicYZZH[sYZID].ToString()); + + } + + } + } + Dictionary dicYZZK = new Dictionary(); + if (txtTJYSList.Text.Trim().Contains(",K,")) + { + if (dBJSL != 0) + { + dicYZZK = XLBJDUtils.GetBJDYZZK(cbxBJFLID.SelectedValue.Trim(), dBJSL, sJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID, txtBJDID.Text.Trim()); + foreach (string sYZID in dicYZZK.Keys) + { + grdXLBJDMX.EditNewRow(row.RowIndex, "TZYZ_" + sYZID, dicYZZK[sYZID].ToString()); + + } + + } + } + + Dictionary dicYZZL = new Dictionary(); + if (txtTJYSList.Text.Trim().Contains(",L,")) + { + if (dBJSL != 0) + { + dicYZZL = XLBJDUtils.GetBJDYZZL(cbxBJFLID.SelectedValue.Trim(), sXLBZID, dBJSL, sJLDW, sBJU003, sXLXHID, sXLGGID, sDYDJID, txtBJDID.Text.Trim()); + foreach (string sYZID in dicYZZL.Keys) + { + grdXLBJDMX.EditNewRow(row.RowIndex, "TZYZ_" + sYZID, dicYZZL[sYZID].ToString()); + + } + + } + } + + //如果线缆型号变了,则需要重新获取按“4|型号”设置的调价因子值 + Dictionary dicYZZ4 = new Dictionary(); + if (txtTJYSList.Text.Trim().Contains(",4,")) + { + + dicYZZ4 = XLBJDUtils.GetBJDYZZ4(cbxBJFLID.SelectedValue.Trim(), sXLXHID, sJLDW, sBJU003, sXLGGID, sXLBZID, sDYDJID, txtBJDID.Text.Trim()); + foreach (string sYZID in dicYZZ4.Keys) + { + grdXLBJDMX.EditNewRow(row.RowIndex, "TZYZ_" + sYZID, dicYZZ4[sYZID].ToString()); + + } + + } + + //型号,规格,标准,电压等级都会引起调价因素为5的因子值变化 + Dictionary dicYZZ5 = new Dictionary(); + if (txtTJYSList.Text.Trim().Contains(",5,") ) + { + //解析主芯截面 + string fZXJM = XLBJDUtils.GetZXJMByXLGGID(sXLGGID, sXLXHID); + dicYZZ5 = XLBJDUtils.GetBJDYZZ5(cbxBJFLID.SelectedValue.Trim(), cbxXSQYID.SelectedValue.Trim(), sXLXHID, sXLBZID, sDYDJID, CMISproConvert.StrToFloat(fZXJM), sJLDW, sBJU003, sXLGGID, txtBJDID.Text.Trim()); + foreach (string sYZID in dicYZZ5.Keys) + { + grdXLBJDMX.EditNewRow(row.RowIndex, "TZYZ_" + sYZID, dicYZZ5[sYZID].ToString()); + + } + } + + //短段因子合并后的值如果为0、需要重新赋值、否则调整报价产品后就不会校验该产品的合并值了,因为系统判断短段都为0、合并后就是0 + //重新获取按“6|报价数量区间调价米数/报价数量”的报价因子值 + Dictionary dicYZZ6 = new Dictionary(); + if (txtTJYSList.Text.Trim().Contains(",6,")) + { + if (dBJSL != 0) + { + dicYZZ6 = XLBJDUtils.GetBJDYZZ6(cbxBJFLID.SelectedValue.Trim(), dBJSL, sJLDW, sBJU003, txtBJDID.Text.Trim()); + foreach (string sYZID in dicYZZ6.Keys) + { + grdXLBJDMX.EditNewRow(row.RowIndex, "TZYZ_" + sYZID, dicYZZ6[sYZID].ToString()); + + } + } + } + + //获取调价因素为“7|型号&电压等级&芯线结构&主芯截面范围”的报价因子值 + Dictionary dicYZZ7 = new Dictionary(); + if (txtTJYSList.Text.Trim().Contains(",7,")) + { + + Dictionary dicXLGGB = XLBJDUtils.GetXXJGIDByXLGGID(sXLGGID, sXLXHID); + dicYZZ7 = XLBJDUtils.GetBJDYZZ7(cbxBJFLID.SelectedValue.Trim(), sXLXHID, sDYDJID, dicXLGGB["XXJGID"], CMISproConvert.StrToFloat(dicXLGGB["ZXJM"]), sJLDW, sBJU003, sXLGGID, sXLBZID, txtBJDID.Text.Trim()); + foreach (string sYZID in dicYZZ7.Keys) + { + grdXLBJDMX.EditNewRow(row.RowIndex, "TZYZ_" + sYZID, dicYZZ7[sYZID].ToString()); + + } + + } + + Dictionary dicYZZ8 = new Dictionary(); + if (txtTJYSList.Text.Trim().Contains(",8,")) + { + + dicYZZ8 = XLBJDUtils.GetBJDYZZ8(cbxBJFLID.SelectedValue.Trim(), cbxFKQXNR.SelectedValue.Trim(), sJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID, txtBJDID.Text.Trim()); + foreach (string sYZID in dicYZZ8.Keys) + { + grdXLBJDMX.EditNewRow(row.RowIndex, "TZYZ_" + sYZID, dicYZZ8[sYZID].ToString()); + + } + + } + + //获取调价因素为“9|导体材料&产品用途&电压等级分类&产品特性”的报价因子值 + Dictionary dicYZZ9 = new Dictionary(); + if (txtTJYSList.Text.Trim().Contains(",9,")) + { + dicYZZ9 = XLBJDUtils.GetBJDYZZ9(cbxBJFLID.SelectedValue.Trim(), sXLXHID, sDYDJID, sJLDW, sBJU003, sXLGGID, sXLBZID, txtBJDID.Text.Trim()); + foreach (string sYZID in dicYZZ9.Keys) + { + grdXLBJDMX.EditNewRow(row.RowIndex, "TZYZ_" + sYZID, dicYZZ9[sYZID].ToString()); + + } + } + + //获取调价因素为“A|型号&规格&电压&标准”的报价因子值 + Dictionary dicYZZA = new Dictionary(); + if (txtTJYSList.Text.Trim().Contains(",A,")) + { + dicYZZA = XLBJDUtils.GetBJDYZZA(cbxBJFLID.SelectedValue.Trim(), sXLXHID, sXLGGID, sXLBZID, sDYDJID, sJLDW, sBJU003, txtBJDID.Text.Trim()); + foreach (string sYZID in dicYZZA.Keys) + { + grdXLBJDMX.EditNewRow(row.RowIndex, "TZYZ_" + sYZID, dicYZZA[sYZID].ToString()); + + if (txtXSJEYZ.Text.Trim().Contains(sYZID)) + { + grdXLBJDMX.EditNewRow(row.RowIndex, "TZYZJE_" + sYZID, NumberUtils.RoundX(dicYZZA[sYZID] * dBJSL, 2).ToString().Trim()); + } + + } + } + Dictionary dicYZZBZPF = new Dictionary(); + //包装盘费 + string sBZPFYZID = XLBJDUtils.GetBJFLSYBZPFYZID(cbxBJFLID.SelectedValue.Trim()); + if (!sBZPFYZID.Equals("")) + { + sBZPFYZID = sBZPFYZID.Split('|')[0]; + + dicYZZBZPF = XLBJDUtils.GetBJDBZPFYZZ(sBZPFYZID, sXLXHID, sXLGGID, sXLBZID, sDYDJID, sJLDW, sBJU003, txtBJDID.Text.Trim()); + foreach (string sYZID in dicYZZBZPF.Keys) + { + grdXLBJDMX.EditNewRow(row.RowIndex, "TZYZ_" + sYZID, dicYZZBZPF[sYZID].ToString()); + + } + } + + Dictionary dicYZZCPWJPF = new Dictionary(); + //产品外径盘费 + string sCPWJPFYZID = XLBJDUtils.GetBJFLSYCPWJPFYZID(cbxBJFLID.SelectedValue.Trim()); + if (!sCPWJPFYZID.Equals("")) + { + sCPWJPFYZID = sCPWJPFYZID.Split('|')[0]; + + dicYZZCPWJPF = XLBJDUtils.GetBJDCPWJPFYZZ(sBZPFYZID, sXLXHID, sXLGGID, sXLBZID, sDYDJID, sJLDW, sBJU003, txtBJDID.Text.Trim(),dBJSL); + foreach (string sYZID in dicYZZCPWJPF.Keys) + { + grdXLBJDMX.EditNewRow(row.RowIndex, "TZYZ_" + sYZID, dicYZZCPWJPF[sYZID].ToString()); + + } + } + + Dictionary dicYZZB = new Dictionary(); + if (txtTJYSList.Text.Trim().Contains(",B,")) + { + + dicYZZB = XLBJDUtils.GetBJDYZZB(cbxBJFLID.SelectedValue.Trim(), cbxSYDWID.SelectedValue.Trim(), sJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID, txtBJDID.Text.Trim()); + + foreach (string sYZID in dicYZZB.Keys) + { + grdXLBJDMX.EditNewRow(row.RowIndex, "TZYZ_" + sYZID, dicYZZB[sYZID].ToString()); + + } + + } + + //获取调价因素为“C|产品目录&主芯截面范围&产品特性”的报价因子值 + Dictionary dicYZZC = new Dictionary(); + if (txtTJYSList.Text.Trim().Contains(",C,")) + { + + Dictionary dicXLGGB = XLBJDUtils.GetXXJGIDByXLGGID(sXLGGID, sXLXHID); + dicYZZC = XLBJDUtils.GetBJDYZZC(txtBJDID.Text.Trim(), cbxBJFLID.SelectedValue.Trim(), sXLXHID, sDYDJID, CMISproConvert.StrToFloat(dicXLGGB["ZXJM"]), sJLDW, sBJU003, sXLGGID, sXLBZID); + foreach (string sYZID in dicYZZC.Keys) + { + grdXLBJDMX.EditNewRow(row.RowIndex, "TZYZ_" + sYZID, dicYZZC[sYZID].ToString()); + + } + + } + + Dictionary dicYZZD = new Dictionary(); + if (txtTJYSList.Text.Trim().Contains(",D,")) + { + + dicYZZD = XLBJDUtils.GetBJDYZZD(cbxBJFLID.SelectedValue.Trim(), sXLYSID.Split('|')[0].Trim(), sJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID, txtBJDID.Text.Trim()); + foreach (string sYZID in dicYZZD.Keys) + { + grdXLBJDMX.EditNewRow(row.RowIndex, "TZYZ_" + sYZID, dicYZZD[sYZID].ToString()); + + } + + } + + + } + + grdXLBJDMX.CommitEdit(); + } + + } + + + + + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); + string sHidJSLMList = XLBJDUtils.GetHidJSLMList(cbxBJFLID.SelectedValue.Trim(), IsXJY.Value.Equals("Y"), IsSJY.Value.Equals("Y"), IsHJY.Value.Equals("Y")); + txtTZJGBBJ.Text = bjflxx.XLXSBJFL_TZJGBBJ; + txtTZBJDHQLJ.Text = bjflxx.XLXSBJFL_TZBJDHQLJ; + + + ReBuildJJColByBJFL(txtTZJGBBJ.Text.Trim(), txtTZBJDHQLJ.Text.Trim(), iXSWS, sHidJSLMList); + + if (!bjflxx.XLXSBJFL_ZLGZCLS.Equals("")) + { + lblZLGZCLS.Visible = true; + lblKB1.Visible = false; + } + else + { + lblZLGZCLS.Visible = false; + lblKB1.Visible = true; + } + + + + bool bVisble = false; + bool bSYBJFL = false; + DataSet dsFJXXSZ = XLBJDUtils.GetKZXX(); + if (dsFJXXSZ.Tables[0].Rows.Count > 0) + { + foreach (DataRow trow in dsFJXXSZ.Tables[0].Rows) + { + if (sHidJSLMList.Trim().Contains(trow["XLXSBJKZXXSZ_DYZD"].ToString().Trim())) + continue; + string sXSBZ = trow["XLXSBJKZXXSZ_XSBZ"].ToString().Trim(); + string sWPID = txtWPID.Value.Trim().Equals("") ? "0010" : txtWPID.Value.Trim(); + string sSYBJFLID = trow["XLXSBJKZXXSZ_SYBJFLID"].ToString().Trim(); + if (!sSYBJFLID.Equals("")) + bSYBJFL = true; + string sBJFLID = cbxBJFLID.SelectedValue.Trim(); + string sXSBZC = "," + sXSBZ + ","; + if (!sXSBZ.Equals("") && !sXSBZC.Contains("," + sWPID + ",")) + continue; + string sSYBJFLIDC = "," + sSYBJFLID + ","; + if (!sSYBJFLID.Equals("") && !sSYBJFLIDC.Contains("," + sBJFLID + ",")) + continue; + bVisble = true; + if (bZDXSFJXX) + ShowFJXX = true; + break; + } + } + + if (bSYBJFL)//仅当配置过“适用报价分类”的时候才重新加载 + { + Mac.MacLog.TraceFormat("cbxBJFLID_SelectedIndexChanged:{0}", bVisble ? "Y" : "N"); + divFJXXLabel.Visible = bVisble; + divFJXX.Visible = bVisble; + if (ControlState == TControlState.ctsInsert) + { + LoadFJXX(true, "A", txtBJDID.Text, divFJXX, sHidJSLMList.Trim()); + setFJXXControlState(divFJXX, true, txtBJDID.Text, false, ""); + } + else if (ControlState == TControlState.ctsCopy) + { + LoadFJXX(true, "C", txtBJDID.Text, divFJXX, sHidJSLMList.Trim()); + setFJXXControlState(divFJXX, true, txtBJDID.Text, false, ""); + } + else if (ControlState == TControlState.ctsEdit) + { + LoadFJXX(true, "E", txtBJDID.Text, divFJXX, sHidJSLMList.Trim()); + setFJXXControlState(divFJXX, true, txtBJDID.Text, false, ""); + } + else + { + LoadFJXX(true, "", txtBJDID.Text, divFJXX, sHidJSLMList.Trim()); + setFJXXControlState(divFJXX, false, txtBJDID.Text, false, ""); + } + } + + + if (!YXLRBJCP(bjflxx.XLXSBJFL_LRBJCPWPID, txtWPID.Value.Trim())) + { + grdXLBJDMX.CanInsert = false; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_XLXHID").ReadOnly = true; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_XLGGID").ReadOnly = true; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_XLBZID").ReadOnly = true; + grdXLBJDMX.FindColumnByFieldName("XLBZ_XLBZMS").ReadOnly = true; + grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_DYDJID").ReadOnly = true; + } + } + + + + //报价分类change,重新加载cbxJGBID + SetcbxJGBID(); + + MenuAreaUpdate(); + + //触发使用单位的赋值(2020-12-28 LF:应该不需要吧) + //cbxSYDWID_SelectedIndexChanged(null, null); + } + + protected void cbxJGBID_SelectedIndexChanged(object sender, EventArgs e) + { + txtJGCIDS.Text = ""; + txtBJLY.Text = ""; + txtJGBIDS.Text = ""; + txtJGBTJYS.Text = ""; + txtJSBLFS.Text = ""; + + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + sql.Add("select XLXSJGB_CPMLID,XLXSCPML_CPMLLX,XLXSJGB_JGCIDS,XLXSJGB_BJLY,XLXSJGB_JGBIDS,XLXSJGB_TJYS,XLXSJGB_JSBLFS "); + 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 = cbxJGBID.SelectedValue.Trim(); + DataSet ds = dberp.OpenDataSet(sql); + if (ds.Tables[0].Rows.Count > 0) + { + if (ds.Tables[0].Rows[0]["XLXSCPML_CPMLLX"].ToString().Trim().Equals("Y"))//组合产品目录 + { + txtJGCIDS.Text = ds.Tables[0].Rows[0]["XLXSJGB_JGCIDS"].ToString().Trim(); + } + txtBJLY.Text = ds.Tables[0].Rows[0]["XLXSJGB_BJLY"].ToString().Trim(); + txtJGBIDS.Text = ds.Tables[0].Rows[0]["XLXSJGB_JGBIDS"].ToString().Trim(); + txtJGBTJYS.Text = ds.Tables[0].Rows[0]["XLXSJGB_TJYS"].ToString().Trim(); + txtJSBLFS.Text = ds.Tables[0].Rows[0]["XLXSJGB_JSBLFS"].ToString().Trim(); + } + + //价格表改动,取最新的界面数据同步调整明细----此情况只在新建/复制的时候存在 + if (ControlState == TControlState.ctsInsert || ControlState == TControlState.ctsCopy) + { + Dictionary dicTJYZID = XLBJDUtils.GetTJYZIDXX("BJD");//获取YZID对应的TJYZID + Dictionary dicTYZZYZID = XLBJDUtils.GetTYZZYZIDXX("BJD");//获取YZID对应的TYZZYZID + + + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); + string sTZCLHQ = bjflxx.XLXSBJFL_TZCLHQ; + string sTBJCLID = bjflxx.XLXSBJFL_TBJCLID; + string sLBJCLID = bjflxx.XLXSBJFL_LBJCLID; + string sBJDHQLY = bjflxx.XLXSBJFL_BJDHQLY; + + Dictionary dicTLJG = GetTLJByRQ(datBJRQ.Text, cbxBJFLID.SelectedValue.Trim(), chkJZBJHS.Checked, cbxJGBID.SelectedValue.Trim()); + txtTJ.Value = CMISproConvert.StrToFloat(dicTLJG["TJ"], 0); + txtLJ.Value = CMISproConvert.StrToFloat(dicTLJG["LJ"], 0); + InitLable_TLJ(); + + foreach (GridViewRow row in grdXLBJDMX.NewRows) + { + //先调整料价,基价和表价 + string sXLXHID = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XLXHID", row).ToString().Trim(); + string sXLGGID = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XLGGID", row).ToString().Trim(); + string sXLBZID = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XLBZID", row).ToString().Trim(); + string sDYDJID = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_DYDJID", row).ToString().Trim(); + string sJLDW = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_JLDW", row).ToString().Trim(); + string sBJDBJLY = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_BJLY", row).Trim(); + string sWGCPBZ = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_WGCPBZ", row).Trim(); + string sOldJGBBJ = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_JGBBJ", row).Trim(); + string sOldJGBJJ = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_JGBJJ", row).Trim(); + string sOldCLCB = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_CLCB", row).Trim(); + string sOldBJDHQCLCB = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_BJDHQCLCB", row).Trim(); + + Dictionary dicBaseJG = XLBJDUtils.GetBJDMXBaseJG("", datBJRQ.Text.Trim(), chkJZBJHS.Checked, iXSWS, txtTJ.Value.ToString().Trim(), txtLJ.Value.ToString().Trim(), GetOption(100860000, "BJU003"), GetOption(100860000, "BJU018"), + cbxJGBID.SelectedValue.Trim(), txtBJLY.Text.Trim(), txtJGCIDS.Text.Trim(), + cbxBJFLID.SelectedValue.Trim(), sBJDHQLY, sTZCLHQ, sTBJCLID, sLBJCLID, + sXLXHID, sXLGGID, sXLBZID, sDYDJID, sJLDW, sBJDBJLY, sWGCPBZ, sOldJGBBJ, sOldJGBJJ, sOldCLCB, sOldBJDHQCLCB); + + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JGBBJ", dicBaseJG["XLXSBJDMX_JGBBJ"].ToString()); + if (!sBJDBJLY.Equals("SSJGBBJ") && !sBJDBJLY.Equals("Y") && XLBJDUtils.IsJGEJGB(cbxJGBID.SelectedValue.Trim())) + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JGBBJTZ", "N"); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JGBBJGXSJ", MISproUtils.GetServerTime().ToString().Trim()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JGBJJ", dicBaseJG["XLXSBJDMX_JGBJJ"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_CLCB", dicBaseJG["XLXSBJDMX_CLCB"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_BJDHQCLCB", dicBaseJG["XLXSBJDMX_BJDHQCLCB"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_BJDHQCLCBTZ", "N"); + if (dicBaseJG.ContainsKey("JZ01"))//JEG报价记录价格表调价因子值 + { + grdXLBJDMX.EditNewRow(row.RowIndex, "UpdJJYZList", dicBaseJG["JZ01"].ToString().Trim() + "|" + dicBaseJG["JZ02"].ToString().Trim() + "|" + dicBaseJG["JZ03"].ToString().Trim() + + "|" + dicBaseJG["JZ04"].ToString().Trim() + "|" + dicBaseJG["JZ05"].ToString().Trim() + "|" + dicBaseJG["JZ06"].ToString().Trim() + + "|" + dicBaseJG["JZ07"].ToString().Trim() + "|" + dicBaseJG["JZ08"].ToString().Trim() + "|" + dicBaseJG["JZ09"].ToString().Trim() + + "|" + dicBaseJG["JZ10"].ToString().Trim() + "|0"); + } + else + { + grdXLBJDMX.EditNewRow(row.RowIndex, "UpdJJYZList", ""); + } + + Dictionary dicCalcRow = CalcRow(row, dicTJYZID, dicTYZZYZID, bjflxx.XLXSBJFL_CPBJMRXSWS); + + + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_BJXJKD", dicCalcRow["XLXSBJDMX_BJXJKD"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_BJXJJJ", dicCalcRow["XLXSBJDMX_BJXJJJ"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XJBJCE", dicCalcRow["XJBJCE"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_TZQCPBJ", dicCalcRow["XLXSBJDMX_TZQCPBJ"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_TZCPBJ", dicCalcRow["XLXSBJDMX_TZCPBJ"].ToString("F6")); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_CPBJ", dicCalcRow["XLXSBJDMX_CPBJ"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_BJLY", "JGBBJ"); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_BJTJCZ", "TJYZJS"); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_TZQBJJE", dicCalcRow["XLXSBJDMX_TZQBJJE"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_BJJE", dicCalcRow["XLXSBJDMX_BJJE"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "TZHDJ", dicCalcRow["TZHDJ"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JGBBJJCL", dicCalcRow["XLXSBJDMX_JGBBJJCL"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JGBBJJCE", dicCalcRow["XLXSBJDMX_JGBBJJCE"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_CLCBJCL", dicCalcRow["XLXSBJDMX_CLCBJCL"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JGBBJLJJCL", dicCalcRow["XLXSBJDMX_JGBBJLJJCL"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_CLCBJCLSDBZ", "N"); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_TZQZDXJ", dicCalcRow["XLXSBJDMX_TZQZDXJ"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_TZZDXJ", dicCalcRow["XLXSBJDMX_TZZDXJ"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_ZDXJ", dicCalcRow["XLXSBJDMX_ZDXJ"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JSJG", dicCalcRow["XLXSBJDMX_JSJG"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JSJJE", dicCalcRow["XLXSBJDMX_JSJJE"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JSJJCL", dicCalcRow["XLXSBJDMX_JSJJCL"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_ZDXJJCL", dicCalcRow["XLXSBJDMX_ZDXJJCL"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_ZDXJJE", dicCalcRow["XLXSBJDMX_ZDXJJE"].ToString()); + } + grdXLBJDMX.CommitEdit(); + } + + } + + protected void cbxXSQYID_SelectedIndexChanged(object sender, EventArgs e) + { + bool sBJU067 = GetOption(100860000, "BJU067").Equals("Y"); + if (sBJU067 && CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSBJFL where XLXSBJFL_BJFLID='{0}' and XLXSBJFL_MXBH='JGB' " + + "and ',' || rtrim(XLXSBJFL_JGBTJYSS) || ',' like '%,2,%'", cbxBJFLID.SelectedValue.Trim()))) + { + SetcbxJGBID(); + } + } + protected void cbxTXYMC_SelectedIndexChanged(object sender, string Value) + { + cbxTXY_SelectedIndexChanged(sender, EventArgs.Empty); + } + protected void cbxTXY_SelectedIndexChanged(object sender, EventArgs e) + { + if ((!IsPostBack && ControlState != TControlState.ctsInsert) || ControlState == TControlState.ctsBrowse || ControlState == TControlState.ctsNull)//此处解决列表页直接点编辑触发change的问题 + return; + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); + if (!GetTXYValue().Equals("")) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add(" select A.XSY_BMID,A.XSY_XSYBH,A.XSY_XSQYID,B.XSY_TXY from XSY A "); + SQL.Add(" LEFT JOIN XSY B ON B.XSY_XSYBH = A.XSY_SJXSYBH "); + SQL.Add(" WHERE A.XSY_TXY = :pXSY_TXY "); + SQL.ParamByName("pXSY_TXY").Value = GetTXYValue(); + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + cbxXSJLMC.SelectedValue = ds.Tables[0].Rows[0]["XSY_TXY"].ToString().Trim(); + cbxXSBMID.SelectedValue = ds.Tables[0].Rows[0]["XSY_BMID"].ToString().Trim(); + if (!bjflxx.XLXSBJFL_JGBTJYSS.Contains("2")) + { + cbxXSQYID.SelectedValue = ds.Tables[0].Rows[0]["XSY_XSQYID"].ToString().Trim(); + cbxXSQYID_SelectedIndexChanged(null, null); + } + + } + } + else + { + cbxXSJLMC.SelectedValue = ""; + cbxXSBMID.SelectedValue = ""; + if (!bjflxx.XLXSBJFL_JGBTJYSS.Contains("2")) + { + cbxXSQYID.SelectedValue = ""; + cbxXSQYID_SelectedIndexChanged(null, null); + } + } + //根据销售经理,重新加载销售员 + cbxXSJLMC_SelectedIndexChanged(null, null); + } + + //付款方式 + protected void cbxPJLX_SelectedIndexChanged(object sender, EventArgs e) + { + if (!IsPostBack)//此处解决列表页直接点编辑触发change的问题 + return; + + if (ControlState != TControlState.ctsBrowse) + { + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + sql.Add("select XLXSTZYZ_YZID,isnull(XLXSBJDYZZ1_YZZ,0) as YZZ from XLXSTZYZ"); + sql.Add(" left join XLXSBJDYZZ1 on XLXSBJDYZZ1_JGBID=XLXSTZYZ_JGBID and XLXSBJDYZZ1_YZID=XLXSTZYZ_YZID and XLXSBJDYZZ1_PJLX=:pPJLX"); + sql.Add(" where XLXSTZYZ_MXBH='BJD' and XLXSTZYZ_TJYS='1'"); + sql.Add(" and exists(select 1 from XLXSBJFLYZ where XLXSBJFLYZ_BJFLID=:pBJFLID and XLXSBJFLYZ_YZID=XLXSTZYZ_YZID)"); + sql.Add(" order by XLXSTZYZ_XSXH,XLXSTZYZ_YZID"); + sql.ParamByName("pPJLX").Value = cbxPJLX.SelectedValue.Trim(); + sql.ParamByName("pBJFLID").Value = cbxBJFLID.SelectedValue.Trim(); + DataSet ds = dberp.OpenDataSet(sql); + if (ds.Tables[0].Rows.Count > 0) + { + string sBJU003 = GetOption(100860000, "BJU003"); + bool IsGridChanged = false;//标记grid有没有被修改过 + bool NeedShowMsg = false; + foreach (GridViewRow row in grdXLBJDMX.NewRows) + { + if (row.Attributes["EditAction"].Equals("E") || row.Attributes["EditAction"].Equals("A") || row.Attributes["EditAction"].Equals("D")) + IsGridChanged = true; + } + + if (IsGridChanged) + { + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + string sYZID = ds.Tables[0].Rows[i]["XLXSTZYZ_YZID"].ToString().Trim(); + string sYZZ = ds.Tables[0].Rows[i]["YZZ"].ToString().Trim(); + foreach (GridViewRow row in grdXLBJDMX.NewRows) + { + grdXLBJDMX.EditNewRow(row.RowIndex, "TZYZ_" + sYZID, sYZZ); + } + } + + Dictionary dicTJYZID = XLBJDUtils.GetTJYZIDXX("BJD");//获取YZID对应的TJYZID + Dictionary dicTYZZYZID = XLBJDUtils.GetTYZZYZIDXX("BJD");//获取YZID对应的TYZZYZID + foreach (GridViewRow row in grdXLBJDMX.NewRows) + { + NeedShowMsg = true; + + Dictionary dicCalcRow = CalcRow(row, dicTJYZID, dicTYZZYZID, bjflxx.XLXSBJFL_CPBJMRXSWS); + + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_BJXJKD", dicCalcRow["XLXSBJDMX_BJXJKD"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_BJXJJJ", dicCalcRow["XLXSBJDMX_BJXJJJ"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XJBJCE", dicCalcRow["XJBJCE"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_TZQCPBJ", dicCalcRow["XLXSBJDMX_TZQCPBJ"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_TZCPBJ", dicCalcRow["XLXSBJDMX_TZCPBJ"].ToString("F6")); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_CPBJ", dicCalcRow["XLXSBJDMX_CPBJ"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_BJTJCZ", "TJYZJS"); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_TZQBJJE", dicCalcRow["XLXSBJDMX_TZQBJJE"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_BJJE", dicCalcRow["XLXSBJDMX_BJJE"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "TZHDJ", dicCalcRow["TZHDJ"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JGBBJJCL", dicCalcRow["XLXSBJDMX_JGBBJJCL"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JGBBJJCE", dicCalcRow["XLXSBJDMX_JGBBJJCE"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_CLCBJCL", dicCalcRow["XLXSBJDMX_CLCBJCL"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JGBBJLJJCL", dicCalcRow["XLXSBJDMX_JGBBJLJJCL"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_CLCBJCLSDBZ", "N"); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_TZQZDXJ", dicCalcRow["XLXSBJDMX_TZQZDXJ"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_TZZDXJ", dicCalcRow["XLXSBJDMX_TZZDXJ"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_ZDXJ", dicCalcRow["XLXSBJDMX_ZDXJ"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JSJG", dicCalcRow["XLXSBJDMX_JSJG"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JSJJE", dicCalcRow["XLXSBJDMX_JSJJE"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JSJJCL", dicCalcRow["XLXSBJDMX_JSJJCL"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_ZDXJJCL", dicCalcRow["XLXSBJDMX_ZDXJJCL"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_ZDXJJE", dicCalcRow["XLXSBJDMX_ZDXJJE"].ToString()); + } + + grdXLBJDMX.CommitEdit(); + } + else//目前测试下来,应该只有从列表页点击编辑、复制时会走此分支 + { + DataSet dsBJDMX = GetBJDMX(txtBJDID.Text.Trim()); + + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + string sYZID = ds.Tables[0].Rows[i]["XLXSTZYZ_YZID"].ToString().Trim(); + string sYZZ = ds.Tables[0].Rows[i]["YZZ"].ToString().Trim(); + foreach (DataRow row in dsBJDMX.Tables[0].Rows) + { + row["TZYZ_" + sYZID] = sYZZ; + } + } + + + string sTZCLHQ = bjflxx.XLXSBJFL_TZCLHQ; + string sTBJCLID = bjflxx.XLXSBJFL_TBJCLID; + string sLBJCLID = bjflxx.XLXSBJFL_LBJCLID; + string sBJDHQLY = bjflxx.XLXSBJFL_BJDHQLY; + + foreach (DataRow row in dsBJDMX.Tables[0].Rows) + { + string sXLXHID = row["XLXSBJDMX_XLXHID"].ToString().Trim(); + string sXLGGID = row["XLXSBJDMX_XLGGID"].ToString().Trim(); + string sXLBZID = row["XLXSBJDMX_XLBZID"].ToString().Trim().Split('|')[0].Trim(); + string sDYDJID = row["XLXSBJDMX_DYDJID"].ToString().Trim().Split('|')[0].Trim(); + string sJLDW = row["XLXSBJDMX_JLDW"].ToString().Trim(); + string sBJDBJLY = row["XLXSBJDMX_BJLY"].ToString().Trim(); + string sWGCPBZ = row["XLXSBJDMX_WGCPBZ"].ToString().Trim(); + string sOldJGBBJ = row["XLXSBJDMX_JGBBJ"].ToString().Trim(); + string sOldJGBJJ = row["XLXSBJDMX_JGBJJ"].ToString().Trim(); + string sOldCLCB = row["XLXSBJDMX_CLCB"].ToString().Trim(); + string sOldBJDHQCLCB = row["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(); + + Dictionary dicBaseJG = XLBJDUtils.GetBJDMXBaseJG(txtBJDID.Text.Trim(), datBJRQ.Text.Trim(), chkJZBJHS.Checked, iXSWS, txtTJ.Value.ToString().Trim(), txtLJ.Value.ToString().Trim(), GetOption(100860000, "BJU003"), GetOption(100860000, "BJU018"), + cbxJGBID.SelectedValue.Trim(), txtBJLY.Text.Trim(), txtJGCIDS.Text.Trim(), + cbxBJFLID.SelectedValue.Trim(), sBJDHQLY, sTZCLHQ, sTBJCLID, sLBJCLID, + sXLXHID, sXLGGID, sXLBZID, sDYDJID, sJLDW, sBJDBJLY, sWGCPBZ, sOldJGBBJ, sOldJGBJJ, sOldCLCB, sOldBJDHQCLCB); + + row["XLXSBJDMX_CLCB"] = dicBaseJG["XLXSBJDMX_CLCB"]; + row["XLXSBJDMX_JGBJJ"] = dicBaseJG["XLXSBJDMX_JGBJJ"]; + row["XLXSBJDMX_JGBBJ"] = dicBaseJG["XLXSBJDMX_JGBBJ"]; + if (!sBJDBJLY.Equals("SSJGBBJ") && !sBJDBJLY.Equals("Y") && XLBJDUtils.IsJGEJGB(cbxJGBID.SelectedValue.Trim())) + row["XLXSBJDMX_JGBBJTZ"] = 'N'; + row["XLXSBJDMX_JGBBJGXSJ"] = MISproUtils.GetServerTime().ToString().Trim(); + row["XLXSBJDMX_BJDHQCLCB"] = dicBaseJG["XLXSBJDMX_BJDHQCLCB"]; + row["XLXSBJDMX_BJDHQCLCBTZ"] = 'N'; + if (dicBaseJG.ContainsKey("JZ01"))//JEG报价记录价格表调价因子值 + { + row["UpdJJYZList"] = dicBaseJG["JZ01"].ToString().Trim() + "|" + dicBaseJG["JZ02"].ToString().Trim() + "|" + dicBaseJG["JZ03"].ToString().Trim() + + "|" + dicBaseJG["JZ04"].ToString().Trim() + "|" + dicBaseJG["JZ05"].ToString().Trim() + "|" + dicBaseJG["JZ06"].ToString().Trim() + + "|" + dicBaseJG["JZ07"].ToString().Trim() + "|" + dicBaseJG["JZ08"].ToString().Trim() + "|" + dicBaseJG["JZ09"].ToString().Trim() + + "|" + dicBaseJG["JZ10"].ToString().Trim() + "|0"; + } + else + { + row["UpdJJYZList"] = ""; + } + } + + Dictionary dicTJYZID = XLBJDUtils.GetTJYZIDXX("BJD");//获取YZID对应的TJYZID + Dictionary dicTYZZYZID = XLBJDUtils.GetTYZZYZIDXX("BJD");//获取YZID对应的TYZZYZID + foreach (DataRow row in dsBJDMX.Tables[0].Rows) + { + NeedShowMsg = true; + + Dictionary dicCalcRow = CalcRow(row, dicTJYZID, dicTYZZYZID, bjflxx.XLXSBJFL_CPBJMRXSWS); + row["XLXSBJDMX_BJXJKD"] = dicCalcRow["XLXSBJDMX_BJXJKD"].ToString(); + row["XLXSBJDMX_BJXJJJ"] = dicCalcRow["XLXSBJDMX_BJXJJJ"].ToString(); + row["XJBJCE"] = dicCalcRow["XJBJCE"].ToString(); + row["XLXSBJDMX_TZQCPBJ"] = dicCalcRow["XLXSBJDMX_TZQCPBJ"].ToString(); + row["XLXSBJDMX_TZCPBJ"] = dicCalcRow["XLXSBJDMX_TZCPBJ"].ToString("F6"); + row["XLXSBJDMX_CPBJ"] = dicCalcRow["XLXSBJDMX_CPBJ"].ToString(); + row["XLXSBJDMX_ BJTJCZ"] = "TJYZJS"; + row["XLXSBJDMX_TZQBJJE"] = dicCalcRow["XLXSBJDMX_TZQBJJE"].ToString(); + row["XLXSBJDMX_BJJE"] = dicCalcRow["XLXSBJDMX_BJJE"].ToString(); + row["TZHDJ"] = dicCalcRow["TZHDJ"].ToString(); + row["XLXSBJDMX_JGBBJJCL"] = dicCalcRow["XLXSBJDMX_JGBBJJCL"].ToString(); + row["XLXSBJDMX_JGBBJJCE"] = dicCalcRow["XLXSBJDMX_JGBBJJCE"].ToString(); + row["XLXSBJDMX_CLCBJCL"] = dicCalcRow["XLXSBJDMX_CLCBJCL"].ToString(); + row["XLXSBJDMX_CLCBJCLSDBZ"] = "N"; + row["XLXSBJDMX_TZQZDXJ"] = dicCalcRow["XLXSBJDMX_TZQZDXJ"].ToString(); + row["XLXSBJDMX_TZZDXJ"] = dicCalcRow["XLXSBJDMX_TZZDXJ"].ToString(); + row["XLXSBJDMX_ZDXJ"] = dicCalcRow["XLXSBJDMX_ZDXJ"].ToString(); + row["XLXSBJDMX_JSJG"] = dicCalcRow["XLXSBJDMX_JSJG"].ToString(); + row["XLXSBJDMX_JSJJCL"] = dicCalcRow["XLXSBJDMX_JSJJCL"].ToString(); + row["XLXSBJDMX_JSJJE"] = dicCalcRow["XLXSBJDMX_JSJJE"].ToString(); + row["XLXSBJDMX_ZDXJJCL"] = dicCalcRow["XLXSBJDMX_ZDXJJCL"].ToString(); + row["XLXSBJDMX_ZDXJJE"] = dicCalcRow["XLXSBJDMX_ZDXJJE"].ToString(); + } + + grdXLBJDMX.DataSource = dsBJDMX; + grdXLBJDMX.DataBind(); + } + + if (NeedShowMsg) + ShowMessage("已根据所选付款方式重新计算了报价!"); + } + } + } + + //付款期限 + protected void cbxFKQXNR_SelectedIndexChanged(object sender, EventArgs e) + { + if (!IsPostBack)//此处解决列表页直接点编辑触发change的问题 + return; + + if (ControlState != TControlState.ctsBrowse) + { + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); + + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + sql.Add("select XLXSTZYZ_YZID,isnull(XLXSBJDYZZ8_YZZ,0) as YZZ from XLXSTZYZ"); + sql.Add(" left join XLXSBJDYZZ8 on XLXSBJDYZZ8_JGBID=XLXSTZYZ_JGBID and XLXSBJDYZZ8_YZID=XLXSTZYZ_YZID and XLXSBJDYZZ8_FKQXNR=:pFKQXNR"); + sql.Add(" where XLXSTZYZ_MXBH='BJD' and XLXSTZYZ_TJYS='8'"); + sql.Add(" and exists(select 1 from XLXSBJFLYZ where XLXSBJFLYZ_BJFLID=:pBJFLID and XLXSBJFLYZ_YZID=XLXSTZYZ_YZID)"); + sql.Add(" order by XLXSTZYZ_XSXH,XLXSTZYZ_YZID"); + sql.ParamByName("pFKQXNR").Value = cbxFKQXNR.SelectedValue.Trim(); + sql.ParamByName("pBJFLID").Value = cbxBJFLID.SelectedValue.Trim(); + DataSet ds = dberp.OpenDataSet(sql); + if (ds.Tables[0].Rows.Count > 0) + { + string sBJU003 = GetOption(100860000, "BJU003"); + bool IsGridChanged = false;//标记grid有没有被修改过 + bool NeedShowMsg = false; + foreach (GridViewRow row in grdXLBJDMX.NewRows) + { + if (row.Attributes["EditAction"].Equals("E") || row.Attributes["EditAction"].Equals("A") || row.Attributes["EditAction"].Equals("D")) + IsGridChanged = true; + } + + if (IsGridChanged) + { + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + string sYZID = ds.Tables[0].Rows[i]["XLXSTZYZ_YZID"].ToString().Trim(); + string sYZZ = ds.Tables[0].Rows[i]["YZZ"].ToString().Trim(); + foreach (GridViewRow row in grdXLBJDMX.NewRows) + { + grdXLBJDMX.EditNewRow(row.RowIndex, "TZYZ_" + sYZID, sYZZ); + } + } + + Dictionary dicTJYZID = XLBJDUtils.GetTJYZIDXX("BJD");//获取YZID对应的TJYZID + Dictionary dicTYZZYZID = XLBJDUtils.GetTYZZYZIDXX("BJD");//获取YZID对应的TYZZYZID + foreach (GridViewRow row in grdXLBJDMX.NewRows) + { + NeedShowMsg = true; + + Dictionary dicCalcRow = CalcRow(row, dicTJYZID, dicTYZZYZID, bjflxx.XLXSBJFL_CPBJMRXSWS); + + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_BJXJKD", dicCalcRow["XLXSBJDMX_BJXJKD"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_BJXJJJ", dicCalcRow["XLXSBJDMX_BJXJJJ"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XJBJCE", dicCalcRow["XJBJCE"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_TZQCPBJ", dicCalcRow["XLXSBJDMX_TZQCPBJ"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_TZCPBJ", dicCalcRow["XLXSBJDMX_TZCPBJ"].ToString("F6")); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_CPBJ", dicCalcRow["XLXSBJDMX_CPBJ"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_BJTJCZ", "TJYZJS"); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_TZQBJJE", dicCalcRow["XLXSBJDMX_TZQBJJE"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_BJJE", dicCalcRow["XLXSBJDMX_BJJE"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "TZHDJ", dicCalcRow["TZHDJ"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JGBBJJCL", dicCalcRow["XLXSBJDMX_JGBBJJCL"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JGBBJJCE", dicCalcRow["XLXSBJDMX_JGBBJJCE"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_CLCBJCL", dicCalcRow["XLXSBJDMX_CLCBJCL"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_CLCBJCLSDBZ", "N"); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_TZQZDXJ", dicCalcRow["XLXSBJDMX_TZQZDXJ"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_TZZDXJ", dicCalcRow["XLXSBJDMX_TZZDXJ"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_ZDXJ", dicCalcRow["XLXSBJDMX_ZDXJ"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JSJG", dicCalcRow["XLXSBJDMX_JSJG"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JSJJE", dicCalcRow["XLXSBJDMX_JSJJE"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JSJJCL", dicCalcRow["XLXSBJDMX_JSJJCL"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_ZDXJJCL", dicCalcRow["XLXSBJDMX_ZDXJJCL"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_ZDXJJE", dicCalcRow["XLXSBJDMX_ZDXJJE"].ToString()); + } + + grdXLBJDMX.CommitEdit(); + } + else//目前测试下来,应该只有从列表页点击编辑、复制时会走此分支 + { + DataSet dsBJDMX = GetBJDMX(txtBJDID.Text.Trim()); + + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + string sYZID = ds.Tables[0].Rows[i]["XLXSTZYZ_YZID"].ToString().Trim(); + string sYZZ = ds.Tables[0].Rows[i]["YZZ"].ToString().Trim(); + foreach (DataRow row in dsBJDMX.Tables[0].Rows) + { + row["TZYZ_" + sYZID] = sYZZ; + } + } + + string sTZCLHQ = bjflxx.XLXSBJFL_TZCLHQ; + string sTBJCLID = bjflxx.XLXSBJFL_TBJCLID; + string sLBJCLID = bjflxx.XLXSBJFL_LBJCLID; + string sBJDHQLY = bjflxx.XLXSBJFL_BJDHQLY; + + foreach (DataRow row in dsBJDMX.Tables[0].Rows) + { + string sXLXHID = row["XLXSBJDMX_XLXHID"].ToString().Trim(); + string sXLGGID = row["XLXSBJDMX_XLGGID"].ToString().Trim(); + string sXLBZID = row["XLXSBJDMX_XLBZID"].ToString().Trim().Split('|')[0].Trim(); + string sDYDJID = row["XLXSBJDMX_DYDJID"].ToString().Trim().Split('|')[0].Trim(); + string sJLDW = row["XLXSBJDMX_JLDW"].ToString().Trim(); + string sBJDBJLY = row["XLXSBJDMX_BJLY"].ToString().Trim(); + string sWGCPBZ = row["XLXSBJDMX_WGCPBZ"].ToString().Trim(); + string sOldJGBBJ = row["XLXSBJDMX_JGBBJ"].ToString().Trim(); + string sOldJGBJJ = row["XLXSBJDMX_JGBJJ"].ToString().Trim(); + string sOldCLCB = row["XLXSBJDMX_CLCB"].ToString().Trim(); + string sOldBJDHQCLCB = row["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(); + + Dictionary dicBaseJG = XLBJDUtils.GetBJDMXBaseJG(txtBJDID.Text.Trim(), datBJRQ.Text.Trim(), chkJZBJHS.Checked, iXSWS, txtTJ.Value.ToString().Trim(), txtLJ.Value.ToString().Trim(), GetOption(100860000, "BJU003"), GetOption(100860000, "BJU018"), + cbxJGBID.SelectedValue.Trim(), txtBJLY.Text.Trim(), txtJGCIDS.Text.Trim(), + cbxBJFLID.SelectedValue.Trim(), sBJDHQLY, sTZCLHQ, sTBJCLID, sLBJCLID, + sXLXHID, sXLGGID, sXLBZID, sDYDJID, sJLDW, sBJDBJLY, sWGCPBZ, sOldJGBBJ, sOldJGBJJ, sOldCLCB, sOldBJDHQCLCB); + + row["XLXSBJDMX_CLCB"] = dicBaseJG["XLXSBJDMX_CLCB"]; + row["XLXSBJDMX_JGBJJ"] = dicBaseJG["XLXSBJDMX_JGBJJ"]; + row["XLXSBJDMX_JGBBJ"] = dicBaseJG["XLXSBJDMX_JGBBJ"]; + if (!sBJDBJLY.Equals("SSJGBBJ") && !sBJDBJLY.Equals("Y") && XLBJDUtils.IsJGEJGB(cbxJGBID.SelectedValue.Trim())) + row["XLXSBJDMX_JGBBJTZ"] = 'N'; + row["XLXSBJDMX_JGBBJGXSJ"] = MISproUtils.GetServerTime().ToString().Trim(); + row["XLXSBJDMX_BJDHQCLCB"] = dicBaseJG["XLXSBJDMX_BJDHQCLCB"]; + row["XLXSBJDMX_BJDHQCLCBTZ"] = 'N'; + if (dicBaseJG.ContainsKey("JZ01"))//JEG报价记录价格表调价因子值 + { + row["UpdJJYZList"] = dicBaseJG["JZ01"].ToString().Trim() + "|" + dicBaseJG["JZ02"].ToString().Trim() + "|" + dicBaseJG["JZ03"].ToString().Trim() + + "|" + dicBaseJG["JZ04"].ToString().Trim() + "|" + dicBaseJG["JZ05"].ToString().Trim() + "|" + dicBaseJG["JZ06"].ToString().Trim() + + "|" + dicBaseJG["JZ07"].ToString().Trim() + "|" + dicBaseJG["JZ08"].ToString().Trim() + "|" + dicBaseJG["JZ09"].ToString().Trim() + + "|" + dicBaseJG["JZ10"].ToString().Trim() + "|0"; + } + else + { + row["UpdJJYZList"] = ""; + } + } + + Dictionary dicTJYZID = XLBJDUtils.GetTJYZIDXX("BJD");//获取YZID对应的TJYZID + Dictionary dicTYZZYZID = XLBJDUtils.GetTYZZYZIDXX("BJD");//获取YZID对应的TYZZYZID + foreach (DataRow row in dsBJDMX.Tables[0].Rows) + { + NeedShowMsg = true; + + Dictionary dicCalcRow = CalcRow(row, dicTJYZID, dicTYZZYZID, bjflxx.XLXSBJFL_CPBJMRXSWS); + + row["XLXSBJDMX_BJXJKD"] = dicCalcRow["XLXSBJDMX_BJXJKD"].ToString(); + row["XLXSBJDMX_BJXJJJ"] = dicCalcRow["XLXSBJDMX_BJXJJJ"].ToString(); + row["XJBJCE"] = dicCalcRow["XJBJCE"].ToString(); + row["XLXSBJDMX_TZQCPBJ"] = dicCalcRow["XLXSBJDMX_TZQCPBJ"].ToString(); + row["XLXSBJDMX_TZCPBJ"] = dicCalcRow["XLXSBJDMX_TZCPBJ"].ToString("F6"); + row["XLXSBJDMX_CPBJ"] = dicCalcRow["XLXSBJDMX_CPBJ"].ToString(); + row["XLXSBJDMX_ BJTJCZ"] = "TJYZJS"; + row["XLXSBJDMX_TZQBJJE"] = dicCalcRow["XLXSBJDMX_TZQBJJE"].ToString(); + row["XLXSBJDMX_BJJE"] = dicCalcRow["XLXSBJDMX_BJJE"].ToString(); + row["TZHDJ"] = dicCalcRow["TZHDJ"].ToString(); + row["XLXSBJDMX_JGBBJJCL"] = dicCalcRow["XLXSBJDMX_JGBBJJCL"].ToString(); + row["XLXSBJDMX_JGBBJJCE"] = dicCalcRow["XLXSBJDMX_JGBBJJCE"].ToString(); + row["XLXSBJDMX_CLCBJCL"] = dicCalcRow["XLXSBJDMX_CLCBJCL"].ToString(); + row["XLXSBJDMX_CLCBJCLSDBZ"] = "N"; + row["XLXSBJDMX_TZQZDXJ"] = dicCalcRow["XLXSBJDMX_TZQZDXJ"].ToString(); + row["XLXSBJDMX_TZZDXJ"] = dicCalcRow["XLXSBJDMX_TZZDXJ"].ToString(); + row["XLXSBJDMX_ZDXJ"] = dicCalcRow["XLXSBJDMX_ZDXJ"].ToString(); + row["XLXSBJDMX_JSJG"] = dicCalcRow["XLXSBJDMX_JSJG"].ToString(); + row["XLXSBJDMX_JSJJCL"] = dicCalcRow["XLXSBJDMX_JSJJCL"].ToString(); + row["XLXSBJDMX_JSJJE"] = dicCalcRow["XLXSBJDMX_JSJJE"].ToString(); + row["XLXSBJDMX_ZDXJJCL"] = dicCalcRow["XLXSBJDMX_ZDXJJCL"].ToString(); + row["XLXSBJDMX_ZDXJJE"] = dicCalcRow["XLXSBJDMX_ZDXJJE"].ToString(); + } + + grdXLBJDMX.DataSource = dsBJDMX; + grdXLBJDMX.DataBind(); + } + + if (NeedShowMsg) + ShowMessage("已根据所选付款期限重新计算了报价!"); + } + } + } + + //销售单位 + protected void cbxSYDWID_SelectedIndexChanged(object sender, EventArgs e) + { + if (!IsPostBack)//此处解决列表页直接点编辑触发change的问题 + return; + + if (ControlState != TControlState.ctsBrowse) + { + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); + + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + sql.Add("select XLXSTZYZ_YZID,isnull(XLXSBJDYZZB_YZZ,0) as YZZ from XLXSTZYZ"); + sql.Add(" left join XLXSBJDYZZB on XLXSBJDYZZB_JGBID=XLXSTZYZ_JGBID and XLXSBJDYZZB_YZID=XLXSTZYZ_YZID and XLXSBJDYZZB_SYDWID=:pSYDWID"); + sql.Add(" where XLXSTZYZ_MXBH='BJD' and XLXSTZYZ_TJYS='B'"); + sql.Add(" and exists(select 1 from XLXSBJFLYZ where XLXSBJFLYZ_BJFLID=:pBJFLID and XLXSBJFLYZ_YZID=XLXSTZYZ_YZID)"); + sql.Add(" order by XLXSTZYZ_XSXH,XLXSTZYZ_YZID"); + sql.ParamByName("pSYDWID").Value = cbxSYDWID.SelectedValue.Trim(); + sql.ParamByName("pBJFLID").Value = cbxBJFLID.SelectedValue.Trim(); + DataSet ds = dberp.OpenDataSet(sql); + if (ds.Tables[0].Rows.Count > 0) + { + string sBJU003 = GetOption(100860000, "BJU003"); + bool IsGridChanged = false;//标记grid有没有被修改过 + bool NeedShowMsg = false; + foreach (GridViewRow row in grdXLBJDMX.NewRows) + { + if (row.Attributes["EditAction"].Equals("E") || row.Attributes["EditAction"].Equals("A") || row.Attributes["EditAction"].Equals("D")) + IsGridChanged = true; + } + + if (IsGridChanged) + { + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + string sYZID = ds.Tables[0].Rows[i]["XLXSTZYZ_YZID"].ToString().Trim(); + string sYZZ = ds.Tables[0].Rows[i]["YZZ"].ToString().Trim(); + foreach (GridViewRow row in grdXLBJDMX.NewRows) + { + grdXLBJDMX.EditNewRow(row.RowIndex, "TZYZ_" + sYZID, sYZZ); + } + } + + Dictionary dicTJYZID = XLBJDUtils.GetTJYZIDXX("BJD");//获取YZID对应的TJYZID + Dictionary dicTYZZYZID = XLBJDUtils.GetTYZZYZIDXX("BJD");//获取YZID对应的TYZZYZID + foreach (GridViewRow row in grdXLBJDMX.NewRows) + { + NeedShowMsg = true; + + Dictionary dicCalcRow = CalcRow(row, dicTJYZID, dicTYZZYZID, bjflxx.XLXSBJFL_CPBJMRXSWS); + + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_BJXJKD", dicCalcRow["XLXSBJDMX_BJXJKD"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_BJXJJJ", dicCalcRow["XLXSBJDMX_BJXJJJ"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XJBJCE", dicCalcRow["XJBJCE"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_TZQCPBJ", dicCalcRow["XLXSBJDMX_TZQCPBJ"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_TZCPBJ", dicCalcRow["XLXSBJDMX_TZCPBJ"].ToString("F6")); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_CPBJ", dicCalcRow["XLXSBJDMX_CPBJ"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_BJTJCZ", "TJYZJS"); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_TZQBJJE", dicCalcRow["XLXSBJDMX_TZQBJJE"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_BJJE", dicCalcRow["XLXSBJDMX_BJJE"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "TZHDJ", dicCalcRow["TZHDJ"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JGBBJJCL", dicCalcRow["XLXSBJDMX_JGBBJJCL"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JGBBJJCE", dicCalcRow["XLXSBJDMX_JGBBJJCE"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_CLCBJCL", dicCalcRow["XLXSBJDMX_CLCBJCL"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_CLCBJCLSDBZ", "N"); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_TZQZDXJ", dicCalcRow["XLXSBJDMX_TZQZDXJ"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_TZZDXJ", dicCalcRow["XLXSBJDMX_TZZDXJ"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_ZDXJ", dicCalcRow["XLXSBJDMX_ZDXJ"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JSJG", dicCalcRow["XLXSBJDMX_JSJG"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JSJJE", dicCalcRow["XLXSBJDMX_JSJJE"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JSJJCL", dicCalcRow["XLXSBJDMX_JSJJCL"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_ZDXJJCL", dicCalcRow["XLXSBJDMX_ZDXJJCL"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_ZDXJJE", dicCalcRow["XLXSBJDMX_ZDXJJE"].ToString()); + } + + grdXLBJDMX.CommitEdit(); + } + else//目前测试下来,应该只有从列表页点击编辑、复制时会走此分支 + { + DataSet dsBJDMX = GetBJDMX(txtBJDID.Text.Trim()); + + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + string sYZID = ds.Tables[0].Rows[i]["XLXSTZYZ_YZID"].ToString().Trim(); + string sYZZ = ds.Tables[0].Rows[i]["YZZ"].ToString().Trim(); + foreach (DataRow row in dsBJDMX.Tables[0].Rows) + { + row["TZYZ_" + sYZID] = sYZZ; + } + } + + string sTZCLHQ = bjflxx.XLXSBJFL_TZCLHQ; + string sTBJCLID = bjflxx.XLXSBJFL_TBJCLID; + string sLBJCLID = bjflxx.XLXSBJFL_LBJCLID; + string sBJDHQLY = bjflxx.XLXSBJFL_BJDHQLY; + + foreach (DataRow row in dsBJDMX.Tables[0].Rows) + { + string sXLXHID = row["XLXSBJDMX_XLXHID"].ToString().Trim(); + string sXLGGID = row["XLXSBJDMX_XLGGID"].ToString().Trim(); + string sXLBZID = row["XLXSBJDMX_XLBZID"].ToString().Trim().Split('|')[0].Trim(); + string sDYDJID = row["XLXSBJDMX_DYDJID"].ToString().Trim().Split('|')[0].Trim(); + string sJLDW = row["XLXSBJDMX_JLDW"].ToString().Trim(); + string sBJDBJLY = row["XLXSBJDMX_BJLY"].ToString().Trim(); + string sWGCPBZ = row["XLXSBJDMX_WGCPBZ"].ToString().Trim(); + string sOldJGBBJ = row["XLXSBJDMX_JGBBJ"].ToString().Trim(); + string sOldJGBJJ = row["XLXSBJDMX_JGBJJ"].ToString().Trim(); + string sOldCLCB = row["XLXSBJDMX_CLCB"].ToString().Trim(); + string sOldBJDHQCLCB = row["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(); + + Dictionary dicBaseJG = XLBJDUtils.GetBJDMXBaseJG(txtBJDID.Text.Trim(), datBJRQ.Text.Trim(), chkJZBJHS.Checked, iXSWS, txtTJ.Value.ToString().Trim(), txtLJ.Value.ToString().Trim(), GetOption(100860000, "BJU003"), GetOption(100860000, "BJU018"), + cbxJGBID.SelectedValue.Trim(), txtBJLY.Text.Trim(), txtJGCIDS.Text.Trim(), + cbxBJFLID.SelectedValue.Trim(), sBJDHQLY, sTZCLHQ, sTBJCLID, sLBJCLID, + sXLXHID, sXLGGID, sXLBZID, sDYDJID, sJLDW, sBJDBJLY, sWGCPBZ, sOldJGBBJ, sOldJGBJJ, sOldCLCB, sOldBJDHQCLCB); + + row["XLXSBJDMX_CLCB"] = dicBaseJG["XLXSBJDMX_CLCB"]; + row["XLXSBJDMX_JGBJJ"] = dicBaseJG["XLXSBJDMX_JGBJJ"]; + row["XLXSBJDMX_JGBBJ"] = dicBaseJG["XLXSBJDMX_JGBBJ"]; + if (!sBJDBJLY.Equals("SSJGBBJ") && !sBJDBJLY.Equals("Y") && XLBJDUtils.IsJGEJGB(cbxJGBID.SelectedValue.Trim())) + row["XLXSBJDMX_JGBBJTZ"] = 'N'; + row["XLXSBJDMX_JGBBJGXSJ"] = MISproUtils.GetServerTime().ToString().Trim(); + row["XLXSBJDMX_BJDHQCLCB"] = dicBaseJG["XLXSBJDMX_BJDHQCLCB"]; + row["XLXSBJDMX_BJDHQCLCBTZ"] = 'N'; + if (dicBaseJG.ContainsKey("JZ01"))//JEG报价记录价格表调价因子值 + { + row["UpdJJYZList"] = dicBaseJG["JZ01"].ToString().Trim() + "|" + dicBaseJG["JZ02"].ToString().Trim() + "|" + dicBaseJG["JZ03"].ToString().Trim() + + "|" + dicBaseJG["JZ04"].ToString().Trim() + "|" + dicBaseJG["JZ05"].ToString().Trim() + "|" + dicBaseJG["JZ06"].ToString().Trim() + + "|" + dicBaseJG["JZ07"].ToString().Trim() + "|" + dicBaseJG["JZ08"].ToString().Trim() + "|" + dicBaseJG["JZ09"].ToString().Trim() + + "|" + dicBaseJG["JZ10"].ToString().Trim() + "|0"; + } + else + { + row["UpdJJYZList"] = ""; + } + } + + Dictionary dicTJYZID = XLBJDUtils.GetTJYZIDXX("BJD");//获取YZID对应的TJYZID + Dictionary dicTYZZYZID = XLBJDUtils.GetTYZZYZIDXX("BJD");//获取YZID对应的TYZZYZID + foreach (DataRow row in dsBJDMX.Tables[0].Rows) + { + NeedShowMsg = true; + + Dictionary dicCalcRow = CalcRow(row, dicTJYZID, dicTYZZYZID, bjflxx.XLXSBJFL_CPBJMRXSWS); + + row["XLXSBJDMX_BJXJKD"] = dicCalcRow["XLXSBJDMX_BJXJKD"].ToString(); + row["XLXSBJDMX_BJXJJJ"] = dicCalcRow["XLXSBJDMX_BJXJJJ"].ToString(); + row["XJBJCE"] = dicCalcRow["XJBJCE"].ToString(); + row["XLXSBJDMX_TZQCPBJ"] = dicCalcRow["XLXSBJDMX_TZQCPBJ"].ToString(); + row["XLXSBJDMX_TZCPBJ"] = dicCalcRow["XLXSBJDMX_TZCPBJ"].ToString("F6"); + row["XLXSBJDMX_CPBJ"] = dicCalcRow["XLXSBJDMX_CPBJ"].ToString(); + row["XLXSBJDMX_ BJTJCZ"] = "TJYZJS"; + row["XLXSBJDMX_TZQBJJE"] = dicCalcRow["XLXSBJDMX_TZQBJJE"].ToString(); + row["XLXSBJDMX_BJJE"] = dicCalcRow["XLXSBJDMX_BJJE"].ToString(); + row["TZHDJ"] = dicCalcRow["TZHDJ"].ToString(); + row["XLXSBJDMX_JGBBJJCL"] = dicCalcRow["XLXSBJDMX_JGBBJJCL"].ToString(); + row["XLXSBJDMX_JGBBJJCE"] = dicCalcRow["XLXSBJDMX_JGBBJJCE"].ToString(); + row["XLXSBJDMX_CLCBJCL"] = dicCalcRow["XLXSBJDMX_CLCBJCL"].ToString(); + row["XLXSBJDMX_CLCBJCLSDBZ"] = "N"; + row["XLXSBJDMX_TZQZDXJ"] = dicCalcRow["XLXSBJDMX_TZQZDXJ"].ToString(); + row["XLXSBJDMX_TZZDXJ"] = dicCalcRow["XLXSBJDMX_TZZDXJ"].ToString(); + row["XLXSBJDMX_ZDXJ"] = dicCalcRow["XLXSBJDMX_ZDXJ"].ToString(); + row["XLXSBJDMX_JSJG"] = dicCalcRow["XLXSBJDMX_JSJG"].ToString(); + row["XLXSBJDMX_JSJJE"] = dicCalcRow["XLXSBJDMX_JSJJE"].ToString(); + row["XLXSBJDMX_JSJJCL"] = dicCalcRow["XLXSBJDMX_JSJJCL"].ToString(); + row["XLXSBJDMX_ZDXJJCL"] = dicCalcRow["XLXSBJDMX_ZDXJJCL"].ToString(); + row["XLXSBJDMX_ZDXJJE"] = dicCalcRow["XLXSBJDMX_ZDXJJE"].ToString(); + } + + grdXLBJDMX.DataSource = dsBJDMX; + grdXLBJDMX.DataBind(); + + } + + if (NeedShowMsg) + ShowMessage("已根据所选销售单位重新计算了报价!"); + } + } + } + + //送货地点 + protected void cbxYSJDID_SelectedIndexChanged(object sender, EventArgs e) + { + if (!IsPostBack)//此处解决列表页直接点编辑触发change的问题 + return; + + if (ControlState != TControlState.ctsBrowse) + { + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); + + //选择送货地点,自动带出运输单位 + string sYSXLID = ""; + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add(" select YSXL_YSXLID from YSXL "); + SQL.Add(" left join YSXLMX on YSXLMX_YSXLID = YSXL_YSXLID "); + SQL.Add(" where isnull(YSXL_TYBZ,'N') <> 'Y' "); + SQL.Add(" and exists(select 1 from YSXLMX where YSXLMX_YSXLID = YSXL_YSXLID and YSXLMX_YSJDID = :pYSXLMX_YSJDID) "); + SQL.Add(" and not exists(select 1 from YSXLMX where YSXLMX_YSXLID = YSXL_YSXLID and YSXLMX_YSJDID <> :pYSXLMX_YSJDID) "); + SQL.Add(" order by YSXL_YSXLID"); + SQL.ParamByName("pYSXLMX_YSJDID").Value = cbxYSJDID.SelectedValue.Trim(); + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + sYSXLID = ds.Tables[0].Rows[0][0].ToString().Trim(); + + SQL.Clear(); + SQL.Add(" select CHJJJGBMX_JGBBH from CHJJJGBMX "); + SQL.Add(" left join CHJJJGB on CHJJJGB_JGBLX = CHJJJGBMX_JGBLX and CHJJJGB_JGBBH = CHJJJGBMX_JGBBH and CHJJJGB_JGBQH = CHJJJGBMX_JGBQH "); + SQL.Add(" where CHJJJGBMX_JGBLX = 'YF' "); + SQL.Add(" and CHJJJGBMX_WLID =:pCHJJJGBMX_WLID and CHJJJGBMX_JJPC like :pCHJJJGBMX_JJPC "); + SQL.Add(" and CHJJJGB_KSRQ<=:pRQ and IsNull(CHJJJGB_JSRQ,Convert(DateTime,'9999-12-31'))>=:pRQ "); + SQL.Add(" order by CHJJJGBMX_JGBBH"); + SQL.ParamByName("pCHJJJGBMX_WLID").Value = bjflxx.XLXSBJFL_YFWLID; + SQL.ParamByName("pCHJJJGBMX_JJPC").Value = sYSXLID.PadRight(10, ' ') + cbxYSJDID.SelectedValue.Trim().PadRight(10, ' ') + "%"; + SQL.ParamByName("pRQ").Value = DateTime.Now; + ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + cbxGYSID.SelectedValue = ds.Tables[0].Rows[0][0].ToString().Trim(); + } + } + } + } + + //项目所在地 + protected void cbxKHSZDPRO_OnSelectedIndexChanged(object sender, EventArgs e) + { + if (!IsPostBack)//此处解决列表页直接点编辑触发change的问题 + return; + cbxKHSZDCITY.ClearItems(); + cbxKHSZDCOUNTY.ClearItems(); + cbxKHSZDCOUNTY.SelectedValue = ""; + if (!cbxKHSZDPRO.SelectedValue.Trim().Equals("")) + { + + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add(" select XZQH_XZQHID,XZQH_CITY from XZQH where XZQH_FID = :pFID "); + SQL.Add(" order by XZQH_XZQHID "); + SQL.ParamByName("pFID").Value = cbxKHSZDPRO.SelectedValue.Trim(); + DataSet ds = dberp.OpenDataSet(SQL); + cbxKHSZDCITY.Items.Add(new ListItem("","")); + if (ds.Tables[0].Rows.Count > 0) + { + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + if (!ds.Tables[0].Rows[i]["XZQH_CITY"].ToString().Trim().Equals("")) + { + cbxKHSZDCITY.Items.Add(new ListItem(ds.Tables[0].Rows[i]["XZQH_CITY"].ToString().Trim(), ds.Tables[0].Rows[i]["XZQH_XZQHID"].ToString().Trim())); + } + } + if (cbxKHSZDCITY.Items.Count == 2) + { + cbxKHSZDCITY.SelectedIndex = 1; + cbxKHSZDCITY_OnSelectedIndexChanged(null, null); + } + } + } + else + { + cbxKHSZDCITY.SelectedValue = ""; + } + } + + protected void cbxKHSZDCITY_OnSelectedIndexChanged(object sender, EventArgs e) + { + if (!IsPostBack)//此处解决列表页直接点编辑触发change的问题 + return; + cbxKHSZDCOUNTY.ClearItems(); + if (!cbxKHSZDCITY.SelectedValue.Trim().Equals("")) + { + + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add(" select XZQH_XZQHID,XZQH_COUNTY from XZQH where XZQH_FID = :pFID "); + SQL.Add(" order by XZQH_XZQHID "); + SQL.ParamByName("pFID").Value = cbxKHSZDCITY.SelectedValue.Trim(); + DataSet ds = dberp.OpenDataSet(SQL); + cbxKHSZDCOUNTY.Items.Add(new ListItem("", "")); + if (ds.Tables[0].Rows.Count > 0) + { + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + if (!ds.Tables[0].Rows[i]["XZQH_COUNTY"].ToString().Trim().Equals("")) + { + cbxKHSZDCOUNTY.Items.Add(new ListItem(ds.Tables[0].Rows[i]["XZQH_COUNTY"].ToString().Trim(), ds.Tables[0].Rows[i]["XZQH_XZQHID"].ToString().Trim())); + } + } + if (cbxKHSZDCOUNTY.Items.Count == 2) + { + cbxKHSZDCOUNTY.SelectedIndex = 1; + } + } + } + else + { + cbxKHSZDCOUNTY.SelectedValue = ""; + } + } + + protected void chkJZBJHS_CheckedChanged(object sender, EventArgs e) + { + if (chkJZBJHS.Checked) + txtJZBJHS.Text = "Y"; + else + txtJZBJHS.Text = "N"; + + if (ControlState == TControlState.ctsInsert || ControlState == TControlState.ctsCopy) + { + Dictionary dicTJYZID = XLBJDUtils.GetTJYZIDXX("BJD");//获取YZID对应的TJYZID + Dictionary dicTYZZYZID = XLBJDUtils.GetTYZZYZIDXX("BJD");//获取YZID对应的TYZZYZID + + + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); + string sTZCLHQ = bjflxx.XLXSBJFL_TZCLHQ; + string sTBJCLID = bjflxx.XLXSBJFL_TBJCLID; + string sLBJCLID = bjflxx.XLXSBJFL_LBJCLID; + string sBJDHQLY = bjflxx.XLXSBJFL_BJDHQLY; + + if (txtTJ.Value == 0 || txtLJ.Value == 0) + { + Dictionary dicTLJG = GetTLJByRQ(datBJRQ.Text, cbxBJFLID.SelectedValue.Trim(), chkJZBJHS.Checked, cbxJGBID.SelectedValue.Trim()); + txtTJ.Value = CMISproConvert.StrToFloat(dicTLJG["TJ"], 0); + txtLJ.Value = CMISproConvert.StrToFloat(dicTLJG["LJ"], 0); + } + else + { + double dTZZSL = GetZZSLByBJCLID(sTBJCLID); + double dLZZSL = GetZZSLByBJCLID(sLBJCLID); + if(chkJZBJHS.Checked) + { + txtTJ.Value = NumberUtils.RoundX(txtTJ.Value*(1+dTZZSL/100),2); + txtLJ.Value = NumberUtils.RoundX(txtLJ.Value * (1 + dLZZSL/100), 2); + } + else + { + txtTJ.Value = NumberUtils.RoundX(txtTJ.Value /(1 + dTZZSL/100), 2); + txtLJ.Value = NumberUtils.RoundX(txtLJ.Value /(1 + dLZZSL/100), 2); + } + + } + + List bjdJjYzList = new List(); + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add(" select XLXSTZYZ_YZID,XLXSTZYZ_JJFS from XLXSTZYZ where XLXSTZYZ_JJFS = 'JJ' and " + CMISproDataBase.GetWhereEqual("XLXSTZYZ_YZID", txtBJDYZ.Text)); + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + bjdJjYzList.Add(ds.Tables[0].Rows[0]["XLXSTZYZ_YZID"].ToString().Trim()); + } + + double dSL = string.IsNullOrEmpty((GetOption(100860000, "BJU055"))) ? 0 : (double.Parse((GetOption(100860000, "BJU055")))) / 100.0; + bool IsHSWL = (dSL == 0); + foreach (GridViewRow row in grdXLBJDMX.NewRows) + { + //先调整料价,基价和表价 + string sXLXHID = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XLXHID", row).ToString().Trim(); + string sXLGGID = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XLGGID", row).ToString().Trim(); + string sXLBZID = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XLBZID", row).ToString().Trim(); + string sDYDJID = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_DYDJID", row).ToString().Trim(); + string sJLDW = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_JLDW", row).ToString().Trim(); + string sBJDBJLY = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_BJLY", row).Trim(); + string sWGCPBZ = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_WGCPBZ", row).Trim(); + string sOldJGBBJ = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_JGBBJ", row).Trim(); + string sOldJGBJJ = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_JGBJJ", row).Trim(); + string sOldCLCB = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_CLCB", row).Trim(); + string sOldBJDHQCLCB = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_BJDHQCLCB", row).Trim(); + + Dictionary dicBaseJG = XLBJDUtils.GetBJDMXBaseJG("", datBJRQ.Text.Trim(), chkJZBJHS.Checked, iXSWS, txtTJ.Value.ToString().Trim(), txtLJ.Value.ToString().Trim(), GetOption(100860000, "BJU003"), GetOption(100860000, "BJU018"), + cbxJGBID.SelectedValue.Trim(), txtBJLY.Text.Trim(), txtJGCIDS.Text.Trim(), + cbxBJFLID.SelectedValue.Trim(), sBJDHQLY, sTZCLHQ, sTBJCLID, sLBJCLID, + sXLXHID, sXLGGID, sXLBZID, sDYDJID, sJLDW, sBJDBJLY, sWGCPBZ, sOldJGBBJ, sOldJGBJJ, sOldCLCB, sOldBJDHQCLCB); + + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JGBBJ", dicBaseJG["XLXSBJDMX_JGBBJ"].ToString()); + if (!sBJDBJLY.Equals("SSJGBBJ") && !sBJDBJLY.Equals("Y") && XLBJDUtils.IsJGEJGB(cbxJGBID.SelectedValue.Trim())) + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JGBBJTZ", "N"); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JGBBJGXSJ", MISproUtils.GetServerTime().ToString().Trim()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JGBJJ", dicBaseJG["XLXSBJDMX_JGBJJ"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_CLCB", dicBaseJG["XLXSBJDMX_CLCB"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_BJDHQCLCB", dicBaseJG["XLXSBJDMX_BJDHQCLCB"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_BJDHQCLCBTZ", "N"); + if (dicBaseJG.ContainsKey("JZ01"))//JEG报价记录价格表调价因子值 + { + grdXLBJDMX.EditNewRow(row.RowIndex, "UpdJJYZList", dicBaseJG["JZ01"].ToString().Trim() + "|" + dicBaseJG["JZ02"].ToString().Trim() + "|" + dicBaseJG["JZ03"].ToString().Trim() + + "|" + dicBaseJG["JZ04"].ToString().Trim() + "|" + dicBaseJG["JZ05"].ToString().Trim() + "|" + dicBaseJG["JZ06"].ToString().Trim() + + "|" + dicBaseJG["JZ07"].ToString().Trim() + "|" + dicBaseJG["JZ08"].ToString().Trim() + "|" + dicBaseJG["JZ09"].ToString().Trim() + + "|" + dicBaseJG["JZ10"].ToString().Trim() + "|0"); + } + else + { + grdXLBJDMX.EditNewRow(row.RowIndex, "UpdJJYZList", ""); + } + + Dictionary dicCalcRow = CalcRow(row, dicTJYZID, dicTYZZYZID, bjflxx.XLXSBJFL_CPBJMRXSWS); + + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_BJXJKD", dicCalcRow["XLXSBJDMX_BJXJKD"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_BJXJJJ", dicCalcRow["XLXSBJDMX_BJXJJJ"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XJBJCE", dicCalcRow["XJBJCE"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_TZQCPBJ", dicCalcRow["XLXSBJDMX_TZQCPBJ"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_TZCPBJ", dicCalcRow["XLXSBJDMX_TZCPBJ"].ToString("F6")); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_CPBJ", dicCalcRow["XLXSBJDMX_CPBJ"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_BJLY", "JGBBJ"); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_BJTJCZ", "TJYZJS"); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_TZQBJJE", dicCalcRow["XLXSBJDMX_TZQBJJE"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_BJJE", dicCalcRow["XLXSBJDMX_BJJE"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "TZHDJ", dicCalcRow["TZHDJ"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JGBBJJCL", dicCalcRow["XLXSBJDMX_JGBBJJCL"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JGBBJJCE", dicCalcRow["XLXSBJDMX_JGBBJJCE"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_CLCBJCL", dicCalcRow["XLXSBJDMX_CLCBJCL"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JGBBJLJJCL", dicCalcRow["XLXSBJDMX_JGBBJLJJCL"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_CLCBJCLSDBZ", "N"); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_TZQZDXJ", dicCalcRow["XLXSBJDMX_TZQZDXJ"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_TZZDXJ", dicCalcRow["XLXSBJDMX_TZZDXJ"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_ZDXJ", dicCalcRow["XLXSBJDMX_ZDXJ"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JSJG", dicCalcRow["XLXSBJDMX_JSJG"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JSJJE", dicCalcRow["XLXSBJDMX_JSJJE"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JSJJCL", dicCalcRow["XLXSBJDMX_JSJJCL"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_ZDXJJCL", dicCalcRow["XLXSBJDMX_ZDXJJCL"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_ZDXJJE", dicCalcRow["XLXSBJDMX_ZDXJJE"].ToString()); + if (!IsHSWL) + { + foreach (string sYZID in bjdJjYzList) + { + string[] arr = sYZID.Split('|'); + if (arr.Length == 0) continue; + if (!chkJZBJHS.Checked) + { + grdXLBJDMX.EditNewRow(row.RowIndex, "TZYZ_" + sYZID.Split('|')[0], (NumberUtils.RoundX(double.Parse(grdXLBJDMX.GetValueByFieldName("TZYZ_" + sYZID.Split('|')[0], row).ToString().Trim()) / (1 + dSL), 6)).ToString()); + } + else + { + grdXLBJDMX.EditNewRow(row.RowIndex, "TZYZ_" + sYZID.Split('|')[0], (NumberUtils.RoundX(double.Parse(grdXLBJDMX.GetValueByFieldName("TZYZ_" + sYZID.Split('|')[0], row).ToString().Trim()) * (1 + dSL), 6)).ToString()); + } + } + } + } + grdXLBJDMX.CommitEdit(); + } + + } + protected void cbxXSJLMC_SelectedIndexChanged(object sender, EventArgs e) + { + if (GetOption(100860000, "BJU070").Trim() == "Y") + { + cbxTXYMC.Config["XSJLMC"] = cbxXSJLMC.SelectedValue.Trim(); + cbxTXYMC.Config["BMID"] = GetOption(100860000, "HJU006").Trim(); + if (sender != null) + { + cbxTXYMC.Text = ""; + } + return; + } + + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + + if (cbxXSJLMC.SelectedValue.Trim().Equals("")) + { + sql.Clear(); + sql.Add("select XSY_TXY,XSY_ZJM,XSY_SJ from XSY where isnull(XSY_TYBZ,' ')<>'Y' "); + if (!string.IsNullOrEmpty(GetOption(100860000, "HJU006").Trim())) + { + sql.Add(" and (" + CMISproDataBase.GetWhereEqual("XSY_BMID", GetOption(100860000, "HJU006").Trim())); + sql.Add(" or isnull(XSY_BMID, ' ') = ' ')"); + } + sql.Add(" order by XSY_ZJM,XSY_TXY"); + DataSet ds = dberp.OpenDataSet(sql); + cbxTXY.ClearItems(); + if (ds.Tables[0].Rows.Count > 0) + { + cbxTXY.Items.Add(new ListItem("", "")); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + string sTXY = ds.Tables[0].Rows[i][0].ToString().Trim(); + string sZJM = ds.Tables[0].Rows[i][1].ToString().Trim(); + string sSJ = ds.Tables[0].Rows[i][2].ToString().Trim(); + if (sZJM.Equals("")) + sZJM = CMISproConvert.ConvertZJM(sTXY).Trim(); + cbxTXY.Items.Add(new ListItem(sZJM + "|" + sTXY+"|"+sSJ, sTXY)); + } + } + } + else + { + sql.Clear(); + sql.Add("select XSY_TXY,XSY_ZJM,XSY_SJ from XSY left join (select XSY_TXY as SJXSYMC, XSY_XSYBH as XSYBH from XSY) SJ on SJ.XSYBH=XSY_SJXSYBH"); + sql.Add(" where isnull(XSY_TYBZ,' ')<>'Y' and SJ.SJXSYMC=:pSJXSYMC "); + if (!string.IsNullOrEmpty(GetOption(100860000, "HJU006").Trim())) + { + sql.Add(" and (" + CMISproDataBase.GetWhereEqual("XSY_BMID", GetOption(100860000, "HJU006").Trim())); + sql.Add(" or isnull(XSY_BMID, ' ') = ' ')"); + } + sql.Add(" order by XSY_ZJM,XSY_TXY"); + sql.ParamByName("pSJXSYMC").Value = cbxXSJLMC.SelectedValue.Trim(); + DataSet ds = dberp.OpenDataSet(sql); + cbxTXY.ClearItems(); + if (ds.Tables[0].Rows.Count > 0) + { + cbxTXY.Items.Add(new ListItem("", "")); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + string sTXY = ds.Tables[0].Rows[i][0].ToString().Trim(); + string sZJM = ds.Tables[0].Rows[i][1].ToString().Trim(); + string sSJ = ds.Tables[0].Rows[i][2].ToString().Trim(); + if (sZJM.Equals("")) + sZJM = CMISproConvert.ConvertZJM(sTXY).Trim(); + cbxTXY.Items.Add(new ListItem(sZJM + "|" + sTXY+"|"+sSJ, sTXY)); + } + } + } + } + + protected void grdXLBJDMX_GetDropDownColumnItems(object sender, GetDropDownColumnItemsEventArgs e) + { + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(e.MasterDataSet["cbxBJFLID"].Trim()); + string sHidJSLMList = XLBJDUtils.GetHidJSLMList(e.MasterDataSet["cbxBJFLID"].Trim(), IsXJY.Value.Equals("Y"), IsSJY.Value.Equals("Y"), IsHJY.Value.Equals("Y")); + //为避免多次查询,使用txtBJDYZ记录报价单因子的加价方式 + if (e.MasterDataSet["txtBJDYZ"].Trim().Equals("")) + { + Dictionary dicBJDYZ = XLBJDUtils.GetBJDYZ(e.MasterDataSet["cbxBJFLID"].Trim()); + e.MasterDataSet["txtBJDYZ"] = dicBJDYZ["BJDYZ"]; + e.MasterDataSet["txtTJYSList"] = dicBJDYZ["TJYSList"]; + e.MasterDataSet["txtYZWPIDList"] = dicBJDYZ["YZWPIDList"]; + e.MasterDataSet["txtReadOnlyYZ"] = dicBJDYZ["ReadOnlyYZ"]; + e.MasterDataSet["txtZDWPIDList"] = dicBJDYZ["ZDWPIDList"]; + e.MasterDataSet["txtPFYZID"] = dicBJDYZ["PFYZ"]; + e.MasterDataSet["txtBZPFYZID"] = dicBJDYZ["BZPFYZ"]; + e.MasterDataSet["txtBTYZ"] = dicBJDYZ["BTYZ"]; + e.MasterDataSet["txtXSJEYZ"] = dicBJDYZ["XSJEYZ"]; + + + e.MasterDataSet["txtTZJGBBJ"] = bjflxx.XLXSBJFL_TZJGBBJ; + e.MasterDataSet["txtTZBJDHQLJ"] = bjflxx.XLXSBJFL_TZBJDHQLJ; + + + } + InitGrid(e.MasterDataSet["cbxBJFLID"].Trim(), iXSWS,e.MasterDataSet["txtBJDYZ"].Trim(), e.MasterDataSet["txtYZWPIDList"].Trim(), + e.MasterDataSet["txtTZJGBBJ"].Trim(), e.MasterDataSet["txtTZBJDHQLJ"].Trim(), + e.MasterDataSet["txtReadOnlyYZ"].Trim(), e.MasterDataSet["txtZDWPIDList"].Trim(), + e.MasterDataSet["txtPFYZID"].Trim(), sHidJSLMList); + + string sXLXHID = e.RowData["XLXSBJDMX_XLXHID"].ToString().Trim(); + string sXLGGID = e.RowData["XLXSBJDMX_XLGGID"].ToString().Trim(); + string sXLBZID = e.RowData["XLXSBJDMX_XLBZID"].ToString().Trim().Split('|')[0].Trim(); + string sDYDJID = e.RowData["XLXSBJDMX_DYDJID"].ToString().Trim().Split('|')[0].Trim(); + string sJGFID = XLBJDUtils.GetJGFID(e.MasterDataSet["datBJRQ"].Trim()); + string sBJDID = e.MasterDataSet["txtBJDID"].Trim(); + //标记使用材料清单还是价格获取的ds 1表示材料清单 2表示价格表明细 + int flag = 0; + List lstValue = new List(); + lstValue.Clear(); + if (e.EventFieldName == "XLXSBJDMX_XLBZID") + { + DataSet ds = new DataSet(); + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + string sBJU044 = GetOption(100860000, "BJU044"); + string sGCBZSQL = string.Empty; + if (!sBJU044.Equals("")&&!sXLXHID.Equals("") && !sXLGGID.Equals("")) + { + List GCBZLists = new List(); + sql.Clear(); + sql.Add(@"select distinct XLXSCLQD_XLBZID,XLGYFL_GCLIST from XLXSCLQD + left join XLJGCZBML on XLXSCLQD_JGCZBID=XLJGCZBML_JGCZBID + left join XLGYFL on XLGYFL_GYFLBM=XLJGCZBML_GYFLBM + where XLXSCLQD_WPID='ZZZZ' and XLXSCLQD_XLXHID=:pXLXHID and XLXSCLQD_XLGGID=:pXLGGID "); + sql.ParamByName("pXLXHID").Value = sXLXHID; + sql.ParamByName("pXLGGID").Value = sXLGGID; + DataSet dsGCBZ = dberp.OpenDataSet(sql); + for (int i = 0; i < dsGCBZ.Tables[0].Rows.Count; i++) + { + string sGCXLBZID = dsGCBZ.Tables[0].Rows[i]["XLXSCLQD_XLBZID"].ToString().Trim(); + string sGCList = dsGCBZ.Tables[0].Rows[i]["XLGYFL_GCLIST"].ToString().Trim(); + if (sGCList.Equals("") || (","+sGCList+",").Contains(","+sBJU044+",")) + { + if (!GCBZLists.Contains(sGCXLBZID)) + { + GCBZLists.Add(sGCXLBZID); + if (sGCBZSQL.Equals("")) + sGCBZSQL += string.Format("'{0}'", sGCXLBZID); + else + sGCBZSQL += string.Format(",'{0}'", sGCXLBZID); + } + } + } + if (!sGCBZSQL.Equals("")) + sGCBZSQL = " and (XLBZ_DZSC='Y' or XLBZ_XLBZID in (" + sGCBZSQL + "))"; + + } + sql.Clear(); + if (!sXLXHID.Equals("") && !sXLGGID.Equals("")) + { + string sJGBID = ""; + sJGBID = e.MasterDataSet["cbxJGBID"].Trim() + "," + e.MasterDataSet["txtJGCIDS"].Trim(); + sJGBID = sJGBID.TrimEnd(','); + if (!sJGFID.Equals("")) + { + if (!sJGBID.Equals("")) + { + sJGBID += "," + sJGFID; + } + else + { + sJGBID = sJGFID; + } + } + //sql.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); + if (bjflxx.XLXSBJFL_BJCPFZJS.Equals("1")) + { + flag = 1; + sql.Clear(); + sql.Add(" select a.XLXSCLQD_XLBZID,a.XLBZ_XLBZLXMC,a.PX from "); + sql.Add(" ( "); + sql.Add(" SELECT DISTINCT XLXSCLQD_XLBZID,XLBZ_XLBZLXMC, "); + sql.Add(" case when XLBZ_DZSC='Y' then (select isnull(MAX(XLBZ_PX),0) from XLBZ where XLBZ_DZSC = 'Y' ) else XLBZ_PX end as XLBZ_PX, "); + sql.Add(" 0 as PX FROM XLXSCLQD"); + sql.Add(" LEFT JOIN XLBZ ON XLBZ_XLBZID = XLXSCLQD_XLBZID "); + sql.Add(" left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSCLQD_XLGGID "); + sql.Add(" WHERE 1=1 and XLXSCLQD_XLXHID=:pXLXHID and XLXSBJXLGGTHB_XLGGIDCH = :pXLGGID and XLXSCLQD_WPID = 'ZZZZ' " + sGCBZSQL); + sql.Add(" and (len(XLBZ_XLBZID) <10 or exists(select 1 from XLXSBJYLZDMX left join XLXSBJYLZD on XLXSBJYLZDMX_SQDH = XLXSBJYLZD_SQDH "); + sql.Add(" where XLXSBJYLZD_BJDID =:pBJDID and XLXSBJYLZDMX_XLBZID = XLBZ_XLBZID))"); + sql.Add(" UNION ALL "); + sql.Add(" SELECT XLBZ_XLBZID,XLBZ_XLBZLXMC,XLBZ_PX,1 as PX "); + sql.Add(" FROM XLBZ"); + sql.Add(" WHERE 1=1 and not exists(select 1 from XLXSCLQD left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSCLQD_XLGGID where XLXSCLQD_XLBZID= XLBZ_XLBZID "); + sql.Add(" and XLXSCLQD_XLXHID=:pXLXHID and XLXSBJXLGGTHB_XLGGIDCH = :pXLGGID and XLXSCLQD_WPID = 'ZZZZ' "); + sql.Add(" ) "); + sql.Add(" and len(XLBZ_XLBZID) <10 " + sGCBZSQL); + sql.Add(" ) a "); + sql.Add(" order by PX,a.XLBZ_PX,a.XLXSCLQD_XLBZID "); + sql.ParamByName("pXLXHID").Value = sXLXHID; + sql.ParamByName("pXLGGID").Value = sXLGGID.Replace('*', '×'); + sql.ParamByName("pBJDID").Value = sBJDID; + ds = dberp.OpenDataSet(sql); + if (ds.Tables[0].Rows.Count > 0) + { + if (ds.Tables[0].Rows[0][2].ToString().Trim().Equals("1")) + { + flag = 2; + sql.Clear(); + sql.Add(" select a.XLXSJGBMX_XLBZID,a.XLBZ_XLBZLXMC,a.PX from "); + sql.Add(" ( "); + sql.Add(" SELECT DISTINCT XLXSJGBMX_XLBZID,XLBZ_XLBZLXMC, "); + sql.Add(" case when XLBZ_DZSC='Y' then (select isnull(MAX(XLBZ_PX),0) from XLBZ where XLBZ_DZSC = 'Y' ) else XLBZ_PX end as XLBZ_PX, "); + sql.Add(" 0 as PX FROM XLXSJGBMX "); + sql.Add(" LEFT JOIN XLXSBJXLGGTHB XLXSBJXLGGTHB_MX1 on XLXSBJXLGGTHB_MX1.XLXSBJXLGGTHB_XLGGID=XLXSJGBMX_XLGGID "); + sql.Add(" LEFT JOIN XLBZ ON XLBZ_XLBZID = XLXSJGBMX_XLBZID "); + sql.Add(" WHERE 1=1 and XLXSJGBMX_XLXHID=:pXLXHID and XLXSBJXLGGTHB_MX1.XLXSBJXLGGTHB_XLGGIDCH = :pXLGGID " + sGCBZSQL); + sql.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); + sql.Add(" and (len(XLBZ_XLBZID) <10 or exists(select 1 from XLXSBJYLZDMX left join XLXSBJYLZD on XLXSBJYLZDMX_SQDH = XLXSBJYLZD_SQDH "); + sql.Add(" where XLXSBJYLZD_BJDID =:pBJDID and XLXSBJYLZDMX_XLBZID = XLBZ_XLBZID))"); + sql.Add(" UNION ALL "); + sql.Add(" SELECT XLBZ_XLBZID,XLBZ_XLBZLXMC,XLBZ_PX, 1 as PX "); + sql.Add(" FROM XLBZ "); + sql.Add(" WHERE 1=1 and not exists(select 1 from XLXSJGBMX left join XLXSBJXLGGTHB XLXSBJXLGGTHB_MX1N on XLXSBJXLGGTHB_MX1N.XLXSBJXLGGTHB_XLGGID=XLXSJGBMX_XLGGID where XLXSJGBMX_XLBZID= XLBZ_XLBZID "); + sql.Add(" and XLXSJGBMX_XLXHID=:pXLXHID and XLXSBJXLGGTHB_MX1N.XLXSBJXLGGTHB_XLGGIDCH = :pXLGGID "); + sql.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); + sql.Add(" ) "); + sql.Add(" and len(XLBZ_XLBZID) <10 " + sGCBZSQL); + sql.Add(" ) a "); + sql.Add(" order by PX,a.XLBZ_PX,a.XLXSJGBMX_XLBZID "); + sql.ParamByName("pXLXHID").Value = sXLXHID; + sql.ParamByName("pXLGGID").Value = sXLGGID.Replace('*', '×'); + sql.ParamByName("pBJDID").Value = sBJDID; + ds = dberp.OpenDataSet(sql); + } + } + } + else + { + flag = 2; + sql.Clear(); + sql.Add(" select a.XLXSJGBMX_XLBZID,a.XLBZ_XLBZLXMC,a.PX from "); + sql.Add(" ( "); + sql.Add(" SELECT DISTINCT XLXSJGBMX_XLBZID,XLBZ_XLBZLXMC, "); + sql.Add(" case when XLBZ_DZSC='Y' then (select isnull(MAX(XLBZ_PX),0) from XLBZ where XLBZ_DZSC = 'Y' ) else XLBZ_PX end as XLBZ_PX, "); + sql.Add(" 0 as PX FROM XLXSJGBMX "); + sql.Add(" LEFT JOIN XLXSBJXLGGTHB XLXSBJXLGGTHB_MX2 on XLXSBJXLGGTHB_MX2.XLXSBJXLGGTHB_XLGGID=XLXSJGBMX_XLGGID "); + sql.Add(" LEFT JOIN XLBZ ON XLBZ_XLBZID = XLXSJGBMX_XLBZID "); + sql.Add(" WHERE 1=1 and XLXSJGBMX_XLXHID=:pXLXHID and XLXSBJXLGGTHB_MX2.XLXSBJXLGGTHB_XLGGIDCH = :pXLGGID " + sGCBZSQL); + sql.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); + sql.Add(" and (len(XLBZ_XLBZID) <10 or exists(select 1 from XLXSBJYLZDMX left join XLXSBJYLZD on XLXSBJYLZDMX_SQDH = XLXSBJYLZD_SQDH "); + sql.Add(" where XLXSBJYLZD_BJDID =:pBJDID and XLXSBJYLZDMX_XLBZID = XLBZ_XLBZID))"); + sql.Add(" UNION ALL "); + sql.Add(" SELECT XLBZ_XLBZID,XLBZ_XLBZLXMC,XLBZ_PX, 1 as PX "); + sql.Add(" FROM XLBZ "); + sql.Add(" WHERE 1=1 and not exists(select 1 from XLXSJGBMX left join XLXSBJXLGGTHB XLXSBJXLGGTHB_MX2N on XLXSBJXLGGTHB_MX2N.XLXSBJXLGGTHB_XLGGID=XLXSJGBMX_XLGGID where XLXSJGBMX_XLBZID= XLBZ_XLBZID "); + sql.Add(" and XLXSJGBMX_XLXHID=:pXLXHID and XLXSBJXLGGTHB_MX2N.XLXSBJXLGGTHB_XLGGIDCH = :pXLGGID "); + sql.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); + sql.Add(" ) "); + sql.Add(" and len(XLBZ_XLBZID) <10 " + sGCBZSQL); + sql.Add(" ) a "); + sql.Add(" order by PX,a.XLBZ_PX,a.XLXSJGBMX_XLBZID "); + sql.ParamByName("pXLXHID").Value = sXLXHID; + sql.ParamByName("pXLGGID").Value = sXLGGID.Replace('*', '×'); + sql.ParamByName("pBJDID").Value = sBJDID; + ds = dberp.OpenDataSet(sql); + if (ds.Tables[0].Rows.Count > 0) + { + if (ds.Tables[0].Rows[0][2].ToString().Trim().Equals("1")) + { + flag = 1; + sql.Clear(); + sql.Add(" select a.XLXSCLQD_XLBZID,a.XLBZ_XLBZLXMC,a.PX from "); + sql.Add(" ( "); + sql.Add(" SELECT DISTINCT XLXSCLQD_XLBZID,XLBZ_XLBZLXMC, "); + sql.Add(" case when XLBZ_DZSC='Y' then (select isnull(MAX(XLBZ_PX),0) from XLBZ where XLBZ_DZSC = 'Y' ) else XLBZ_PX end as XLBZ_PX, "); + sql.Add(" 0 as PX FROM XLXSCLQD"); + sql.Add(" LEFT JOIN XLBZ ON XLBZ_XLBZID = XLXSCLQD_XLBZID "); + sql.Add(" left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSCLQD_XLGGID "); + sql.Add(" WHERE 1=1 and XLXSCLQD_XLXHID=:pXLXHID and XLXSBJXLGGTHB_XLGGIDCH = :pXLGGID and XLXSCLQD_WPID = 'ZZZZ' " + sGCBZSQL); + sql.Add(" and (len(XLBZ_XLBZID) <10 or exists(select 1 from XLXSBJYLZDMX left join XLXSBJYLZD on XLXSBJYLZDMX_SQDH = XLXSBJYLZD_SQDH "); + sql.Add(" where XLXSBJYLZD_BJDID =:pBJDID and XLXSBJYLZDMX_XLBZID = XLBZ_XLBZID))"); + sql.Add(" UNION ALL "); + sql.Add(" SELECT XLBZ_XLBZID,XLBZ_XLBZLXMC,XLBZ_PX, 1 as PX "); + sql.Add(" FROM XLBZ "); + sql.Add(" WHERE 1=1 and not exists(select 1 from XLXSCLQD left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSCLQD_XLGGID where XLXSCLQD_XLBZID= XLBZ_XLBZID "); + sql.Add(" and XLXSCLQD_XLXHID=:pXLXHID and XLXSBJXLGGTHB_XLGGIDCH = :pXLGGID and XLXSCLQD_WPID = 'ZZZZ' "); + sql.Add(" ) "); + sql.Add(" and len(XLBZ_XLBZID) <10 " + sGCBZSQL); + sql.Add(" ) a "); + sql.Add(" order by PX,a.XLBZ_PX,a.XLXSCLQD_XLBZID "); + sql.ParamByName("pXLXHID").Value = sXLXHID; + sql.ParamByName("pXLGGID").Value = sXLGGID.Replace('*', '×'); + sql.ParamByName("pBJDID").Value = sBJDID; + ds = dberp.OpenDataSet(sql); + } + } + } + e.DropDownItems.Clear(); + if (ds.Tables[0].Rows.Count > 0) + { + //若有102579008模块权限则增加空选项:102579008|报价材料用量 + if (CheckModule("102579008")) + { + e.DropDownItems.Add(new ListItem("", "")); + } + //1表示材料清单 2表示价格表明细 + if (!sDYDJID.Equals("")) + { + if (1 == flag) + { + lstValue = GetBJCPValue_XLXSCLQDorXLXSJGBMX(sXLXHID, sXLGGID, sDYDJID, sJGBID, "XLXSCLQD_DYDJID"); + } + else if (2 == flag) + { + lstValue = GetBJCPValue_XLXSCLQDorXLXSJGBMX(sXLXHID, sXLGGID, sDYDJID, sJGBID, "XLXSJGBMX_DYDJID"); + } + } + flag = 0; + if (lstValue.Count == 0) + { + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + if (ds.Tables[0].Rows[i][2].ToString().Trim().Equals("0")) + { + e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i][0].ToString().Trim() + "|" + ds.Tables[0].Rows[i][1].ToString().Trim() + "(*)", ds.Tables[0].Rows[i][0].ToString().Trim())); + } + else + { + e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i][0].ToString().Trim() + "|" + ds.Tables[0].Rows[i][1].ToString().Trim(), ds.Tables[0].Rows[i][0].ToString().Trim())); + } + } + } + else + { + //第一轮循环判断是不是0的都是lst中 + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + if (ds.Tables[0].Rows[i][2].ToString().Trim().Equals("0")) + { + if (!lstValue.Contains(ds.Tables[0].Rows[i][0].ToString().Trim())) + { + flag = 3; + break; + } + } + } + if (3 == flag) + { + //第一轮循环添加** + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + if (ds.Tables[0].Rows[i][2].ToString().Trim().Equals("0")) + { + if (lstValue.Contains(ds.Tables[0].Rows[i][0].ToString().Trim())) + { + e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i][0].ToString().Trim() + "|" + ds.Tables[0].Rows[i][1].ToString().Trim() + "(**)", ds.Tables[0].Rows[i][0].ToString().Trim())); + } + } + } + //第二轮循环添加* + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + if (ds.Tables[0].Rows[i][2].ToString().Trim().Equals("0")) + { + if (!lstValue.Contains(ds.Tables[0].Rows[i][0].ToString().Trim())) + { + e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i][0].ToString().Trim() + "|" + ds.Tables[0].Rows[i][1].ToString().Trim() + "(*)", ds.Tables[0].Rows[i][0].ToString().Trim())); + } + } + else + { + e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i][0].ToString().Trim() + "|" + ds.Tables[0].Rows[i][1].ToString().Trim(), ds.Tables[0].Rows[i][0].ToString().Trim())); + } + } + } + else + { + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + if (ds.Tables[0].Rows[i][2].ToString().Trim().Equals("0")) + { + e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i][0].ToString().Trim() + "|" + ds.Tables[0].Rows[i][1].ToString().Trim() + "(*)", ds.Tables[0].Rows[i][0].ToString().Trim())); + } + else + { + e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i][0].ToString().Trim() + "|" + ds.Tables[0].Rows[i][1].ToString().Trim(), ds.Tables[0].Rows[i][0].ToString().Trim())); + } + } + } + + + } + } + } + else + { + sql.Clear(); + sql.Add(" select XLBZ_XLBZID,XLBZ_XLBZLXMC, "); + sql.Add(" case when XLBZ_DZSC='Y' then (select isnull(MAX(XLBZ_PX),0) from XLBZ where XLBZ_DZSC = 'Y' ) else XLBZ_PX end as XLBZ_PX "); + sql.Add(" from XLBZ "); + sql.Add(" where 1=1 and (len(XLBZ_XLBZID) <10 or exists(select 1 from XLXSBJYLZDMX left join XLXSBJYLZD on XLXSBJYLZDMX_SQDH = XLXSBJYLZD_SQDH "); + sql.Add(" where XLXSBJYLZD_BJDID =:pBJDID and XLXSBJYLZDMX_XLBZID = XLBZ_XLBZID))"); + sql.Add(" order by XLBZ_DZSC,XLBZ_PX,XLBZ_XLBZID"); + sql.ParamByName("pBJDID").Value = sBJDID; + ds = dberp.OpenDataSet(sql); + e.DropDownItems.Clear(); + if (ds.Tables[0].Rows.Count > 0) + { + //若有102579008模块权限则增加空选项:102579008|报价材料用量 + if (CheckModule("102579008")) + { + e.DropDownItems.Add(new ListItem("", "")); + } + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i]["XLBZ_XLBZID"].ToString().Trim() + '|' + ds.Tables[0].Rows[i]["XLBZ_XLBZLXMC"].ToString().Trim(), ds.Tables[0].Rows[i]["XLBZ_XLBZID"].ToString().Trim())); + } + } + } + } + if (e.EventFieldName == "XLXSBJDMX_DYDJID") + { + DataSet ds = new DataSet(); ; + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + + if (!sXLXHID.Equals("") && !sXLGGID.Equals("")) + { + string sJGBID = ""; + sJGBID = e.MasterDataSet["cbxJGBID"].Trim() + "," + e.MasterDataSet["txtJGCIDS"].Trim(); + sJGBID = sJGBID.TrimEnd(','); + if (!sJGFID.Equals("")) + { + if (!sJGBID.Equals("")) + { + sJGBID += "," + sJGFID; + } + else + { + sJGBID = sJGFID; + } + } + //sql.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); + if (bjflxx.XLXSBJFL_BJCPFZJS.Equals("1")) + { + flag = 1; + sql.Clear(); + sql.Add(" select a.XLXSCLQD_DYDJID,a.XLDYDJB_XH,a.PX from "); + sql.Add(" ( "); + sql.Add(" SELECT DISTINCT XLXSCLQD_DYDJID,XLDYDJB_XH,0 AS PX FROM XLXSCLQD "); + sql.Add(" LEFT JOIN XLDYDJB ON XLDYDJB_DYDJID = XLXSCLQD_DYDJID "); + sql.Add(" left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSCLQD_XLGGID "); + sql.Add(" WHERE 1=1 and XLXSCLQD_WPID = 'ZZZZ' "); + sql.Add(" and XLXSCLQD_XLXHID=:pXLXHID and XLXSBJXLGGTHB_XLGGIDCH = :pXLGGID "); + sql.Add(" UNION ALL "); + sql.Add(" SELECT distinct XLDYDJB_DYDJID, XLDYDJB_XH,1 AS PX FROM XLDYDJB "); + sql.Add(" WHERE 1=1 and isnull(XLDYDJB_TYBZ,' ')<>'Y' "); + sql.Add(" and not exists(select 1 from XLXSCLQD left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSCLQD_XLGGID where XLXSCLQD_DYDJID= XLDYDJB_DYDJID "); + sql.Add(" and XLXSCLQD_WPID = 'ZZZZ'"); + sql.Add(" and XLXSCLQD_XLXHID=:pXLXHID and XLXSBJXLGGTHB_XLGGIDCH = :pXLGGID "); + sql.Add(" ) "); + sql.Add(" ) a "); + sql.Add(" ORDER BY PX,XLDYDJB_XH "); + sql.ParamByName("pXLXHID").Value = sXLXHID; + sql.ParamByName("pXLGGID").Value = sXLGGID.Replace('*', '×'); + ds = dberp.OpenDataSet(sql); + if (ds.Tables[0].Rows.Count > 0) + { + if (ds.Tables[0].Rows[0][2].ToString().Trim().Equals("1")) + { + flag = 2; + sql.Clear(); + sql.Add(" select a.XLXSJGBMX_DYDJID,a.XLDYDJB_XH,a.PX from "); + sql.Add(" ( "); + sql.Add(" SELECT DISTINCT XLXSJGBMX_DYDJID,XLDYDJB_XH,0 AS PX FROM XLXSJGBMX "); + sql.Add(" LEFT JOIN XLXSBJXLGGTHB XLXSBJXLGGTHB_MX3 on XLXSBJXLGGTHB_MX3.XLXSBJXLGGTHB_XLGGID=XLXSJGBMX_XLGGID "); + sql.Add(" LEFT JOIN XLDYDJB ON XLDYDJB_DYDJID = XLXSJGBMX_DYDJID "); + sql.Add(" WHERE 1=1 "); + sql.Add(" and XLXSJGBMX_XLXHID= :pXLXHID and XLXSBJXLGGTHB_MX3.XLXSBJXLGGTHB_XLGGIDCH = :pXLGGID"); + sql.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); + sql.Add(" UNION ALL "); + sql.Add(" SELECT distinct XLDYDJB_DYDJID, XLDYDJB_XH,1 AS PX FROM XLDYDJB "); + sql.Add(" WHERE 1=1 and isnull(XLDYDJB_TYBZ,' ')<>'Y' "); + sql.Add(" and not exists(select 1 from XLXSJGBMX left join XLXSBJXLGGTHB XLXSBJXLGGTHB_MX3N on XLXSBJXLGGTHB_MX3N.XLXSBJXLGGTHB_XLGGID=XLXSJGBMX_XLGGID where XLXSJGBMX_DYDJID= XLDYDJB_DYDJID "); + sql.Add(" and XLXSJGBMX_XLXHID=:pXLXHID and XLXSBJXLGGTHB_MX3N.XLXSBJXLGGTHB_XLGGIDCH = :pXLGGID "); + sql.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); + sql.Add(" ) "); + sql.Add(" ) a "); + sql.Add(" ORDER BY PX,XLDYDJB_XH "); + sql.ParamByName("pXLXHID").Value = sXLXHID; + sql.ParamByName("pXLGGID").Value = sXLGGID.Replace('*', '×'); + ds = dberp.OpenDataSet(sql); + } + } + } + else + { + flag = 2; + sql.Clear(); + sql.Add(" select a.XLXSJGBMX_DYDJID,a.XLDYDJB_XH,a.PX from "); + sql.Add(" ( "); + sql.Add(" SELECT DISTINCT XLXSJGBMX_DYDJID,XLDYDJB_XH,0 AS PX FROM XLXSJGBMX "); + sql.Add(" LEFT JOIN XLXSBJXLGGTHB XLXSBJXLGGTHB_MX4 on XLXSBJXLGGTHB_MX4.XLXSBJXLGGTHB_XLGGID=XLXSJGBMX_XLGGID "); + sql.Add(" LEFT JOIN XLDYDJB ON XLDYDJB_DYDJID = XLXSJGBMX_DYDJID "); + sql.Add(" WHERE 1=1 "); + sql.Add(" and XLXSJGBMX_XLXHID= :pXLXHID and XLXSBJXLGGTHB_MX4.XLXSBJXLGGTHB_XLGGIDCH = :pXLGGID"); + sql.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); + sql.Add(" UNION ALL "); + sql.Add(" SELECT distinct XLDYDJB_DYDJID, XLDYDJB_XH,1 AS PX FROM XLDYDJB "); + sql.Add(" WHERE 1=1 and isnull(XLDYDJB_TYBZ,' ')<>'Y' "); + sql.Add(" and not exists(select 1 from XLXSJGBMX left join XLXSBJXLGGTHB XLXSBJXLGGTHB_MX4N on XLXSBJXLGGTHB_MX4N.XLXSBJXLGGTHB_XLGGID=XLXSJGBMX_XLGGID where XLXSJGBMX_DYDJID= XLDYDJB_DYDJID "); + sql.Add(" and XLXSJGBMX_XLXHID=:pXLXHID and XLXSBJXLGGTHB_MX4N.XLXSBJXLGGTHB_XLGGIDCH = :pXLGGID "); + sql.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); + sql.Add(" ) "); + sql.Add(" ) a "); + sql.Add(" ORDER BY PX,XLDYDJB_XH "); + sql.ParamByName("pXLXHID").Value = sXLXHID; + sql.ParamByName("pXLGGID").Value = sXLGGID.Replace('*', '×'); + ds = dberp.OpenDataSet(sql); + if (ds.Tables[0].Rows.Count > 0) + { + if (ds.Tables[0].Rows[0][2].ToString().Trim().Equals("1")) + { + flag = 1; + sql.Clear(); + sql.Add(" select a.XLXSCLQD_DYDJID,a.XLDYDJB_XH,a.PX from "); + sql.Add(" ( "); + sql.Add(" SELECT DISTINCT XLXSCLQD_DYDJID,XLDYDJB_XH,0 AS PX FROM XLXSCLQD "); + sql.Add(" LEFT JOIN XLDYDJB ON XLDYDJB_DYDJID = XLXSCLQD_DYDJID "); + sql.Add(" left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSCLQD_XLGGID "); + sql.Add(" WHERE 1=1 and XLXSCLQD_WPID = 'ZZZZ' "); + sql.Add(" and XLXSCLQD_XLXHID=:pXLXHID and XLXSBJXLGGTHB_XLGGIDCH = :pXLGGID "); + sql.Add(" UNION ALL "); + sql.Add(" SELECT distinct XLDYDJB_DYDJID, XLDYDJB_XH,1 AS PX FROM XLDYDJB "); + sql.Add(" WHERE 1=1 and isnull(XLDYDJB_TYBZ,' ')<>'Y' "); + sql.Add(" and not exists(select 1 from XLXSCLQD left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSCLQD_XLGGID where XLXSCLQD_DYDJID= XLDYDJB_DYDJID "); + sql.Add(" and XLXSCLQD_WPID = 'ZZZZ'"); + sql.Add(" and XLXSCLQD_XLXHID=:pXLXHID and XLXSBJXLGGTHB_XLGGIDCH = :pXLGGID "); + sql.Add(" ) "); + sql.Add(" ) a "); + sql.Add(" ORDER BY PX,XLDYDJB_XH "); + sql.ParamByName("pXLXHID").Value = sXLXHID; + sql.ParamByName("pXLGGID").Value = sXLGGID.Replace('*', '×'); + ds = dberp.OpenDataSet(sql); + } + } + } + if (ds.Tables[0].Rows.Count > 0) + { + //1表示材料清单 2表示价格表明细 + if (!sXLBZID.Equals("")) + { + if (1 == flag) + { + lstValue = GetBJCPValue_XLXSCLQDorXLXSJGBMX(sXLXHID, sXLGGID, sXLBZID, sJGBID, "XLXSCLQD_XLBZID"); + } + else if (2 == flag) + { + lstValue = GetBJCPValue_XLXSCLQDorXLXSJGBMX(sXLXHID, sXLGGID, sXLBZID, sJGBID, "XLXSJGBMX_XLBZID"); + } + } + if (lstValue.Count == 0) + { + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + if (ds.Tables[0].Rows[i][2].ToString().Trim().Equals("0")) + { + e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i][0].ToString().Trim() + "(*)", ds.Tables[0].Rows[i][0].ToString().Trim())); + } + else + { + e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i][0].ToString().Trim(), ds.Tables[0].Rows[i][0].ToString().Trim())); + } + } + } + else + { + //第一轮循环判断是不是0的都是lst中 + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + if (ds.Tables[0].Rows[i][2].ToString().Trim().Equals("0")) + { + if (!lstValue.Contains(ds.Tables[0].Rows[i][0].ToString().Trim())) + { + flag = 3; + break; + } + } + } + if (3 == flag) + { + //第一轮循环添加** + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + if (ds.Tables[0].Rows[i][2].ToString().Trim().Equals("0")) + { + if (lstValue.Contains(ds.Tables[0].Rows[i][0].ToString().Trim())) + { + e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i][0].ToString().Trim() + "(**)", ds.Tables[0].Rows[i][0].ToString().Trim())); + } + } + } + //第二轮循环添加* + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + if (ds.Tables[0].Rows[i][2].ToString().Trim().Equals("0")) + { + if (!lstValue.Contains(ds.Tables[0].Rows[i][0].ToString().Trim())) + { + e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i][0].ToString().Trim() + "(*)", ds.Tables[0].Rows[i][0].ToString().Trim())); + } + } + else + { + e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i][0].ToString().Trim(), ds.Tables[0].Rows[i][0].ToString().Trim())); + } + } + } + else + { + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + if (ds.Tables[0].Rows[i][2].ToString().Trim().Equals("0")) + { + e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i][0].ToString().Trim() + "(*)", ds.Tables[0].Rows[i][0].ToString().Trim())); + } + else + { + e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i][0].ToString().Trim(), ds.Tables[0].Rows[i][0].ToString().Trim())); + } + } + } + } + } + } + else + { + sql.Clear(); + sql.Add(" select distinct XLDYDJB_DYDJID,XLDYDJB_XH from XLDYDJB where isnull(XLDYDJB_TYBZ,' ')<>'Y' order by XLDYDJB_XH "); + ds = dberp.OpenDataSet(sql); + if (ds.Tables[0].Rows.Count > 0) + { + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i]["XLDYDJB_DYDJID"].ToString().Trim(), ds.Tables[0].Rows[i]["XLDYDJB_DYDJID"].ToString().Trim())); + } + } + } + + if (e.EventFieldName == "XLXSBJDMX_JLDW") + { + lstValue.Clear(); + e.DropDownItems.Clear(); + + string sJLDWList = XLBJDUtils.GetJLDWS(); + string[] sTempJCJLDW = sJLDWList.Split(new Char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); + for (int m = 0; m < sTempJCJLDW.Length; m++) + { + lstValue.Add(sTempJCJLDW[m]); + } + if (lstValue.Contains("M")) + { + e.DropDownItems.Add(new ListItem("M")); + } + if (lstValue.Contains("Km")) + { + e.DropDownItems.Add(new ListItem("Km")); + } + if (lstValue.Contains("米")) + { + e.DropDownItems.Add(new ListItem("米")); + } + if (lstValue.Contains("千米")) + { + e.DropDownItems.Add(new ListItem("千米")); + } + foreach (string sJLDW in lstValue) + { + if (!sJLDW.Equals("M") && !sJLDW.Equals("Km") && !sJLDW.Equals("米") && !sJLDW.Equals("千米")) + { + e.DropDownItems.Add(new ListItem(sJLDW)); + } + } + + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + sql.Clear(); + sql.Add(" select distinct XLXSJGBMX_JLDW from XLXSJGBMX "); + sql.Add(" where 1=1 and XLXSJGBMX_JGBID = :pJGBID"); + sql.ParamByName("pJGBID").Value = e.MasterDataSet["cbxJGBID"].Trim(); + DataSet ds = dberp.OpenDataSet(sql); + if (ds.Tables[0].Rows.Count > 0) + { + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + string sJLDW = ds.Tables[0].Rows[i]["XLXSJGBMX_JLDW"].ToString().Trim(); + if (lstValue.Contains(sJLDW)) + { + continue; + } + else + { + e.DropDownItems.Add(new ListItem(sJLDW)); + } + } + } + } + } + + protected void grdXLBJDMX_GetDropListColumnItems(object sender, GetDropListColumnItemsEventArgs e) + { + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(e.MasterDataSet["cbxBJFLID"].Trim()); + string sHidJSLMList = XLBJDUtils.GetHidJSLMList(e.MasterDataSet["cbxBJFLID"].Trim(), IsXJY.Value.Equals("Y"), IsSJY.Value.Equals("Y"), IsHJY.Value.Equals("Y")); + //为避免多次查询,使用txtBJDYZ记录报价单因子的加价方式 + if (e.MasterDataSet["txtBJDYZ"].Trim().Equals("")) + { + Dictionary dicBJDYZ = XLBJDUtils.GetBJDYZ(e.MasterDataSet["cbxBJFLID"].Trim()); + e.MasterDataSet["txtBJDYZ"] = dicBJDYZ["BJDYZ"]; + e.MasterDataSet["txtTJYSList"] = dicBJDYZ["TJYSList"]; + e.MasterDataSet["txtYZWPIDList"] = dicBJDYZ["YZWPIDList"]; + e.MasterDataSet["txtReadOnlyYZ"] = dicBJDYZ["ReadOnlyYZ"]; + e.MasterDataSet["txtZDWPIDList"] = dicBJDYZ["ZDWPIDList"]; + e.MasterDataSet["txtPFYZID"] = dicBJDYZ["PFYZ"]; + e.MasterDataSet["txtBZPFYZID"] = dicBJDYZ["BZPFYZ"]; + e.MasterDataSet["txtBTYZ"] = dicBJDYZ["BTYZ"]; + e.MasterDataSet["txtXSJEYZ"] = dicBJDYZ["XSJEYZ"]; + e.MasterDataSet["txtTZJGBBJ"] = bjflxx.XLXSBJFL_TZJGBBJ; + e.MasterDataSet["txtTZBJDHQLJ"] = bjflxx.XLXSBJFL_TZBJDHQLJ; + } + + + InitGrid(e.MasterDataSet["cbxBJFLID"].Trim(), iXSWS, e.MasterDataSet["txtBJDYZ"].Trim(), e.MasterDataSet["txtYZWPIDList"].Trim(), + e.MasterDataSet["txtTZJGBBJ"].Trim(), e.MasterDataSet["txtTZBJDHQLJ"].Trim(), + e.MasterDataSet["txtReadOnlyYZ"].Trim(), e.MasterDataSet["txtZDWPIDList"].Trim(), + e.MasterDataSet["txtPFYZID"].Trim(), sHidJSLMList); + + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + DataSet ds; + + //型号按报价次数倒排 + string sXHABJCSDP = bjflxx.XLXSBJFL_XHABJCSDP; + //仅加载价格表型号 + bool bJJZJGBXH = CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSBJFL where XLXSBJFL_BJFLID='{0}' and XLXSBJFL_JJZJGBXH='Y'", e.MasterDataSet["cbxBJFLID"].Trim())); + if (e.EventFieldName.Equals("XLXSBJDMX_XLYSID")) + { + sql.Clear(); + sql.Add(" select XLYSB_XLYSID,XLYSB_XLYSMC from XLYSB "); + sql.Add(" where 1=1 order by XLYSB_XSXH,XLYSB_XLYSID"); + ds = dberp.OpenDataSet(sql); + e.DropDownItems.Clear(); + if (ds.Tables[0].Rows.Count > 0) + { + e.DropDownItems.Add(new ListItem("")); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + string sYSID = ds.Tables[0].Rows[i]["XLYSB_XLYSID"].ToString().Trim(); + string sYSMC = ds.Tables[0].Rows[i]["XLYSB_XLYSMC"].ToString().Trim(); + e.DropDownItems.Add(new ListItem(sYSID + "|" + sYSMC, sYSID)); + } + } + } + + if (e.EventFieldName == "XLXSBJDMX_XLXHID") + { + XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860000); + if (!pzxx.XLXSBJPZ_XHZJSR.Equals("Y")) + { + sql.Clear(); + if (XLBJDUtils.IsJGEJGB(e.MasterDataSet["cbxJGBID"].Trim()) || !bJJZJGBXH) + { + if (sXHABJCSDP.Equals("Y")) + { + sql.Add(" select XLXHB_XLXHID as XLXHID from XLXHB "); + sql.Add(" left join "); + sql.Add(" (select XLXSBJDMX_XLXHID as XLXHID,count(*) as CNT "); + sql.Add(" from XLXSBJDMX where 1=1 "); + sql.Add(" group by XLXSBJDMX_XLXHID "); + sql.Add(" ) a on a.XLXHID=XLXHB_XLXHID "); + sql.Add(" where isnull(XLXHB_TYBZ,'N')<>'Y' "); + sql.Add(" order by isnull(a.CNT,0) desc,XLXHB_XLXHID "); + } + else + { + sql.Add(" select XLXHB_XLXHID as XLXHID from XLXHB where isnull(XLXHB_TYBZ,'N')<>'Y' order by XLXHB_XLXHID "); + } + } + else + { + string sJGFID = XLBJDUtils.GetJGFID(e.MasterDataSet["datBJRQ"].Trim()); + string sJGBID = ""; + sJGBID = e.MasterDataSet["cbxJGBID"].Trim() + "," + e.MasterDataSet["txtJGCIDS"].Trim(); + sJGBID = sJGBID.TrimEnd(','); + if (!sJGFID.Equals("")) + { + if (!sJGBID.Equals("")) + { + sJGBID += "," + sJGFID; + } + else + { + sJGBID = sJGFID; + } + } + if (sXHABJCSDP.Equals("Y")) + { + sql.Add(" select XLXHB_XLXHID as XLXHID from XLXHB "); + sql.Add(" left join "); + sql.Add(" (select XLXSBJDMX_XLXHID as XLXHID,count(*) as CNT "); + sql.Add(" from XLXSBJDMX where 1=1 "); + sql.Add(" group by XLXSBJDMX_XLXHID "); + sql.Add(" ) a on a.XLXHID=XLXHB_XLXHID "); + sql.Add(" left join (select distinct XLXSJGBMX_XLXHID from XLXSJGBMX where 1=1 and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); + sql.Add(" )JGB on XLXSJGBMX_XLXHID=XLXHB_XLXHID"); + sql.Add(" where isnull(XLXHB_TYBZ,'N')<>'Y' "); + sql.Add(" and ISNULL(XLXSJGBMX_XLXHID,' ')<>' '"); + sql.Add(" order by isnull(a.CNT,0) desc,XLXHB_XLXHID "); + + } + else + { + sql.Add(" select XLXHB_XLXHID as XLXHID from XLXHB "); + sql.Add(" left join (select distinct XLXSJGBMX_XLXHID from XLXSJGBMX where 1=1 and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); + sql.Add(" )JGB on XLXSJGBMX_XLXHID=XLXHB_XLXHID"); + sql.Add(" where isnull(XLXHB_TYBZ,'N')<>'Y' "); + sql.Add(" and ISNULL(XLXSJGBMX_XLXHID,' ')<>' '"); + sql.Add(" order by XLXHB_XLXHID "); + + } + } + + ds = dberp.OpenDataSet(sql); + if (ds.Tables[0].Rows.Count > 0) + { + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i]["XLXHID"].ToString().Trim())); + } + } + } + if (e.EventFieldName == "XLXSBJDMX_XLGGID") + { + string sJGFID = XLBJDUtils.GetJGFID(e.MasterDataSet["datBJRQ"].Trim()); + string sJGBID = ""; + sJGBID = e.MasterDataSet["cbxJGBID"].Trim() + "," + e.MasterDataSet["txtJGCIDS"].Trim(); + sJGBID = sJGBID.TrimEnd(','); + if (!sJGFID.Equals("")) + { + if (!sJGBID.Equals("")) + { + sJGBID += "," + sJGFID; + } + else + { + sJGBID = sJGFID; + } + } + if (bjflxx.XLXSBJFL_BJCPFZJS.Equals("1")) + { + sql.Clear(); + sql.Add(" select distinct XLXSCLQD_XLGGID,XLGGB_XH from XLXSCLQD "); + sql.Add(" left join XLXHB on XLXHB_XLXHID=XLXSCLQD_XLXHID "); + sql.Add(" left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSCLQD_XLGGID "); + sql.Add(" left join XLGGB on XLGGB_XLGGID = XLXSBJXLGGTHB_XLGGIDCH and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); + sql.Add(" where 1=1 "); + sql.Add(" and XLXSCLQD_XLXHID=:pXLXHID "); + sql.Add(" and XLXSCLQD_WPID='ZZZZ'"); + + sql.Add(" order by XLGGB_XH, XLXSCLQD_XLGGID "); + sql.ParamByName("pXLXHID").Value = e.RowData["XLXSBJDMX_XLXHID"].ToString().Trim(); + ds = dberp.OpenDataSet(sql); + if (ds.Tables[0].Rows.Count <= 0) + { + sql.Clear(); + sql.Add(" select distinct XLXSJGBMX_XLGGID,XLGGB_XH from XLXSJGBMX "); + sql.Add(" left join XLXSBJXLGGTHB XLXSBJXLGGTHB_GG1 on XLXSBJXLGGTHB_GG1.XLXSBJXLGGTHB_XLGGID=XLXSJGBMX_XLGGID "); + sql.Add(" left join XLXHB on XLXHB_XLXHID=XLXSJGBMX_XLXHID "); + sql.Add(" left join XLGGB on XLGGB_XLGGID = isnull(XLXSBJXLGGTHB_GG1.XLXSBJXLGGTHB_XLGGIDCH,' ') and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); + sql.Add(" where 1=1 "); + sql.Add(" and XLXSJGBMX_XLXHID=:pXLXHID "); + sql.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); + + sql.Add(" order by XLGGB_XH,XLXSJGBMX_XLGGID "); + sql.ParamByName("pXLXHID").Value = e.RowData["XLXSBJDMX_XLXHID"].ToString().Trim(); + ds = dberp.OpenDataSet(sql); + } + } + else + { + sql.Clear(); + sql.Add(" select distinct XLXSJGBMX_XLGGID,XLGGB_XH from XLXSJGBMX "); + sql.Add(" left join XLXSBJXLGGTHB XLXSBJXLGGTHB_GG2 on XLXSBJXLGGTHB_GG2.XLXSBJXLGGTHB_XLGGID=XLXSJGBMX_XLGGID "); + sql.Add(" left join XLXHB on XLXHB_XLXHID=XLXSJGBMX_XLXHID "); + sql.Add(" left join XLGGB on XLGGB_XLGGID = isnull(XLXSBJXLGGTHB_GG2.XLXSBJXLGGTHB_XLGGIDCH,' ') and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); + sql.Add(" where 1=1 "); + sql.Add(" and XLXSJGBMX_XLXHID=:pXLXHID "); + sql.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); + + sql.Add(" order by XLGGB_XH,XLXSJGBMX_XLGGID "); + sql.ParamByName("pXLXHID").Value = e.RowData["XLXSBJDMX_XLXHID"].ToString().Trim(); + ds = dberp.OpenDataSet(sql); + if (ds.Tables[0].Rows.Count <= 0) + { + sql.Clear(); + sql.Add(" select distinct XLXSCLQD_XLGGID,XLGGB_XH from XLXSCLQD "); + sql.Add(" left join XLXHB on XLXHB_XLXHID=XLXSCLQD_XLXHID "); + sql.Add(" left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSCLQD_XLGGID "); + sql.Add(" left join XLGGB on XLGGB_XLGGID = XLXSBJXLGGTHB_XLGGIDCH and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); + sql.Add(" where 1=1 "); + sql.Add(" and XLXSCLQD_XLXHID=:pXLXHID "); + sql.Add(" and XLXSCLQD_WPID='ZZZZ'"); + + sql.Add(" order by XLGGB_XH, XLXSCLQD_XLGGID "); + sql.ParamByName("pXLXHID").Value = e.RowData["XLXSBJDMX_XLXHID"].ToString().Trim(); + ds = dberp.OpenDataSet(sql); + } + } + if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) + { + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + e.DropDownItems.Add(ds.Tables[0].Rows[i][0].ToString().Trim()); + } + } + } + + if (e.EventFieldName == "XLXSBJDMX_ZHCPMLMC") + { + sql.Clear(); + sql.Add("select XLXSCPML_CPMLMC from XLXSCPML where XLXSCPML_CPMLLX='Y' "); + ds = dberp.OpenDataSet(sql); + if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) + { + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + e.DropDownItems.Add(ds.Tables[0].Rows[i][0].ToString().Trim()); + } + } + } + if (e.EventFieldName == "XLBZGYKHDZB_GYKH") + { + string sXLBZID = e.RowData["XLXSBJDMX_XLBZID"].ToString().Trim().Split('|')[0].Trim(); + sql.Clear(); + sql.Add("select XLBZGYKHDZB_GYKH from XLBZGYKHDZB where XLBZGYKHDZB_XLBZID='" + sXLBZID + "'"); + ds = dberp.OpenDataSet(sql); + if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) + { + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + e.DropDownItems.Add(ds.Tables[0].Rows[i][0].ToString().Trim()); + } + } + } + + + if (e.EventFieldName == "XLBZ_XLBZMS") + { + string sXLXHID = e.RowData["XLXSBJDMX_XLXHID"].ToString().Trim(); + string sXLGGID = e.RowData["XLXSBJDMX_XLGGID"].ToString().Trim(); + string sXLBZID = e.RowData["XLXSBJDMX_XLBZID"].ToString().Trim().Split('|')[0].Trim(); + string sDYDJID = e.RowData["XLXSBJDMX_DYDJID"].ToString().Trim().Split('|')[0].Trim(); + string sJGFID = XLBJDUtils.GetJGFID(e.MasterDataSet["datBJRQ"].Trim()); + string sKHID = string.Empty; + if (e.MasterDataSet.ContainsKey("txtKHID")) + sKHID = e.MasterDataSet["txtKHID"].Trim(); + else if(e.MasterDataSet.ContainsKey("txtKH")) + sKHID = GetKHID(e.MasterDataSet["txtKH"].Trim()); + int fGYKHID = CMISproDataBase.GetMaxXH("DBERP", "V_GYKH", "V_GYKH_ID", "") + 1; + string sGYKHSQL = GetGYKHSQL(sKHID, fGYKHID); + if (string.IsNullOrEmpty(sGYKHSQL)) + sGYKHSQL = " and isnull(XLBZ_DZSC,'N')='N' "; + + //标记使用材料清单还是价格获取的ds 1表示材料清单 2表示价格表明细 + int flag = 0; + List lstValue = new List(); + lstValue.Clear(); + sql.Clear(); + if (!sXLXHID.Equals("") && !sXLGGID.Equals("")) + { + string sJGBID = ""; + sJGBID = e.MasterDataSet["cbxJGBID"].Trim() + "," + e.MasterDataSet["txtJGCIDS"].Trim(); + sJGBID = sJGBID.TrimEnd(','); + if (!sJGFID.Equals("")) + { + if (!sJGBID.Equals("")) + { + sJGBID += "," + sJGFID; + } + else + { + sJGBID = sJGFID; + } + } + //sql.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); + if (bjflxx.XLXSBJFL_BJCPFZJS.Equals("1")) + { + flag = 1; + sql.Clear(); + sql.Add(" select a.XLBZ_XLBZMS,a.PX from "); + sql.Add(" ( "); + sql.Add(" SELECT DISTINCT XLBZ_XLBZMS, "); + sql.Add(" case when XLBZ_DZSC='Y' then (select isnull(MAX(XLBZ_PX),0) from XLBZ where XLBZ_DZSC = 'Y' ) else XLBZ_PX end as XLBZ_PX, "); + sql.Add(" 0 as PX FROM XLXSCLQD"); + sql.Add(" LEFT JOIN XLBZ ON XLBZ_XLBZID = XLXSCLQD_XLBZID "); + sql.Add(" left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSCLQD_XLGGID "); + sql.Add(" WHERE 1=1 and XLXSCLQD_XLXHID=:pXLXHID and XLXSBJXLGGTHB_XLGGIDCH = :pXLGGID and XLXSCLQD_WPID = 'ZZZZ' "); + if (!string.IsNullOrEmpty(sGYKHSQL)) + sql.Add(sGYKHSQL); + sql.Add(" UNION ALL "); + sql.Add(" SELECT XLBZ_XLBZMS, "); + sql.Add(" case when XLBZ_DZSC='Y' then (select isnull(MAX(XLBZ_PX),0) from XLBZ where XLBZ_DZSC = 'Y' ) else XLBZ_PX end as XLBZ_PX, "); + sql.Add(" 1 as PX FROM XLBZ"); + sql.Add(" WHERE 1=1 and not exists(select 1 from XLXSCLQD left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSCLQD_XLGGID where XLXSCLQD_XLBZID= XLBZ_XLBZID "); + sql.Add(" and XLXSCLQD_XLXHID=:pXLXHID and XLXSBJXLGGTHB_XLGGIDCH = :pXLGGID and XLXSCLQD_WPID = 'ZZZZ' "); + sql.Add(" ) and isnull(XLBZ_DZSC,'N')='N' "); + if (!string.IsNullOrEmpty(sGYKHSQL)) + { + sql.Add(" UNION ALL "); + sql.Add(" SELECT XLBZ_XLBZMS, "); + sql.Add(" case when XLBZ_DZSC='Y' then (select isnull(MAX(XLBZ_PX),0) from XLBZ where XLBZ_DZSC = 'Y' ) else XLBZ_PX end as XLBZ_PX, "); + sql.Add(" 1 as PX FROM XLBZ"); + sql.Add(" WHERE 1=1 and not exists(select 1 from XLXSCLQD left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSCLQD_XLGGID where XLXSCLQD_XLBZID= XLBZ_XLBZID "); + sql.Add(" and XLXSCLQD_XLXHID=:pXLXHID and XLXSBJXLGGTHB_XLGGIDCH = :pXLGGID and XLXSCLQD_WPID = 'ZZZZ' "); + sql.Add(" ) "); + sql.Add(" and exists(select 1 from V_GYKH where V_GYKH_ID=1 and XLBZ_XLBZLXMC like rtrim(V_GYKH_GYKH)+ '/%') "); + } + sql.Add(" ) a "); + sql.Add(" order by PX,a.XLBZ_PX,a.XLBZ_XLBZMS "); + sql.ParamByName("pXLXHID").Value = sXLXHID; + sql.ParamByName("pXLGGID").Value = sXLGGID.Replace('*', '×'); + ds = dberp.OpenDataSet(sql); + if (ds.Tables[0].Rows.Count > 0) + { + if (ds.Tables[0].Rows[0][1].ToString().Trim().Equals("1")) + { + flag = 2; + sql.Clear(); + sql.Add(" select a.XLBZ_XLBZMS,a.PX from "); + sql.Add(" ( "); + sql.Add(" SELECT DISTINCT XLBZ_XLBZMS, "); + sql.Add(" case when XLBZ_DZSC='Y' then (select isnull(MAX(XLBZ_PX),0) from XLBZ where XLBZ_DZSC = 'Y' ) else XLBZ_PX end as XLBZ_PX, "); + sql.Add(" 0 as PX FROM XLXSJGBMX "); + sql.Add(" LEFT JOIN XLXSBJXLGGTHB XLXSBJXLGGTHB_MX1 on XLXSBJXLGGTHB_MX1.XLXSBJXLGGTHB_XLGGID=XLXSJGBMX_XLGGID "); + sql.Add(" LEFT JOIN XLBZ ON XLBZ_XLBZID = XLXSJGBMX_XLBZID "); + sql.Add(" WHERE 1=1 and XLXSJGBMX_XLXHID=:pXLXHID and XLXSBJXLGGTHB_MX1.XLXSBJXLGGTHB_XLGGIDCH = :pXLGGID "); + sql.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); + if (!string.IsNullOrEmpty(sGYKHSQL)) + sql.Add(sGYKHSQL); + sql.Add(" UNION ALL "); + sql.Add(" SELECT XLBZ_XLBZMS, "); + sql.Add(" case when XLBZ_DZSC='Y' then (select isnull(MAX(XLBZ_PX),0) from XLBZ where XLBZ_DZSC = 'Y' ) else XLBZ_PX end as XLBZ_PX, "); + sql.Add(" 1 as PX FROM XLBZ "); + sql.Add(" WHERE 1=1 and not exists(select 1 from XLXSJGBMX "); + sql.Add(" left join XLXSBJXLGGTHB XLXSBJXLGGTHB_MX1N on XLXSBJXLGGTHB_MX1N.XLXSBJXLGGTHB_XLGGID=XLXSJGBMX_XLGGID "); + sql.Add(" where XLXSJGBMX_XLBZID= XLBZ_XLBZID "); + sql.Add(" and XLXSJGBMX_XLXHID=:pXLXHID and XLXSBJXLGGTHB_MX1N.XLXSBJXLGGTHB_XLGGIDCH = :pXLGGID "); + sql.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); + sql.Add(" ) "); + if (!string.IsNullOrEmpty(sGYKHSQL)) + sql.Add(sGYKHSQL); + sql.Add(" ) a "); + sql.Add(" order by PX,a.XLBZ_PX,a.XLBZ_XLBZMS "); + sql.ParamByName("pXLXHID").Value = sXLXHID; + sql.ParamByName("pXLGGID").Value = sXLGGID.Replace('*', '×'); + ds = dberp.OpenDataSet(sql); + } + } + } + else + { + flag = 2; + sql.Clear(); + sql.Add(" select a.XLBZ_XLBZMS,a.PX from "); + sql.Add(" ( "); + sql.Add(" SELECT DISTINCT XLBZ_XLBZMS, "); + sql.Add(" case when XLBZ_DZSC='Y' then (select isnull(MAX(XLBZ_PX),0) from XLBZ where XLBZ_DZSC = 'Y' ) else XLBZ_PX end as XLBZ_PX, "); + sql.Add(" 0 as PX FROM XLXSJGBMX "); + sql.Add(" LEFT JOIN XLXSBJXLGGTHB XLXSBJXLGGTHB_MX2 on XLXSBJXLGGTHB_MX2.XLXSBJXLGGTHB_XLGGID=XLXSJGBMX_XLGGID "); + sql.Add(" LEFT JOIN XLBZ ON XLBZ_XLBZID = XLXSJGBMX_XLBZID "); + sql.Add(" WHERE 1=1 and XLXSJGBMX_XLXHID=:pXLXHID and XLXSBJXLGGTHB_MX2.XLXSBJXLGGTHB_XLGGIDCH = :pXLGGID "); + sql.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); + if (!string.IsNullOrEmpty(sGYKHSQL)) + sql.Add(sGYKHSQL); + sql.Add(" UNION ALL "); + sql.Add(" SELECT XLBZ_XLBZMS,"); + sql.Add(" case when XLBZ_DZSC='Y' then (select isnull(MAX(XLBZ_PX),0) from XLBZ where XLBZ_DZSC = 'Y' ) else XLBZ_PX end as XLBZ_PX, "); + sql.Add(" 1 as PX FROM XLBZ "); + sql.Add(" WHERE 1=1 and not exists(select 1 from XLXSJGBMX "); + sql.Add(" left join XLXSBJXLGGTHB XLXSBJXLGGTHB_MX2N on XLXSBJXLGGTHB_MX2N.XLXSBJXLGGTHB_XLGGID=XLXSJGBMX_XLGGID "); + sql.Add(" where XLXSJGBMX_XLBZID= XLBZ_XLBZID "); + sql.Add(" and XLXSJGBMX_XLXHID=:pXLXHID and XLXSBJXLGGTHB_MX2N.XLXSBJXLGGTHB_XLGGIDCH = :pXLGGID "); + sql.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); + sql.Add(" ) "); + if (!string.IsNullOrEmpty(sGYKHSQL)) + sql.Add(sGYKHSQL); + sql.Add(" ) a "); + sql.Add(" order by PX,a.XLBZ_PX,a.XLBZ_XLBZMS "); + sql.ParamByName("pXLXHID").Value = sXLXHID; + sql.ParamByName("pXLGGID").Value = sXLGGID.Replace('*', '×'); + ds = dberp.OpenDataSet(sql); + if (ds.Tables[0].Rows.Count > 0) + { + if (ds.Tables[0].Rows[0][1].ToString().Trim().Equals("1")) + { + flag = 1; + sql.Clear(); + sql.Add(" select a.XLBZ_XLBZMS,a.PX from "); + sql.Add(" ( "); + sql.Add(" SELECT DISTINCT XLBZ_XLBZMS, "); + sql.Add(" case when XLBZ_DZSC='Y' then (select isnull(MAX(XLBZ_PX),0) from XLBZ where XLBZ_DZSC = 'Y' ) else XLBZ_PX end as XLBZ_PX, "); + sql.Add(" 0 as PX FROM XLXSCLQD"); + sql.Add(" LEFT JOIN XLBZ ON XLBZ_XLBZID = XLXSCLQD_XLBZID "); + sql.Add(" left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSCLQD_XLGGID "); + sql.Add(" WHERE 1=1 and XLXSCLQD_XLXHID=:pXLXHID and XLXSBJXLGGTHB_XLGGIDCH = :pXLGGID and XLXSCLQD_WPID = 'ZZZZ' "); + if (!string.IsNullOrEmpty(sGYKHSQL)) + sql.Add(sGYKHSQL); + sql.Add(" UNION ALL "); + sql.Add(" SELECT XLBZ_XLBZMS, "); + sql.Add(" case when XLBZ_DZSC='Y' then (select isnull(MAX(XLBZ_PX),0) from XLBZ where XLBZ_DZSC = 'Y' ) else XLBZ_PX end as XLBZ_PX, "); + sql.Add(" 1 as PX FROM XLBZ"); + sql.Add(" WHERE 1=1 and not exists(select 1 from XLXSCLQD left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSCLQD_XLGGID where XLXSCLQD_XLBZID= XLBZ_XLBZID "); + sql.Add(" and XLXSCLQD_XLXHID=:pXLXHID and XLXSBJXLGGTHB_XLGGIDCH = :pXLGGID and XLXSCLQD_WPID = 'ZZZZ' "); + sql.Add(" ) "); + if (!string.IsNullOrEmpty(sGYKHSQL)) + sql.Add(sGYKHSQL); + sql.Add(" ) a "); + sql.Add(" order by PX,a.XLBZ_PX,a.XLBZ_XLBZMS "); + sql.ParamByName("pXLXHID").Value = sXLXHID; + sql.ParamByName("pXLGGID").Value = sXLGGID.Replace('*', '×'); + ds = dberp.OpenDataSet(sql); + } + } + } + e.DropDownItems.Clear(); + if (ds.Tables[0].Rows.Count > 0) + { + //若有102579008模块权限则增加空选项:102579008|报价材料用量 + if (CheckModule("102579008")) + { + e.DropDownItems.Add(""); + } + //1表示材料清单 2表示价格表明细 + if (!sDYDJID.Equals("")) + { + if (1 == flag) + { + lstValue = GetXLBZMSValue_XLXSCLQDorXLXSJGBMX(sXLXHID, sXLGGID, sDYDJID, sJGBID, "XLXSCLQD_DYDJID"); + } + else if (2 == flag) + { + lstValue = GetXLBZMSValue_XLXSCLQDorXLXSJGBMX(sXLXHID, sXLGGID, sDYDJID, sJGBID, "XLXSJGBMX_DYDJID"); + } + } + flag = 0; + if (lstValue.Count == 0) + { + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + if (ds.Tables[0].Rows[i][1].ToString().Trim().Equals("0")) + { + e.DropDownItems.Add(ds.Tables[0].Rows[i][0].ToString().Trim() + "(*)"); + } + else + { + e.DropDownItems.Add(ds.Tables[0].Rows[i][0].ToString().Trim()); + } + } + } + else + { + //第一轮循环判断是不是0的都是lst中 + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + if (ds.Tables[0].Rows[i][1].ToString().Trim().Equals("0")) + { + if (!lstValue.Contains(ds.Tables[0].Rows[i][0].ToString().Trim())) + { + flag = 3; + break; + } + } + } + if (3 == flag) + { + //第一轮循环添加** + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + if (ds.Tables[0].Rows[i][1].ToString().Trim().Equals("0")) + { + if (lstValue.Contains(ds.Tables[0].Rows[i][0].ToString().Trim())) + { + e.DropDownItems.Add(ds.Tables[0].Rows[i][0].ToString().Trim() + "(**)"); + } + } + } + //第二轮循环添加* + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + if (ds.Tables[0].Rows[i][1].ToString().Trim().Equals("0")) + { + if (!lstValue.Contains(ds.Tables[0].Rows[i][0].ToString().Trim())) + { + e.DropDownItems.Add(ds.Tables[0].Rows[i][0].ToString().Trim() + "(*)"); + } + } + else + { + e.DropDownItems.Add( ds.Tables[0].Rows[i][0].ToString().Trim()); + } + } + } + else + { + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + if (ds.Tables[0].Rows[i][1].ToString().Trim().Equals("0")) + { + e.DropDownItems.Add(ds.Tables[0].Rows[i][0].ToString().Trim() + "(*)"); + } + else + { + e.DropDownItems.Add(ds.Tables[0].Rows[i][0].ToString().Trim()); + } + } + } + + + } + } + } + else + { + sql.Clear(); + sql.Add(" select XLBZ_XLBZMS, "); + sql.Add(" case when XLBZ_DZSC='Y' then (select isnull(MAX(XLBZ_PX),0) from XLBZ where XLBZ_DZSC = 'Y' ) else XLBZ_PX end as XLBZ_PX "); + sql.Add(" from XLBZ "); + sql.Add(" where 1=1 "); + if (!string.IsNullOrEmpty(sGYKHSQL)) + sql.Add(sGYKHSQL); + sql.Add(" order by XLBZ_DZSC,XLBZ_PX,XLBZ_XLBZMS"); + ds = dberp.OpenDataSet(sql); + e.DropDownItems.Clear(); + if (ds.Tables[0].Rows.Count > 0) + { + //若有102579008模块权限则增加空选项:102579008|报价材料用量 + if (CheckModule("102579008")) + { + e.DropDownItems.Add(""); + } + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + e.DropDownItems.Add(ds.Tables[0].Rows[i]["XLBZ_XLBZMS"].ToString().Trim()); + } + } + } + sql.Clear(); + sql.Add("delete from V_GYKH"); + sql.Add("where V_GYKH_ID = :pID"); + sql.ParamByName("pID").Value = fGYKHID; + dberp.ExecSQL(sql); + + } + + } + + protected void grdXLBJDMX_NewRecord(object sender, NewRecordEventArgs e) + { + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(e.MasterDataSet["cbxBJFLID"].Trim()); + string sHidJSLMList = XLBJDUtils.GetHidJSLMList(e.MasterDataSet["cbxBJFLID"].Trim(), IsXJY.Value.Equals("Y"), IsSJY.Value.Equals("Y"), IsHJY.Value.Equals("Y")); + //为避免多次查询,使用txtBJDYZ记录报价单因子的加价方式 + if (e.MasterDataSet["txtBJDYZ"].Trim().Equals("")) + { + Dictionary dicBJDYZ = XLBJDUtils.GetBJDYZ(e.MasterDataSet["cbxBJFLID"].Trim()); + e.MasterDataSet["txtBJDYZ"] = dicBJDYZ["BJDYZ"]; + e.MasterDataSet["txtTJYSList"] = dicBJDYZ["TJYSList"]; + e.MasterDataSet["txtYZWPIDList"] = dicBJDYZ["YZWPIDList"]; + e.MasterDataSet["txtReadOnlyYZ"] = dicBJDYZ["ReadOnlyYZ"]; + e.MasterDataSet["txtZDWPIDList"] = dicBJDYZ["ZDWPIDList"]; + e.MasterDataSet["txtPFYZID"] = dicBJDYZ["PFYZ"]; + e.MasterDataSet["txtBZPFYZID"] = dicBJDYZ["BZPFYZ"]; + e.MasterDataSet["txtBTYZ"] = dicBJDYZ["BTYZ"]; + e.MasterDataSet["txtXSJEYZ"] = dicBJDYZ["XSJEYZ"]; + e.MasterDataSet["txtTZJGBBJ"] = bjflxx.XLXSBJFL_TZJGBBJ; + e.MasterDataSet["txtTZBJDHQLJ"] = bjflxx.XLXSBJFL_TZBJDHQLJ; + + } + InitGrid(e.MasterDataSet["cbxBJFLID"].Trim(), iXSWS, e.MasterDataSet["txtBJDYZ"].Trim(), e.MasterDataSet["txtYZWPIDList"].Trim(), + e.MasterDataSet["txtTZJGBBJ"].Trim(), e.MasterDataSet["txtTZBJDHQLJ"].Trim(), + e.MasterDataSet["txtReadOnlyYZ"].Trim(), e.MasterDataSet["txtZDWPIDList"].Trim(), + e.MasterDataSet["txtPFYZID"].Trim(), sHidJSLMList); + + string sYSID = GetYSIDXX("BK"); + string sJLDW = GetOption(100860000, "BJU003"); + string sBJSL = "0"; + if (XLBJDUtils.GetXLXSBJPZXX(100860000).XLXSBJPZ_BJSLMRYZ == "Y") + { + if (e.MasterDataSet["txtFirstJLDW"].Trim().Equals("") && e.MasterDataSet["txtFirstBJSL"].ToString().Trim().Equals("")) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + DataSet ds; + sql.Clear(); + sql.Add("select top 1 XLXSBJDMX_BJSL,XLXSBJDMX_JLDW from XLXSBJDMX where XLXSBJDMX_BJDID=:pBJDID order by XLXSBJDMX_XSSX "); + sql.ParamByName("pBJDID").Value = e.MasterDataSet["txtBJDID"].Trim(); + ds = dberp.OpenDataSet(sql); + if (ds.Tables[0].Rows.Count > 0) + { + e.MasterDataSet["txtFirstJLDW"] = ds.Tables[0].Rows[0][1].ToString().Trim(); + e.MasterDataSet["txtFirstBJSL"] = ds.Tables[0].Rows[0][0].ToString().Trim(); + } + } + + + sJLDW = e.MasterDataSet["txtFirstJLDW"].Trim().Equals("") ? sJLDW : e.MasterDataSet["txtFirstJLDW"].Trim(); + sBJSL = e.MasterDataSet["txtFirstBJSL"].ToString().Trim().Equals("") ? sBJSL : e.MasterDataSet["txtFirstBJSL"].ToString().Trim(); + + } + e.ResultPairs.Add("XLXSBJDMX_XLYSID", sYSID); + e.ResultPairs.Add("XLXSBJDMX_JLDW",sJLDW); + e.ResultPairs.Add("XLXSBJDMX_BJSL", sBJSL); + e.ResultPairs.Add("XLXSBJDMX_WHR", CurSession.UserName.Trim()); + e.ResultPairs.Add("XLXSBJDMX_WHRID", CurSession.UserId.Trim()); + e.ResultPairs.Add("XLXSBJDMX_WHSJ", DateTime.Now.ToString().Trim()); + + + //根据参数设置默认标准 + string sDefaultXLBZID = XLBJDUtils.GetDefaultXLBZID(); + if (!sDefaultXLBZID.Equals("") && !sDefaultXLBZID.Equals("FirstBZ")) + { + e.ResultPairs.Add("XLXSBJDMX_XLBZID", GetXLBZXX(sDefaultXLBZID)); + e.ResultPairs.Add("XLBZ_XLBZMS", GetXLBZMS(sDefaultXLBZID)); + } + + //获取调价因素为空的因子值 + Dictionary dicYZZ0 = XLBJDUtils.GetBJDYZZ0(e.MasterDataSet["cbxBJFLID"].Trim(), false, false, GetOption(100860000, "BJU003"), GetOption(100860000, "BJU003"), "", "", "", "", e.MasterDataSet["txtBJDID"].Trim()); + foreach (string sYZID in dicYZZ0.Keys) + { + e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZ0[sYZID].ToString()); + } + + + + //获取调价因素为1的因子值 + if (e.MasterDataSet.ContainsKey("cbxPJLX")) + { + string sPJLX = e.MasterDataSet["cbxPJLX"].Trim(); + Dictionary dicYZZ1 = XLBJDUtils.GetBJDYZZ1(e.MasterDataSet["cbxBJFLID"].Trim(), sPJLX, GetOption(100860000, "BJU003"), GetOption(100860000, "BJU003"), "", "", "", "", e.MasterDataSet["txtBJDID"].Trim()); + foreach (string sYZID in dicYZZ1.Keys) + { + e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZ1[sYZID].ToString()); + } + } + + //获取调价因素为8|付款期限的因子值 + //cbxFKQXNR + if (e.MasterDataSet.ContainsKey("cbxFKQXNR")) + { + string sFKQXNR = e.MasterDataSet["cbxFKQXNR"].Trim(); + Dictionary dicYZZ8 = XLBJDUtils.GetBJDYZZ8(e.MasterDataSet["cbxBJFLID"].Trim(), sFKQXNR, GetOption(100860000, "BJU003"), GetOption(100860000, "BJU003"), "", "", "", "", e.MasterDataSet["txtBJDID"].Trim()); + foreach (string sYZID in dicYZZ8.Keys) + { + e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZ8[sYZID].ToString()); + } + } + + //获取调价因素为B的因子值 + if (e.MasterDataSet.ContainsKey("cbxSYDWID")) + { + string sSYDWID = e.MasterDataSet["cbxSYDWID"].Trim(); + Dictionary dicYZZB = XLBJDUtils.GetBJDYZZB(e.MasterDataSet["cbxBJFLID"].Trim(), sSYDWID, GetOption(100860000, "BJU003"), GetOption(100860000, "BJU003"), "", "", "", "", e.MasterDataSet["txtBJDID"].Trim()); + foreach (string sYZID in dicYZZB.Keys) + { + e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZB[sYZID].ToString()); + } + } + + //获取调价因素为D|颜色的因子值 + //sYSID = sYSID.Split("|")[0].Trim(); + Dictionary dicYZZD = XLBJDUtils.GetBJDYZZD(e.MasterDataSet["cbxBJFLID"].Trim(), sYSID.Split('|')[0].Trim(), GetOption(100860000, "BJU003"), GetOption(100860000, "BJU003"), "", "", "", "", e.MasterDataSet["txtBJDID"].Trim()); + foreach (string sYZID in dicYZZD.Keys) + { + e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZD[sYZID].ToString()); + } + } + + protected void grdXLBJDMX_CopyRecord(object sender, CopyRecordEventArgs e) + { + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(e.MasterDataSet["cbxBJFLID"].Trim()); + string sHidJSLMList = XLBJDUtils.GetHidJSLMList(e.MasterDataSet["cbxBJFLID"].Trim(), IsXJY.Value.Equals("Y"), IsSJY.Value.Equals("Y"), IsHJY.Value.Equals("Y")); + //为避免多次查询,使用txtBJDYZ记录报价单因子的加价方式 + if (e.MasterDataSet["txtBJDYZ"].Trim().Equals("")) + { + Dictionary dicBJDYZ = XLBJDUtils.GetBJDYZ(e.MasterDataSet["cbxBJFLID"].Trim()); + e.MasterDataSet["txtBJDYZ"] = dicBJDYZ["BJDYZ"]; + e.MasterDataSet["txtTJYSList"] = dicBJDYZ["TJYSList"]; + e.MasterDataSet["txtYZWPIDList"] = dicBJDYZ["YZWPIDList"]; + e.MasterDataSet["txtReadOnlyYZ"] = dicBJDYZ["ReadOnlyYZ"]; + e.MasterDataSet["txtZDWPIDList"] = dicBJDYZ["ZDWPIDList"]; + e.MasterDataSet["txtPFYZID"] = dicBJDYZ["PFYZ"]; + e.MasterDataSet["txtBZPFYZID"] = dicBJDYZ["BZPFYZ"]; + e.MasterDataSet["txtBTYZ"] = dicBJDYZ["BTYZ"]; + e.MasterDataSet["txtXSJEYZ"] = dicBJDYZ["XSJEYZ"]; + e.MasterDataSet["txtTZJGBBJ"] = bjflxx.XLXSBJFL_TZJGBBJ; + e.MasterDataSet["txtTZBJDHQLJ"] = bjflxx.XLXSBJFL_TZBJDHQLJ; + } + InitGrid(e.MasterDataSet["cbxBJFLID"].Trim(), iXSWS, e.MasterDataSet["txtBJDYZ"].Trim(), e.MasterDataSet["txtYZWPIDList"].Trim(), + e.MasterDataSet["txtTZJGBBJ"].Trim(), e.MasterDataSet["txtTZBJDHQLJ"].Trim(), + e.MasterDataSet["txtReadOnlyYZ"].Trim(), e.MasterDataSet["txtZDWPIDList"].Trim(), + e.MasterDataSet["txtPFYZID"].Trim(), sHidJSLMList); + + + e.ResultPairs.Add("XLXSBJDMX_XH", "0"); + e.ResultPairs.Add("OLD_XLXSBJDMX_XH", "0"); + e.ResultPairs.Add("XLXSBJDMX_XSSX", "0"); + + + //报价产品锁定 + e.ResultPairs.Add("XLXSBJDMX_BJCPSD", "N"); + //外购产品直接赋N--LF 22.11.01去除 + //e.ResultPairs.Add("XLXSBJDMX_WGCPBZ", "N"); + + e.ResultPairs.Add("XLXSBJDMX_WHR", CurSession.UserName.Trim()); + e.ResultPairs.Add("XLXSBJDMX_WHRID", CurSession.UserId.Trim()); + e.ResultPairs.Add("XLXSBJDMX_WHSJ", DateTime.Now.ToString().Trim()); + } + + protected void grdXLBJDMX_AjaxGridCellDoubleClick(object sender, AjaxGridCellDoubleClickEventArgs e) + { + bool isChanged = false; + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(e.MasterDataSet["cbxBJFLID"].Trim()); + string sHidJSLMList = XLBJDUtils.GetHidJSLMList(e.MasterDataSet["cbxBJFLID"].Trim(), IsXJY.Value.Equals("Y"), IsSJY.Value.Equals("Y"), IsHJY.Value.Equals("Y")); + //为避免多次查询,使用txtBJDYZ记录报价单因子的加价方式 + if (e.MasterDataSet["txtBJDYZ"].Trim().Equals("")) + { + Dictionary dicBJDYZ = XLBJDUtils.GetBJDYZ(e.MasterDataSet["cbxBJFLID"].Trim()); + e.MasterDataSet["txtBJDYZ"] = dicBJDYZ["BJDYZ"]; + e.MasterDataSet["txtTJYSList"] = dicBJDYZ["TJYSList"]; + e.MasterDataSet["txtYZWPIDList"] = dicBJDYZ["YZWPIDList"]; + e.MasterDataSet["txtReadOnlyYZ"] = dicBJDYZ["ReadOnlyYZ"]; + e.MasterDataSet["txtZDWPIDList"] = dicBJDYZ["ZDWPIDList"]; + e.MasterDataSet["txtPFYZID"] = dicBJDYZ["PFYZ"]; + e.MasterDataSet["txtBZPFYZID"] = dicBJDYZ["BZPFYZ"]; + e.MasterDataSet["txtBTYZ"] = dicBJDYZ["BTYZ"]; + e.MasterDataSet["txtXSJEYZ"] = dicBJDYZ["XSJEYZ"]; + e.MasterDataSet["txtTZJGBBJ"] = bjflxx.XLXSBJFL_TZJGBBJ; + e.MasterDataSet["txtTZBJDHQLJ"] = bjflxx.XLXSBJFL_TZBJDHQLJ; + } + InitGrid(e.MasterDataSet["cbxBJFLID"].Trim(), iXSWS, e.MasterDataSet["txtBJDYZ"].Trim(), e.MasterDataSet["txtYZWPIDList"].Trim(), + e.MasterDataSet["txtTZJGBBJ"].Trim(), e.MasterDataSet["txtTZBJDHQLJ"].Trim(), + e.MasterDataSet["txtReadOnlyYZ"].Trim(), e.MasterDataSet["txtZDWPIDList"].Trim(), + e.MasterDataSet["txtPFYZID"].Trim(), sHidJSLMList); + Dictionary dicChangedField = new Dictionary(); + AddChangedField(dicChangedField, e.EventFieldName, e.EventFieldValue); + if (e.RowData[e.EventFieldName].ToString().Trim().Equals("0")) + { + if (e.EventFieldName.Substring(0, 5).Equals("TZYZ_")) + { + string sYZID = e.EventFieldName.Substring(5, e.EventFieldName.Length - 5); + + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add("select XLXSBJDYZZ_YZZ "); + SQL.Add(" from XLXSBJDYZZ"); + SQL.Add(" where XLXSBJDYZZ_JGBID=(select XLXSTZYZ_JGBID from XLXSTZYZ where XLXSTZYZ_MXBH = 'BJD' and XLXSTZYZ_YZID=:XLXSTZYZ_YZID) "); + SQL.Add(" and XLXSBJDYZZ_YZID=:XLXSTZYZ_YZID"); + SQL.ParamByName("XLXSTZYZ_YZID").Value = sYZID; + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + e.EventFieldValue = ds.Tables[0].Rows[0][0].ToString().Trim(); + e.ResultPairs.Add(e.EventFieldName, e.EventFieldValue); + } + } + } + + if (e.EventFieldName.ToString().Trim().Equals("XLXSBJDMX_BJCP")) + { + //报价产品锁定,仅导入并且自带报价产品时为Y + bool bBJCPSD = e.RowData["XLXSBJDMX_BJCPSD"].ToString().Trim().Equals("Y"); + //销售员报价配置的---报价产品锁定时记录原报价产品 + bool NeedUpdateBZ = false; + XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860000); + if (pzxx.XLXSBJPZ_SJJLYBJCP == "Y") + NeedUpdateBZ = true; + string sXLXHID = e.RowData["XLXSBJDMX_XLXHID"].ToString().Trim(); + string sXLGGID = e.RowData["XLXSBJDMX_XLGGID"].ToString().Trim(); + string sDYDJID = e.RowData["XLXSBJDMX_DYDJID"].ToString().Trim().Split('|')[0].Trim(); + + string sBJCP = e.EventFieldValue; + string sBJBZ = e.RowData["XLXSBJDMX_BZ"].ToString().Trim(); + string sTmpBJCP = ""; + + if (string.IsNullOrEmpty(sDYDJID)) + { + if (!string.IsNullOrEmpty(sXLXHID) && !string.IsNullOrEmpty(sXLGGID)) + { + sTmpBJCP = sXLXHID + " " + sXLGGID; + e.ResultPairs.Add("XLXSBJDMX_BJCP", sTmpBJCP); + if (NeedUpdateBZ && bBJCPSD) + { + if (!sBJCP.Equals(sTmpBJCP)) + { + sBJBZ = sBJBZ + " " + "原:" + sBJCP; + e.ResultPairs.Add("XLXSBJDMX_BZ", sBJBZ); + } + } + AddChangedField(dicChangedField, "XLXSBJDMX_BJCP", sXLXHID + " " + sXLGGID); + } + } + else + { + if (!string.IsNullOrEmpty(sXLXHID) && !string.IsNullOrEmpty(sXLGGID)) + { + if (sDYDJID.Equals("--") || sDYDJID.Equals("")) + { + sTmpBJCP = sXLXHID + " " + sXLGGID; + e.ResultPairs.Add("XLXSBJDMX_BJCP", sTmpBJCP); + if (NeedUpdateBZ && bBJCPSD) + { + if (!sBJCP.Equals(sTmpBJCP)) + { + sBJBZ = sBJBZ + " " + "原:" + sBJCP; + e.ResultPairs.Add("XLXSBJDMX_BZ", sBJBZ); + } + } + AddChangedField(dicChangedField, "XLXSBJDMX_BJCP", sXLXHID + " " + sXLGGID); + } + else + { + sTmpBJCP = sXLXHID + "-" + sDYDJID + " " + sXLGGID; + e.ResultPairs.Add("XLXSBJDMX_BJCP", sTmpBJCP); + if (NeedUpdateBZ && bBJCPSD) + { + if (!sBJCP.Equals(sTmpBJCP)) + { + sBJBZ = sBJBZ + " " + "原:" + sBJCP; + e.ResultPairs.Add("XLXSBJDMX_BZ", sBJBZ); + } + } + AddChangedField(dicChangedField, "XLXSBJDMX_BJCP", sXLXHID + "-" + sDYDJID + " " + sXLGGID); + } + } + } + } + + string stCLCB = ""; + if (dicChangedField.ContainsKey("XLXSBJDMX_CLCB")) + { + stCLCB = dicChangedField["XLXSBJDMX_CLCB"]; + isChanged = true; + } + else + stCLCB = e.RowData["XLXSBJDMX_CLCB"].ToString().Trim(); + + string stBJDHQCLCB = ""; + if (dicChangedField.ContainsKey("XLXSBJDMX_BJDHQCLCB")) + { + stBJDHQCLCB = dicChangedField["XLXSBJDMX_BJDHQCLCB"]; + isChanged = true; + } + else + stBJDHQCLCB = e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(); + + string stJGBJJ = ""; + if (dicChangedField.ContainsKey("XLXSBJDMX_JGBJJ")) + { + stJGBJJ = dicChangedField["XLXSBJDMX_JGBJJ"]; + isChanged = true; + } + else + stJGBJJ = e.RowData["XLXSBJDMX_JGBJJ"].ToString().Trim(); + + string stJGBBJ = ""; + if (dicChangedField.ContainsKey("XLXSBJDMX_JGBBJ")) + { + stJGBBJ = dicChangedField["XLXSBJDMX_JGBBJ"]; + isChanged = true; + } + else + stJGBBJ = e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(); + + string stCPBJ = ""; + if (dicChangedField.ContainsKey("XLXSBJDMX_CPBJ")) + { + stCPBJ = dicChangedField["XLXSBJDMX_CPBJ"]; + isChanged = true; + } + else + stCPBJ = e.RowData["XLXSBJDMX_CPBJ"].ToString().Trim(); + + string stYZZ01 = ""; + if (dicChangedField.ContainsKey("TZYZ_BJ01")) + { + stYZZ01 = dicChangedField["TZYZ_BJ01"]; + isChanged = true; + } + else + stYZZ01 = e.RowData["TZYZ_BJ01"].ToString().Trim(); + + string stYZZ02 = ""; + if (dicChangedField.ContainsKey("TZYZ_BJ02")) + { + stYZZ02 = dicChangedField["TZYZ_BJ02"]; + isChanged = true; + } + else + stYZZ02 = e.RowData["TZYZ_BJ02"].ToString().Trim(); + + string stYZZ03 = ""; + if (dicChangedField.ContainsKey("TZYZ_BJ03")) + { + stYZZ03 = dicChangedField["TZYZ_BJ03"]; + isChanged = true; + } + else + stYZZ03 = e.RowData["TZYZ_BJ03"].ToString().Trim(); + + string stYZZ04 = ""; + if (dicChangedField.ContainsKey("TZYZ_BJ04")) + { + stYZZ04 = dicChangedField["TZYZ_BJ04"]; + isChanged = true; + } + else + stYZZ04 = e.RowData["TZYZ_BJ04"].ToString().Trim(); + + string stYZZ05 = ""; + if (dicChangedField.ContainsKey("TZYZ_BJ05")) + { + stYZZ05 = dicChangedField["TZYZ_BJ05"]; + isChanged = true; + } + else + stYZZ05 = e.RowData["TZYZ_BJ05"].ToString().Trim(); + + string stYZZ06 = ""; + if (dicChangedField.ContainsKey("TZYZ_BJ06")) + { + stYZZ06 = dicChangedField["TZYZ_BJ06"]; + isChanged = true; + } + else + stYZZ06 = e.RowData["TZYZ_BJ06"].ToString().Trim(); + + string stYZZ07 = ""; + if (dicChangedField.ContainsKey("TZYZ_BJ07")) + { + stYZZ07 = dicChangedField["TZYZ_BJ07"]; + isChanged = true; + } + else + stYZZ07 = e.RowData["TZYZ_BJ07"].ToString().Trim(); + + string stYZZ08 = ""; + if (dicChangedField.ContainsKey("TZYZ_BJ08")) + { + stYZZ08 = dicChangedField["TZYZ_BJ08"]; + isChanged = true; + } + else + stYZZ08 = e.RowData["TZYZ_BJ08"].ToString().Trim(); + + string stYZZ09 = ""; + if (dicChangedField.ContainsKey("TZYZ_BJ09")) + { + stYZZ09 = dicChangedField["TZYZ_BJ09"]; + isChanged = true; + } + else + stYZZ09 = e.RowData["TZYZ_BJ09"].ToString().Trim(); + + string stYZZ10 = ""; + if (dicChangedField.ContainsKey("TZYZ_BJ10")) + { + stYZZ10 = dicChangedField["TZYZ_BJ10"]; + isChanged = true; + } + else + stYZZ10 = e.RowData["TZYZ_BJ10"].ToString().Trim(); + + string stYZZ11 = ""; + if (dicChangedField.ContainsKey("TZYZ_BJ11")) + { + stYZZ11 = dicChangedField["TZYZ_BJ11"]; + isChanged = true; + } + else + stYZZ11 = e.RowData["TZYZ_BJ11"].ToString().Trim(); + + string stYZZ12 = ""; + if (dicChangedField.ContainsKey("TZYZ_BJ12")) + { + stYZZ12 = dicChangedField["TZYZ_BJ12"]; + isChanged = true; + } + else + stYZZ12 = e.RowData["TZYZ_BJ12"].ToString().Trim(); + + string stYZZ13 = ""; + if (dicChangedField.ContainsKey("TZYZ_BJ13")) + { + stYZZ13 = dicChangedField["TZYZ_BJ13"]; + isChanged = true; + } + else + stYZZ13 = e.RowData["TZYZ_BJ13"].ToString().Trim(); + + string stYZZ14 = ""; + if (dicChangedField.ContainsKey("TZYZ_BJ14")) + { + stYZZ14 = dicChangedField["TZYZ_BJ14"]; + isChanged = true; + } + else + stYZZ14 = e.RowData["TZYZ_BJ14"].ToString().Trim(); + + string stYZZ15 = ""; + if (dicChangedField.ContainsKey("TZYZ_BJ15")) + { + stYZZ15 = dicChangedField["TZYZ_BJ15"]; + isChanged = true; + } + else + stYZZ15 = e.RowData["TZYZ_BJ15"].ToString().Trim(); + + string stYZZ16 = ""; + if (dicChangedField.ContainsKey("TZYZ_BJ16")) + { + stYZZ16 = dicChangedField["TZYZ_BJ16"]; + isChanged = true; + } + else + stYZZ16 = e.RowData["TZYZ_BJ16"].ToString().Trim(); + + string stYZZ17 = ""; + if (dicChangedField.ContainsKey("TZYZ_BJ17")) + { + stYZZ17 = dicChangedField["TZYZ_BJ17"]; + isChanged = true; + } + else + stYZZ17 = e.RowData["TZYZ_BJ17"].ToString().Trim(); + + string stYZZ18 = ""; + if (dicChangedField.ContainsKey("TZYZ_BJ18")) + { + stYZZ18 = dicChangedField["TZYZ_BJ18"]; + isChanged = true; + } + else + stYZZ18 = e.RowData["TZYZ_BJ18"].ToString().Trim(); + + string stYZZ19 = ""; + if (dicChangedField.ContainsKey("TZYZ_BJ19")) + { + stYZZ19 = dicChangedField["TZYZ_BJ19"]; + isChanged = true; + } + else + stYZZ19 = e.RowData["TZYZ_BJ19"].ToString().Trim(); + + string stYZZ20 = ""; + if (dicChangedField.ContainsKey("TZYZ_BJ20")) + { + stYZZ20 = dicChangedField["TZYZ_BJ20"]; + isChanged = true; + } + else + stYZZ20 = e.RowData["TZYZ_BJ20"].ToString().Trim(); + + string stZDXJ = ""; + if (dicChangedField.ContainsKey("XLXSBJDMX_ZDXJ")) + { + stZDXJ = dicChangedField["XLXSBJDMX_ZDXJ"]; + isChanged = true; + } + else + stZDXJ = e.RowData["XLXSBJDMX_ZDXJ"].ToString().Trim(); + + string stYXJ = ""; + if (dicChangedField.ContainsKey("XLXSBJDMX_YXJG")) + { + stYXJ = dicChangedField["XLXSBJDMX_YXJG"]; + isChanged = true; + } + else + stYXJ = e.RowData["XLXSBJDMX_YXJG"].ToString().Trim(); + + string sJSJ = ""; + if (dicChangedField.ContainsKey("XLXSBJDMX_JSJG")) + { + sJSJ = dicChangedField["XLXSBJDMX_JSJG"]; + isChanged = true; + } + else + sJSJ = e.RowData["XLXSBJDMX_JSJG"].ToString().Trim(); + + string stBJSL = ""; + if (dicChangedField.ContainsKey("XLXSBJDMX_BJSL")) + { + stBJSL = dicChangedField["XLXSBJDMX_BJSL"]; + isChanged = true; + } + else + stBJSL = e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(); + + string stBJJE = ""; + if (dicChangedField.ContainsKey("XLXSBJDMX_BJJE")) + { + stBJJE = dicChangedField["XLXSBJDMX_BJJE"]; + isChanged = true; + } + else + stBJJE = e.RowData["XLXSBJDMX_BJJE"].ToString().Trim(); + + string stTZZDXJ = ""; + if (dicChangedField.ContainsKey("XLXSBJDMX_TZZDXJ")) + { + stTZZDXJ = dicChangedField["XLXSBJDMX_TZZDXJ"]; + isChanged = true; + } + else + stTZZDXJ = e.RowData["XLXSBJDMX_TZZDXJ"].ToString().Trim(); + if (isChanged) + { + string sUpdJJYZList = e.RowData["UpdJJYZList"].ToString().Trim(); + if (sUpdJJYZList.Equals("")) + sUpdJJYZList = "0|0|0|0|0|0|0|0|0|0|0"; + string sTZQZDXJ = e.RowData["XLXSBJDMX_TZQZDXJ"].ToString().Trim(); + double dTZQZDXJ = CMISproConvert.StrToFloat(stZDXJ); + sTZQZDXJ = XLBJDUtils.GetZDXJ(stCLCB, stBJDHQCLCB, stJGBJJ, stJGBBJ, stCPBJ, stYZZ01, stYZZ02, stYZZ03, stYZZ04, stYZZ05, stYZZ06, stYZZ07, stYZZ08, stYZZ09, stYZZ10, stYZZ11, stYZZ12, stYZZ13, stYZZ14, stYZZ15, stYZZ16, stYZZ17, stYZZ18, stYZZ19, stYZZ20, dicChangedField, sTZQZDXJ, e.MasterDataSet["cbxBJFLID"].Trim(), 8, e.RowData["XLXSBJDMX_ZDXJBJDID"].ToString().Trim(), sUpdJJYZList); + stZDXJ = NumberUtils.RoundX(CMISproConvert.StrToFloat(sTZQZDXJ) * (1 + CMISproConvert.StrToFloat(stTZZDXJ) / 100), iXSWS).ToString(); + string stZDXJJCL = XLBJDUtils.GetZDXJJCL(bjflxx.XLXSBJFL_ZDXJJCLLX.Trim(), stZDXJ, stBJSL, stBJJE, stBJDHQCLCB, stJGBBJ); + if (CMISproConvert.StrToFloat(stZDXJ) != dTZQZDXJ) + AddChangedField(dicChangedField, "XLXSBJDMX_ZDXJ", stZDXJ); + sJSJ = XLBJDUtils.GetJSJ(stCLCB, stBJDHQCLCB, stJGBJJ, stJGBBJ, stCPBJ, stZDXJ, stYZZ01, stYZZ02, stYZZ03, stYZZ04, stYZZ05, stYZZ06, stYZZ07, stYZZ08, stYZZ09, stYZZ10, stYZZ11, stYZZ12, stYZZ13, stYZZ14, stYZZ15, stYZZ16, stYZZ17, stYZZ18, stYZZ19, stYZZ20, dicChangedField, sJSJ, e.MasterDataSet["cbxBJFLID"].Trim(), 8, sUpdJJYZList); + string stYXJJCL = XLBJDUtils.GetYXJJCL(bjflxx.XLXSBJFL_YXJJCLLX.Trim(), stZDXJ, stYXJ); + string stZDXJJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(stZDXJ, 0) * CMISproConvert.StrToFloat(stBJSL, 0), 2).ToString(); + string stJSJJE=NumberUtils.RoundX(CMISproConvert.StrToFloat(sJSJ, 0) * CMISproConvert.StrToFloat(stBJSL, 0), 2).ToString(); + string stJSJJCL = XLBJDUtils.GetJSJJCL(bjflxx.XLXSBJFL_JSJJCLLX.Trim(), stJSJJE, stBJJE); + e.ResultPairs.Add("XLXSBJDMX_YXJJCL", stYXJJCL); + e.ResultPairs.Add("XLXSBJDMX_JSJG", sJSJ); + e.ResultPairs.Add("XLXSBJDMX_JSJJE", stJSJJE); + e.ResultPairs.Add("XLXSBJDMX_JSJJCL", stJSJJCL); + e.ResultPairs.Add("XLXSBJDMX_TZQZDXJ", sTZQZDXJ); + e.ResultPairs.Add("XLXSBJDMX_TZZDXJ", stTZZDXJ); + e.ResultPairs.Add("XLXSBJDMX_ZDXJ", stZDXJ); + e.ResultPairs.Add("XLXSBJDMX_ZDXJJCL", stZDXJJCL); + e.ResultPairs.Add("XLXSBJDMX_ZDXJJE", stZDXJJE); + } + + + } + protected void grdXLBJDMX_CalculateField(object sender, CalculateFieldEventArgs e) + { + bool sBJU064 = GetOption(100860000, "BJU064").Equals("Y"); + bool isChanged = false; + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(e.MasterDataSet["cbxBJFLID"].Trim()); + string sHidJSLMList = XLBJDUtils.GetHidJSLMList(e.MasterDataSet["cbxBJFLID"].Trim(), IsXJY.Value.Equals("Y"), IsSJY.Value.Equals("Y"), IsHJY.Value.Equals("Y")); + //为避免多次查询,使用txtBJDYZ记录报价单因子的加价方式 + if (e.MasterDataSet["txtBJDYZ"].Trim().Equals("")) + { + Dictionary dicBJDYZ = XLBJDUtils.GetBJDYZ(e.MasterDataSet["cbxBJFLID"].Trim()); + e.MasterDataSet["txtBJDYZ"] = dicBJDYZ["BJDYZ"]; + e.MasterDataSet["txtTJYSList"] = dicBJDYZ["TJYSList"]; + e.MasterDataSet["txtYZWPIDList"] = dicBJDYZ["YZWPIDList"]; + e.MasterDataSet["txtReadOnlyYZ"] = dicBJDYZ["ReadOnlyYZ"]; + e.MasterDataSet["txtZDWPIDList"] = dicBJDYZ["ZDWPIDList"]; + e.MasterDataSet["txtPFYZID"] = dicBJDYZ["PFYZ"]; + e.MasterDataSet["txtBZPFYZID"] = dicBJDYZ["BZPFYZ"]; + e.MasterDataSet["txtBTYZ"] = dicBJDYZ["BTYZ"]; + e.MasterDataSet["txtXSJEYZ"] = dicBJDYZ["XSJEYZ"]; + e.MasterDataSet["txtFSYZ"] = dicBJDYZ["FSYZ"]; + e.MasterDataSet["txtTZJGBBJ"] = bjflxx.XLXSBJFL_TZJGBBJ; + e.MasterDataSet["txtTZBJDHQLJ"] = bjflxx.XLXSBJFL_TZBJDHQLJ; + } + InitGrid(e.MasterDataSet["cbxBJFLID"].Trim(), iXSWS, e.MasterDataSet["txtBJDYZ"].Trim(), e.MasterDataSet["txtYZWPIDList"].Trim(), + e.MasterDataSet["txtTZJGBBJ"].Trim(), e.MasterDataSet["txtTZBJDHQLJ"].Trim(), + e.MasterDataSet["txtReadOnlyYZ"].Trim(), e.MasterDataSet["txtZDWPIDList"].Trim(), + e.MasterDataSet["txtPFYZID"].Trim(), sHidJSLMList); + + string sBJU003 = GetOption(100860000, "BJU003"); + string sBJU060 = GetOption(100860000, "BJU060"); + bool IsTZTJYZ = false;//判断是否修改了调价因子 + string sJLDW = e.RowData["XLXSBJDMX_JLDW"].ToString().Trim().Split('|')[0].Trim(); + string sMRJLDW = string.Empty; + string sBJCP = e.RowData["XLXSBJDMX_BJCP"].ToString().Trim(); + string sBJDID = e.MasterDataSet["txtBJDID"].Trim(); + string aJGBIDS = e.MasterDataSet["cbxJGBID"].ToString().Trim() + "," + e.MasterDataSet["txtJGCIDS"].ToString().Trim(); + aJGBIDS = aJGBIDS.TrimEnd(','); + + string sBJCPFZJS = bjflxx.XLXSBJFL_BJCPFZJS; + + string sChangeBJCP = GetOption(100860000, "BJU011"); + double dBJSL = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + + bool bBJSDBZ = e.RowData["XLXSBJDMX_BJSDBZ"].ToString().Trim().Equals("Y");//报价锁定标志 + string sCPBJMRXSWS = bjflxx.XLXSBJFL_CPBJMRXSWS.Trim(); + + bool JgIsZero = false;//是否存在有材料用量、无材料价格的情况 + + string sJGBJJLY = XLBJDUtils.GetXLXSJGBXXByJGBID(e.MasterDataSet["cbxJGBID"].ToString().Trim()).XLXSJGB_JJLY; + + //当前计量单位与参数一致后,报价数量的变化后的值 + double dBJU003HSBL = 1.0; + dBJU003HSBL = XLBJDUtils.GetJLDWHSBL_SL(sJLDW, sBJU003); + double dTmpBJSL = dBJSL * dBJU003HSBL; + + string sDefaultXLBZID = ""; + string sDefaultDYDJID = ""; + XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860000); + if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_MRXLBZID)) + sDefaultXLBZID = pzxx.XLXSBJPZ_MRXLBZID; + if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_MRDYDJ)) + sDefaultDYDJID = pzxx.XLXSBJPZ_MRDYDJ; + + + string sorYZZ01 = e.RowData["TZYZ_BJ01"].ToString().Trim(); string sorYZZ02 = e.RowData["TZYZ_BJ02"].ToString().Trim(); + string sorYZZ03 = e.RowData["TZYZ_BJ03"].ToString().Trim(); string sorYZZ04 = e.RowData["TZYZ_BJ04"].ToString().Trim(); + string sorYZZ05 = e.RowData["TZYZ_BJ05"].ToString().Trim(); string sorYZZ06 = e.RowData["TZYZ_BJ06"].ToString().Trim(); + string sorYZZ07 = e.RowData["TZYZ_BJ07"].ToString().Trim(); string sorYZZ08 = e.RowData["TZYZ_BJ08"].ToString().Trim(); + string sorYZZ09 = e.RowData["TZYZ_BJ09"].ToString().Trim(); string sorYZZ10 = e.RowData["TZYZ_BJ10"].ToString().Trim(); + string sorYZZ11 = e.RowData["TZYZ_BJ11"].ToString().Trim(); string sorYZZ12 = e.RowData["TZYZ_BJ12"].ToString().Trim(); + string sorYZZ13 = e.RowData["TZYZ_BJ13"].ToString().Trim(); string sorYZZ14 = e.RowData["TZYZ_BJ14"].ToString().Trim(); + string sorYZZ15 = e.RowData["TZYZ_BJ15"].ToString().Trim(); string sorYZZ16 = e.RowData["TZYZ_BJ16"].ToString().Trim(); + string sorYZZ17 = e.RowData["TZYZ_BJ17"].ToString().Trim(); string sorYZZ18 = e.RowData["TZYZ_BJ18"].ToString().Trim(); + string sorYZZ19 = e.RowData["TZYZ_BJ19"].ToString().Trim(); string sorYZZ20 = e.RowData["TZYZ_BJ20"].ToString().Trim(); + string sorTZZDXJ = e.RowData["XLXSBJDMX_TZZDXJ"].ToString().Trim(); + //用于按公式计算报价、最低限价 + Dictionary dicChangedField = new Dictionary(); + AddChangedField(dicChangedField, e.EventFieldName, e.EventFieldValue); + + string sJGFID = XLBJDUtils.GetJGFID(e.MasterDataSet["datBJRQ"].Trim()); + + string sXSJEYZ = e.MasterDataSet["txtXSJEYZ"];//显示金额因子 + string sFSYZ = e.MasterDataSet["txtFSYZ"];//反算因子 + + //截面比公式适用因子ID + string sJMBGSYZID = bjflxx.XLXSBJFL_JMBGSYZID.Trim(); + string sJMBYZJJFS = XLBJDUtils.GetYZXXByYZID(sJMBGSYZID).XLXSTZYZ_JJFS.Trim(); + if (e.EventFieldName.Equals("XLBZ_XLBZMS")) + { + string sXLBZ = XLBJDUtils.GetXLBZByXLBZMS(e.RowData["XLBZ_XLBZMS"].ToString().Trim()); + e.ResultPairs.Add("XLXSBJDMX_XLBZID", sXLBZ); + AddChangedField(dicChangedField, "XLXSBJDMX_XLBZID", sXLBZ); + e.RowData["XLXSBJDMX_XLBZID"] = sXLBZ; + } + if (e.EventFieldName.Equals("XLXSBJDMX_KHWLID") && SystemUtils.GetSysId().Equals("0573000501")) + { + string sKHWLID = e.RowData["XLXSBJDMX_KHWLID"].ToString().Trim(); + if (string.IsNullOrEmpty(sKHWLID)) + return; + + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add(@"SELECT WL_YWMC + FROM WLSXQSZH + LEFT JOIN WL ON WL_WLID = WLSXQSZH_WLID AND WL_PHSXZ = WLSXQSZH_SXZID + WHERE WLSXQSZH_SXZF21 = :pKHWLID"); + SQL.ParamByName("pKHWLID").Value = sKHWLID; + + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + string sYWMC = ds.Tables[0].Rows[0]["WL_YWMC"].ToString().Trim(); + if (!string.IsNullOrEmpty(sYWMC)) + { + e.ResultPairs.Add("XLXSBJDMX_GYKH", sYWMC); + AddChangedField(dicChangedField, "XLXSBJDMX_GYKH", sYWMC); + e.RowData["XLXSBJDMX_GYKH"] = sYWMC; + } + } + } + + if ((e.EventFieldName.Equals("XLXSBJDMX_GYKH") || e.EventFieldName.Equals("XLXSBJDMX_KHWLID")) && SystemUtils.GetSysId().Equals("0573000501")) + { + string sGYBH = e.RowData["XLXSBJDMX_GYKH"].ToString().Trim(); + if (string.IsNullOrEmpty(sGYBH)) + return; // 无供应商编号则不查询 + + // 数据库查询 + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add(@"SELECT XLXHJGCZBML_DYDJID, XLXHJGCZBML_XLXHID, XLXHJGCZBML_XLBZID, XLXHJGCZBNR_XLGGID,XLBZ_XLBZMS + FROM XLXHJGCZBNR + LEFT JOIN XLXHJGCZBML + ON XLXHJGCZBML_JGCZBID = XLXHJGCZBNR_JGCZBID + AND XLXHJGCZBML_JGCZBXH = XLXHJGCZBNR_JGCZBXH + LEFT JOIN XLBZ ON XLBZ_XLBZID=XLXHJGCZBML_XLBZID + WHERE XLXHJGCZBNR_GYBH = :pGYBH"); + SQL.ParamByName("pGYBH").Value = sGYBH; + + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + DataRow row = ds.Tables[0].Rows[0]; + + // 赋值给 xh (型号ID) + string sXH = row["XLXHJGCZBML_XLXHID"].ToString().Trim(); + e.ResultPairs.Add("XLXSBJDMX_XLXHID", sXH); + AddChangedField(dicChangedField, "XLXSBJDMX_XLXHID", sXH); + e.RowData["XLXSBJDMX_XLXHID"] = sXH; + string sXLJGU007 = GetOption(102579000, "XLJGU007"); + + // 赋值给 gg (规格ID) + string sGG = row["XLXHJGCZBNR_XLGGID"].ToString().Trim() ; + if (sXLJGU007.Equals("A")) + { + sGG = sGG.Replace("x", "X").Replace("X", "*").Replace("*", "×"); + } + else if (sXLJGU007.Equals("B")) + { + sGG = sGG.Replace("x", "X").Replace("X", "*").Replace("×", "*"); + } + e.ResultPairs.Add("XLXSBJDMX_XLGGID", sGG); + AddChangedField(dicChangedField, "XLXSBJDMX_XLGGID", sGG); + e.RowData["XLXSBJDMX_XLGGID"] = sGG; + + // 赋值给 bz (标准ID) + string sBZ = row["XLXHJGCZBML_XLBZID"].ToString().Trim() ; + e.ResultPairs.Add("XLXSBJDMX_XLBZID", GetXLBZXX(sBZ)); + AddChangedField(dicChangedField, "XLXSBJDMX_XLBZID", GetXLBZXX(sBZ)); + e.RowData["XLXSBJDMX_XLBZID"] = GetXLBZXX(sBZ); + + // 赋值给 dydj (电压等级ID) + string sDYDJ = row["XLXHJGCZBML_DYDJID"].ToString().Trim() ; + e.ResultPairs.Add("XLXSBJDMX_DYDJID", sDYDJ); + AddChangedField(dicChangedField, "XLXSBJDMX_DYDJID", sDYDJ); + e.RowData["XLXSBJDMX_DYDJID"] = sDYDJ; + + // 赋值给 xlbzms (线缆标准描述) + string sXLBZMS = row["XLBZ_XLBZMS"].ToString().Trim(); + e.ResultPairs.Add("XLBZ_XLBZMS", sXLBZMS); + AddChangedField(dicChangedField, "XLBZ_XLBZMS", sDYDJ); + e.RowData["XLBZ_XLBZMS"] = sXLBZMS; + } + } + + if (e.EventFieldName.Equals("XLXSBJDMX_XLXHID") || e.EventFieldName.Equals("XLXSBJDMX_XLGGID" )|| e.EventFieldName.Equals("XLXSBJDMX_GYKH") || e.EventFieldName.Equals("XLXSBJDMX_KHWLID") + || e.EventFieldName.Equals("XLXSBJDMX_XLBZID") || e.EventFieldName.Equals("XLBZ_XLBZMS") || e.EventFieldName.Equals("XLXSBJDMX_DYDJID")) + { + string sDYDJID = e.RowData["XLXSBJDMX_DYDJID"].ToString().Trim().Split('|')[0].Trim(); + string sXLXHID = e.RowData["XLXSBJDMX_XLXHID"].ToString().Trim(); + string sXLGGID = e.RowData["XLXSBJDMX_XLGGID"].ToString().Trim(); + string sXLBZID = e.RowData["XLXSBJDMX_XLBZID"].ToString().Trim().Split('|')[0].Trim(); + string sXLYSID = e.RowData["XLXSBJDMX_XLYSID"].ToString().Trim().Split('|')[0].Trim(); + bool bBJCPSD = e.RowData["XLXSBJDMX_BJCPSD"].ToString().Trim().Equals("Y"); + + if (e.EventFieldName.Equals("XLXSBJDMX_XLXHID") || e.EventFieldName.Equals("XLXSBJDMX_XLGGID")) + { + string sYSID = GetDefaultYSID(sXLXHID, sXLGGID, sXLYSID); ; + e.ResultPairs.Add("XLXSBJDMX_XLYSID", GetYSIDXX(sYSID)); + AddChangedField(dicChangedField, "XLXSBJDMX_XLYSID", sYSID); + + } + if (e.EventFieldName.Equals("XLXSBJDMX_XLXHID")) + { + sMRJLDW = GetMRJLDWByJBXH(sXLXHID); + if (!sMRJLDW.Equals("")) + { + sJLDW = sMRJLDW; + e.ResultPairs.Add("XLXSBJDMX_JLDW", sMRJLDW + "|" + sMRJLDW); + } + + } + + if (sBJU064 && (e.EventFieldName.Equals("XLXSBJDMX_XLXHID") || e.EventFieldName.Equals("XLXSBJDMX_XLGGID"))) + { + if (!sXLXHID.Equals("") || !sXLGGID.Equals("")) + { + Dictionary dicXLXX = new Dictionary(); + dicXLXX.Clear(); + GetXLBZID_DYDJID(sXLXHID, sXLGGID, dicXLXX, sBJCPFZJS, aJGBIDS, sJGFID, sBJDID, false); + if (dicXLXX.Count == 0) + { + sXLBZID = ""; + sDYDJID = ""; + } + else if (dicXLXX.Count == 1) + { + sXLBZID = dicXLXX["0"].ToString().Split('*')[0]; + sDYDJID = dicXLXX["0"].ToString().Split('*')[1]; + } + else if (dicXLXX.Count > 1) + { + //若sDefaultXLBZID=’ FirstBZ’,则在明细记录“型号”、“规格”发生变化时, + //若根据型号、规格匹配到的“标准”记录超过1个,则判断原标准是否已匹配,匹配则不修改,否则赋值第一个标准。 + //再根据型号、规格、标准,匹配出电压等级, + //若sDefaultDYDJID='minDY',则默认赋值第一个电压等级,若sDefaultDYDJID为空,则判断电压等级是否唯一,唯一则给电压等级赋默认值,否则不赋值。 + if (sDefaultXLBZID.Equals("FirstBZ")) + { + bool bPPBZ = false; + string stempDYDJID = ""; + for (int i = 0; i < dicXLXX.Count; i++) + { + if (dicXLXX[i.ToString().Trim()].ToString().Split('*')[0].Trim().Equals(sXLBZID)) + { + bPPBZ = true; + stempDYDJID = dicXLXX[i.ToString().Trim()].ToString().Split('*')[1]; + break; + } + } + if (!bPPBZ) + { + sXLBZID = dicXLXX["0"].ToString().Split('*')[0]; + stempDYDJID = dicXLXX["0"].ToString().Split('*')[1]; + } + bool bDYDJIDOne = true; + + string sTmp = ""; + + for (int i = 0; i < dicXLXX.Count; i++) + { + sTmp = dicXLXX[i.ToString().Trim()].ToString().Trim(); + if (sTmp.Split('*')[0].Equals(sXLBZID)) + { + if (!sTmp.Split('*')[1].Equals(stempDYDJID)) + { + bDYDJIDOne = false; + } + } + } + if (!bDYDJIDOne) + { + bool isExist = false;//当前电压等级是否存在 + for (int i = 0; i < dicXLXX.Count; i++) + { + sTmp = dicXLXX[i.ToString().Trim()].ToString().Trim(); + if (sTmp.Split('*')[0].Equals(sXLBZID)) + { + if (sTmp.Split('*')[1].Equals(sDYDJID)) + { + isExist = true; + } + } + } + if (!isExist) + { + if (sDefaultDYDJID.Equals("minDY")) + { + sDYDJID = stempDYDJID; + } + else + { + sDYDJID = ""; + } + } + + } + else + sDYDJID = stempDYDJID; + } + //若sDefaultDYDJID='minDY',则默认赋值第一个电压等级,若当前电压等级存在则不赋值。 + else if (sDefaultDYDJID.Equals("minDY") && !sXLBZID.Equals("")) + { + string stempDYDJID = dicXLXX["0"].ToString().Split('*')[1]; + string sTmp = ""; + bool isExist = false;//当前电压等级是否存在 + for (int i = 0; i < dicXLXX.Count; i++) + { + sTmp = dicXLXX[i.ToString().Trim()].ToString().Trim(); + if (sTmp.Split('*')[0].Equals(sXLBZID)) + { + if (sTmp.Split('*')[1].Equals(sDYDJID)) + { + isExist = true; + } + } + } + if (!isExist) + { + sDYDJID = stempDYDJID; + } + } + } + + } + } + else if (sBJU064 && (e.EventFieldName.Equals("XLXSBJDMX_XLBZID") || e.EventFieldName.Equals("XLBZ_XLBZMS"))) + { + string sBABZFGDY = bjflxx.XLXSBJFL_BABZFGDY; + if (!sBABZFGDY.Equals("Y") || sDYDJID.Trim().Equals("")) + { + if (!sXLXHID.Equals("") && !sXLGGID.Equals("")) + { + Dictionary dicXLXX = new Dictionary(); + dicXLXX.Clear(); + GetXLBZID_DYDJID(sXLXHID, sXLGGID, dicXLXX, sBJCPFZJS, aJGBIDS, sJGFID, sBJDID, false); + string sTmp = ""; + string stempDYDJID = ""; + bool bDYDJIDOne = true; + + + for (int i = 0; i < dicXLXX.Count; i++) + { + sTmp = dicXLXX[i.ToString().Trim()].ToString().Trim(); + if (sTmp.Split('*')[0].Equals(sXLBZID)) + { + if (stempDYDJID.Equals("")) + { + stempDYDJID = sTmp.Split('*')[1]; + } + if (!sTmp.Split('*')[1].Equals(stempDYDJID)) + { + bDYDJIDOne = false; + } + } + } + if (!bDYDJIDOne) + { + bool isExist = false;//当前电压等级是否存在 + for (int i = 0; i < dicXLXX.Count; i++) + { + sTmp = dicXLXX[i.ToString().Trim()].ToString().Trim(); + if (sTmp.Split('*')[0].Equals(sXLBZID)) + { + if (sTmp.Split('*')[1].Equals(sDYDJID)) + { + isExist = true; + } + } + } + if (!isExist) + { + if (sDefaultDYDJID.Equals("minDY")) + { + sDYDJID = stempDYDJID; + } + else + { + sDYDJID = ""; + } + } + } + else + { + sDYDJID = stempDYDJID; + } + + } + } + } + //如果报价产品锁定了,型号、规格、标准、电压等级四要素变化时,不更新报价产品字段(无论参数BJU011什么值) + if (!bBJCPSD) + { + if (sChangeBJCP.Equals("Y")) + { + if (string.IsNullOrEmpty(sDYDJID)) + { + if (!string.IsNullOrEmpty(sXLXHID) && !string.IsNullOrEmpty(sXLGGID)) + { + e.ResultPairs.Add("XLXSBJDMX_BJCP", e.RowData["XLXSBJDMX_XLXHID"].ToString().Trim() + " " + e.RowData["XLXSBJDMX_XLGGID"].ToString().Trim()); + AddChangedField(dicChangedField, "XLXSBJDMX_BJCP", e.RowData["XLXSBJDMX_XLXHID"].ToString().Trim() + " " + e.RowData["XLXSBJDMX_XLGGID"].ToString().Trim()); + } + } + else + { + if (!string.IsNullOrEmpty(sXLXHID) && !string.IsNullOrEmpty(sXLGGID)) + { + if (!sDYDJID.Equals("--")) + { + e.ResultPairs.Add("XLXSBJDMX_BJCP", e.RowData["XLXSBJDMX_XLXHID"].ToString().Trim() + "-" + sDYDJID + " " + e.RowData["XLXSBJDMX_XLGGID"].ToString().Trim()); + AddChangedField(dicChangedField, "XLXSBJDMX_BJCP", e.RowData["XLXSBJDMX_XLXHID"].ToString().Trim() + "-" + sDYDJID + " " + e.RowData["XLXSBJDMX_XLGGID"].ToString().Trim()); + } + else + { + e.ResultPairs.Add("XLXSBJDMX_BJCP", e.RowData["XLXSBJDMX_XLXHID"].ToString().Trim() + " " + e.RowData["XLXSBJDMX_XLGGID"].ToString().Trim()); + AddChangedField(dicChangedField, "XLXSBJDMX_BJCP", e.RowData["XLXSBJDMX_XLXHID"].ToString().Trim() + " " + e.RowData["XLXSBJDMX_XLGGID"].ToString().Trim()); + } + } + } + } + else + { + if (sBJCP.Equals("")) + { + if (string.IsNullOrEmpty(sDYDJID)) + { + if (!string.IsNullOrEmpty(sXLXHID) && !string.IsNullOrEmpty(sXLGGID)) + { + e.ResultPairs.Add("XLXSBJDMX_BJCP", e.RowData["XLXSBJDMX_XLXHID"].ToString().Trim() + " " + e.RowData["XLXSBJDMX_XLGGID"].ToString().Trim()); + AddChangedField(dicChangedField, "XLXSBJDMX_BJCP", e.RowData["XLXSBJDMX_XLXHID"].ToString().Trim() + " " + e.RowData["XLXSBJDMX_XLGGID"].ToString().Trim()); + } + } + else + { + if (!string.IsNullOrEmpty(sXLXHID) && !string.IsNullOrEmpty(sXLGGID)) + { + if (!sDYDJID.Equals("--")) + { + e.ResultPairs.Add("XLXSBJDMX_BJCP", e.RowData["XLXSBJDMX_XLXHID"].ToString().Trim() + "-" + sDYDJID + " " + e.RowData["XLXSBJDMX_XLGGID"].ToString().Trim()); + AddChangedField(dicChangedField, "XLXSBJDMX_BJCP", e.RowData["XLXSBJDMX_XLXHID"].ToString().Trim() + "-" + sDYDJID + " " + e.RowData["XLXSBJDMX_XLGGID"].ToString().Trim()); + } + else + { + e.ResultPairs.Add("XLXSBJDMX_BJCP", e.RowData["XLXSBJDMX_XLXHID"].ToString().Trim() + " " + e.RowData["XLXSBJDMX_XLGGID"].ToString().Trim()); + AddChangedField(dicChangedField, "XLXSBJDMX_BJCP", e.RowData["XLXSBJDMX_XLXHID"].ToString().Trim() + " " + e.RowData["XLXSBJDMX_XLGGID"].ToString().Trim()); + } + } + } + } + else + { + if (e.RowData["XLXSBJDMX_BJCP"].ToString().Trim().Equals(e.RowData["XLXSBJDMX_XLXHID"].ToString().Trim() + " " + e.RowData["XLXSBJDMX_XLGGID"].ToString().Trim())) + { + if (!string.IsNullOrEmpty(sXLXHID) && !string.IsNullOrEmpty(sXLGGID) && !string.IsNullOrEmpty(sDYDJID)) + { + if (!sDYDJID.Equals("--")) + { + e.ResultPairs.Add("XLXSBJDMX_BJCP", e.RowData["XLXSBJDMX_XLXHID"].ToString().Trim() + "-" + sDYDJID + " " + e.RowData["XLXSBJDMX_XLGGID"].ToString().Trim()); + AddChangedField(dicChangedField, "XLXSBJDMX_BJCP", e.RowData["XLXSBJDMX_XLXHID"].ToString().Trim() + "-" + sDYDJID + " " + e.RowData["XLXSBJDMX_XLGGID"].ToString().Trim()); + } + } + } + } + } + } + } + + + if (e.EventFieldName.Equals("XLXSBJDMX_XLXHID") || e.EventFieldName.Equals("XLXSBJDMX_XLGGID")||e.EventFieldName.Equals("XLXSBJDMX_GYKH") || e.EventFieldName.Equals("XLXSBJDMX_KHWLID") + || e.EventFieldName.Equals("XLXSBJDMX_XLBZID") || e.EventFieldName.Equals("XLBZ_XLBZMS") || e.EventFieldName.Equals("XLXSBJDMX_DYDJID") || e.EventFieldName.Equals("XLXSBJDMX_XLYSID")) + { + e.ResultPairs.Add("XLXSBJDMX_WLID", ""); + AddChangedField(dicChangedField, "XLXSBJDMX_WLID", ""); + } + + if (e.EventFieldName.Equals("XLXSBJDMX_XLXHID") || e.EventFieldName.Equals("XLXSBJDMX_XLGGID")||e.EventFieldName.Equals("XLXSBJDMX_GYKH") || e.EventFieldName.Equals("XLXSBJDMX_KHWLID") + || e.EventFieldName.Equals("XLXSBJDMX_XLBZID") || e.EventFieldName.Equals("XLBZ_XLBZMS") || e.EventFieldName.Equals("XLXSBJDMX_DYDJID") + || e.EventFieldName.Equals("XLXSBJDMX_JLDW")) + { + string sXLXHID = e.RowData["XLXSBJDMX_XLXHID"].ToString().Trim(); + string sXLGGID = e.RowData["XLXSBJDMX_XLGGID"].ToString().Trim(); + string sXLBZID = e.RowData["XLXSBJDMX_XLBZID"].ToString().Trim().Split('|')[0].Trim(); + string sDYDJID = e.RowData["XLXSBJDMX_DYDJID"].ToString().Trim().Split('|')[0].Trim(); + string sXLYSID = e.RowData["XLXSBJDMX_XLYSID"].ToString().Trim().Split('|')[0].Trim(); ; + + string sXSQYID = e.MasterDataSet["cbxXSQYID"].Trim(); + string sBJFLID = e.MasterDataSet["cbxBJFLID"].Trim(); + string sJGBID = e.MasterDataSet["cbxJGBID"].Trim(); + string sBJDHQLY = bjflxx.XLXSBJFL_BJDHQLY.Trim(); + string sBJRQ = e.MasterDataSet["datBJRQ"].Trim(); + string sOldWGCPBZ = e.RowData["XLXSBJDMX_WGCPBZ"].ToString().Trim(); + //true表示先加价 + bool JJFirst = XLBJDUtils.JJFirst_BJDYZ(sBJFLID); + string sCPMLMC = e.RowData["XLXSBJDMX_CPMLMC"].ToString().Trim(); + string sCPMLIDMC = ""; + + bool changeXLBZ = false;//标准、电压等级是否重新赋值了 + bool changeDYDJ = false;//标准、电压等级是否重新赋值了 + if (e.EventFieldName.Equals("XLXSBJDMX_XLXHID") || e.EventFieldName.Equals("XLXSBJDMX_XLGGID")) + { + if (!sXLXHID.Equals("") || !sXLGGID.Equals("")) + { + string sXLGGDW = GetXLGGDW(sXLXHID, sXLGGID); + e.ResultPairs.Add("XLGGB_XLGGDW", sXLGGDW); + + if (sBJU064) + { + Dictionary dicXLXX = new Dictionary(); + dicXLXX.Clear(); + GetXLBZID_DYDJID(sXLXHID, sXLGGID, dicXLXX, sBJCPFZJS, aJGBIDS, sJGFID, sBJDID, false); + if (dicXLXX.Count == 0) + { + sXLBZID = ""; + sDYDJID = ""; + e.ResultPairs.Add("XLXSBJDMX_XLBZID", ""); + e.ResultPairs.Add("XLBZ_XLBZMS", ""); + e.ResultPairs.Add("XLXSBJDMX_DYDJID", ""); + AddChangedField(dicChangedField, "XLXSBJDMX_XLBZID", ""); + AddChangedField(dicChangedField, "XLBZ_XLBZMS", ""); + AddChangedField(dicChangedField, "XLXSBJDMX_DYDJID", ""); + changeXLBZ = true; + changeDYDJ = true; + } + else if (dicXLXX.Count == 1) + { + sXLBZID = dicXLXX["0"].ToString().Split('*')[0]; + sDYDJID = dicXLXX["0"].ToString().Split('*')[1]; + e.ResultPairs.Add("XLXSBJDMX_XLBZID", GetXLBZXX(sXLBZID)); + e.ResultPairs.Add("XLBZ_XLBZMS", GetXLBZMS(sXLBZID)); + e.ResultPairs.Add("XLXSBJDMX_DYDJID", sDYDJID + "|" + sDYDJID); + AddChangedField(dicChangedField, "XLXSBJDMX_XLBZID", GetXLBZXX(sXLBZID)); + AddChangedField(dicChangedField, "XLBZ_XLBZMS", GetXLBZMS(sXLBZID)); + AddChangedField(dicChangedField, "XLXSBJDMX_DYDJID", sDYDJID + "|" + sDYDJID); + changeXLBZ = true; + changeDYDJ = true; + } + else if (dicXLXX.Count > 1) + { + //若sDefaultXLBZID=’ FirstBZ’,则在明细记录“型号”、“规格”发生变化时, + //若根据型号、规格匹配到的“标准”记录超过1个,则判断原标准是否已匹配,匹配则不修改,否则赋值第一个标准。 + //再根据型号、规格、标准,匹配出电压等级, + //若sDefaultDYDJID='minDY',则默认赋值第一个电压等级,若sDefaultDYDJID为空,则判断电压等级是否唯一,唯一则给电压等级赋默认值,否则不赋值。 + if (sDefaultXLBZID.Equals("FirstBZ")) + { + bool bPPBZ = false; + string stempDYDJID = ""; + for (int i = 0; i < dicXLXX.Count; i++) + { + if (dicXLXX[i.ToString().Trim()].ToString().Split('*')[0].Trim().Equals(sXLBZID)) + { + bPPBZ = true; + stempDYDJID = dicXLXX[i.ToString().Trim()].ToString().Split('*')[1]; + break; + } + } + if (!bPPBZ) + { + sXLBZID = dicXLXX["0"].ToString().Split('*')[0]; + stempDYDJID = dicXLXX["0"].ToString().Split('*')[1]; + e.ResultPairs.Add("XLXSBJDMX_XLBZID", GetXLBZXX(sXLBZID)); + AddChangedField(dicChangedField, "XLXSBJDMX_XLBZID", GetXLBZXX(sXLBZID)); + e.ResultPairs.Add("XLBZ_XLBZMS", GetXLBZMS(sXLBZID)); + AddChangedField(dicChangedField, "XLBZ_XLBZMS", GetXLBZMS(sXLBZID)); + changeXLBZ = true; + } + bool bDYDJIDOne = true; + + string sTmp = ""; + for (int i = 0; i < dicXLXX.Count; i++) + { + sTmp = dicXLXX[i.ToString().Trim()].ToString().Trim(); + if (sTmp.Split('*')[0].Equals(sXLBZID)) + { + if (!sTmp.Split('*')[1].Equals(stempDYDJID)) + { + bDYDJIDOne = false; + } + } + } + if (!bDYDJIDOne) + { + bool isExist = false;//当前电压等级是否存在 + for (int i = 0; i < dicXLXX.Count; i++) + { + sTmp = dicXLXX[i.ToString().Trim()].ToString().Trim(); + if (sTmp.Split('*')[0].Equals(sXLBZID)) + { + if (sTmp.Split('*')[1].Equals(sDYDJID)) + { + isExist = true; + } + } + } + if (!isExist) + { + if (sDefaultDYDJID.Equals("minDY")) + { + sDYDJID = stempDYDJID; + e.ResultPairs.Add("XLXSBJDMX_DYDJID", sDYDJID + "|" + sDYDJID); + AddChangedField(dicChangedField, "XLXSBJDMX_DYDJID", sDYDJID + "|" + sDYDJID); + changeDYDJ = true; + } + else + { + sDYDJID = ""; + e.ResultPairs.Add("XLXSBJDMX_DYDJID", ""); + AddChangedField(dicChangedField, "XLXSBJDMX_DYDJID", ""); + changeDYDJ = true; + } + } + } + else + { + sDYDJID = stempDYDJID; + e.ResultPairs.Add("XLXSBJDMX_DYDJID", sDYDJID + "|" + sDYDJID); + AddChangedField(dicChangedField, "XLXSBJDMX_DYDJID", sDYDJID + "|" + sDYDJID); + changeDYDJ = true; + } + + } + else if (sDefaultDYDJID.Equals("minDY") && !sXLBZID.Equals("")) + { + bool isExist = false;//当前电压等级是否存在 + for (int i = 0; i < dicXLXX.Count; i++) + { + string sTmp = ""; + sTmp = dicXLXX[i.ToString().Trim()].ToString().Trim(); + if (sTmp.Split('*')[0].Equals(sXLBZID)) + { + if (sTmp.Split('*')[1].Equals(sDYDJID)) + { + isExist = true; + } + } + } + if (!isExist) + { + if (sDefaultDYDJID.Equals("minDY")) + { + sDYDJID = dicXLXX["0"].ToString().Split('*')[1]; + e.ResultPairs.Add("XLXSBJDMX_DYDJID", sDYDJID + "|" + sDYDJID); + AddChangedField(dicChangedField, "XLXSBJDMX_DYDJID", sDYDJID + "|" + sDYDJID); + changeDYDJ = true; + } + else + { + sDYDJID = ""; + e.ResultPairs.Add("XLXSBJDMX_DYDJID", ""); + AddChangedField(dicChangedField, "XLXSBJDMX_DYDJID", ""); + changeDYDJ = true; + } + } + } + } + } + } + } + else if (sBJU064 && (e.EventFieldName.Equals("XLXSBJDMX_XLBZID") || e.EventFieldName.Equals("XLBZ_XLBZMS"))) + { + string sBABZFGDY = bjflxx.XLXSBJFL_BABZFGDY; + if (!sBABZFGDY.Equals("Y") || sDYDJID.Trim().Equals("")) + { + if (!sXLXHID.Equals("") && !sXLGGID.Equals("")) + { + Dictionary dicXLXX = new Dictionary(); + dicXLXX.Clear(); + GetXLBZID_DYDJID(sXLXHID, sXLGGID, dicXLXX, sBJCPFZJS, aJGBIDS, sJGFID, sBJDID, false); + string sTmp = ""; + string stempDYDJID = ""; + bool bDYDJIDOne = true; + + for (int i = 0; i < dicXLXX.Count; i++) + { + sTmp = dicXLXX[i.ToString().Trim()].ToString().Trim(); + if (sTmp.Split('*')[0].Equals(sXLBZID)) + { + if (stempDYDJID.Equals("")) + { + stempDYDJID = sTmp.Split('*')[1]; + } + if (!sTmp.Split('*')[1].Equals(stempDYDJID)) + { + bDYDJIDOne = false; + } + } + } + if (!bDYDJIDOne) + { + bool isExist = false;//当前电压等级是否存在 + for (int i = 0; i < dicXLXX.Count; i++) + { + sTmp = dicXLXX[i.ToString().Trim()].ToString().Trim(); + if (sTmp.Split('*')[0].Equals(sXLBZID)) + { + if (sTmp.Split('*')[1].Equals(sDYDJID)) + { + isExist = true; + } + } + } + if (!isExist) + { + if (sDefaultDYDJID.Equals("minDY")) + { + sDYDJID = stempDYDJID; + if (sDYDJID.Equals("")) + { + e.ResultPairs.Add("XLXSBJDMX_DYDJID", ""); + AddChangedField(dicChangedField, "XLXSBJDMX_DYDJID", ""); + } + else + { + e.ResultPairs.Add("XLXSBJDMX_DYDJID", sDYDJID + "|" + sDYDJID); + AddChangedField(dicChangedField, "XLXSBJDMX_DYDJID", sDYDJID + "|" + sDYDJID); + } + changeDYDJ = true; + } + else + { + sDYDJID = ""; + e.ResultPairs.Add("XLXSBJDMX_DYDJID", ""); + AddChangedField(dicChangedField, "XLXSBJDMX_DYDJID", ""); + changeDYDJ = true; + } + } + } + else + { + sDYDJID = stempDYDJID; + if (sDYDJID.Equals("")) + { + e.ResultPairs.Add("XLXSBJDMX_DYDJID", ""); + AddChangedField(dicChangedField, "XLXSBJDMX_DYDJID", ""); + } + else + { + e.ResultPairs.Add("XLXSBJDMX_DYDJID", sDYDJID + "|" + sDYDJID); + AddChangedField(dicChangedField, "XLXSBJDMX_DYDJID", sDYDJID + "|" + sDYDJID); + } + changeDYDJ = true; + } + } + } + } + //匹配下单线缆标准 + string sXDXLBZID = XLBJDUtils.GetXDXLBZID(sXLXHID, sDYDJID, sXLGGID, sXLBZID); + e.ResultPairs.Add("XLXSBJDMX_XDXLBZID", sXDXLBZID); + + e.ResultPairs.Add("XLXSBJDMX_XDXLXHID", sXLXHID); + + if (XLBJDUtils.ExistGYKH() && (!e.EventFieldName.Equals("XLXSBJDMX_GYKH") && !e.EventFieldName.Equals("XLXSBJDMX_KHWLID" ))) + { + if (SystemUtils.GetSysId().Equals("0021019001")) + { + string sGYKH = XLBJDUtils.GetGYKH(sXLBZID); + e.ResultPairs.Add("XLXSBJDMX_GYKH", sGYKH); + AddChangedField(dicChangedField, "XLXSBJDMX_GYKH", sGYKH); + } + else + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add(@"SELECT XLXHJGCZBNR_GYBH + FROM XLXHJGCZBNR + LEFT JOIN XLXHJGCZBML + ON XLXHJGCZBML_JGCZBID = XLXHJGCZBNR_JGCZBID + AND XLXHJGCZBML_JGCZBXH = XLXHJGCZBNR_JGCZBXH + WHERE XLXHJGCZBML_DYDJID = :pDYDJID + AND XLXHJGCZBML_XLXHID = :pXLXHID + AND XLXHJGCZBML_XLBZID = :pXLBZID + AND XLXHJGCZBNR_XLGGID = :pXLGGID"); + + string sGG = e.RowData["XLXSBJDMX_XLGGID"].ToString().Trim(); + string sXLJGU007 = GetOption(102579000, "XLJGU007"); + sGG = sGG.Replace("x", "X").Replace("X", "*").Replace("*", "×"); + SQL.ParamByName("pDYDJID").Value = e.RowData["XLXSBJDMX_DYDJID"].ToString().Trim().Split('|')[0].Trim(); + SQL.ParamByName("pXLXHID").Value = e.RowData["XLXSBJDMX_XLXHID"].ToString().Trim(); + SQL.ParamByName("pXLBZID").Value = e.RowData["XLXSBJDMX_XLBZID"].ToString().Trim().Split('|')[0].Trim(); + SQL.ParamByName("pXLGGID").Value = sGG; + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + DataRow row = ds.Tables[0].Rows[0]; + string sGYKH = row["XLXHJGCZBNR_GYBH"].ToString().Trim(); + e.ResultPairs.Add("XLXSBJDMX_GYKH", sGYKH); + AddChangedField(dicChangedField, "XLXSBJDMX_GYKH", sGYKH); + } + } + + } + + if (XLBJDUtils.ISDZBZ(sXLBZID)) + { + e.ResultPairs.Add("XLXSBJDMX_DZSC", "Y"); + AddChangedField(dicChangedField, "XLXSBJDMX_DZSC", "Y"); + } + else + { + e.ResultPairs.Add("XLXSBJDMX_DZSC", "N"); + AddChangedField(dicChangedField, "XLXSBJDMX_DZSC", "N"); + } + string sBJU018 = GetOption(100860000, "BJU018"); + string sJGBJLDW = XLBJDUtils.GetJGBJLDW(sJGBID, sXLXHID, sXLGGID, sXLBZID, sDYDJID, sBJU003, sBJU018);//提前依据sBJU018判断是否取精确价格单位 + string sJGBJSDW = XLBJDUtils.GetsJSDW(sJGBJLDW, sBJU003); + + if (!e.EventFieldName.Equals("XLXSBJDMX_JLDW") && !sJGBJSDW.Equals("Km") && !sJGBJSDW.Equals("M")) + { + if (sMRJLDW.Equals("")) + { + e.ResultPairs.Add("XLXSBJDMX_JLDW", sJGBJLDW + "|" + sJGBJLDW); + sJLDW = sJGBJLDW; + } + } + + //产品目录名称赋值 + if (!sXLXHID.Equals("")) + { + XLBJDUtils.GetDefaultCPMLDic(sXLXHID, sDYDJID, ref dicCPML); + if (!dicCPML.TryGetValue(sXLXHID.ToUpper() + "|" + sDYDJID, out sCPMLIDMC)) + { + if (!dicCPML.TryGetValue(sXLXHID.ToUpper() + "|", out sCPMLIDMC)) + { + + } + } + if (sCPMLIDMC == null) + { + e.ResultPairs.Add("XLXSBJDMX_CPMLMC", ""); + e.ResultPairs.Add("HasCPMLID", ""); + e.ResultPairs.Add("XLXSBJDMX_ZHCPMLMC", ""); + } + else + { + e.ResultPairs.Add("XLXSBJDMX_CPMLMC", sCPMLIDMC.Split('|')[1].ToString().Trim()); + e.ResultPairs.Add("HasCPMLID", sCPMLIDMC); + e.ResultPairs.Add("XLXSBJDMX_ZHCPMLMC", XLBJDUtils.GetZHCPMLMC(sCPMLIDMC.Split('|')[0].ToString().Trim())); + + } + } + else + { + e.ResultPairs.Add("XLXSBJDMX_CPMLMC", ""); + e.ResultPairs.Add("HasCPMLID", ""); + e.ResultPairs.Add("XLXSBJDMX_ZHCPMLMC", ""); + } + + //有无清单 + if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSCLQD where XLXSCLQD_WPID='ZZZZ' and XLXSCLQD_XLXHID='{0}' and XLXSCLQD_XLGGID='{1}' and XLXSCLQD_XLBZID='{2}' and XLXSCLQD_DYDJID='{3}'", + sXLXHID, sXLGGID, sXLBZID, sDYDJID.Equals("") ? " " : sDYDJID))) + { + e.ResultPairs.Add("HasCLQD", "Y"); + AddChangedField(dicChangedField, "HasCLQD", "Y"); + } + else + { + e.ResultPairs.Add("HasCLQD", "N"); + AddChangedField(dicChangedField, "HasCLQD", "N"); + } + + string sCPJJ = ""; + string sJJ = ""; + string sCLCB = ""; + string sBJDHQCLCB = ""; + double dBJDJLDWHSBL = 1; + string sWGCPBZ = "N"; + string sJGFBZ = "N"; + int iJGBTJYZYC = 1; + if (XLBJDUtils.IsWGCP(sXLXHID, sXLGGID, sXLBZID, sDYDJID)) + sWGCPBZ = "Y"; + if (XLBJDUtils.IsJGFJGBMX(e.MasterDataSet["datBJRQ"].Trim(), sXLXHID, sXLGGID, sXLBZID, sDYDJID)) + { + sJGFBZ = "Y"; + double dJGFJJ = 0; + double dJGFBJ = 0; + string sJGFJLDW = ""; + XLBJDUtils.GetJGBJJ_JGF(e.MasterDataSet["datBJRQ"].Trim(), sXLXHID, sXLGGID, sXLBZID, sDYDJID, e.MasterDataSet["txtJZBJHS"].Trim().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, sXLBZID, sDYDJID); + } + else + { + dBJDJLDWHSBL = XLBJDUtils.GetJLDWHSBL_JG(sJGFJLDW, sJLDW); + } + sCPJJ = dJGFBJ.ToString().Trim(); + sJJ = dJGFJJ.ToString().Trim(); + sCLCB = dJGFJJ.ToString().Trim(); + sBJDHQCLCB = dJGFJJ.ToString().Trim(); + e.ResultPairs.Add("UpdJJYZList", "0|0|0|0|0|0|0|0|0|0|0"); + AddChangedField(dicChangedField, "UpdJJYZList", "0|0|0|0|0|0|0|0|0|0|0"); + } + else if (sWGCPBZ.Equals("Y")) + { + dBJDJLDWHSBL = 1; + sCPJJ = "0"; + sJJ = "0"; + sCLCB = "0"; + sBJDHQCLCB = "0"; + e.ResultPairs.Add("UpdJJYZList", "0|0|0|0|0|0|0|0|0|0|0"); + AddChangedField(dicChangedField, "UpdJJYZList", "0|0|0|0|0|0|0|0|0|0|0"); + } + else + { + if (!XLBJDUtils.IsJGEJGB(e.MasterDataSet["cbxJGBID"].Trim()))//是否表价实时计算价格表 + { + //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, sXLBZID, sDYDJID); + } + else + { + dBJDJLDWHSBL = XLBJDUtils.GetJLDWHSBL_JG(sJGBJLDW, sJLDW); + } + + if (e.MasterDataSet["txtJGBTJYS"].Trim().Equals("3"))//3|表价(现行价)=基价(出厂价+材料价价差)&调价 + { + bool bExistBJDHQ = false; + if (bjflxx.XLXSBJFL_TZCLHQ.Trim().Equals("Y"))//是否允许调整材料行情 + { + if (!e.MasterDataSet["txtBJDID"].Trim().Equals("")) + { + if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select top 1 XLXSBJDCLHQ_BJCLID from XLXSBJDCLHQ where XLXSBJDCLHQ_BJDID='{0}'", e.MasterDataSet["txtBJDID"].Trim()))) + bExistBJDHQ = true; + } + } + + string sTJ = "0"; + string sLJ = "0"; + if (e.MasterDataSet.ContainsKey("txtTJ")) + sTJ = e.MasterDataSet["txtTJ"].Trim(); + if (e.MasterDataSet.ContainsKey("txtLJ")) + sLJ = e.MasterDataSet["txtLJ"].Trim(); + + Dictionary dicJJYZList = new Dictionary(); + XLBJDUtils.GetFromJGB_BJDHQ_JGBTJYS3(sXLXHID, sXLGGID, sXLBZID, sDYDJID, + e.MasterDataSet["txtBJDID"].Trim(), e.MasterDataSet["datBJRQ"].Trim(), e.MasterDataSet["txtJZBJHS"].Trim().Equals("Y"), iXSWS, + e.MasterDataSet["cbxJGBID"].Trim(), e.MasterDataSet["txtJGBIDS"].Trim(), sJLDW, sBJU003, sBJU018, e.MasterDataSet["txtJSBLFS"].Trim(), + bjflxx.XLXSBJFL_TBJCLID.Trim(), bjflxx.XLXSBJFL_LBJCLID.Trim(), sTJ, sLJ, bExistBJDHQ, + ref sCPJJ, ref sJJ, ref sBJDHQCLCB, ref sCLCB, ref dicJJYZList); + + e.ResultPairs.Add("UpdJJYZList", dicJJYZList["JZ01"].ToString().Trim() + "|" + dicJJYZList["JZ02"].ToString().Trim() + "|" + dicJJYZList["JZ03"].ToString().Trim() + + "|" + dicJJYZList["JZ04"].ToString().Trim() + "|" + dicJJYZList["JZ05"].ToString().Trim() + "|" + dicJJYZList["JZ06"].ToString().Trim() + "|" + dicJJYZList["JZ07"].ToString().Trim() + + "|" + dicJJYZList["JZ08"].ToString().Trim() + "|" + dicJJYZList["JZ09"].ToString().Trim() + "|" + dicJJYZList["JZ10"].ToString().Trim() + "|" + dicJJYZList["YSJDZ"].ToString().Trim()); + + //这里根据换算比例将GetFromJGB_BJDHQ_JGBTJYS3已经换算的数据再换算回来,交由下方统一换算 + double dBJD_JGB_JLDWHSBL = XLBJDUtils.GetJLDWHSBL_JG(sJLDW, sJGBJLDW); + sCPJJ = Convert.ToString(CMISproConvert.StrToFloat(sCPJJ, 0) * dBJD_JGB_JLDWHSBL); + sJJ = Convert.ToString(CMISproConvert.StrToFloat(sJJ, 0) * dBJD_JGB_JLDWHSBL); + sBJDHQCLCB = Convert.ToString(CMISproConvert.StrToFloat(sBJDHQCLCB, 0) * dBJD_JGB_JLDWHSBL); + sCLCB = Convert.ToString(CMISproConvert.StrToFloat(sCLCB, 0) * dBJD_JGB_JLDWHSBL); + } + else + { + //记录衍生产品原四要素 + string tmpXLXHID = sXLXHID; + string tmpXLGGID = sXLGGID; + string tmpXLBZID = sXLBZID; + string tmpDYDJID = sDYDJID; + int iSYXH = 0; + double dYSJDZ = 1; + double dCLCBYSJDZ = 1; + bool bExistedSYJGBMX = false; + if (e.MasterDataSet["txtJGBTJYS"].Trim().Equals("1")) + { + //因素1先将衍生产品四要素替换成所依四要素 + bExistedSYJGBMX = XLBJDUtils.ExistedSYJGBMX(sXLXHID, sXLGGID, sXLBZID, sDYDJID, e.MasterDataSet["cbxJGBID"].Trim(), ref iSYXH, ref dYSJDZ, ref dCLCBYSJDZ); + } + + if (e.MasterDataSet["txtBJLY"].Trim().Equals("D") || e.MasterDataSet["txtBJLY"].Trim().Equals("C")) + { + GetFromJGB(sXLXHID, sXLGGID, sXLBZID, sDYDJID, e.MasterDataSet["cbxJGBID"].Trim(), e.MasterDataSet["txtJGCIDS"].Trim(), e.MasterDataSet["txtJZBJHS"].Trim().Equals("Y"), sBJU018, ref sCPJJ, ref sJJ, ref sCLCB); + if (XLBJDUtils.sJCJLDWList.IndexOf(sJGBJSDW.ToUpper()) >= 0) + { + if (bExistedSYJGBMX) + XLBJDUtils.GetJGBMXBySYXH(e.MasterDataSet["cbxJGBID"].Trim(), iSYXH, ref sXLXHID, ref sXLGGID, ref sXLBZID, ref sDYDJID); + + Dictionary aryBJHQ = XLBJDUtils.GetCLCB_BJHQ(sBJFLID, sJGBID, e.MasterDataSet["datBJRQ"].Trim(), sXLXHID, sXLGGID, sXLBZID, sDYDJID, sJGBJLDW, sBJU003); + + if (bExistedSYJGBMX) + { + sXLXHID = tmpXLXHID; + sXLGGID = tmpXLGGID; + sXLBZID = tmpXLBZID; + sDYDJID = tmpDYDJID; + } + + JgIsZero = aryBJHQ["JgIsZero"] == 1 ? true : false; + + if (e.MasterDataSet["txtJZBJHS"].Trim().Equals("Y")) + { + sCLCB = aryBJHQ["CLCB"].ToString(); + } + else + { + sCLCB = aryBJHQ["WSCLCB"].ToString(); + } + } + } + else + { + if (XLBJDUtils.sJCJLDWList.IndexOf(sJGBJSDW.ToUpper()) >= 0) + { + if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select top 1 XLXSBJFLBJRHQCL_BJCLID from XLXSBJFLBJRHQCL where XLXSBJFLBJRHQCL_BJFLID='{0}'", + e.MasterDataSet["cbxBJFLID"].Trim()))) + { + if (sBJU018.Equals("Y") && XLBJDUtils.sJQCDJLDWList.Contains(sJGBJLDW.ToUpper()))//若BJU018参数值为Y,且为价格表单位为长度单位,则重新计算成本时,成本的小数位数为XLBJDUtils.JQJSXSWS + { + XLBJDUtils.GetFromJGB_BJRHQ(sXLXHID, sXLGGID, sXLBZID, sDYDJID, + e.MasterDataSet["cbxJGBID"].Trim(), e.MasterDataSet["txtJGCIDS"].Trim(), e.MasterDataSet["datBJRQ"].Trim(), e.MasterDataSet["txtJZBJHS"].Trim().Equals("Y"), XLBJDUtils.JQJSXSWS.ToString(), + e.MasterDataSet["cbxBJFLID"].Trim(), sJGBJLDW, sBJU003, ref sCPJJ, ref sJJ, ref sCLCB, ref JgIsZero); + } + else + { + XLBJDUtils.GetFromJGB_BJRHQ(sXLXHID, sXLGGID, sXLBZID, sDYDJID, + e.MasterDataSet["cbxJGBID"].Trim(), e.MasterDataSet["txtJGCIDS"].Trim(), e.MasterDataSet["datBJRQ"].Trim(), e.MasterDataSet["txtJZBJHS"].Trim().Equals("Y"), iXSWS.ToString(), + e.MasterDataSet["cbxBJFLID"].Trim(), sJGBJLDW, sBJU003, ref sCPJJ, ref sJJ, ref sCLCB, ref JgIsZero); + } + } + else + { + GetFromJGB(sXLXHID, sXLGGID, sXLBZID, sDYDJID, e.MasterDataSet["cbxJGBID"].Trim(), e.MasterDataSet["txtJGCIDS"].Trim(), e.MasterDataSet["txtJZBJHS"].Trim().Equals("Y"), sBJU018, ref sCPJJ, ref sJJ, ref sCLCB); + } + } + else + { + GetFromJGB(sXLXHID, sXLGGID, sXLBZID, sDYDJID, e.MasterDataSet["cbxJGBID"].Trim(), e.MasterDataSet["txtJGCIDS"].Trim(), e.MasterDataSet["txtJZBJHS"].Trim().Equals("Y"), sBJU018, ref sCPJJ, ref sJJ, ref sCLCB); + } + } + + string sHasCLQD = string.Empty; + if (dicChangedField.ContainsKey("HasCLQD")) + sHasCLQD = dicChangedField["HasCLQD"]; + else + sHasCLQD = e.RowData["HasCLQD"].ToString().Trim(); + + if (bExistedSYJGBMX && sHasCLQD.Equals("N")) + { + //记录衍生产品原四要素 + tmpXLXHID = sXLXHID; + tmpXLGGID = sXLGGID; + tmpXLBZID = sXLBZID; + tmpDYDJID = sDYDJID; + XLBJDUtils.GetJGBMXBySYXH(e.MasterDataSet["cbxJGBID"].Trim(), iSYXH, ref sXLXHID, ref sXLGGID, ref sXLBZID, ref sDYDJID); + } + + + if (sBJDHQLY.Trim().Equals("1")) + { + if (JgIsZero)//若存在有材料用量、无材料价格的情况,则算出的报价单行情料价改为负数显示 + sBJDHQCLCB = Convert.ToString(CMISproConvert.StrToFloat(sCLCB) * -1); + else + sBJDHQCLCB = sCLCB; + } + else + { + Dictionary aryBJRHQ = XLBJDUtils.GetCLCB_BJRHQ(sBJRQ, sXLXHID, sXLGGID, sXLBZID, sDYDJID); + JgIsZero = aryBJRHQ["JgIsZero"] == 1 ? true : false; + + if (JgIsZero)//若存在有材料用量、无材料价格的情况,则算出的报价单行情料价改为负数显示 + { + if (e.MasterDataSet["txtJZBJHS"].Trim().Equals("Y")) + sBJDHQCLCB = Convert.ToString(aryBJRHQ["CLCB"] * -1); + else + sBJDHQCLCB = Convert.ToString(aryBJRHQ["WSCLCB"] * -1); + } + else + { + if (e.MasterDataSet["txtJZBJHS"].Trim().Equals("Y")) + sBJDHQCLCB = aryBJRHQ["CLCB"].ToString(); + else + sBJDHQCLCB = aryBJRHQ["WSCLCB"].ToString(); + } + //统一为价格表计量单位的价格 + double dBJU003_JGB_JLDWHSBL = XLBJDUtils.GetJLDWHSBL_JG(sBJU003, sJGBJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID); + sBJDHQCLCB = Convert.ToString(CMISproConvert.StrToFloat(sBJDHQCLCB) * dBJU003_JGB_JLDWHSBL); + } + + if (bjflxx.XLXSBJFL_TZCLHQ.Trim().Equals("Y"))//是否允许调整材料行情 + { + if (!e.MasterDataSet["txtBJDID"].Trim().Equals("")) + { + if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select top 1 XLXSBJDCLHQ_BJCLID from XLXSBJDCLHQ where XLXSBJDCLHQ_BJDID='{0}'", e.MasterDataSet["txtBJDID"].Trim()))) + { + Dictionary aryBJDHQCLCB = XLBJDUtils.GetCLCB_BJDHQ(e.MasterDataSet["txtBJDID"].Trim(), e.MasterDataSet["datBJRQ"].Trim(), + sXLXHID, sXLGGID, + sXLBZID, sDYDJID); + if (e.MasterDataSet["txtJZBJHS"].Trim().Equals("Y")) + { + sBJDHQCLCB = aryBJDHQCLCB["CLCB"].ToString(); + } + else + { + sBJDHQCLCB = aryBJDHQCLCB["WSCLCB"].ToString(); + } + + //统一为价格表计量单位的价格 + double dBJU003_JGB_JLDWHSBL = XLBJDUtils.GetJLDWHSBL_JG(sBJU003, sJGBJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID); + + if (bjflxx.XLXSBJFL_ABJDHQJSBJ == "Y" && sJGBJJLY == "A") + { + if (XLBJDUtils.ISExistJGBMX(sJGBID, e.MasterDataSet["txtJGCIDS"].Trim(), sXLXHID, sXLGGID, sXLBZID, sDYDJID) || bjflxx.XLXSBJFL_FJGBCPBJSBJ == "N") + { + sJJ = sBJDHQCLCB; + sCPJJ = Convert.ToString(NumberUtils.RoundX(XLBJDUtils.GetCPJJbyCLCB(NumberUtils.RoundX(CMISproConvert.StrToFloat(sJJ), iXSWS), e.MasterDataSet["cbxJGBID"].ToString().Trim(), e.MasterDataSet["txtJGCIDS"].ToString().Trim(), sXLXHID, sXLGGID, sXLBZID, sDYDJID), iXSWS) * dYSJDZ); + sJJ = Convert.ToString(CMISproConvert.StrToFloat(sJJ) * dBJU003_JGB_JLDWHSBL); + sCPJJ = Convert.ToString(CMISproConvert.StrToFloat(sCPJJ) * dBJU003_JGB_JLDWHSBL); + } + } + + + sBJDHQCLCB = Convert.ToString(CMISproConvert.StrToFloat(sBJDHQCLCB) * dBJU003_JGB_JLDWHSBL); + } + } + } + string sCPLJGS = XLBJDUtils.GetCPLJGS(); + //还原四要素 + if (bExistedSYJGBMX && sHasCLQD.Equals("N")) + { + sXLXHID = tmpXLXHID; + sXLGGID = tmpXLGGID; + sXLBZID = tmpXLBZID; + sDYDJID = tmpDYDJID; + if (sCPLJGS == "2") + { + sBJDHQCLCB = Convert.ToString(CMISproConvert.StrToFloat(sBJDHQCLCB) * dYSJDZ); + sCLCB = Convert.ToString(CMISproConvert.StrToFloat(sCLCB) * dYSJDZ); + } + if (sCPLJGS == "4") + { + sBJDHQCLCB = Convert.ToString(CMISproConvert.StrToFloat(sBJDHQCLCB) * dCLCBYSJDZ); + sCLCB = Convert.ToString(CMISproConvert.StrToFloat(sCLCB) * dCLCBYSJDZ); + } + } + //无材料清单且料价计算方式为3|按报价单料价加点对照表计算 + if (sHasCLQD.Equals("N") && (sCPLJGS == "3")) + { + double dCLQDJDCLCHQ = XLBJDUtils.GetCLQDJDCLCHQ(e.MasterDataSet["txtBJDID"].Trim(), e.MasterDataSet["datBJRQ"].Trim(), sXLXHID, sXLGGID, sXLBZID, sDYDJID, e.MasterDataSet["txtJZBJHS"].Trim().Equals("Y"), sJGBJLDW, sBJU003); + sBJDHQCLCB = Convert.ToString(dCLQDJDCLCHQ); + } + } + } + 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, sXLBZID, sDYDJID); + } + else + { + dBJDJLDWHSBL = XLBJDUtils.GetJLDWHSBL_JG(sBJU003, sJLDW); + } + + string sTJ = "0"; + string sLJ = "0"; + if (e.MasterDataSet.ContainsKey("txtTJ")) + sTJ = e.MasterDataSet["txtTJ"].Trim(); + if (e.MasterDataSet.ContainsKey("txtLJ")) + sLJ = e.MasterDataSet["txtLJ"].Trim(); + + bool bExistBJDHQ = false; + if (bjflxx.XLXSBJFL_TZCLHQ.Trim().Equals("Y"))//是否允许调整材料行情 + { + if (!e.MasterDataSet["txtBJDID"].Trim().Equals("")) + { + if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select top 1 XLXSBJDCLHQ_BJCLID from XLXSBJDCLHQ where XLXSBJDCLHQ_BJDID='{0}'", e.MasterDataSet["txtBJDID"].Trim()))) + bExistBJDHQ = true; + } + } + Dictionary dicJGE = XLBJDUtils.GetCLCB_JGE(sBJRQ, sXLXHID, sXLGGID, sXLBZID, sDYDJID, bjflxx.XLXSBJFL_TBJCLID.Trim(), bjflxx.XLXSBJFL_LBJCLID.Trim(), sTJ, sLJ, e.MasterDataSet["txtJZBJHS"].Trim().Equals("Y"), bExistBJDHQ, e.MasterDataSet["txtBJDID"].Trim(), e.MasterDataSet["cbxBJFLID"].Trim()); + JgIsZero = dicJGE["JgIsZero"] == 1 ? true : false; + sCLCB = dicJGE["CLCB"].ToString(); + sCPJJ = sCLCB; + sJJ = sCLCB; + if (JgIsZero)//若存在有材料用量、无材料价格的情况,则算出的表价、报价单行情料价改为负数显示 + { + sBJDHQCLCB = Convert.ToString(dicJGE["CLCB"] * (-1)); + } + else + { + sBJDHQCLCB = sCLCB; + } + + DataSet dsJGBYZ = new DataSet(); + string sJGBTJYSS = ""; + //计算公式以及因子的输出 + Dictionary dicJGBTZYZGS_JGE = new Dictionary(); + //记录价格表调价因素相关信息-线缆基本信息 + Dictionary dicXLJBXX_JGE = new Dictionary(); + XLBJDUtils.GetdsJGBYZ_JGE(e.MasterDataSet["cbxJGBID"].Trim(), 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", dBJDJLDWHSBL.ToString().Trim()); + dicJGBTZYZGS_JGE = XLBJDUtils.GetJGBTZYZ_JGE(e.MasterDataSet["cbxJGBID"].Trim(), "0", dsJGBYZ, dicXLJBXX_JGE); + Dictionary dicJGBTJYZ = GetJGBBTYZ(e.MasterDataSet["cbxJGBID"].Trim());//因子值不为0的价格表因子 + if (dicJGBTJYZ.Count > 0) + { + foreach (string sKey in dicJGBTJYZ.Keys) + { + if (CMISproConvert.StrToFloat(dicJGBTZYZGS_JGE[sKey]) == 0) + { + iJGBTJYZYC = -1; + break; + } + } + } + Dictionary dicJGBFGQCPYZ = GetJGBFGQCPYZ(e.MasterDataSet["cbxJGBID"].Trim());//覆盖全产品的价格表因子 + if (dicJGBFGQCPYZ.Count > 0) + { + foreach (string sKey in dicJGBFGQCPYZ.Keys) + { + if (CMISproConvert.StrToFloat(dicJGBTZYZGS_JGE[sKey]) == -9999) + { + iJGBTJYZYC = -1; + break; + } + } + } + //sCLCB = NumberUtils.RoundX(CMISproConvert.StrToFloat(sCLCB), iXSWS).ToString().Trim(); + string sTempCLCB = NumberUtils.RoundX(CMISproConvert.StrToFloat(sCLCB), 5).ToString().Trim(); + double dZBZ = CMISproConvert.StrToFloat(sTempCLCB); + if (sJGBTJYSS.Equals("1")) + { + string sTmpGS = ""; + string sJSGS = dicJGBTZYZGS_JGE["JSGS"].Trim(); + if (sJSGS.Equals("")) + { + if (dicJGBTZYZGS_JGE["JJFirst"].Equals("1")) + { + sTmpGS = "(" + sTempCLCB + "+" + dicJGBTZYZGS_JGE["JJ"] + ")*(" + dicJGBTZYZGS_JGE["JD"] + ")*(" + dicJGBTZYZGS_JGE["KD"] + ")*(" + dicJGBTZYZGS_JGE["SX"] + ")"; + } + else + { + sTmpGS = sTempCLCB + "*(" + dicJGBTZYZGS_JGE["JD"] + ")*(" + dicJGBTZYZGS_JGE["KD"] + ")*(" + dicJGBTZYZGS_JGE["SX"] + ")+(" + dicJGBTZYZGS_JGE["JJ"] + ")"; + + } + } + else + { + sTmpGS = sJSGS.Replace("JGBJJ", sTempCLCB); + } + gtExpression exp = new gtExpression(); + try + { + dZBZ = NumberUtils.RoundX(exp.Evaluate(sTmpGS), 15); + } + catch + { + dZBZ = 0; + } + + Dictionary dicJDYZXS = new Dictionary(); + for (int i = 0; i < dsJGBYZ.Tables[0].Rows.Count; i++) + { + string sYZID = dsJGBYZ.Tables[0].Rows[i]["XLXSJGBYZ_YZID"].ToString().Trim(); + string sJJFS = dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_JJFS"].ToString().Trim(); + if (sJJFS.Equals("JJ") && (!dicJDYZXS.ContainsKey(sYZID))) + dicJDYZXS.Add(sYZID, dBJDJLDWHSBL); + else + dicJDYZXS.Add(sYZID, 1); + } + + for (int i = 1; i <= 10; i++) + { + string sYZID = "JZ" + i.ToString().PadLeft(2, '0'); + if (dicJGBTZYZGS_JGE.ContainsKey(sYZID) && dicJDYZXS.ContainsKey(sYZID)) + { + double sYZZ = CMISproConvert.StrToFloat(dicJGBTZYZGS_JGE[sYZID].Trim(), 0) * dicJDYZXS[sYZID]; + dicJGBTZYZGS_JGE[sYZID] = sYZZ.ToString(); + } + + } + e.ResultPairs.Add("UpdJJYZList", dicJGBTZYZGS_JGE["JZ01"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ02"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ03"].Trim() + + "|" + dicJGBTZYZGS_JGE["JZ04"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ05"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ06"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ07"].Trim() + + "|" + dicJGBTZYZGS_JGE["JZ08"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ09"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ10"].Trim() + "|0"); + AddChangedField(dicChangedField, "UpdJJYZList", dicJGBTZYZGS_JGE["JZ01"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ02"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ03"].Trim() + + "|" + dicJGBTZYZGS_JGE["JZ04"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ05"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ06"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ07"].Trim() + + "|" + dicJGBTZYZGS_JGE["JZ08"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ09"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ10"].Trim() + "|0"); + + } + else + { + e.ResultPairs.Add("UpdJJYZList", "0|0|0|0|0|0|0|0|0|0|0"); + AddChangedField(dicChangedField, "UpdJJYZList", "0|0|0|0|0|0|0|0|0|0|0"); + } + + if (JgIsZero)//若存在有材料用量、无材料价格的情况,则算出的表价、报价单行情料价改为负数显示 + { + sCPJJ = Convert.ToString(dZBZ * (-1)); + sCLCB = Convert.ToString(CMISproConvert.StrToFloat(sCLCB) * (-1)); + sJJ = Convert.ToString(CMISproConvert.StrToFloat(sJJ) * (-1)); + } + else + { + sCPJJ = dZBZ.ToString().Trim(); + } + } + } + + double dCPJJ = CMISproConvert.StrToFloat(sCPJJ, 0); + double dJJ = CMISproConvert.StrToFloat(sJJ, 0); + double dCLCB = CMISproConvert.StrToFloat(sCLCB, 0); + double dBJDHQCLCB = CMISproConvert.StrToFloat(sBJDHQCLCB, 0); + + if (sBJU018.Equals("Y") && XLBJDUtils.sJQCDJLDWList.Contains(sJGBJLDW.ToUpper()))//若BJU018参数值为Y,且为价格表单位为长度单位,则先换算倍率后再保留小数位数。 + { + dCPJJ = dCPJJ * dBJDJLDWHSBL; + dJJ = dJJ * dBJDJLDWHSBL; + dCLCB = dCLCB * dBJDJLDWHSBL; + dBJDHQCLCB = dBJDHQCLCB * dBJDJLDWHSBL; + + + dCPJJ = NumberUtils.RoundX(dCPJJ, iXSWS); + dJJ = NumberUtils.RoundX(dJJ, iXSWS); + dCLCB = NumberUtils.RoundX(dCLCB, iXSWS); + dBJDHQCLCB = NumberUtils.RoundX(dBJDHQCLCB, iXSWS); + } + else + { + dCPJJ = NumberUtils.RoundX(dCPJJ, iXSWS); + dJJ = NumberUtils.RoundX(dJJ, iXSWS); + dCLCB = NumberUtils.RoundX(dCLCB, iXSWS); + dBJDHQCLCB = NumberUtils.RoundX(dBJDHQCLCB, iXSWS); + + dCPJJ = dCPJJ * dBJDJLDWHSBL; + dJJ = dJJ * dBJDJLDWHSBL; + dCLCB = dCLCB * dBJDJLDWHSBL; + dBJDHQCLCB = dBJDHQCLCB * dBJDJLDWHSBL; + } + + if (iJGBTJYZYC == -1) + dCPJJ = Math.Abs(dCPJJ) * -1; + if (dJJ == 0) + dCPJJ = 0; + e.ResultPairs.Add("XLXSBJDMX_JGBBJ", dCPJJ.ToString()); + e.ResultPairs.Add("XLXSBJDMX_JGBBJTZ", "N"); + e.ResultPairs.Add("XLXSBJDMX_JGBBJGXSJ", MISproUtils.GetServerTime().ToString().Trim()); + e.ResultPairs.Add("XLXSBJDMX_JGBJJ", dJJ.ToString()); + e.ResultPairs.Add("XLXSBJDMX_CLCB", dCLCB.ToString()); + e.ResultPairs.Add("XLXSBJDMX_BJDHQCLCB", dBJDHQCLCB.ToString()); + e.ResultPairs.Add("XLXSBJDMX_BJDHQCLCBTZ", "N"); + e.ResultPairs.Add("XLXSBJDMX_WGCPBZ", sWGCPBZ); + e.ResultPairs.Add("XLXSBJDMX_JGFBZ", sJGFBZ); + AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJ", dCPJJ.ToString()); + AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJGXSJ", MISproUtils.GetServerTime().ToString().Trim()); + AddChangedField(dicChangedField, "XLXSBJDMX_JGBJJ", dJJ.ToString()); + AddChangedField(dicChangedField, "XLXSBJDMX_CLCB", dCLCB.ToString()); + AddChangedField(dicChangedField, "XLXSBJDMX_BJDHQCLCB", dBJDHQCLCB.ToString()); + AddChangedField(dicChangedField, "XLXSBJDMX_BJDHQCLCBTZ", "N"); + AddChangedField(dicChangedField, "XLXSBJDMX_WGCPBZ", sWGCPBZ); + AddChangedField(dicChangedField, "XLXSBJDMX_JGFBZ", sJGFBZ); + if (CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) != 0) + {//研发自测:王威2025/5/21 15:45:29 + + double fCLZL = XLBJDUtils.GetCLZL(sXLXHID, sXLGGID, sXLBZID, sDYDJID, e.MasterDataSet["cbxJGBID"].Trim()); + double dBJU003_BJD_JLDWHSBL = 1; + if (XLBJDUtils.sJCJLDWList_Weg.IndexOf(sJLDW.ToUpper()) >= 0) + { + dBJU003_BJD_JLDWHSBL = XLBJDUtils.GetCLZL_BJDJLDW(sJLDW); + fCLZL = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) * dBJU003_BJD_JLDWHSBL; + } + else + { + dBJU003_BJD_JLDWHSBL = XLBJDUtils.GetJLDWHSBL_JG(sBJU003, sJLDW); + fCLZL = fCLZL * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + fCLZL = fCLZL * dBJU003_BJD_JLDWHSBL; + } + e.ResultPairs.Add("XLXSBJDMX_CLZL", fCLZL.ToString()); + AddChangedField(dicChangedField, "XLXSBJDMX_CLZL", fCLZL.ToString()); + } + else + { + e.ResultPairs.Add("XLXSBJDMX_CLZL", "0"); + AddChangedField(dicChangedField, "XLXSBJDMX_CLZL", "0"); + } + + + //获取YZID对应的TJYZID + Dictionary dicTJYZID = XLBJDUtils.GetTJYZIDXX("BJD"); + Dictionary dicTJYZIDValue = new Dictionary(); + //获取YZID对应的TYZZYZID + Dictionary dicTYZZYZID = XLBJDUtils.GetTYZZYZIDXX("BJD"); + Dictionary dicTYZZYZIDValue = new Dictionary(); + + //如果外购产品标志变了,则需要重新获取调价因素为空的调价因子值 + Dictionary dicYZZ_ = new Dictionary(); + if (e.MasterDataSet["txtTJYSList"].Contains(",空,")) + { + if (!sOldWGCPBZ.Equals(sWGCPBZ) || e.EventFieldName.Equals("XLXSBJDMX_JLDW")) + { + dicYZZ_ = XLBJDUtils.GetBJDYZZ0(e.MasterDataSet["cbxBJFLID"].Trim(), sWGCPBZ.Equals("Y"), true, sJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID, e.MasterDataSet["txtBJDID"].Trim()); + foreach (string sYZID in dicYZZ_.Keys) + { + e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZ_[sYZID].ToString()); + AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZ_[sYZID].ToString()); + if (dicValueContained(dicTYZZYZID,sYZID)) + { + if (!dicTYZZYZIDValue.ContainsKey(sYZID)) + dicTYZZYZIDValue.Add(sYZID, dicYZZ_[sYZID]); + else + dicTYZZYZIDValue[sYZID] += dicYZZ_[sYZID]; + } + } + } + } + + Dictionary dicYZZ1 = new Dictionary(); + if (e.MasterDataSet["txtTJYSList"].Contains(",1,")) + { + if (e.EventFieldName.Equals("XLXSBJDMX_JLDW")) + { + dicYZZ1 = XLBJDUtils.GetBJDYZZ1(e.MasterDataSet["cbxBJFLID"].Trim(), e.MasterDataSet["cbxPJLX"].Trim(), sJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID, e.MasterDataSet["txtBJDID"].Trim()); + foreach (string sYZID in dicYZZ1.Keys) + { + e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZ1[sYZID].ToString()); + AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZ1[sYZID].ToString()); + if (dicValueContained(dicTYZZYZID, sYZID)) + { + if (!dicTYZZYZIDValue.ContainsKey(sYZID)) + dicTYZZYZIDValue.Add(sYZID, dicYZZ1[sYZID]); + else + dicTYZZYZIDValue[sYZID] += dicYZZ1[sYZID]; + } + } + } + } + + //短段因子合并后的值如果为0、需要重新赋值、否则调整报价产品后就不会校验该产品的合并值了,因为系统判断短段都为0、合并后就是0 + //重新获取按“2|导体材料&电压区间&报价数量区间”设置的调价因子值 + Dictionary dicYZZ2 = new Dictionary(); + if (e.MasterDataSet["txtTJYSList"].Contains(",2,")) + { + if (CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) != 0) + { + dicYZZ2 = XLBJDUtils.GetBJDYZZ2(e.MasterDataSet["cbxBJFLID"].Trim(), sDYDJID, dTmpBJSL, sXLXHID, sJLDW, sBJU003, sXLGGID, sXLBZID, e.MasterDataSet["txtBJDID"].Trim()); + foreach (string sYZID in dicYZZ2.Keys) + { + e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZ2[sYZID].ToString()); + AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZ2[sYZID].ToString()); + if (dicValueContained(dicTYZZYZID, sYZID)) + { + if (!dicTYZZYZIDValue.ContainsKey(sYZID)) + dicTYZZYZIDValue.Add(sYZID, dicYZZ2[sYZID]); + else + dicTYZZYZIDValue[sYZID] += dicYZZ2[sYZID]; + } + } + } + } + + //短段因子合并后的值如果为0、需要重新赋值、否则调整报价产品后就不会校验该产品的合并值了,因为系统判断短段都为0、合并后就是0 + //重新获取按“3|产品用途&电压等级分类&报价数量区间”设置的调价因子值 + Dictionary dicYZZ3 = new Dictionary(); + if (e.MasterDataSet["txtTJYSList"].Contains(",3,")) + { + if (CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) != 0) + { + dicYZZ3 = XLBJDUtils.GetBJDYZZ3(e.MasterDataSet["cbxBJFLID"].Trim(), dTmpBJSL, sXLXHID, sXLGGID, sXLBZID, sDYDJID, sJLDW, sBJU003, e.MasterDataSet["txtBJDID"].Trim()); + foreach (string sYZID in dicYZZ3.Keys) + { + e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZ3[sYZID].ToString()); + AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZ3[sYZID].ToString()); + if (dicValueContained(dicTYZZYZID, sYZID)) + { + if (!dicTYZZYZIDValue.ContainsKey(sYZID)) + dicTYZZYZIDValue.Add(sYZID, dicYZZ3[sYZID]); + else + dicTYZZYZIDValue[sYZID] += dicYZZ3[sYZID]; + } + } + } + } + + //短段因子合并后的值如果为0、需要重新赋值、否则调整报价产品后就不会校验该产品的合并值了,因为系统判断短段都为0、合并后就是0 + //重新获取按“E|型号&电压等级&主芯截面范围&报价数量区间”设置的调价因子值 + Dictionary dicYZZE = new Dictionary(); + if (e.MasterDataSet["txtTJYSList"].Contains(",E,")) + { + if (CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) != 0) + { + if (e.EventFieldName.Equals("XLXSBJDMX_XLXHID") || e.EventFieldName.Equals("XLXSBJDMX_XLGGID") || e.EventFieldName.Equals("XLXSBJDMX_DYDJID") || e.EventFieldName.Equals("XLXSBJDMX_JLDW") + || changeDYDJ) + { + Dictionary dicXLGGB = XLBJDUtils.GetXXJGIDByXLGGID(sXLGGID,sXLXHID); + dicYZZE = XLBJDUtils.GetBJDYZZE(sBJFLID, sXLXHID, sDYDJID, CMISproConvert.StrToFloat(dicXLGGB["ZXJM"]), dTmpBJSL, sJLDW, sBJU003, sXLGGID, sXLBZID, e.MasterDataSet["txtBJDID"].Trim()); + foreach (string sYZID in dicYZZE.Keys) + { + e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZE[sYZID].ToString()); + AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZE[sYZID].ToString()); + if (dicValueContained(dicTYZZYZID, sYZID)) + { + if (!dicTYZZYZIDValue.ContainsKey(sYZID)) + dicTYZZYZIDValue.Add(sYZID, dicYZZE[sYZID]); + else + dicTYZZYZIDValue[sYZID] += dicYZZE[sYZID]; + } + } + } + } + } + + Dictionary dicYZZG = new Dictionary(); + if (e.MasterDataSet["txtTJYSList"].Contains(",G,")) + { + if (CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) != 0) + { + if (e.EventFieldName.Equals("XLXSBJDMX_XLXHID") || e.EventFieldName.Equals("XLXSBJDMX_XLGGID") || e.EventFieldName.Equals("XLXSBJDMX_DYDJID") || e.EventFieldName.Equals("XLXSBJDMX_JLDW") + || changeDYDJ) + { + Dictionary dicXLGGB = XLBJDUtils.GetXXJGIDByXLGGID(sXLGGID, sXLXHID); + dicYZZG = XLBJDUtils.GetBJDYZZG(sBJFLID, sXLXHID, sDYDJID, dicXLGGB["XXJGID"], CMISproConvert.StrToFloat(dicXLGGB["ZXJM"]), dTmpBJSL, sJLDW, sBJU003, e.MasterDataSet["txtBJDID"].Trim()); + foreach (string sYZID in dicYZZG.Keys) + { + e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZG[sYZID].ToString()); + AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZG[sYZID].ToString()); + if (dicValueContained(dicTYZZYZID, sYZID)) + { + if (!dicTYZZYZIDValue.ContainsKey(sYZID)) + dicTYZZYZIDValue.Add(sYZID, dicYZZG[sYZID]); + else + dicTYZZYZIDValue[sYZID] += dicYZZG[sYZID]; + } + } + } + } + } + + + + //短段因子合并后的值如果为0、需要重新赋值、否则调整报价产品后就不会校验该产品的合并值了,因为系统判断短段都为0、合并后就是0 + //重新获取按“F|电压等级&芯线结构&报价数量区间加价/报价数量”设置的调价因子值 + Dictionary dicYZZF = new Dictionary(); + if (e.MasterDataSet["txtTJYSList"].Contains(",F,")) + { + if (CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) != 0) + { + if (e.EventFieldName.Equals("XLXSBJDMX_XLGGID") || e.EventFieldName.Equals("XLXSBJDMX_DYDJID") || e.EventFieldName.Equals("XLXSBJDMX_JLDW") + || changeDYDJ) + { + Dictionary dicXLGGB = XLBJDUtils.GetXXJGIDByXLGGID(sXLGGID, sXLXHID); + dicYZZF = XLBJDUtils.GetBJDYZZF(sBJFLID, sXLXHID, sDYDJID, dicXLGGB["XXJGID"], dTmpBJSL, sJLDW, sBJU003, e.MasterDataSet["txtBJDID"].Trim()); + foreach (string sYZID in dicYZZF.Keys) + { + e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZF[sYZID].ToString()); + AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZF[sYZID].ToString()); + if (dicValueContained(dicTYZZYZID, sYZID)) + { + if (!dicTYZZYZIDValue.ContainsKey(sYZID)) + dicTYZZYZIDValue.Add(sYZID, dicYZZF[sYZID]); + else + dicTYZZYZIDValue[sYZID] += dicYZZF[sYZID]; + } + } + } + } + } + + Dictionary dicYZZH = new Dictionary(); + if (e.MasterDataSet["txtTJYSList"].Contains(",H,")) + { + if (CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) != 0) + { + if (e.EventFieldName.Equals("XLXSBJDMX_XLGGID") || e.EventFieldName.Equals("XLXSBJDMX_XLXHID") || e.EventFieldName.Equals("XLXSBJDMX_DYDJID") || e.EventFieldName.Equals("XLXSBJDMX_JLDW")) + { + Dictionary dicXLGGB = XLBJDUtils.GetXXJGIDByXLGGID(sXLGGID, sXLXHID); + dicYZZH = XLBJDUtils.GetBJDYZZH(sBJFLID, sXLXHID, sDYDJID, sXLYSID, CMISproConvert.StrToFloat(dicXLGGB["ZXJM"]), dTmpBJSL, sJLDW, sBJU003, e.MasterDataSet["txtBJDID"].Trim()); + foreach (string sYZID in dicYZZH.Keys) + { + e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZH[sYZID].ToString()); + AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZH[sYZID].ToString()); + if (dicValueContained(dicTYZZYZID, sYZID)) + { + if (!dicTYZZYZIDValue.ContainsKey(sYZID)) + dicTYZZYZIDValue.Add(sYZID, dicYZZH[sYZID]); + else + dicTYZZYZIDValue[sYZID] += dicYZZH[sYZID]; + } + } + } + } + } + Dictionary dicYZZK = new Dictionary(); + if (e.MasterDataSet["txtTJYSList"].Contains(",K,")) + { + if (CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) != 0) + { + if (e.EventFieldName.Equals("XLXSBJDMX_XLGGID") || e.EventFieldName.Equals("XLXSBJDMX_XLXHID") || e.EventFieldName.Equals("XLXSBJDMX_DYDJID") || e.EventFieldName.Equals("XLXSBJDMX_JLDW")) + { + + dicYZZK = XLBJDUtils.GetBJDYZZK(sBJFLID, dTmpBJSL, sJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID, e.MasterDataSet["txtBJDID"].Trim()); + foreach (string sYZID in dicYZZK.Keys) + { + e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZK[sYZID].ToString()); + AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZK[sYZID].ToString()); + if (dicValueContained(dicTYZZYZID, sYZID)) + { + if (!dicTYZZYZIDValue.ContainsKey(sYZID)) + dicTYZZYZIDValue.Add(sYZID, dicYZZK[sYZID]); + else + dicTYZZYZIDValue[sYZID] += dicYZZK[sYZID]; + } + } + } + } + } + + + Dictionary dicYZZL = new Dictionary(); + if (e.MasterDataSet["txtTJYSList"].Contains(",L,")) + { + if (CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) != 0) + { + if (e.EventFieldName.Equals("XLXSBJDMX_XLGGID") || e.EventFieldName.Equals("XLXSBJDMX_XLXHID") || e.EventFieldName.Equals("XLXSBJDMX_DYDJID") || e.EventFieldName.Equals("XLXSBJDMX_JLDW")) + { + + dicYZZL = XLBJDUtils.GetBJDYZZL(sBJFLID, sXLBZID, dTmpBJSL, sJLDW, sBJU003, sXLXHID, sXLGGID, sDYDJID, e.MasterDataSet["txtBJDID"].Trim()); + foreach (string sYZID in dicYZZL.Keys) + { + e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZL[sYZID].ToString()); + AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZL[sYZID].ToString()); + if (dicValueContained(dicTYZZYZID, sYZID)) + { + if (!dicTYZZYZIDValue.ContainsKey(sYZID)) + dicTYZZYZIDValue.Add(sYZID, dicYZZL[sYZID]); + else + dicTYZZYZIDValue[sYZID] += dicYZZL[sYZID]; + } + } + } + } + } + + //如果线缆型号变了,则需要重新获取按“4|型号”设置的调价因子值 + Dictionary dicYZZ4 = new Dictionary(); + if (e.MasterDataSet["txtTJYSList"].Contains(",4,")) + { + if (e.EventFieldName.Equals("XLXSBJDMX_XLXHID") || e.EventFieldName.Equals("XLXSBJDMX_JLDW")) + { + dicYZZ4 = XLBJDUtils.GetBJDYZZ4(e.MasterDataSet["cbxBJFLID"].Trim(), sXLXHID, sJLDW, sBJU003, sXLGGID, sXLBZID, sDYDJID, e.MasterDataSet["txtBJDID"].Trim()); + foreach (string sYZID in dicYZZ4.Keys) + { + e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZ4[sYZID].ToString()); + AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZ4[sYZID].ToString()); + if (dicValueContained(dicTYZZYZID, sYZID)) + { + if (!dicTYZZYZIDValue.ContainsKey(sYZID)) + dicTYZZYZIDValue.Add(sYZID, dicYZZ4[sYZID]); + else + dicTYZZYZIDValue[sYZID] += dicYZZ4[sYZID]; + } + } + } + } + + //型号,规格,标准,电压等级都会引起调价因素为5的因子值变化 + Dictionary dicYZZ5 = new Dictionary(); + if (e.MasterDataSet["txtTJYSList"].Contains(",5,") || e.EventFieldName.Equals("XLXSBJDMX_JLDW")) + { + //解析主芯截面 + string fZXJM = XLBJDUtils.GetZXJMByXLGGID(sXLGGID, sXLXHID); + dicYZZ5 = XLBJDUtils.GetBJDYZZ5(sBJFLID, sXSQYID, sXLXHID, sXLBZID, sDYDJID, CMISproConvert.StrToFloat(fZXJM), sJLDW, sBJU003, sXLGGID, e.MasterDataSet["txtBJDID"].Trim()); + foreach (string sYZID in dicYZZ5.Keys) + { + e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZ5[sYZID].ToString()); + AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZ5[sYZID].ToString()); + if (dicValueContained(dicTYZZYZID, sYZID)) + { + if (!dicTYZZYZIDValue.ContainsKey(sYZID)) + dicTYZZYZIDValue.Add(sYZID, dicYZZ5[sYZID]); + else + dicTYZZYZIDValue[sYZID] += dicYZZ5[sYZID]; + } + } + } + + //短段因子合并后的值如果为0、需要重新赋值、否则调整报价产品后就不会校验该产品的合并值了,因为系统判断短段都为0、合并后就是0 + //重新获取按“6|报价数量区间调价米数/报价数量”的报价因子值 + Dictionary dicYZZ6 = new Dictionary(); + if (e.MasterDataSet["txtTJYSList"].Contains(",6,")) + { + if (CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) != 0) + { + dicYZZ6 = XLBJDUtils.GetBJDYZZ6(e.MasterDataSet["cbxBJFLID"].Trim(), dTmpBJSL, sJLDW, sBJU003, e.MasterDataSet["txtBJDID"].Trim()); + foreach (string sYZID in dicYZZ6.Keys) + { + e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZ6[sYZID].ToString()); + AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZ6[sYZID].ToString()); + if (dicValueContained(dicTYZZYZID, sYZID)) + { + if (!dicTYZZYZIDValue.ContainsKey(sYZID)) + dicTYZZYZIDValue.Add(sYZID, dicYZZ6[sYZID]); + else + dicTYZZYZIDValue[sYZID] += dicYZZ6[sYZID]; + } + } + } + } + + //获取调价因素为“7|型号&电压等级&芯线结构&主芯截面范围”的报价因子值 + Dictionary dicYZZ7 = new Dictionary(); + if (e.MasterDataSet["txtTJYSList"].Contains(",7,")) + { + if (e.EventFieldName.Equals("XLXSBJDMX_XLXHID") || e.EventFieldName.Equals("XLXSBJDMX_XLGGID") || e.EventFieldName.Equals("XLXSBJDMX_DYDJID") || e.EventFieldName.Equals("XLXSBJDMX_JLDW")) + { + Dictionary dicXLGGB = XLBJDUtils.GetXXJGIDByXLGGID(sXLGGID, sXLXHID); + dicYZZ7 = XLBJDUtils.GetBJDYZZ7(sBJFLID, sXLXHID, sDYDJID, dicXLGGB["XXJGID"], CMISproConvert.StrToFloat(dicXLGGB["ZXJM"]), sJLDW, sBJU003, sXLGGID, sXLBZID, e.MasterDataSet["txtBJDID"].Trim()); + foreach (string sYZID in dicYZZ7.Keys) + { + e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZ7[sYZID].ToString()); + AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZ7[sYZID].ToString()); + if (dicValueContained(dicTYZZYZID, sYZID)) + { + if (!dicTYZZYZIDValue.ContainsKey(sYZID)) + dicTYZZYZIDValue.Add(sYZID, dicYZZ7[sYZID]); + else + dicTYZZYZIDValue[sYZID] += dicYZZ7[sYZID]; + } + } + } + } + + Dictionary dicYZZ8 = new Dictionary(); + if (e.MasterDataSet["txtTJYSList"].Contains(",8,")) + { + if (e.EventFieldName.Equals("XLXSBJDMX_JLDW")) + { + dicYZZ8 = XLBJDUtils.GetBJDYZZ8(e.MasterDataSet["cbxBJFLID"].Trim(), e.MasterDataSet["cbxFKQXNR"].Trim(), sJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID, e.MasterDataSet["txtBJDID"].Trim()); + foreach (string sYZID in dicYZZ8.Keys) + { + e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZ8[sYZID].ToString()); + AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZ8[sYZID].ToString()); + if (dicValueContained(dicTYZZYZID, sYZID)) + { + if (!dicTYZZYZIDValue.ContainsKey(sYZID)) + dicTYZZYZIDValue.Add(sYZID, dicYZZ8[sYZID]); + else + dicTYZZYZIDValue[sYZID] += dicYZZ8[sYZID]; + } + } + } + } + + //获取调价因素为“9|导体材料&产品用途&电压等级分类&产品特性”的报价因子值 + Dictionary dicYZZ9 = new Dictionary(); + if (e.MasterDataSet["txtTJYSList"].Contains(",9,")) + { + dicYZZ9 = XLBJDUtils.GetBJDYZZ9(sBJFLID, sXLXHID, sDYDJID, sJLDW, sBJU003, sXLGGID, sXLBZID, e.MasterDataSet["txtBJDID"].Trim()); + foreach (string sYZID in dicYZZ9.Keys) + { + e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZ9[sYZID].ToString()); + AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZ9[sYZID].ToString()); + if (dicValueContained(dicTYZZYZID, sYZID)) + { + if (!dicTYZZYZIDValue.ContainsKey(sYZID)) + dicTYZZYZIDValue.Add(sYZID, dicYZZ9[sYZID]); + else + dicTYZZYZIDValue[sYZID] += dicYZZ9[sYZID]; + } + } + } + + //获取调价因素为“A|型号&规格&电压&标准”的报价因子值 + Dictionary dicYZZA = new Dictionary(); + if (e.MasterDataSet["txtTJYSList"].Contains(",A,")) + { + dicYZZA = XLBJDUtils.GetBJDYZZA(sBJFLID, sXLXHID, sXLGGID, sXLBZID, sDYDJID, sJLDW, sBJU003, e.MasterDataSet["txtBJDID"].Trim()); + foreach (string sYZID in dicYZZA.Keys) + { + e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZA[sYZID].ToString()); + if (sXSJEYZ.Contains(sYZID)) + { + if (XLBJDUtils.GetYZXXByYZID(sYZID.Trim()).XLXSTZYZ_JJFS == "JJ") + e.ResultPairs.Add("TZYZJE_" + sYZID, NumberUtils.RoundX(dicYZZA[sYZID] * dBJSL, 2).ToString().Trim()); + else + e.ResultPairs.Add("TZYZJE_" + sYZID, NumberUtils.RoundX(dCPJJ * XLBJDUtils.sCJXS * dicYZZA[sYZID] / 100.00 * dBJSL, 2).ToString().Trim()); + } + AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZA[sYZID].ToString()); + if (dicValueContained(dicTYZZYZID, sYZID)) + { + if (!dicTYZZYZIDValue.ContainsKey(sYZID)) + dicTYZZYZIDValue.Add(sYZID, dicYZZA[sYZID]); + else + dicTYZZYZIDValue[sYZID] += dicYZZA[sYZID]; + } + } + } + Dictionary dicYZZBZPF = new Dictionary(); + //包装盘费 + string sBZPFYZID = XLBJDUtils.GetBJFLSYBZPFYZID(sBJFLID); + if (!sBZPFYZID.Equals("")) + { + sBZPFYZID = sBZPFYZID.Split('|')[0]; + + dicYZZBZPF = XLBJDUtils.GetBJDBZPFYZZ(sBZPFYZID, sXLXHID, sXLGGID, sXLBZID, sDYDJID, sJLDW, sBJU003, sBJDID); + foreach (string sYZID in dicYZZBZPF.Keys) + { + e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZBZPF[sYZID].ToString()); + AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZBZPF[sYZID].ToString()); + if (dicValueContained(dicTYZZYZID, sYZID)) + { + if (!dicTYZZYZIDValue.ContainsKey(sYZID)) + dicTYZZYZIDValue.Add(sYZID, dicYZZBZPF[sYZID]); + else + dicTYZZYZIDValue[sYZID] += dicYZZBZPF[sYZID]; + } + } + } + + Dictionary dicYZZCPWJPF = new Dictionary(); + //产品外径盘费 + string sCPWJPFYZID = XLBJDUtils.GetBJFLSYCPWJPFYZID(sBJFLID); + if (!sCPWJPFYZID.Equals("")) + { + sCPWJPFYZID = sCPWJPFYZID.Split('|')[0]; + + dicYZZCPWJPF = XLBJDUtils.GetBJDCPWJPFYZZ(sCPWJPFYZID, sXLXHID, sXLGGID, sXLBZID, sDYDJID, sJLDW, sBJU003, sBJDID, dBJSL); + foreach (string sYZID in dicYZZCPWJPF.Keys) + { + e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZCPWJPF[sYZID].ToString()); + AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZCPWJPF[sYZID].ToString()); + if (dicValueContained(dicTYZZYZID, sYZID)) + { + if (!dicTYZZYZIDValue.ContainsKey(sYZID)) + dicTYZZYZIDValue.Add(sYZID, dicYZZCPWJPF[sYZID]); + else + dicTYZZYZIDValue[sYZID] += dicYZZCPWJPF[sYZID]; + } + } + } + + Dictionary dicYZZB = new Dictionary(); + if (e.MasterDataSet["txtTJYSList"].Contains(",B,")) + { + if (e.EventFieldName.Equals("XLXSBJDMX_JLDW")) + { + dicYZZB = XLBJDUtils.GetBJDYZZB(e.MasterDataSet["cbxBJFLID"].Trim(), e.MasterDataSet["cbxSYDWID"].Trim(), sJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID, e.MasterDataSet["txtBJDID"].Trim()); + foreach (string sYZID in dicYZZB.Keys) + { + e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZB[sYZID].ToString()); + AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZB[sYZID].ToString()); + if (dicValueContained(dicTYZZYZID, sYZID)) + { + if (!dicTYZZYZIDValue.ContainsKey(sYZID)) + dicTYZZYZIDValue.Add(sYZID, dicYZZB[sYZID]); + else + dicTYZZYZIDValue[sYZID] += dicYZZB[sYZID]; + } + } + } + } + + //获取调价因素为“C|产品目录&主芯截面范围&产品特性”的报价因子值 + Dictionary dicYZZC = new Dictionary(); + if (e.MasterDataSet["txtTJYSList"].Contains(",C,")) + { + if (e.EventFieldName.Equals("XLXSBJDMX_XLXHID") || e.EventFieldName.Equals("XLXSBJDMX_XLGGID") || e.EventFieldName.Equals("XLXSBJDMX_DYDJID") || e.EventFieldName.Equals("XLXSBJDMX_JLDW")) + { + Dictionary dicXLGGB = XLBJDUtils.GetXXJGIDByXLGGID(sXLGGID, sXLXHID); + dicYZZC = XLBJDUtils.GetBJDYZZC(e.MasterDataSet["txtBJDID"].Trim(), sBJFLID, sXLXHID, sDYDJID, CMISproConvert.StrToFloat(dicXLGGB["ZXJM"]), sJLDW, sBJU003, sXLGGID, sXLBZID); + foreach (string sYZID in dicYZZC.Keys) + { + e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZC[sYZID].ToString()); + AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZC[sYZID].ToString()); + if (dicValueContained(dicTYZZYZID, sYZID)) + { + if (!dicTYZZYZIDValue.ContainsKey(sYZID)) + dicTYZZYZIDValue.Add(sYZID, dicYZZC[sYZID]); + else + dicTYZZYZIDValue[sYZID] += dicYZZC[sYZID]; + } + } + } + } + + Dictionary dicYZZD = new Dictionary(); + if (e.MasterDataSet["txtTJYSList"].Contains(",D,")) + { + dicYZZD = XLBJDUtils.GetBJDYZZD(e.MasterDataSet["cbxBJFLID"].Trim(), sXLYSID.Split('|')[0].Trim(), sJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID, e.MasterDataSet["txtBJDID"].Trim()); + foreach (string sYZID in dicYZZD.Keys) + { + e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZD[sYZID].ToString()); + AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZD[sYZID].ToString()); + if (dicValueContained(dicTYZZYZID, sYZID)) + { + if (!dicTYZZYZIDValue.ContainsKey(sYZID)) + dicTYZZYZIDValue.Add(sYZID, dicYZZD[sYZID]); + else + dicTYZZYZIDValue[sYZID] += dicYZZD[sYZID]; + } + } + } + + double dCPBJ = 0.0; + + string sTZQCPBJGS = XLBJDUtils.GetTZQCPBJGS(sBJFLID); + if (!sTZQCPBJGS.Equals("")) + { + dCPBJ = XLBJDUtils.GetTZQCPBJ(dCPJJ.ToString(), sorYZZ01, sorYZZ02, sorYZZ03, sorYZZ04, sorYZZ05, sorYZZ06, sorYZZ07, sorYZZ08, sorYZZ09, sorYZZ10, sorYZZ11, sorYZZ12, sorYZZ13, sorYZZ14, sorYZZ15, sorYZZ16, sorYZZ17, sorYZZ18, sorYZZ19, sorYZZ20, dicChangedField, sTZQCPBJGS, sorTZZDXJ); + } + else + { + if (dCPJJ != 0) + { + //除了dicYZZ_、dicYZZ2、dicYZZ3、dicYZZE、dicYZZF、dicYZZ4、dicYZZ5、dicYZZ6、dicYZZ7,dicYZZ9,dicYZZA,dicYZZC,dicYZZBZPF,dicYZZCPWJPF 将剩余的因子纳入dicTYZZYZIDValue + for (int i = sConColumnsCount; i < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) + { + string sFieldName = grdXLBJDMX.Columns[i].DataField; + string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); + if (!dicYZZ2.ContainsKey(sFieldName.Substring(5)) && !dicYZZ3.ContainsKey(sFieldName.Substring(5)) && !dicYZZ8.ContainsKey(sFieldName.Substring(5)) + && !dicYZZF.ContainsKey(sFieldName.Substring(5)) && !dicYZZ4.ContainsKey(sFieldName.Substring(5)) && !dicYZZ5.ContainsKey(sFieldName.Substring(5)) + && !dicYZZ6.ContainsKey(sFieldName.Substring(5)) && !dicYZZ7.ContainsKey(sFieldName.Substring(5)) && !dicYZZD.ContainsKey(sFieldName.Substring(5)) + && !dicYZZ9.ContainsKey(sFieldName.Substring(5)) && !dicYZZA.ContainsKey(sFieldName.Substring(5)) && !dicYZZBZPF.ContainsKey(sFieldName.Substring(5)) && !dicYZZCPWJPF.ContainsKey(sFieldName.Substring(5)) && !dicYZZB.ContainsKey(sFieldName.Substring(5)) + && !dicYZZC.ContainsKey(sFieldName.Substring(5)) && !dicYZZ_.ContainsKey(sFieldName.Substring(5)) && !dicYZZ1.ContainsKey(sFieldName.Substring(5)) + && !dicYZZE.ContainsKey(sFieldName.Substring(5)) && !dicYZZG.ContainsKey(sFieldName.Substring(5)) && !dicYZZH.ContainsKey(sFieldName.Substring(5)) + && !dicYZZK.ContainsKey(sFieldName.Substring(5)) ) + { + if (dicValueContained(dicTYZZYZID, sFieldName.Substring(5))) + { + if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) + dicTYZZYZIDValue.Add(sFieldName.Substring(5), CMISproConvert.StrToFloat(e.RowData[sFieldName].ToString().Trim(), 0)); + else + dicTYZZYZIDValue[sFieldName.Substring(5)] += CMISproConvert.StrToFloat(e.RowData[sFieldName].ToString().Trim(), 0); + } + } + string sYZID = sFieldName.Replace("TZYZ_", ""); + if (sXSJEYZ.Contains(sYZID)) + i++; + } + + //下面构建调价格类型因子的值 + foreach (string sYZID in dicYZZ_.Keys) + { + string tmpTJYZID = dicTJYZID[sYZID]; + double tmpYZZ = dicYZZ_[sYZID]; + string tmpTYZZYZID = dicTYZZYZID[sYZID]; + if (!tmpTYZZYZID.Equals("")) + { + tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); + } + if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) + { + if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) + dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); + else + dicTJYZIDValue[tmpTJYZID] += tmpYZZ; + } + } + foreach (string sYZID in dicYZZ2.Keys) + { + string tmpTJYZID = dicTJYZID[sYZID]; + double tmpYZZ = dicYZZ2[sYZID]; + string tmpTYZZYZID = dicTYZZYZID[sYZID]; + if (!tmpTYZZYZID.Equals("")) + { + tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); + } + if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) + { + if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) + dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); + else + dicTJYZIDValue[tmpTJYZID] += tmpYZZ; + } + } + foreach (string sYZID in dicYZZ3.Keys) + { + string tmpTJYZID = dicTJYZID[sYZID]; + double tmpYZZ = dicYZZ3[sYZID]; + string tmpTYZZYZID = dicTYZZYZID[sYZID]; + if (!tmpTYZZYZID.Equals("")) + { + tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); + } + if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) + { + if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) + dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); + else + dicTJYZIDValue[tmpTJYZID] += tmpYZZ; + } + } + foreach (string sYZID in dicYZZE.Keys) + { + string tmpTJYZID = dicTJYZID[sYZID]; + double tmpYZZ = dicYZZE[sYZID]; + string tmpTYZZYZID = dicTYZZYZID[sYZID]; + if (!tmpTYZZYZID.Equals("")) + { + tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); + } + if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) + { + if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) + dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); + else + dicTJYZIDValue[tmpTJYZID] += tmpYZZ; + } + } + foreach (string sYZID in dicYZZG.Keys) + { + string tmpTJYZID = dicTJYZID[sYZID]; + double tmpYZZ = dicYZZG[sYZID]; + string tmpTYZZYZID = dicTYZZYZID[sYZID]; + if (!tmpTYZZYZID.Equals("")) + { + tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); + } + if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) + { + if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) + dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); + else + dicTJYZIDValue[tmpTJYZID] += tmpYZZ; + } + } + foreach (string sYZID in dicYZZF.Keys) + { + string tmpTJYZID = dicTJYZID[sYZID]; + double tmpYZZ = dicYZZF[sYZID]; + string tmpTYZZYZID = dicTYZZYZID[sYZID]; + if (!tmpTYZZYZID.Equals("")) + { + tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); + } + if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) + { + if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) + dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); + else + dicTJYZIDValue[tmpTJYZID] += tmpYZZ; + } + } + foreach (string sYZID in dicYZZH.Keys) + { + string tmpTJYZID = dicTJYZID[sYZID]; + double tmpYZZ = dicYZZH[sYZID]; + string tmpTYZZYZID = dicTYZZYZID[sYZID]; + if (!tmpTYZZYZID.Equals("")) + { + tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); + } + if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) + { + if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) + dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); + else + dicTJYZIDValue[tmpTJYZID] += tmpYZZ; + } + } + + foreach (string sYZID in dicYZZK.Keys) + { + string tmpTJYZID = dicTJYZID[sYZID]; + double tmpYZZ = dicYZZK[sYZID]; + string tmpTYZZYZID = dicTYZZYZID[sYZID]; + if (!tmpTYZZYZID.Equals("")) + { + tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); + } + if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) + { + if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) + dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); + else + dicTJYZIDValue[tmpTJYZID] += tmpYZZ; + } + } + foreach (string sYZID in dicYZZL.Keys) + { + string tmpTJYZID = dicTJYZID[sYZID]; + double tmpYZZ = dicYZZL[sYZID]; + string tmpTYZZYZID = dicTYZZYZID[sYZID]; + if (!tmpTYZZYZID.Equals("")) + { + tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); + } + if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) + { + if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) + dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); + else + dicTJYZIDValue[tmpTJYZID] += tmpYZZ; + } + } + + + foreach (string sYZID in dicYZZ4.Keys) + { + string tmpTJYZID = dicTJYZID[sYZID]; + double tmpYZZ = dicYZZ4[sYZID]; + string tmpTYZZYZID = dicTYZZYZID[sYZID]; + if (!tmpTYZZYZID.Equals("")) + { + tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); + } + if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) + { + if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) + dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); + else + dicTJYZIDValue[tmpTJYZID] += tmpYZZ; + } + } + foreach (string sYZID in dicYZZ5.Keys) + { + string tmpTJYZID = dicTJYZID[sYZID]; + double tmpYZZ = dicYZZ5[sYZID]; + string tmpTYZZYZID = dicTYZZYZID[sYZID]; + if (!tmpTYZZYZID.Equals("")) + { + tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); + } + if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) + { + if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) + dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); + else + dicTJYZIDValue[tmpTJYZID] += tmpYZZ; + } + } + foreach (string sYZID in dicYZZ6.Keys) + { + string tmpTJYZID = dicTJYZID[sYZID]; + double tmpYZZ = dicYZZ6[sYZID]; + string tmpTYZZYZID = dicTYZZYZID[sYZID]; + if (!tmpTYZZYZID.Equals("")) + { + tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); + } + if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) + { + if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) + dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); + else + dicTJYZIDValue[tmpTJYZID] += tmpYZZ; + } + } + foreach (string sYZID in dicYZZ7.Keys) + { + string tmpTJYZID = dicTJYZID[sYZID]; + double tmpYZZ = dicYZZ7[sYZID]; + string tmpTYZZYZID = dicTYZZYZID[sYZID]; + if (!tmpTYZZYZID.Equals("")) + { + tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); + } + if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) + { + if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) + dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); + else + dicTJYZIDValue[tmpTJYZID] += tmpYZZ; + } + } + foreach (string sYZID in dicYZZ9.Keys) + { + string tmpTJYZID = dicTJYZID[sYZID]; + double tmpYZZ = dicYZZ9[sYZID]; + string tmpTYZZYZID = dicTYZZYZID[sYZID]; + if (!tmpTYZZYZID.Equals("")) + { + tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); + } + if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) + { + if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) + dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); + else + dicTJYZIDValue[tmpTJYZID] += tmpYZZ; + } + } + foreach (string sYZID in dicYZZA.Keys) + { + string tmpTJYZID = dicTJYZID[sYZID]; + double tmpYZZ = dicYZZA[sYZID]; + string tmpTYZZYZID = dicTYZZYZID[sYZID]; + if (!tmpTYZZYZID.Equals("")) + { + tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); + } + if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) + { + if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) + dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); + else + dicTJYZIDValue[tmpTJYZID] += tmpYZZ; + } + } + foreach (string sYZID in dicYZZBZPF.Keys) + { + string tmpTJYZID = dicTJYZID[sYZID]; + double tmpYZZ = dicYZZBZPF[sYZID]; + string tmpTYZZYZID = dicTYZZYZID[sYZID]; + if (!tmpTYZZYZID.Equals("")) + { + tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); + } + if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) + { + if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) + dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); + else + dicTJYZIDValue[tmpTJYZID] += tmpYZZ; + } + } + foreach (string sYZID in dicYZZCPWJPF.Keys) + { + string tmpTJYZID = dicTJYZID[sYZID]; + double tmpYZZ = dicYZZCPWJPF[sYZID]; + string tmpTYZZYZID = dicTYZZYZID[sYZID]; + if (!tmpTYZZYZID.Equals("")) + { + tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); + } + if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) + { + if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) + dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); + else + dicTJYZIDValue[tmpTJYZID] += tmpYZZ; + } + } + foreach (string sYZID in dicYZZC.Keys) + { + string tmpTJYZID = dicTJYZID[sYZID]; + double tmpYZZ = dicYZZC[sYZID]; + string tmpTYZZYZID = dicTYZZYZID[sYZID]; + if (!tmpTYZZYZID.Equals("")) + { + tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); + } + if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) + { + if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) + dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); + else + dicTJYZIDValue[tmpTJYZID] += tmpYZZ; + } + } + foreach (string sYZID in dicYZZD.Keys) + { + string tmpTJYZID = dicTJYZID[sYZID]; + double tmpYZZ = dicYZZD[sYZID]; + string tmpTYZZYZID = dicTYZZYZID[sYZID]; + if (!tmpTYZZYZID.Equals("")) + { + tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); + } + if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) + { + if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) + dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); + else + dicTJYZIDValue[tmpTJYZID] += tmpYZZ; + } + } + + + //除了dicYZZ_、dicYZZ2、dicYZZ3、dicYZZE、dicYZZF、dicYZZ4、dicYZZ5、dicYZZ6、 dicYZZ7,dicYZZ9,dicYZZA,dicYZZBZPF,dicYZZCPWJPF,dicYZZC 将剩余的因子纳入dicTJYZIDValue + for (int i = sConColumnsCount; i < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) + { + string sFieldName = grdXLBJDMX.Columns[i].DataField; + string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); + if (!dicYZZ2.ContainsKey(sFieldName.Substring(5)) && !dicYZZ3.ContainsKey(sFieldName.Substring(5)) && !dicYZZE.ContainsKey(sFieldName.Substring(5)) && !dicYZZG.ContainsKey(sFieldName.Substring(5)) + && !dicYZZF.ContainsKey(sFieldName.Substring(5)) && !dicYZZ4.ContainsKey(sFieldName.Substring(5)) && !dicYZZ5.ContainsKey(sFieldName.Substring(5)) + && !dicYZZ6.ContainsKey(sFieldName.Substring(5)) && !dicYZZ7.ContainsKey(sFieldName.Substring(5)) && !dicYZZ1.ContainsKey(sFieldName.Substring(5)) + && !dicYZZ9.ContainsKey(sFieldName.Substring(5)) && !dicYZZA.ContainsKey(sFieldName.Substring(5)) && !dicYZZBZPF.ContainsKey(sFieldName.Substring(5)) && !dicYZZCPWJPF.ContainsKey(sFieldName.Substring(5)) && !dicYZZ8.ContainsKey(sFieldName.Substring(5)) + && !dicYZZC.ContainsKey(sFieldName.Substring(5)) && !dicYZZ_.ContainsKey(sFieldName.Substring(5)) && !dicYZZB.ContainsKey(sFieldName.Substring(5)) + && !dicYZZD.ContainsKey(sFieldName.Substring(5)) && !dicYZZH.ContainsKey(sFieldName.Substring(5)) && !dicYZZK.ContainsKey(sFieldName.Substring(5))) + { + string tmpTJYZID = dicTJYZID[sFieldName.Substring(5)]; + double tmpYZZ = CMISproConvert.StrToFloat(e.RowData[sFieldName].ToString().Trim(), 0); + string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; + if (!tmpTYZZYZID.Equals("")) + { + tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); + } + if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) + { + if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) + dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); + else + dicTJYZIDValue[tmpTJYZID] += tmpYZZ; + } + } + + string sYZID = sFieldName.Replace("TZYZ_", ""); + if (sXSJEYZ.Contains(sYZID)) + i++; + } + + dCPBJ = dCPJJ; + + double dTZYZ_JJ = 0; + for (int i = sConColumnsCount; i < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) + { + string sFieldName = grdXLBJDMX.Columns[i].DataField; + string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); + + if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(JJ)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) + dTZYZ_JJ += dicTJYZIDValue[sFieldName.Substring(5)]; + } + + string sYZID = sFieldName.Replace("TZYZ_", ""); + if (sXSJEYZ.Contains(sYZID)) + i++; + + } + if (JJFirst) + { + dCPBJ = dCPBJ + dTZYZ_JJ; + } + for (int i = sConColumnsCount; i < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) + { + string sFieldName = grdXLBJDMX.Columns[i].DataField; + string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); + + if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(JD)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) + dCPBJ = dCPBJ * (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); + } + else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(KD)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) + dCPBJ = dCPBJ / (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); + } + else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(DD)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) + dCPBJ = dCPBJ / (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); + } + else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(MD)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) + dCPBJ = dCPBJ * (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); + } + else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(MP)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) + dCPBJ = dCPBJ * (dicTJYZIDValue[sFieldName.Substring(5)] / 100); + } + //MX乘以/DX除以-系数 + else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(MX)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) + dCPBJ = dCPBJ * (dicTJYZIDValue[sFieldName.Substring(5)]); + } + else if (e.MasterDataSet["txtBJDYZ"].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 (e.MasterDataSet["txtBJDYZ"].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); + } + } + } + + string sYZID = sFieldName.Replace("TZYZ_", ""); + if (sXSJEYZ.Contains(sYZID)) + i++; + } + if (!JJFirst) + { + dCPBJ = dCPBJ + dTZYZ_JJ; + } + } + } + string sBTYZ = e.MasterDataSet["txtBTYZ"]; + if (!sBTYZ.Equals("")) + { + foreach (string stBTYZ in sBTYZ.Split(',')) + { + double dYZZ = CMISproConvert.StrToFloat(e.RowData["TZYZ_" + stBTYZ].ToString().Trim(), 0); + if (e.ResultPairs.ContainsKey("TZYZ_" + stBTYZ)) + dYZZ = CMISproConvert.StrToFloat(e.ResultPairs["TZYZ_" + stBTYZ]); + if (dYZZ == 0) + { + dCPBJ = Math.Abs(dCPBJ) * 0; + break; + } + } + } + dCPBJ = NumberUtils.RoundX(dCPBJ, (CMISproConvert.StrToInt(sCPBJMRXSWS) > iXSWS ? CMISproConvert.StrToInt(sCPBJMRXSWS) : iXSWS));//保留精度高的 + DoAfterCalcCPBJ(e, bBJSDBZ, dCLCB, dBJDHQCLCB, dCPJJ, dCPBJ, dBJSL, sCPBJMRXSWS, ref dicChangedField); + } + + + //如果线缆颜色变了,则需要重新获取按“D|颜色”设置的调价因子值 + if (e.EventFieldName.Equals("XLXSBJDMX_XLYSID")) + { + string sXLXHID = e.RowData["XLXSBJDMX_XLXHID"].ToString().Trim(); + string sXLGGID = e.RowData["XLXSBJDMX_XLGGID"].ToString().Trim(); + string sXLBZID = e.RowData["XLXSBJDMX_XLBZID"].ToString().Trim().Split('|')[0].Trim(); + string sDYDJID = e.RowData["XLXSBJDMX_DYDJID"].ToString().Trim().Split('|')[0].Trim(); + string sBJFLID = e.MasterDataSet["cbxBJFLID"].Trim(); + string sXLYSID = e.RowData["XLXSBJDMX_XLYSID"].ToString().Trim().Split('|')[0].Trim(); + + Dictionary dicYZZD = new Dictionary(); + if (e.MasterDataSet["txtTJYSList"].Contains(",D,")) + { + dicYZZD = XLBJDUtils.GetBJDYZZD(e.MasterDataSet["cbxBJFLID"].Trim(), sXLYSID.Split('|')[0].Trim(), sJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID, e.MasterDataSet["txtBJDID"].Trim()); + } + + Dictionary dicYZZH = new Dictionary(); + if (e.MasterDataSet["txtTJYSList"].Contains(",H,")) + { + Dictionary dicXLGGB = XLBJDUtils.GetXXJGIDByXLGGID(sXLGGID, sXLXHID); + dicYZZH = XLBJDUtils.GetBJDYZZH(e.MasterDataSet["cbxBJFLID"].Trim(), sXLXHID, sDYDJID, sXLYSID, CMISproConvert.StrToFloat(dicXLGGB["ZXJM"]), dTmpBJSL, sJLDW, sBJU003, e.MasterDataSet["txtBJDID"].Trim()); + } + //true表示先加价 + bool JJFirst = XLBJDUtils.JJFirst_BJDYZ(sBJFLID); + + + //获取YZID对应的TJYZID + Dictionary dicTJYZID = XLBJDUtils.GetTJYZIDXX("BJD"); + Dictionary dicTJYZIDValue = new Dictionary(); + //获取YZID对应的TYZZYZID + Dictionary dicTYZZYZID = XLBJDUtils.GetTYZZYZIDXX("BJD"); + Dictionary dicTYZZYZIDValue = new Dictionary(); + + foreach (string sYZID in dicYZZD.Keys) + { + e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZD[sYZID].ToString()); + AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZD[sYZID].ToString()); + if (dicValueContained(dicTYZZYZID, sYZID)) + { + if (!dicTYZZYZIDValue.ContainsKey(sYZID)) + dicTYZZYZIDValue.Add(sYZID, dicYZZD[sYZID]); + else + dicTYZZYZIDValue[sYZID] += dicYZZD[sYZID]; + } + } + foreach (string sYZID in dicYZZH.Keys) + { + e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZH[sYZID].ToString()); + AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZH[sYZID].ToString()); + if (dicValueContained(dicTYZZYZID, sYZID)) + { + if (!dicTYZZYZIDValue.ContainsKey(sYZID)) + dicTYZZYZIDValue.Add(sYZID, dicYZZH[sYZID]); + else + dicTYZZYZIDValue[sYZID] += dicYZZH[sYZID]; + } + } + if (dicYZZD.Count > 0 || dicYZZH.Count > 0) + { + double dCPBJ = 0.0; + + string sTZQCPBJGS = XLBJDUtils.GetTZQCPBJGS(sBJFLID); + if (!sTZQCPBJGS.Equals("")) + { + dCPBJ = XLBJDUtils.GetTZQCPBJ(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), sorYZZ01, sorYZZ02, sorYZZ03, sorYZZ04, sorYZZ05, sorYZZ06, sorYZZ07, sorYZZ08, sorYZZ09, sorYZZ10, sorYZZ11, sorYZZ12, sorYZZ13, sorYZZ14, sorYZZ15, sorYZZ16, sorYZZ17, sorYZZ18, sorYZZ19, sorYZZ20, dicChangedField, sTZQCPBJGS, sorTZZDXJ); + } + else + { + if (CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim()) != 0) + { + //除了dicYZZD,将剩余的因子纳入dicTYZZYZIDValue + for (int i = sConColumnsCount; i < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) + { + string sFieldName = grdXLBJDMX.Columns[i].DataField; + string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); + + if (!dicYZZD.ContainsKey(sFieldName.Substring(5)) + && !dicYZZH.ContainsKey(sFieldName.Substring(5))) + { + if (dicValueContained(dicTYZZYZID, sFieldName.Substring(5))) + { + if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) + dicTYZZYZIDValue.Add(sFieldName.Substring(5), CMISproConvert.StrToFloat(e.RowData[sFieldName].ToString().Trim(), 0)); + else + dicTYZZYZIDValue[sFieldName.Substring(5)] += CMISproConvert.StrToFloat(e.RowData[sFieldName].ToString().Trim(), 0); + } + } + + string sYZID = sFieldName.Replace("TZYZ_", ""); + if (sXSJEYZ.Contains(sYZID)) + i++; + } + + //下面构建调价格类型因子的值 + foreach (string sYZID in dicYZZD.Keys) + { + string tmpTJYZID = dicTJYZID[sYZID]; + double tmpYZZ = dicYZZD[sYZID]; + string tmpTYZZYZID = dicTYZZYZID[sYZID]; + if (!tmpTYZZYZID.Equals("")) + { + tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); + } + if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) + { + if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) + dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); + else + dicTJYZIDValue[tmpTJYZID] += tmpYZZ; + } + } + foreach (string sYZID in dicYZZH.Keys) + { + string tmpTJYZID = dicTJYZID[sYZID]; + double tmpYZZ = dicYZZH[sYZID]; + string tmpTYZZYZID = dicTYZZYZID[sYZID]; + if (!tmpTYZZYZID.Equals("")) + { + tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); + } + if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) + { + if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) + dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); + else + dicTJYZIDValue[tmpTJYZID] += tmpYZZ; + } + } + //除了dicYZZD,将剩余的因子纳入dicTJYZIDValue + for (int i = sConColumnsCount; i < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) + { + string sFieldName = grdXLBJDMX.Columns[i].DataField; + string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); + + if (!dicYZZD.ContainsKey(sFieldName.Substring(5)) + && !dicYZZH.ContainsKey(sFieldName.Substring(5))) + { + string tmpTJYZID = dicTJYZID[sFieldName.Substring(5)]; + double tmpYZZ = CMISproConvert.StrToFloat(e.RowData[sFieldName].ToString().Trim(), 0); + string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; + if (!tmpTYZZYZID.Equals("")) + { + tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); + } + if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) + { + if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) + dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); + else + dicTJYZIDValue[tmpTJYZID] += tmpYZZ; + } + } + + string sYZID = sFieldName.Replace("TZYZ_", ""); + if (sXSJEYZ.Contains(sYZID)) + i++; + } + + dCPBJ = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim()); + + double dTZYZ_JJ = 0; + for (int i = sConColumnsCount; i < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) + { + string sFieldName = grdXLBJDMX.Columns[i].DataField; + string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); + + if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(JJ)")) + { + if (dicYZZD.ContainsKey(sFieldName.Substring(5))) + dTZYZ_JJ += dicYZZD[sFieldName.Substring(5)]; + else if (dicYZZH.ContainsKey(sFieldName.Substring(5))) + dTZYZ_JJ += dicYZZH[sFieldName.Substring(5)]; + else if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) + dTZYZ_JJ += dicTJYZIDValue[sFieldName.Substring(5)]; + } + + string sYZID = sFieldName.Replace("TZYZ_", ""); + if (sXSJEYZ.Contains(sYZID)) + i++; + + } + if (JJFirst) + { + dCPBJ = dCPBJ + dTZYZ_JJ; + } + for (int i = sConColumnsCount; i < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) + { + string sFieldName = grdXLBJDMX.Columns[i].DataField; + string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); + + if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(JD)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) + dCPBJ = dCPBJ * (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); + } + else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(KD)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) + dCPBJ = dCPBJ / (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); + } + else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(DD)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) + dCPBJ = dCPBJ / (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); + } + else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(MD)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) + dCPBJ = dCPBJ * (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); + } + else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(MP)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) + dCPBJ = dCPBJ * (dicTJYZIDValue[sFieldName.Substring(5)] / 100); + } + //MX乘以/DX除以-系数 + else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(MX)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) + dCPBJ = dCPBJ * (dicTJYZIDValue[sFieldName.Substring(5)]); + + } + else if (e.MasterDataSet["txtBJDYZ"].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 (e.MasterDataSet["txtBJDYZ"].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); + } + } + } + + string sYZID = sFieldName.Replace("TZYZ_", ""); + if (sXSJEYZ.Contains(sYZID)) + i++; + } + if (!JJFirst) + { + dCPBJ = dCPBJ + dTZYZ_JJ; + } + } + } + + dCPBJ = NumberUtils.RoundX(dCPBJ, (CMISproConvert.StrToInt(sCPBJMRXSWS) > iXSWS ? CMISproConvert.StrToInt(sCPBJMRXSWS) : iXSWS));//保留精度高的 + string sBTYZ = e.MasterDataSet["txtBTYZ"]; + if (!sBTYZ.Equals("")) + { + foreach (string stBTYZ in sBTYZ.Split(',')) + { + double dYZZ = CMISproConvert.StrToFloat(e.RowData["TZYZ_" + stBTYZ].ToString().Trim(), 0); + if (e.ResultPairs.ContainsKey("TZYZ_" + stBTYZ)) + dYZZ = CMISproConvert.StrToFloat(e.ResultPairs["TZYZ_" + stBTYZ]); + if (dYZZ == 0) + { + dCPBJ = Math.Abs(dCPBJ) * 0; + break; + } + } + } + DoAfterCalcCPBJ(e, bBJSDBZ, CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CLCB"].ToString().Trim()), CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim()), + CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim()), dCPBJ, dBJSL, sCPBJMRXSWS, ref dicChangedField); + } + } + + + if (e.EventFieldName.Equals("XLXSBJDMX_BJSL") || e.EventFieldName.Equals("XLXSBJDMX_CPBJ")) + { + if (e.EventFieldName.Equals("XLXSBJDMX_BJSL")) + { + string sXLXHID = e.RowData["XLXSBJDMX_XLXHID"].ToString().Trim(); + string sXLGGID = e.RowData["XLXSBJDMX_XLGGID"].ToString().Trim(); + string sXLBZID = e.RowData["XLXSBJDMX_XLBZID"].ToString().Trim().Split('|')[0].Trim(); + string sDYDJID = e.RowData["XLXSBJDMX_DYDJID"].ToString().Trim().Split('|')[0].Trim(); + string sXLYSID = e.RowData["XLXSBJDMX_XLYSID"].ToString().Trim().Split('|')[0].Trim(); + + string sBJFLID = e.MasterDataSet["cbxBJFLID"].Trim(); + double dCPJJ = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim()); + //true表示先加价 + bool JJFirst = XLBJDUtils.JJFirst_BJDYZ(sBJFLID); + + + //获取YZID对应的TJYZID + Dictionary dicTJYZID = XLBJDUtils.GetTJYZIDXX("BJD"); + Dictionary dicTJYZIDValue = new Dictionary(); + //获取YZID对应的TYZZYZID + Dictionary dicTYZZYZID = XLBJDUtils.GetTYZZYZIDXX("BJD"); + Dictionary dicTYZZYZIDValue = new Dictionary(); + + //如果报价数量变了,则需要重新获取按“2|导体材料&电压区间&报价数量区间”设置的调价因子值 + Dictionary dicYZZ2 = new Dictionary(); + if (e.MasterDataSet["txtTJYSList"].Contains(",2,")) + { + dicYZZ2 = XLBJDUtils.GetBJDYZZ2(e.MasterDataSet["cbxBJFLID"].Trim(), sDYDJID, dTmpBJSL, sXLXHID, sJLDW, sBJU003, sXLGGID, sXLBZID, e.MasterDataSet["txtBJDID"].Trim()); + } + //重新获取按“3|产品用途&电压等级分类&报价数量区间”设置的调价因子值 + Dictionary dicYZZ3 = new Dictionary(); + if (e.MasterDataSet["txtTJYSList"].Contains(",3,")) + { + dicYZZ3 = XLBJDUtils.GetBJDYZZ3(e.MasterDataSet["cbxBJFLID"].Trim(), dTmpBJSL, sXLXHID, sXLGGID, sXLBZID, sDYDJID, sJLDW, sBJU003, e.MasterDataSet["txtBJDID"].Trim()); + } + //重新按“6|报价数量区间调价米数/报价数量”设置的调价因子值 + Dictionary dicYZZ6 = new Dictionary(); + if (e.MasterDataSet["txtTJYSList"].Contains(",6,")) + { + dicYZZ6 = XLBJDUtils.GetBJDYZZ6(e.MasterDataSet["cbxBJFLID"].Trim(), dTmpBJSL, sJLDW, sBJU003, e.MasterDataSet["txtBJDID"].Trim()); + } + //重新按“E|型号&电压等级&主芯截面范围&报价数量区间”设置的调价因子值 + Dictionary dicYZZE = new Dictionary(); + if (e.MasterDataSet["txtTJYSList"].Contains(",E,")) + { + Dictionary dicXLGGB = XLBJDUtils.GetXXJGIDByXLGGID(sXLGGID, sXLXHID); + dicYZZE = XLBJDUtils.GetBJDYZZE(e.MasterDataSet["cbxBJFLID"].Trim(), sXLXHID, sDYDJID, CMISproConvert.StrToFloat(dicXLGGB["ZXJM"]), dTmpBJSL, sJLDW, sBJU003, sXLGGID, sXLBZID, e.MasterDataSet["txtBJDID"].Trim()); + } + Dictionary dicYZZG = new Dictionary(); + if (e.MasterDataSet["txtTJYSList"].Contains(",G,")) + { + Dictionary dicXLGGB = XLBJDUtils.GetXXJGIDByXLGGID(sXLGGID, sXLXHID); + dicYZZG = XLBJDUtils.GetBJDYZZG(e.MasterDataSet["cbxBJFLID"].Trim(), sXLXHID, sDYDJID, dicXLGGB["XXJGID"], CMISproConvert.StrToFloat(dicXLGGB["ZXJM"]), dTmpBJSL, sJLDW, sBJU003, e.MasterDataSet["txtBJDID"].Trim()); + } + + //重新按“F|电压等级&芯线结构&报价数量区间/报价数量”设置的调价因子值 + Dictionary dicYZZF = new Dictionary(); + if (e.MasterDataSet["txtTJYSList"].Contains(",F,")) + { + Dictionary dicXLGGB = XLBJDUtils.GetXXJGIDByXLGGID(sXLGGID, sXLXHID); + dicYZZF = XLBJDUtils.GetBJDYZZF(e.MasterDataSet["cbxBJFLID"].Trim(), sXLXHID, sDYDJID, dicXLGGB["XXJGID"], dTmpBJSL, sJLDW, sBJU003, e.MasterDataSet["txtBJDID"].Trim()); + } + Dictionary dicYZZH = new Dictionary(); + if (e.MasterDataSet["txtTJYSList"].Contains(",H,")) + { + Dictionary dicXLGGB = XLBJDUtils.GetXXJGIDByXLGGID(sXLGGID, sXLXHID); + dicYZZH = XLBJDUtils.GetBJDYZZH(e.MasterDataSet["cbxBJFLID"].Trim(), sXLXHID, sDYDJID, sXLYSID, CMISproConvert.StrToFloat(dicXLGGB["ZXJM"]), dTmpBJSL, sJLDW, sBJU003, e.MasterDataSet["txtBJDID"].Trim()); + } + + Dictionary dicYZZK = new Dictionary(); + if (e.MasterDataSet["txtTJYSList"].Contains(",K,")) + { + dicYZZK = XLBJDUtils.GetBJDYZZK(e.MasterDataSet["cbxBJFLID"].Trim(), dTmpBJSL, sJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID, e.MasterDataSet["txtBJDID"].Trim()); + } + + Dictionary dicYZZL = new Dictionary(); + if (e.MasterDataSet["txtTJYSList"].Contains(",L,")) + { + dicYZZL = XLBJDUtils.GetBJDYZZL(e.MasterDataSet["cbxBJFLID"].Trim(), sXLBZID, dTmpBJSL, sJLDW, sBJU003, sXLXHID, sXLGGID, sDYDJID, e.MasterDataSet["txtBJDID"].Trim()); + } + + Dictionary dicYZZCPWJPF = new Dictionary(); + //产品外径盘费 + string sCPWJPFYZID = XLBJDUtils.GetBJFLSYCPWJPFYZID(sBJFLID); + if (!sCPWJPFYZID.Equals("")) + { + sCPWJPFYZID = sCPWJPFYZID.Split('|')[0]; + + dicYZZCPWJPF = XLBJDUtils.GetBJDCPWJPFYZZ(sCPWJPFYZID, sXLXHID, sXLGGID, sXLBZID, sDYDJID, sJLDW, sBJU003, sBJDID, dBJSL); + foreach (string sYZID in dicYZZCPWJPF.Keys) + { + e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZCPWJPF[sYZID].ToString()); + AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZCPWJPF[sYZID].ToString()); + if (dicValueContained(dicTYZZYZID, sYZID)) + { + if (!dicTYZZYZIDValue.ContainsKey(sYZID)) + dicTYZZYZIDValue.Add(sYZID, dicYZZCPWJPF[sYZID]); + else + dicTYZZYZIDValue[sYZID] += dicYZZCPWJPF[sYZID]; + } + } + } + + + foreach (string sYZID in dicYZZ2.Keys) + { + e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZ2[sYZID].ToString()); + AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZ2[sYZID].ToString()); + if (dicValueContained(dicTYZZYZID, sYZID)) + { + if (!dicTYZZYZIDValue.ContainsKey(sYZID)) + dicTYZZYZIDValue.Add(sYZID, dicYZZ2[sYZID]); + else + dicTYZZYZIDValue[sYZID] += dicYZZ2[sYZID]; + } + } + foreach (string sYZID in dicYZZ3.Keys) + { + e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZ3[sYZID].ToString()); + AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZ3[sYZID].ToString()); + if (dicValueContained(dicTYZZYZID, sYZID)) + { + if (!dicTYZZYZIDValue.ContainsKey(sYZID)) + dicTYZZYZIDValue.Add(sYZID, dicYZZ3[sYZID]); + else + dicTYZZYZIDValue[sYZID] += dicYZZ3[sYZID]; + } + } + foreach (string sYZID in dicYZZ6.Keys) + { + e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZ6[sYZID].ToString()); + AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZ6[sYZID].ToString()); + if (dicValueContained(dicTYZZYZID, sYZID)) + { + if (!dicTYZZYZIDValue.ContainsKey(sYZID)) + dicTYZZYZIDValue.Add(sYZID, dicYZZ6[sYZID]); + else + dicTYZZYZIDValue[sYZID] += dicYZZ6[sYZID]; + } + } + foreach (string sYZID in dicYZZE.Keys) + { + e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZE[sYZID].ToString()); + AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZE[sYZID].ToString()); + if (dicValueContained(dicTYZZYZID, sYZID)) + { + if (!dicTYZZYZIDValue.ContainsKey(sYZID)) + dicTYZZYZIDValue.Add(sYZID, dicYZZE[sYZID]); + else + dicTYZZYZIDValue[sYZID] += dicYZZE[sYZID]; + } + } + foreach (string sYZID in dicYZZG.Keys) + { + e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZG[sYZID].ToString()); + AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZG[sYZID].ToString()); + if (dicValueContained(dicTYZZYZID, sYZID)) + { + if (!dicTYZZYZIDValue.ContainsKey(sYZID)) + dicTYZZYZIDValue.Add(sYZID, dicYZZG[sYZID]); + else + dicTYZZYZIDValue[sYZID] += dicYZZG[sYZID]; + } + } + + foreach (string sYZID in dicYZZF.Keys) + { + e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZF[sYZID].ToString()); + AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZF[sYZID].ToString()); + if (dicValueContained(dicTYZZYZID, sYZID)) + { + if (!dicTYZZYZIDValue.ContainsKey(sYZID)) + dicTYZZYZIDValue.Add(sYZID, dicYZZF[sYZID]); + else + dicTYZZYZIDValue[sYZID] += dicYZZF[sYZID]; + } + } + foreach (string sYZID in dicYZZH.Keys) + { + e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZH[sYZID].ToString()); + AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZH[sYZID].ToString()); + if (dicValueContained(dicTYZZYZID, sYZID)) + { + if (!dicTYZZYZIDValue.ContainsKey(sYZID)) + dicTYZZYZIDValue.Add(sYZID, dicYZZH[sYZID]); + else + dicTYZZYZIDValue[sYZID] += dicYZZH[sYZID]; + } + } + foreach (string sYZID in dicYZZK.Keys) + { + e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZK[sYZID].ToString()); + AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZK[sYZID].ToString()); + if (dicValueContained(dicTYZZYZID, sYZID)) + { + if (!dicTYZZYZIDValue.ContainsKey(sYZID)) + dicTYZZYZIDValue.Add(sYZID, dicYZZK[sYZID]); + else + dicTYZZYZIDValue[sYZID] += dicYZZK[sYZID]; + } + } + + foreach (string sYZID in dicYZZL.Keys) + { + e.ResultPairs.Add("TZYZ_" + sYZID, dicYZZL[sYZID].ToString()); + AddChangedField(dicChangedField, "TZYZ_" + sYZID, dicYZZL[sYZID].ToString()); + if (dicValueContained(dicTYZZYZID, sYZID)) + { + if (!dicTYZZYZIDValue.ContainsKey(sYZID)) + dicTYZZYZIDValue.Add(sYZID, dicYZZL[sYZID]); + else + dicTYZZYZIDValue[sYZID] += dicYZZL[sYZID]; + } + } + if (!sXSJEYZ.Equals("")) + { + foreach (string sXSJEYZID in sXSJEYZ.Split(',')) + { + if (XLBJDUtils.GetYZXXByYZID(sXSJEYZID.Trim()).XLXSTZYZ_JJFS == "JJ") + e.ResultPairs.Add("TZYZJE_" + sXSJEYZID, NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["TZYZ_" + sXSJEYZID].ToString().Trim()) * dBJSL, 2).ToString().Trim()); + else + e.ResultPairs.Add("TZYZJE_" + sXSJEYZID, NumberUtils.RoundX(dCPJJ * XLBJDUtils.sCJXS * CMISproConvert.StrToFloat(e.RowData["TZYZ_" + sXSJEYZID].ToString().Trim()) / 100.0 * dBJSL, 2).ToString().Trim()); + } + } + //报价数量变动影响调价因子,需要重算报价 + if (dicYZZ2.Count > 0 || dicYZZ3.Count > 0 || dicYZZ6.Count > 0 || dicYZZE.Count > 0 || dicYZZG.Count > 0 || dicYZZF.Count > 0 || dicYZZH.Count > 0 || dicYZZK.Count > 0 || dicYZZCPWJPF.Count > 0 || dicYZZL.Count > 0) + { + double dCPBJ = 0.0; + + string sTZQCPBJGS = XLBJDUtils.GetTZQCPBJGS(sBJFLID); + if (!sTZQCPBJGS.Equals("")) + { + dCPBJ = XLBJDUtils.GetTZQCPBJ(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), sorYZZ01, sorYZZ02, sorYZZ03, sorYZZ04, sorYZZ05, sorYZZ06, sorYZZ07, sorYZZ08, sorYZZ09, sorYZZ10, sorYZZ11, sorYZZ12, sorYZZ13, sorYZZ14, sorYZZ15, sorYZZ16, sorYZZ17, sorYZZ18, sorYZZ19, sorYZZ20, dicChangedField, sTZQCPBJGS, sorTZZDXJ); + } + else + { + if (CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim()) != 0) + { + //除了dicYZZ2、dicYZZ3、dicYZZ6、dicYZZE、dicYZZF,将剩余的因子纳入dicTYZZYZIDValue + for (int i = sConColumnsCount; i < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) + { + string sFieldName = grdXLBJDMX.Columns[i].DataField; + string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); + if (!dicYZZ2.ContainsKey(sFieldName.Substring(5)) + && !dicYZZ3.ContainsKey(sFieldName.Substring(5)) + && !dicYZZ6.ContainsKey(sFieldName.Substring(5)) + && !dicYZZE.ContainsKey(sFieldName.Substring(5)) + && !dicYZZG.ContainsKey(sFieldName.Substring(5)) + && !dicYZZF.ContainsKey(sFieldName.Substring(5)) + && !dicYZZH.ContainsKey(sFieldName.Substring(5)) + && !dicYZZK.ContainsKey(sFieldName.Substring(5)) + && !dicYZZCPWJPF.ContainsKey(sFieldName.Substring(5))) + { + if (dicValueContained(dicTYZZYZID, sFieldName.Substring(5))) + { + if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) + dicTYZZYZIDValue.Add(sFieldName.Substring(5), CMISproConvert.StrToFloat(e.RowData[sFieldName].ToString().Trim(), 0)); + else + dicTYZZYZIDValue[sFieldName.Substring(5)] += CMISproConvert.StrToFloat(e.RowData[sFieldName].ToString().Trim(), 0); + } + } + + string sYZID = sFieldName.Replace("TZYZ_", ""); + if (sXSJEYZ.Contains(sYZID)) + i++; + } + + //下面构建调价格类型因子的值 + foreach (string sYZID in dicYZZ2.Keys) + { + string tmpTJYZID = dicTJYZID[sYZID]; + double tmpYZZ = dicYZZ2[sYZID]; + string tmpTYZZYZID = dicTYZZYZID[sYZID]; + if (!tmpTYZZYZID.Equals("")) + { + tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); + } + if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) + { + if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) + dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); + else + dicTJYZIDValue[tmpTJYZID] += tmpYZZ; + } + } + foreach (string sYZID in dicYZZ3.Keys) + { + string tmpTJYZID = dicTJYZID[sYZID]; + double tmpYZZ = dicYZZ3[sYZID]; + string tmpTYZZYZID = dicTYZZYZID[sYZID]; + if (!tmpTYZZYZID.Equals("")) + { + tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); + } + if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) + { + if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) + dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); + else + dicTJYZIDValue[tmpTJYZID] += tmpYZZ; + } + } + foreach (string sYZID in dicYZZ6.Keys) + { + string tmpTJYZID = dicTJYZID[sYZID]; + double tmpYZZ = dicYZZ6[sYZID]; + string tmpTYZZYZID = dicTYZZYZID[sYZID]; + if (!tmpTYZZYZID.Equals("")) + { + tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); + } + if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) + { + if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) + dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); + else + dicTJYZIDValue[tmpTJYZID] += tmpYZZ; + } + } + foreach (string sYZID in dicYZZE.Keys) + { + string tmpTJYZID = dicTJYZID[sYZID]; + double tmpYZZ = dicYZZE[sYZID]; + string tmpTYZZYZID = dicTYZZYZID[sYZID]; + if (!tmpTYZZYZID.Equals("")) + { + tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); + } + if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) + { + if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) + dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); + else + dicTJYZIDValue[tmpTJYZID] += tmpYZZ; + } + } + foreach (string sYZID in dicYZZG.Keys) + { + string tmpTJYZID = dicTJYZID[sYZID]; + double tmpYZZ = dicYZZG[sYZID]; + string tmpTYZZYZID = dicTYZZYZID[sYZID]; + if (!tmpTYZZYZID.Equals("")) + { + tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); + } + if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) + { + if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) + dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); + else + dicTJYZIDValue[tmpTJYZID] += tmpYZZ; + } + } + foreach (string sYZID in dicYZZF.Keys) + { + string tmpTJYZID = dicTJYZID[sYZID]; + double tmpYZZ = dicYZZF[sYZID]; + string tmpTYZZYZID = dicTYZZYZID[sYZID]; + if (!tmpTYZZYZID.Equals("")) + { + tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); + } + if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) + { + if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) + dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); + else + dicTJYZIDValue[tmpTJYZID] += tmpYZZ; + } + } + foreach (string sYZID in dicYZZH.Keys) + { + string tmpTJYZID = dicTJYZID[sYZID]; + double tmpYZZ = dicYZZH[sYZID]; + string tmpTYZZYZID = dicTYZZYZID[sYZID]; + if (!tmpTYZZYZID.Equals("")) + { + tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); + } + if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) + { + if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) + dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); + else + dicTJYZIDValue[tmpTJYZID] += tmpYZZ; + } + } + foreach (string sYZID in dicYZZK.Keys) + { + string tmpTJYZID = dicTJYZID[sYZID]; + double tmpYZZ = dicYZZK[sYZID]; + string tmpTYZZYZID = dicTYZZYZID[sYZID]; + if (!tmpTYZZYZID.Equals("")) + { + tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); + } + if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) + { + if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) + dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); + else + dicTJYZIDValue[tmpTJYZID] += tmpYZZ; + } + } + + foreach (string sYZID in dicYZZL.Keys) + { + string tmpTJYZID = dicTJYZID[sYZID]; + double tmpYZZ = dicYZZL[sYZID]; + string tmpTYZZYZID = dicTYZZYZID[sYZID]; + if (!tmpTYZZYZID.Equals("")) + { + tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); + } + if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) + { + if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) + dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); + else + dicTJYZIDValue[tmpTJYZID] += tmpYZZ; + } + } + foreach (string sYZID in dicYZZCPWJPF.Keys) + { + string tmpTJYZID = dicTJYZID[sYZID]; + double tmpYZZ = dicYZZCPWJPF[sYZID]; + string tmpTYZZYZID = dicTYZZYZID[sYZID]; + if (!tmpTYZZYZID.Equals("")) + { + tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); + } + if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) + { + if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) + dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); + else + dicTJYZIDValue[tmpTJYZID] += tmpYZZ; + } + } + + //除了dicYZZ2、dicYZZ3、dicYZZ6、dicYZZE、dicYZZF,将剩余的因子纳入dicTJYZIDValue + for (int i = sConColumnsCount; i < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) + { + string sFieldName = grdXLBJDMX.Columns[i].DataField; + string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); + if (!dicYZZ2.ContainsKey(sFieldName.Substring(5)) + && !dicYZZ3.ContainsKey(sFieldName.Substring(5)) + && !dicYZZ6.ContainsKey(sFieldName.Substring(5)) + && !dicYZZE.ContainsKey(sFieldName.Substring(5)) + && !dicYZZG.ContainsKey(sFieldName.Substring(5)) + && !dicYZZF.ContainsKey(sFieldName.Substring(5)) + && !dicYZZH.ContainsKey(sFieldName.Substring(5)) + && !dicYZZK.ContainsKey(sFieldName.Substring(5)) + && !dicYZZCPWJPF.ContainsKey(sFieldName.Substring(5))) + { + string tmpTJYZID = dicTJYZID[sFieldName.Substring(5)]; + double tmpYZZ = CMISproConvert.StrToFloat(e.RowData[sFieldName].ToString().Trim(), 0); + string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; + if (!tmpTYZZYZID.Equals("")) + { + tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); + } + if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) + { + if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) + dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); + else + dicTJYZIDValue[tmpTJYZID] += tmpYZZ; + } + } + + string sYZID = sFieldName.Replace("TZYZ_", ""); + if (sXSJEYZ.Contains(sYZID)) + i++; + } + + dCPBJ = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim()); + + double dTZYZ_JJ = 0; + for (int i = sConColumnsCount; i < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) + { + string sFieldName = grdXLBJDMX.Columns[i].DataField; + string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); + if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(JJ)")) + { + if (dicYZZ2.ContainsKey(sFieldName.Substring(5))) + dTZYZ_JJ += dicYZZ2[sFieldName.Substring(5)]; + else if (dicYZZ3.ContainsKey(sFieldName.Substring(5))) + dTZYZ_JJ += dicYZZ3[sFieldName.Substring(5)]; + else if (dicYZZ6.ContainsKey(sFieldName.Substring(5))) + dTZYZ_JJ += dicYZZ6[sFieldName.Substring(5)]; + else if (dicYZZE.ContainsKey(sFieldName.Substring(5))) + dTZYZ_JJ += dicYZZE[sFieldName.Substring(5)]; + else if (dicYZZG.ContainsKey(sFieldName.Substring(5))) + dTZYZ_JJ += dicYZZG[sFieldName.Substring(5)]; + else if (dicYZZF.ContainsKey(sFieldName.Substring(5))) + dTZYZ_JJ += dicYZZF[sFieldName.Substring(5)]; + else if (dicYZZH.ContainsKey(sFieldName.Substring(5))) + dTZYZ_JJ += dicYZZH[sFieldName.Substring(5)]; + else if (dicYZZK.ContainsKey(sFieldName.Substring(5))) + dTZYZ_JJ += dicYZZK[sFieldName.Substring(5)]; + else if (dicYZZCPWJPF.ContainsKey(sFieldName.Substring(5))) + dTZYZ_JJ += dicYZZCPWJPF[sFieldName.Substring(5)]; + else if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) + dTZYZ_JJ += dicTJYZIDValue[sFieldName.Substring(5)]; + else if (dicYZZL.ContainsKey(sFieldName.Substring(5))) + dTZYZ_JJ += dicYZZL[sFieldName.Substring(5)]; + } + + string sYZID = sFieldName.Replace("TZYZ_", ""); + if (sXSJEYZ.Contains(sYZID)) + i++; + + } + if (JJFirst) + { + dCPBJ = dCPBJ + dTZYZ_JJ; + } + for (int i = sConColumnsCount; i < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) + { + string sFieldName = grdXLBJDMX.Columns[i].DataField; + string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); + + if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(JD)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) + dCPBJ = dCPBJ * (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); + } + else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(KD)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) + dCPBJ = dCPBJ / (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); + } + else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(DD)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) + dCPBJ = dCPBJ / (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); + } + else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(MD)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) + dCPBJ = dCPBJ * (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); + } + else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(MP)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) + dCPBJ = dCPBJ * (dicTJYZIDValue[sFieldName.Substring(5)] / 100); + } + //MX乘以/DX除以-系数 + else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(MX)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) + dCPBJ = dCPBJ * (dicTJYZIDValue[sFieldName.Substring(5)]); + + } + else if (e.MasterDataSet["txtBJDYZ"].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 (e.MasterDataSet["txtBJDYZ"].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); + } + } + } + + string sYZID = sFieldName.Replace("TZYZ_", ""); + if (sXSJEYZ.Contains(sYZID)) + i++; + } + if (!JJFirst) + { + dCPBJ = dCPBJ + dTZYZ_JJ; + } + } + } + + dCPBJ = NumberUtils.RoundX(dCPBJ, (CMISproConvert.StrToInt(sCPBJMRXSWS) > iXSWS ? CMISproConvert.StrToInt(sCPBJMRXSWS) : iXSWS));//保留精度高的 + string sBTYZ = e.MasterDataSet["txtBTYZ"]; + if (!sBTYZ.Equals("")) + { + foreach (string stBTYZ in sBTYZ.Split(',')) + { + double dYZZ = CMISproConvert.StrToFloat(e.RowData["TZYZ_" + stBTYZ].ToString().Trim(), 0); + if (e.ResultPairs.ContainsKey("TZYZ_" + stBTYZ)) + dYZZ = CMISproConvert.StrToFloat(e.ResultPairs["TZYZ_" + stBTYZ]); + if (dYZZ == 0) + { + dCPBJ = Math.Abs(dCPBJ) * 0; + break; + } + } + } + DoAfterCalcCPBJ(e, bBJSDBZ, CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CLCB"].ToString().Trim()), CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim()), + CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim()), dCPBJ, dBJSL, sCPBJMRXSWS, ref dicChangedField); + } + else //报价数量变动没有影响到调价因子,则不需要重算报价 + { + double dTZQBJJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CPBJ"].ToString().Trim(), 0), 2); + double dTZJE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_TZBJJE"].ToString().Trim(), 0); + double dBJJE = dTZQBJJE + dTZJE; + + double dLRE = 0; + if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1"))//表价价差率公式 + dLRE = dBJJE - NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2); + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) + dLRE = NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2) - dBJJE; + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) + dLRE = dBJJE - NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2); + //计算价差率 + double dtmpLRE = 0; + if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1"))//表价价差率公式 + dtmpLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) + dtmpLRE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) - dBJJE; + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) + dtmpLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + double dtmpCPJE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + + + + //表价价差率公式 + //表价金额 + double dCPJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2); + double dLRL = 0.0; + if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1")) + { + if (dBJJE != 0) + dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dBJJE, 2); + } + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) + { + if (dtmpCPJE != 0) + dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); + } + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("3")) + { + if (dBJJE != 0) + dLRL = NumberUtils.RoundX(dtmpCPJE * 100 / dBJJE, 2); + } + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) + { + if (dtmpCPJE != 0) + dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); + } + + double dCLCBLRL = 0.0; + if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("1")) + { + double dCLCBLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CLCB"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + if (dBJJE != 0) + dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); + } + else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("2")) + { + double dCLCBLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + if (dBJJE != 0) + dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); + } + else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("3")) + { + double dCLCBLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + if (CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) != 0) + dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / (CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0)), 2); + } + else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("4")) + { + double dCLCBLRE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + if (dBJJE != 0) + dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); + } + double dJGBBJLJJCL = 0.0; + if (bjflxx.XLXSBJFL_BJLJJCLLX.Trim().Equals("1")) + { + if (dCPJE != 0) + { + dJGBBJLJJCL = NumberUtils.RoundX((dCPJE - (CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0))) / dCPJE * 100, 2); + } + } + + e.ResultPairs.Add("XLXSBJDMX_TZQBJJE", dTZQBJJE.ToString()); + e.ResultPairs.Add("XLXSBJDMX_BJJE", dBJJE.ToString()); + e.ResultPairs.Add("TZHDJ", (dBJSL == 0 ? 0 : dBJJE / dBJSL).ToString().Trim()); + e.ResultPairs.Add("XLXSBJDMX_JGBBJJCL", dLRL.ToString().Trim()); + e.ResultPairs.Add("XLXSBJDMX_JGBBJJCE", dLRE.ToString().Trim()); + e.ResultPairs.Add("XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString().Trim()); + e.ResultPairs.Add("XLXSBJDMX_JGBBJLJJCL", dJGBBJLJJCL.ToString().Trim()); + e.ResultPairs.Add("XLXSBJDMX_CLCBJCLSDBZ", "N"); + AddChangedField(dicChangedField, "XLXSBJDMX_TZQBJJE", dTZQBJJE.ToString()); + AddChangedField(dicChangedField, "XLXSBJDMX_BJJE", dBJJE.ToString()); + AddChangedField(dicChangedField, "TZHDJ", (dBJSL == 0 ? 0 : dBJJE / dBJSL).ToString().Trim()); + AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJJCL", dLRL.ToString().Trim()); + AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJJCE", dLRE.ToString().Trim()); + AddChangedField(dicChangedField, "XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString().Trim()); + AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJLJJCL", dJGBBJLJJCL.ToString().Trim()); + AddChangedField(dicChangedField, "XLXSBJDMX_CLCBJCLSDBZ", "N"); + } + + if (CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) != 0) + { + + string sCKXLXHID = string.Empty; + string sCKXLGGID = string.Empty; + string sCKXLBZID = string.Empty; + string sCKDYDJID = string.Empty; + bool isHBWCP=GetCKCPXX(e.MasterDataSet["txtBJDID"].Trim(), e.RowData["XLXSBJDMX_XH"].ToString().Trim(), ref sCKXLXHID, ref sCKXLGGID,ref sCKXLBZID,ref sCKDYDJID); + double fCLZL = 0; + if(isHBWCP) + fCLZL = XLBJDUtils.GetCLZL(sCKXLXHID, sCKXLGGID, sCKXLBZID, sCKDYDJID, e.MasterDataSet["cbxJGBID"].Trim()); + else + fCLZL = XLBJDUtils.GetCLZL(sXLXHID, sXLGGID, sXLBZID, sDYDJID, e.MasterDataSet["cbxJGBID"].Trim()); + double dBJU003_BJD_JLDWHSBL = 1; + if (XLBJDUtils.sJCJLDWList_Weg.IndexOf(sJLDW.ToUpper()) >= 0) + { + dBJU003_BJD_JLDWHSBL = XLBJDUtils.GetCLZL_BJDJLDW(sJLDW); + fCLZL = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) * dBJU003_BJD_JLDWHSBL; + } + else + { + dBJU003_BJD_JLDWHSBL = XLBJDUtils.GetJLDWHSBL_JG(sBJU003, sJLDW); + fCLZL = fCLZL * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + fCLZL = fCLZL * dBJU003_BJD_JLDWHSBL; + } + + e.ResultPairs.Add("XLXSBJDMX_CLZL", fCLZL.ToString()); + AddChangedField(dicChangedField, "XLXSBJDMX_CLZL", fCLZL.ToString()); + } + else + { + e.ResultPairs.Add("XLXSBJDMX_CLZL", "0"); + AddChangedField(dicChangedField, "XLXSBJDMX_CLZL", "0"); + } + } + else //报价发生变化,反算调整报价(%) + { + double dCPBJ = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CPBJ"].ToString().Trim(), 0); + if (!sFSYZ.Equals("")) + { + string sBJFLID = e.MasterDataSet["cbxBJFLID"].Trim(); + string sTZQCPBJGS = XLBJDUtils.GetTZQCPBJGS(sBJFLID); + if (sTZQCPBJGS.Equals(""))//使用公式计算报价的情况,由于公式的不确定性无法反算因子值 + { + string sFSYZTJFS = ""; + string sFSYZCLM = ""; + Dictionary dicTJYZIDValue_QT = new Dictionary(); + Dictionary dicTJYZID = XLBJDUtils.GetTJYZIDXX("BJD"); + Dictionary dicTJYZIDValue = new Dictionary(); + //获取YZID对应的TYZZYZID + Dictionary dicTYZZYZID = XLBJDUtils.GetTYZZYZIDXX("BJD"); + Dictionary dicTYZZYZIDValue = new Dictionary(); + + //将因子纳入dicTYZZYZIDValue + for (int i = sConColumnsCount; i < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) + { + string sFieldName = grdXLBJDMX.Columns[i].DataField; + string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); + + if (dicValueContained(dicTYZZYZID, sFieldName.Substring(5))) + { + if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) + { + dicTYZZYZIDValue.Add(sFieldName.Substring(5), CMISproConvert.StrToFloat(e.RowData[sFieldName].ToString().Trim(), 0)); + } + else + { + dicTYZZYZIDValue[sFieldName.Substring(5)] += CMISproConvert.StrToFloat(e.RowData[sFieldName].ToString().Trim(), 0); + } + } + + string sYZID = sFieldName.Replace("TZYZ_", ""); + if (sXSJEYZ.Contains(sYZID)) + i++; + } + //将因子纳入dicTJYZIDValue + for (int i = sConColumnsCount; i < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) + { + string sFieldName = grdXLBJDMX.Columns[i].DataField; + string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); + + string tmpTJYZID = dicTJYZID[sFieldName.Substring(5)]; + double tmpYZZ = 0; + tmpYZZ = CMISproConvert.StrToFloat(e.RowData[sFieldName].ToString().Trim(), 0); + string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; + if (!tmpTYZZYZID.Equals("")) + { + tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); + + } + if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) + { + if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) + { + dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); + } + else + { + dicTJYZIDValue[tmpTJYZID] += tmpYZZ; + } + if (sFSYZ.Equals(sFieldName.Substring(5))) + { + sFSYZTJFS = tmpTJYZID; + } + else + { + if (!dicTJYZIDValue_QT.ContainsKey(tmpTJYZID)) + { + dicTJYZIDValue_QT.Add(tmpTJYZID, tmpYZZ); + } + else + { + dicTJYZIDValue_QT[tmpTJYZID] += tmpYZZ; + } + } + } + + string sYZID = sFieldName.Replace("TZYZ_", ""); + if (sXSJEYZ.Contains(sYZID)) + i++; + } + + + double dJGBBJ = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0); + double dTempBJ = 0; + double dFSYZZ = 0; + bool JJFirst = XLBJDUtils.JJFirst_BJDYZ(sBJFLID); + bool FSYZJJ=false;//反算因子类型 + bool bYZZYC = false;//因子值异常,计算出现除0,则不反算 + double dTZYZ_JJ = 0; + double dQTYZ_JJ = 0;//除反算因子外的加价因子值 + for (int i = sConColumnsCount; i < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) + { + string sFieldName = grdXLBJDMX.Columns[i].DataField; + string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); + + if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(JJ)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) + { + dTZYZ_JJ += dicTJYZIDValue[sFieldName.Substring(5)]; + if (!sFSYZ.Equals(sFieldName.Substring(5))) + { + dQTYZ_JJ += dicTJYZIDValue[sFieldName.Substring(5)]; + } + } + if (sFSYZ.Equals(sFieldName.Substring(5))) + FSYZJJ = true;//反算因子值计算方式为加价 + + } + + string sYZID = sFieldName.Replace("TZYZ_", ""); + if (sXSJEYZ.Contains(sYZID)) + i++; + } + if (JJFirst) + { + if (FSYZJJ) + { + dTempBJ = dCPBJ; + for (int i = sConColumnsCount; i < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) + { + string sFieldName = grdXLBJDMX.Columns[i].DataField; + string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); + + if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(JD)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) + //dCPBJ = dCPBJ * (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); + dTempBJ = dTempBJ / (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); + } + else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(KD)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) + //dCPBJ = dCPBJ / (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); + dTempBJ = dTempBJ * (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); + } + else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(DD)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) + //dCPBJ = dCPBJ / (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); + dTempBJ = dTempBJ * (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); + } + else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(MD)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) + //dCPBJ = dCPBJ * (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); + dTempBJ = dTempBJ / (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); + } + else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(MP)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) + dTempBJ = (dTempBJ / dicTJYZIDValue[sFieldName.Substring(5)]) * 100; + } + //MX乘以/DX除以-系数 + else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(MX)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) + { + //dCPBJ = dCPBJ * (dicTJYZIDValue[sFieldName.Substring(5)]); + if (dicTJYZIDValue[sFieldName.Substring(5)] != 0) + dTempBJ = dTempBJ / (dicTJYZIDValue[sFieldName.Substring(5)]); + else + bYZZYC = true; + } + } + else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(DX)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) + { + if (dicTJYZIDValue[sFieldName.Substring(5)] != 0) + { + //dCPBJ = dCPBJ / (dicTJYZIDValue[sFieldName.Substring(5)]); + dTempBJ = dTempBJ * (dicTJYZIDValue[sFieldName.Substring(5)]); + } + else + bYZZYC = true; + } + } + else if (e.MasterDataSet["txtBJDYZ"].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); + dTempBJ = dTempBJ * (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); + } + else + { + //dCPBJ = dCPBJ * (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); + dTempBJ = dTempBJ / (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); + } + } + } + + string sYZID = sFieldName.Replace("TZYZ_", ""); + if (sXSJEYZ.Contains(sYZID)) + i++; + } + dFSYZZ = dTempBJ - dJGBBJ - dQTYZ_JJ; + } + else + { + dTempBJ = dCPBJ; + for (int i = sConColumnsCount; i < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) + { + string sFieldName = grdXLBJDMX.Columns[i].DataField; + string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); + + if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(JD)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5)) && !sFSYZTJFS.Equals(sFieldName.Substring(5))) + //dCPBJ = dCPBJ * (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); + dTempBJ = dTempBJ / (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); + } + else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(KD)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5)) && !sFSYZTJFS.Equals(sFieldName.Substring(5))) + //dCPBJ = dCPBJ / (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); + dTempBJ = dTempBJ * (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); + } + else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(DD)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5)) && !sFSYZTJFS.Equals(sFieldName.Substring(5))) + //dCPBJ = dCPBJ / (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); + dTempBJ = dTempBJ * (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); + } + else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(MD)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5)) && !sFSYZTJFS.Equals(sFieldName.Substring(5))) + //dCPBJ = dCPBJ * (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); + dTempBJ = dTempBJ / (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); + } + else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(MP)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5)) && !sFSYZTJFS.Equals(sFieldName.Substring(5))) + dTempBJ = (dTempBJ / dicTJYZIDValue[sFieldName.Substring(5)]) * 100; + } + //MX乘以/DX除以-系数 + else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(MX)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5)) && !sFSYZTJFS.Equals(sFieldName.Substring(5))) + { + //dCPBJ = dCPBJ * (dicTJYZIDValue[sFieldName.Substring(5)]); + if (dicTJYZIDValue[sFieldName.Substring(5)] != 0) + dTempBJ = dTempBJ / (dicTJYZIDValue[sFieldName.Substring(5)]); + else + bYZZYC = true; + } + } + else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(DX)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5)) && !sFSYZTJFS.Equals(sFieldName.Substring(5))) + { + if (dicTJYZIDValue[sFieldName.Substring(5)] != 0) + { + //dCPBJ = dCPBJ / (dicTJYZIDValue[sFieldName.Substring(5)]); + dTempBJ = dTempBJ * (dicTJYZIDValue[sFieldName.Substring(5)]); + } + else + bYZZYC = true; + } + } + else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(SX)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5)) && !sFSYZTJFS.Equals(sFieldName.Substring(5))) + { + if (dicTJYZIDValue[sFieldName.Substring(5)] >= 0) + { + //dCPBJ = dCPBJ / (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); + dTempBJ = dTempBJ * (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); + } + else + { + //dCPBJ = dCPBJ * (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); + dTempBJ = dTempBJ / (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); + } + } + } + if (sFSYZTJFS.Equals(sFieldName.Substring(5))) + { + sFSYZCLM = sColName; + } + + string sYZID = sFieldName.Replace("TZYZ_", ""); + if (sXSJEYZ.Contains(sYZID)) + i++; + } + double JJ = dJGBBJ + dTZYZ_JJ; + double TZHYZZ = 0; + if (JJ == 0 || dTempBJ == 0) + { + bYZZYC = true; + } + else + { + if (e.MasterDataSet["txtBJDYZ"].Contains(sFSYZTJFS + "|" + sFSYZCLM + "(JD)")) + { + if (dicTJYZIDValue.ContainsKey(sFSYZTJFS)) + //dCPBJ = dCPBJ * (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); + TZHYZZ = (dTempBJ / JJ - 1) * 100; + } + else if (e.MasterDataSet["txtBJDYZ"].Contains(sFSYZTJFS + "|" + sFSYZCLM + "(KD)")) + { + if (dicTJYZIDValue.ContainsKey(sFSYZTJFS)) + //dCPBJ = dCPBJ / (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); + TZHYZZ = (1 - JJ / dTempBJ) * 100; + } + else if (e.MasterDataSet["txtBJDYZ"].Contains(sFSYZTJFS + "|" + sFSYZCLM + "(DD)")) + { + if (dicTJYZIDValue.ContainsKey(sFSYZTJFS)) + //dCPBJ = dCPBJ / (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); + TZHYZZ = (JJ / dTempBJ - 1) * 100; + } + else if (e.MasterDataSet["txtBJDYZ"].Contains(sFSYZTJFS + "|" + sFSYZCLM + "(MD)")) + { + if (dicTJYZIDValue.ContainsKey(sFSYZTJFS)) + //dCPBJ = dCPBJ * (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); + TZHYZZ = (dTempBJ / JJ - 1) * 100; + } + else if (e.MasterDataSet["txtBJDYZ"].Contains(sFSYZTJFS + "|" + sFSYZCLM + "(MP)")) + { + if (dicTJYZIDValue.ContainsKey(sFSYZTJFS)) + TZHYZZ = (dTempBJ / JJ) * 100; + } + //MX乘以/DX除以-系数 + else if (e.MasterDataSet["txtBJDYZ"].Contains(sFSYZTJFS + "|" + sFSYZCLM + "(MX)")) + { + if (dicTJYZIDValue.ContainsKey(sFSYZTJFS)) + { + //dCPBJ = dCPBJ * (dicTJYZIDValue[sFieldName.Substring(5)]); + TZHYZZ = (dTempBJ / JJ); + } + } + else if (e.MasterDataSet["txtBJDYZ"].Contains(sFSYZTJFS + "|" + sFSYZCLM + "(DX)")) + { + if (dicTJYZIDValue.ContainsKey(sFSYZTJFS)) + { + //dCPBJ = dCPBJ / (dicTJYZIDValue[sFieldName.Substring(5)]); + TZHYZZ = (JJ / dTempBJ); + } + } + else if (e.MasterDataSet["txtBJDYZ"].Contains(sFSYZTJFS + "|" + sFSYZCLM + "(SX)")) + { + if (dicTJYZIDValue.ContainsKey(sFSYZTJFS)) + { + if (dicTJYZIDValue[sFSYZTJFS] >= 0) + { + //dCPBJ = dCPBJ / (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); + TZHYZZ = (1 - JJ / dTempBJ) * 100; + } + else + { + //dCPBJ = dCPBJ * (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); + TZHYZZ = (dTempBJ / JJ - 1) * 100; + } + } + } + } + if (dicTJYZIDValue_QT.ContainsKey(sFSYZTJFS)) + { + dFSYZZ = TZHYZZ - dicTJYZIDValue_QT[sFSYZTJFS]; + } + else + { + dFSYZZ = TZHYZZ; + } + + } + } + else + { + if (FSYZJJ) + { + dTempBJ = dJGBBJ; + for (int i = sConColumnsCount; i < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) + { + string sFieldName = grdXLBJDMX.Columns[i].DataField; + string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); + + if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(JD)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) + dTempBJ = dTempBJ * (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); + } + else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(KD)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) + dTempBJ = dTempBJ / (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); + } + else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(DD)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) + dTempBJ = dTempBJ / (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); + } + else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(MD)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) + dTempBJ = dTempBJ * (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); + } + else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(MP)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) + dTempBJ = dTempBJ * (dicTJYZIDValue[sFieldName.Substring(5)] / 100); + } + //MX乘以/DX除以-系数 + else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(MX)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) + dTempBJ = dTempBJ * (dicTJYZIDValue[sFieldName.Substring(5)]); + } + else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(DX)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) + { + if (dicTJYZIDValue[sFieldName.Substring(5)] != 0) + dTempBJ = dTempBJ / (dicTJYZIDValue[sFieldName.Substring(5)]); + else + bYZZYC = true; + } + } + else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(SX)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) + { + if (dicTJYZIDValue[sFieldName.Substring(5)] >= 0) + dTempBJ = dTempBJ / (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); + else + dTempBJ = dTempBJ * (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); + } + } + + string sYZID = sFieldName.Replace("TZYZ_", ""); + if (sXSJEYZ.Contains(sYZID)) + i++; + } + dFSYZZ = dCPBJ - dTempBJ - dQTYZ_JJ; + } + else + { + dTempBJ = dCPBJ - dTZYZ_JJ; + for (int i = sConColumnsCount; i < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) + { + string sFieldName = grdXLBJDMX.Columns[i].DataField; + string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); + + if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(JD)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5)) && !sFSYZTJFS.Equals(sFieldName.Substring(5))) + //dCPBJ = dCPBJ * (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); + dTempBJ = dTempBJ / (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); + } + else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(KD)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5)) && !sFSYZTJFS.Equals(sFieldName.Substring(5))) + //dCPBJ = dCPBJ / (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); + dTempBJ = dTempBJ * (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); + } + else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(DD)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5)) && !sFSYZTJFS.Equals(sFieldName.Substring(5))) + //dCPBJ = dCPBJ / (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); + dTempBJ = dTempBJ * (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); + } + else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(MD)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5)) && !sFSYZTJFS.Equals(sFieldName.Substring(5))) + //dCPBJ = dCPBJ * (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); + dTempBJ = dTempBJ / (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); + } + else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(MP)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5)) && !sFSYZTJFS.Equals(sFieldName.Substring(5))) + dTempBJ = (dTempBJ / dicTJYZIDValue[sFieldName.Substring(5)]) * 100; + } + //MX乘以/DX除以-系数 + else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(MX)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5)) && !sFSYZTJFS.Equals(sFieldName.Substring(5))) + { + //dCPBJ = dCPBJ * (dicTJYZIDValue[sFieldName.Substring(5)]); + if (dicTJYZIDValue[sFieldName.Substring(5)] != 0) + dTempBJ = dTempBJ / (dicTJYZIDValue[sFieldName.Substring(5)]); + else + bYZZYC = true; + } + } + else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(DX)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5)) && !sFSYZTJFS.Equals(sFieldName.Substring(5))) + { + if (dicTJYZIDValue[sFieldName.Substring(5)] != 0) + { + //dCPBJ = dCPBJ / (dicTJYZIDValue[sFieldName.Substring(5)]); + dTempBJ = dTempBJ * (dicTJYZIDValue[sFieldName.Substring(5)]); + } + else + bYZZYC = true; + } + } + else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(SX)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5)) && !sFSYZTJFS.Equals(sFieldName.Substring(5))) + { + if (dicTJYZIDValue[sFieldName.Substring(5)] >= 0) + { + //dCPBJ = dCPBJ / (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); + dTempBJ = dTempBJ * (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); + } + else + { + //dCPBJ = dCPBJ * (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); + dTempBJ = dTempBJ / (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); + } + } + } + if (sFSYZTJFS.Equals(sFieldName.Substring(5))) + { + sFSYZCLM = sColName; + } + + string sYZID = sFieldName.Replace("TZYZ_", ""); + if (sXSJEYZ.Contains(sYZID)) + i++; + } + double JJ = dJGBBJ; + double TZHYZZ = 0; + if (JJ == 0 || dTempBJ == 0) + { + bYZZYC = true; + } + else + { + if (e.MasterDataSet["txtBJDYZ"].Contains(sFSYZTJFS + "|" + sFSYZCLM + "(JD)")) + { + if (dicTJYZIDValue.ContainsKey(sFSYZTJFS)) + //dCPBJ = dCPBJ * (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); + TZHYZZ = (dTempBJ / JJ - 1) * 100; + } + else if (e.MasterDataSet["txtBJDYZ"].Contains(sFSYZTJFS + "|" + sFSYZCLM + "(KD)")) + { + if (dicTJYZIDValue.ContainsKey(sFSYZTJFS)) + //dCPBJ = dCPBJ / (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); + TZHYZZ = (1 - JJ / dTempBJ) * 100; + } + else if (e.MasterDataSet["txtBJDYZ"].Contains(sFSYZTJFS + "|" + sFSYZCLM + "(DD)")) + { + if (dicTJYZIDValue.ContainsKey(sFSYZTJFS)) + //dCPBJ = dCPBJ / (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); + TZHYZZ = (JJ / dTempBJ - 1) * 100; + } + else if (e.MasterDataSet["txtBJDYZ"].Contains(sFSYZTJFS + "|" + sFSYZCLM + "(MD)")) + { + if (dicTJYZIDValue.ContainsKey(sFSYZTJFS)) + //dCPBJ = dCPBJ * (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); + TZHYZZ = (dTempBJ / JJ - 1) * 100; + } + else if (e.MasterDataSet["txtBJDYZ"].Contains(sFSYZTJFS + "|" + sFSYZCLM + "(MP)")) + { + if (dicTJYZIDValue.ContainsKey(sFSYZTJFS)) + TZHYZZ = (dTempBJ / JJ) * 100; + } + //MX乘以/DX除以-系数 + else if (e.MasterDataSet["txtBJDYZ"].Contains(sFSYZTJFS + "|" + sFSYZCLM + "(MX)")) + { + if (dicTJYZIDValue.ContainsKey(sFSYZTJFS)) + { + //dCPBJ = dCPBJ * (dicTJYZIDValue[sFieldName.Substring(5)]); + TZHYZZ = (dTempBJ / JJ); + } + } + else if (e.MasterDataSet["txtBJDYZ"].Contains(sFSYZTJFS + "|" + sFSYZCLM + "(DX)")) + { + if (dicTJYZIDValue.ContainsKey(sFSYZTJFS)) + { + //dCPBJ = dCPBJ / (dicTJYZIDValue[sFieldName.Substring(5)]); + TZHYZZ = (JJ / dTempBJ); + } + } + else if (e.MasterDataSet["txtBJDYZ"].Contains(sFSYZTJFS + "|" + sFSYZCLM + "(SX)")) + { + if (dicTJYZIDValue.ContainsKey(sFSYZTJFS)) + { + if (dicTJYZIDValue[sFSYZTJFS] >= 0) + { + //dCPBJ = dCPBJ / (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); + TZHYZZ = (1 - JJ / dTempBJ) * 100; + } + else + { + //dCPBJ = dCPBJ * (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); + TZHYZZ = (dTempBJ / JJ - 1) * 100; + } + } + } + } + if (dicTJYZIDValue_QT.ContainsKey(sFSYZTJFS)) + { + dFSYZZ = TZHYZZ - dicTJYZIDValue_QT[sFSYZTJFS]; + } + else + { + dFSYZZ = TZHYZZ; + } + + } + } + if (!bYZZYC) + { + dFSYZZ = NumberUtils.RoundX(dFSYZZ, 2); + e.ResultPairs.Add("TZYZ_" + sFSYZ, dFSYZZ.ToString()); + AddChangedField(dicChangedField, "TZYZ_" + sFSYZ, dFSYZZ.ToString()); + } + } + e.ResultPairs.Add("XLXSBJDMX_TZCPBJ", "0"); + e.ResultPairs.Add("XLXSBJDMX_TZQCPBJ", dCPBJ.ToString().Trim()); + AddChangedField(dicChangedField, "XLXSBJDMX_TZCPBJ", "0"); + AddChangedField(dicChangedField, "XLXSBJDMX_TZQCPBJ", dCPBJ.ToString().Trim()); + } + else + { + //不需要反算因子值时,才更新调整报价 + double dTZQCPBJ = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_TZQCPBJ"].ToString().Trim(), 0); + double dTZJG = 0; + if (dTZQCPBJ != 0) + dTZJG = 100 * (dCPBJ - dTZQCPBJ) / dTZQCPBJ; + + dTZJG = NumberUtils.RoundX(dTZJG, 15); + e.ResultPairs.Add("XLXSBJDMX_TZCPBJ", dTZJG.ToString("F6")); + AddChangedField(dicChangedField, "XLXSBJDMX_TZCPBJ", dTZJG.ToString("F6")); + } + double dTZQBJJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) * dCPBJ, 2); + double dTZJE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_TZBJJE"].ToString().Trim(), 0); + double dBJJE = dTZQBJJE + dTZJE; + + double dLRE = 0; + if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1"))//表价价差率公式 + dLRE = dBJJE - NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2); + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) + dLRE = NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2) - dBJJE; + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) + dLRE = dBJJE - NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2); + + //计算价差率 + double dtmpLRE = 0; + if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1"))//表价价差率公式 + dtmpLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) + dtmpLRE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) - dBJJE; + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) + dtmpLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + double dtmpCPJE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + + + //表价价差率公式 + //表价金额 + double dCPJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2); + double dLRL = 0.0; + if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1")) + { + if (dBJJE != 0) + dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dBJJE, 2); + } + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) + { + if (dtmpCPJE != 0) + dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); + } + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("3")) + { + if (dBJJE != 0) + dLRL = NumberUtils.RoundX(dtmpCPJE * 100 / dBJJE, 2); + } + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) + { + if (dtmpCPJE != 0) + dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); + } + + double dCLCBLRL = 0.0; + if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("1")) + { + double dCLCBLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CLCB"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + if (dBJJE != 0) + dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); + } + else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("2")) + { + double dCLCBLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + if (dBJJE != 0) + dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); + } + else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("3")) + { + double dCLCBLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + if (CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) != 0) + dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / (CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0)), 2); + } + else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("4")) + { + double dCLCBLRE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + if (dBJJE != 0) + dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); + } + + double dJGBBJLJJCL = 0.0; + if (bjflxx.XLXSBJFL_BJLJJCLLX.Trim().Equals("1")) + { + if (dCPJE != 0) + { + dJGBBJLJJCL = NumberUtils.RoundX((dCPJE - (CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0))) / dCPJE * 100, 2); + } + } + double dCPBJXJ = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CPBJXJ"].ToString().Trim(), 0); + double XJBJCE = dCPBJXJ - dCPBJ; + e.ResultPairs.Add("XLXSBJDMX_BJXJKD", "0"); + e.ResultPairs.Add("XLXSBJDMX_BJXJJJ", "0"); + e.ResultPairs.Add("XJBJCE", XJBJCE.ToString()); + e.ResultPairs.Add("XLXSBJDMX_TZQBJJE", dTZQBJJE.ToString()); + e.ResultPairs.Add("XLXSBJDMX_BJJE", dBJJE.ToString()); + e.ResultPairs.Add("XLXSBJDMX_BJTJCZ ", "SSBJ"); + e.ResultPairs.Add("TZHDJ", (dBJSL == 0 ? 0 : dBJJE / dBJSL).ToString().Trim()); + e.ResultPairs.Add("XLXSBJDMX_JGBBJJCL", dLRL.ToString().Trim()); + e.ResultPairs.Add("XLXSBJDMX_JGBBJJCE", dLRE.ToString().Trim()); + e.ResultPairs.Add("XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString().Trim()); + e.ResultPairs.Add("XLXSBJDMX_JGBBJLJJCL", dJGBBJLJJCL.ToString().Trim()); + e.ResultPairs.Add("XLXSBJDMX_CLCBJCLSDBZ", "N"); + AddChangedField(dicChangedField, "XLXSBJDMX_TZQBJJE", dTZQBJJE.ToString()); + AddChangedField(dicChangedField, "XLXSBJDMX_BJJE", dBJJE.ToString()); + AddChangedField(dicChangedField, "TZHDJ", (dBJSL == 0 ? 0 : dBJJE / dBJSL).ToString().Trim()); + AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJJCL", dLRL.ToString().Trim()); + AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJJCE", dLRE.ToString().Trim()); + AddChangedField(dicChangedField, "XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString().Trim()); + AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJLJJCL", dJGBBJLJJCL.ToString().Trim()); + AddChangedField(dicChangedField, "XLXSBJDMX_CLCBJCLSDBZ", "N"); + AddChangedField(dicChangedField, "XLXSBJDMX_BJTJCZ", "SSBJ"); + } + } + + if(e.EventFieldName.Equals("XLXSBJDMX_CPBJXJ")) + { + double dCPBJXJ=CMISproConvert.StrToFloat(e.EventFieldValue.Trim(),0); + double dCPBJ = 0; + double dTZJG = 0; + if (!bBJSDBZ) + { + //这里程序做了制约:不变调整金额,变调整报价(%) + + double dTZJE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_TZBJJE"].ToString().Trim(), 0); + double dTZQCPBJ = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_TZQCPBJ"].ToString().Trim(), 0); + double dCPJJ = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0); + double dCLCB = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CLCB"].ToString().Trim(), 0); + double dBJDHQCLCB = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0); + dCPBJ = XLBJDUtils.RoundSZ(dTZQCPBJ, CMISproConvert.StrToInt(sCPBJMRXSWS)); + if (dBJSL != 0) + { + double dTZQBJJE = NumberUtils.RoundX(dCPBJ * dBJSL, 2); + double dBJJE = dTZQBJJE + dTZJE; + + double dLRE = 0; + if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1"))//表价价差率公式 + dLRE = dBJJE - NumberUtils.RoundX(dCPJJ * dBJSL, 2); + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) + dLRE = NumberUtils.RoundX(dCPJJ * dBJSL, 2) - dBJJE; + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) + dLRE = dBJJE - NumberUtils.RoundX(dCPJJ * dBJSL, 2); + + //计算价差率 + double dtmpLRE = 0; + if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1"))//表价价差率公式 + dtmpLRE = dBJJE - dCPJJ * dBJSL; + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) + dtmpLRE = dCPJJ * dBJSL - dBJJE; + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) + dtmpLRE = dBJJE - dCPJJ * dBJSL; + double dtmpCPJE = dCPJJ * dBJSL; + + + //表价价差率公式 + //表价金额 + double dCPJE = NumberUtils.RoundX(dCPJJ * dBJSL, 2); + double dLRL = 0.0; + if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1")) + { + if (dBJJE != 0) + dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dBJJE, 2); + } + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) + { + if (dtmpCPJE != 0) + dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); + } + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("3")) + { + if (dBJJE != 0) + dLRL = NumberUtils.RoundX(dtmpCPJE * 100 / dBJJE, 2); + } + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) + { + if (dtmpCPJE != 0) + dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); + } + e.ResultPairs.Add("XLXSBJDMX_JGBBJJCL", dLRL.ToString()); + AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJJCL", dLRL.ToString()); + + if (dTZQCPBJ != 0) + dTZJG = 100 * (dCPBJ - dTZQCPBJ) / dTZQCPBJ; + + //重算料价价差率 + double dCLCBLRL = 0.0; + if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("1")) + { + double dCLCBLRE = dBJJE - dCLCB * dBJSL; + if (dBJJE != 0) + dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); + } + else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("2")) + { + double dCLCBLRE = dBJJE - dBJDHQCLCB * dBJSL; + if (dBJJE != 0) + dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); + } + else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("3")) + { + double dCLCBLRE = dBJJE - dBJDHQCLCB * dBJSL; + if (dBJDHQCLCB * dBJSL != 0) + dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / (dBJDHQCLCB * dBJSL), 2); + } + else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("4")) + { + double dCLCBLRE = dBJDHQCLCB * dBJSL; + if (dBJJE != 0) + dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); + } + e.ResultPairs.Add("XLXSBJDMX_BJJE", dBJJE.ToString()); + e.ResultPairs.Add("TZHDJ", (dBJSL == 0 ? 0 : dBJJE / dBJSL).ToString().Trim()); + e.ResultPairs.Add("XLXSBJDMX_TZQBJJE", dTZQBJJE.ToString()); + e.ResultPairs.Add("XLXSBJDMX_JGBBJJCE", dLRE.ToString()); + e.ResultPairs.Add("XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString()); + e.ResultPairs.Add("XLXSBJDMX_CLCBJCLSDBZ", "N"); + AddChangedField(dicChangedField, "XLXSBJDMX_BJJE", dBJJE.ToString()); + AddChangedField(dicChangedField, "TZHDJ", (dBJSL == 0 ? 0 : dBJJE / dBJSL).ToString().Trim()); + AddChangedField(dicChangedField, "XLXSBJDMX_TZQBJJE", dTZQBJJE.ToString()); + AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJJCE", dLRE.ToString()); + AddChangedField(dicChangedField, "XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString()); + AddChangedField(dicChangedField, "XLXSBJDMX_CLCBJCLSDBZ", "N"); + } + + dTZJG = NumberUtils.RoundX(dTZJG, 15); + e.ResultPairs.Add("XLXSBJDMX_CPBJ", dCPBJ.ToString()); + e.ResultPairs.Add("XLXSBJDMX_BJTJCZ ", "BJXJ"); + e.ResultPairs.Add("XLXSBJDMX_TZCPBJ", dTZJG.ToString("F6")); + AddChangedField(dicChangedField, "XLXSBJDMX_CPBJ", dCPBJ.ToString()); + AddChangedField(dicChangedField, "XLXSBJDMX_TZCPBJ", dTZJG.ToString("F6")); + AddChangedField(dicChangedField, "XLXSBJDMX_BJTJCZ", "BJXJ"); + } + else//报价锁定=Y + { + dCPBJ = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CPBJ"].ToString().Trim(), 0); + + } + double XJBJCE = dCPBJXJ - dCPBJ; + e.ResultPairs.Add("XJBJCE", XJBJCE.ToString()); + e.ResultPairs.Add("XLXSBJDMX_BJXJKD", "0"); + e.ResultPairs.Add("XLXSBJDMX_BJXJJJ", "0"); + + + } + + + if (e.EventFieldName.Equals("XLXSBJDMX_WGCPBZ")) + { + e.ResultPairs.Add("XLXSBJDMX_WGCPBZ", e.RowData["XLXSBJDMX_WGCPBZ"].ToString().Trim()); + AddChangedField(dicChangedField, "XLXSBJDMX_WGCPBZ", e.RowData["XLXSBJDMX_WGCPBZ"].ToString().Trim()); + if (sBJU060.Equals("Y") && e.RowData["XLXSBJDMX_WGCPBZ"].ToString().Trim().Equals("Y")) + { + + for (int i = 1; i <= 20; i++) + { + string fieldName = "TZYZ_BJ" + i.ToString("00"); + e.ResultPairs.Add(fieldName, "0"); + AddChangedField(dicChangedField, fieldName, "0"); + } + IsTZTJYZ = true; + sorYZZ01 = "0.0"; sorYZZ02 = "0.0"; + sorYZZ03 = "0.0"; sorYZZ04 = "0.0"; + sorYZZ05 = "0.0"; sorYZZ06 = "0.0"; + sorYZZ07 = "0.0"; sorYZZ08 = "0.0"; + sorYZZ09 = "0.0"; sorYZZ10 = "0.0"; + sorYZZ11 = "0.0"; sorYZZ12 = "0.0"; + sorYZZ13 = "0.0"; sorYZZ14 = "0.0"; + sorYZZ15 = "0.0"; sorYZZ16 = "0.0"; + sorYZZ17 = "0.0"; sorYZZ18 = "0.0"; + sorYZZ19 = "0.0"; sorYZZ20 = "0.0"; + + } + } + + + + + bool IsBCYTJYZ = false; + if (e.EventFieldName.IndexOf("TZYZ_") != -1 || IsTZTJYZ) + { + string sYZID = e.EventFieldName.Replace("TZYZ_", ""); + double dCPJJ = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim()); + if (XLBJDUtils.GetYZXXByYZID(sYZID).XLXSTZYZ_BCYTJ == "Y") + IsBCYTJYZ = true; + + if (sXSJEYZ.Contains(sYZID)) + { + if (XLBJDUtils.GetYZXXByYZID(sYZID.Trim()).XLXSTZYZ_JJFS == "JJ") + e.ResultPairs.Add("TZYZJE_" + sYZID, NumberUtils.RoundX(CMISproConvert.StrToFloat(e.EventFieldValue) * dBJSL, 2).ToString().Trim()); + else + e.ResultPairs.Add("TZYZJE_" + sYZID, NumberUtils.RoundX(dCPJJ * XLBJDUtils.sCJXS * CMISproConvert.StrToFloat(e.EventFieldValue) / 100.0 * dBJSL, 2).ToString().Trim()); + } + } + if (e.EventFieldName.Equals("XLXSBJDMX_JGBBJ") || e.EventFieldName.Equals("XLXSBJDMX_LSJGBBJ") || (e.EventFieldName.IndexOf("TZYZ_") != -1 && !IsBCYTJYZ) || e.EventFieldName.Equals("XLXSBJDMX_JMBGS") || e.EventFieldName.Equals("XLXSBJDMX_TZZDXJ") || e.EventFieldName.Equals("XLXSBJDMX_ZDXJ") || IsTZTJYZ) + { + if (e.EventFieldName.Equals("XLXSBJDMX_JGBBJ")) + { + e.ResultPairs.Add("XLXSBJDMX_JGBBJGXSJ", MISproUtils.GetServerTime().ToString().Trim()); + e.ResultPairs.Add("XLXSBJDMX_JGBBJTZ", "Y"); + AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJGXSJ", MISproUtils.GetServerTime().ToString().Trim()); + } + if (e.EventFieldName.Equals("XLXSBJDMX_TZZDXJ")) + { + e.ResultPairs.Add("XLXSBJDMX_TZZDXJ",e.EventFieldValue.Trim()); + AddChangedField(dicChangedField, "XLXSBJDMX_TZZDXJ", e.EventFieldValue.Trim()); + } + string ReChangeYZID = "";//维护因子时,是否自动change为其最值 + string ReChangYZZ = ""; + string sMinYZZ = ""; + string sMaxYZZ = ""; + string sBJFLID = e.MasterDataSet["cbxBJFLID"].Trim(); + //true表示先加价 + bool JJFirst = XLBJDUtils.JJFirst_BJDYZ(sBJFLID); + + //截面比公式发生变化重新设置指定因子的值 + if (e.EventFieldName.Equals("XLXSBJDMX_JMBGS")) + { + string sXLXHID = e.RowData["XLXSBJDMX_XLXHID"].ToString().Trim(); + string sXLGGID = e.RowData["XLXSBJDMX_XLGGID"].ToString().Trim(); + string sXLBZID = e.RowData["XLXSBJDMX_XLBZID"].ToString().Trim().Split('|')[0].Trim(); + string sDYDJID = e.RowData["XLXSBJDMX_DYDJID"].ToString().Trim().Split('|')[0].Trim(); + double dJGBGSResult = 0; + gtExpression exp = new gtExpression(); + try + { + dJGBGSResult = NumberUtils.RoundX(exp.Evaluate(e.EventFieldValue), 6); + if (sJMBYZJJFS == "JD") + dJGBGSResult = NumberUtils.RoundX((dJGBGSResult - 1) * 100,grdXLBJDMX.FindColumnByFieldName("TZYZ_" + sJMBGSYZID).NumberDecimalPlace); + if (sJMBYZJJFS == "MD") + dJGBGSResult = NumberUtils.RoundX((1 - dJGBGSResult) * 100, grdXLBJDMX.FindColumnByFieldName("TZYZ_" + sJMBGSYZID).NumberDecimalPlace); + if (sJMBYZJJFS == "MX") + dJGBGSResult = NumberUtils.RoundX(dJGBGSResult, grdXLBJDMX.FindColumnByFieldName("TZYZ_" + sJMBGSYZID).NumberDecimalPlace); + } + catch + { + dJGBGSResult = 0; + } + + e.ResultPairs.Add("TZYZ_" + sJMBGSYZID, dJGBGSResult.ToString()); + AddChangedField(dicChangedField, "TZYZ_" + sJMBGSYZID, dJGBGSResult.ToString()); + ReChangeYZID = sJMBGSYZID; + ReChangYZZ = dJGBGSResult.ToString(); + double dHSBL = XLBJDUtils.GetHSBL(sJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID); ; + sMinYZZ = XLBJDUtils.GetMinYZZ(sJMBGSYZID, dHSBL);//因子最小值 + sMaxYZZ = XLBJDUtils.GetMaxYZZ(sJMBGSYZID, dHSBL);//因子最大值 + if (XLBJDUtils.GetYZXXByYZID(sJMBGSYZID).XLXSTZYZ_TJYS == "B") + { + if (e.MasterDataSet.ContainsKey("cbxSYDWID")) + { + sMinYZZ = XLBJDUtils.GetMinYZZB(e.MasterDataSet["cbxSYDWID"].Trim(), sJMBGSYZID, dHSBL);//因子最小值 + sMaxYZZ = XLBJDUtils.GetMaxYZZB(e.MasterDataSet["cbxSYDWID"].Trim(), sJMBGSYZID, dHSBL);//因子最大值 + } + if (e.MasterDataSet.ContainsKey("cbxKHID")) + { + sMinYZZ = XLBJDUtils.GetMinYZZB(e.MasterDataSet["cbxKHID"].Trim(), sJMBGSYZID, dHSBL);//因子最小值 + sMaxYZZ = XLBJDUtils.GetMaxYZZB(e.MasterDataSet["cbxKHID"].Trim(), sJMBGSYZID, dHSBL);//因子最大值 + } + } + + if (!sMinYZZ.Equals(""))//若设置了最值 + { + //小于最小值按最小值计算 + if (dJGBGSResult < CMISproConvert.StrToFloat(sMinYZZ, 0)) + { + e.ResultPairs.Add("TZYZ_" + sJMBGSYZID, sMinYZZ); + AddChangedField(dicChangedField, "TZYZ_" + sJMBGSYZID, sMinYZZ); + ReChangeYZID = sJMBGSYZID; + ReChangYZZ = sMinYZZ; + } + + } + if (!sMaxYZZ.Equals(""))//若设置了最值 + { + //大于最大值按最大值计算 + if (dJGBGSResult > CMISproConvert.StrToFloat(sMaxYZZ, 0)) + { + e.ResultPairs.Add("TZYZ_" + sJMBGSYZID, sMaxYZZ); + AddChangedField(dicChangedField, "TZYZ_" + sJMBGSYZID, sMaxYZZ); + ReChangeYZID = sJMBGSYZID; + ReChangYZZ = sMaxYZZ; + } + } + + } + //指定因子的值变化清空截面比公式 + if (e.EventFieldName.Equals("TZYZ_" + sJMBGSYZID)) + { + e.ResultPairs.Add("XLXSBJDMX_JMBGS", ""); + AddChangedField(dicChangedField, "XLXSBJDMX_JMBGS", ""); + } + + if (e.EventFieldName.IndexOf("TZYZ_") != -1 || IsTZTJYZ) + { + string sXLXHID = e.RowData["XLXSBJDMX_XLXHID"].ToString().Trim(); + string sXLGGID = e.RowData["XLXSBJDMX_XLGGID"].ToString().Trim(); + string sXLBZID = e.RowData["XLXSBJDMX_XLBZID"].ToString().Trim().Split('|')[0].Trim(); + string sDYDJID = e.RowData["XLXSBJDMX_DYDJID"].ToString().Trim().Split('|')[0].Trim(); + double dHSBL = XLBJDUtils.GetHSBL(sJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID); ; + sMinYZZ = XLBJDUtils.GetMinYZZ(e.EventFieldName.Replace("TZYZ_", ""), dHSBL);//因子最小值 + sMaxYZZ = XLBJDUtils.GetMaxYZZ(e.EventFieldName.Replace("TZYZ_", ""), dHSBL);//因子最大值 + if (XLBJDUtils.GetYZXXByYZID(e.EventFieldName.Replace("TZYZ_", "")).XLXSTZYZ_TJYS == "B") + { + if (e.MasterDataSet.ContainsKey("cbxSYDWID")) + { + sMinYZZ = XLBJDUtils.GetMinYZZB(e.MasterDataSet["cbxSYDWID"].Trim(), e.EventFieldName.Replace("TZYZ_", ""), dHSBL);//因子最小值 + sMaxYZZ = XLBJDUtils.GetMaxYZZB(e.MasterDataSet["cbxSYDWID"].Trim(), e.EventFieldName.Replace("TZYZ_", ""), dHSBL);//因子最大值 + } + if (e.MasterDataSet.ContainsKey("cbxKHID")) + { + sMinYZZ = XLBJDUtils.GetMinYZZB(e.MasterDataSet["cbxKHID"].Trim(), sJMBGSYZID, dHSBL);//因子最小值 + sMaxYZZ = XLBJDUtils.GetMaxYZZB(e.MasterDataSet["cbxKHID"].Trim(), sJMBGSYZID, dHSBL);//因子最大值 + } + + } + if (!sMinYZZ.Equals(""))//若设置了最值 + { + //小于最小值按最小值计算 + if (CMISproConvert.StrToFloat(e.EventFieldValue) < CMISproConvert.StrToFloat(sMinYZZ, 0)) + { + e.ResultPairs.Add(e.EventFieldName, sMinYZZ); + AddChangedField(dicChangedField, e.EventFieldName, sMinYZZ); + ReChangeYZID = e.EventFieldName.Replace("TZYZ_", ""); + ReChangYZZ = sMinYZZ; + } + + } + if (!sMaxYZZ.Equals(""))//若设置了最值 + { + //大于最大值按最大值计算 + if (CMISproConvert.StrToFloat(e.EventFieldValue) > CMISproConvert.StrToFloat(sMaxYZZ, 0)) + { + e.ResultPairs.Add(e.EventFieldName, sMaxYZZ); + AddChangedField(dicChangedField, e.EventFieldName, sMaxYZZ); + ReChangeYZID = e.EventFieldName.Replace("TZYZ_", ""); + ReChangYZZ = sMaxYZZ; + } + } + } + if (e.EventFieldName.Equals("XLXSBJDMX_ZDXJ")) + { + string sTZQZDXJtmp = e.RowData["XLXSBJDMX_TZQZDXJ"].ToString().Trim(); + string stZDXJtmp = e.EventFieldValue.Trim(); + double dZDXJ = CMISproConvert.StrToFloat(stZDXJtmp); + double dTZQZDXJ = CMISproConvert.StrToFloat(sTZQZDXJtmp); + string stTZZDXJtmp = e.RowData["XLXSBJDMX_TZZDXJ"].ToString().Trim(); + if (dTZQZDXJ != 0) + stTZZDXJtmp = NumberUtils.RoundX((dZDXJ / dTZQZDXJ - 1) * 100, 15).ToString(); + e.ResultPairs.Add("XLXSBJDMX_TZZDXJ", stTZZDXJtmp); + AddChangedField(dicChangedField, "XLXSBJDMX_TZZDXJ", stTZZDXJtmp); + e.ResultPairs.Add("XLXSBJDMX_TZQZDXJ", sTZQZDXJtmp); + e.ResultPairs.Add("XLXSBJDMX_ZDXJ", stZDXJtmp); + AddChangedField(dicChangedField, "XLXSBJDMX_ZDXJ", stZDXJtmp); + sorTZZDXJ = stTZZDXJtmp; + + } + + if (XLBJDUtils.GetXLXSBJPZXX(100860000).XLXSBJPZ_BQKTZZDXJ != "Y" && !e.EventFieldName.Equals("XLXSBJDMX_TZZDXJ") && !e.EventFieldName.Equals("XLXSBJDMX_ZDXJ")) + { + e.ResultPairs.Add("XLXSBJDMX_TZZDXJ", "0"); + AddChangedField(dicChangedField, "XLXSBJDMX_TZZDXJ", "0"); + sorTZZDXJ = "0"; + } + + double dCPBJ = 0.0; + + string sTZQCPBJGS = XLBJDUtils.GetTZQCPBJGS(sBJFLID); + if (!sTZQCPBJGS.Equals("")) + { + if (bjflxx.XLXSBJFL_XSLSBJ == "Y" && CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_LSJGBBJ"].ToString().Trim())!=0) + dCPBJ = XLBJDUtils.GetTZQCPBJ(e.RowData["XLXSBJDMX_LSJGBBJ"].ToString().Trim(), sorYZZ01, sorYZZ02, sorYZZ03, sorYZZ04, sorYZZ05, sorYZZ06, sorYZZ07, sorYZZ08, sorYZZ09, sorYZZ10, sorYZZ11, sorYZZ12, sorYZZ13, sorYZZ14, sorYZZ15, sorYZZ16, sorYZZ17, sorYZZ18, sorYZZ19, sorYZZ20, dicChangedField, sTZQCPBJGS, sorTZZDXJ); + else + dCPBJ = XLBJDUtils.GetTZQCPBJ(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), sorYZZ01, sorYZZ02, sorYZZ03, sorYZZ04, sorYZZ05, sorYZZ06, sorYZZ07, sorYZZ08, sorYZZ09, sorYZZ10, sorYZZ11, sorYZZ12, sorYZZ13, sorYZZ14, sorYZZ15, sorYZZ16, sorYZZ17, sorYZZ18, sorYZZ19, sorYZZ20, dicChangedField, sTZQCPBJGS, sorTZZDXJ); + } + else + { + if (CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim()) != 0 || CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_LSJGBBJ"].ToString().Trim()) != 0) + { + //获取YZID对应的TJYZID + Dictionary dicTJYZID = XLBJDUtils.GetTJYZIDXX("BJD"); + Dictionary dicTJYZIDValue = new Dictionary(); + //获取YZID对应的TYZZYZID + Dictionary dicTYZZYZID = XLBJDUtils.GetTYZZYZIDXX("BJD"); + Dictionary dicTYZZYZIDValue = new Dictionary(); + + //将因子纳入dicTYZZYZIDValue + for (int i = sConColumnsCount; i < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) + { + string sFieldName = grdXLBJDMX.Columns[i].DataField; + string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); + + if (dicValueContained(dicTYZZYZID,sFieldName.Substring(5))) + { + if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5))) + { + if (sFieldName.Substring(5).Trim().Equals(ReChangeYZID)) + { + dicTYZZYZIDValue.Add(sFieldName.Substring(5), CMISproConvert.StrToFloat(ReChangYZZ, 0)); + } + else + { + dicTYZZYZIDValue.Add(sFieldName.Substring(5), CMISproConvert.StrToFloat(e.RowData[sFieldName].ToString().Trim(), 0)); + } + } + else + { + if (sFieldName.Substring(5).Trim().Equals(ReChangeYZID)) + { + dicTYZZYZIDValue[sFieldName.Substring(5)] += CMISproConvert.StrToFloat(ReChangYZZ, 0); + } + else + { + dicTYZZYZIDValue[sFieldName.Substring(5)] += CMISproConvert.StrToFloat(e.RowData[sFieldName].ToString().Trim(), 0); + } + } + } + + string sYZID = sFieldName.Replace("TZYZ_", ""); + if (sXSJEYZ.Contains(sYZID)) + i++; + } + //将因子纳入dicTJYZIDValue + for (int i = sConColumnsCount; i < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) + { + string sFieldName = grdXLBJDMX.Columns[i].DataField; + string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); + + string tmpTJYZID = dicTJYZID[sFieldName.Substring(5)]; + double tmpYZZ = 0; + if (sFieldName.Substring(5).Trim().Equals(ReChangeYZID)) + { + tmpYZZ = CMISproConvert.StrToFloat(ReChangYZZ, 0); + } + else + { + tmpYZZ = CMISproConvert.StrToFloat(e.RowData[sFieldName].ToString().Trim(), 0); + } + string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; + if (!tmpTYZZYZID.Equals("")) + { + tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); + + } + if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) + { + if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) + { + dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); + } + else + { + dicTJYZIDValue[tmpTJYZID] += tmpYZZ; + } + } + + string sYZID = sFieldName.Replace("TZYZ_", ""); + if (sXSJEYZ.Contains(sYZID)) + i++; + } + if (IsTZTJYZ) + { + string[] keys = new string[dicTJYZIDValue.Keys.Count]; + dicTJYZIDValue.Keys.CopyTo(keys, 0); + + // 遍历临时数组,修改原字典 + foreach (string key in keys) + { + dicTJYZIDValue[key] = 0; + } + + } + if (bjflxx.XLXSBJFL_XSLSBJ == "Y" && CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_LSJGBBJ"].ToString().Trim()) != 0) + dCPBJ = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_LSJGBBJ"].ToString().Trim(), 0); + else + dCPBJ = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0); + + double dTZYZ_JJ = 0; + for (int i = sConColumnsCount; i < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) + { + string sFieldName = grdXLBJDMX.Columns[i].DataField; + string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); + + if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(JJ)")) + { + if (sFieldName.Substring(5).Trim().Equals(ReChangeYZID)) + dTZYZ_JJ += CMISproConvert.StrToFloat(ReChangYZZ, 0); + else if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) + dTZYZ_JJ += dicTJYZIDValue[sFieldName.Substring(5)]; + } + + string sYZID = sFieldName.Replace("TZYZ_", ""); + if (sXSJEYZ.Contains(sYZID)) + i++; + + } + if (JJFirst) + { + dCPBJ = dCPBJ + dTZYZ_JJ; + } + for (int i = sConColumnsCount; i < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) + { + string sFieldName = grdXLBJDMX.Columns[i].DataField; + string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); + + if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(JD)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) + dCPBJ = dCPBJ * (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); + } + else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(KD)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) + dCPBJ = dCPBJ / (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); + } + else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(DD)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) + dCPBJ = dCPBJ / (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); + } + else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(MD)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) + dCPBJ = dCPBJ * (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); + } + else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(MP)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) + dCPBJ = dCPBJ * (dicTJYZIDValue[sFieldName.Substring(5)] / 100); + } + //MX乘以/DX除以-系数 + else if (e.MasterDataSet["txtBJDYZ"].Contains(sFieldName.Substring(5) + "|" + sColName + "(MX)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) + dCPBJ = dCPBJ * (dicTJYZIDValue[sFieldName.Substring(5)]); + + } + else if (e.MasterDataSet["txtBJDYZ"].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 (e.MasterDataSet["txtBJDYZ"].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); + } + } + } + + string sYZID = sFieldName.Replace("TZYZ_", ""); + if (sXSJEYZ.Contains(sYZID)) + i++; + } + if (!JJFirst) + { + dCPBJ = dCPBJ + dTZYZ_JJ; + } + } + } + string sBTYZ = e.MasterDataSet["txtBTYZ"]; + if (!sBTYZ.Equals("")) + { + foreach (string stBTYZ in sBTYZ.Split(',')) + { + double dYZZ = CMISproConvert.StrToFloat(e.RowData["TZYZ_" + stBTYZ].ToString().Trim(), 0); + if (e.ResultPairs.ContainsKey("TZYZ_" + stBTYZ)) + dYZZ = CMISproConvert.StrToFloat(e.ResultPairs["TZYZ_" + stBTYZ]); + if (dYZZ == 0) + { + dCPBJ = Math.Abs(dCPBJ) * 0; + break; + } + } + } + dCPBJ = NumberUtils.RoundX(dCPBJ, (CMISproConvert.StrToInt(sCPBJMRXSWS) > iXSWS ? CMISproConvert.StrToInt(sCPBJMRXSWS) : iXSWS));//保留精度高的 + + if (!bBJSDBZ && (!bjflxx.XLXSBJFL_TZBJBJBB.Equals("Y") || CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CPBJ"].ToString().Trim()) == 0)) + { + //二次调价 + e.ResultPairs.Add("XLXSBJDMX_TZQCPBJ", dCPBJ.ToString().Trim()); + AddChangedField(dicChangedField, "XLXSBJDMX_TZQCPBJ", dCPBJ.ToString().Trim()); + double dTZJG = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_TZCPBJ"].ToString().Trim(), 0); + if (!e.EventFieldName.Equals("XLXSBJDMX_JGBBJ") && !e.EventFieldName.Equals("XLXSBJDMX_TZZDXJ") && !e.EventFieldName.Equals("XLXSBJDMX_ZDXJ")) + { + if (XLBJDUtils.GetXLXSBJPZXX(100860000).XLXSBJPZ_BQKTZBJ != "Y") + { + dTZJG = 0.0; + e.ResultPairs.Add("XLXSBJDMX_TZCPBJ", "0"); + AddChangedField(dicChangedField, "XLXSBJDMX_TZCPBJ", "0"); + } + } + dCPBJ = XLBJDUtils.RoundSZ(dCPBJ * (1 + dTZJG / 100), CMISproConvert.StrToInt(sCPBJMRXSWS)); + + double dTZQBJJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) * dCPBJ, 2); + double dTZJE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_TZBJJE"].ToString().Trim(), 0); + double dBJJE = dTZQBJJE + dTZJE; + + double dLRE = 0; + if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1"))//表价价差率公式 + dLRE = dBJJE - NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2); + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) + dLRE = NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2) - dBJJE; + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) + dLRE = dBJJE - NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2); + + //计算价差率 + double dtmpLRE = 0; + if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1"))//表价价差率公式 + dtmpLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) + dtmpLRE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) - dBJJE; + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) + dtmpLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + double dtmpCPJE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + + + + //表价价差率公式 + //表价金额 + double dCPJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2); + double dLRL = 0.0; + if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1")) + { + if (dBJJE != 0) + dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dBJJE, 2); + } + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) + { + if (dtmpCPJE != 0) + dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); + } + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("3")) + { + if (dBJJE != 0) + dLRL = NumberUtils.RoundX(dtmpCPJE * 100 / dBJJE, 2); + } + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) + { + if (dtmpCPJE != 0) + dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); + } + + double dCLCB = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CLCB"].ToString().Trim(), 0); + double dBJDHQCLCB = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0); + + double dCLCBLRL = 0.0; + if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("1")) + { + double dCLCBLRE = dBJJE - dCLCB * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + if (dBJJE != 0) + dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); + } + else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("2")) + { + double dCLCBLRE = dBJJE - dBJDHQCLCB * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + if (dBJJE != 0) + dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); + } + else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("3")) + { + double dCLCBLRE = dBJJE - dBJDHQCLCB * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + if (dBJDHQCLCB * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) != 0) + dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / (dBJDHQCLCB * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0)), 2); + } + else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("4")) + { + double dCLCBLRE = dBJDHQCLCB * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + if (dBJJE != 0) + dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); + } + + double dJGBBJLJJCL = 0.0; + if (bjflxx.XLXSBJFL_BJLJJCLLX.Trim().Equals("1")) + { + if (dCPJE != 0) + { + dJGBBJLJJCL = NumberUtils.RoundX((dCPJE - (CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0))) / dCPJE * 100, 2); + } + } + + e.ResultPairs.Add("XLXSBJDMX_CPBJ", dCPBJ.ToString()); + if (e.EventFieldName.Equals("XLXSBJDMX_JGBBJ")) + { + e.ResultPairs.Add("XLXSBJDMX_BJLY ", "SSJGBBJ"); + AddChangedField(dicChangedField, "XLXSBJDMX_BJLY", "SSJGBBJ"); + } + if (e.EventFieldName.IndexOf("TZYZ_") != -1 || e.EventFieldName.Equals("XLXSBJDMX_JMBGS")) + { + e.ResultPairs.Add("XLXSBJDMX_BJTJCZ ", "TJYZJS"); + AddChangedField(dicChangedField, "XLXSBJDMX_BJTJCZ", "TJYZJS"); + } + double dCPBJXJ = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CPBJXJ"].ToString().Trim(), 0); + double XJBJCE = dCPBJXJ - dCPBJ; + e.ResultPairs.Add("XLXSBJDMX_BJXJKD", "0"); + e.ResultPairs.Add("XLXSBJDMX_BJXJJJ", "0"); + e.ResultPairs.Add("XJBJCE", XJBJCE.ToString()); + e.ResultPairs.Add("XLXSBJDMX_TZQBJJE", dTZQBJJE.ToString()); + e.ResultPairs.Add("XLXSBJDMX_BJJE", dBJJE.ToString()); + e.ResultPairs.Add("TZHDJ", (dBJSL == 0 ? 0 : dBJJE / dBJSL).ToString().Trim()); + e.ResultPairs.Add("XLXSBJDMX_JGBBJJCL", dLRL.ToString().Trim()); + e.ResultPairs.Add("XLXSBJDMX_JGBBJJCE", dLRE.ToString().Trim()); + e.ResultPairs.Add("XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString().Trim()); + e.ResultPairs.Add("XLXSBJDMX_JGBBJLJJCL", dJGBBJLJJCL.ToString().Trim()); + e.ResultPairs.Add("XLXSBJDMX_CLCBJCLSDBZ", "N"); + AddChangedField(dicChangedField, "XLXSBJDMX_CPBJ", dCPBJ.ToString()); + AddChangedField(dicChangedField, "XLXSBJDMX_TZQBJJE", dTZQBJJE.ToString()); + AddChangedField(dicChangedField, "XLXSBJDMX_BJJE", dBJJE.ToString()); + AddChangedField(dicChangedField, "TZHDJ", (dBJSL == 0 ? 0 : dBJJE / dBJSL).ToString().Trim()); + AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJJCL", dLRL.ToString().Trim()); + AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJJCE", dLRE.ToString().Trim()); + AddChangedField(dicChangedField, "XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString().Trim()); + AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJLJJCL", dJGBBJLJJCL.ToString().Trim()); + AddChangedField(dicChangedField, "XLXSBJDMX_CLCBJCLSDBZ", "N"); + } + else//报价锁定=Y + { + e.ResultPairs.Add("XLXSBJDMX_TZQCPBJ", dCPBJ.ToString().Trim()); + AddChangedField(dicChangedField, "XLXSBJDMX_TZQCPBJ", dCPBJ.ToString().Trim()); + //报价锁定值 + double dCPBJ_SD = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CPBJ"].ToString().Trim(), 0); + double dTZJG = dCPBJ == 0 ? 0 : (100 * (dCPBJ_SD - dCPBJ) / dCPBJ); + + double dTZQBJJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) * dCPBJ_SD, 2); + double dTZJE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_TZBJJE"].ToString().Trim(), 0); + double dBJJE = dTZQBJJE + dTZJE; + + double dLRE = 0; + if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1"))//表价价差率公式 + dLRE = dBJJE - NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2); + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) + dLRE = NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2) - dBJJE; + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) + dLRE = dBJJE - NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2); + + //计算价差率 + double dtmpLRE = 0; + if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1"))//表价价差率公式 + dtmpLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) + dtmpLRE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) - dBJJE; + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) + dtmpLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + double dtmpCPJE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + + + + //表价价差率公式 + //表价金额 + double dCPJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2); + double dLRL = 0.0; + if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1")) + { + if (dBJJE != 0) + dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dBJJE, 2); + } + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) + { + if (dtmpCPJE != 0) + dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); + } + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("3")) + { + if (dBJJE != 0) + dLRL = NumberUtils.RoundX(dtmpCPJE * 100 / dBJJE, 2); + } + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) + { + if (dtmpCPJE != 0) + dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); + } + + double dCLCB = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CLCB"].ToString().Trim(), 0); + double dBJDHQCLCB = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0); + + double dCLCBLRL = 0.0; + if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("1")) + { + double dCLCBLRE = dBJJE - dCLCB * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + if (dBJJE != 0) + dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); + } + else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("2")) + { + double dCLCBLRE = dBJJE - dBJDHQCLCB * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + if (dBJJE != 0) + dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); + } + else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("3")) + { + double dCLCBLRE = dBJJE - dBJDHQCLCB * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + if (dBJDHQCLCB * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) != 0) + dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / (dBJDHQCLCB * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0)), 2); + } + else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("4")) + { + double dCLCBLRE = dBJDHQCLCB * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + if (dBJJE != 0) + dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); + } + double dJGBBJLJJCL = 0.0; + if (bjflxx.XLXSBJFL_BJLJJCLLX.Trim().Equals("1")) + { + if (dCPJE != 0) + { + dJGBBJLJJCL = NumberUtils.RoundX((dCPJE - (CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0))) / dCPJE * 100, 2); + } + } + + dTZJG=NumberUtils.RoundX(dTZJG,15); + e.ResultPairs.Add("XLXSBJDMX_TZCPBJ", dTZJG.ToString("F6").Trim()); + e.ResultPairs.Add("XLXSBJDMX_CPBJ", dCPBJ_SD.ToString()); + e.ResultPairs.Add("XLXSBJDMX_TZQBJJE", dTZQBJJE.ToString()); + e.ResultPairs.Add("XLXSBJDMX_BJJE", dBJJE.ToString()); + e.ResultPairs.Add("TZHDJ", (dBJSL == 0 ? 0 : dBJJE / dBJSL).ToString().Trim()); + e.ResultPairs.Add("XLXSBJDMX_JGBBJJCL", dLRL.ToString().Trim()); + e.ResultPairs.Add("XLXSBJDMX_JGBBJJCE", dLRE.ToString().Trim()); + e.ResultPairs.Add("XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString().Trim()); + e.ResultPairs.Add("XLXSBJDMX_JGBBJLJJCL", dJGBBJLJJCL.ToString().Trim()); + e.ResultPairs.Add("XLXSBJDMX_CLCBJCLSDBZ", "N"); + AddChangedField(dicChangedField, "XLXSBJDMX_TZCPBJ", dTZJG.ToString("F6").Trim()); + AddChangedField(dicChangedField, "XLXSBJDMX_CPBJ", dCPBJ_SD.ToString()); + AddChangedField(dicChangedField, "XLXSBJDMX_TZQBJJE", dTZQBJJE.ToString()); + AddChangedField(dicChangedField, "XLXSBJDMX_BJJE", dBJJE.ToString()); + AddChangedField(dicChangedField, "TZHDJ", (dBJSL == 0 ? 0 : dBJJE / dBJSL).ToString().Trim()); + AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJJCL", dLRL.ToString().Trim()); + AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJJCE", dLRE.ToString().Trim()); + AddChangedField(dicChangedField, "XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString().Trim()); + AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJLJJCL", dJGBBJLJJCL.ToString().Trim()); + AddChangedField(dicChangedField, "XLXSBJDMX_CLCBJCLSDBZ", "N"); + } + } + + if (e.EventFieldName.Equals("XLXSBJDMX_TZCPBJ"))//若调整报价(%)发生变化,则要对报价进行二次调价 + { + if (!bBJSDBZ) + { + //二次调价 + double dTZQCPBJ = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_TZQCPBJ"].ToString().Trim(), 0); + double dTZJG = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_TZCPBJ"].ToString().Trim(), 0); + double dCPBJ = XLBJDUtils.RoundSZ(dTZQCPBJ * (1 + dTZJG / 100), CMISproConvert.StrToInt(sCPBJMRXSWS)); + + double dTZQBJJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) * dCPBJ, 2); + double dTZJE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_TZBJJE"].ToString().Trim(), 0); + double dBJJE = dTZQBJJE + dTZJE; + + double dLRE = 0; + if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1"))//表价价差率公式 + dLRE = dBJJE - NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2); + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) + dLRE = NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2) - dBJJE; + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) + dLRE = dBJJE - NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2); + + //计算价差率 + double dtmpLRE = 0; + if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1"))//表价价差率公式 + dtmpLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) + dtmpLRE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) - dBJJE; + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) + dtmpLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + double dtmpCPJE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + + + //表价价差率公式 + //表价金额 + double dCPJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2); + double dLRL = 0.0; + if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1")) + { + if (dBJJE != 0) + dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dBJJE, 2); + } + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) + { + if (dtmpCPJE != 0) + dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); + } + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("3")) + { + if (dBJJE != 0) + dLRL = NumberUtils.RoundX(dtmpCPJE * 100 / dBJJE, 2); + } + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) + { + if (dtmpCPJE != 0) + dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); + } + + double dCLCB = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CLCB"].ToString().Trim(), 0); + double dBJDHQCLCB = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0); + //if (!IsExist(e.RowData["XLXSBJDMX_XLXHID"].ToString().Trim(), e.RowData["XLXSBJDMX_XLGGID"].ToString().Trim(), e.RowData["XLXSBJDMX_XLBZID"].ToString().Trim().Split('|')[0].Trim(), e.RowData["XLXSBJDMX_DYDJID"].ToString().Trim().Split('|')[0].Trim(), e.MasterDataSet["cbxJGBID"].Trim(), e.MasterDataSet["txtJGCIDS"].Trim())) + //{ + // dCLCB = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0); + // dBJDHQCLCB = dCLCB; + // e.ResultPairs.Add("XLXSBJDMX_JGBJJ", dCLCB.ToString().Trim()); + // e.ResultPairs.Add("XLXSBJDMX_CLCB", dCLCB.ToString().Trim()); + // e.ResultPairs.Add("XLXSBJDMX_BJDHQCLCB", dBJDHQCLCB.ToString().Trim()); + //} + + double dCLCBLRL = 0.0; + if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("1")) + { + double dCLCBLRE = dBJJE - dCLCB * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + if (dBJJE != 0) + dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); + } + else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("2")) + { + double dCLCBLRE = dBJJE -dBJDHQCLCB * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + if (dBJJE != 0) + dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); + } + else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("3")) + { + double dCLCBLRE = dBJJE - dBJDHQCLCB * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + if (dBJDHQCLCB * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) != 0) + dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / (dBJDHQCLCB * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0)), 2); + } + else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("4")) + { + double dCLCBLRE = dBJDHQCLCB * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + if (dBJJE != 0) + dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); + } + double dCPBJXJ = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CPBJXJ"].ToString().Trim(), 0); + double XJBJCE = dCPBJXJ - dCPBJ; + e.ResultPairs.Add("XLXSBJDMX_BJXJKD", "0"); + e.ResultPairs.Add("XLXSBJDMX_BJXJJJ", "0"); + e.ResultPairs.Add("XJBJCE", XJBJCE.ToString()); + e.ResultPairs.Add("XLXSBJDMX_CPBJ", dCPBJ.ToString()); + e.ResultPairs.Add("XLXSBJDMX_TZQBJJE", dTZQBJJE.ToString()); + e.ResultPairs.Add("XLXSBJDMX_BJJE", dBJJE.ToString()); + e.ResultPairs.Add("TZHDJ", (dBJSL == 0 ? 0 : dBJJE / dBJSL).ToString().Trim()); + e.ResultPairs.Add("XLXSBJDMX_JGBBJJCL", dLRL.ToString().Trim()); + e.ResultPairs.Add("XLXSBJDMX_JGBBJJCE", dLRE.ToString().Trim()); + e.ResultPairs.Add("XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString().Trim()); + e.ResultPairs.Add("XLXSBJDMX_CLCBJCLSDBZ", "N"); + e.ResultPairs.Add("XLXSBJDMX_BJTJCZ ", "TJYZJS"); + AddChangedField(dicChangedField, "XLXSBJDMX_CPBJ", dCPBJ.ToString()); + AddChangedField(dicChangedField, "XLXSBJDMX_TZQBJJE", dTZQBJJE.ToString()); + AddChangedField(dicChangedField, "XLXSBJDMX_BJJE", dBJJE.ToString()); + AddChangedField(dicChangedField, "TZHDJ", (dBJSL == 0 ? 0 : dBJJE / dBJSL).ToString().Trim()); + AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJJCL", dLRL.ToString().Trim()); + AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJJCE", dLRE.ToString().Trim()); + AddChangedField(dicChangedField, "XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString().Trim()); + AddChangedField(dicChangedField, "XLXSBJDMX_CLCBJCLSDBZ", "N"); + AddChangedField(dicChangedField, "XLXSBJDMX_BJTJCZ", "TJYZJS"); + } + else//报价锁定=Y,应改不了调整报价(%) + { + double dTZQCPBJ = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_TZQCPBJ"].ToString().Trim(), 0); + //报价锁定值 + double dCPBJ_SD = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CPBJ"].ToString().Trim(), 0); + double dTZJG = dTZQCPBJ == 0 ? 0 : (100 * (dCPBJ_SD - dTZQCPBJ) / dTZQCPBJ); + + dTZJG = NumberUtils.RoundX(dTZJG, 15); + e.ResultPairs.Add("XLXSBJDMX_TZCPBJ", dTZJG.ToString("F6").Trim()); + AddChangedField(dicChangedField, "XLXSBJDMX_TZCPBJ", dTZJG.ToString("F6").Trim()); + } + } + + if (e.EventFieldName.Equals("XLXSBJDMX_TZBJJE")) + { + double dTZQBJJE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_TZQBJJE"].ToString().Trim(), 0); + double dTZJE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_TZBJJE"].ToString().Trim(), 0); + double dBJJE = dTZQBJJE + dTZJE; + double dLRE = 0; + if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1"))//表价价差率公式 + dLRE = dBJJE - NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2); + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) + dLRE = NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2) - dBJJE; + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) + dLRE = dBJJE - NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2); + + //计算价差率 + double dtmpLRE = 0; + if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1"))//表价价差率公式 + dtmpLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) + dtmpLRE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) - dBJJE; + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) + dtmpLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + double dtmpCPJE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + + //表价价差率公式 + //表价金额 + double dCPJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2); + double dLRL = 0.0; + if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1")) + { + if (dBJJE != 0) + dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dBJJE, 2); + } + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) + { + if (dtmpCPJE != 0) + dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); + } + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("3")) + { + if (dBJJE != 0) + dLRL = NumberUtils.RoundX(dtmpCPJE * 100 / dBJJE, 2); + } + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) + { + if (dtmpCPJE != 0) + dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); + } + + double dCLCBLRL = 0.0; + if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("1")) + { + double dCLCBLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CLCB"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + if (dBJJE != 0) + dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); + } + else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("2")) + { + double dCLCBLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + if (dBJJE != 0) + dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); + } + else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("3")) + { + double dCLCBLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + if (CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) != 0) + dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / (CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0)), 2); + } + else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("4")) + { + double dCLCBLRE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + if (dBJJE != 0) + dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); + } + e.ResultPairs.Add("XLXSBJDMX_BJJE", dBJJE.ToString().Trim()); + e.ResultPairs.Add("TZHDJ", (dBJSL == 0 ? 0 : dBJJE / dBJSL).ToString().Trim()); + e.ResultPairs.Add("XLXSBJDMX_JGBBJJCL", dLRL.ToString().Trim()); + e.ResultPairs.Add("XLXSBJDMX_JGBBJJCE", dLRE.ToString().Trim()); + e.ResultPairs.Add("XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString().Trim()); + e.ResultPairs.Add("XLXSBJDMX_CLCBJCLSDBZ", "N"); + AddChangedField(dicChangedField, "XLXSBJDMX_BJJE", dBJJE.ToString().Trim()); + AddChangedField(dicChangedField, "TZHDJ", (dBJSL == 0 ? 0 : dBJJE / dBJSL).ToString().Trim()); + AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJJCL", dLRL.ToString().Trim()); + AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJJCE", dLRE.ToString().Trim()); + AddChangedField(dicChangedField, "XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString().Trim()); + AddChangedField(dicChangedField, "XLXSBJDMX_CLCBJCLSDBZ", "N"); + } + + if (e.EventFieldName.Equals("XLXSBJDMX_CLCBJCL"))//料价价差率变化,重算报价金额、报价、调整报价(%) + { + if (!bBJSDBZ) + { + //仅报价单行情料价显示时显示按料价价差率算报价,更改料价价差率则标记按料价价差率算报价 + if (bjflxx.XSBJDHQLJ()) + { + e.ResultPairs.Add("XLXSBJDMX_CLCBJCLSDBZ", "Y"); + AddChangedField(dicChangedField, "XLXSBJDMX_CLCBJCLSDBZ", "Y"); + } + + //这里程序做了制约:不变调整金额,变调整报价(%) + double dCLCBLRL = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CLCBJCL"].ToString().Trim(), 0); + double dTZJE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_TZBJJE"].ToString().Trim(), 0); + double dTZQCPBJ = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_TZQCPBJ"].ToString().Trim(), 0); + double dCPJJ = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0); + + if (dBJSL != 0) + { + double dBJJE = 0; + if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("1"))//1|(调整后报价金额-价格表行情料价金额)/调整后报价金额*100 + { + double dCLCB = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CLCB"].ToString().Trim(), 0); + if (dCLCBLRL != 100) + dBJJE = NumberUtils.RoundX(dBJSL * dCLCB / (1 - dCLCBLRL / 100), 2); + } + else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("2"))//2|(调整后报价金额-报价单行情料价金额)/调整后报价金额*100 + { + double dBJDHQCLCB = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0); + if (dCLCBLRL != 100) + dBJJE = NumberUtils.RoundX(dBJSL * dBJDHQCLCB / (1 - dCLCBLRL / 100), 2); + } + else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("3"))//3|(调整后报价金额-报价单行情料价金额)/报价单行情料价金额*100 + { + double dBJDHQCLCB = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0); + dBJJE = NumberUtils.RoundX(dBJSL * dBJDHQCLCB * (1 + dCLCBLRL / 100), 2); + } + else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("4"))//4|(报价单行情料价金额)/调整后报价金额*100 + { + double dBJDHQCLCB = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0); + if (dCLCBLRL != 0) + dBJJE = NumberUtils.RoundX(dBJSL * dBJDHQCLCB / (dCLCBLRL / 100), 2); + } + double dTZQBJJE = dBJJE - dTZJE; + double dCPBJ = dTZQBJJE / dBJSL; + + + dCPBJ = XLBJDUtils.RoundSZ(dCPBJ, CMISproConvert.StrToInt(sCPBJMRXSWS)); + dTZQBJJE = NumberUtils.RoundX(dCPBJ * dBJSL, 2); + dBJJE = dTZQBJJE + dTZJE; + + if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("1")) + { + double dCLCB = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CLCB"].ToString().Trim(), 0); + double dCLCBLRE = dBJJE - dCLCB * dBJSL; + if (dBJJE != 0) + dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); + } + else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("2")) + { + double dBJDHQCLCB = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0); + double dCLCBLRE = dBJJE - dBJDHQCLCB * dBJSL; + if (dBJJE != 0) + dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); + } + else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("3")) + { + double dBJDHQCLCB = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0); + double dCLCBLRE = dBJJE - dBJDHQCLCB * dBJSL; + if (dBJDHQCLCB * dBJSL != 0) + dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / (dBJDHQCLCB * dBJSL), 2); + } + else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("4")) + { + double dBJDHQCLCB = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0); + double dCLCBLRE = dBJDHQCLCB * dBJSL; + if (dBJJE != 0) + dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); + } + e.ResultPairs.Add("XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString()); + AddChangedField(dicChangedField, "XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString()); + + + double dTZJG = 0; + if (dTZQCPBJ != 0) + dTZJG = 100 * (dCPBJ - dTZQCPBJ) / dTZQCPBJ; + + //重算表价价差率 + double dLRE = 0; + if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1"))//表价价差率公式 + dLRE = dBJJE - NumberUtils.RoundX(dCPJJ * dBJSL, 2); + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) + dLRE = NumberUtils.RoundX(dCPJJ * dBJSL, 2) - dBJJE; + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) + dLRE = dBJJE - NumberUtils.RoundX(dCPJJ * dBJSL, 2); + + //计算价差率 + double dtmpLRE = 0; + if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1"))//表价价差率公式 + dtmpLRE = dBJJE - dCPJJ * dBJSL; + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) + dtmpLRE = dCPJJ * dBJSL - dBJJE; + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) + dtmpLRE = dBJJE - dCPJJ * dBJSL; + double dtmpCPJE = dCPJJ * dBJSL; + + //表价价差率公式 + //表价金额 + double dCPJE = NumberUtils.RoundX(dCPJJ * dBJSL, 2); + double dLRL = 0.0; + if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1")) + { + if (dBJJE != 0) + dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dBJJE, 2); + } + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) + { + if (dtmpCPJE != 0) + dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); + } + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("3")) + { + if (dBJJE != 0) + dLRL = NumberUtils.RoundX(dtmpCPJE * 100 / dBJJE, 2); + } + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) + { + if (dtmpCPJE != 0) + dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); + } + + e.ResultPairs.Add("XLXSBJDMX_BJJE", dBJJE.ToString()); + e.ResultPairs.Add("TZHDJ", (dBJSL == 0 ? 0 : dBJJE / dBJSL).ToString().Trim()); + e.ResultPairs.Add("XLXSBJDMX_TZQBJJE", dTZQBJJE.ToString()); + e.ResultPairs.Add("XLXSBJDMX_CPBJ", dCPBJ.ToString()); + if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("1")) + { + e.ResultPairs.Add("XLXSBJDMX_BJLY", "JGBHQLJ"); + AddChangedField(dicChangedField, "XLXSBJDMX_BJLY", "JGBHQLJ"); + } + else + { + e.ResultPairs.Add("XLXSBJDMX_BJLY", "BJDHQLJ"); + AddChangedField(dicChangedField, "XLXSBJDMX_BJLY", "BJDHQLJ"); + } + double dCPBJXJ = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CPBJXJ"].ToString().Trim(), 0); + double XJBJCE = dCPBJXJ - dCPBJ; + + dTZJG = NumberUtils.RoundX(dTZJG, 15); + e.ResultPairs.Add("XLXSBJDMX_BJXJKD", "0"); + e.ResultPairs.Add("XLXSBJDMX_BJXJJJ", "0"); + e.ResultPairs.Add("XJBJCE", XJBJCE.ToString()); + e.ResultPairs.Add("XLXSBJDMX_BJTJCZ ", "LJJCLTZ"); + AddChangedField(dicChangedField, "XLXSBJDMX_BJTJCZ", "LJJCLTZ"); + e.ResultPairs.Add("XLXSBJDMX_TZCPBJ", dTZJG.ToString("F6")); + e.ResultPairs.Add("XLXSBJDMX_JGBBJJCL", dLRL.ToString()); + e.ResultPairs.Add("XLXSBJDMX_JGBBJJCE", dLRE.ToString()); + AddChangedField(dicChangedField, "XLXSBJDMX_BJJE", dBJJE.ToString()); + AddChangedField(dicChangedField, "TZHDJ", (dBJSL == 0 ? 0 : dBJJE / dBJSL).ToString().Trim()); + AddChangedField(dicChangedField, "XLXSBJDMX_TZQBJJE", dTZQBJJE.ToString()); + AddChangedField(dicChangedField, "XLXSBJDMX_CPBJ", dCPBJ.ToString()); + AddChangedField(dicChangedField, "XLXSBJDMX_TZCPBJ", dTZJG.ToString("F6")); + AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJJCL", dLRL.ToString()); + AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJJCE", dLRE.ToString()); + } + } + else//报价锁定=Y,应改不了料价价差率 + { + double dBJJE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJJE"].ToString().Trim(), 0); + + double dCLCBLRL = 0.0; + if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("1")) + { + double dCLCBLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CLCB"].ToString().Trim()) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + if (dBJJE != 0) + dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); + } + else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("2")) + { + double dCLCBLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim()) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + if (dBJJE != 0) + dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); + } + else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("3")) + { + double dBJDHQLJ = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim()) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + double dCLCBLRE = dBJJE - dBJDHQLJ; + if (dBJDHQLJ != 0) + dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJDHQLJ, 2); + } + else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("4")) + { + double dCLCBLRE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim()) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + if (dBJJE != 0) + dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); + } + e.ResultPairs.Add("XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString().Trim()); + AddChangedField(dicChangedField, "XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString().Trim()); + } + } + + if (e.EventFieldName.Equals("XLXSBJDMX_JGBBJJCL"))//表价价差率变化,重算报价金额、报价、调整报价(%) + { + if (!bBJSDBZ) + { + //这里程序做了制约:不变调整金额,变调整报价(%) + double dLRL = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJJCL"].ToString().Trim(), 0); + double dTZJE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_TZBJJE"].ToString().Trim(), 0); + double dTZQCPBJ = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_TZQCPBJ"].ToString().Trim(), 0); + double dCPJJ = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0); + double dCLCB = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CLCB"].ToString().Trim(), 0); + double dBJDHQCLCB = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0); + + if (dBJSL != 0) + { + //表价价差率公式 + double dBJJE = 0; + double dLRE = 0; + if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1"))//1|(调整后报价金额-表价金额)/调整后报价金额*100 + { + if (dLRL != 100) + dBJJE = NumberUtils.RoundX(dBJSL * dCPJJ / (1 - dLRL / 100), 2); + + dLRE = NumberUtils.RoundX(dLRL * dBJJE / 100, 2); + } + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2"))//2|(表价金额-调整后报价金额)/表价金额*100 + { + if (dLRL != 100) + dBJJE = NumberUtils.RoundX(dBJSL * dCPJJ * (1 - dLRL / 100), 2); + + dLRE = NumberUtils.RoundX(dLRL * dBJSL * dCPJJ / 100, 2); + } + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("3"))//3|表价金额/调整后报价金额*100 + { + if (dLRL != 0) + dBJJE = NumberUtils.RoundX(dBJSL * dCPJJ / (dLRL / 100), 2); + + dLRE = 0; + } + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4"))//4|(调整后报价金额-表价金额)/表价金额*100 + { + if (dLRL != 100) + dBJJE = NumberUtils.RoundX(dBJSL * dCPJJ * (1 + dLRL / 100), 2); + + dLRE = NumberUtils.RoundX(dLRL * dBJSL * dCPJJ / 100, 2); + } + + double dTZQBJJE = dBJJE - dTZJE; + double dCPBJ = dTZQBJJE / dBJSL; + + + dCPBJ = XLBJDUtils.RoundSZ(dCPBJ, CMISproConvert.StrToInt(sCPBJMRXSWS)); + dTZQBJJE = NumberUtils.RoundX(dCPBJ * dBJSL, 2); + dBJJE = dTZQBJJE + dTZJE; + + dLRE = 0; + if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1"))//表价价差率公式 + dLRE = dBJJE - NumberUtils.RoundX(dCPJJ * dBJSL, 2); + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) + dLRE = NumberUtils.RoundX(dCPJJ * dBJSL, 2) - dBJJE; + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) + dLRE = dBJJE - NumberUtils.RoundX(dCPJJ * dBJSL, 2); + + //计算价差率 + double dtmpLRE = 0; + if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1"))//表价价差率公式 + dtmpLRE = dBJJE - dCPJJ * dBJSL; + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) + dtmpLRE = dCPJJ * dBJSL - dBJJE; + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) + dtmpLRE = dBJJE - dCPJJ * dBJSL; + double dtmpCPJE = dCPJJ * dBJSL; + + + //表价价差率公式 + //表价金额 + double dCPJE = NumberUtils.RoundX(dCPJJ * dBJSL, 2); + dLRL = 0.0; + if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1")) + { + if (dBJJE != 0) + dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dBJJE, 2); + } + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) + { + if (dtmpCPJE != 0) + dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); + } + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("3")) + { + if (dBJJE != 0) + dLRL = NumberUtils.RoundX(dtmpCPJE * 100 / dBJJE, 2); + } + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) + { + if (dtmpCPJE != 0) + dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); + } + e.ResultPairs.Add("XLXSBJDMX_JGBBJJCL", dLRL.ToString()); + AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJJCL", dLRL.ToString()); + + + double dTZJG = 0; + if (dTZQCPBJ != 0) + dTZJG = 100 * (dCPBJ - dTZQCPBJ) / dTZQCPBJ; + + //重算料价价差率 + double dCLCBLRL = 0.0; + if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("1")) + { + double dCLCBLRE = dBJJE - dCLCB * dBJSL; + if (dBJJE != 0) + dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); + } + else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("2")) + { + double dCLCBLRE = dBJJE - dBJDHQCLCB * dBJSL; + if (dBJJE != 0) + dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); + } + else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("3")) + { + double dCLCBLRE = dBJJE - dBJDHQCLCB * dBJSL; + if (dBJDHQCLCB * dBJSL != 0) + dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / (dBJDHQCLCB * dBJSL), 2); + } + else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("4")) + { + double dCLCBLRE = dBJDHQCLCB * dBJSL; + if (dBJJE != 0) + dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); + } + double dCPBJXJ = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CPBJXJ"].ToString().Trim(), 0); + double XJBJCE = dCPBJXJ - dCPBJ; + + dTZJG = NumberUtils.RoundX(dTZJG, 15); + e.ResultPairs.Add("XLXSBJDMX_BJXJKD", "0"); + e.ResultPairs.Add("XLXSBJDMX_BJXJJJ", "0"); + e.ResultPairs.Add("XJBJCE", XJBJCE.ToString()); + e.ResultPairs.Add("XLXSBJDMX_BJJE", dBJJE.ToString()); + e.ResultPairs.Add("TZHDJ", (dBJSL == 0 ? 0 : dBJJE / dBJSL).ToString().Trim()); + e.ResultPairs.Add("XLXSBJDMX_TZQBJJE", dTZQBJJE.ToString()); + e.ResultPairs.Add("XLXSBJDMX_CPBJ", dCPBJ.ToString()); + e.ResultPairs.Add("XLXSBJDMX_BJTJCZ ", "BJJCLTZ"); + e.ResultPairs.Add("XLXSBJDMX_TZCPBJ", dTZJG.ToString("F6")); + e.ResultPairs.Add("XLXSBJDMX_JGBBJJCE", dLRE.ToString()); + e.ResultPairs.Add("XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString()); + e.ResultPairs.Add("XLXSBJDMX_CLCBJCLSDBZ", "N"); + AddChangedField(dicChangedField, "XLXSBJDMX_BJJE", dBJJE.ToString()); + AddChangedField(dicChangedField, "TZHDJ", (dBJSL == 0 ? 0 : dBJJE / dBJSL).ToString().Trim()); + AddChangedField(dicChangedField, "XLXSBJDMX_TZQBJJE", dTZQBJJE.ToString()); + AddChangedField(dicChangedField, "XLXSBJDMX_CPBJ", dCPBJ.ToString()); + AddChangedField(dicChangedField, "XLXSBJDMX_TZCPBJ", dTZJG.ToString("F6")); + AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJJCE", dLRE.ToString()); + AddChangedField(dicChangedField, "XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString()); + AddChangedField(dicChangedField, "XLXSBJDMX_CLCBJCLSDBZ", "N"); + AddChangedField(dicChangedField, "XLXSBJDMX_BJTJCZ", "BJJCLTZ"); + } + } + else//报价锁定=Y,应改不了表价价差率 + { + double dBJJE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJJE"].ToString().Trim(), 0); + + double dLRE = 0; + if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1"))//表价价差率公式 + dLRE = dBJJE - NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim()) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2); + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) + dLRE = NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim()) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2) - dBJJE; + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) + dLRE = dBJJE - NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim()) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2); + //计算价差率 + double dtmpLRE = 0; + if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1"))//表价价差率公式 + dtmpLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim()) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) + dtmpLRE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim()) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) - dBJJE; + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) + dtmpLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim()) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + double dtmpCPJE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim()) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + + //表价价差率公式 + //表价金额 + double dCPJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim()) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2); + double dLRL = 0.0; + if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1")) + { + if (dBJJE != 0) + dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dBJJE, 2); + } + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) + { + if (dtmpCPJE != 0) + dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); + } + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("3")) + { + if (dBJJE != 0) + dLRL = NumberUtils.RoundX(dtmpCPJE * 100 / dBJJE, 2); + } + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) + { + if (dtmpCPJE != 0) + dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); + } + + e.ResultPairs.Add("XLXSBJDMX_JGBBJJCL", dLRL.ToString().Trim()); + e.ResultPairs.Add("XLXSBJDMX_JGBBJJCE", dLRE.ToString().Trim()); + AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJJCL", dLRL.ToString().Trim()); + AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJJCE", dLRE.ToString().Trim()); + } + } + + + if (e.EventFieldName.Equals("XLXSBJDMX_BJSDBZ")) + { + if (e.RowData["XLXSBJDMX_BJSDBZ"].ToString().Trim().Equals("Y")) + { + e.ResultPairs.Add("XLXSBJDMX_CLCBJCLSDBZ", "N"); + AddChangedField(dicChangedField, "XLXSBJDMX_CLCBJCLSDBZ", "N"); + } + } + if (e.EventFieldName.Equals("XLXSBJDMX_CLCBJCLSDBZ")) + { + if (e.RowData["XLXSBJDMX_CLCBJCLSDBZ"].ToString().Trim().Equals("Y")) + { + e.ResultPairs.Add("XLXSBJDMX_BJSDBZ", "N"); + AddChangedField(dicChangedField, "XLXSBJDMX_BJSDBZ", "N"); + } + } + + + string stCLCB = ""; + if (dicChangedField.ContainsKey("XLXSBJDMX_CLCB")) + { + stCLCB = dicChangedField["XLXSBJDMX_CLCB"]; + isChanged = true; + } + else + stCLCB = e.RowData["XLXSBJDMX_CLCB"].ToString().Trim(); + + string stBJDHQCLCB = ""; + if (dicChangedField.ContainsKey("XLXSBJDMX_BJDHQCLCB")) + { + stBJDHQCLCB = dicChangedField["XLXSBJDMX_BJDHQCLCB"]; + isChanged = true; + } + else + stBJDHQCLCB = e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(); + + string stJGBJJ = ""; + if (dicChangedField.ContainsKey("XLXSBJDMX_JGBJJ")) + { + stJGBJJ = dicChangedField["XLXSBJDMX_JGBJJ"]; + isChanged = true; + } + else + stJGBJJ = e.RowData["XLXSBJDMX_JGBJJ"].ToString().Trim(); + + string stJGBBJ = ""; + if (dicChangedField.ContainsKey("XLXSBJDMX_JGBBJ")) + { + stJGBBJ = dicChangedField["XLXSBJDMX_JGBBJ"]; + isChanged = true; + } + else + stJGBBJ = e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(); + + string stCPBJ = ""; + if (dicChangedField.ContainsKey("XLXSBJDMX_CPBJ")) + { + stCPBJ = dicChangedField["XLXSBJDMX_CPBJ"]; + isChanged = true; + } + else + stCPBJ = e.RowData["XLXSBJDMX_CPBJ"].ToString().Trim(); + + string stYZZ01 = ""; + if (dicChangedField.ContainsKey("TZYZ_BJ01")) + { + stYZZ01 = dicChangedField["TZYZ_BJ01"]; + isChanged = true; + } + else + stYZZ01 = e.RowData["TZYZ_BJ01"].ToString().Trim(); + + string stYZZ02 = ""; + if (dicChangedField.ContainsKey("TZYZ_BJ02")) + { + stYZZ02 = dicChangedField["TZYZ_BJ02"]; + isChanged = true; + } + else + stYZZ02 = e.RowData["TZYZ_BJ02"].ToString().Trim(); + + string stYZZ03 = ""; + if (dicChangedField.ContainsKey("TZYZ_BJ03")) + { + stYZZ03 = dicChangedField["TZYZ_BJ03"]; + isChanged = true; + } + else + stYZZ03 = e.RowData["TZYZ_BJ03"].ToString().Trim(); + + string stYZZ04 = ""; + if (dicChangedField.ContainsKey("TZYZ_BJ04")) + { + stYZZ04 = dicChangedField["TZYZ_BJ04"]; + isChanged = true; + } + else + stYZZ04 = e.RowData["TZYZ_BJ04"].ToString().Trim(); + + string stYZZ05 = ""; + if (dicChangedField.ContainsKey("TZYZ_BJ05")) + { + stYZZ05 = dicChangedField["TZYZ_BJ05"]; + isChanged = true; + } + else + stYZZ05 = e.RowData["TZYZ_BJ05"].ToString().Trim(); + + string stYZZ06 = ""; + if (dicChangedField.ContainsKey("TZYZ_BJ06")) + { + stYZZ06 = dicChangedField["TZYZ_BJ06"]; + isChanged = true; + } + else + stYZZ06 = e.RowData["TZYZ_BJ06"].ToString().Trim(); + + string stYZZ07 = ""; + if (dicChangedField.ContainsKey("TZYZ_BJ07")) + { + stYZZ07 = dicChangedField["TZYZ_BJ07"]; + isChanged = true; + } + else + stYZZ07 = e.RowData["TZYZ_BJ07"].ToString().Trim(); + + string stYZZ08 = ""; + if (dicChangedField.ContainsKey("TZYZ_BJ08")) + { + stYZZ08 = dicChangedField["TZYZ_BJ08"]; + isChanged = true; + } + else + stYZZ08 = e.RowData["TZYZ_BJ08"].ToString().Trim(); + + string stYZZ09 = ""; + if (dicChangedField.ContainsKey("TZYZ_BJ09")) + { + stYZZ09 = dicChangedField["TZYZ_BJ09"]; + isChanged = true; + } + else + stYZZ09 = e.RowData["TZYZ_BJ09"].ToString().Trim(); + + string stYZZ10 = ""; + if (dicChangedField.ContainsKey("TZYZ_BJ10")) + { + stYZZ10 = dicChangedField["TZYZ_BJ10"]; + isChanged = true; + } + else + stYZZ10 = e.RowData["TZYZ_BJ10"].ToString().Trim(); + + string stYZZ11 = ""; + if (dicChangedField.ContainsKey("TZYZ_BJ11")) + { + stYZZ11 = dicChangedField["TZYZ_BJ11"]; + isChanged = true; + } + else + stYZZ11 = e.RowData["TZYZ_BJ11"].ToString().Trim(); + + string stYZZ12 = ""; + if (dicChangedField.ContainsKey("TZYZ_BJ12")) + { + stYZZ12 = dicChangedField["TZYZ_BJ12"]; + isChanged = true; + } + else + stYZZ12 = e.RowData["TZYZ_BJ12"].ToString().Trim(); + + string stYZZ13 = ""; + if (dicChangedField.ContainsKey("TZYZ_BJ13")) + { + stYZZ13 = dicChangedField["TZYZ_BJ13"]; + isChanged = true; + } + else + stYZZ13 = e.RowData["TZYZ_BJ13"].ToString().Trim(); + + string stYZZ14 = ""; + if (dicChangedField.ContainsKey("TZYZ_BJ14")) + { + stYZZ14 = dicChangedField["TZYZ_BJ14"]; + isChanged = true; + } + else + stYZZ14 = e.RowData["TZYZ_BJ14"].ToString().Trim(); + + string stYZZ15 = ""; + if (dicChangedField.ContainsKey("TZYZ_BJ15")) + { + stYZZ15 = dicChangedField["TZYZ_BJ15"]; + isChanged = true; + } + else + stYZZ15 = e.RowData["TZYZ_BJ15"].ToString().Trim(); + + string stYZZ16 = ""; + if (dicChangedField.ContainsKey("TZYZ_BJ16")) + { + stYZZ16 = dicChangedField["TZYZ_BJ16"]; + isChanged = true; + } + else + stYZZ16 = e.RowData["TZYZ_BJ16"].ToString().Trim(); + + string stYZZ17 = ""; + if (dicChangedField.ContainsKey("TZYZ_BJ17")) + { + stYZZ17 = dicChangedField["TZYZ_BJ17"]; + isChanged = true; + } + else + stYZZ17 = e.RowData["TZYZ_BJ17"].ToString().Trim(); + + string stYZZ18 = ""; + if (dicChangedField.ContainsKey("TZYZ_BJ18")) + { + stYZZ18 = dicChangedField["TZYZ_BJ18"]; + isChanged = true; + } + else + stYZZ18 = e.RowData["TZYZ_BJ18"].ToString().Trim(); + + string stYZZ19 = ""; + if (dicChangedField.ContainsKey("TZYZ_BJ19")) + { + stYZZ19 = dicChangedField["TZYZ_BJ19"]; + isChanged = true; + } + else + stYZZ19 = e.RowData["TZYZ_BJ19"].ToString().Trim(); + + string stYZZ20 = ""; + if (dicChangedField.ContainsKey("TZYZ_BJ20")) + { + stYZZ20 = dicChangedField["TZYZ_BJ20"]; + isChanged = true; + } + else + stYZZ20 = e.RowData["TZYZ_BJ20"].ToString().Trim(); + + string stZDXJ = ""; + if (dicChangedField.ContainsKey("XLXSBJDMX_ZDXJ")) + { + stZDXJ = dicChangedField["XLXSBJDMX_ZDXJ"]; + isChanged = true; + } + else + stZDXJ = e.RowData["XLXSBJDMX_ZDXJ"].ToString().Trim(); + + string sJSJ = ""; + if (dicChangedField.ContainsKey("XLXSBJDMX_JSJG")) + { + sJSJ = dicChangedField["XLXSBJDMX_JSJG"]; + isChanged = true; + } + else + sJSJ = e.RowData["XLXSBJDMX_JSJG"].ToString().Trim(); + + string stBJSL = ""; + if (dicChangedField.ContainsKey("XLXSBJDMX_BJSL")) + { + stBJSL = dicChangedField["XLXSBJDMX_BJSL"]; + isChanged = true; + } + else + stBJSL = e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(); + + string stBJJE = ""; + if (dicChangedField.ContainsKey("XLXSBJDMX_BJJE")) + { + stBJJE = dicChangedField["XLXSBJDMX_BJJE"]; + isChanged = true; + } + else + stBJJE = e.RowData["XLXSBJDMX_BJJE"].ToString().Trim(); + + string stYXJ = ""; + if (dicChangedField.ContainsKey("XLXSBJDMX_YXJG")) + { + stYXJ = dicChangedField["XLXSBJDMX_YXJG"]; + isChanged = true; + } + else + stYXJ = e.RowData["XLXSBJDMX_YXJG"].ToString().Trim(); + + string stTZZDXJ = ""; + if (dicChangedField.ContainsKey("XLXSBJDMX_TZZDXJ")) + { + stTZZDXJ = dicChangedField["XLXSBJDMX_TZZDXJ"]; + isChanged = true; + } + else + stTZZDXJ = e.RowData["XLXSBJDMX_TZZDXJ"].ToString().Trim(); + + string sUpdJJYZList = ""; + if (dicChangedField.ContainsKey("UpdJJYZList")) + sUpdJJYZList = dicChangedField["UpdJJYZList"]; + else + sUpdJJYZList = e.RowData["UpdJJYZList"].ToString().Trim(); + + + if (isChanged) + { + if (sUpdJJYZList.Equals("")) + sUpdJJYZList = "0|0|0|0|0|0|0|0|0|0|0"; + if (!e.EventFieldName.Equals("XLXSBJDMX_ZDXJ")) + { + double dTZQZDXJ = CMISproConvert.StrToFloat(stZDXJ); + string sTZQZDXJ = e.RowData["XLXSBJDMX_TZQZDXJ"].ToString().Trim(); + sTZQZDXJ = XLBJDUtils.GetZDXJ(stCLCB, stBJDHQCLCB, stJGBJJ, stJGBBJ, stCPBJ, stYZZ01, stYZZ02, stYZZ03, stYZZ04, stYZZ05, stYZZ06, stYZZ07, stYZZ08, stYZZ09, stYZZ10, stYZZ11, stYZZ12, stYZZ13, stYZZ14, stYZZ15, stYZZ16, stYZZ17, stYZZ18, stYZZ19, stYZZ20, dicChangedField, sTZQZDXJ, e.MasterDataSet["cbxBJFLID"].Trim(), 8, e.RowData["XLXSBJDMX_ZDXJBJDID"].ToString().Trim(), sUpdJJYZList); + stZDXJ = NumberUtils.RoundX(CMISproConvert.StrToFloat(sTZQZDXJ) * (1 + CMISproConvert.StrToFloat(stTZZDXJ) / 100), iXSWS).ToString(); + if (CMISproConvert.StrToFloat(stZDXJ) != dTZQZDXJ) + AddChangedField(dicChangedField, "XLXSBJDMX_ZDXJ", stZDXJ); + e.ResultPairs.Add("XLXSBJDMX_TZQZDXJ", sTZQZDXJ); + e.ResultPairs.Add("XLXSBJDMX_ZDXJ", stZDXJ); + } + sJSJ = XLBJDUtils.GetJSJ(stCLCB, stBJDHQCLCB, stJGBJJ, stJGBBJ, stCPBJ, stZDXJ, stYZZ01, stYZZ02, stYZZ03, stYZZ04, stYZZ05, stYZZ06, stYZZ07, stYZZ08, stYZZ09, stYZZ10, stYZZ11, stYZZ12, stYZZ13, stYZZ14, stYZZ15, stYZZ16, stYZZ17, stYZZ18, stYZZ19, stYZZ20, dicChangedField, sJSJ, e.MasterDataSet["cbxBJFLID"].Trim(), 8, sUpdJJYZList); + + string stJSJJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(sJSJ, 0) * CMISproConvert.StrToFloat(stBJSL, 0), 2).ToString(); + string stJSJJCL = XLBJDUtils.GetJSJJCL(bjflxx.XLXSBJFL_JSJJCLLX.Trim(), stJSJJE, stBJJE); + e.ResultPairs.Add("XLXSBJDMX_JSJG", sJSJ); + e.ResultPairs.Add("XLXSBJDMX_JSJJE", stJSJJE); + e.ResultPairs.Add("XLXSBJDMX_JSJJCL", stJSJJCL); + string stZDXJJCL = XLBJDUtils.GetZDXJJCL(bjflxx.XLXSBJFL_ZDXJJCLLX.Trim(), stZDXJ, stBJSL, stBJJE, stBJDHQCLCB, stJGBBJ); + string stYXJJCL = XLBJDUtils.GetYXJJCL(bjflxx.XLXSBJFL_YXJJCLLX.Trim(), stZDXJ, stYXJ); + string stZDXJJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(stZDXJ, 0) * CMISproConvert.StrToFloat(stBJSL, 0), 2).ToString(); + e.ResultPairs.Add("XLXSBJDMX_YXJJCL", stYXJJCL); + e.ResultPairs.Add("XLXSBJDMX_ZDXJJCL", stZDXJJCL); + e.ResultPairs.Add("XLXSBJDMX_ZDXJJE", stZDXJJE); + } + + + + if (e.EventFieldName.Equals("XLXSBJDMX_XLXHID") || e.EventFieldName.Equals("XLXSBJDMX_XLGGID") + || e.EventFieldName.Equals("XLXSBJDMX_XLBZID") || e.EventFieldName.Equals("XLBZ_XLBZMS") || e.EventFieldName.Equals("XLXSBJDMX_DYDJID") + || e.EventFieldName.Equals("XLXSBJDMX_JLDW") || e.EventFieldName.Equals("XLXSBJDMX_BJSL")) + { + if (!e.MasterDataSet["txtPFYZID"].Trim().Equals("")) + { + e.ResultPairs.Add("TZYZ_" + e.MasterDataSet["txtPFYZID"].Trim(), "0"); + AddChangedField(dicChangedField, "TZYZ_" + e.MasterDataSet["txtPFYZID"].Trim(), "0"); + } + e.ResultPairs.Add("PFYSQKBZ", "Y"); + AddChangedField(dicChangedField, "PFYSQKBZ", "Y"); + } + + if (e.EventFieldName.Equals("XLXSBJDMX_BJDHQCLCB")) + { + double dBJDHQCLCB = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0); + if (e.RowData["XLXSBJDMX_CLCBJCLSDBZ"].ToString().Trim().Equals("Y") && (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("2") || bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("3") || bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("4"))) + { + if (!bBJSDBZ) + { + //这里程序做了制约:不变调整金额,变调整报价(%) + double dCLCBLRL = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CLCBJCL"].ToString().Trim(), 0); + double dTZJE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_TZBJJE"].ToString().Trim(), 0); + double dTZQCPBJ = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_TZQCPBJ"].ToString().Trim(), 0); + double dCPJJ = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0); + + if (dBJSL != 0) + { + double dBJJE = 0; + if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("2"))//2|(调整后报价金额-报价单行情料价金额)/调整后报价金额*100 + { + if (dCLCBLRL != 100) + dBJJE = NumberUtils.RoundX(dBJSL * dBJDHQCLCB / (1 - dCLCBLRL / 100), 2); + } + else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("3"))//3|(调整后报价金额-报价单行情料价金额)/报价单行情料价金额*100 + { + dBJJE = NumberUtils.RoundX(dBJSL * dBJDHQCLCB * (1 + dCLCBLRL / 100), 2); + } + else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("4"))//4|(调整后报价金额-报价单行情料价金额)/调整后报价金额*100 + { + if (dCLCBLRL != 0) + dBJJE = NumberUtils.RoundX(dBJSL * dBJDHQCLCB / (dCLCBLRL / 100), 2); + } + + double dTZQBJJE = dBJJE - dTZJE; + double dCPBJ = dTZQBJJE / dBJSL; + + + dCPBJ = XLBJDUtils.RoundSZ(dCPBJ, CMISproConvert.StrToInt(sCPBJMRXSWS)); + dTZQBJJE = NumberUtils.RoundX(dCPBJ * dBJSL, 2); + dBJJE = dTZQBJJE + dTZJE; + + if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("2")) + { + double dCLCBLRE = dBJJE - dBJDHQCLCB * dBJSL; + if (dBJJE != 0) + dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); + } + else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("3")) + { + double dCLCBLRE = dBJJE - dBJDHQCLCB * dBJSL; + if (dBJDHQCLCB * dBJSL != 0) + dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / (dBJDHQCLCB * dBJSL), 2); + } + else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("4")) + { + double dCLCBLRE = dBJDHQCLCB * dBJSL; + if (dBJJE != 0) + dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); + } + e.ResultPairs.Add("XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString()); + AddChangedField(dicChangedField, "XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString()); + + + double dTZJG = 0; + if (dTZQCPBJ != 0) + dTZJG = 100 * (dCPBJ - dTZQCPBJ) / dTZQCPBJ; + + //重算表价价差率 + double dLRE = 0; + if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1"))//表价价差率公式 + dLRE = dBJJE - NumberUtils.RoundX(dCPJJ * dBJSL, 2); + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) + dLRE = NumberUtils.RoundX(dCPJJ * dBJSL, 2) - dBJJE; + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) + dLRE = dBJJE - NumberUtils.RoundX(dCPJJ * dBJSL, 2); + //计算价差率 + double dtmpLRE = 0; + if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1"))//表价价差率公式 + dtmpLRE = dBJJE - dCPJJ * dBJSL; + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) + dtmpLRE = dCPJJ * dBJSL - dBJJE; + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) + dtmpLRE = dBJJE - dCPJJ * dBJSL; + double dtmpCPJE = dCPJJ * dBJSL; + + //表价价差率公式 + //表价金额 + double dCPJE = NumberUtils.RoundX(dCPJJ * dBJSL, 2); + double dLRL = 0.0; + if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1")) + { + if (dBJJE != 0) + dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dBJJE, 2); + } + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) + { + if (dtmpCPJE != 0) + dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); + } + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("3")) + { + if (dBJJE != 0) + dLRL = NumberUtils.RoundX(dtmpCPJE * 100 / dBJJE, 2); + } + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) + { + if (dtmpCPJE != 0) + dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); + } + + e.ResultPairs.Add("XLXSBJDMX_BJJE", dBJJE.ToString()); + e.ResultPairs.Add("TZHDJ", (dBJSL == 0 ? 0 : dBJJE / dBJSL).ToString().Trim()); + e.ResultPairs.Add("XLXSBJDMX_TZQBJJE", dTZQBJJE.ToString()); + e.ResultPairs.Add("XLXSBJDMX_CPBJ", dCPBJ.ToString()); + if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("1")) + { + e.ResultPairs.Add("XLXSBJDMX_BJLY", "JGBHQLJ"); + AddChangedField(dicChangedField, "XLXSBJDMX_BJLY", "JGBHQLJ"); + } + else + { + e.ResultPairs.Add("XLXSBJDMX_BJLY", "BJDHQLJ"); + AddChangedField(dicChangedField, "XLXSBJDMX_BJLY", "BJDHQLJ"); + } + + dTZJG = NumberUtils.RoundX(dTZJG, 15); + e.ResultPairs.Add("XLXSBJDMX_BJTJCZ ", "LJJCLTZ"); + AddChangedField(dicChangedField, "XLXSBJDMX_BJTJCZ", "LJJCLTZ"); + e.ResultPairs.Add("XLXSBJDMX_TZCPBJ", dTZJG.ToString("F6")); + e.ResultPairs.Add("XLXSBJDMX_JGBBJJCL", dLRL.ToString()); + e.ResultPairs.Add("XLXSBJDMX_JGBBJJCE", dLRE.ToString()); + AddChangedField(dicChangedField, "XLXSBJDMX_BJJE", dBJJE.ToString()); + AddChangedField(dicChangedField, "TZHDJ", (dBJSL == 0 ? 0 : dBJJE / dBJSL).ToString().Trim()); + AddChangedField(dicChangedField, "XLXSBJDMX_TZQBJJE", dTZQBJJE.ToString()); + AddChangedField(dicChangedField, "XLXSBJDMX_CPBJ", dCPBJ.ToString()); + AddChangedField(dicChangedField, "XLXSBJDMX_TZCPBJ", dTZJG.ToString("F6")); + AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJJCL", dLRL.ToString()); + AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJJCE", dLRE.ToString()); + } + } + else//报价锁定=Y,应改不了料价价差率 + { + double dBJJE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJJE"].ToString().Trim(), 0); + + double dCLCBLRL = 0.0; + if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("1")) + { + double dCLCBLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CLCB"].ToString().Trim()) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + if (dBJJE != 0) + dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); + } + else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("2")) + { + double dCLCBLRE = dBJJE - CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim()) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + if (dBJJE != 0) + dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); + } + else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("3")) + { + double dBJDHQLJ = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim()) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + double dCLCBLRE = dBJJE - dBJDHQLJ; + if (dBJDHQLJ != 0) + dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJDHQLJ, 2); + } + else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("4")) + { + double dCLCBLRE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim()) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + if (dBJJE != 0) + dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); + } + e.ResultPairs.Add("XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString().Trim()); + AddChangedField(dicChangedField, "XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString().Trim()); + } + } + else + { + if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("2")) + { + double dBJJE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJJE"].ToString().Trim(), 0); + double dCLCBLRL = 0.0; + double dCLCBLRE = dBJJE - dBJDHQCLCB * dBJSL; + if (dBJJE != 0) + dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); + e.ResultPairs.Add("XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString()); + AddChangedField(dicChangedField, "XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString()); + } + else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("3")) + { + double dBJJE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJJE"].ToString().Trim(), 0); + double dCLCBLRL = 0.0; + double dCLCBLRE = dBJJE - dBJDHQCLCB * dBJSL; + if (dBJDHQCLCB * dBJSL != 0) + dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / (dBJDHQCLCB * dBJSL), 2); + e.ResultPairs.Add("XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString()); + AddChangedField(dicChangedField, "XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString()); + } + else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("4")) + { + double dBJJE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJJE"].ToString().Trim(), 0); + double dCLCBLRL = 0.0; + double dCLCBLRE = dBJDHQCLCB * dBJSL; + if (dBJJE != 0) + dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); + e.ResultPairs.Add("XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString()); + AddChangedField(dicChangedField, "XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString()); + } + } + double dJGBBJLJJCL = 0.0; + if (bjflxx.XLXSBJFL_BJLJJCLLX.Trim().Equals("1")) + { + //表价金额 + double dCPJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_JGBBJ"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2); + if (dCPJE != 0) + { + dJGBBJLJJCL = NumberUtils.RoundX((dCPJE - (CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), 0))) / dCPJE * 100, 2); + } + e.ResultPairs.Add("XLXSBJDMX_JGBBJLJJCL", dJGBBJLJJCL.ToString()); + AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJLJJCL", dJGBBJLJJCL.ToString()); + } + e.ResultPairs.Add("XLXSBJDMX_BJDHQCLCBTZ", "Y"); + AddChangedField(dicChangedField, "XLXSBJDMX_BJDHQCLCBTZ", "Y"); + AddChangedField(dicChangedField, "XLXSBJDMX_BJDHQCLCB ", dBJDHQCLCB.ToString()); + } + + } + + private string GetXLGGDW(string sXLXHID, string sXLGGID) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add("select XLGGB_XLGGDW from XLGGB where XLGGB_XLGGID=:pXLGGID and XLGGB_XLGGJDGZ=(select XLXHB_XLGGJDGZ from XLXHB where XLXHB_XLXHID=:pXLXHID)"); + SQL.ParamByName("pXLXHID").Value = sXLXHID; + SQL.ParamByName("pXLGGID").Value = sXLGGID.Replace("*","×"); + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + return ds.Tables[0].Rows[0][0].ToString().Trim(); + } + return ""; + + } + + private void DoAfterCalcCPBJ(CalculateFieldEventArgs e, bool bBJSDBZ, double dCLCB, double dBJDHQCLCB, double dCPJJ, double dCPBJ, double dBJSL, + string sCPBJMRXSWS, ref Dictionary dicChangedField) + { + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(e.MasterDataSet["cbxBJFLID"].Trim()); + if (!bBJSDBZ) + { + //二次调价 + e.ResultPairs.Add("XLXSBJDMX_TZQCPBJ", dCPBJ.ToString().Trim()); + AddChangedField(dicChangedField, "XLXSBJDMX_TZQCPBJ", dCPBJ.ToString().Trim()); + double dTZJG = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_TZCPBJ"].ToString().Trim(), 0); + dCPBJ = XLBJDUtils.RoundSZ(dCPBJ * (1 + dTZJG / 100), CMISproConvert.StrToInt(sCPBJMRXSWS)); + + double dTZQBJJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) * dCPBJ, 2); + double dTZJE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_TZBJJE"].ToString().Trim(), 0); + double dBJJE = dTZQBJJE + dTZJE; + + double dLRE = 0; + if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1"))//表价价差率公式 + dLRE = dBJJE - NumberUtils.RoundX(dCPJJ * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2); + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) + dLRE = NumberUtils.RoundX(dCPJJ * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2) - dBJJE; + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) + dLRE = dBJJE - NumberUtils.RoundX(dCPJJ * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2); + //计算价差率 + double dtmpLRE = 0; + if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1"))//表价价差率公式 + dtmpLRE = dBJJE - dCPJJ * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) + dtmpLRE = dCPJJ * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) - dBJJE; + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) + dtmpLRE = dBJJE - dCPJJ * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + double dtmpCPJE = dCPJJ * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + + //表价价差率公式 + //表价金额 + double dCPJE = NumberUtils.RoundX(dCPJJ * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2); + double dLRL = 0.0; + if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1")) + { + if (dBJJE != 0) + dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dBJJE, 2); + } + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) + { + + if (dtmpCPJE != 0) + dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); + } + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("3")) + { + if (dBJJE != 0) + dLRL = NumberUtils.RoundX(dtmpCPJE * 100 / dBJJE, 2); + } + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) + { + + if (dtmpCPJE != 0) + dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); + } + + double dCLCBLRL = 0.0; + if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("1")) + { + double dCLCBLRE = dBJJE -dCLCB * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + if (dBJJE != 0) + dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); + } + else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("2")) + { + double dCLCBLRE = dBJJE - dBJDHQCLCB * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + if (dBJJE != 0) + dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); + } + else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("3")) + { + double dCLCBLRE = dBJJE - dBJDHQCLCB * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + if (dBJDHQCLCB * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) != 0) + dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / (dBJDHQCLCB * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0)), 2); + } + else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("4")) + { + double dCLCBLRE = dBJDHQCLCB * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + if (dBJJE != 0) + dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); + } + double dJGBBJLJJCL = 0.0; + if (bjflxx.XLXSBJFL_BJLJJCLLX.Trim().Equals("1")) + { + if (dCPJE != 0) + { + dJGBBJLJJCL = NumberUtils.RoundX((dCPJE - (CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) * dBJDHQCLCB)) / dCPJE * 100,2); + } + } + + double dCPBJXJ = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CPBJXJ"].ToString().Trim(), 0); + double XJBJCE = dCPBJXJ - dCPBJ; + e.ResultPairs.Add("XLXSBJDMX_BJXJKD", "0"); + e.ResultPairs.Add("XLXSBJDMX_BJXJJJ", "0"); + e.ResultPairs.Add("XJBJCE", XJBJCE.ToString()); + e.ResultPairs.Add("XLXSBJDMX_CPBJ", dCPBJ.ToString().Trim()); + e.ResultPairs.Add("XLXSBJDMX_BJLY ", "JGBBJ"); + e.ResultPairs.Add("XLXSBJDMX_BJTJCZ ", "TJYZJS"); + e.ResultPairs.Add("XLXSBJDMX_TZQBJJE", dTZQBJJE.ToString().Trim()); + e.ResultPairs.Add("XLXSBJDMX_BJJE", dBJJE.ToString().Trim()); + e.ResultPairs.Add("TZHDJ", (dBJSL == 0 ? 0 : dBJJE / dBJSL).ToString().Trim()); + e.ResultPairs.Add("XLXSBJDMX_JGBBJJCL", dLRL.ToString().Trim()); + e.ResultPairs.Add("XLXSBJDMX_JGBBJJCE", dLRE.ToString().Trim()); + e.ResultPairs.Add("XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString().Trim()); + e.ResultPairs.Add("XLXSBJDMX_JGBBJLJJCL", dJGBBJLJJCL.ToString().Trim()); + e.ResultPairs.Add("XLXSBJDMX_CLCBJCLSDBZ", "N"); + AddChangedField(dicChangedField, "XLXSBJDMX_CPBJ", dCPBJ.ToString().Trim()); + AddChangedField(dicChangedField, "XLXSBJDMX_TZQBJJE", dTZQBJJE.ToString().Trim()); + AddChangedField(dicChangedField, "XLXSBJDMX_BJJE", dBJJE.ToString().Trim()); + AddChangedField(dicChangedField, "TZHDJ", (dBJSL == 0 ? 0 : dBJJE / dBJSL).ToString().Trim()); + AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJJCL", dLRL.ToString().Trim()); + AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJJCE", dLRE.ToString().Trim()); + AddChangedField(dicChangedField, "XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString().Trim()); + AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJLJJCL", dJGBBJLJJCL.ToString().Trim()); + AddChangedField(dicChangedField, "XLXSBJDMX_CLCBJCLSDBZ", "N"); + AddChangedField(dicChangedField, "XLXSBJDMX_BJLY", "JGBBJ"); + AddChangedField(dicChangedField, "XLXSBJDMX_BJTJCZ", "TJYZJS"); + } + else//报价锁定=Y + { + e.ResultPairs.Add("XLXSBJDMX_TZQCPBJ", dCPBJ.ToString().Trim()); + AddChangedField(dicChangedField, "XLXSBJDMX_TZQCPBJ", dCPBJ.ToString().Trim()); + //报价锁定值 + double dCPBJ_SD = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_CPBJ"].ToString().Trim(), 0); + double dTZJG = dCPBJ == 0 ? 0 : (100 * (dCPBJ_SD - dCPBJ) / dCPBJ); + + double dTZQBJJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) * dCPBJ_SD, 2); + double dTZJE = CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_TZBJJE"].ToString().Trim(), 0); + double dBJJE = dTZQBJJE + dTZJE; + + double dLRE = 0; + if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1"))//表价价差率公式 + dLRE = dBJJE - NumberUtils.RoundX(dCPJJ * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2); + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) + dLRE = NumberUtils.RoundX(dCPJJ * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2) - dBJJE; + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) + dLRE = dBJJE - NumberUtils.RoundX(dCPJJ * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2); + + //计算价差率 + double dtmpLRE = 0; + if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1"))//表价价差率公式 + dtmpLRE = dBJJE - dCPJJ * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) + dtmpLRE = dCPJJ * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) - dBJJE; + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) + dtmpLRE = dBJJE - dCPJJ * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + double dtmpCPJE = dCPJJ * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + + //表价价差率公式 + //表价金额 + double dCPJE = NumberUtils.RoundX(dCPJJ * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2); + double dLRL = 0.0; + if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("1")) + { + if (dBJJE != 0) + dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dBJJE, 2); + } + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("2")) + { + + if (dtmpCPJE != 0) + dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); + } + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("3")) + { + if (dBJJE != 0) + dLRL = NumberUtils.RoundX(dtmpCPJE * 100 / dBJJE, 2); + } + else if (bjflxx.XLXSBJFL_BJJCLLX.Trim().Equals("4")) + { + + if (dtmpCPJE != 0) + dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); + } + + double dCLCBLRL = 0.0; + if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("1")) + { + double dCLCBLRE = dBJJE - dCLCB * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + if (dBJJE != 0) + dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); + } + else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("2")) + { + double dCLCBLRE = dBJJE - dBJDHQCLCB * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + if (dBJJE != 0) + dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); + } + else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("3")) + { + double dCLCBLRE = dBJJE - dBJDHQCLCB * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + if (dBJDHQCLCB * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) != 0) + dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / (dBJDHQCLCB * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0)), 2); + } + else if (bjflxx.XLXSBJFL_LJJCLLX.Trim().Equals("4")) + { + double dCLCBLRE = dBJDHQCLCB * CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0); + if (dBJJE != 0) + dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); + } + double dJGBBJLJJCL = 0.0; + if (bjflxx.XLXSBJFL_BJLJJCLLX.Trim().Equals("1")) + { + if (dCPJE != 0) + { + dJGBBJLJJCL = NumberUtils.RoundX((dCPJE - (CMISproConvert.StrToFloat(e.RowData["XLXSBJDMX_BJSL"].ToString().Trim(), 0) * dBJDHQCLCB)) / dCPJE * 100,2); + } + } + + dTZJG = NumberUtils.RoundX(dTZJG, 15); + e.ResultPairs.Add("XLXSBJDMX_TZCPBJ", dTZJG.ToString("F6").Trim()); + e.ResultPairs.Add("XLXSBJDMX_CPBJ", dCPBJ_SD.ToString().Trim()); + e.ResultPairs.Add("XLXSBJDMX_TZQBJJE", dTZQBJJE.ToString().Trim()); + e.ResultPairs.Add("XLXSBJDMX_BJJE", dBJJE.ToString().Trim()); + e.ResultPairs.Add("TZHDJ", (dBJSL == 0 ? 0 : dBJJE / dBJSL).ToString().Trim()); + e.ResultPairs.Add("XLXSBJDMX_JGBBJJCL", dLRL.ToString().Trim()); + e.ResultPairs.Add("XLXSBJDMX_JGBBJJCE", dLRE.ToString().Trim()); + e.ResultPairs.Add("XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString().Trim()); + e.ResultPairs.Add("XLXSBJDMX_JGBBJLJJCL", dJGBBJLJJCL.ToString().Trim()); + e.ResultPairs.Add("XLXSBJDMX_CLCBJCLSDBZ", "N"); + AddChangedField(dicChangedField, "XLXSBJDMX_TZCPBJ", dTZJG.ToString("F6").Trim()); + AddChangedField(dicChangedField, "XLXSBJDMX_CPBJ", dCPBJ_SD.ToString().Trim()); + AddChangedField(dicChangedField, "XLXSBJDMX_TZQBJJE", dTZQBJJE.ToString().Trim()); + AddChangedField(dicChangedField, "XLXSBJDMX_BJJE", dBJJE.ToString().Trim()); + AddChangedField(dicChangedField, "TZHDJ", (dBJSL == 0 ? 0 : dBJJE / dBJSL).ToString().Trim()); + AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJJCL", dLRL.ToString().Trim()); + AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJJCE", dLRE.ToString().Trim()); + AddChangedField(dicChangedField, "XLXSBJDMX_CLCBJCL", dCLCBLRL.ToString().Trim()); + AddChangedField(dicChangedField, "XLXSBJDMX_JGBBJLJJCL", dJGBBJLJJCL.ToString().Trim()); + AddChangedField(dicChangedField, "XLXSBJDMX_CLCBJCLSDBZ", "N"); + } + } + + + private void LoadUserandGroup() + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + StringBuilder sUsers = new StringBuilder(); + + try + { + TSQL sql = new TSQL(dberp); + + DataSet ds; + string sKHJSLY = ""; + XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860000); + if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_KHJSLY)) + sKHJSLY = pzxx.XLXSBJPZ_KHJSLY; + + if (sKHJSLY.Equals("")) + { + sql.Clear(); + sql.Add(" select distinct XLXSBJD_KH from XLXSBJD "); + sql.Add(" where XLXSBJD_WHRID='" + CurSession.UserId + "'"); + sql.Add(" order by XLXSBJD_KH"); + ds = dberp.OpenDataSet(sql); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + if (!ds.Tables[0].Rows[i]["XLXSBJD_KH"].ToString().Trim().Equals("")) + { + sUsers.Append(ds.Tables[0].Rows[i]["XLXSBJD_KH"].ToString().Trim() + "↑" + CMISproConvert.ConvertZJM(ds.Tables[0].Rows[i]["XLXSBJD_KH"].ToString().Trim()).ToUpper() + "$" + "$,"); + } + } + } + else if (sKHJSLY.Equals("KH") || sKHJSLY.Equals("KHXX")) + { + txtKH.AutoPostBack = true; + } + //其他情况使用代码助手加载 + } + catch + { + ShowMessage("打开数据集出错,请和系统管理员联系!"); + + return; + } + finally + { + hidKH.Text = sUsers.ToString().Trim(); + } + } + + private void LoadXMGroup() + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + StringBuilder sUsers = new StringBuilder(); + + try + { + TSQL sql = new TSQL(dberp); + + DataSet ds; + string sXMJSLY = ""; + XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860000); + if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_XMJSLY)) + sXMJSLY = pzxx.XLXSBJPZ_XMJSLY; + + //如果项目来源为空则需要动态检索框 + if (sXMJSLY.Equals("")) + { + sql.Clear(); + sql.Add(" select distinct XLXSBJD_KH,XLXSBJD_XMMC from XLXSBJD "); + sql.Add(" where XLXSBJD_WHRID='" + CurSession.UserId + "'"); + sql.Add(" order by XLXSBJD_KH,XLXSBJD_XMMC"); + ds = dberp.OpenDataSet(sql); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + sUsers.Append(ds.Tables[0].Rows[i]["XLXSBJD_XMMC"].ToString().Trim() + "↑" + CMISproConvert.ConvertZJM(ds.Tables[0].Rows[i]["XLXSBJD_XMMC"].ToString().Trim()).ToUpper() + "##" + ds.Tables[0].Rows[i]["XLXSBJD_KH"].ToString().Trim() + "$" + "$,"); + } + } + //其他情况使用代码助手加载 + } + catch + { + ShowMessage("打开数据集出错,请和系统管理员联系!"); + + return; + } + finally + { + hidXM.Text = sUsers.ToString().Trim(); + } + } + + private void LoadYZGroup() + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + StringBuilder sUsers = new StringBuilder(); + + try + { + TSQL sql = new TSQL(dberp); + + DataSet ds; + + sql.Add(" select distinct XLXSBJD_XMMC,XLXSBJD_XXDZ from XLXSBJD "); + sql.Add(" where XLXSBJD_WHRID='" + CurSession.UserId + "'"); + sql.Add(" order by XLXSBJD_XMMC,XLXSBJD_XXDZ"); + ds = dberp.OpenDataSet(sql); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + sUsers.Append(ds.Tables[0].Rows[i]["XLXSBJD_XXDZ"].ToString().Trim() + "↑" + CMISproConvert.ConvertZJM(ds.Tables[0].Rows[i]["XLXSBJD_XXDZ"].ToString().Trim()).ToUpper() + "##" + ds.Tables[0].Rows[i]["XLXSBJD_XMMC"].ToString().Trim() + "$" + "$,"); + } + + } + catch + { + ShowMessage("打开数据集出错,请和系统管理员联系!"); + + return; + } + finally + { + hidYZ.Text = sUsers.ToString().Trim(); + } + } + + + protected void btnRefreshDRBJDMX_Click(object sender, EventArgs e) + { + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); + string sHidJSLMList = XLBJDUtils.GetHidJSLMList(cbxBJFLID.SelectedValue.Trim(), IsXJY.Value.Equals("Y"), IsSJY.Value.Equals("Y"), IsHJY.Value.Equals("Y")); + //根据报价分类计算最低限价 + XLBJDUtils.UpdateZDXJGS(txtBJDID.Text.Trim(), cbxBJFLID.SelectedValue.Trim(), GetOption(100860000, "BJU002")); + XLBJDUtils.UpdateJSJGS(txtBJDID.Text.Trim(), cbxBJFLID.SelectedValue.Trim(), GetOption(100860000, "BJU002")); + + entity.BJDID = txtBJDID.Text.Trim(); + //分页模式下,传入页数和每页显示数,用于控制明细查询结果 + entity.XLXSBJDMX.curPageIndex = pgBar.CurrentPageIndex; + entity.XLXSBJDMX.curPageSize = pgBar.PageSize; + entity.XLXSBJDMX.sXSSXFilter = txtXSSXFilter.Value; + entity.XLXSBJDMX.sXLXHIDFilter = txtXLXHIDFilter.Value; + entity.XLXSBJDMX.sXLGGIDFilter = txtXLGGIDFilter.Value; + entity.XLXSBJDMX.sXLBZIDFilter = txtXLBZIDFilter.Value; + entity.XLXSBJDMX.sDYDJIDFilter = txtDYDJIDFilter.Value; + entity.XLXSBJDMX.sXLYSIDFilter = txtXLYSIDFilter.Value; + entity.XLXSBJDMX.sBJCPFilter = txtBJCPFilter.Value; + entity.XLXSBJDMX.sCPMLFilter = txtCPMLFilter.Value; + entity.XLXSBJDMX.sZHCPMLFilter = txtZHCPMLFilter.Value; + entity.XLXSBJDMX.sJGBBJFilter = txtJGBBJFilter.Value; + entity.XLXSBJDMX.sZDXJJCLFilter = txtZDXJJCLFilter.Value; + entity.XLXSBJDMX.sBZFilter = txtBZFilter.Value; + entity.XLXSBJDMX.sBZBJDIDFilter = PageParam.GetRTrimString("BZBJDID"); + entity.XLXSBJDMX.sCPCFXLBZ = PageParam.GetRTrimString("CPCFXLBZ"); + entity.XLXSBJDMX.BJDID = txtBJDID.Text.Trim(); + entity.XLXSBJDMX.sXSYZJEFilter = txtXSJEYZ.Text.Trim(); + entity.XLXSBJDMX.Query(); + grdXLBJDMX.DataSource = entity.XLXSBJDMX.Entites; + grdXLBJDMX.DataBind(); + grdXLBJDMX.SaveDataInfo.SaveDataFlag = DSaveDataFlag.sdNormal; + + if (grdXLBJDMX.RowCount <= 0) + { + btnBJLR.Enabled = false; + btnCLCB.Enabled = false; + } + else + { + btnBJLR.Enabled = true; + btnCLCB.Enabled = true; + } + + + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + + UpdateXLXSBJD(dberp, SQL, bjflxx, false); + + + if (!string.IsNullOrEmpty(txtBJDID.Text.Trim()) && CheckModule("100860008") && ControlState == TControlState.ctsBrowse) + { + LoadHJXX(txtBJDID.Text.Trim(), cbxBJFLID.SelectedValue.Trim(), sHidJSLMList); + + } + + XLBJDUtils.UpdateXLXSBJDJCXJ4(dberp, SQL, txtBJDID.Text.Trim()); + + MenuAreaUpdate(); + FormAreaUpdate(); + + } + + protected void btnCLCB_Click(object sender, EventArgs e) + { + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); + if (CheckCLCB()) + { + bool bEdit = (!_CurWorkFlow.ReadOnly) && (_CurWorkFlow.WFRights.HasRight(TWFRight.wfrCanEdit)) && entity.CanEdit(); + if (!XLBJDUtils.IsJGEJGB(cbxJGBID.SelectedValue.Trim())) + { + TPageParams pageParams = new TPageParams(); + pageParams.CallAction = TPageCallAction.pcaBrowse; + pageParams.UrlPath = "XLBJD_CLCBInfo.aspx"; + pageParams.AddString("BJDID", txtBJDID.Text.Trim()); + pageParams.AddString("BJRQ", datBJRQ.Text.Trim()); + pageParams.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); + pageParams.AddString("JGBID", cbxJGBID.SelectedValue.Trim()); + pageParams.AddString("JGBIDS", txtJGBIDS.Text.Trim()); + pageParams.AddString("HSBZ", chkJZBJHS.Checked ? "Y" : "N"); + pageParams.AddString("BJDHQLY", bjflxx.XLXSBJFL_BJDHQLY); + + pageParams.AddString("TBJCLID", bjflxx.XLXSBJFL_TBJCLID); + pageParams.AddString("LBJCLID", bjflxx.XLXSBJFL_LBJCLID); + pageParams.AddString("TJ", txtTJ.Value.ToString()); + pageParams.AddString("LJ", txtLJ.Value.ToString()); + + pageParams.AddString("JCLLX", bjflxx.XLXSBJFL_BJJCLLX); + pageParams.AddString("LJJCLLX", bjflxx.XLXSBJFL_LJJCLLX); + pageParams.AddString("BJLY", txtBJLY.Text.Trim()); + pageParams.AddString("JSBLFS", txtJSBLFS.Text.Trim()); + pageParams.AddString("CPBJMRXSWS", bjflxx.XLXSBJFL_CPBJMRXSWS); + pageParams.AddString("TZCLHQ", bjflxx.XLXSBJFL_TZCLHQ);//是否允许调整材料行情 + pageParams.AddString("CANEDIT", bEdit ? "Y" : "N");//报价单是否允许编辑 + pageParams.AddString("ZDXJJCLLX", bjflxx.XLXSBJFL_ZDXJJCLLX); + + pageParams.AddString("JYF", bjflxx.XLXSBJFL_JYF);//计运费 + pageParams.AddString("YSJDID", cbxYSJDID.SelectedValue.Trim());//运输节点 + pageParams.AddString("GYSID", cbxGYSID.SelectedValue.Trim());//运输单位 + pageParams.AddString("YFWLID", bjflxx.XLXSBJFL_YFWLID);//运费物料 + pageParams.AddString("BJHYF", bjflxx.XLXSBJFL_BJHYF);//报价含运费 + pageParams.AddString("JGBTJYS", txtJGBTJYS.Text.Trim()); + OpenModuleDialog(100860010, pageParams); + } + else//表价实时计算价格表 + { + DataSet dsJGBYZ = new DataSet(); + string sJGBTJYSS = ""; + XLBJDUtils.GetdsJGBYZ_JGE(cbxJGBID.SelectedValue.Trim(), ref dsJGBYZ); + sJGBTJYSS = XLBJDUtils.GetJGBTJYSSByBJFLID(cbxBJFLID.SelectedValue.Trim()); + if (dsJGBYZ.Tables[0].Rows.Count > 0 && sJGBTJYSS.Equals("1")) + { + TPageParams tpp = new TPageParams(); + tpp.CallAction = TPageCallAction.pcaBrowse; + tpp.UrlPath = "XLBJD_CLCBInfo.aspx"; + tpp.AddString("BJDID", txtBJDID.Text.Trim()); + tpp.AddString("BJRQ", datBJRQ.Text.Trim()); + tpp.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); + tpp.AddString("JGBID", cbxJGBID.SelectedValue.Trim()); + tpp.AddString("JGBIDS", txtJGBIDS.Text.Trim()); + tpp.AddString("HSBZ", chkJZBJHS.Checked ? "Y" : "N"); + tpp.AddString("BJDHQLY", bjflxx.XLXSBJFL_BJDHQLY); + + tpp.AddString("TBJCLID", bjflxx.XLXSBJFL_TBJCLID); + tpp.AddString("LBJCLID", bjflxx.XLXSBJFL_LBJCLID); + tpp.AddString("TJ", txtTJ.Value.ToString()); + tpp.AddString("LJ", txtLJ.Value.ToString()); + + tpp.AddString("JCLLX", bjflxx.XLXSBJFL_BJJCLLX); + tpp.AddString("LJJCLLX", bjflxx.XLXSBJFL_LJJCLLX); + tpp.AddString("BJLY", txtBJLY.Text.Trim()); + tpp.AddString("JSBLFS", txtJSBLFS.Text.Trim()); + tpp.AddString("CPBJMRXSWS", bjflxx.XLXSBJFL_CPBJMRXSWS); + tpp.AddString("TZCLHQ", bjflxx.XLXSBJFL_TZCLHQ);//是否允许调整材料行情 + tpp.AddString("CANEDIT", bEdit ? "Y" : "N");//报价单是否允许编辑 + tpp.AddString("ZDXJJCLLX", bjflxx.XLXSBJFL_ZDXJJCLLX); + + tpp.AddString("JYF", bjflxx.XLXSBJFL_JYF);//计运费 + tpp.AddString("YSJDID", cbxYSJDID.SelectedValue.Trim());//运输节点 + tpp.AddString("GYSID", cbxGYSID.SelectedValue.Trim());//运输单位 + tpp.AddString("YFWLID", bjflxx.XLXSBJFL_YFWLID);//运费物料 + tpp.AddString("BJHYF", bjflxx.XLXSBJFL_BJHYF);//报价含运费 + tpp.AddString("JGBTJYS", txtJGBTJYS.Text.Trim()); + if (bjflxx.XLXSBJFL_TZCLHQ.Equals("Y")) + OpenModuleDialog(100860010, tpp, btnRefreshCLHQTZ.ClientID); + else + OpenModuleDialog(100860010, tpp); + } + else + { + if (grdXLBJDMX.SelectedIndex < 0) + { + ShowMessage("请选择一报价产品!"); + return; + } + string sXLXHID = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XLXHID", grdXLBJDMX.SelectedIndex).Trim(); + string sXLGGID = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XLGGID", grdXLBJDMX.SelectedIndex).Trim(); + string sXLBZID = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XLBZID", grdXLBJDMX.SelectedIndex).Trim().Split('|')[0].Trim(); + string sDYDJID = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_DYDJID", grdXLBJDMX.SelectedIndex).Trim(); + string sXH = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XH", grdXLBJDMX.SelectedIndex).Trim(); + + TPageParams tpp = new TPageParams(); + if (XLBJDUtils.IsJGEJGB(cbxJGBID.SelectedValue.Trim())) + tpp.UrlPath = "XLBJD_JGECBZSList.aspx"; + else + tpp.UrlPath = "XLBJD_CBZSList.aspx"; + tpp.Title = "表价追溯"; + tpp.AddString("BJDID", txtBJDID.Text.Trim()); + tpp.AddString("XH", sXH); + tpp.AddString("BJRQ", datBJRQ.Text.Trim()); + tpp.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); + tpp.AddString("JGBID", cbxJGBID.SelectedValue.Trim()); + tpp.AddString("JGBIDS", txtJGBIDS.Text.Trim()); + tpp.AddString("HSBZ", chkJZBJHS.Checked ? "Y" : "N"); + tpp.AddString("XLXHID", sXLXHID); + tpp.AddString("XLGGID", sXLGGID); + tpp.AddString("XLBZID", sXLBZID); + tpp.AddString("DYDJID", sDYDJID); + tpp.AddString("BJDHQLY", bjflxx.XLXSBJFL_BJDHQLY); + + tpp.AddString("TBJCLID", bjflxx.XLXSBJFL_TBJCLID); + tpp.AddString("LBJCLID", bjflxx.XLXSBJFL_LBJCLID); + tpp.AddString("TJ", txtTJ.Value.ToString()); + tpp.AddString("LJ", txtLJ.Value.ToString()); + + tpp.AddString("JCLLX", bjflxx.XLXSBJFL_BJJCLLX); + tpp.AddString("LJJCLLX", bjflxx.XLXSBJFL_LJJCLLX); + tpp.AddString("BJLY", txtBJLY.Text.Trim()); + tpp.AddString("JSBLFS", txtJSBLFS.Text.Trim()); + tpp.AddString("CPBJMRXSWS", bjflxx.XLXSBJFL_CPBJMRXSWS); + tpp.AddString("TZCLHQ", bjflxx.XLXSBJFL_TZCLHQ);//是否允许调整材料行情 + tpp.AddString("CANEDIT", bEdit ? "Y" : "N");//报价单是否允许编辑 + tpp.AddString("ZDXJJCLLX", bjflxx.XLXSBJFL_ZDXJJCLLX); + + tpp.AddString("JYF", bjflxx.XLXSBJFL_JYF);//计运费 + tpp.AddString("YSJDID", cbxYSJDID.SelectedValue.Trim());//运输节点 + tpp.AddString("GYSID", cbxGYSID.SelectedValue.Trim());//运输单位 + tpp.AddString("YFWLID", bjflxx.XLXSBJFL_YFWLID);//运费物料 + tpp.AddString("BJHYF", bjflxx.XLXSBJFL_BJHYF);//报价含运费 + tpp.AddString("JGBTJYS", txtJGBTJYS.Text.Trim()); + if (bjflxx.XLXSBJFL_TZCLHQ.Equals("Y")) + OpenModuleDialog(100860044, tpp, btnRefreshCLHQTZ.ClientID); + else + OpenModuleDialog(100860044, tpp); + } + } + } + else + { + TPageParams pageParams = new TPageParams(); + pageParams.CallAction = TPageCallAction.pcaBrowse; + pageParams.UrlPath = "XLBJD_FBJXQList.aspx"; + pageParams.AddString("BJDID", txtBJDID.Text.Trim()); + pageParams.AddString("BJRQ", datBJRQ.Text.Trim()); + pageParams.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); + pageParams.AddString("JGBID", cbxJGBID.SelectedValue.Trim()); + pageParams.AddString("HSBZ", chkJZBJHS.Checked ? "Y" : "N"); + pageParams.AddString("BJDHQLY", bjflxx.XLXSBJFL_BJDHQLY); + pageParams.AddString("TBJCLID", bjflxx.XLXSBJFL_TBJCLID); + pageParams.AddString("LBJCLID", bjflxx.XLXSBJFL_LBJCLID); + pageParams.AddString("TJ", txtTJ.Value.ToString()); + pageParams.AddString("LJ", txtLJ.Value.ToString()); + OpenDialog(pageParams); + } + } + + protected void btnCLCB_DropDown(object sender, EventArgs e) + { + btnCLCB.Nodes.Clear(); + bool bEdit = (!_CurWorkFlow.ReadOnly) && (_CurWorkFlow.WFRights.HasRight(TWFRight.wfrCanEdit)) && entity.CanEdit(); + if (bEdit) + { + btnCLCB.Nodes.Add(new gtTreeNode("WGCPBJ", "外购产品")); + + btnCLCB.Nodes.Add(new gtTreeNode("WBJCPBJ", "导出无表价产品")); + + btnCLCB.Nodes.Add(new gtTreeNode("WLJCPBJ", "导出无料价产品")); + btnCLCB.Nodes.Add(new gtTreeNode("WLJCPBJ-DR", "导入", "WLJCPBJ")); + btnCLCB.Nodes.Add(new gtTreeNode("SCBJ", "删除表价")); + } + if (DSActiveModule.IsActiveModule(102585016)) //是否注册102585016|参考其他产品工艺加点调价 + btnCLCB.Nodes.Add(new gtTreeNode("GYJDCP", "工艺加点产品")); + MenuAreaUpdate(); + } + + //价格表行情料价调整 + protected void btnCLCB_MenuItemClick(object sender, string value) + { + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); + if (!(grdXLBJDMX.CheckBox && !String.IsNullOrEmpty(grdXLBJDMX.CheckedRows))) + { + txtPLSZAll.Value = "Y"; + } + else + txtPLSZAll.Value = "N"; + TPageParams pageParams = new TPageParams(); + + switch (value) + { + case "WGCPBJ": + HandleCLCBPageParams("Y"); + break; + case "WBJCPBJ": + HandleCLCBPageParams("N"); + break; + case "WLJCPBJ": + DCWLJCP(txtBJDID.Text.Trim()); + break; + case "WLJCPBJ-DR": + DRWLJCP(txtBJDID.Text.Trim(),cbxBJFLID.SelectedValue.Trim()); + break; + case "SCBJ": + string sBJDXHList = ""; + string[] sTempArr = grdXLBJDMX.CheckedRows.Split(new char[] { ',' }); + foreach (string sIndex in sTempArr) + { + int iRowIndex = CMISproConvert.StrToInt(sIndex.Trim()); + string sBJDXH = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XH", iRowIndex); + if (!sBJDXH.Equals("") && !sBJDXH.Equals("0")) + { + sBJDXHList += sBJDXH + ","; + } + } + sBJDXHList = sBJDXHList.TrimEnd(','); + + pageParams.UrlPath = "XLBJD_MX_YZInfo.aspx"; + pageParams.AddString("JGBBJBM", bjflxx.XLXSBJFL_JGBBJBM); + pageParams.AddString("txtBJSLCID", txtBJSL.ClientID); + pageParams.Title = "批量删除表价"; + pageParams.AddString("TZBZ", "SCBJ"); + pageParams.AddString("JGBBJXSWS", grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJ").NumberDecimalPlace.ToString()); + pageParams.AddString("TZJGBBJ", bjflxx.XLXSBJFL_TZJGBBJ); + pageParams.AddString("sBJDXHList", sBJDXHList); + pageParams.AddString("BJDID", txtBJDID.Text.Trim()); + pageParams.AddString("PLSZAll", txtPLSZAll.Value); + pageParams.AddString("txtPLSZAllCID", txtPLSZAll.ClientID); + pageParams.AddString("txtJGBBJTZCID", txtJGBBJTZ.ClientID); + pageParams.AddString("btnRefreshJGBBJSC", btnRefreshJGBBJSC.ClientID); + OpenDialog(pageParams); + break; + case "GYJDCP": + pageParams.UrlPath = "../Components/N_XLBJDTJ/GYCPJDList.aspx"; + pageParams.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); + pageParams.AddString("BJDID", txtBJDID.Text.Trim()); + pageParams.AddString("BJRQ", datBJRQ.Text); + pageParams.AddString("JGBID", cbxJGBID.SelectedValue.Trim()); + pageParams.AddString("JGBIDS", txtJGBIDS.Text.Trim()); + pageParams.AddString("JGBBJBM", bjflxx.XLXSBJFL_JGBBJBM); + pageParams.AddString("JCLLX", bjflxx.XLXSBJFL_BJJCLLX); + pageParams.AddString("LJJCLLX", bjflxx.XLXSBJFL_LJJCLLX); + pageParams.AddString("BJDHQLY", bjflxx.XLXSBJFL_BJDHQLY); + pageParams.AddString("ZDXJJCLLX", bjflxx.XLXSBJFL_ZDXJJCLLX); + pageParams.AddString("BJLY", txtBJLY.Text.Trim()); + pageParams.AddString("JSBLFS", txtJSBLFS.Text.Trim()); + pageParams.AddString("JGBTJYS", txtJGBTJYS.Text.Trim()); + pageParams.AddString("TBJCLID", bjflxx.XLXSBJFL_TBJCLID); + pageParams.AddString("LBJCLID", bjflxx.XLXSBJFL_LBJCLID); + pageParams.AddString("TJ", txtTJ.Value.ToString()); + pageParams.AddString("LJ", txtLJ.Value.ToString()); + pageParams.AddString("CPBJMRXSWS", bjflxx.XLXSBJFL_CPBJMRXSWS); + bool bEdit = (!_CurWorkFlow.ReadOnly) && (_CurWorkFlow.WFRights.HasRight(TWFRight.wfrCanEdit)) && entity.CanEdit(); + if (bEdit) + pageParams.AddString("CanEdit", "Y"); + else + pageParams.AddString("CanEdit", "N"); + OpenModuleDialog(102585016,pageParams, btnRefreshCLHQTZ.ClientID); + break; + } + } + + + private void DCWLJCP(string sBJDID) + { + string sFileName = sBJDID+"无料价产品报价.xls"; + string m_tmpFilePath = FileService.CombineTempPath(sFileName); + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add(" select XLXSBJDMX_XSSX,XLXSBJDMX_XH,XLXSBJDMX_XLXHID, XLXSBJDMX_XLGGID,XLXSBJDMX_XLBZID,XLXSBJDMX_DYDJID,XLXSBJDMX_XLYSID, "); + SQL.Add(" rtrim(XLXSBJDMX_XLBZID)||'|'||rtrim(XLBZ_XLBZLXMC) as XLBZID,"); + SQL.Add(" rtrim(XLXSBJDMX_XLYSID)||'|'||rtrim(XLYSB_XLYSMC) as XLYSID, "); + SQL.Add(" XLXSBJDMX_BJCP,"); + SQL.Add(" XLXSBJDMX_JLDW, XLXSBJDMX_BJSL , 0 as XLXSBJDMX_JGBBJ,"); + SQL.Add(" ' ' as XLXSBJDMX_BZ "); + SQL.Add(" from XLXSBJDMX "); + SQL.Add(" left join XLBZ on XLBZ_XLBZID = XLXSBJDMX_XLBZID "); + SQL.Add(" left join XLYSB on XLYSB_XLYSID = XLXSBJDMX_XLYSID "); + SQL.Add(" where 1=1 "); + SQL.Add(" and XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_JGBBJ=0 and XLXSBJDMX_CLCB=0 and XLXSBJDMX_BJDHQCLCB=0 "); + SQL.Add(" order by XLXSBJDMX_XSSX,XLXSBJDMX_XH "); + SQL.ParamByName("XLXSBJDMX_BJDID").Value = sBJDID; + DataSet ds = dberp.OpenDataSet(SQL); + DataSet dsQry = new DataSet(); + DataTable dt = new DataTable(); + dt.TableName = "无料价产品报价"; + dt.Columns.Add("显示顺序", typeof(double)); + dt.Columns.Add("序号", typeof(double)); + dt.Columns.Add("型号", typeof(string)); + dt.Columns.Add("规格", typeof(string)); + dt.Columns.Add("标准", typeof(string)); + dt.Columns.Add("电压等级", typeof(string)); + dt.Columns.Add("计量单位", typeof(string)); + dt.Columns.Add("颜色", typeof(string)); + dt.Columns.Add("报价产品", typeof(string)); + dt.Columns.Add("报价数量", typeof(double)); + dt.Columns.Add("料价", typeof(double)); + dt.Columns.Add("表价", typeof(double)); + dt.Columns.Add("备注", typeof(string)); + + dsQry.Tables.Add(dt); + if (ds.Tables[0].Rows.Count > 0) + { + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + DataRow dtrow = dt.NewRow(); + dtrow["显示顺序"] = ds.Tables[0].Rows[i]["XLXSBJDMX_XSSX"].ToString().Trim(); + dtrow["序号"] = ds.Tables[0].Rows[i]["XLXSBJDMX_XH"].ToString().Trim(); + dtrow["型号"] = ds.Tables[0].Rows[i]["XLXSBJDMX_XLXHID"].ToString().Trim(); + dtrow["规格"] = ds.Tables[0].Rows[i]["XLXSBJDMX_XLGGID"].ToString().Trim(); + dtrow["标准"] = ds.Tables[0].Rows[i]["XLBZID"].ToString().Trim(); + dtrow["电压等级"] = ds.Tables[0].Rows[i]["XLXSBJDMX_DYDJID"].ToString().Trim(); + dtrow["计量单位"] = ds.Tables[0].Rows[i]["XLXSBJDMX_JLDW"].ToString().Trim(); + dtrow["颜色"] = ds.Tables[0].Rows[i]["XLYSID"].ToString().Trim(); + dtrow["报价产品"] = ds.Tables[0].Rows[i]["XLXSBJDMX_BJCP"].ToString().Trim(); + dtrow["报价数量"] = CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSBJDMX_BJSL"].ToString().Trim()); + dtrow["料价"] = CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSBJDMX_JGBBJ"].ToString().Trim()); + dtrow["表价"] = CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSBJDMX_JGBBJ"].ToString().Trim()); + dtrow["备注"] = ds.Tables[0].Rows[i]["XLXSBJDMX_BZ"].ToString().Trim(); + dsQry.Tables[0].Rows.Add(dtrow); + } + string smessage = ""; + // + NpoiSheetData sd = new NpoiSheetData(); + sd.ColumnStyle = new System.Collections.Generic.Dictionary(); + NpoiColumnStyle ct = new NpoiColumnStyle(); + ct.DataFormat = "@"; + sd.ColumnStyle.Add("D", ct); + + sd.ColumnType = new System.Collections.Generic.Dictionary(); + sd.ColumnType.Add("J", NpoiColumnType.Double); + sd.ColumnType.Add("K", NpoiColumnType.Double); + sd.ColumnType.Add("L", NpoiColumnType.Double); + + TExcelData.CreateExcel_NPOI(m_tmpFilePath, dsQry, true, null, sd, ref smessage); + if (smessage.Equals("")) + { + System.IO.FileInfo file = new System.IO.FileInfo(m_tmpFilePath); + string URL = Page.ResolveClientUrl("~") + "/N_MODEL/Dialog/TempFileDownload.ashx?TempFileName=" + file.Name + "&FileName=无料价产品" + file.Extension; + string jsript = @"var JLDCDiv = document.createElement('div');JLDCDiv.style.width=0;JLDCDiv.style.height=0;JLDCDiv.id = 'DivifrDownLoad';" + + " var ele=document.documentElement||document.body;ele.appendChild(JLDCDiv);var iJLDCfrm = document.createElement('iframe');iJLDCfrm.id = 'iJLDCfrmDownLoad';iJLDCfrm.src = '" + URL + "';" + + "iJLDCfrm.style.width = 0;iJLDCfrm.style.height = 0; JLDCDiv.appendChild(iJLDCfrm);"; + AjaxRunScript("OPENJLDC", jsript); + } + else + { + ShowMessage(smessage); + } + } + else + { + ShowMessage("无记录可以导出!"); + } + } + + private void DRWLJCP(string sBJDID,string sBJFLID) + { + TPageParams pageParams = new TPageParams(); + pageParams.UrlPath = "DRWLJCP.aspx"; + pageParams.Title = "导入无料价产品"; + pageParams.AddString("BJDID", sBJDID); + pageParams.AddString("BJFLID", sBJFLID); + pageParams.AddString("YSJDID", cbxYSJDID.SelectedValue.Trim()); + pageParams.AddString("GYSID", cbxGYSID.SelectedValue.Trim()); + pageParams.AddString("btnRefreshCID", btnRefreshCLHQTZ.ClientID); + OpenDialog(pageParams); + } + + + + + + + protected void btnLJ_Click(object sender, EventArgs e) + { + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); + TPageParams pageParams = new TPageParams(); + pageParams.CallAction = TPageCallAction.pcaBrowse; + pageParams.UrlPath = "XLBJD_CLHQList.aspx"; + pageParams.AddString("JGBID", cbxJGBID.SelectedValue.Trim()); + pageParams.AddString("BJRQ", datBJRQ.Text.Trim()); + pageParams.AddString("BJDID", txtBJDID.Text.Trim()); + pageParams.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); + pageParams.AddString("BJDHQLY", bjflxx.XLXSBJFL_BJDHQLY); + pageParams.AddString("BJDRQHQJCLSX", GetOption(100860000, "BJU022")); + OpenModuleDialog(100860024, pageParams); + } + + + protected void btnLJ_DropDown(object sender, EventArgs e) + { + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); + + btnLJ.Nodes.Clear(); + bool bEdit = (!_CurWorkFlow.ReadOnly) && (_CurWorkFlow.WFRights.HasRight(TWFRight.wfrCanEdit)) && entity.CanEdit(); + //允许调整材料行情 + if (bjflxx.XLXSBJFL_TZCLHQ.Equals("Y") && bEdit) + { + btnLJ.Nodes.Add(new gtTreeNode("CLHQTZ", "调整材料行情")); + } + //显示报价单行情料价 + if (bjflxx.XSBJDHQLJ() && CheckModule("100860044")) + { + btnLJ.Nodes.Add(new gtTreeNode("BJDHQLJ", "报价单行情料价追溯")); + if (XLBJDUtils.IsJGEJGB(cbxJGBID.SelectedValue.Trim())) + btnLJ.Nodes.Add(new gtTreeNode("BJDHQLJDC", "报价单行情料价整单导出")); + btnLJ.Nodes.Add(new gtTreeNode("JGQSCL", "价格缺失材料")); + } + if (bjflxx.XLXSBJFL_TZYLBL.Equals("Y")) + btnLJ.Nodes.Add(new gtTreeNode("CLYLBL", "调整材料用量比例")); + MenuAreaUpdate(); + } + + //价格表行情料价调整 + protected void btnLJ_MenuItemClick(object sender, string value) + { + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); + switch (value) + { + + case "CLHQTZ": + TPageParams pageParams = new TPageParams(); + pageParams.UrlPath = "XLBJD_CLHQTZList.aspx"; + pageParams.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); + pageParams.AddString("JGBBJBM", bjflxx.XLXSBJFL_JGBBJBM); + pageParams.AddString("BJDHQLJBM", bjflxx.XLXSBJFL_BJDHQLJBM); + pageParams.AddString("BJBM", bjflxx.XLXSBJFL_BJBM); + pageParams.AddString("BJDID", txtBJDID.Text.Trim()); + pageParams.AddString("BJRQ", datBJRQ.Text); + pageParams.AddString("JGBID", cbxJGBID.SelectedValue.Trim()); + pageParams.AddString("JGBIDS", txtJGBIDS.Text.Trim()); + pageParams.AddString("JCLLX", bjflxx.XLXSBJFL_BJJCLLX); + pageParams.AddString("LJJCLLX", bjflxx.XLXSBJFL_LJJCLLX); + pageParams.AddString("BJLJJCLLX", bjflxx.XLXSBJFL_BJLJJCLLX); + pageParams.AddString("BJDHQLY", bjflxx.XLXSBJFL_BJDHQLY); + pageParams.AddString("ZDXJJCLLX", bjflxx.XLXSBJFL_ZDXJJCLLX); + pageParams.AddString("BJLY", txtBJLY.Text.Trim()); + pageParams.AddString("JSBLFS", txtJSBLFS.Text.Trim()); + pageParams.AddString("JGBTJYS", txtJGBTJYS.Text.Trim()); + pageParams.AddString("btnRefreshCID", btnRefreshCLHQTZ.ClientID); + pageParams.AddString("txtNEWBJDID", txtNEWBJDID.ClientID); + pageParams.AddString("HSBZ", chkJZBJHS.Checked ? "Y" : "N"); + pageParams.AddString("TBJCLID", bjflxx.XLXSBJFL_TBJCLID); + pageParams.AddString("LBJCLID", bjflxx.XLXSBJFL_LBJCLID); + pageParams.AddString("TJ", txtTJ.Value.ToString()); + pageParams.AddString("LJ", txtLJ.Value.ToString()); + pageParams.AddString("CPBJMRXSWS", bjflxx.XLXSBJFL_CPBJMRXSWS); + + pageParams.AddString("JYF", bjflxx.XLXSBJFL_JYF);//计运费 + pageParams.AddString("YSJDID", cbxYSJDID.SelectedValue.Trim());//运输节点 + pageParams.AddString("GYSID", cbxGYSID.SelectedValue.Trim());//运输单位 + pageParams.AddString("YFWLID", bjflxx.XLXSBJFL_YFWLID);//运费物料 + pageParams.AddString("BJHYF", bjflxx.XLXSBJFL_BJHYF);//报价含运费 + OpenDialog(pageParams); + break; + case "BJDHQLJ"://报价单行情料价追溯 + if (grdXLBJDMX.SelectedIndex < 0) + { + ShowMessage("请选择一条需要追溯的报价产品!"); + return; + } + string sXLXHID = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XLXHID", grdXLBJDMX.SelectedIndex).Trim(); + string sXLGGID = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XLGGID", grdXLBJDMX.SelectedIndex).Trim(); + string sXLBZID = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XLBZID", grdXLBJDMX.SelectedIndex).Trim().Split('|')[0].Trim(); + string sDYDJID = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_DYDJID", grdXLBJDMX.SelectedIndex).Trim(); + string sXH = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XH", grdXLBJDMX.SelectedIndex).Trim(); + bool bEdit = (!_CurWorkFlow.ReadOnly) && (_CurWorkFlow.WFRights.HasRight(TWFRight.wfrCanEdit)) && entity.CanEdit(); + + TPageParams tpp = new TPageParams(); + if (XLBJDUtils.IsJGEJGB(cbxJGBID.SelectedValue.Trim())) + tpp.UrlPath = "XLBJD_JGECBZSList.aspx"; + else + tpp.UrlPath = "XLBJD_CBZSList.aspx"; + tpp.Title = "报价单行情料价追溯"; + tpp.AddString("BJDID", txtBJDID.Text.Trim()); + tpp.AddString("XH", sXH); + tpp.AddString("BJRQ", datBJRQ.Text.Trim()); + tpp.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); + tpp.AddString("JGBID", cbxJGBID.SelectedValue.Trim()); + tpp.AddString("JGBIDS", txtJGBIDS.Text.Trim()); + tpp.AddString("HSBZ", chkJZBJHS.Checked ? "Y" : "N"); + tpp.AddString("XLXHID", sXLXHID); + tpp.AddString("XLGGID", sXLGGID); + tpp.AddString("XLBZID", sXLBZID); + tpp.AddString("DYDJID", sDYDJID); + tpp.AddString("BJDHQLY", bjflxx.XLXSBJFL_BJDHQLY); + + tpp.AddString("TBJCLID", bjflxx.XLXSBJFL_TBJCLID); + tpp.AddString("LBJCLID", bjflxx.XLXSBJFL_LBJCLID); + tpp.AddString("TJ", txtTJ.Value.ToString()); + tpp.AddString("LJ", txtLJ.Value.ToString()); + + tpp.AddString("JCLLX", bjflxx.XLXSBJFL_BJJCLLX); + tpp.AddString("LJJCLLX", bjflxx.XLXSBJFL_LJJCLLX); + tpp.AddString("BJLY", txtBJLY.Text.Trim()); + tpp.AddString("JSBLFS", txtJSBLFS.Text.Trim()); + tpp.AddString("CPBJMRXSWS", bjflxx.XLXSBJFL_CPBJMRXSWS); + tpp.AddString("TZCLHQ", bjflxx.XLXSBJFL_TZCLHQ);//是否允许调整材料行情 + tpp.AddString("CANEDIT", bEdit ? "Y" : "N");//报价单是否允许编辑 + tpp.AddString("ZDXJJCLLX", bjflxx.XLXSBJFL_ZDXJJCLLX); + + tpp.AddString("JYF", bjflxx.XLXSBJFL_JYF);//计运费 + tpp.AddString("YSJDID", cbxYSJDID.SelectedValue.Trim());//运输节点 + tpp.AddString("GYSID", cbxGYSID.SelectedValue.Trim());//运输单位 + tpp.AddString("YFWLID", bjflxx.XLXSBJFL_YFWLID);//运费物料 + tpp.AddString("BJHYF", bjflxx.XLXSBJFL_BJHYF);//报价含运费 + tpp.AddString("JGBTJYS", txtJGBTJYS.Text.Trim()); + if (bjflxx.XLXSBJFL_TZCLHQ.Equals("Y")) + OpenModuleDialog(100860044, tpp, btnRefreshCLHQTZ.ClientID); + else + OpenModuleDialog(100860044, tpp); + break; + case "BJDHQLJDC": + BJDHQLJDCJGE(); + break; + case "JGQSCL": + TPageParams tpp1 = new TPageParams(); + tpp1.UrlPath = "XLBJD_JGQSCLList.aspx"; + tpp1.Title = "价格缺失材料"; + tpp1.AddString("BJDID", txtBJDID.Text.Trim()); + OpenModuleDialog(100860044, tpp1); + break; + case "CLYLBL": + if (grdXLBJDMX.SelectedIndex < 0 && grdXLBJDMX.CheckedRows.Equals("")) + { + ShowMessage("请选择一条需要调整的报价产品!"); + return; + } + string sBJDXH = ""; + foreach (GridViewRow Row in grdXLBJDMX.NewRows) + { + if (grdXLBJDMX.RowIsChecked(Row)) + { + string sTmp = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XH", Row).Trim(); + sBJDXH += sTmp + ","; + } + } + sBJDXH = sBJDXH.TrimEnd(','); + if(sBJDXH.Equals("")) + sBJDXH = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XH", grdXLBJDMX.SelectedIndex).Trim(); + TPageParams pageParams1 = new TPageParams(); + pageParams1.UrlPath = "XLBJD_CLYLBLList.aspx"; + pageParams1.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); + pageParams1.AddString("BJDID", txtBJDID.Text.Trim()); + pageParams1.AddString("XH", sBJDXH); + pageParams1.AddString("btnRefreshCID", btnRefreshCLHQTZ.ClientID); + OpenDialog(pageParams1); + break; + } + } + + /// + /// 简单刷新界面,不做数据处理 + /// + /// + /// + protected void btnOnlyRefresh_Click(object sender, EventArgs e) + { + if (!string.IsNullOrEmpty(txtNEWBJDID.Value)) + { + txtBJDID.Text = txtNEWBJDID.Value; + txtNEWBJDID.Value = ""; + } + + LoadRecord(); + RefreshForm(); + SetControlState(); + SetComboxItems(); + MenuAreaUpdate(); + FormAreaUpdate(); + } + + + protected void btnBJ_Click(object sender, EventArgs e) + { + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); + if (!(grdXLBJDMX.CheckBox && !String.IsNullOrEmpty(grdXLBJDMX.CheckedRows))) + { + txtPLSZAll.Value = "Y"; + } + else + txtPLSZAll.Value = "N"; + txtBJSF.Value = ""; + txtBJXF.Value = ""; + txtPLSZYZList.Value = ""; + TPageParams pageParams = new TPageParams(); + pageParams.UrlPath = "XLBJD_MX_YZSInfo.aspx"; + //用于设置因子显示问题 + if (txtBJDYZ.Text.Trim().Equals("")) + { + Dictionary dicBJDYZ = XLBJDUtils.GetBJDYZ(cbxBJFLID.SelectedValue.Trim()); + txtBJDYZ.Text = dicBJDYZ["BJDYZ"]; + txtTJYSList.Text = dicBJDYZ["TJYSList"]; + txtYZWPIDList.Text = dicBJDYZ["YZWPIDList"]; + txtReadOnlyYZ.Text = dicBJDYZ["ReadOnlyYZ"]; + txtZDWPIDList.Text = dicBJDYZ["ZDWPIDList"]; + txtPFYZID.Text = dicBJDYZ["PFYZ"]; + txtBTYZ.Text = dicBJDYZ["BTYZ"]; + txtXSJEYZ.Text = dicBJDYZ["XSJEYZ"]; + } + pageParams.AddString("JGBBJBM", bjflxx.XLXSBJFL_JGBBJBM); + pageParams.AddString("YZWPIDList", txtYZWPIDList.Text.Trim()); + pageParams.AddString("ReadOnlyYZ", txtReadOnlyYZ.Text.Trim()); + pageParams.AddString("ZDWPIDList", txtZDWPIDList.Text.Trim()); + pageParams.AddString("WPID", txtWPID.Value.Trim()); + + + pageParams.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); + pageParams.AddString("PLSZAll", txtPLSZAll.Value); + //报价上浮使用的控件 + pageParams.AddString("txtBJSFCID", txtBJSF.ClientID); + //报价下浮使用的控件 + pageParams.AddString("txtBJXFCID", txtBJXF.ClientID); + //报价单因子使用控件,此处保存的是一个list,例如:BJ01|20|Y|BJ02|22|Y + pageParams.AddString("txtPLSZYZListCID", txtPLSZYZList.ClientID); + //是否整单调整 + pageParams.AddString("txtPLSZAllCID", txtPLSZAll.ClientID); + pageParams.AddString("btnRefreshBJPLTJ", btnRefreshBJPLTJ.ClientID); + OpenDialog(pageParams); + } + + //批量调价下拉加载 + protected void btnBJ_DropDown(object sender, EventArgs e) + { + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + DataSet ds = null; + + string sZDWPIDList = txtZDWPIDList.Text.Trim(); + string sWPID = txtWPID.Value.Trim(); + string[] sReadOnly = txtReadOnlyYZ.Text.Trim().Split(new Char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); + string[] sZDWPIDs = txtZDWPIDList.Text.Trim().Split(new Char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); + + + + + btnBJ.Nodes.Clear(); + SQL.Clear(); + //100892076为UFC_20191806_N_XLA|青岛长城电力JSERP-XL10线缆产品部件定制部,暂特殊处理。 + SQL.Add(" select AMID,AMNAME from ACTIVEMODULE "); + SQL.Add(" where (AMSTDMD=100860050 or AMID = 100892076) "); + SQL.Add(" order by AMID "); + ds = dberp.OpenDataSet(SQL); + if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) + { + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + if (CheckModule(ds.Tables[0].Rows[i][0].ToString().Trim())) + { + btnBJ.Nodes.Add(new gtTreeNode(ds.Tables[0].Rows[i][0].ToString().Trim(), ds.Tables[0].Rows[i][1].ToString().Trim())); + } + } + } + //固定节点==="报价四舍五入到2位小数"、"报价下浮%"、"报价上浮%" + string sPLTJKXX = XLBJDUtils.GetPLTJKXX(); + btnBJ.Nodes.Add(new gtTreeNode("BJPLTJ", "按型号电压筛选明细")); + if (grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJ").Visible && !grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJ").ReadOnly + && !bjflxx.XLXSBJFL_TZBJBJBB.Equals("Y")) + btnBJ.Nodes.Add(new gtTreeNode("JGBBJTZ", "表价调整")); + if (sPLTJKXX.Contains(",BJSSWR,")) + btnBJ.Nodes.Add(new gtTreeNode("0", "报价四舍五入")); + btnBJ.Nodes.Add(new gtTreeNode("BJSL", "报价数量")); + btnBJ.Nodes.Add(new gtTreeNode("BJSD", "报价锁定")); + btnBJ.Nodes.Add(new gtTreeNode("BJSD-SD", "锁定", "BJSD")); + btnBJ.Nodes.Add(new gtTreeNode("BJSD-JS", "解锁", "BJSD")); + string sBJFLID = cbxBJFLID.SelectedValue.Trim(); + SQL.Clear(); + SQL.Add("select XLXSBJFL_BJJCLLX,XLXSBJFL_XSTZCPBJ,XLXSBJFL_LJJCLLX,XLXSBJFL_XSYXJ from XLXSBJFL where XLXSBJFL_BJFLID = :pBJFLID and ISNULL(XLXSBJFL_TYBZ,'N') <>'Y' "); + SQL.ParamByName("pBJFLID").Value = sBJFLID; + ds = dberp.OpenDataSet(SQL); + //动态节点===意向价栏目显示增加按意向价报价 + if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) + { + if (ds.Tables[0].Rows[0]["XLXSBJFL_XSYXJ"].ToString().Trim().Equals("Y")) + { + btnBJ.Nodes.Add(new gtTreeNode("YXJBJ", "按意向价报价")); + } + } + if (sPLTJKXX.Contains(",BJXF,")) + btnBJ.Nodes.Add(new gtTreeNode("BJXF", "报价下浮%")); + if (sPLTJKXX.Contains(",BJSF,")) + btnBJ.Nodes.Add(new gtTreeNode("BJSF", "报价上浮%")); + + //动态节点===“料价价差率”---调价因素为控/不参与调价 + + if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) + { + if (!ds.Tables[0].Rows[0]["XLXSBJFL_BJJCLLX"].ToString().Trim().Equals("") + && ds.Tables[0].Rows[0]["XLXSBJFL_XSTZCPBJ"].ToString().Trim().Equals("Y")) + { + btnBJ.Nodes.Add(new gtTreeNode("BJJCLLX", "表价价差率%")); + } + if (!ds.Tables[0].Rows[0]["XLXSBJFL_LJJCLLX"].ToString().Trim().Equals("")) + { + btnBJ.Nodes.Add(new gtTreeNode("LJJCLLX", "料价价差率%")); + } + } + + if (XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()).XSCPBJXJChecked()) + btnBJ.Nodes.Add(new gtTreeNode("BJXJ", "产品报价限价")); + + if (XLBJDUtils.GetXLXSBJPZXX(100860000).XLXSBJPZ_PFBJRBJ == "Y") + { + btnBJ.Nodes.Add(new gtTreeNode("PFJE", "盘具金额")); + } + if (!XLBJDUtils.GetBJFLSYBZPFYZID(sBJFLID).Equals("")) + { + btnBJ.Nodes.Add(new gtTreeNode("BJBZPFYZID", XLBJDUtils.GetBJFLSYBZPFYZID(sBJFLID).Split('|')[1])); + btnBJ.Nodes.Add(new gtTreeNode("BJBZPFYZIDCK", "查看", "BJBZPFYZID")); + } + if (!XLBJDUtils.GetBJFLSYCPWJPFYZID(sBJFLID).Equals("")) + { + btnBJ.Nodes.Add(new gtTreeNode("BJCPWJPFYZID", XLBJDUtils.GetBJFLSYCPWJPFYZID(sBJFLID).Split('|')[1])); + } + if (!XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()).XLXSBJFL_JMBGSYZID.Equals("")) + { + string sJMBGS = "截面比公式"; + if (!string.IsNullOrEmpty(bjflxx.XLXSBJFL_JMBGSBM.Trim())) + sJMBGS = bjflxx.XLXSBJFL_JMBGSBM.Trim(); + btnBJ.Nodes.Add(new gtTreeNode("JMBGS", sJMBGS)); + } + int iYZZCount = 0; + SQL.Clear(); + SQL.Add("select XLXSBJFLYZ_YZID,XLXSTZYZ_YZMC,XLXSTZYZ_JJFS,XLXSTZYZ_TJYS,XLXSTZYZ_TJMDID, "); + SQL.Add(" case when (XLXSTZYZ_TJYS=' ' or isnull(XLXSTZYZ_BCYTJ,'N') = 'Y' ) then 1 else 2 end as SY"); + SQL.Add(" from XLXSBJFLYZ"); + SQL.Add(" left join XLXSTZYZ on XLXSTZYZ_MXBH='BJD' and XLXSTZYZ_YZID=XLXSBJFLYZ_YZID"); + SQL.Add(" where XLXSBJFLYZ_BJFLID=:pBJFLID"); + //and (因子值只读='N' or (因子值只读='Y' and isnull(只读事务,' ')<>' ' and ','||rtrim(只读事务)||',' not like '%,0020,%')) + SQL.Add(" and (isnull(XLXSTZYZ_YZZZD, 'N')='N' or "); + SQL.Add(" ( isnull(XLXSTZYZ_YZZZD, 'N')='Y' and isnull(XLXSTZYZ_ZDWPIDLIST,' ')<>' ' and ','||rtrim(isnull(XLXSTZYZ_ZDWPIDLIST,' '))||',' not like :pCurWPID ) "); + SQL.Add(" ) "); + //去除包装方式包装长度调整盘费模块 + SQL.Add(" and XLXSTZYZ_TJMDID <> 100860124 and XLXSTZYZ_TJMDID <> 100860162 "); + //SQL.Add(" and ( XLXSTZYZ_TJYS <> ' ' or isnull(XLXSTZYZ_BCYTJ,'N') <> 'Y' ) "); + SQL.Add(" order by SY,XLXSTZYZ_XSXH,XLXSTZYZ_YZID"); + SQL.ParamByName("pBJFLID").Value = sBJFLID; + SQL.ParamByName("pCurWPID").Value = "%," + sWPID + ",%"; + 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(); + string sYZMC = ds.Tables[0].Rows[i]["XLXSTZYZ_YZMC"].ToString().Trim(); + string sJJFS = ds.Tables[0].Rows[i]["XLXSTZYZ_JJFS"].ToString().Trim(); + string sTJYS = ds.Tables[0].Rows[i]["XLXSTZYZ_TJYS"].ToString().Trim(); + string sYZIDChild = sYZID; + //只有调价因子列可见才允许批量调价 + if (grdXLBJDMX.FindColumnByFieldName("TZYZ_" + sYZID).Visible) + { + int iTJMDID = CMISproConvert.StrToInt(ds.Tables[0].Rows[i]["XLXSBJFLYZ_YZID"].ToString().Trim()); + if (iTJMDID != 100860071 && iTJMDID != 100860080) + iYZZCount++; + string sText = sYZMC; + + + if (sJJFS.Equals("JD") || sJJFS.Equals("KD") || sJJFS.Equals("DD") || sJJFS.Equals("MD")) + { + sText = sText + "(%)"; + } + else if (sJJFS.Equals("JJ")) + { + if (XLBJDUtils.GetYZXXByYZID(sYZID).XLXSTZYZ_TJLX == "1") + sText = sText + "(元)"; + } + + if (ds.Tables[0].Rows[i]["SY"].ToString().Trim().Equals("2") && !ds.Tables[0].Rows[i]["XLXSTZYZ_TJYS"].ToString().Trim().Equals("C")) + { + btnBJ.Nodes.Add(new gtTreeNode("Root|" + sYZID, sText)); + + if (!string.IsNullOrEmpty(sTJYS)) + btnBJ.Nodes.Add(new gtTreeNode("CZ|" + sYZID + "|" + sText + "|" + sTJYS, "重置", "Root|" + sYZID)); + + sYZIDChild = "CL" + sYZIDChild; + btnBJ.Nodes.Add(new gtTreeNode(sYZIDChild, "清空", "Root|" + sYZID)); + } + else if (ds.Tables[0].Rows[i]["XLXSTZYZ_TJYS"].ToString().Trim().Equals("C")) + { + if (CheckModule("100860072")) + { + sYZIDChild = "BJD_" + sYZIDChild; + btnBJ.Nodes.Add(new gtTreeNode(sYZIDChild, sText)); + } + else + { + if (ds.Tables[0].Rows[i]["SY"].ToString().Trim().Equals("2")) + { + btnBJ.Nodes.Add(new gtTreeNode("Root|" + sYZID, sText)); + + if (!string.IsNullOrEmpty(sTJYS)) + btnBJ.Nodes.Add(new gtTreeNode("CZ|" + sYZID + "|" + sText + "|" + sTJYS, "重置", "Root|" + sYZID)); + + sYZIDChild = "CL" + sYZIDChild; + btnBJ.Nodes.Add(new gtTreeNode(sYZIDChild, "清空", "Root|" + sYZID)); + } + } + } + else + { + btnBJ.Nodes.Add(new gtTreeNode(sYZID, sText)); + } + + + + } + } + if (iYZZCount > 0) + { + btnBJ.Nodes.Add(new gtTreeNode("BJDYZZ", "报价单因子值")); + btnBJ.Nodes.Add(new gtTreeNode("BJDYZZ-DC", "导出", "BJDYZZ")); + btnBJ.Nodes.Add(new gtTreeNode("BJDYZZ-DR", "导入", "BJDYZZ")); + } + + MenuAreaUpdate(); + } + + //批量调价下拉点击 + protected void btnBJ_MenuItemClick(object sender, string value) + { + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); + if (!value.Equals("BJXF") && !value.Equals("BJSF") + && !value.Equals("BJJCLLX") && !value.Equals("LJJCLLX") + && !value.Equals("BJPLTJ") && !value.Equals("PFJE") && !value.Equals("JMBGS") + && !value.Equals("BJSL") && !value.Equals("BJSD") + && value.IndexOf("BJ") == -1) + { + switch (value) + { + case "0": + Round_TZBJ(); + break; + default: + TZBJByModule(value); + break; + } + } + else if (value.Equals("BJBZPFYZIDCK")) + { + string sBJDXHList = ""; + if ((grdXLBJDMX.CheckBox && !String.IsNullOrEmpty(grdXLBJDMX.CheckedRows))) + { + string[] sTempArr = grdXLBJDMX.CheckedRows.Split(new char[] { ',' }); + + foreach (string sIndex in sTempArr) + { + int iRowIndex = CMISproConvert.StrToInt(sIndex.Trim()); + string sBJDXH = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XH", iRowIndex); + if (!sBJDXH.Equals("") && !sBJDXH.Equals("0")) + { + sBJDXHList += sBJDXH + ","; + } + } + sBJDXHList = sBJDXHList.TrimEnd(','); + } + TPageParams tpp = new TPageParams(); + tpp.UrlPath = "BJCPBZFSCDList.aspx"; + tpp.AddString("BJDID", txtBJDID.Text.Trim()); + tpp.AddString("BJDXHList", sBJDXHList); + OpenModuleDialog(100860124, tpp); + + } + else if (value.Equals("BJBZPFYZID")) + { + //更新提示 + Confirm.Register("IsQD", string.Format(string.Format("将更新{0},是否继续?",XLBJDUtils.GetBJFLSYBZPFYZID(cbxBJFLID.SelectedValue.Trim()).Split('|')[1].Trim()))); + Confirm.ShowBtnText = TConfirm.cBtnText.Yes_No; + if (Confirm.GetValue("IsQD").Trim().Equals("")) + { + Confirm.Ask("IsQD"); + return; + } + else if (Confirm.GetValue("IsQD").Trim().Equals("N")) + { + //表示进行了提示并选择了取消,直接返回或其他处理 + Confirm.Clear(); + return; + } + else if (Confirm.GetValue("IsQD").Trim().Equals("Y")) + { + //表示进行了提示并选择了确认 + Confirm.Clear(); + } + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + Dictionary dicTJYZList = new Dictionary(); + dicTJYZList.Add("sTJYSListPFBZ", XLBJDUtils.GetBJFLSYBZPFYZID(cbxBJFLID.SelectedValue.Trim()).Split('|')[0].Trim()); + string sErrorMsg = ""; + XLBJDUtils.AddXLXSBJDYZZ0(dberp, txtBJDID.Text.Trim(), cbxBJFLID.SelectedValue.Trim(), "M", dicTJYZList, false, "", 0, false, false, false, ref sErrorMsg); + if (!sErrorMsg.Equals("")) + { + ShowMessage(sErrorMsg); + return; + } + XLBJDCalcUtils.CalcAfterBJDYZZChange(dberp, SQL, txtBJDID.Text.Trim(), 1, "", false, false, false, "", DateTime.MinValue, GetOption(100860000, "BJU002"), GetOption(100860000, "BJU003"), CurSession.UserId, CurSession.UserName, ref sErrorMsg); + if (!sErrorMsg.Equals("")) + { + ShowMessage(sErrorMsg); + return; + } + ShowMessage("更新完成!"); + btnOnlyRefresh_Click(null, null); + } + else if (value.Equals("BJCPWJPFYZID")) + { + //更新提示 + Confirm.Register("IsQD", string.Format(string.Format("将更新{0},是否继续?", XLBJDUtils.GetBJFLSYCPWJPFYZID(cbxBJFLID.SelectedValue.Trim()).Split('|')[1].Trim()))); + Confirm.ShowBtnText = TConfirm.cBtnText.Yes_No; + if (Confirm.GetValue("IsQD").Trim().Equals("")) + { + Confirm.Ask("IsQD"); + return; + } + else if (Confirm.GetValue("IsQD").Trim().Equals("N")) + { + //表示进行了提示并选择了取消,直接返回或其他处理 + Confirm.Clear(); + return; + } + else if (Confirm.GetValue("IsQD").Trim().Equals("Y")) + { + //表示进行了提示并选择了确认 + Confirm.Clear(); + } + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + Dictionary dicTJYZList = new Dictionary(); + dicTJYZList.Add("sTJYSListPFCPWJ", XLBJDUtils.GetBJFLSYCPWJPFYZID(cbxBJFLID.SelectedValue.Trim()).Split('|')[0].Trim()); + string sErrorMsg = ""; + XLBJDUtils.AddXLXSBJDYZZ0(dberp, txtBJDID.Text.Trim(), cbxBJFLID.SelectedValue.Trim(), "M", dicTJYZList, false, "", 0, false, false, false, ref sErrorMsg); + if (!sErrorMsg.Equals("")) + { + ShowMessage(sErrorMsg); + return; + } + XLBJDCalcUtils.CalcAfterBJDYZZChange(dberp, SQL, txtBJDID.Text.Trim(), 1, "", false, false, false, "", DateTime.MinValue, GetOption(100860000, "BJU002"), GetOption(100860000, "BJU003"), CurSession.UserId, CurSession.UserName, ref sErrorMsg); + if (!sErrorMsg.Equals("")) + { + ShowMessage(sErrorMsg); + return; + } + ShowMessage("更新完成!"); + btnOnlyRefresh_Click(null, null); + } + else if (value.Equals("YXJBJ")) + { + //更新提示 + Confirm.Register("IsQD", string.Format("将按意向价更新{0},是否继续?", bjflxx.XLXSBJFL_BJBM.Equals("") ? "报价" : bjflxx.XLXSBJFL_BJBM)); + Confirm.ShowBtnText = TConfirm.cBtnText.Yes_No; + if (Confirm.GetValue("IsQD").Trim().Equals("")) + { + Confirm.Ask("IsQD"); + return; + } + else if (Confirm.GetValue("IsQD").Trim().Equals("N")) + { + //表示进行了提示并选择了取消,直接返回或其他处理 + Confirm.Clear(); + return; + } + else if (Confirm.GetValue("IsQD").Trim().Equals("Y")) + { + //表示进行了提示并选择了确认 + Confirm.Clear(); + } + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + string sBJDID = txtBJDID.Text.Trim(); + string sJCLLX = bjflxx.XLXSBJFL_BJJCLLX; + string sLJJCLLX = bjflxx.XLXSBJFL_LJJCLLX; + string sCPBJMRXSWS = bjflxx.XLXSBJFL_CPBJMRXSWS; + string sCPBJBLXSWS = Math.Pow(10, -1 * CMISproConvert.StrToFloat(sCPBJMRXSWS)).ToString("F9"); + try + { + dberp.BeginTrans(); + //更新非报价锁定记录 + //string sqlCPBJ = "XLXSBJDMX_YXJG"; + string sqlBJJE = "RoundFix(XLXSBJDMX_BJSL*XLXSBJDMX_YXJG+XLXSBJDMX_TZBJJE,2)"; + SQL.Clear(); + SQL.Add("update XLXSBJDMX set "); + SQL.Add("XLXSBJDMX_CPBJ=XLXSBJDMX_YXJG,");//这里应不需要按CMISproConvert.StrToInt(sCPBJMRXSWS)保留小数位数 + SQL.Add("XLXSBJDMX_TZCPBJ=RoundFix(case when XLXSBJDMX_TZQCPBJ=0 then 0 else 100*(XLXSBJDMX_YXJG-XLXSBJDMX_TZQCPBJ)/XLXSBJDMX_TZQCPBJ end,15),"); + SQL.Add("XLXSBJDMX_TZQBJJE=RoundFix(XLXSBJDMX_BJSL*XLXSBJDMX_YXJG,2),"); + SQL.Add("XLXSBJDMX_BJJE=" + sqlBJJE + ","); + if (sJCLLX.Equals("1"))//表价价差率公式 + { + SQL.Add("XLXSBJDMX_JGBBJJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + "-XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); + SQL.Add(string.Format("XLXSBJDMX_JGBBJJCE =RoundFix((" + sqlBJJE + "-RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2))/{0},0)*{0}, ", sCPBJBLXSWS)); + } + else if (sJCLLX.Equals("2")) + { + SQL.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,"); + SQL.Add(string.Format("XLXSBJDMX_JGBBJJCE =RoundFix((RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)-" + sqlBJJE + ")/{0},0)*{0}, ", sCPBJBLXSWS)); + } + else if (sJCLLX.Equals("3")) + { + SQL.Add("XLXSBJDMX_JGBBJJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); + SQL.Add("XLXSBJDMX_JGBBJJCE =0, "); + } + else if (sJCLLX.Equals("4")) + { + SQL.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,"); + SQL.Add(string.Format("XLXSBJDMX_JGBBJJCE =RoundFix((" + sqlBJJE + " - RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2))/{0},0)*{0}, ", sCPBJBLXSWS)); + } + else + { + SQL.Add("XLXSBJDMX_JGBBJJCL=0,"); + SQL.Add("XLXSBJDMX_JGBBJJCE=0,"); + } + if (sLJJCLLX.Equals("1"))//料价价差率公式 + { + SQL.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")) + { + SQL.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")) + { + SQL.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")) + { + SQL.Add("XLXSBJDMX_CLCBJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); + } + else + { + SQL.Add("XLXSBJDMX_CLCBJCL=0,"); + } + SQL.Add("XLXSBJDMX_BJTJCZ = 'YXJGBJ',"); + SQL.Add("XLXSBJDMX_CLCBJCLSDBZ='N'"); + SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID "); + SQL.Add(" and XLXSBJDMX_BJSDBZ<>'Y'");//跳过报价锁定为Y的明细数据 + SQL.Add(" and XLXSBJDMX_YXJG<>0.0");//跳过意向价为0的明细数据 + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + dberp.CommitTrans(); + } + catch (Exception ex) + { + ShowMessage("批量调价-按意向价报价出现错误,请联系系统管理员!" + ex.Message); + dberp.RollbackTrans(); + } + btnRefreshDRBJDMX_Click(null, null); + + } + else if (value.StartsWith("CLBJ")) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + string sYZID = value.Replace("CL", ""); + TZYZXX yzxx = XLBJDUtils.GetYZXXByYZID(sYZID); + if (!string.IsNullOrEmpty(yzxx.XLXSTZYZ_YZID)) + { + string sYZMC = yzxx.XLXSTZYZ_YZMC.Trim(); + string sJJFS = yzxx.XLXSTZYZ_JJFS.Trim(); + if (sJJFS.Equals("JD") || sJJFS.Equals("KD") || sJJFS.Equals("DD") || sJJFS.Equals("MD")) + sYZMC = sYZMC + "(%)"; + else if (sJJFS.Equals("JJ")) + sYZMC = sYZMC + "(元)"; + + //更新提示 + Confirm.Register("IsQD", "即将清空当前记录所有明细的【" + sYZMC + "】是否继续?"); + Confirm.ShowBtnText = TConfirm.cBtnText.Yes_No; + if (Confirm.GetValue("IsQD").Trim().Equals("")) + { + Confirm.Ask("IsQD"); + return; + } + else if (Confirm.GetValue("IsQD").Trim().Equals("N")) + { + //表示进行了提示并选择了取消,直接返回或其他处理 + Confirm.Clear(); + return; + } + else if (Confirm.GetValue("IsQD").Trim().Equals("Y")) + { + //表示进行了提示并选择了确认 + Confirm.Clear(); + } + + SQL.Clear(); + SQL.Add("update XLXSBJDYZZ0 set XLXSBJDYZZ0_YZZ" + sYZID.Replace("BJ", "") + " = 0 where XLXSBJDYZZ0_BJDID =:pBJDID "); + SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); + dberp.ExecSQL(SQL); + + string sErrMsg = ""; + XLBJDCalcUtils.CalcAfterBJDYZZChange(dberp, SQL, txtBJDID.Text.Trim(), 1, "", false, false, false, "", DateTime.MinValue, GetOption(100860000, "BJU002"), GetOption(100860000, "BJU003"), CurSession.UserId, CurSession.UserName, ref sErrMsg); + + if (sErrMsg.Equals("")) + { + ShowMessage("更新完成!"); + } + else + ShowMessage("更新失败!" + sErrMsg); + + btnOnlyRefresh_Click(null, null); + } + else + { + ShowMessage("所选调价因子记录已不存在,请关闭页面后重试!"); + return; + } + } + else if (value.StartsWith("BJD_")) + { + if (!(grdXLBJDMX.CheckBox && !String.IsNullOrEmpty(grdXLBJDMX.CheckedRows))) + txtPLSZAll.Value = "Y"; + else + txtPLSZAll.Value = "N"; + + string sYZID = value.Replace("BJD_", ""); + string sJGBID = ""; + + TZYZXX yzxx = XLBJDUtils.GetYZXXByYZID(sYZID); + if (!string.IsNullOrEmpty(yzxx.XLXSTZYZ_JGBID)) + sJGBID = yzxx.XLXSTZYZ_JGBID; + + TBBJDYZZ_C(txtBJDID.Text.Trim(), sJGBID); + TPageParams tpp = new TPageParams(); + tpp.UrlPath = "TZYZBJCList.aspx"; + tpp.AddString("JGBID", sJGBID); + tpp.AddString("BJDID", txtBJDID.Text.Trim()); + tpp.AddString("sBJU003", GetOption(100860000, "BJU003")); + tpp.AddString("sBJFLID", cbxBJFLID.SelectedValue.Trim()); + tpp.AddString("sBJU002", GetOption(100860000, "BJU002")); + tpp.AddString("PLSZAll", txtPLSZAll.Value); + tpp.AddString("txtTZZCID", txtTZZ.ClientID); + tpp.AddString("btnRefreshLJJCL", btnRefreshLJJCL.ClientID); + tpp.AddString("txtPLSZAllCID", txtPLSZAll.ClientID); + + OpenFuncModuleDialog(100860072, tpp, btnRefreshCLHQTZ.ClientID); + } + else if (value.Equals("PFJE") || value.Equals("JGBBJTZ") || value.Equals("JMBGS") || value.Equals("BJXJ") || value.Equals("BJXF") || value.Equals("BJSF") || value.Equals("BJJCLLX") || value.Equals("LJJCLLX") || value.IndexOf("BJ") >= 0) + { + bool bYFYZ = false;//是否运费因子,“100860071|线缆销售报价单运费”模块适用因子 + if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSTZYZ where XLXSTZYZ_TJMDID = 100860071 and XLXSTZYZ_YZID = '{0}' and XLXSTZYZ_MXBH='BJD'", value))) + { + bYFYZ = true; + } + + bool bPFYZ = false;//是否盘费因子,“100860080|线缆销售报价单盘费”模块适用因子 + if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSTZYZ where XLXSTZYZ_TJMDID = 100860080 and XLXSTZYZ_YZID = '{0}' and XLXSTZYZ_MXBH='BJD'", value))) + { + bPFYZ = true; + } + + + bool bKJFYZ = false;//是否开机费因子,“102585000|开机费”模块适用因子 + if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSTZYZ where XLXSTZYZ_TJMDID = 102585000 and XLXSTZYZ_YZID = '{0}' and XLXSTZYZ_MXBH='BJD'", value))) + { + bKJFYZ = true; + } + + string sYZID = value; + + + string sBJFLID = cbxBJFLID.SelectedValue.Trim(); + + if (!(grdXLBJDMX.CheckBox && !String.IsNullOrEmpty(grdXLBJDMX.CheckedRows))) + txtPLSZAll.Value = "Y"; + else + txtPLSZAll.Value = "N"; + + txtPLSZYZList.Value = ""; + txtBJSF.Value = ""; + txtBJXF.Value = ""; + + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + if (value.Equals("BJSD")) + { + return; + } + if (value.Equals("BJSD-SD") || value.Equals("BJSD-JS")) + { + string sSDBZ = ""; + if (value.Equals("BJSD-SD")) + sSDBZ = "Y"; + else + sSDBZ = "N"; + + if (txtPLSZAll.Value.Trim().Equals("N"))//调价范围:N|勾选记录 + { + string sBJDXH = ""; + foreach (GridViewRow Row in grdXLBJDMX.NewRows) + { + if (grdXLBJDMX.RowIsChecked(Row)) + { + string sTmp = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XH", Row).Trim(); + sBJDXH += sTmp + ","; + } + } + sBJDXH = sBJDXH.TrimEnd(','); + + //更新锁定标志 + SQL.Clear(); + SQL.Add("update XLXSBJDMX set XLXSBJDMX_BJSDBZ = :pSDBZ where XLXSBJDMX_BJDID =:pBJDID "); + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXH)); + SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); + SQL.ParamByName("pSDBZ").Value = sSDBZ; + dberp.ExecSQL(SQL); + + if (sSDBZ.Equals("Y")) + ShowMessage("已将勾选明细报价锁定标记更新为锁定!"); + else + ShowMessage("已将勾选明细报价锁定标记更新为未锁定!"); + } + else + { + //更新锁定标志 + SQL.Clear(); + SQL.Add("update XLXSBJDMX set XLXSBJDMX_BJSDBZ = :pSDBZ where XLXSBJDMX_BJDID =:pBJDID "); + SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); + SQL.ParamByName("pSDBZ").Value = sSDBZ; + dberp.ExecSQL(SQL); + + if (sSDBZ.Equals("Y")) + ShowMessage("已将整单明细报价锁定标记更新为锁定!"); + else + ShowMessage("已将整单明细报价锁定标记更新为未锁定!"); + } + + btnOnlyRefresh_Click(null, null); + } + else if (sYZID.Equals("BJPLTJ")) + { + TPageParams pageParams = new TPageParams(); + pageParams.UrlPath = "XLBJD_PLTJList.aspx"; + pageParams.Title = "批量调价"; + pageParams.AddString("BJRQ", datBJRQ.Text); + pageParams.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); + pageParams.AddString("BJDID", txtBJDID.Text.Trim()); + pageParams.AddString("XMMC", txtXM.Text.Trim()); + pageParams.AddString("BJDJE", txtZJE.Value.ToString()); + pageParams.AddString("JGBBJBM", bjflxx.XLXSBJFL_JGBBJBM); + pageParams.AddString("BJDHQLJBM", bjflxx.XLXSBJFL_BJDHQLJBM); + pageParams.AddString("JGBID", cbxJGBID.SelectedValue.Trim()); + pageParams.AddString("JGCIDS", txtJGCIDS.Text.Trim()); + pageParams.AddString("BJLY", txtBJLY.Text.Trim()); + pageParams.AddString("JSBLFS", txtJSBLFS.Text.Trim()); + pageParams.AddString("XSQYID", cbxXSQYID.SelectedValue.Trim()); + if (txtBJDYZ.Text.Trim().Equals("")) + { + Dictionary dicBJDYZ = XLBJDUtils.GetBJDYZ(cbxBJFLID.SelectedValue.Trim()); + txtBJDYZ.Text = dicBJDYZ["BJDYZ"]; + txtTJYSList.Text = dicBJDYZ["TJYSList"]; + txtYZWPIDList.Text = dicBJDYZ["YZWPIDList"]; + txtReadOnlyYZ.Text = dicBJDYZ["ReadOnlyYZ"]; + txtZDWPIDList.Text = dicBJDYZ["ZDWPIDList"]; + txtPFYZID.Text = dicBJDYZ["PFYZ"]; + txtBTYZ.Text = dicBJDYZ["BTYZ"]; + txtXSJEYZ.Text = dicBJDYZ["XSJEYZ"]; + } + pageParams.AddString("XSBJDHQLJ", bjflxx.XSBJDHQLJ() ? "Y" : "N"); + pageParams.AddString("XSLJ", bjflxx.XSLJ() ? "Y" : "N"); + pageParams.AddString("XSJJ", bjflxx.XSJGBJJChecked() ? "Y" : "N"); + pageParams.AddString("XSJCL", bjflxx.XSJCL() ? "Y" : "N"); + pageParams.AddString("XSLJJCL", bjflxx.XSLJJCL() ? "Y" : "N"); + pageParams.AddString("XSJSJ", bjflxx.XSJSJ() ? "Y" : "N"); + pageParams.AddString("JCLLX", bjflxx.XLXSBJFL_BJJCLLX); + pageParams.AddString("LJJCLLX", bjflxx.XLXSBJFL_LJJCLLX); + pageParams.AddString("XSTZJG", bjflxx.XLXSBJFL_XSTZCPBJ); + pageParams.AddString("XSTZZDXJ", bjflxx.XLXSBJFL_XSTZZDXJ); + pageParams.AddString("XSTZJE", bjflxx.XLXSBJFL_XSTZBJJE); + pageParams.AddString("YZWPIDList", txtYZWPIDList.Text.Trim()); + pageParams.AddString("ReadOnlyYZ", txtReadOnlyYZ.Text.Trim()); + pageParams.AddString("ZDWPIDList", txtZDWPIDList.Text.Trim()); + pageParams.AddString("WPID", txtWPID.Value.Trim()); + + pageParams.AddString("JYF", bjflxx.XLXSBJFL_JYF);//计运费 + pageParams.AddString("YSJDID", cbxYSJDID.SelectedValue.Trim());//运输节点 + pageParams.AddString("GYSID", cbxGYSID.SelectedValue.Trim());//运输单位 + pageParams.AddString("YFWLID", bjflxx.XLXSBJFL_YFWLID);//运费物料 + pageParams.AddString("BJHYF", bjflxx.XLXSBJFL_BJHYF);//报价含运费 + pageParams.AddString("ZDXJJCLLX", bjflxx.XLXSBJFL_ZDXJJCLLX); + pageParams.AddString("XSZDXJ", bjflxx.XLXSBJFL_XSZDXJ); + pageParams.AddString("JMBGSYZID", bjflxx.XLXSBJFL_JMBGSYZID); + + if (bjflxx.XLXSBJFL_TZCLHQ.Equals("Y"))//是否允许调整材料行情 + { + if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select top 1 XLXSBJDCLHQ_BJCLID from XLXSBJDCLHQ where XLXSBJDCLHQ_BJDID='{0}'", txtBJDID.Text.Trim()))) + pageParams.AddString("NeedUpdBJDHQCLCB", "Y"); + } + pageParams.AddString("BJDYZ", txtBJDYZ.Text); + pageParams.AddString("TJYSList", txtTJYSList.Text); + if (cbxPJLX.Style["display"] == "none") + pageParams.AddString("HiddenPJLX", "Y"); + pageParams.AddString("CPBJMRXSWS", bjflxx.XLXSBJFL_CPBJMRXSWS); + OpenDialogClickBtn(pageParams, btnRefresh1.ClientID); + } + else if (sYZID.Equals("JGBBJTZ") || sYZID.Equals("BJXJ") || sYZID.Equals("BJSL") || sYZID.Equals("BJXF") || sYZID.Equals("BJSF") || sYZID.Equals("BJJCLLX") || sYZID.Equals("LJJCLLX")) + { + if (sYZID.Equals("BJXF") || sYZID.Equals("BJSF")) + { + if (txtPLSZAll.Value == "Y") + { + if (grdXLBJDMX.SelectedIndex >= 0) + txtPLSZAll.Value = "D"; + } + } + + + TPageParams pageParams = new TPageParams(); + pageParams.UrlPath = "XLBJD_MX_YZInfo.aspx"; + pageParams.AddString("JGBBJBM", bjflxx.XLXSBJFL_JGBBJBM); + pageParams.AddString("txtBJSLCID", txtBJSL.ClientID); + if (sYZID.Equals("BJSL")) + { + pageParams.Title = "批量调整报价数量"; + pageParams.AddString("TZBZ", "BJSL"); + pageParams.AddString("PLSZAll", txtPLSZAll.Value); + pageParams.AddString("txtPLSZAllCID", txtPLSZAll.ClientID); + pageParams.AddString("btnRefreshBJSL", btnRefreshBJSL.ClientID); + } + else if (sYZID.Equals("JGBBJTZ")) + { + string sBJDXHList = ""; + + string[] sTempArr = grdXLBJDMX.CheckedRows.Split(new char[] { ',' }); + + foreach (string sIndex in sTempArr) + { + int iRowIndex = CMISproConvert.StrToInt(sIndex.Trim()); + string sBJDXH = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XH", iRowIndex); + if (!sBJDXH.Equals("") && !sBJDXH.Equals("0")) + { + sBJDXHList += sBJDXH + ","; + } + } + sBJDXHList = sBJDXHList.TrimEnd(','); + + + + + + + pageParams.Title = "批量调整表价"; + pageParams.AddString("TZBZ", "JGBBJTZ"); + pageParams.AddString("JGBBJXSWS", grdXLBJDMX.FindColumnByFieldName("XLXSBJDMX_JGBBJ").NumberDecimalPlace.ToString()); + pageParams.AddString("TZJGBBJ", bjflxx.XLXSBJFL_TZJGBBJ); + pageParams.AddString("sBJDXHList", sBJDXHList); + pageParams.AddString("BJDID", txtBJDID.Text.Trim()); + pageParams.AddString("PLSZAll", txtPLSZAll.Value); + pageParams.AddString("txtPLSZAllCID", txtPLSZAll.ClientID); + pageParams.AddString("txtJGBBJTZCID", txtJGBBJTZ.ClientID); + pageParams.AddString("btnRefreshJGBBJTZ", btnRefreshJGBBJTZ.ClientID); + } + else if (sYZID.Equals("BJSF")) + { + pageParams.Title = "报价上浮%"; + pageParams.AddString("TZBZ", "BJSF"); + pageParams.AddString("PLSZAll", txtPLSZAll.Value); + pageParams.AddString("txtBJSFCID", txtBJSF.ClientID); + pageParams.AddString("txtPLSZAllCID", txtPLSZAll.ClientID); + pageParams.AddString("btnRefreshBJSF", btnRefreshBJSF.ClientID); + } + else if (sYZID.Equals("BJXF")) + { + pageParams.Title = "报价下浮%"; + pageParams.AddString("TZBZ", "BJXF"); + pageParams.AddString("PLSZAll", txtPLSZAll.Value); + pageParams.AddString("txtBJXFCID", txtBJXF.ClientID); + pageParams.AddString("txtPLSZAllCID", txtPLSZAll.ClientID); + pageParams.AddString("btnRefreshBJXF", btnRefreshBJXF.ClientID); + } + else if (sYZID.Equals("BJJCLLX")) + { + pageParams.Title = "表价价差率%"; + pageParams.AddString("TZBZ", "BJJCLLX"); + pageParams.AddString("BJFLID", sBJFLID); + pageParams.AddString("PLSZAll", txtPLSZAll.Value); + pageParams.AddString("txtTZZCID", txtTZZ.ClientID); + pageParams.AddString("btnRefreshBJJCL", btnRefreshBJJCL.ClientID); + pageParams.AddString("txtPLSZAllCID", txtPLSZAll.ClientID); + } + else if (sYZID.Equals("LJJCLLX")) + { + pageParams.Title = "料价价差率%"; + pageParams.AddString("TZBZ", "LJJCLLX"); + pageParams.AddString("BJFLID", sBJFLID); + pageParams.AddString("PLSZAll", txtPLSZAll.Value); + pageParams.AddString("txtTZZCID", txtTZZ.ClientID); + pageParams.AddString("txtPLSZAllCID", txtPLSZAll.ClientID); + pageParams.AddString("btnRefreshLJJCL", btnRefreshLJJCL.ClientID); + } + else if (sYZID.Equals("BJXJ")) + { + pageParams.Title = "报价限价"; + pageParams.AddString("TZBZ", "BJXJ"); + pageParams.AddString("BJFLID", sBJFLID); + pageParams.AddString("PLSZAll", txtPLSZAll.Value); + pageParams.AddString("txtTZZCID", txtTZZ.ClientID); + pageParams.AddString("txtPLSZAllCID", txtPLSZAll.ClientID); + pageParams.AddString("btnRefreshBJXJ", btnRefreshBJXJ.ClientID); + } + OpenDialog(pageParams); + } + else if (value.StartsWith("CZ")) + { + string sWarning = string.Format("即将重置当前记录所有明细的【{0}】,是否继续?", value.Split('|')[2]); + Confirm.Register("IsQD", sWarning); + Confirm.ShowBtnText = TConfirm.cBtnText.Yes_No; + if (Confirm.GetValue("IsQD").Trim().Equals("")) + { + Confirm.Ask("IsQD"); + return; + } + else if (Confirm.GetValue("IsQD").Trim().Equals("N")) + { + //表示进行了提示并选择了取消,直接返回或其他处理 + Confirm.Clear(); + return; + + } + else if (Confirm.GetValue("IsQD").Trim().Equals("Y")) + { + //表示进行了提示并选择了确认 + Confirm.Clear(); + } + Dictionary dicTJYZList = new Dictionary(); + dicTJYZList.Add("sTJYSList" + value.Split('|')[3].Trim(), value.Split('|')[1].Trim()); + string sErrorMsg = ""; + XLBJDUtils.AddXLXSBJDYZZ0(dberp, txtBJDID.Text.Trim(), sBJFLID, GetOption(100860000, "BJU003"), dicTJYZList, false, "", 0, false, false, false, ref sErrorMsg); + if (!sErrorMsg.Equals("")) + { + ShowMessage(sErrorMsg); + return; + } + XLBJDCalcUtils.CalcAfterBJDYZZChange(dberp, SQL, txtBJDID.Text.Trim(), 1, "", false, false, false, "", DateTime.MinValue, GetOption(100860000, "BJU002"), GetOption(100860000, "BJU003"), CurSession.UserId, CurSession.UserName, ref sErrorMsg); + if (!sErrorMsg.Equals("")) + { + ShowMessage(sErrorMsg); + return; + } + ShowMessage("更新完成!"); + btnOnlyRefresh_Click(null, null); + + } + else if (value.Equals("PFJE")) + { + TPageParams pageParams = new TPageParams(); + pageParams.UrlPath = "BJPF_FDList.aspx"; + pageParams.AddString("BJDID", txtBJDID.Text.Trim()); + pageParams.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); + pageParams.AddString("YZID", ""); + pageParams.AddString("YZMC", ""); + pageParams.AddString("XTCPBJYZ", bjflxx.XLXSBJFL_XTCPBJYZ); + OpenFuncModuleDialog(100860080, pageParams, btnRefreshCLHQTZ.ClientID); + } + else if (value.Equals("JMBGS")) + { + SQL.Clear(); + SQL.Add("select XLXSBJDYZZ_YZZ,XLXSBJDYZZ_MINC,XLXSBJDYZZ_MAXC,XLXSTZYZ_YZMC,XLXSTZYZ_MRTJFW,XLXSTZYZ_JJFS,XLXSTZYZ_TJYS,isnull(XLXSTZYZ_BCYTJ,'N') as XLXSTZYZ_BCYTJ from XLXSTZYZ"); + SQL.Add(" left join XLXSBJDYZZ on XLXSBJDYZZ_JGBID=XLXSTZYZ_JGBID and XLXSBJDYZZ_YZID=XLXSTZYZ_YZID"); + SQL.Add(" where XLXSTZYZ_MXBH='BJD' and XLXSTZYZ_YZID=:pYZID "); + SQL.ParamByName("pYZID").Value = bjflxx.XLXSBJFL_JMBGSYZID; + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + string sJMBGS = "截面比公式"; + if (!string.IsNullOrEmpty(bjflxx.XLXSBJFL_JMBGSBM.Trim())) + sJMBGS = bjflxx.XLXSBJFL_JMBGSBM.Trim(); + string sDefYZZ = ds.Tables[0].Rows[0]["XLXSBJDYZZ_YZZ"].ToString().Trim(); + string sMinYZZ = ds.Tables[0].Rows[0]["XLXSBJDYZZ_MINC"].ToString().Trim(); + string sMaxYZZ = ds.Tables[0].Rows[0]["XLXSBJDYZZ_MAXC"].ToString().Trim(); + string sTJYS = ds.Tables[0].Rows[0]["XLXSTZYZ_TJYS"].ToString().Trim(); + string sBCYTJ = ds.Tables[0].Rows[0]["XLXSTZYZ_BCYTJ"].ToString().Trim(); + TPageParams pageParams = new TPageParams(); + pageParams.UrlPath = "XLBJD_MX_YZInfo.aspx"; + pageParams.AddString("JMBGS", "Y"); + pageParams.AddString("YZID", bjflxx.XLXSBJFL_JMBGSYZID); + pageParams.AddString("DefYZZ", sDefYZZ); + pageParams.AddString("MinYZZ", sMinYZZ); + pageParams.AddString("MaxYZZ", sMaxYZZ); + pageParams.AddString("YZMC", sJMBGS); + pageParams.AddString("JJFS", ds.Tables[0].Rows[0]["XLXSTZYZ_JJFS"].ToString().Trim()); + pageParams.AddString("JGBBJBM", bjflxx.XLXSBJFL_JGBBJBM); + pageParams.AddString("MRTJFW", ds.Tables[0].Rows[0]["XLXSTZYZ_MRTJFW"].ToString().Trim()); + pageParams.AddString("PLSZAll", txtPLSZAll.Value); + pageParams.AddString("txtPLSZAllCID", txtPLSZAll.ClientID); + pageParams.AddString("txtPLSZJMBGSCID", txtPLSZJMBGS.ClientID); + pageParams.AddString("txtPLSZYZListCID", txtPLSZYZList.ClientID); + pageParams.AddString("btnRefreshCID", btnRefreshBJDYZ.ClientID); + OpenDialog(pageParams); + } + } + else if (value.Equals("BJDYZZ-DC") || value.Equals("BJDYZZ-DR") || value.Equals("BJDYZZ")) + { + if (value.Equals("BJDYZZ-DC")) + { + //定义文件名和临时路径​ + string sFILENAME = "线缆销售报价单因子值导入.xls"; + string m_tmpFilePath = FileService.CombineTempPath(Guid.NewGuid().ToString() + sFILENAME); + Dictionary DicYZLM = new Dictionary(); + + //创建DataTable并定义列结构​ + DataTable dt = new DataTable(); + dt.TableName = "sheet1"; + dt.Columns.Add("序号", typeof(float)); + dt.Columns.Add("型号", typeof(string)); + dt.Columns.Add("规格", typeof(string)); + dt.Columns.Add("标准", typeof(string)); + dt.Columns.Add("电压等级", typeof(string)); + dt.Columns.Add("颜色", typeof(string)); + dt.Columns.Add("计量单位", typeof(string)); + dt.Columns.Add("报价数量", typeof(float)); + + SQL.Clear(); + SQL.Add("select XLXSBJFLYZ_YZID,XLXSTZYZ_YZMC,XLXSTZYZ_JJFS,XLXSTZYZ_TJYS "); + SQL.Add(" from XLXSBJFLYZ"); + SQL.Add(" left join XLXSTZYZ on XLXSTZYZ_MXBH='BJD' and XLXSTZYZ_YZID=XLXSBJFLYZ_YZID"); + SQL.Add(" where XLXSBJFLYZ_BJFLID=:pBJFLID"); + SQL.Add(" and XLXSTZYZ_TJMDID <> 100860124 and XLXSTZYZ_TJMDID <> 100860071 and XLXSTZYZ_TJMDID <> 100860080 and XLXSTZYZ_TJMDID <> 100860162 "); + SQL.Add(" order by XLXSTZYZ_XSXH,XLXSTZYZ_YZID "); + SQL.ParamByName("pBJFLID").Value = cbxBJFLID.SelectedValue.Trim(); + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + string sFLYZID = ds.Tables[0].Rows[i]["XLXSBJFLYZ_YZID"].ToString().Trim(); + if (grdXLBJDMX.FindColumnByFieldName("TZYZ_" + sFLYZID).Visible) + { + dt.Columns.Add(grdXLBJDMX.FindColumnByFieldName("TZYZ_" + sFLYZID).HeaderText, typeof(float)); + if (!DicYZLM.ContainsValue(sFLYZID)) + DicYZLM.Add(sFLYZID, grdXLBJDMX.FindColumnByFieldName("TZYZ_" + sFLYZID).HeaderText); + } + } + } + if (DicYZLM.Count == 0) + { + ShowMessage("无可编辑的报价单因子!"); + return; + } + SQL.Clear(); + SQL.Add(" select XLXSBJDMX_XH,XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID,XLXSBJDMX_DYDJID, "); + SQL.Add(" case when isnull(XLBZ_XLBZID,' ') = ' ' then ' ' else rtrim(XLXSBJDMX_XLBZID) || '|' || XLBZ_XLBZLXMC end as XLBZ, "); + SQL.Add(" XLYSB_XLYSMC,XLXSBJDMX_JLDW,XLXSBJDMX_BJSL "); + foreach (string stYZID in DicYZLM.Keys) + { + SQL.Add(" ,XLXSBJDYZZ0_YZZ" + stYZID.Substring(2)); + } + SQL.Add(" from XLXSBJDMX "); + SQL.Add(" left join XLBZ on XLBZ_XLBZID = XLXSBJDMX_XLBZID "); + SQL.Add(" left join XLYSB on XLYSB_XLYSID = XLXSBJDMX_XLYSID "); + SQL.Add(" left join XLXSBJDYZZ0 on XLXSBJDYZZ0_BJDID = XLXSBJDMX_BJDID and XLXSBJDYZZ0_XH = XLXSBJDMX_XH "); + SQL.Add(" where XLXSBJDMX_BJDID = :pBJDID "); + SQL.Add(" order by XLXSBJDMX_XSSX "); + SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); + ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + DataRow NewRow = dt.NewRow(); + NewRow["序号"] = CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSBJDMX_XH"].ToString().Trim()); + NewRow["型号"] = ds.Tables[0].Rows[i]["XLXSBJDMX_XLXHID"].ToString().Trim(); + NewRow["规格"] = ds.Tables[0].Rows[i]["XLXSBJDMX_XLGGID"].ToString().Trim(); + NewRow["标准"] = ds.Tables[0].Rows[i]["XLBZ"].ToString().Trim(); + NewRow["电压等级"] = ds.Tables[0].Rows[i]["XLXSBJDMX_DYDJID"].ToString().Trim(); + NewRow["颜色"] = ds.Tables[0].Rows[i]["XLYSB_XLYSMC"].ToString().Trim(); + NewRow["计量单位"] = ds.Tables[0].Rows[i]["XLXSBJDMX_JLDW"].ToString().Trim(); + NewRow["报价数量"] = CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSBJDMX_BJSL"].ToString().Trim()); + foreach (string stYZID in DicYZLM.Keys) + { + NewRow[DicYZLM[stYZID]] = CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSBJDYZZ0_YZZ" + stYZID.Substring(2)].ToString().Trim()); + } + dt.Rows.Add(NewRow); + } + } + //创建DataSet并关联DataTable​,供Excel生成工具使用 + DataSet dsDC = new DataSet(); + dsDC.Tables.Add(dt); + string sError = ""; + + NpoiCellData cd = new NpoiCellData(); + cd.CellComment = new System.Collections.Generic.Dictionary(); + + //配置工作表数据类型(NpoiSheetData)​ + NpoiSheetData sd = new NpoiSheetData(); + sd.FreezePaneRows = 1; + //生成Excel文件​ + TExcelData.CreateExcel_NPOI(m_tmpFilePath, dsDC, true, cd, sd, ref sError); + + if (string.IsNullOrEmpty(sError)) + { + System.IO.FileInfo file = new System.IO.FileInfo(m_tmpFilePath); + string URL = Page.ResolveClientUrl("~") + "/N_MODEL/Dialog/TempFileDownload.ashx?TempFileName=" + file.Name + "&FileName=线缆销售报价单因子值导入" + file.Extension; + string jsript = @"var JLDCDiv = document.createElement('div');JLDCDiv.style.width=0;JLDCDiv.style.height=0;JLDCDiv.id = 'DivifrDownLoad';" + + " var ele=document.documentElement||document.body;ele.appendChild(JLDCDiv);var iJLDCfrm = document.createElement('iframe');iJLDCfrm.id = 'iJLDCfrmDownLoad';iJLDCfrm.src = '" + URL + "';" + + "iJLDCfrm.style.width = 0;iJLDCfrm.style.height = 0; JLDCDiv.appendChild(iJLDCfrm);"; + AjaxRunScript("YZZDC", jsript); + } + else + { + ShowMessage("导出模板失败!"); + } + } + else if (value.Equals("BJDYZZ-DR")) + { + string sKYYZList = ""; + SQL.Clear(); + SQL.Add("select XLXSBJFLYZ_YZID,XLXSTZYZ_YZMC,XLXSTZYZ_JJFS,XLXSTZYZ_TJYS "); + SQL.Add(" from XLXSBJFLYZ"); + SQL.Add(" left join XLXSTZYZ on XLXSTZYZ_MXBH='BJD' and XLXSTZYZ_YZID=XLXSBJFLYZ_YZID"); + SQL.Add(" where XLXSBJFLYZ_BJFLID=:pBJFLID"); + SQL.Add(" and (isnull(XLXSTZYZ_YZZZD, 'N')='N' or "); + SQL.Add(" ( isnull(XLXSTZYZ_YZZZD, 'N')='Y' and isnull(XLXSTZYZ_ZDWPIDLIST,' ')<>' ' and ','||rtrim(isnull(XLXSTZYZ_ZDWPIDLIST,' '))||',' not like :pCurWPID ) "); + SQL.Add(" ) "); + SQL.Add(" and isnull(XLXSTZYZ_BCYTJ,'N') <> 'Y' "); + SQL.Add(" and XLXSTZYZ_TJMDID <> 100860124 and XLXSTZYZ_TJMDID <> 100860071 and XLXSTZYZ_TJMDID <> 100860080 and XLXSTZYZ_TJMDID <> 100860162 "); + SQL.Add(" order by XLXSTZYZ_XSXH,XLXSTZYZ_YZID"); + SQL.ParamByName("pBJFLID").Value = cbxBJFLID.SelectedValue.Trim(); + SQL.ParamByName("pCurWPID").Value = "%," + txtWPID.Value.Trim() + ",%"; + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + string sFLYZID = ds.Tables[0].Rows[i]["XLXSBJFLYZ_YZID"].ToString().Trim(); + if (grdXLBJDMX.FindColumnByFieldName("TZYZ_" + sFLYZID).Visible) + { + string stemp = sFLYZID + "|" + grdXLBJDMX.FindColumnByFieldName("TZYZ_" + sFLYZID).HeaderText; + if (!sKYYZList.Equals("")) + sKYYZList += ","; + sKYYZList += stemp; + } + } + } + if (sKYYZList.Equals("")) + { + ShowMessage("无可编辑的报价单因子!"); + return; + } + TPageParams pageParams = new TPageParams(); + pageParams.UrlPath = "XLBJD_YZZDRInfo.aspx"; + pageParams.AddString("BJDID", txtBJDID.Text.Trim()); + pageParams.AddString("YZID", sKYYZList); + OpenDialogClickBtn(pageParams, btnRefreshCLHQTZ.ClientID); + } + } + else //报价单因子 + { + if (sYZID.Contains("|")) + sYZID = sYZID.Trim().Split('|')[1]; + SQL.Clear(); + SQL.Add("select XLXSBJDYZZ_YZZ,XLXSBJDYZZ_MINC,XLXSBJDYZZ_MAXC,XLXSTZYZ_YZMC,XLXSTZYZ_TJMDID,XLXSTZYZ_MRTJFW,XLXSTZYZ_JJFS,XLXSTZYZ_TJYS,isnull(XLXSTZYZ_BCYTJ,'N') as XLXSTZYZ_BCYTJ from XLXSTZYZ"); + SQL.Add(" left join XLXSBJDYZZ on XLXSBJDYZZ_JGBID=XLXSTZYZ_JGBID and XLXSBJDYZZ_YZID=XLXSTZYZ_YZID"); + SQL.Add(" where XLXSTZYZ_MXBH='BJD' and XLXSTZYZ_YZID=:pYZID "); + SQL.ParamByName("pYZID").Value = sYZID; + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + if (!bYFYZ && !bPFYZ && !bKJFYZ)//非运费因子、非盘费因子 + { + string sDefYZZ = ds.Tables[0].Rows[0]["XLXSBJDYZZ_YZZ"].ToString().Trim(); + string sMinYZZ = ds.Tables[0].Rows[0]["XLXSBJDYZZ_MINC"].ToString().Trim(); + string sMaxYZZ = ds.Tables[0].Rows[0]["XLXSBJDYZZ_MAXC"].ToString().Trim(); + string sTJYS = ds.Tables[0].Rows[0]["XLXSTZYZ_TJYS"].ToString().Trim(); + string sBCYTJ = ds.Tables[0].Rows[0]["XLXSTZYZ_BCYTJ"].ToString().Trim(); + TPageParams pageParams = new TPageParams(); + pageParams.UrlPath = "XLBJD_MX_YZInfo.aspx"; + if (ds.Tables[0].Rows[0]["XLXSTZYZ_TJMDID"].ToString().Trim().Equals("102577028")) + { + //若为中标服务费,打开中标服务费界面 + pageParams.UrlPath = "XLBJD_YZ_ZBFWFInfo.aspx"; + } + pageParams.AddString("YZID", sYZID); + pageParams.AddString("XMMC", txtXM.Text.Trim()); + pageParams.AddString("BJDJE", txtZJE.Value.ToString()); + pageParams.AddString("DefYZZ", sDefYZZ); + pageParams.AddString("MinYZZ", sMinYZZ); + pageParams.AddString("MaxYZZ", sMaxYZZ); + string sBJDXHList = string.Empty; + if (txtPLSZAll.Value == "N") + { + + string[] sTempArr = grdXLBJDMX.CheckedRows.Split(new char[] { ',' }); + + foreach (string sIndex in sTempArr) + { + int iRowIndex = CMISproConvert.StrToInt(sIndex.Trim()); + string sBJDXH = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XH", iRowIndex); + if (!sBJDXH.Equals("") && !sBJDXH.Equals("0")) + { + sBJDXHList += sBJDXH + ","; + } + } + sBJDXHList = sBJDXHList.TrimEnd(','); + + + } + pageParams.AddString("BJDXHList", sBJDXHList); + pageParams.AddString("BJDID", txtBJDID.Text.Trim()); + pageParams.AddString("YZMC", ds.Tables[0].Rows[0]["XLXSTZYZ_YZMC"].ToString().Trim()); + pageParams.AddString("TJMDID", ds.Tables[0].Rows[0]["XLXSTZYZ_TJMDID"].ToString().Trim()); + pageParams.AddString("JJFS", ds.Tables[0].Rows[0]["XLXSTZYZ_JJFS"].ToString().Trim()); + pageParams.AddString("JGBBJBM", bjflxx.XLXSBJFL_JGBBJBM); + pageParams.AddString("MRTJFW", ds.Tables[0].Rows[0]["XLXSTZYZ_MRTJFW"].ToString().Trim()); + pageParams.AddString("PLSZAll", txtPLSZAll.Value); + pageParams.AddString("txtPLSZAllCID", txtPLSZAll.ClientID); + pageParams.AddString("txtPLSZYZListCID", txtPLSZYZList.ClientID); + pageParams.AddString("btnRefreshCID", btnRefreshBJDYZ.ClientID); + + OpenDialog(pageParams); + + } + else if (bYFYZ)//运费因子 + { + if (txtXZQHID.Value.Trim().Equals("")) + { + ShowMessage("请先指定项目所在地!"); + return; + } + if (!ds.Tables[0].Rows[0]["XLXSTZYZ_JJFS"].ToString().Trim().Equals("JD") + && !ds.Tables[0].Rows[0]["XLXSTZYZ_JJFS"].ToString().Trim().Equals("KD")) + { + ShowMessage("运费因子的调价方式必须是:乘以(1+加点(%))、除以(1-扣点(%))!"); + return; + } + + SQL.Clear(); + SQL.Add("select XLXSBJDQYFZB_YFJSFS,XLXSBJDQYFZB_TCPBL,XLXSBJDQYFZB_LCPBL "); + SQL.Add(" from XLXSBJDQYFZB "); + SQL.Add("where XLXSBJDQYFZB_XZQHID=:pXZQHID "); + SQL.ParamByName("pXZQHID").Value = txtXZQHID.Value.Trim(); + DataSet dsYF = dberp.OpenDataSet(SQL); + if (dsYF.Tables[0].Rows.Count > 0) + { + //运费计算方式 + string sYFJSFS = dsYF.Tables[0].Rows[0]["XLXSBJDQYFZB_YFJSFS"].ToString().Trim(); + + if (sYFJSFS.Equals("1"))//1|运价运重,处理整单 + { + TPageParams pageParams = new TPageParams(); + pageParams.UrlPath = "BJYF_YJYZTJInfo.aspx"; + pageParams.AddString("BJDID", txtBJDID.Text.Trim()); + pageParams.AddString("YZID", sYZID); + pageParams.AddString("YZMC", ds.Tables[0].Rows[0]["XLXSTZYZ_YZMC"].ToString().Trim()); + pageParams.AddString("MRTJFW", ds.Tables[0].Rows[0]["XLXSTZYZ_MRTJFW"].ToString().Trim()); + pageParams.AddString("JGBBJBM", bjflxx.XLXSBJFL_JGBBJBM); + pageParams.AddString("txtPLSZYZListCID", txtPLSZYZList.ClientID); + pageParams.AddString("btnRefreshCID", btnRefreshYFYZ1.ClientID); + OpenDialog(pageParams); + } + else if (sYFJSFS.Equals("2"))//2|运金比例,处理整单 + { + TPageParams pageParams = new TPageParams(); + pageParams.UrlPath = "BJYF_JEBLTJInfo.aspx"; + pageParams.AddString("BJDID", txtBJDID.Text.Trim()); + pageParams.AddString("YZID", sYZID); + pageParams.AddString("YZMC", ds.Tables[0].Rows[0]["XLXSTZYZ_YZMC"].ToString().Trim()); + pageParams.AddString("MRTJFW", ds.Tables[0].Rows[0]["XLXSTZYZ_MRTJFW"].ToString().Trim()); + pageParams.AddString("JGBBJBM", bjflxx.XLXSBJFL_JGBBJBM); + pageParams.AddString("txtPLSZYZListCID", txtPLSZYZList.ClientID); + pageParams.AddString("XZQHID", txtXZQHID.Value.Trim()); + pageParams.AddString("btnRefreshCID", btnRefreshYFYZ2.ClientID); + OpenDialog(pageParams); + } + else if (sYFJSFS.Equals("3"))//3|运距运重 + { + TPageParams pageParams = new TPageParams(); + pageParams.UrlPath = "BJYF_YZYJTJInfo.aspx"; + pageParams.AddString("BJDID", txtBJDID.Text.Trim()); + pageParams.AddString("YZID", sYZID); + pageParams.AddString("YZMC", ds.Tables[0].Rows[0]["XLXSTZYZ_YZMC"].ToString().Trim()); + pageParams.AddString("txtPLSZYZListCID", txtPLSZYZList.ClientID); + pageParams.AddString("XZQHID", txtXZQHID.Value.Trim()); + pageParams.AddString("YFJSFS", sYFJSFS); + double dBJU026 = CMISproConvert.StrToFloat(GetOption(100860071, "BJU026")); + if (dBJU026 != 1) + pageParams.AddString("btnRefreshCID", btnRefreshYFYZ3.ClientID); + else + pageParams.AddString("btnRefreshCID", btnRefreshYFYZ1.ClientID); + + OpenDialog(pageParams); + } + else if (sYFJSFS.Contains("3") || sYFJSFS.Contains("4"))//3|运距运重,4|运距运件 + { + TPageParams pageParams = new TPageParams(); + pageParams.UrlPath = "BJYF_YZYJList.aspx"; + pageParams.AddString("BJDID", txtBJDID.Text.Trim()); + pageParams.AddString("YZID", sYZID); + pageParams.AddString("YZMC", ds.Tables[0].Rows[0]["XLXSTZYZ_YZMC"].ToString().Trim()); + pageParams.AddString("txtPLSZYZListCID", txtPLSZYZList.ClientID); + pageParams.AddString("XZQHID", txtXZQHID.Value.Trim()); + pageParams.AddString("YFJSFS", sYFJSFS); + pageParams.AddString("btnRefreshCID", btnRefreshYFYZ1.ClientID); + OpenFuncModuleDialog(100860084, pageParams); + } + } + else + { + ShowMessage(string.Format("项目所在地【{0}】尚未设置计算运费的规则!", cbxKHSZDPRO.SelectedItem.Text.Trim() + cbxKHSZDCITY.SelectedItem.Text.Trim() + cbxKHSZDCOUNTY.SelectedItem.Text.Trim())); + return; + } + } + else if (bPFYZ)//盘费因子 + { + TPageParams pageParams = new TPageParams(); + pageParams.UrlPath = "BJPF_FDList.aspx"; + pageParams.AddString("BJDID", txtBJDID.Text.Trim()); + pageParams.AddString("YZID", sYZID); + pageParams.AddString("YZMC", ds.Tables[0].Rows[0]["XLXSTZYZ_YZMC"].ToString().Trim()); + pageParams.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); + pageParams.AddString("XTCPBJYZ", bjflxx.XLXSBJFL_XTCPBJYZ); + OpenFuncModuleDialog(100860080, pageParams, btnRefreshCLHQTZ.ClientID); + } + else if (bKJFYZ)//开机费因子 + { + if (GetOption(100860000, "BJU071").Equals("2")) + { + TPageParams pageParams = new TPageParams(); + pageParams.UrlPath = "XLBJD_YZZDRInfo.aspx"; + pageParams.AddString("BJDID", txtBJDID.Text.Trim()); + pageParams.AddString("KJF", "Y"); + pageParams.AddString("YZID", sYZID.Trim() + "|" + ds.Tables[0].Rows[0]["XLXSTZYZ_YZMC"].ToString().Trim()); + OpenDialogClickBtn(pageParams, btnRefreshCLHQTZ.ClientID); + } + else + { + TPageParams pageParams = new TPageParams(); + pageParams.UrlPath = "XLBJD_YZ_KJFInfo.aspx"; + pageParams.AddString("BJDID", txtBJDID.Text.Trim()); + pageParams.AddString("YZID", sYZID); + pageParams.AddString("YZMC", ds.Tables[0].Rows[0]["XLXSTZYZ_YZMC"].ToString().Trim()); + pageParams.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); + OpenDialogClickBtn(pageParams, btnRefreshCLHQTZ.ClientID); + } + + } + } + else + { + ShowMessage("所选调价因子记录已不存在,请关闭页面后重试!"); + return; + } + } + } + else + { + //除固定和N_XL8 + } + } + + private void TZBJByModule(string value) + { + //if (!(grdXLBJDMX.CheckBox && !String.IsNullOrEmpty(grdXLBJDMX.CheckedRows))) + //{ + // ShowMessage("请先勾选记录!"); + // return; + //} + string[] sTempArr = grdXLBJDMX.CheckedRows.Split(new char[] { ',' }); + string sBJDXHList = ""; + foreach (string sIndex in sTempArr) + { + int iRowIndex = CMISproConvert.StrToInt(sIndex.Trim()); + string sBJDXH = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XH", iRowIndex); + if (!sBJDXH.Equals("") && !sBJDXH.Equals("0")) + { + sBJDXHList += sBJDXH + ","; + } + } + sBJDXHList = sBJDXHList.TrimEnd(','); + + //UFC_20191806_N_XL8 + string path = "../components/"; + ModuleInfo MdInfo = MacInfoUtils.GetModuleInfo(CMISproConvert.StrToInt(value)); + if (MdInfo != null && MdInfo.MacInfo != null) + { + path = path + MdInfo.MacInfo.ClassId + "/" + MdInfo.PageFile; + } + else + { + return; + } + TPageParams pageParams = new TPageParams(); + pageParams.UrlPath = path; + pageParams.AddString("BJDID", txtBJDID.Text.Trim()); + pageParams.AddInt("iXSWS", iXSWS); + pageParams.AddString("BJDXH", sBJDXHList); + pageParams.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); + pageParams.AddString("JGBID", cbxJGBID.SelectedValue.Trim()); + pageParams.AddString("BJRQ", datBJRQ.Text); + pageParams.AddString("JGCIDS", txtJGCIDS.Text.Trim()); + pageParams.AddString("BJLY", txtBJLY.Text.Trim()); + pageParams.AddString("JSBLFS", txtJSBLFS.Text.Trim()); + pageParams.AddString("XSQYID", cbxXSQYID.SelectedValue.Trim()); + pageParams.AddString("PJLX", cbxPJLX.SelectedValue.Trim()); + pageParams.AddString("FKQXNR", cbxFKQXNR.SelectedValue.Trim()); + pageParams.AddString("HSBZ", chkJZBJHS.Checked ? "Y" : "N"); + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); + + if (txtBJDYZ.Text.Trim().Equals("")) + { + Dictionary dicBJDYZ = XLBJDUtils.GetBJDYZ(cbxBJFLID.SelectedValue.Trim()); + txtBJDYZ.Text = dicBJDYZ["BJDYZ"]; + txtTJYSList.Text = dicBJDYZ["TJYSList"]; + txtYZWPIDList.Text = dicBJDYZ["YZWPIDList"]; + txtReadOnlyYZ.Text = dicBJDYZ["ReadOnlyYZ"]; + txtZDWPIDList.Text = dicBJDYZ["ZDWPIDList"]; + txtPFYZID.Text = dicBJDYZ["PFYZ"]; + txtBTYZ.Text = dicBJDYZ["BTYZ"]; + txtXSJEYZ.Text = dicBJDYZ["XSJEYZ"]; + } + pageParams.AddString("BJDYZ", txtBJDYZ.Text.Trim()); + pageParams.AddString("TJYSList", txtTJYSList.Text.Trim()); + pageParams.AddString("YZWPIDList", txtYZWPIDList.Text.Trim()); + + pageParams.AddString("XSLJ", bjflxx.XSLJ() ? "Y" : "N"); + pageParams.AddString("XSJJ", bjflxx.XSJGBJJChecked() ? "Y" : "N"); + pageParams.AddString("XSJCL", bjflxx.XSJCL() ? "Y" : "N"); + pageParams.AddString("JCLLX", bjflxx.XLXSBJFL_BJJCLLX); + pageParams.AddString("TZCLHQ", bjflxx.XLXSBJFL_TZCLHQ); + pageParams.AddString("XSBJDHQLJ", bjflxx.XSBJDHQLJ() ? "Y" : "N"); + pageParams.AddString("XSLJJCL", bjflxx.XSLJJCL() ? "Y" : "N"); + pageParams.AddString("XSJSJ", bjflxx.XSJSJ() ? "Y" : "N"); + pageParams.AddString("LJJCLLX", bjflxx.XLXSBJFL_LJJCLLX); + pageParams.AddString("XSTZJG", bjflxx.XLXSBJFL_XSTZCPBJ); + pageParams.AddString("XSTZZDXJ", bjflxx.XLXSBJFL_XSTZZDXJ); + pageParams.AddString("XSTZJE", bjflxx.XLXSBJFL_XSTZBJJE); + pageParams.AddString("BJDHQLY", bjflxx.XLXSBJFL_BJDHQLY); + pageParams.AddString("TBJCLID", bjflxx.XLXSBJFL_TBJCLID); + pageParams.AddString("LBJCLID", bjflxx.XLXSBJFL_LBJCLID); + pageParams.AddString("TJ", txtTJ.Value.ToString()); + pageParams.AddString("LJ", txtLJ.Value.ToString()); + pageParams.AddString("CPBJMRXSWS", bjflxx.XLXSBJFL_CPBJMRXSWS); + + pageParams.AddString("JYF", bjflxx.XLXSBJFL_JYF);//计运费 + pageParams.AddString("YSJDID", cbxYSJDID.SelectedValue.Trim());//运输节点 + pageParams.AddString("GYSID", cbxGYSID.SelectedValue.Trim());//运输单位 + pageParams.AddString("YFWLID", bjflxx.XLXSBJFL_YFWLID);//运费物料 + pageParams.AddString("BJHYF", bjflxx.XLXSBJFL_BJHYF);//报价含运费 + + //pageParams.AddString("btnRefresh1", btnRefresh1.ClientID.Trim()); + OpenModuleDialog(CMISproConvert.StrToInt(value), pageParams, btnRefresh1.ClientID); + } + + //因子在一个界面的刷新 + protected void btnRefreshBJPLTJ_Click(object sender, EventArgs e) + { + string sPLSZYZList = txtPLSZYZList.Value; + if (!txtBJSF.Value.Equals("") && !txtBJSF.Value.Equals("0")) + { + btnRefreshBJSF_Click(null, null); + + } + if (!txtBJXF.Value.Equals("") && !txtBJXF.Value.Equals("0")) + { + btnRefreshBJXF_Click(null, null); + } + if (!sPLSZYZList.Equals("")) + { + string[] sTemp = sPLSZYZList.Split(new Char[] { '|' }, StringSplitOptions.RemoveEmptyEntries); + for (int m = 1; m <= sTemp.Length; m++) + { + if (m % 3 == 0) + { + txtPLSZYZList.Value = sTemp[m - 3] + "|" + sTemp[m - 2] + "|" + sTemp[m - 1]; + btnRefreshBJDYZ_Click(null, null); + } + } + } + } + //报价单因子 + protected void btnRefreshBJDYZ_Click(object sender, EventArgs e) + { + if (txtPLSZYZList.Value.Trim().Equals("")) + { + return; + } + + string sBJDXHList = ""; + if (txtPLSZAll.Value.Trim().Equals("N"))//调价范围:N|勾选记录 + { + string[] sTempArr = grdXLBJDMX.CheckedRows.Split(new char[] { ',' }); + + foreach (string sIndex in sTempArr) + { + int iRowIndex = CMISproConvert.StrToInt(sIndex.Trim()); + string sBJDXH = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XH", iRowIndex); + if (!sBJDXH.Equals("") && !sBJDXH.Equals("0")) + { + sBJDXHList += sBJDXH + ","; + } + } + sBJDXHList = sBJDXHList.TrimEnd(','); + } + DoRefreshBJDYZClick(sBJDXHList, false); + } + + //运费因子--1|运价运重 + protected void btnRefreshYFYZ1_Click(object sender, EventArgs e) + { + if (txtPLSZYZList.Value.Trim().Equals("")) + { + return; + } + + DoRefreshBJDYZClick("", false); + } + + //运费因子--2|运金比例 + protected void btnRefreshYFYZ2_Click(object sender, EventArgs e) + { + if (txtPLSZYZList.Value.Trim().Equals("")) + { + return; + } + + DoRefreshBJDYZClick("", true); + } + + //运费因子--3|运重运距区分铜铝产品 + protected void btnRefreshYFYZ3_Click(object sender, EventArgs e) + { + if (txtPLSZYZList.Value.Trim().Equals("")) + { + return; + } + + DoRefreshBJDYZClick("", true); + } + + /// + /// 批量设置调价因素为空的因子值 + /// + /// 勾选的明细序号 + /// 是否分铜铝产品设置因子值 + private void DoRefreshBJDYZClick(string sBJDXHList, bool bTLCP) + { + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); + + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + + string sBJDID = txtBJDID.Text.Trim(); + + string[] sYZZList = txtPLSZYZList.Value.Trim().Split('|'); + string sYZID = sYZZList[0].Trim(); + double fYZZ = 0.0; + double fTcpYZZ = 0.0; + double fLcpYZZ = 0.0; + string sTcpList = ""; + string sLcpList = ""; + string sTLcpList = ""; + if (bTLCP) + { + fTcpYZZ = CMISproConvert.StrToFloat(sYZZList[1].Split(';')[0]); + fLcpYZZ = CMISproConvert.StrToFloat(sYZZList[1].Split(';')[1]); + XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860063); + if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_TDTGSCLID)) + sTcpList = pzxx.XLXSBJPZ_TDTGSCLID; + if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_LDTGSCLID)) + sLcpList = pzxx.XLXSBJPZ_LDTGSCLID; + sTLcpList = sTcpList + "," + sLcpList; + sTLcpList = sTLcpList.TrimStart(',').TrimEnd(','); + + } + else + fYZZ = CMISproConvert.StrToFloat(sYZZList[1]); + + //调整范围 + string sTJFW = sYZZList[2].Trim(); + bool bYBJ = sTJFW.Split(',')[0].Equals("Y") ? true : false; + bool bWG = false; + bool bFWG = false; + if (sTJFW.Split(',').Length > 1) + { + bWG = sTJFW.Split(',')[1].Equals("Y") ? true : false; + bFWG = sTJFW.Split(',')[2].Equals("Y") ? true : false; + } + + string sErrorMsg = ""; + if (!txtPLSZJMBGS.Value.Equals("")) + { + //批量修改截面比公式 + XLBJDUtils.UpdateJMBGS(sBJDID, sBJDXHList, txtPLSZJMBGS.Value); + PLTJ_BJDYZ(sBJDXHList, 0, sBJDID, sYZID, fYZZ, bTLCP, sTLcpList, sTcpList, fTcpYZZ, sLcpList, fLcpYZZ, bYBJ, bWG, bFWG, "", CurSession.UserId, CurSession.UserName, GetOption(100860000, "BJU002"), GetOption(100860000, "BJU003"), ref sErrorMsg); + + } + else + { + PLTJ_BJDYZ(sBJDXHList, 0, sBJDID, sYZID, fYZZ, bTLCP, sTLcpList, sTcpList, fTcpYZZ, sLcpList, fLcpYZZ, bYBJ, bWG, bFWG, bjflxx.XLXSBJFL_JMBGSYZID, CurSession.UserId, CurSession.UserName, GetOption(100860000, "BJU002"), GetOption(100860000, "BJU003"), ref sErrorMsg); + } + if (!sErrorMsg.Equals("")) + { + ShowMessage(sErrorMsg); + } + + btnOnlyRefresh_Click(null, null); + } + + + //报价数量 + protected void btnRefreshBJSL_Click(object sender, EventArgs e) + { + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); + + string sBJDID = txtBJDID.Text.Trim(); + string sBJFLID = cbxBJFLID.SelectedValue.Trim(); + string sBJSL = txtBJSL.Value.Trim().Split('|')[0]; + //调整范围 + string sTJFW = txtBJSL.Value.Trim().Split('|')[1]; + bool bYBJ = sTJFW.Split(',')[0].Equals("Y") ? true : false; + bool bWG = sTJFW.Split(',')[1].Equals("Y") ? true : false; + bool bFWG = sTJFW.Split(',')[2].Equals("Y") ? true : false; + string sJCLLX = bjflxx.XLXSBJFL_BJJCLLX; + string sLJJCLLX = bjflxx.XLXSBJFL_LJJCLLX; + + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + + string sBJDXHList = ""; + if (txtPLSZAll.Value.Trim().Equals("N"))//调价范围:N|勾选记录 + { + if (!(grdXLBJDMX.CheckBox && !String.IsNullOrEmpty(grdXLBJDMX.CheckedRows))) + { + return; + } + string[] sTempArr = grdXLBJDMX.CheckedRows.Split(new char[] { ',' }); + + foreach (string sIndex in sTempArr) + { + int iRowIndex = CMISproConvert.StrToInt(sIndex.Trim()); + string sBJDXH = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XH", iRowIndex); + sBJDXHList += sBJDXH + ","; + } + sBJDXHList = sBJDXHList.TrimEnd(','); + } + + string sErrorMsg = ""; + XLBJDCalcUtils.CalcWithBJSLChange(dberp, SQL, CMISproConvert.StrToFloat(sBJSL), sBJDID, 0, sBJDXHList, bYBJ, bWG, bFWG, GetOption(100860000, "BJU002"), GetOption(100860000, "BJU003"), CurSession.UserId, CurSession.UserName, ref sErrorMsg); + if (!sErrorMsg.Equals("")) + { + ShowMessage(sErrorMsg); + } + btnOnlyRefresh_Click(null, null); + } + + //价格表表价调整 + protected void btnRefreshJGBBJTZ_Click(object sender, EventArgs e) + { + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); + + string sBJDID = txtBJDID.Text.Trim(); + string sBJFLID = cbxBJFLID.SelectedValue.Trim(); + string sJGBBJ = txtJGBBJTZ.Value.Trim().Split('|')[0]; + //调整范围 + string sTJFW = txtJGBBJTZ.Value.Trim().Split('|')[1]; + bool bYBJ = sTJFW.Split(',')[0].Equals("Y") ? true : false; + bool bWG = sTJFW.Split(',')[1].Equals("Y") ? true : false; + bool bFWG = sTJFW.Split(',')[2].Equals("Y") ? true : false; + string sJCLLX = bjflxx.XLXSBJFL_BJJCLLX; + string sLJJCLLX = bjflxx.XLXSBJFL_LJJCLLX; + + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + + string sBJDXHList = ""; + if (txtPLSZAll.Value.Trim().Equals("N"))//调价范围:N|勾选记录 + { + if (!(grdXLBJDMX.CheckBox && !String.IsNullOrEmpty(grdXLBJDMX.CheckedRows))) + { + return; + } + string[] sTempArr = grdXLBJDMX.CheckedRows.Split(new char[] { ',' }); + + foreach (string sIndex in sTempArr) + { + int iRowIndex = CMISproConvert.StrToInt(sIndex.Trim()); + string sBJDXH = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XH", iRowIndex); + sBJDXHList += sBJDXH + ","; + } + sBJDXHList = sBJDXHList.TrimEnd(','); + } + SQL.Clear(); + SQL.Add(" UPDATE XLXSBJDMX SET XLXSBJDMX_JGBBJ=:pJGBBJ + XLXSBJDMX_JGBBJ,XLXSBJDMX_JGBBJGXSJ=:pJGBBJGXSJ,XLXSBJDMX_JGBBJTZ='Y' "); + SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID"); + SQL.Add(" and XLXSBJDMX_XH>=:pstartBJDXH"); + if (!sBJDXHList.Equals("")) + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + if (bYBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + if (bWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y' "); + SQL.ParamByName("pJGBBJ").Value = CMISproConvert.StrToFloat(sJGBBJ); + SQL.ParamByName("pJGBBJGXSJ").Value = MISproUtils.GetServerTime(); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pstartBJDXH").Value = 0; + dberp.ExecSQL(SQL); + string sErrorMsg = ""; + XLBJDCalcUtils.CalcAfterBJDYZZChange(dberp, SQL, sBJDID, 1, sBJDXHList, bYBJ, bWG, bFWG, "", DateTime.MinValue, GetOption(100860000, "BJU002"), GetOption(100860000, "BJU003"), CurSession.UserId, CurSession.UserName, ref sErrorMsg); + if (!sErrorMsg.Equals("")) + { + ShowMessage(sErrorMsg); + } + SQL.Clear(); + SQL.Add(" UPDATE XLXSBJDMX SET XLXSBJDMX_BJTJCZ='JGBBJTZ' "); + SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID"); + SQL.Add(" and XLXSBJDMX_XH>=:pstartBJDXH"); + if (!sBJDXHList.Equals("")) + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + if (bYBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + if (bWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y' "); + SQL.ParamByName("pJGBBJ").Value = CMISproConvert.StrToFloat(sJGBBJ); + SQL.ParamByName("pJGBBJGXSJ").Value = MISproUtils.GetServerTime(); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pstartBJDXH").Value = 0; + dberp.ExecSQL(SQL); + btnOnlyRefresh_Click(null, null); + } + + protected void btnRefreshJGBBJSC_Click(object sender, EventArgs e) + { + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); + + string sBJDID = txtBJDID.Text.Trim(); + string sBJFLID = cbxBJFLID.SelectedValue.Trim(); + //调整范围 + string sTJFW = txtJGBBJTZ.Value.Trim().Split('|')[1]; + bool bYBJ = sTJFW.Split(',')[0].Equals("Y") ? true : false; + bool bWG = sTJFW.Split(',')[1].Equals("Y") ? true : false; + bool bFWG = sTJFW.Split(',')[2].Equals("Y") ? true : false; + string sJCLLX = bjflxx.XLXSBJFL_BJJCLLX; + string sLJJCLLX = bjflxx.XLXSBJFL_LJJCLLX; + + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + + string sBJDXHList = ""; + if (txtPLSZAll.Value.Trim().Equals("N"))//调价范围:N|勾选记录 + { + if (!(grdXLBJDMX.CheckBox && !String.IsNullOrEmpty(grdXLBJDMX.CheckedRows))) + { + return; + } + string[] sTempArr = grdXLBJDMX.CheckedRows.Split(new char[] { ',' }); + + foreach (string sIndex in sTempArr) + { + int iRowIndex = CMISproConvert.StrToInt(sIndex.Trim()); + string sBJDXH = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XH", iRowIndex); + sBJDXHList += sBJDXH + ","; + } + sBJDXHList = sBJDXHList.TrimEnd(','); + } + SQL.Clear(); + SQL.Add(" UPDATE XLXSBJDMX SET XLXSBJDMX_JGBBJ=0.0,XLXSBJDMX_JGBBJGXSJ=:pJGBBJGXSJ,XLXSBJDMX_JGBBJTZ='Y' "); + SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID"); + SQL.Add(" and XLXSBJDMX_XH>=:pstartBJDXH"); + if (!sBJDXHList.Equals("")) + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + if (bYBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + if (bWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y' "); + SQL.ParamByName("pJGBBJGXSJ").Value = MISproUtils.GetServerTime(); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pstartBJDXH").Value = 0; + dberp.ExecSQL(SQL); + string sErrorMsg = ""; + XLBJDCalcUtils.CalcAfterBJDYZZChange(dberp, SQL, sBJDID, 1, sBJDXHList, bYBJ, bWG, bFWG, "", DateTime.MinValue, GetOption(100860000, "BJU002"), GetOption(100860000, "BJU003"), CurSession.UserId, CurSession.UserName, ref sErrorMsg); + if (!sErrorMsg.Equals("")) + { + ShowMessage(sErrorMsg); + } + SQL.Clear(); + SQL.Add(" UPDATE XLXSBJDMX SET XLXSBJDMX_BJTJCZ='JGBBJTZ' "); + SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID"); + SQL.Add(" and XLXSBJDMX_XH>=:pstartBJDXH"); + if (!sBJDXHList.Equals("")) + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + if (bYBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + if (bWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y' "); + SQL.ParamByName("pJGBBJGXSJ").Value = MISproUtils.GetServerTime(); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pstartBJDXH").Value = 0; + dberp.ExecSQL(SQL); + btnOnlyRefresh_Click(null, null); + } + + //上浮 + protected void btnRefreshBJSF_Click(object sender, EventArgs e) + { + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); + + string sBJDID = txtBJDID.Text.Trim(); + string sBJSF = txtBJSF.Value; + string sJCLLX = bjflxx.XLXSBJFL_BJJCLLX; + string sLJJCLLX = bjflxx.XLXSBJFL_LJJCLLX; + + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + + string sBJDXHList = ""; + if (txtPLSZAll.Value.Trim().Equals("N"))//调价范围:N|勾选记录 + { + if (!(grdXLBJDMX.CheckBox && !String.IsNullOrEmpty(grdXLBJDMX.CheckedRows))) + { + return; + } + string[] sTempArr = grdXLBJDMX.CheckedRows.Split(new char[] { ',' }); + + foreach (string sIndex in sTempArr) + { + int iRowIndex = CMISproConvert.StrToInt(sIndex.Trim()); + string sBJDXH = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XH", iRowIndex); + if (!sBJDXH.Equals("") && !sBJDXH.Equals("0")) + { + sBJDXHList += sBJDXH + ","; + } + } + sBJDXHList = sBJDXHList.TrimEnd(','); + } + else if(txtPLSZAll.Value.Trim().Equals("D")) + sBJDXHList = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XH", grdXLBJDMX.SelectedIndex); + + + string sCPBJMRXSWS = bjflxx.XLXSBJFL_CPBJMRXSWS; + string sCPBJBLXSWS = Math.Pow(10, -1 * CMISproConvert.StrToFloat(sCPBJMRXSWS)).ToString("F9"); + try + { + dberp.BeginTrans(); + //更新非报价锁定记录 + string sBJSFTJFS = XLBJDUtils.GetBJSFTJFS(); + string sqlBJJE = ""; + string sqlCPBJ = ""; + if (sBJSFTJFS.Equals("UM")) + { + sqlCPBJ = "XLXSBJDMX_CPBJ*(1+:pUpdCPBJ/100.0)"; + sqlBJJE = string.Format("RoundFix(XLXSBJDMX_BJSL*RoundFix((XLXSBJDMX_CPBJ*(1+:pUpdCPBJ/100.0))/{0},0)*{0}+XLXSBJDMX_TZBJJE,2)", sCPBJBLXSWS); + } + else + { + sqlCPBJ = "XLXSBJDMX_CPBJ/(1-:pUpdCPBJ/100.0)"; + sqlBJJE = string.Format("RoundFix(XLXSBJDMX_BJSL*RoundFix((XLXSBJDMX_CPBJ/(1-:pUpdCPBJ/100.0))/{0},0)*{0}+XLXSBJDMX_TZBJJE,2)", sCPBJBLXSWS); + } + SQL.Clear(); + SQL.Add("update XLXSBJDMX set "); + SQL.Add(string.Format("XLXSBJDMX_CPBJ=RoundFix(" + sqlCPBJ + "/{0},0)*{0},", sCPBJBLXSWS));//这里应不需要按CMISproConvert.StrToInt(sCPBJMRXSWS)保留小数位数 + SQL.Add(string.Format("XLXSBJDMX_TZCPBJ=RoundFix(case when XLXSBJDMX_TZQCPBJ=0 then 0 else 100*(RoundFix(" + sqlCPBJ + "/{0},0)*{0}-XLXSBJDMX_TZQCPBJ)/XLXSBJDMX_TZQCPBJ end,15),", sCPBJBLXSWS)); + SQL.Add(string.Format("XLXSBJDMX_TZQBJJE=RoundFix(XLXSBJDMX_BJSL*(RoundFix(" + sqlCPBJ + "/{0},0)*{0}),2),", sCPBJBLXSWS)); + SQL.Add(" XLXSBJDMX_BJXJKD = 0, XLXSBJDMX_BJXJJJ = 0, "); + SQL.Add("XLXSBJDMX_BJJE=" + sqlBJJE + ","); + if (sJCLLX.Equals("1"))//表价价差率公式 + { + SQL.Add("XLXSBJDMX_JGBBJJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + "-XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); + SQL.Add(string.Format("XLXSBJDMX_JGBBJJCE =RoundFix((" + sqlBJJE + "-RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2))/{0},0)*{0}, ", sCPBJBLXSWS)); + } + else if (sJCLLX.Equals("2")) + { + SQL.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,"); + SQL.Add(string.Format("XLXSBJDMX_JGBBJJCE =RoundFix((RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)-" + sqlBJJE + ")/{0},0)*{0}, ", sCPBJBLXSWS)); + } + else if (sJCLLX.Equals("3")) + { + SQL.Add("XLXSBJDMX_JGBBJJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); + SQL.Add("XLXSBJDMX_JGBBJJCE =0, "); + } + else if (sJCLLX.Equals("4")) + { + SQL.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,"); + SQL.Add(string.Format("XLXSBJDMX_JGBBJJCE =RoundFix((" + sqlBJJE + " - RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2))/{0},0)*{0}, ", sCPBJBLXSWS)); + } + else + { + SQL.Add("XLXSBJDMX_JGBBJJCL=0,"); + SQL.Add("XLXSBJDMX_JGBBJJCE=0,"); + } + if (sLJJCLLX.Equals("1"))//料价价差率公式 + { + SQL.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")) + { + SQL.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")) + { + SQL.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")) + { + SQL.Add("XLXSBJDMX_CLCBJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); + } + else + { + SQL.Add("XLXSBJDMX_CLCBJCL=0,"); + } + SQL.Add("XLXSBJDMX_BJTJCZ = 'BJSFJS',"); + SQL.Add("XLXSBJDMX_CLCBJCLSDBZ='N'"); + SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID "); + if (!sBJDXHList.Trim().Equals("")) + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + SQL.Add(" and XLXSBJDMX_BJSDBZ<>'Y'");//跳过报价锁定为Y的明细数据 + SQL.ParamByName("pUpdCPBJ").Value = CMISproConvert.StrToFloat(sBJSF); + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + dberp.CommitTrans(); + } + catch (Exception ex) + { + ShowMessage("批量调价-上浮出现错误,请联系系统管理员!" + ex.Message); + dberp.RollbackTrans(); + } + + btnRefreshDRBJDMX_Click(null, null); + } + + //下浮 + protected void btnRefreshBJXF_Click(object sender, EventArgs e) + { + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); + + string sBJDID = txtBJDID.Text.Trim(); + string sBJXF = txtBJXF.Value; + string sJCLLX = bjflxx.XLXSBJFL_BJJCLLX; + string sLJJCLLX = bjflxx.XLXSBJFL_LJJCLLX; + + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + + string sBJDXHList = ""; + if (txtPLSZAll.Value.Trim().Equals("N"))//调价范围:N|勾选记录 + { + if (!(grdXLBJDMX.CheckBox && !String.IsNullOrEmpty(grdXLBJDMX.CheckedRows))) + { + return; + } + string[] sTempArr = grdXLBJDMX.CheckedRows.Split(new char[] { ',' }); + + foreach (string sIndex in sTempArr) + { + int iRowIndex = CMISproConvert.StrToInt(sIndex.Trim()); + string sBJDXH = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XH", iRowIndex); + if (!sBJDXH.Equals("") && !sBJDXH.Equals("0")) + { + sBJDXHList += sBJDXH + ","; + } + } + sBJDXHList = sBJDXHList.TrimEnd(','); + } + else if (txtPLSZAll.Value.Trim().Equals("D")) + sBJDXHList = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XH", grdXLBJDMX.SelectedIndex); + string sCPBJMRXSWS = bjflxx.XLXSBJFL_CPBJMRXSWS; + string sCPBJBLXSWS = Math.Pow(10, -1 * CMISproConvert.StrToFloat(sCPBJMRXSWS)).ToString("F9"); + try + { + dberp.BeginTrans(); + //更新非报价锁定记录 + string sBJXFTJFS = XLBJDUtils.GetBJXFTJFS(); + string sqlBJJE = ""; + string sqlCPBJ = ""; + if (sBJXFTJFS.Equals("DD")) + { + sqlCPBJ = "XLXSBJDMX_CPBJ/(1+:pUpdCPBJ/100.0)"; + sqlBJJE = string.Format("RoundFix(XLXSBJDMX_BJSL*RoundFix((XLXSBJDMX_CPBJ/(1+:pUpdCPBJ/100.0))/{0},0)*{0}+XLXSBJDMX_TZBJJE,2)", sCPBJBLXSWS); + } + else + { + sqlCPBJ = "XLXSBJDMX_CPBJ*(1-:pUpdCPBJ/100.0)"; + sqlBJJE = string.Format("RoundFix(XLXSBJDMX_BJSL*RoundFix((XLXSBJDMX_CPBJ*(1-:pUpdCPBJ/100.0))/{0},0)*{0}+XLXSBJDMX_TZBJJE,2)", sCPBJBLXSWS); + } + SQL.Clear(); + SQL.Add("update XLXSBJDMX set "); + SQL.Add(string.Format("XLXSBJDMX_CPBJ=RoundFix(" + sqlCPBJ + "/{0},0)*{0},", sCPBJBLXSWS));//这里应不需要按CMISproConvert.StrToInt(sCPBJMRXSWS)保留小数位数 + SQL.Add(string.Format("XLXSBJDMX_TZCPBJ=RoundFix(case when XLXSBJDMX_TZQCPBJ=0 then 0 else 100*(RoundFix(" + sqlCPBJ + "/{0},0)*{0}-XLXSBJDMX_TZQCPBJ)/XLXSBJDMX_TZQCPBJ end,15),", sCPBJBLXSWS)); + SQL.Add(string.Format("XLXSBJDMX_TZQBJJE=RoundFix(XLXSBJDMX_BJSL*(RoundFix(" + sqlCPBJ + "/{0},0)*{0}),2),", sCPBJBLXSWS)); + SQL.Add(" XLXSBJDMX_BJXJKD = 0, XLXSBJDMX_BJXJJJ = 0, "); + SQL.Add("XLXSBJDMX_BJJE=" + sqlBJJE + ","); + if (sJCLLX.Equals("1"))//表价价差率公式 + { + SQL.Add("XLXSBJDMX_JGBBJJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + "-XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); + SQL.Add(string.Format("XLXSBJDMX_JGBBJJCE =RoundFix((" + sqlBJJE + " - RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2))/{0},0)*{0}, ", sCPBJBLXSWS)); + } + else if (sJCLLX.Equals("2")) + { + SQL.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,"); + SQL.Add(string.Format("XLXSBJDMX_JGBBJJCE =RoundFix((RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)-" + sqlBJJE + ")/{0},0)*{0}, ", sCPBJBLXSWS)); + } + else if (sJCLLX.Equals("3")) + { + SQL.Add("XLXSBJDMX_JGBBJJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); + SQL.Add("XLXSBJDMX_JGBBJJCE =0, "); + } + else if (sJCLLX.Equals("4")) + { + SQL.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,"); + SQL.Add(string.Format("XLXSBJDMX_JGBBJJCE =RoundFix((" + sqlBJJE + " - RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2))/{0},0)*{0}, ", sCPBJBLXSWS)); + } + + else + { + SQL.Add("XLXSBJDMX_JGBBJJCL=0,"); + SQL.Add("XLXSBJDMX_JGBBJJCE=0,"); + } + if (sLJJCLLX.Equals("1"))//料价价差率公式 + { + SQL.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")) + { + SQL.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")) + { + SQL.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")) + { + SQL.Add("XLXSBJDMX_CLCBJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); + } + else + { + SQL.Add("XLXSBJDMX_CLCBJCL=0,"); + } + SQL.Add("XLXSBJDMX_BJTJCZ = 'BJXFJS',"); + SQL.Add("XLXSBJDMX_CLCBJCLSDBZ='N'"); + SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID "); + if (!sBJDXHList.Trim().Equals("")) + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + SQL.Add(" and XLXSBJDMX_BJSDBZ<>'Y'");//跳过报价锁定为Y的明细数据 + SQL.ParamByName("pUpdCPBJ").Value = CMISproConvert.StrToFloat(sBJXF); + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + dberp.CommitTrans(); + } + catch (Exception ex) + { + ShowMessage("批量调价-下浮出现错误,请联系系统管理员!" + ex); + dberp.RollbackTrans(); + } + + btnRefreshDRBJDMX_Click(null, null); + } + + //表价价差率 + protected void btnRefreshBJJCL_Click(object sender, EventArgs e) + { + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); + + string sBJDID = txtBJDID.Text.Trim(); + string sJCLLX = bjflxx.XLXSBJFL_BJJCLLX; + string sLJJCLLX = bjflxx.XLXSBJFL_LJJCLLX; + string sCPBJMRXSWS = bjflxx.XLXSBJFL_CPBJMRXSWS; + string sCPBJBLXSWS = Math.Pow(10, -1 * CMISproConvert.StrToFloat(sCPBJMRXSWS)).ToString("F9"); + string[] sTZZ = txtTZZ.Value.Split('|'); + if (sTZZ.Length != 3) + { + return; + } + // + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + + int tmpXSWS = string.IsNullOrEmpty(GetOption(100860000, "BJU002")) ? 5 : CMISproConvert.StrToInt(GetOption(100860000, "BJU002")); + if (tmpXSWS < 0) + { + tmpXSWS = 0; + } + else if (tmpXSWS > 8) + { + tmpXSWS = 8; + } + + string sBJDXHList = ""; + if (txtPLSZAll.Value.Trim().Equals("N"))//调价范围:N|勾选记录 + { + if (!(grdXLBJDMX.CheckBox && !String.IsNullOrEmpty(grdXLBJDMX.CheckedRows))) + { + return; + } + string[] sTempArr = grdXLBJDMX.CheckedRows.Split(new char[] { ',' }); + + foreach (string sIndex in sTempArr) + { + int iRowIndex = CMISproConvert.StrToInt(sIndex.Trim()); + string sBJDXH = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XH", iRowIndex); + if (!sBJDXH.Equals("") && !sBJDXH.Equals("0")) + { + sBJDXHList += sBJDXH + ","; + } + } + sBJDXHList = sBJDXHList.TrimEnd(','); + } + + try + { + dberp.BeginTrans(); + string sqlBJJE = "0"; + string sYZZ = ""; + //仅调整外购产品 + bool bTZWGCP = sTZZ[2].Trim().Equals("Y"); + if (!sTZZ[0].Trim().Equals("BJ")) + { + sYZZ = string.Format("a.XLXSBJDYZZ0_YZZ{0}", sTZZ[0].Trim().Replace("BJ", "")); + } + else + { + sYZZ = "XLXSBJDMX_JGBBJJCL"; + } + + //cbxBJJCLLX.Items.Add(new ListItem("(调整后报价金额-表价金额)/调整后报价金额*100", "1")); + //cbxBJJCLLX.Items.Add(new ListItem("(表价金额-调整后报价金额)/表价金额*100", "2")); + //cbxBJJCLLX.Items.Add(new ListItem("表价金额/调整后报价金额*100", "3")); + if (sJCLLX.Equals("1")) + { + sqlBJJE = "RoundFix(case when (:pUpdCLCBLRL + " + sYZZ + ") = 100 or XLXSBJDMX_BJSL=0 then 0 else XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL/(1- (:pUpdJGBBJJCL + " + sYZZ + ")/100.0) end, 2)"; + } + else if (sJCLLX.Equals("2")) + { + sqlBJJE = "RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL*(1- (:pUpdJGBBJJCL + " + sYZZ + ")/100.0), 2)"; + } + else if (sJCLLX.Equals("3")) + { + sqlBJJE = "RoundFix(case when (:pUpdJGBBJJCL + " + sYZZ + ") = 0 then 0 else XLXSBJDMX_JGBBJ/((:pUpdJGBBJJCL + " + sYZZ + ")/100.0) end, 2)"; + } + else if (sJCLLX.Equals("4")) + { + sqlBJJE = "RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL*(1+ (:pUpdJGBBJJCL + " + sYZZ + ")/100.0), 2)"; + } + else + { + sqlBJJE = "0"; + } + SQL.Add(" update XLXSBJDMX set "); + SQL.Add(" XLXSBJDMX_JGBBJJCL = :pUpdJGBBJJCL + " + sYZZ + ","); + SQL.Add(" XLXSBJDMX_TZQBJJE=RoundFix(" + sqlBJJE + " - XLXSBJDMX_TZBJJE,2),"); + SQL.Add(" XLXSBJDMX_CPBJ=case when XLXSBJDMX_BJSL = 0 then 0 else RoundFix((" + sqlBJJE + " - XLXSBJDMX_TZBJJE)/XLXSBJDMX_BJSL," + (CMISproConvert.StrToInt(sCPBJMRXSWS) > tmpXSWS ? CMISproConvert.StrToInt(sCPBJMRXSWS) : tmpXSWS) + " ) end, ");//保留精度高的 + SQL.Add(" XLXSBJDMX_TZCPBJ=RoundFix(case when XLXSBJDMX_TZQCPBJ=0 or XLXSBJDMX_BJSL = 0 then 0 else 100*((" + sqlBJJE + " - XLXSBJDMX_TZBJJE)/XLXSBJDMX_BJSL-XLXSBJDMX_TZQCPBJ)/XLXSBJDMX_TZQCPBJ end,15),"); + SQL.Add(" XLXSBJDMX_BJJE=" + sqlBJJE + ","); + if (sJCLLX.Equals("1"))//表价价差率公式 + { + SQL.Add("XLXSBJDMX_JGBBJJCE =RoundFix(" + sqlBJJE + "-RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)," + tmpXSWS + "), "); + } + else if (sJCLLX.Equals("2")) + { + SQL.Add("XLXSBJDMX_JGBBJJCE =RoundFix(RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)-" + sqlBJJE + "," + tmpXSWS + "), "); + } + else if (sJCLLX.Equals("3")) + { + SQL.Add("XLXSBJDMX_JGBBJJCE=0,"); + } + else if (sJCLLX.Equals("4")) + { + SQL.Add("XLXSBJDMX_JGBBJJCE =RoundFix(" + sqlBJJE + " - RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)," + tmpXSWS + "), "); + } + else + { + SQL.Add("XLXSBJDMX_JGBBJJCE=0,"); + } + SQL.Add("XLXSBJDMX_BJTJCZ = 'BJJCLTZ',"); + if (sLJJCLLX.Equals("1"))//料价价差率公式 + { + SQL.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")) + { + SQL.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")) + { + SQL.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")) + { + SQL.Add("XLXSBJDMX_CLCBJCL =case when (" + sqlBJJE + ")=0.0 then 0.0 else RoundFix(100*((XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end"); + } + else + { + SQL.Add("XLXSBJDMX_CLCBJCL=0"); + } + + SQL.Add(" from "); + SQL.Add(" ( "); + SQL.Add(" SELECT XLXSBJDYZZ0_BJDID,XLXSBJDYZZ0_XH as XH,"); + SQL.Add(" XLXSBJDYZZ0_YZZ01,XLXSBJDYZZ0_YZZ02,XLXSBJDYZZ0_YZZ03,XLXSBJDYZZ0_YZZ04,XLXSBJDYZZ0_YZZ05, "); + SQL.Add(" XLXSBJDYZZ0_YZZ06,XLXSBJDYZZ0_YZZ07,XLXSBJDYZZ0_YZZ08,XLXSBJDYZZ0_YZZ09,XLXSBJDYZZ0_YZZ10, "); + SQL.Add(" XLXSBJDYZZ0_YZZ11,XLXSBJDYZZ0_YZZ12,XLXSBJDYZZ0_YZZ13,XLXSBJDYZZ0_YZZ14,XLXSBJDYZZ0_YZZ15, "); + SQL.Add(" XLXSBJDYZZ0_YZZ16,XLXSBJDYZZ0_YZZ17,XLXSBJDYZZ0_YZZ18,XLXSBJDYZZ0_YZZ19,XLXSBJDYZZ0_YZZ20 "); + SQL.Add(" FROM XLXSBJDYZZ0 "); + SQL.Add(" LEFT JOIN XLXSBJDMX ON XLXSBJDMX_BJDID = XLXSBJDYZZ0_BJDID AND XLXSBJDMX_XH = XLXSBJDYZZ0_XH "); + SQL.Add(" WHERE 1 = 1 "); + SQL.Add(" and XLXSBJDMX_BJDID=XLXSBJDYZZ0_BJDID "); + SQL.Add(" and XLXSBJDMX_XH=XLXSBJDYZZ0_XH "); + SQL.Add(" and XLXSBJDYZZ0_BJDID=:pBJDID "); + SQL.Add(" and XLXSBJDMX_BJSDBZ<>'Y'");//跳过报价锁定为Y的明细数据 + if (bTZWGCP)//仅调整外购产品 + { + SQL.Add(" and isnull(XLXSBJDMX_WGCPBZ, 'N') = 'Y' "); + } + SQL.Add(" ) a "); + SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID "); + + SQL.Add(" and a.XH=XLXSBJDMX_XH "); + if (!sBJDXHList.Trim().Equals("")) + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + SQL.Add(" and XLXSBJDMX_BJSDBZ<>'Y'");//跳过报价锁定为Y的明细数据 + if (bTZWGCP)//仅调整外购产品 + { + SQL.Add(" and isnull(XLXSBJDMX_WGCPBZ, 'N') = 'Y' "); + } + SQL.ParamByName("pUpdJGBBJJCL").Value = CMISproConvert.StrToFloat(sTZZ[1]); + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + + string sqlBJJE2 = string.Format("(RoundFix(RoundFix(XLXSBJDMX_CPBJ/{0},0)*{0}*XLXSBJDMX_BJSL,2)+XLXSBJDMX_TZBJJE)", sCPBJBLXSWS); + SQL.Clear(); + SQL.Add(" update XLXSBJDMX set "); + SQL.Add(string.Format(" XLXSBJDMX_CPBJ=RoundFix(XLXSBJDMX_CPBJ/{0},0)*{0},", sCPBJBLXSWS)); + SQL.Add(string.Format(" XLXSBJDMX_TZCPBJ=case when XLXSBJDMX_TZQCPBJ=0 then 0 else 100*RoundFix((RoundFix(XLXSBJDMX_CPBJ/{0},0)*{0}-XLXSBJDMX_TZQCPBJ)/XLXSBJDMX_TZQCPBJ,15) end,", sCPBJBLXSWS)); + SQL.Add(string.Format(" XLXSBJDMX_TZQBJJE=RoundFix(RoundFix(XLXSBJDMX_CPBJ/{0},0)*{0}*XLXSBJDMX_BJSL,2),", sCPBJBLXSWS)); + SQL.Add(" XLXSBJDMX_BJXJKD = 0, XLXSBJDMX_BJXJJJ = 0, "); + SQL.Add(" XLXSBJDMX_BJJE=" + sqlBJJE2 + ","); + if (sJCLLX.Equals("1"))//表价价差率公式 + { + SQL.Add("XLXSBJDMX_JGBBJJCL =case when " + sqlBJJE2 + "=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE2 + "-XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(" + sqlBJJE2 + "),2) end,"); + SQL.Add("XLXSBJDMX_JGBBJJCE =RoundFix(" + sqlBJJE2 + "-RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)," + tmpXSWS + "), "); + } + else if (sJCLLX.Equals("2")) + { + SQL.Add("XLXSBJDMX_JGBBJJCL =case when XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL-" + sqlBJJE2 + ")/(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL),2) end,"); + SQL.Add("XLXSBJDMX_JGBBJJCE =RoundFix(RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)-" + sqlBJJE2 + "," + tmpXSWS + "), "); + } + else if (sJCLLX.Equals("3")) + { + SQL.Add("XLXSBJDMX_JGBBJJCL =case when " + sqlBJJE2 + "=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(" + sqlBJJE2 + "),2) end,"); + SQL.Add("XLXSBJDMX_JGBBJJCE =0, "); + } + else if (sJCLLX.Equals("4")) + { + SQL.Add("XLXSBJDMX_JGBBJJCL =case when XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE2 + " - XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL),2) end,"); + SQL.Add("XLXSBJDMX_JGBBJJCE =RoundFix(" + sqlBJJE2 + " - RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)," + tmpXSWS + "), "); + } + else + { + SQL.Add("XLXSBJDMX_JGBBJJCL=0,"); + SQL.Add("XLXSBJDMX_JGBBJJCE=0,"); + } + SQL.Add("XLXSBJDMX_BJTJCZ = 'BJJCLTZ',"); + if (sLJJCLLX.Equals("1"))//料价价差率公式 + { + SQL.Add("XLXSBJDMX_CLCBJCL =case when " + sqlBJJE2 + "=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE2 + "-XLXSBJDMX_CLCB*XLXSBJDMX_BJSL)/(" + sqlBJJE2 + "),2) end"); + } + else if (sLJJCLLX.Equals("2")) + { + SQL.Add("XLXSBJDMX_CLCBJCL =case when " + sqlBJJE2 + "=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE2 + "-XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL)/(" + sqlBJJE2 + "),2) end"); + } + else if (sLJJCLLX.Equals("3")) + { + SQL.Add("XLXSBJDMX_CLCBJCL =case when XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE2 + "-XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL)/(XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL),2) end"); + } + else if (sLJJCLLX.Equals("4")) + { + SQL.Add("XLXSBJDMX_CLCBJCL =case when " + sqlBJJE2 + "=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL)/(" + sqlBJJE2 + "),2) end"); + } + else + { + SQL.Add("XLXSBJDMX_CLCBJCL=0"); + } + + SQL.Add(" from XLXSBJDMX"); + SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID "); + if (!sBJDXHList.Trim().Equals("")) + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + SQL.Add(" and XLXSBJDMX_BJSDBZ<>'Y'");//跳过报价锁定为Y的明细数据 + if (bTZWGCP)//仅调整外购产品 + { + SQL.Add(" and isnull(XLXSBJDMX_WGCPBZ, 'N') = 'Y' "); + } + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + dberp.CommitTrans(); + } + catch (Exception ex) + { + ShowMessage("批量调价-表价价差率出现错误,请联系系统管理员!" + ex); + dberp.RollbackTrans(); + } + btnRefreshDRBJDMX_Click(null, null); + } + + //料价价差率 + //注意----跳过表价不为0的记录 + protected void btnRefreshLJJCL_Click(object sender, EventArgs e) + { + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); + + string sBJDID = txtBJDID.Text.Trim(); + string sJCLLX = bjflxx.XLXSBJFL_BJJCLLX; + string sLJJCLLX = bjflxx.XLXSBJFL_LJJCLLX; + string sZDXJJCLLX = bjflxx.XLXSBJFL_ZDXJJCLLX; + string sJYF = bjflxx.XLXSBJFL_JYF; + string sYFWLID = bjflxx.XLXSBJFL_YFWLID; + string sBJHYF = bjflxx.XLXSBJFL_BJHYF; + string sBJFLID = cbxBJFLID.SelectedValue.Trim(); + string sCPBJMRXSWS = bjflxx.XLXSBJFL_CPBJMRXSWS; + + string[] sTZZ = txtTZZ.Value.Split('|'); + if (sTZZ.Length != 5) + { + return; + } + string sSZFW = sTZZ[0].Trim();//Y整单记录、N勾选记录 + string sCZLM = sTZZ[1].Trim(); + double dCLCBLR = CMISproConvert.StrToFloat(sTZZ[2]); + string sCLCBLX = sTZZ[3].Trim();//材料成本类型:相对值/固定值 + //调整范围 + string sTJFW = sTZZ[4].Trim(); + bool bWBJ = sTJFW.Split(',')[0].Equals("Y") ? true : false; + bool bFWG = sTJFW.Split(',')[1].Equals("Y") ? true : false; + + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + string sBJDXHList = ""; + if (sSZFW.Equals("N"))//调价范围:N|勾选记录 + { + if (!(grdXLBJDMX.CheckBox && !String.IsNullOrEmpty(grdXLBJDMX.CheckedRows))) + { + return; + } + string[] sTempArr = grdXLBJDMX.CheckedRows.Split(new char[] { ',' }); + foreach (string sIndex in sTempArr) + { + int iRowIndex = CMISproConvert.StrToInt(sIndex.Trim()); + string sBJDXH = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XH", iRowIndex); + if (!sBJDXH.Equals("") && !sBJDXH.Equals("0")) + { + sBJDXHList += sBJDXH + ","; + } + } + sBJDXHList = sBJDXHList.TrimEnd(','); + } + + int tmpXSWS = string.IsNullOrEmpty(GetOption(100860000, "BJU002")) ? 5 : CMISproConvert.StrToInt(GetOption(100860000, "BJU002")); + if (tmpXSWS < 0) + tmpXSWS = 0; + else if (tmpXSWS > 8) + tmpXSWS = 8; + string sErrorMsg = ""; + PLTJ_LJJCL(sBJDXHList, 0, sBJDID, sBJFLID, dCLCBLR, sCLCBLX, sCZLM, sJCLLX, sLJJCLLX, sZDXJJCLLX, sJYF, sYFWLID, sBJHYF, sCPBJMRXSWS, tmpXSWS, GetOption(100860000, "BJU002"), bWBJ, bFWG, ref sErrorMsg); + if (!sErrorMsg.Equals("")) + { + ShowMessage(sErrorMsg); + } + btnOnlyRefresh_Click(null, null); + } + + protected void btnRefreshBJXJ_Click(object sender, EventArgs e) + { + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); + + string sBJDID = txtBJDID.Text.Trim(); + string sJCLLX = bjflxx.XLXSBJFL_BJJCLLX; + string sLJJCLLX = bjflxx.XLXSBJFL_LJJCLLX; + string sCPBJMRXSWS = bjflxx.XLXSBJFL_CPBJMRXSWS; + string sZDXJJCLLX = bjflxx.XLXSBJFL_ZDXJJCLLX; + string sJYF = bjflxx.XLXSBJFL_JYF; + string sYFWLID = bjflxx.XLXSBJFL_YFWLID; + string sBJHYF = bjflxx.XLXSBJFL_BJHYF; + + string[] sTZZ = txtTZZ.Value.Split('|'); + if (sTZZ.Length != 4) + { + return; + } + string sSZFW = sTZZ[0].Trim();//Y整单记录、N勾选记录 + double dKDYZ = CMISproConvert.StrToFloat(sTZZ[1].Trim(), 0); + double dJJYZ = CMISproConvert.StrToFloat(sTZZ[2].Trim(), 0); + //调整范围 + string sTJFW = sTZZ[3].Trim(); + + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + string sBJDXHList = ""; + if (sSZFW.Equals("N"))//调价范围:N|勾选记录 + { + if (!(grdXLBJDMX.CheckBox && !String.IsNullOrEmpty(grdXLBJDMX.CheckedRows))) + { + return; + } + string[] sTempArr = grdXLBJDMX.CheckedRows.Split(new char[] { ',' }); + foreach (string sIndex in sTempArr) + { + int iRowIndex = CMISproConvert.StrToInt(sIndex.Trim()); + string sBJDXH = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XH", iRowIndex); + if (!sBJDXH.Equals("") && !sBJDXH.Equals("0")) + { + sBJDXHList += sBJDXH + ","; + } + } + sBJDXHList = sBJDXHList.TrimEnd(','); + } + + string sErrorMsg = ""; + PLTJ_BJXJ(sBJDXHList, 0, sBJDID, cbxBJFLID.SelectedValue.Trim(), sJCLLX, sLJJCLLX, sZDXJJCLLX, sJYF, sYFWLID, sBJHYF, sCPBJMRXSWS, GetOption(100860000, "BJU002"), sTJFW, dKDYZ, dJJYZ, ref sErrorMsg); + if (!sErrorMsg.Equals("")) + { + ShowMessage(sErrorMsg); + } + btnOnlyRefresh_Click(null, null); + } + + + //批量调整标准 + protected void btnRefreshPLTZBZ_Click(object sender, EventArgs e) + { + string sBJDXHList = ""; + if (txtPLSZAll.Value.Trim().Equals("N"))//调价范围:N|勾选记录 + { + if (!(grdXLBJDMX.CheckBox && !String.IsNullOrEmpty(grdXLBJDMX.CheckedRows))) + { + return; + } + string[] sTempArr = grdXLBJDMX.CheckedRows.Split(new char[] { ',' }); + + foreach (string sIndex in sTempArr) + { + int iRowIndex = CMISproConvert.StrToInt(sIndex.Trim()); + string sBJDXH = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XH", iRowIndex); + if (!sBJDXH.Equals("") && !sBJDXH.Equals("0")) + { + sBJDXHList += sBJDXH + ","; + } + } + sBJDXHList = sBJDXHList.TrimEnd(','); + } + UpdateBJCPByXLBZID(txtBJDID.Text.Trim(), sBJDXHList, XLBJDUtils.ISDZBZ(txtPLSZBZID.Value.Trim()) ? "Y" : "N"); + } + + //批量调整客户物料编码 + protected void btnKHWL_Click(object sender, EventArgs e) + { + if (!(grdXLBJDMX.CheckBox && !String.IsNullOrEmpty(grdXLBJDMX.CheckedRows))) + { + ShowMessage("请勾选记录!"); + return; + } + txtPLSZAll.Value = "N"; + TPageParams pageParams = new TPageParams(); + pageParams.UrlPath = "XLBJD_MX_BJCPInfo.aspx"; + pageParams.AddString("PLSZAll", txtPLSZAll.Value); + pageParams.AddString("txtPLSZKHWLID", txtPLSZKHWLID.ClientID); + pageParams.AddString("BJDID", txtBJDID.Text.Trim()); + + //是否整单调整 + pageParams.AddString("txtPLSZAllCID", txtPLSZAll.ClientID); + pageParams.AddString("btnRefreshKHWL", btnRefreshKHWL.ClientID); + OpenDialog(pageParams); + } + + protected void btnRefreshKHWL_Click(object sender, EventArgs e) + { + string sBJDXHList = ""; + if (txtPLSZAll.Value.Trim().Equals("N"))//调价范围:N|勾选记录 + { + if (!(grdXLBJDMX.CheckBox && !String.IsNullOrEmpty(grdXLBJDMX.CheckedRows))) + { + return; + } + string[] sTempArr = grdXLBJDMX.CheckedRows.Split(new char[] { ',' }); + + foreach (string sIndex in sTempArr) + { + int iRowIndex = CMISproConvert.StrToInt(sIndex.Trim()); + string sBJDXH = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XH", iRowIndex); + if (!sBJDXH.Equals("") && !sBJDXH.Equals("0")) + { + sBJDXHList += sBJDXH + ","; + } + } + sBJDXHList = sBJDXHList.TrimEnd(','); + } + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + + + SQL.Clear(); + SQL.Add("update XLXSBJDMX set "); + SQL.Add(" XLXSBJDMX_KHWLID= :pXLXSBJDMX_KHWLID, "); + SQL.Add(" XLXSBJDMX_WHR= :pWHR, XLXSBJDMX_WHRID=:pWHRID,XLXSBJDMX_WHSJ = :pWHSJ "); + SQL.Add(" where 1 = 1 and XLXSBJDMX_BJDID=:pXLXSBJDMX_BJDID "); + if (!sBJDXHList.Trim().Equals("")) + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + SQL.ParamByName("pXLXSBJDMX_BJDID").Value = txtBJDID.Text.Trim(); + SQL.ParamByName("pXLXSBJDMX_KHWLID").Value = txtPLSZKHWLID.Value.Trim(); + SQL.ParamByName("pWHR").Value = CurSession.UserName; + SQL.ParamByName("pWHRID").Value = CurSession.UserId; + SQL.ParamByName("pWHSJ").Value = DateTime.Now; + dberp.ExecSQL(SQL); + + + + } + + + protected void btnDRCS_Click(object sender, EventArgs e) + { + TPageParams pageParams = new TPageParams(); + pageParams.CallAction = TPageCallAction.pcaBrowse; + pageParams.UrlPath = "XLXSBJ_AFZNRDR.aspx"; + pageParams.AddString("BJDID", txtBJDID.Text.Trim()); + pageParams.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); + pageParams.AddString("BJU003", GetOption(100860000, "BJU003")); + pageParams.AddString("BJU002", GetOption(100860000, "BJU002")); + pageParams.AddString("BJU018", GetOption(100860000, "BJU018")); + OpenModuleDialog(100860125, pageParams, btnRefreshOper.ClientID); + } + + + protected void btnBJLR_Click(object sender, EventArgs e) + { + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); + string sHidJSLMList = XLBJDUtils.GetHidJSLMList(cbxBJFLID.SelectedValue.Trim(), IsXJY.Value.Equals("Y"), IsSJY.Value.Equals("Y"), IsHJY.Value.Equals("Y")); + + TPageParams pageParams = new TPageParams(); + pageParams.CallAction = TPageCallAction.pcaBrowse; + pageParams.UrlPath = "XLBJD_BJLRList.aspx"; + pageParams.AddString("BJDID", txtBJDID.Text.Trim()); + + pageParams.AddString("JCLLX", bjflxx.XLXSBJFL_BJJCLLX); + pageParams.AddString("LJJCLLX", bjflxx.XLXSBJFL_LJJCLLX); + pageParams.AddString("XSBJDHQLJ", bjflxx.XSBJDHQLJ() ? "Y" : "N"); + pageParams.AddString("XSLJ", bjflxx.XSLJ() ? "Y" : "N"); + pageParams.AddString("XSJCL", bjflxx.XSJCL() ? "Y" : "N"); + pageParams.AddString("XSLJJCL", bjflxx.XSLJJCL() ? "Y" : "N"); + pageParams.AddString("XSJSJ", bjflxx.XSJSJ() ? "Y" : "N"); + pageParams.AddString("XSJGBBJJCE", bjflxx.XSJGBBJJCEChecked()?"Y":"N"); + pageParams.AddString("XSZDXJ", bjflxx.XLXSBJFL_XSZDXJ); + pageParams.AddString("ZDXJJCLLX", bjflxx.XLXSBJFL_ZDXJJCLLX); + pageParams.AddString("JGBBJBM", bjflxx.XLXSBJFL_JGBBJBM); + pageParams.AddString("BJDHQLJBM", bjflxx.XLXSBJFL_BJDHQLJBM); + pageParams.AddString("BJBM", bjflxx.XLXSBJFL_BJBM); + //pageParams.AddString("BJLJJCL", bjflxx.XLXSBJFL_BJLJJCLLX); + pageParams.AddString("XSBJLJJCL", bjflxx.XSBJLJJCL()?"Y":"N"); + pageParams.AddString("HidJSLMList", sHidJSLMList); + OpenModuleDialog(100860008, pageParams); + } + + + + protected void btnZDFX_DropDown(object sender, EventArgs e) + { + btnZDFX.Nodes.Clear(); + + int iUMID = 100860168; + CMISproSession tSession = CMISproSessionManager.GetCurrentSession(); + UserRight UR = OpRightUtils.GetUserRight(tSession.UserId, iUMID); + if (UR.Open) + btnZDFX.Nodes.Add(new gtTreeNode("TBYSZDFX", "投标预审撞单分析")); + MenuAreaUpdate(); + } + + + + + + + + + + + protected void btnZDFX_Click(object sender, EventArgs e) + { + TPageParams pageParams = new TPageParams(); + pageParams.UrlPath = "ZDFXList.aspx"; + pageParams.AddString("BJDID", txtBJDID.Text.Trim()); + OpenModuleDialog(100860068, pageParams,btnRefreshCLHQTZ.ClientID); + } + protected void btnTBYSZDFX_MenuItemClick(object sender, string value) + { + TPageParams pageParams = new TPageParams(); + pageParams.UrlPath = "TBYS_ZDFXList.aspx"; + pageParams.AddString("BJDID", txtBJDID.Text.Trim()); + OpenModuleDialog(100860168, pageParams, btnRefreshCLHQTZ.ClientID); + } + + + + protected void btnBJFK_Click(object sender, EventArgs e) + { + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); + + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Add(" select AMID,AMNAME from ACTIVEMODULE "); + SQL.Add(" where AMSTDMD=100860046 "); + SQL.Add(" order by AMID "); + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + string sUFC_MDID = ds.Tables[0].Rows[0][0].ToString().Trim(); + string path = "../components/"; + ModuleInfo MdInfo = MacInfoUtils.GetModuleInfo(CMISproConvert.StrToInt(sUFC_MDID)); + if (MdInfo != null && MdInfo.MacInfo != null) + { + path = path + MdInfo.MacInfo.ClassId + "/" + MdInfo.PageFile; + } + else + { + return; + } + TPageParams pageParams = new TPageParams(); + pageParams.UrlPath = path; + pageParams.AddString("BJDID", txtBJDID.Text.Trim()); + OpenModuleDialog(CMISproConvert.StrToInt(sUFC_MDID), pageParams); + } + else + { + TPageParams pageParams = new TPageParams(); + pageParams.UrlPath = "CXBJDList.aspx"; + pageParams.AddString("BJDID", txtBJDID.Text.Trim()); + pageParams.AddString("BJBM", bjflxx.XLXSBJFL_BJBM); + string sFunction = "function CallBackFun() {document.getElementById('" + btnReLoad.ClientID + "').click();}"; + OpenModuleDialogWithCallBack(100860046, pageParams, "CallBackFun", sFunction); + } + } + + + //重新加载记录 + protected void btnReLoad_Click(object sender, EventArgs e) + { + //txtBJDID.Text = sBJDID;--打开指定记录 + InitQueryString(); + ControlState = TControlState.ctsBrowse; + LoadRecord(); + RefreshForm(); + SetControlState(); + SetComboxItems(); + MenuAreaUpdate(); + FormAreaUpdate(); + } + + //protected void btnRefreshBJLR_Click(object sender, EventArgs e) + //{ + // entity.BJDID = txtBJDID.Text.Trim(); + // entity.XLXSBJDMX.BJDID = txtBJDID.Text.Trim(); + // entity.XLXSBJDMX.Query(); + // grdXLBJDMX.DataSource = entity.XLXSBJDMX.Entites; + // grdXLBJDMX.DataBind(); + // grdXLBJDMX.SaveDataInfo.SaveDataFlag = DSaveDataFlag.sdNormal; + // LoadRecord(); + // FormAreaUpdate(); + //} + + //bHSBZ:表价含税标志 + public static void GetFromJGB(string sXLXHID, string sXLGGID, string sST, string sDYDJ, string sJGBID, string sJGCIDS, bool bHSBZ, string sBJU018, ref string sCPJJ, ref string sJJ, ref string sCLCB) + + { + sDYDJ = sDYDJ.Equals("") ? " " : sDYDJ; + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + sql.Add(" select XLXSJGBMX_HSBJ,XLXSJGBMX_HSJJ,XLXSJGBMX_WSBJ,XLXSJGBMX_WSJJ,XLXSJGBMX_HSBJM,XLXSJGBMX_HSJJM,XLXSJGBMX_WSBJM,XLXSJGBMX_WSJJM,XLXSJGBMX_JLDW,XLXSJGB_TJYS,XLXSJGB_JGBIDS,XLXSJGBMX_SYXH "); + sql.Add(" from XLXSJGBMX "); + //sql.Add(" left join XLXSJGB on XLXSJGB_MXBH='JGB' and XLXSJGB_JGBID=XLXSJGBMX_JGBID"); + if (!sJGCIDS.Trim().Equals(""))//组合产品目录价格表报价 + sql.Add(" left join XLXSJGB on XLXSJGB_MXBH='JGC' and XLXSJGB_JGBID=XLXSJGBMX_JGBID"); + else + { + sql.Add(" left join XLXSJGB on XLXSJGB_MXBH='JGB' and XLXSJGB_JGBID=XLXSJGBMX_JGBID"); + } + sql.Add(" where XLXSJGBMX_XLXHID=:pTZ and XLXSJGBMX_XLGGID=:pXLGGID and XLXSJGBMX_XLBZID=:pBZ and isnull(XLXSJGBMX_DYDJID,' ')=:pDYDJ"); + if (!sJGCIDS.Trim().Equals(""))//组合产品目录价格表报价 + sql.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGCIDS.Trim())); + else + { + sql.Add(" and XLXSJGBMX_JGBID = :pJGBID "); + sql.ParamByName("pJGBID").Value = sJGBID.Trim(); + } + sql.Add(" order by XLXSJGBMX_JGBID,XLXSJGBMX_XH"); + sql.ParamByName("pTZ").Value = sXLXHID; + sql.ParamByName("pXLGGID").Value = sXLGGID; + sql.ParamByName("pBZ").Value = sST; + sql.ParamByName("pDYDJ").Value = sDYDJ; + DataSet ds = dberp.OpenDataSet(sql); + if (ds.Tables[0].Rows.Count > 0) + { + string sJLDW = ds.Tables[0].Rows[0]["XLXSJGBMX_JLDW"].ToString().Trim(); + if (sBJU018.Equals("Y") && XLBJDUtils.sJQCDJLDWList.Contains(sJLDW.ToUpper())) + { + if (bHSBZ) + { + sJJ = ds.Tables[0].Rows[0]["XLXSJGBMX_HSJJM"].ToString().Trim(); + sCPJJ = ds.Tables[0].Rows[0]["XLXSJGBMX_HSBJM"].ToString().Trim(); + } + else + { + sJJ = ds.Tables[0].Rows[0]["XLXSJGBMX_WSJJM"].ToString().Trim(); + sCPJJ = ds.Tables[0].Rows[0]["XLXSJGBMX_WSBJM"].ToString().Trim(); + } + } + else + { + if (bHSBZ) + { + sJJ = ds.Tables[0].Rows[0]["XLXSJGBMX_HSJJ"].ToString().Trim(); + sCPJJ = ds.Tables[0].Rows[0]["XLXSJGBMX_HSBJ"].ToString().Trim(); + } + else + { + sJJ = ds.Tables[0].Rows[0]["XLXSJGBMX_WSJJ"].ToString().Trim(); + sCPJJ = ds.Tables[0].Rows[0]["XLXSJGBMX_WSBJ"].ToString().Trim(); + } + } + + if (ds.Tables[0].Rows[0]["XLXSJGB_TJYS"].ToString().Trim().Equals("0") || ds.Tables[0].Rows[0]["XLXSJGB_TJYS"].ToString().Trim().Equals("1")) + { + if (CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSJGBMX_SYXH"].ToString().Trim()) == 0) + { + if (sBJU018.Equals("Y") && XLBJDUtils.sJQCDJLDWList.Contains(sJLDW.ToUpper())) + { + //成本价、出厂价价格表的基价即材料成本 + if (bHSBZ) + { + sCLCB = ds.Tables[0].Rows[0]["XLXSJGBMX_HSJJM"].ToString().Trim(); + } + else + { + sCLCB = ds.Tables[0].Rows[0]["XLXSJGBMX_WSJJM"].ToString().Trim(); + } + } + else + { + //成本价、出厂价价格表的基价即材料成本 + if (bHSBZ) + { + sCLCB = ds.Tables[0].Rows[0]["XLXSJGBMX_HSJJ"].ToString().Trim(); + } + else + { + sCLCB = ds.Tables[0].Rows[0]["XLXSJGBMX_WSJJ"].ToString().Trim(); + } + } + } + else + { + GetSYJGBCLCB(ds.Tables[0].Rows[0]["XLXSJGBMX_SYXH"].ToString().Trim(), sJGBID, sJGCIDS, bHSBZ, sBJU018, ref sCLCB); + } + } + else if (ds.Tables[0].Rows[0]["XLXSJGB_TJYS"].ToString().Trim().Equals("2")) + { + //区域价所依出厂价的基价即材料成本 + string sJGBIDS = ds.Tables[0].Rows[0]["XLXSJGB_JGBIDS"].ToString().Trim(); + + sql.Clear(); + sql.Add("select XLXSJGBMX_JGBID,XLXSJGBMX_HSJJ,XLXSJGBMX_WSJJ,XLXSJGBMX_HSJJM,XLXSJGBMX_WSJJM,XLXSJGBMX_JLDW "); + sql.Add("from XLXSJGBMX "); + sql.Add("where " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBIDS)); + sql.Add(" and XLXSJGBMX_XLXHID=:pXLXHID and XLXSJGBMX_XLGGID=:pXLGGID and XLXSJGBMX_XLBZID=:pXLBZID and isnull(XLXSJGBMX_DYDJID,' ')=:pDYDJID"); + sql.Add(" order by XLXSJGBMX_JGBID"); + sql.ParamByName("pXLXHID").Value = sXLXHID; + sql.ParamByName("pXLGGID").Value = sXLGGID; + sql.ParamByName("pXLBZID").Value = sST; + sql.ParamByName("pDYDJID").Value = sDYDJ.Trim().Equals("") ? " " : sDYDJ.Trim(); + DataSet dsJGBMX = dberp.OpenDataSet(sql); + if (dsJGBMX.Tables[0].Rows.Count > 0) + { + string sCCJLDW = dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_JLDW"].ToString().Trim(); + if (sBJU018.Equals("Y") && XLBJDUtils.sJQCDJLDWList.Contains(sCCJLDW.ToUpper())) + { + if (bHSBZ) + { + sCLCB = dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_HSJJM"].ToString().Trim(); + } + else + { + sCLCB = dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_WSJJM"].ToString().Trim(); + } + } + else + { + if (bHSBZ) + { + sCLCB = dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_HSJJ"].ToString().Trim(); + } + else + { + sCLCB = dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_WSJJ"].ToString().Trim(); + } + } + } + else + sCLCB = ""; + } + else if (ds.Tables[0].Rows[0]["XLXSJGB_TJYS"].ToString().Trim().Equals("3")) + { + //现厂价所依出厂价的基价即材料成本 + string sJGBIDS = ds.Tables[0].Rows[0]["XLXSJGB_JGBIDS"].ToString().Trim(); + double dHSBJ_JGBTJYS1 = 0; + double dHSJJ_JGBTJYS1 = 0; + double dWSBJ_JGBTJYS1 = 0; + double dWSJJ_JGBTJYS1 = 0; + + double dHSBJ_JGBTJYS3 = 0; + double dHSJJ_JGBTJYS3 = 0; + double dWSBJ_JGBTJYS3 = 0; + double dWSJJ_JGBTJYS3 = 0; + + //因素3报价产品 + if (sBJU018.Equals("Y") && XLBJDUtils.sJQCDJLDWList.Contains(sJLDW.ToUpper())) + { + dHSBJ_JGBTJYS3 = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSJGBMX_HSBJM"].ToString().Trim()); + dHSJJ_JGBTJYS3 = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSJGBMX_HSJJM"].ToString().Trim()); + dWSBJ_JGBTJYS3 = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSJGBMX_WSBJM"].ToString().Trim()); + dWSJJ_JGBTJYS3 = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSJGBMX_WSJJM"].ToString().Trim()); + } + else + { + dHSBJ_JGBTJYS3 = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSJGBMX_HSBJ"].ToString().Trim()); + dHSJJ_JGBTJYS3 = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSJGBMX_HSJJ"].ToString().Trim()); + dWSBJ_JGBTJYS3 = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSJGBMX_WSBJ"].ToString().Trim()); + dWSJJ_JGBTJYS3 = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSJGBMX_WSJJ"].ToString().Trim()); + } + + double dCLCB = 0; + //因素3型号加点对照产品没有清单 + if (CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSJGBMX_SYXH"].ToString().Trim()) == 0) + { + //根据因素3报价产品取因素1报价产品 + sql.Clear(); + sql.Add("select XLXSJGBMX_JGBID,XLXSJGBMX_HSJJ,XLXSJGBMX_WSJJ,XLXSJGBMX_HSBJ,XLXSJGBMX_WSBJ,XLXSJGBMX_HSBJM,XLXSJGBMX_HSJJM,XLXSJGBMX_WSBJM,XLXSJGBMX_WSJJM,XLXSJGBMX_JLDW "); + sql.Add("from XLXSJGBMX "); + sql.Add("where " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBIDS)); + sql.Add(" and XLXSJGBMX_XLXHID=:pXLXHID and XLXSJGBMX_XLGGID=:pXLGGID and XLXSJGBMX_XLBZID=:pXLBZID and isnull(XLXSJGBMX_DYDJID,' ')=:pDYDJID"); + sql.Add(" order by XLXSJGBMX_JGBID"); + sql.ParamByName("pXLXHID").Value = sXLXHID; + sql.ParamByName("pXLGGID").Value = sXLGGID; + sql.ParamByName("pXLBZID").Value = sST; + sql.ParamByName("pDYDJID").Value = sDYDJ.Trim().Equals("") ? " " : sDYDJ.Trim(); + DataSet dsJGBMX = dberp.OpenDataSet(sql); + if (dsJGBMX.Tables[0].Rows.Count > 0) + { + string sCCJLDW = dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_JLDW"].ToString().Trim(); + if (sBJU018.Equals("Y") && XLBJDUtils.sJQCDJLDWList.Contains(sCCJLDW.ToUpper())) + { + if (bHSBZ) + { + dHSBJ_JGBTJYS1 = CMISproConvert.StrToFloat(dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_HSBJM"].ToString().Trim()); + dHSJJ_JGBTJYS1 = CMISproConvert.StrToFloat(dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_HSJJM"].ToString().Trim()); + } + else + { + dWSBJ_JGBTJYS1 = CMISproConvert.StrToFloat(dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_WSBJM"].ToString().Trim()); + dWSJJ_JGBTJYS1 = CMISproConvert.StrToFloat(dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_WSJJM"].ToString().Trim()); + } + } + else + { + if (bHSBZ) + { + dHSBJ_JGBTJYS1 = CMISproConvert.StrToFloat(dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_HSBJ"].ToString().Trim()); + dHSJJ_JGBTJYS1 = CMISproConvert.StrToFloat(dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_HSJJ"].ToString().Trim()); + } + else + { + dWSBJ_JGBTJYS1 = CMISproConvert.StrToFloat(dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_WSBJ"].ToString().Trim()); + dWSJJ_JGBTJYS1 = CMISproConvert.StrToFloat(dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_WSJJ"].ToString().Trim()); + } + } + } + // + if (bHSBZ) + { + dCLCB = dHSJJ_JGBTJYS3 - dHSBJ_JGBTJYS1 + dHSJJ_JGBTJYS1; + } + else + { + dCLCB = dWSJJ_JGBTJYS3 - dWSBJ_JGBTJYS1 + dWSJJ_JGBTJYS1; + } + } + sCLCB = dCLCB.ToString().Trim(); + + } + } + else + { + sCPJJ = ""; + sJJ = ""; + sCLCB = ""; + } + } + + public static void GetSYJGBCLCB(string sJGBXH, string sJGBID, string sJGCIDS, bool bHSBZ, string sBJU018, ref string sCLCB) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + sql.Add(" select XLXSJGBMX_HSJJ,XLXSJGBMX_WSJJ,XLXSJGBMX_HSJJM,XLXSJGBMX_WSJJM,XLXSJGBMX_JLDW,XLXSJGB_TJYS,XLXSJGB_JGBIDS "); + sql.Add(" from XLXSJGBMX "); + if (!sJGCIDS.Trim().Equals(""))//组合产品目录价格表报价 + sql.Add(" left join XLXSJGB on XLXSJGB_MXBH='JGC' and XLXSJGB_JGBID=XLXSJGBMX_JGBID"); + else + { + sql.Add(" left join XLXSJGB on XLXSJGB_MXBH='JGB' and XLXSJGB_JGBID=XLXSJGBMX_JGBID"); + } + sql.Add(" where XLXSJGBMX_XH=:pJGBXH "); + if (!sJGCIDS.Trim().Equals(""))//组合产品目录价格表报价 + sql.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGCIDS.Trim())); + else + { + sql.Add(" and XLXSJGBMX_JGBID = :pJGBID "); + sql.ParamByName("pJGBID").Value = sJGBID.Trim(); + } + sql.Add(" order by XLXSJGBMX_JGBID,XLXSJGBMX_XH"); + sql.ParamByName("pJGBXH").Value = CMISproConvert.StrToFloat(sJGBXH); + DataSet ds = dberp.OpenDataSet(sql); + if (ds.Tables[0].Rows.Count > 0) + { + if (ds.Tables[0].Rows[0]["XLXSJGB_TJYS"].ToString().Trim().Equals("0") || ds.Tables[0].Rows[0]["XLXSJGB_TJYS"].ToString().Trim().Equals("1")) + { + string sJLDW = ds.Tables[0].Rows[0]["XLXSJGBMX_JLDW"].ToString().Trim(); + if (sBJU018.Equals("Y") && XLBJDUtils.sJQCDJLDWList.Contains(sJLDW.ToUpper())) + { + //成本价、出厂价价格表的基价即材料成本 + if (bHSBZ) + { + sCLCB = ds.Tables[0].Rows[0]["XLXSJGBMX_HSJJM"].ToString().Trim(); + } + else + { + sCLCB = ds.Tables[0].Rows[0]["XLXSJGBMX_WSJJM"].ToString().Trim(); + } + } + else + { + //成本价、出厂价价格表的基价即材料成本 + if (bHSBZ) + { + sCLCB = ds.Tables[0].Rows[0]["XLXSJGBMX_HSJJ"].ToString().Trim(); + } + else + { + sCLCB = ds.Tables[0].Rows[0]["XLXSJGBMX_WSJJ"].ToString().Trim(); + } + } + } + } + } + + protected bool IsExist(string sXLXHID, string sXLGGID, string sST, string sDYDJ, string sJGBID, string sJGCIDS) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + try + { + TSQL sql = new TSQL(dberp); + + DataSet ds; + + if (XLBJDUtils.IsJGEJGB(sJGBID))//表价实时计算价格表 + { + sql.Add("select 1 from XLXSCLQD where XLXSCLQD_XLXHID=:pTZ and XLXSCLQD_XLGGID=:pXLGGID and XLXSCLQD_XLBZID=:pBZ and XLXSCLQD_DYDJID=:pDYDJ and XLXSCLQD_WPID='ZZZZ'"); + sql.ParamByName("pTZ").Value = sXLXHID; + sql.ParamByName("pXLGGID").Value = sXLGGID; + sql.ParamByName("pBZ").Value = sST; + sql.ParamByName("pDYDJ").Value = sDYDJ; + ds = dberp.OpenDataSet(sql); + if (ds.Tables[0].Rows.Count > 0) + { + return true; + } + else return false; + } + else + { + sql.Add(" select 1 from XLXSJGBMX where XLXSJGBMX_XLXHID=:pTZ and XLXSJGBMX_XLGGID=:pXLGGID and XLXSJGBMX_XLBZID=:pBZ and isnull(XLXSJGBMX_DYDJID,' ')=:pDYDJ "); + if (!sJGCIDS.Trim().Equals(""))//组合产品目录价格表 + sql.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGCIDS.Trim())); + else + { + sql.Add(" and XLXSJGBMX_JGBID = :pJGBID "); + sql.ParamByName("pJGBID").Value = sJGBID; + } + sql.ParamByName("pTZ").Value = sXLXHID; + sql.ParamByName("pXLGGID").Value = sXLGGID; + sql.ParamByName("pBZ").Value = sST; + sql.ParamByName("pDYDJ").Value = sDYDJ; + ds = dberp.OpenDataSet(sql); + if (ds.Tables[0].Rows.Count > 0) + { + return true; + } + else return false; + } + } + catch (Exception ex) + { + ShowMessage(ex.Message); + + return false; + } + } + + + protected void btnCLCYZD_DropDown(object sender, EventArgs e) + { + btnCLCYZD.Nodes.Clear(); + btnCLCYZD.Nodes.Add(new gtTreeNode("XDBJCP", "修订报价产品")); + + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add(" select XLXSBJYLZD_SQDH,XLXSBJYLZD_WPID,XLXSBJYLZD_WFID from XLXSBJYLZD where XLXSBJYLZD_BJDID=:pBJDID "); + SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + string sWPID = TWorkflow.Utils.WFGetBZSWID(ds.Tables[0].Rows[0]["XLXSBJYLZD_WFID"].ToString().Trim(), + ds.Tables[0].Rows[0]["XLXSBJYLZD_WPID"].ToString().Trim()); + if (sWPID.Equals("0060") + || ds.Tables[0].Rows[0]["XLXSBJYLZD_WPID"].ToString().Trim().Equals("ZZZZ")) + { + btnCLCYZD.Nodes[0].Enabled = true; + } + else + { + btnCLCYZD.Nodes[0].Enabled = false; + } + if (XLBJDUtils.GetXLXSBJPZXX(100860064).XLXSBJPZ_YLZDMXTZ == "Y") + { + btnCLCYZD.Nodes.Add(new gtTreeNode("YLZDMXTZ", "用量制定申请明细调整")); + btnCLCYZD.Nodes[1].Enabled = false; + if( sWPID.Equals("0010")) + btnCLCYZD.Nodes[1].Enabled = true; + } + + } + else + { + btnCLCYZD.Nodes[0].Enabled = false; + } + + string sCLYLZJFS = string.Empty; + XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860014); + if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_CLYLZJFS)) + sCLYLZJFS = pzxx.XLXSBJPZ_CLYLZJFS; + if (sCLYLZJFS.Equals("4")) + btnCLCYZD.Nodes[0].Enabled = false; + MenuAreaUpdate(); + } + + protected void btnCLCYZD_MenuItemClick(object sender, string value) + { + switch (value) + { + case "XDBJCP": + UpdateBJCPByCLCYZD(txtBJDID.Text.Trim()); + break; + + case "YLZDMXTZ": + TPageParams pageParams = new TPageParams(); + pageParams.UrlPath = "../Components/N_XLBJCL/CLYLZDSQTZOper.aspx"; + pageParams.AddString("BJDID", txtBJDID.Text.Trim()); + OpenModuleDialog(102579007, pageParams, btnRefresh1.ClientID); + break; + + } + } + + protected void btnYLZDFP_DropDown(object sender, EventArgs e) + { + btnYLZDFP.Nodes.Clear(); + btnYLZDFP.Nodes.Add(new gtTreeNode("XDBJCP", "修订报价产品")); + bool bXDBJCP = true; + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add(" select XLXSBJYLZD_SQDH,XLXSBJYLZD_WPID,XLXSBJYLZD_WFID from XLXSBJYLZD where XLXSBJYLZD_BJDID=:pBJDID "); + SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + foreach (DataRow trow in ds.Tables[0].Rows) + { + string sWPID = TWorkflow.Utils.WFGetBZSWID(trow["XLXSBJYLZD_WFID"].ToString().Trim(), trow["XLXSBJYLZD_WPID"].ToString().Trim()); + if (!sWPID.Equals("0060") && !trow["XLXSBJYLZD_WPID"].ToString().Trim().Equals("ZZZZ")) + bXDBJCP = false; + } + } + else + bXDBJCP = false; + btnYLZDFP.Nodes[0].Enabled = bXDBJCP; + + string sCLYLZJFS = string.Empty; + XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860014); + if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_CLYLZJFS)) + sCLYLZJFS = pzxx.XLXSBJPZ_CLYLZJFS; + if (sCLYLZJFS.Equals("4")) + btnYLZDFP.Nodes[0].Enabled = false; + MenuAreaUpdate(); + } + + protected void btnYLZDFP_MenuItemClick(object sender, string value) + { + switch (value) + { + case "XDBJCP": + UpdateBJCPByCLCYZD(txtBJDID.Text.Trim()); + break; + } + } + + + + protected void btnCLCYZD_Click(object sender, EventArgs e) + { + + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add(" select XLXSBJYLZD_SQDH,XLXSBJYLZD_WFID,XLXSBJYLZD_WFINST from XLXSBJYLZD where XLXSBJYLZD_BJDID=:pBJDID "); + SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); + DataSet ds= dberp.OpenDataSet(SQL); + if(ds.Tables[0].Rows.Count > 0) + { + //打开记录浏览 + TPageParams pageParams = new TPageParams(); + pageParams.CallAction = TPageCallAction.pcaBrowse; + pageParams.UrlPath = "../Components/N_XLBJCL/CLYLZDSQInfo.aspx"; + //列表页参数 + pageParams.AddString("XLXSBJYLZD_SQDH", ds.Tables[0].Rows[0]["XLXSBJYLZD_SQDH"].ToString().Trim()); + pageParams.AddString("WFID", ds.Tables[0].Rows[0]["XLXSBJYLZD_WFID"].ToString().Trim()); + pageParams.AddString("WFINST", ds.Tables[0].Rows[0]["XLXSBJYLZD_WFINST"].ToString().Trim()); + OpenModuleDialog(102579007, pageParams, btnRefresh1.ClientID); + } + else + { + //“102579007|材料用量制定申请”模块中的页面CLYLZDSQOper.aspx + TPageParams pageParams = new TPageParams(); + pageParams.UrlPath = "../Components/N_XLBJCL/CLYLZDSQOper.aspx"; + pageParams.AddString("BJDID", txtBJDID.Text.Trim()); + OpenModuleDialog(102579007, pageParams, btnRefresh1.ClientID); + } + } + + protected void btnYLZDFP_Click(object sender, EventArgs e) + { + TPageParams pageParams = new TPageParams(); + pageParams.UrlPath = "../Components/N_XLBJCL/CLYLZDPFList.aspx"; + pageParams.AddString("BJDID", txtBJDID.Text.Trim()); + OpenModuleDialog(102579014, pageParams, btnRefresh1.ClientID); + } + + /// + /// 根据XLXSBJYLZD_BJDID、XLXSBJYLZDMX_BJDXH更新报价单明细记录的“型号”、“规格”、“标准”、“电压等级”, + /// 并依四要素完成“报价单行情料价”、“表价”、调价因子、“报价”等数据的更新 + /// (更新效果应和当下手动修订“型号”、“规格”、“标准”、“电压等级”触发的数据重算效果一致) + /// + /// + private void UpdateBJCPByCLCYZD(string sBJDID) + { + string sTag = ""; + if (ExitsCZBPS()) + sTag = "【存在修订后产品正在派生用量中】"; + Confirm.Register("IsQD", "将依“材料用量制定申请”修订后的产品更新对应的明细产品" + sTag + ",并重新报价,是否继续?"); + Confirm.ShowBtnText = TConfirm.cBtnText.Yes_No; + if (Confirm.GetValue("IsQD").Trim().Equals("")) + { + Confirm.Ask("IsQD"); + return; + } + else if (Confirm.GetValue("IsQD").Trim().Equals("N")) + { + //表示进行了提示并选择了取消,直接返回或其他处理 + Confirm.Clear(); + return; + } + else if (Confirm.GetValue("IsQD").Trim().Equals("Y")) + { + //表示进行了提示并选择了确认 + Confirm.Clear(); + } + + string sError = "0"; + string sXH = ""; + string sXHList = ""; + string sXLXHID = ""; + string sXLGGID = ""; + string sXLBZID = ""; + string sDYDJID = ""; + string sXLYSID = ""; + string sDZSC = ""; + string sXDXLBZID = ""; + + string sDateTime = DateTime.Now.ToString().Trim(); + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add(" SELECT XLXSBJYLZDMX_SQDH,XLXSBJYLZDMX_XH,isnull(CPMLMC,' ') as XLXSCPML_CPMLMC ,XLXSBJDMX_BJCPSD,isnull(ZHCPMLMC,' ') as ZHCPMLMC, "); + SQL.Add(" XLXSBJYLZD_BJDID,XLXSBJYLZDMX_BJDXH, "); + SQL.Add(" XLXSBJYLZDMX_BJDXLXHID,XLXSBJYLZDMX_BJDXLGGID,XLXSBJYLZDMX_BJDXLBZID, XLXSBJYLZDMX_BJDDYDJID, "); + SQL.Add(" XLXSBJYLZDMX_XLXHID,XLXSBJYLZDMX_XLGGID,XLXSBJYLZDMX_XLBZID,XLXSBJYLZDMX_XDXLBZID, XLXSBJYLZDMX_DYDJID, "); + SQL.Add(" XLXSBJYLZDMX_DZSC, "); + SQL.Add(" XLXSBJDMX_BZ,XLXSBJDMX_JLDW,XLXSBJDMX_BJSL,XLXSBJDMX_XLYSID "); + SQL.Add(" from XLXSBJYLZDMX "); + SQL.Add(" left join XLXSBJYLZD ON XLXSBJYLZD_SQDH = XLXSBJYLZDMX_SQDH "); + SQL.Add(" left join XLXSBJDMX ON XLXSBJDMX_BJDID = XLXSBJYLZD_BJDID and XLXSBJDMX_XH = XLXSBJYLZDMX_BJDXH "); + SQL.Add(" left join XLXSBJXHML A on A.XLXSBJXHML_XLXHID = XLXSBJYLZDMX_XLXHID and A.XLXSBJXHML_DYDJID = isnull(XLXSBJYLZDMX_DYDJID, ' ') "); + SQL.Add(" left join XLXSBJXHML B on B.XLXSBJXHML_XLXHID = XLXSBJYLZDMX_XLXHID and B.XLXSBJXHML_DYDJID = ' ' "); + //SQL.Add(" left join XLXSCPML DY on DY.XLXSCPML_CPMLID = case when ISNULL(A.XLXSBJXHML_CPMLID,' ') = ' ' then ISNULL(B.XLXSBJXHML_CPMLID,' ') else ISNULL(A.XLXSBJXHML_CPMLID,' ') end "); + 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 isnull(XLXSBJYLZDMX_BZDBZ,'N') ='N' "); + SQL.Add(" and isnull(XLXSBJDMX_WGCPBZ,'N') = 'N' "); + SQL.Add(" and XLXSBJYLZD_BJDID=:pBJDID "); + SQL.ParamByName("pBJDID").Value = sBJDID; + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); + + + double fBJSL = 0; + + string sBJFLID = ""; + string sXSQYID = ""; + string sPJLX = ""; + string sFKQXNR = ""; + string sSYDWID = ""; + string sLJJCLLX = ""; + string sJCLLX = ""; + string sCPBJMRXSWS = ""; + string sCPMLMC = ""; + string sZHCPMLMC = ""; + string sBJCPSD=""; + try + { + dberp.BeginTrans(); + + sError = "1"; + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + sXLXHID = ds.Tables[0].Rows[i]["XLXSBJYLZDMX_XLXHID"].ToString().Trim(); + sXLGGID = ds.Tables[0].Rows[i]["XLXSBJYLZDMX_XLGGID"].ToString().Trim(); + sXLBZID = ds.Tables[0].Rows[i]["XLXSBJYLZDMX_XLBZID"].ToString().Trim(); + sDYDJID = ds.Tables[0].Rows[i]["XLXSBJYLZDMX_DYDJID"].ToString().Trim(); + sDZSC = ds.Tables[0].Rows[i]["XLXSBJYLZDMX_DZSC"].ToString().Trim(); + sXH = ds.Tables[0].Rows[i]["XLXSBJYLZDMX_BJDXH"].ToString().Trim(); + sXDXLBZID = ds.Tables[0].Rows[i]["XLXSBJYLZDMX_XDXLBZID"].ToString().Trim(); + sCPMLMC = ds.Tables[0].Rows[i]["XLXSCPML_CPMLMC"].ToString().Trim(); + sZHCPMLMC = ds.Tables[0].Rows[i]["ZHCPMLMC"].ToString().Trim(); + sBJCPSD=ds.Tables[0].Rows[i]["XLXSBJDMX_BJCPSD"].ToString().Trim(); + SQL.Clear(); + SQL.Add("update XLXSBJDMX set XLXSBJDMX_XLXHID = :pXLXSBJDMX_XLXHID, XLXSBJDMX_XLGGID=:pXLXSBJDMX_XLGGID,XLXSBJDMX_XDXLXHID = :pXLXSBJDMX_XLXHID, "); + SQL.Add(" XLXSBJDMX_XLBZID= :pXLXSBJDMX_XLBZID, XLXSBJDMX_XDXLBZID= :pXLXSBJDMX_XDXLBZID,XLXSBJDMX_DYDJID=:pXLXSBJDMX_DYDJID,"); + SQL.Add(" XLXSBJDMX_DZSC= :pXLXSBJDMX_DZSC,XLXSBJDMX_CPMLMC=:pCPMLMC,XLXSBJDMX_ZHCPMLMC=:pZHCPMLMC,XLXSBJDMX_GYKH=:pGYKH,"); + SQL.Add(" XLXSBJDMX_WHR= :pWHR, XLXSBJDMX_WHRID=:pWHRID,XLXSBJDMX_WHSJ = :pWHSJ "); + if (!sBJCPSD.Equals("Y") && GetOption(100860000, "BJU011").Trim() == "Y") + { + SQL.Add(",XLXSBJDMX_BJCP=:pBJCP "); + SQL.ParamByName("pBJCP").Value = XLBJDUtils.GroupBJCPXX(sXLXHID, sXLGGID, sDYDJID); + } + SQL.Add(" where 1 = 1 and XLXSBJDMX_BJDID=:pXLXSBJDMX_BJDID and XLXSBJDMX_XH=:pXLXSBJDMX_XH "); + SQL.ParamByName("pXLXSBJDMX_BJDID").Value = sBJDID; + SQL.ParamByName("pXLXSBJDMX_XH").Value = sXH; + + SQL.ParamByName("pXLXSBJDMX_XLXHID").Value = sXLXHID; + SQL.ParamByName("pXLXSBJDMX_XLGGID").Value = sXLGGID; + SQL.ParamByName("pXLXSBJDMX_XLBZID").Value = sXLBZID; + SQL.ParamByName("pXLXSBJDMX_XDXLBZID").Value = sXDXLBZID; + SQL.ParamByName("pXLXSBJDMX_DYDJID").Value = sDYDJID; + SQL.ParamByName("pXLXSBJDMX_DZSC").Value = sDZSC; + SQL.ParamByName("pCPMLMC").Value = sCPMLMC; + SQL.ParamByName("pZHCPMLMC").Value = sZHCPMLMC; + if (XLBJDUtils.ExistGYKH()) + { + SQL.ParamByName("pGYKH").Value = XLBJDUtils.GetGYKH(sXLBZID); + } + else + { + SQL.ParamByName("pGYKH").Value = ""; + } + SQL.ParamByName("pWHR").Value = CurSession.UserName; + SQL.ParamByName("pWHRID").Value = CurSession.UserId; + SQL.ParamByName("pWHSJ").Value = DateTime.Now; + dberp.ExecSQL(SQL); + } + XLBJDUtils.SyncXLXSBJXLGGTHB_ByXLXSBJDMX_Batch(dberp, CurSession, sBJDID); + + //依四要素完成“报价单行情料价”、“表价”、调价因子、“报价”等数据的更新 + + XLBJDUtils.InsertXLXSBJDCLHQ_WLHQ(dberp, SQL, bjflxx.XLXSBJFL_BJDHQLY, sBJDID,datBJRQ.Text.Trim(),chkJZBJHS.Checked, bjflxx.XLXSBJFL_TBJCLID, bjflxx.XLXSBJFL_LBJCLID, txtTJ.Value, txtLJ.Value, CurSession.UserName, CurSession.UserId); + + + + + sError = "2"; + Dictionary dic = new Dictionary(); + double fCLZL = 0; + double dCPJJ = 0; + double dJJ = 0; + double dCLCB = 0; + double dBJDHQCLCB = 0; + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + sXH = ds.Tables[0].Rows[i]["XLXSBJYLZDMX_BJDXH"].ToString().Trim(); + + sXLXHID = ds.Tables[0].Rows[i]["XLXSBJYLZDMX_XLXHID"].ToString().Trim(); + sXLGGID = ds.Tables[0].Rows[i]["XLXSBJYLZDMX_XLGGID"].ToString().Trim(); + sXLBZID = ds.Tables[0].Rows[i]["XLXSBJYLZDMX_XLBZID"].ToString().Trim(); + sDYDJID = ds.Tables[0].Rows[i]["XLXSBJYLZDMX_DYDJID"].ToString().Trim(); + dic.Clear(); + dic.Add("sXH", sXH); + dic.Add("fBJSL", ds.Tables[0].Rows[i]["XLXSBJDMX_BJSL"].ToString().Trim()); + dic.Add("sJLDW", ds.Tables[0].Rows[i]["XLXSBJDMX_JLDW"].ToString().Trim()); + dic.Add("iXSWS", iXSWS.ToString().Trim()); + dic.Add("sXSQYID", cbxXSQYID.SelectedValue.Trim()); + dic.Add("sBJFLID", cbxBJFLID.SelectedValue.Trim()); + dic.Add("sJGBID", cbxJGBID.SelectedValue.Trim()); + dic.Add("sBJDHQLY", bjflxx.XLXSBJFL_BJDHQLY); + dic.Add("sBJRQ", datBJRQ.Text.Trim()); + dic.Add("sJGBIDS", txtJGBIDS.Text.Trim()); + dic.Add("fJZBJHS", chkJZBJHS.Checked ? "Y" : "N"); + dic.Add("sLJJCLLX", bjflxx.XLXSBJFL_LJJCLLX); + dic.Add("sJCLLX", bjflxx.XLXSBJFL_BJJCLLX); + dic.Add("sBJLY", txtBJLY.Text.Trim()); + dic.Add("sJSBLFS", txtJSBLFS.Text.Trim()); + dic.Add("sTZCLHQ", bjflxx.XLXSBJFL_TZCLHQ); + dic.Add("sJGCIDS", txtJGCIDS.Text.Trim()); + dic.Add("sJGBTJYS", txtJGBTJYS.Text.Trim()); + dic.Add("sTBJCLID", bjflxx.XLXSBJFL_TBJCLID); + dic.Add("sLBJCLID", bjflxx.XLXSBJFL_LBJCLID); + dic.Add("sTJ", txtTJ.Value.ToString()); + dic.Add("sLJ", txtLJ.Value.ToString()); + dic.Add("sBJU003", GetOption(100860000, "BJU003")); + dic.Add("sBJU018", GetOption(100860000, "BJU018")); + + string sWGCPBZ = "N"; + string sJGFBZ = "N"; + Dictionary dicJJYZList_JGE = new Dictionary(); + XLBJDUtils.UpdateXLXSBJDMX_JGBBJ(dberp, SQL, sBJDID, sXLXHID, sXLGGID, sXLBZID, sDYDJID, dic, ref dCPJJ, ref dJJ, ref dCLCB, ref dBJDHQCLCB, ref fCLZL, ref dicJJYZList_JGE, ref sWGCPBZ, ref sJGFBZ); + if (dicJJYZList_JGE.Count > 0) + { + SQL.Clear(); + SQL.Add("update XLXSBJDJJYZ set XLXSBJDJJYZ_YZZ01=:pYZZ01,XLXSBJDJJYZ_YZZ02=:pYZZ02,XLXSBJDJJYZ_YZZ03=:pYZZ03,XLXSBJDJJYZ_YZZ04=:pYZZ04,XLXSBJDJJYZ_YZZ05=:pYZZ05,"); + SQL.Add(" XLXSBJDJJYZ_YZZ06=:pYZZ06,XLXSBJDJJYZ_YZZ07=:pYZZ07,XLXSBJDJJYZ_YZZ08=:pYZZ08,XLXSBJDJJYZ_YZZ09=:pYZZ09,XLXSBJDJJYZ_YZZ10=:pYZZ10 "); + SQL.Add(" where XLXSBJDJJYZ_BJDID=:pBJDID and XLXSBJDJJYZ_XH=:pBJDXH"); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pBJDXH").Value = sXH; + SQL.ParamByName("pYZZ01").Value = dicJJYZList_JGE["JZ01"]; + SQL.ParamByName("pYZZ02").Value = dicJJYZList_JGE["JZ02"]; + SQL.ParamByName("pYZZ03").Value = dicJJYZList_JGE["JZ03"]; + SQL.ParamByName("pYZZ04").Value = dicJJYZList_JGE["JZ04"]; + SQL.ParamByName("pYZZ05").Value = dicJJYZList_JGE["JZ05"]; + SQL.ParamByName("pYZZ06").Value = dicJJYZList_JGE["JZ06"]; + SQL.ParamByName("pYZZ07").Value = dicJJYZList_JGE["JZ07"]; + SQL.ParamByName("pYZZ08").Value = dicJJYZList_JGE["JZ08"]; + SQL.ParamByName("pYZZ09").Value = dicJJYZList_JGE["JZ09"]; + SQL.ParamByName("pYZZ10").Value = dicJJYZList_JGE["JZ10"]; + dberp.ExecSQL(SQL); + } + + SQL.Clear(); + SQL.Add("update XLXSBJDMX set "); + SQL.Add(" XLXSBJDMX_JGBBJ = :pJGBBJ, "); + SQL.Add(" XLXSBJDMX_JGBBJTZ = 'N', "); + SQL.Add(" XLXSBJDMX_JGBBJGXSJ=:pJGBBJGXSJ,"); + SQL.Add(" XLXSBJDMX_JGBJJ = :pJGBJJ, "); + SQL.Add(" XLXSBJDMX_CLCB = :pCLCB, "); + SQL.Add(" XLXSBJDMX_BJDHQCLCB = :pBJDHQCLCB, "); + SQL.Add(" XLXSBJDMX_BJDHQCLCBTZ = 'N', "); + SQL.Add(" XLXSBJDMX_WGCPBZ = :pWGCPBZ, "); + SQL.Add(" XLXSBJDMX_JGFBZ = :pJGBZ, "); + SQL.Add(" XLXSBJDMX_CLZL = :pCLZL "); + SQL.Add(" where 1=1 "); + SQL.Add(" and XLXSBJDMX_BJDID = :pBJDID "); + SQL.Add(" and XLXSBJDMX_XH = :pXH "); + SQL.ParamByName("pJGBBJ").Value = dCPJJ; + SQL.ParamByName("pJGBBJGXSJ").Value = MISproUtils.GetServerTime(); + SQL.ParamByName("pJGBJJ").Value = dJJ; + SQL.ParamByName("pCLCB").Value = dCLCB; + SQL.ParamByName("pBJDHQCLCB").Value = dBJDHQCLCB; + SQL.ParamByName("pCLZL").Value = fCLZL; + SQL.ParamByName("pWGCPBZ").Value = sWGCPBZ; + SQL.ParamByName("pJGBZ").Value = sJGFBZ; + + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pXH").Value = sXH; + dberp.ExecSQL(SQL); + + } + + sError = "3"; + sBJFLID = cbxBJFLID.SelectedValue.Trim(); + sXSQYID = cbxXSQYID.SelectedValue.Trim(); + sPJLX = cbxPJLX.SelectedValue.Trim(); + sFKQXNR = cbxFKQXNR.SelectedValue.Trim(); + sSYDWID = cbxSYDWID.SelectedValue.Trim(); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + sXH = ds.Tables[0].Rows[i]["XLXSBJYLZDMX_BJDXH"].ToString().Trim(); + sXLXHID = ds.Tables[0].Rows[i]["XLXSBJYLZDMX_XLXHID"].ToString().Trim(); + sXLGGID = ds.Tables[0].Rows[i]["XLXSBJYLZDMX_XLGGID"].ToString().Trim(); + sXLBZID = ds.Tables[0].Rows[i]["XLXSBJYLZDMX_XLBZID"].ToString().Trim(); + sDYDJID = ds.Tables[0].Rows[i]["XLXSBJYLZDMX_DYDJID"].ToString().Trim(); + sXLYSID = ds.Tables[0].Rows[i]["XLXSBJDMX_XLYSID"].ToString().Trim(); + fBJSL = CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSBJDMX_BJSL"].ToString().Trim()); + + XLBJDUtils.InsertXLXSBJDYZZ0(dberp, SQL, sBJFLID, sBJDID, CMISproConvert.StrToInt(sXH), fBJSL, + sXLXHID, sXLGGID, sXLBZID, sDYDJID, sXSQYID, sPJLX, sFKQXNR, sSYDWID, + ds.Tables[0].Rows[i]["XLXSBJDMX_JLDW"].ToString().Trim(), GetOption(100860000, "BJU003"), "N", sXLYSID); + } + + sError = "4"; + //XLXSBJDCLCB + TControlState tmpState = TControlState.ctsEdit; + InsertCLCBandJJYZ(tmpState, sBJDID, cbxJGBID.SelectedValue.Trim(), CurSession.UserId, CurSession.UserName, GetOption(100860000, "BJU003"), chkJZBJHS.Checked); + + sError = "5"; + sLJJCLLX = bjflxx.XLXSBJFL_LJJCLLX; + sJCLLX = bjflxx.XLXSBJFL_BJJCLLX; + sCPBJMRXSWS = bjflxx.XLXSBJFL_CPBJMRXSWS; + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + sXHList = sXHList + ds.Tables[0].Rows[i]["XLXSBJYLZDMX_BJDXH"].ToString().Trim() + ","; + } + sXHList = sXHList.TrimStart(',').TrimEnd(','); + XLBJDUtils.UpdateBJDMX(dberp, SQL, sBJFLID, sBJDID, iXSWS, sJCLLX, sLJJCLLX, sCPBJMRXSWS, sXHList, 0, false, false, false, "", DateTime.MinValue, true); + + sError = "6"; + XLBJDCalcUtils.Check_UpdBJSLYZZ(dberp, SQL, sBJDID, sBJFLID, GetOption(100860000, "BJU002"), GetOption(100860000, "BJU003")); + + sError = "7"; + btnRefreshDRBJDMX_Click(null, null); + + ShowMessage("修订完成!"); + dberp.CommitTrans(); + } + catch (Exception ex) + { + dberp.RollbackTrans(); + ShowMessage("修订报价产品出现异常,请联系系统管理员。详细信息:" + sError + "|" + ex.ToString().Trim()); + } + + } + } + + private bool ExitsCZBPS() + { + return CMISproDataBase.ExistsRecord("DBERP", "select 1 from XLJGCZBML where isnull(XLJGCZBML_PSCLYLZT,'R') = 'I' ");//SQL语句自测:刘青棚2024/12/21 02:30:00 + } + + private void UpdateBJCPByXLBZID(string sBJDID, string sBJDXHList,string sDZSC) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + string sError = "0"; + string sXH = ""; + string sXHList = ""; + string sXLXHID = ""; + string sXLGGID = ""; + string sXLBZID = ""; + string sDYDJID = ""; + string sXLYSID = ""; + string sXDXLBZID = ""; + sError = "1"; + SQL.Clear(); + SQL.Add("update XLXSBJDMX set "); + SQL.Add(" XLXSBJDMX_XLBZID= :pXLXSBJDMX_XLBZID,XLXSBJDMX_DZSC=:pDZSC, "); + SQL.Add(" XLXSBJDMX_WHR= :pWHR, XLXSBJDMX_WHRID=:pWHRID,XLXSBJDMX_WHSJ = :pWHSJ "); + SQL.Add(" where 1 = 1 and XLXSBJDMX_BJDID=:pXLXSBJDMX_BJDID "); + if (!sBJDXHList.Trim().Equals("")) + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + SQL.Add(@" and not exists (select 1 from XLXSBJYLZDMX + left join XLXSBJYLZD on XLXSBJYLZD_SQDH = XLXSBJYLZDMX_SQDH + where XLXSBJYLZD_BJDID = :pXLXSBJDMX_BJDID and XLXSBJYLZDMX_BJDXH = XLXSBJDMX_XH + and isnull(XLXSBJYLZDMX_BJDXH,0) <> 0 and isnull(XLXSBJYLZD_WPID,' ') <> ' ' + and ((isnull(XLXSBJYLZD_WPID,' ') <> '0060' and isnull(XLXSBJYLZD_WPID,' ') <> 'ZZZZ') or isnull(XLXSBJYLZDMX_BZDBZ,'N') <>'Y') )"); + SQL.ParamByName("pXLXSBJDMX_BJDID").Value = sBJDID; + SQL.ParamByName("pXLXSBJDMX_XLBZID").Value = txtPLSZBZID.Value.Trim(); + SQL.ParamByName("pDZSC").Value = sDZSC; + SQL.ParamByName("pWHR").Value = CurSession.UserName; + SQL.ParamByName("pWHRID").Value = CurSession.UserId; + SQL.ParamByName("pWHSJ").Value = DateTime.Now; + dberp.ExecSQL(SQL); + + string sDateTime = DateTime.Now.ToString().Trim(); + + SQL.Clear(); + SQL.Add(" SELECT XLXSBJDMX_BJDID,XLXSBJDMX_XH,XLXSBJDMX_XLXHID,XLXSBJDMX_XLBZID,XLXSBJDMX_XLGGID,XLXSBJDMX_DYDJID,"); + SQL.Add(" XLXSBJDMX_BJSL,XLXSBJDMX_JLDW,XLXSBJDMX_XLYSID,XLXSBJDMX_BZ,XLXSBJDMX_WGCPBZ "); + SQL.Add(" from XLXSBJDMX "); + SQL.Add(" where 1 = 1 and XLXSBJDMX_BJDID=:pXLXSBJDMX_BJDID "); + if (!sBJDXHList.Trim().Equals("")) + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + SQL.Add(@" and not exists (select 1 from XLXSBJYLZDMX + left join XLXSBJYLZD on XLXSBJYLZD_SQDH = XLXSBJYLZDMX_SQDH + where XLXSBJYLZD_BJDID = :pXLXSBJDMX_BJDID and XLXSBJYLZDMX_BJDXH = XLXSBJDMX_XH + and isnull(XLXSBJYLZDMX_BJDXH,0) <> 0 and isnull(XLXSBJYLZD_WPID,' ') <> ' ' + and ((isnull(XLXSBJYLZD_WPID,' ') <> '0060' and isnull(XLXSBJYLZD_WPID,' ') <> 'ZZZZ') or isnull(XLXSBJYLZDMX_BZDBZ,'N') <>'Y') )"); + SQL.ParamByName("pXLXSBJDMX_BJDID").Value = sBJDID; + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + + DateTime TimeStamp = MISproUtils.GetServerTime(); + int VnewID = CMISproDataBase.GetMaxXH("DBERP", "V_BJDXH", "V_BJDXH_ID", "") + 1; + SQL.Clear(); + SQL.Add(" insert into V_BJDXH(V_BJDXH_ID,V_BJDXH_TIMESTAMP,V_BJDXH_BJDID,V_BJDXH_BJDXH )"); + SQL.Add(" select distinct :pID,:pTime,XLXSBJDMX_BJDID, XLXSBJDMX_XH "); + SQL.Add(" from XLXSBJDMX "); + SQL.Add(" where 1 = 1 and XLXSBJDMX_BJDID=:pXLXSBJDMX_BJDID "); + if (!sBJDXHList.Trim().Equals("")) + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + SQL.Add(@" and not exists (select 1 from XLXSBJYLZDMX + left join XLXSBJYLZD on XLXSBJYLZD_SQDH = XLXSBJYLZDMX_SQDH + where XLXSBJYLZD_BJDID = :pXLXSBJDMX_BJDID and XLXSBJYLZDMX_BJDXH = XLXSBJDMX_XH + and isnull(XLXSBJYLZDMX_BJDXH,0) <> 0 and isnull(XLXSBJYLZD_WPID,' ') <> ' ' + and ((isnull(XLXSBJYLZD_WPID,' ') <> '0060' and isnull(XLXSBJYLZD_WPID,' ') <> 'ZZZZ') or isnull(XLXSBJYLZDMX_BZDBZ,'N') <>'Y') )"); + SQL.ParamByName("pID").Value = VnewID; + SQL.ParamByName("pTime").Value = TimeStamp; + SQL.ParamByName("pXLXSBJDMX_BJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + + + + + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); + + double fBJSL = 0; + + string sBJFLID = ""; + string sXSQYID = ""; + string sPJLX = ""; + string sFKQXNR = ""; + string sSYDWID = ""; + string sLJJCLLX = ""; + string sJCLLX = ""; + string sCPBJMRXSWS = ""; + try + { + dberp.BeginTrans(); + + + //依四要素完成“报价单行情料价”、“表价”、调价因子、“报价”等数据的更新 + + + + sError = "2"; + Dictionary dic = new Dictionary(); + double fCLZL = 0; + double dCPJJ = 0; + double dJJ = 0; + double dCLCB = 0; + double dBJDHQCLCB = 0; + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + sXH = ds.Tables[0].Rows[i]["XLXSBJDMX_XH"].ToString().Trim(); + + sXLXHID = ds.Tables[0].Rows[i]["XLXSBJDMX_XLXHID"].ToString().Trim(); + sXLGGID = ds.Tables[0].Rows[i]["XLXSBJDMX_XLGGID"].ToString().Trim(); + sXLBZID = ds.Tables[0].Rows[i]["XLXSBJDMX_XLBZID"].ToString().Trim(); + sDYDJID = ds.Tables[0].Rows[i]["XLXSBJDMX_DYDJID"].ToString().Trim(); + sXDXLBZID = sXLBZID; + + dic.Clear(); + dic.Add("sXH", sXH); + dic.Add("fBJSL", ds.Tables[0].Rows[i]["XLXSBJDMX_BJSL"].ToString().Trim()); + dic.Add("sJLDW", ds.Tables[0].Rows[i]["XLXSBJDMX_JLDW"].ToString().Trim()); + dic.Add("iXSWS", iXSWS.ToString().Trim()); + dic.Add("sXSQYID", cbxXSQYID.SelectedValue.Trim()); + dic.Add("sBJFLID", cbxBJFLID.SelectedValue.Trim()); + dic.Add("sJGBID", cbxJGBID.SelectedValue.Trim()); + dic.Add("sBJDHQLY", bjflxx.XLXSBJFL_BJDHQLY); + dic.Add("sBJRQ", datBJRQ.Text.Trim()); + dic.Add("sJGBIDS", txtJGBIDS.Text.Trim()); + dic.Add("fJZBJHS", chkJZBJHS.Checked ? "Y" : "N"); + dic.Add("sLJJCLLX", bjflxx.XLXSBJFL_LJJCLLX); + dic.Add("sJCLLX", bjflxx.XLXSBJFL_BJJCLLX); + dic.Add("sBJLY", txtBJLY.Text.Trim()); + dic.Add("sJSBLFS", txtJSBLFS.Text.Trim()); + dic.Add("sTZCLHQ", bjflxx.XLXSBJFL_TZCLHQ); + dic.Add("sJGCIDS", txtJGCIDS.Text.Trim()); + dic.Add("sJGBTJYS", txtJGBTJYS.Text.Trim()); + dic.Add("sTBJCLID", bjflxx.XLXSBJFL_TBJCLID); + dic.Add("sLBJCLID", bjflxx.XLXSBJFL_LBJCLID); + dic.Add("sTJ", txtTJ.Text.Trim()); + dic.Add("sLJ", txtLJ.Text.Trim()); + dic.Add("sBJU003", GetOption(100860000, "BJU003")); + dic.Add("sBJU018", GetOption(100860000, "BJU018")); + + string sWGCPBZ = "N"; + string sJGFBZ = "N"; + Dictionary dicJJYZList_JGE = new Dictionary(); + XLBJDUtils.UpdateXLXSBJDMX_JGBBJ(dberp, SQL, sBJDID, sXLXHID, sXLGGID, sXLBZID, sDYDJID, dic, ref dCPJJ, ref dJJ, ref dCLCB, ref dBJDHQCLCB, ref fCLZL, ref dicJJYZList_JGE, ref sWGCPBZ, ref sJGFBZ); + if (dicJJYZList_JGE.Count > 0) + { + SQL.Clear(); + SQL.Add("update XLXSBJDJJYZ set XLXSBJDJJYZ_YZZ01=:pYZZ01,XLXSBJDJJYZ_YZZ02=:pYZZ02,XLXSBJDJJYZ_YZZ03=:pYZZ03,XLXSBJDJJYZ_YZZ04=:pYZZ04,XLXSBJDJJYZ_YZZ05=:pYZZ05,"); + SQL.Add(" XLXSBJDJJYZ_YZZ06=:pYZZ06,XLXSBJDJJYZ_YZZ07=:pYZZ07,XLXSBJDJJYZ_YZZ08=:pYZZ08,XLXSBJDJJYZ_YZZ09=:pYZZ09,XLXSBJDJJYZ_YZZ10=:pYZZ10 "); + SQL.Add(" where XLXSBJDJJYZ_BJDID=:pBJDID and XLXSBJDJJYZ_XH=:pBJDXH"); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pBJDXH").Value = sXH; + SQL.ParamByName("pYZZ01").Value = dicJJYZList_JGE["JZ01"]; + SQL.ParamByName("pYZZ02").Value = dicJJYZList_JGE["JZ02"]; + SQL.ParamByName("pYZZ03").Value = dicJJYZList_JGE["JZ03"]; + SQL.ParamByName("pYZZ04").Value = dicJJYZList_JGE["JZ04"]; + SQL.ParamByName("pYZZ05").Value = dicJJYZList_JGE["JZ05"]; + SQL.ParamByName("pYZZ06").Value = dicJJYZList_JGE["JZ06"]; + SQL.ParamByName("pYZZ07").Value = dicJJYZList_JGE["JZ07"]; + SQL.ParamByName("pYZZ08").Value = dicJJYZList_JGE["JZ08"]; + SQL.ParamByName("pYZZ09").Value = dicJJYZList_JGE["JZ09"]; + SQL.ParamByName("pYZZ10").Value = dicJJYZList_JGE["JZ10"]; + dberp.ExecSQL(SQL); + } + + SQL.Clear(); + SQL.Add("update XLXSBJDMX set "); + SQL.Add(" XLXSBJDMX_JGBBJ = :pJGBBJ, "); + SQL.Add(" XLXSBJDMX_JGBBJTZ = 'N', "); + SQL.Add(" XLXSBJDMX_JGBBJGXSJ=:pJGBBJGXSJ,"); + SQL.Add(" XLXSBJDMX_JGBJJ = :pJGBJJ, "); + SQL.Add(" XLXSBJDMX_CLCB = :pCLCB, "); + SQL.Add(" XLXSBJDMX_BJDHQCLCB = :pBJDHQCLCB, "); + SQL.Add(" XLXSBJDMX_BJDHQCLCBTZ = 'N', "); + SQL.Add(" XLXSBJDMX_WGCPBZ = :pWGCPBZ, "); + SQL.Add(" XLXSBJDMX_JGFBZ = :pJGBZ, "); + SQL.Add(" XLXSBJDMX_CLZL = :pCLZL, "); + SQL.Add(" XLXSBJDMX_XDXLBZID = :pXDXLBZID "); + SQL.Add(" where 1=1 "); + SQL.Add(" and XLXSBJDMX_BJDID = :pBJDID "); + SQL.Add(" and XLXSBJDMX_XH = :pXH "); + SQL.ParamByName("pJGBBJ").Value = dCPJJ; + SQL.ParamByName("pJGBBJGXSJ").Value = MISproUtils.GetServerTime(); + SQL.ParamByName("pJGBJJ").Value = dJJ; + SQL.ParamByName("pCLCB").Value = dCLCB; + SQL.ParamByName("pBJDHQCLCB").Value = dBJDHQCLCB; + SQL.ParamByName("pCLZL").Value = fCLZL; + SQL.ParamByName("pWGCPBZ").Value = sWGCPBZ; + SQL.ParamByName("pJGBZ").Value = sJGFBZ; + SQL.ParamByName("pXDXLBZID").Value = sXDXLBZID; + + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pXH").Value = sXH; + dberp.ExecSQL(SQL); + + } + XLBJDUtils.UpdateXDXLBZID(dberp, SQL, sBJDID, "", 0,VnewID, ref sError); + + sError = "3"; + sBJFLID = cbxBJFLID.SelectedValue.Trim(); + sXSQYID = cbxXSQYID.SelectedValue.Trim(); + sPJLX = cbxPJLX.SelectedValue.Trim(); + sFKQXNR = cbxFKQXNR.SelectedValue.Trim(); + sSYDWID = cbxSYDWID.SelectedValue.Trim(); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + string sWGCPBZ = ds.Tables[0].Rows[i]["XLXSBJDMX_WGCPBZ"].ToString().Trim(); + sXH = ds.Tables[0].Rows[i]["XLXSBJDMX_XH"].ToString().Trim(); + sXLXHID = ds.Tables[0].Rows[i]["XLXSBJDMX_XLXHID"].ToString().Trim(); + sXLGGID = ds.Tables[0].Rows[i]["XLXSBJDMX_XLGGID"].ToString().Trim(); + sXLBZID = ds.Tables[0].Rows[i]["XLXSBJDMX_XLBZID"].ToString().Trim(); + sDYDJID = ds.Tables[0].Rows[i]["XLXSBJDMX_DYDJID"].ToString().Trim(); + sXLYSID = ds.Tables[0].Rows[i]["XLXSBJDMX_XLYSID"].ToString().Trim(); + fBJSL = CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSBJDMX_BJSL"].ToString().Trim()); + + XLBJDUtils.InsertXLXSBJDYZZ0(dberp, SQL, sBJFLID, sBJDID, CMISproConvert.StrToInt(sXH), fBJSL, + sXLXHID, sXLGGID, sXLBZID, sDYDJID, sXSQYID, sPJLX, sFKQXNR, sSYDWID, + ds.Tables[0].Rows[i]["XLXSBJDMX_JLDW"].ToString().Trim(), GetOption(100860000, "BJU003"), sWGCPBZ, sXLYSID); + } + + sError = "4"; + //XLXSBJDCLCB + TControlState tmpState = TControlState.ctsEdit; + InsertCLCBandJJYZ(tmpState, sBJDID, cbxJGBID.SelectedValue.Trim(), CurSession.UserId, CurSession.UserName, GetOption(100860000, "BJU003"), chkJZBJHS.Checked); + + sError = "5"; + sLJJCLLX = bjflxx.XLXSBJFL_LJJCLLX; + sJCLLX = bjflxx.XLXSBJFL_BJJCLLX; + sCPBJMRXSWS = bjflxx.XLXSBJFL_CPBJMRXSWS; + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + sXHList = sXHList + ds.Tables[0].Rows[i]["XLXSBJDMX_XH"].ToString().Trim() + ","; + } + sXHList = sXHList.TrimStart(',').TrimEnd(','); + XLBJDUtils.UpdateBJDMX(dberp, SQL, sBJFLID, sBJDID, iXSWS, sJCLLX, sLJJCLLX, sCPBJMRXSWS, "", 0, false, false, false, "", DateTime.MinValue, false, VnewID); + + sError = "6"; + XLBJDCalcUtils.Check_UpdBJSLYZZ(dberp, SQL, sBJDID, sBJFLID, GetOption(100860000, "BJU002"), GetOption(100860000, "BJU003")); + + sError = "7"; + btnRefreshDRBJDMX_Click(null, null); + + ShowMessage("调整完成!"); + dberp.CommitTrans(); + + + } + catch (Exception ex) + { + dberp.RollbackTrans(); + ShowMessage("批量调整标准出现异常,请联系系统管理员。详细信息:" + sError + "|" + ex.ToString().Trim()); + } + + SQL.Clear(); + SQL.Add("delete from V_BJDXH where V_BJDXH_ID=:pVID and V_BJDXH_BJDID =:pBJDID "); + SQL.ParamByName("pVID").Value = VnewID; + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + } + } + + protected void btnBJSM_Click(object sender, EventArgs e) + { + TPageParams pageParams = new TPageParams(); + pageParams.UrlPath = "XLBJD_BJSMInfo.aspx"; + pageParams.AddString("BJDID", txtBJDID.Text.Trim()); + pageParams.AddString("KHMC", txtKH.Text.Trim()); + pageParams.AddString("CanEdit", lblZJE.Enabled ? "Y" : "N"); //Master.CanEdit值失效,使用lblZJE.Enabled进行判断 + OpenDialog(pageParams); + } + protected void btnBZGX_Click(object sender, EventArgs e) + { + if (grdXLBJDMX._SelectedIndex < 0) + { + ShowMessage("请选择一条明细!"); + return; + } + TPageParams pageParams = new TPageParams(); + pageParams.UrlPath = "BJCPFZGXList.aspx"; + pageParams.AddString("BJDID", txtBJDID.Text.Trim()); + pageParams.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); + pageParams.AddString("XLXHID", grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XLXHID", grdXLBJDMX._SelectedIndex)); + pageParams.AddString("XLGGID", grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XLGGID", grdXLBJDMX._SelectedIndex)); + pageParams.AddString("XLBZID", grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XLBZID", grdXLBJDMX._SelectedIndex)); + pageParams.AddString("DYDJID", grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_DYDJID", grdXLBJDMX._SelectedIndex)); + OpenModuleDialog(100860122, pageParams, btnRefreshCLHQTZ.ClientID); + } + + + + //总金额 + protected void lblZJE_Click(object sender, EventArgs e) + { + //比对过后不允许调整 + string sSQL = string.Format("select top 1 XLXSBJDBDMX_BJDID from XLXSBJDBDMX where XLXSBJDBDMX_BJDID = '{0}' and XLXSBJDBDMX_BDBZ <> '0' ", txtBJDID.Text.Trim()); + if (CMISproDataBase.ExistsRecord("DBERP", sSQL)) + { + ShowMessage("已经存在比对报价记录,不允许调整报价总金额!"); + return; + } + + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); + + + TPageParams pageParams = new TPageParams(); + pageParams.UrlPath = "XLBJD_ZJEInfo.aspx"; + pageParams.AddString("BJDID", txtBJDID.Text.Trim()); + pageParams.AddString("iXSWS", iXSWS.ToString().Trim()); + pageParams.AddString("ZJE", txtZJE.Value.ToString().Trim()); + pageParams.AddString("YSFY", txtYSFY.Value.ToString().Trim()); + //Y为含运费 + pageParams.AddString("BJHYF", bjflxx.XLXSBJFL_BJHYF); + + List lst = new List(); + lst.Clear(); + string sFirstXH = "0"; + string sBJDXHList = ""; + string sBJDXHList_GX_SD = ""; + string sBJDXHList_GX_WSD = ""; + if (grdXLBJDMX.CheckBox && !String.IsNullOrEmpty(grdXLBJDMX.CheckedRows)) + { + string[] sTempArr = grdXLBJDMX.CheckedRows.Split(new char[] { ',' }); + foreach (string sIndex in sTempArr) + { + int iRowIndex = CMISproConvert.StrToInt(sIndex.Trim()); + string sBJDXH = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XH", iRowIndex); + lst.Add(sBJDXH); + if (!sBJDXH.Equals("") && !sBJDXH.Equals("0")) + { + sBJDXHList += sBJDXH + ","; + } + + if (!sBJDXH.Equals("") && !sBJDXH.Equals("0")) + { + if (grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_BJSDBZ", iRowIndex).ToString().Trim().Equals("Y")) + { + sBJDXHList_GX_SD += sBJDXH + ","; + } + else + { + sBJDXHList_GX_WSD += sBJDXH + ","; + } + } + } + } + sBJDXHList = sBJDXHList.TrimStart(',').TrimEnd(','); + sBJDXHList_GX_SD = sBJDXHList_GX_SD.TrimStart(',').TrimEnd(','); + sBJDXHList_GX_WSD = sBJDXHList_GX_WSD.TrimStart(',').TrimEnd(','); + if (lst.Count != 0) + { + pageParams.AddString("GXMX", "Y"); + pageParams.AddString("sBJDXHList", sBJDXHList); + pageParams.AddString("sBJDXHList_GX_SD", sBJDXHList_GX_SD); + pageParams.AddString("sBJDXHList_GX_WSD", sBJDXHList_GX_WSD); + foreach (GridViewRow row in grdXLBJDMX.NewRows) + { + if (!grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_BJSL", row).ToString().Trim().Equals("0") && !grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_BJSL", row).ToString().Trim().Equals("") + && !grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_BJSDBZ", row).ToString().Trim().Equals("Y")) + { + if (lst.Contains(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XH", row).ToString().Trim())) + { + sFirstXH = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XH", row).ToString().Trim(); + break; + } + } + } + } + else + { + pageParams.AddString("GXMX", "N"); + foreach (GridViewRow row in grdXLBJDMX.NewRows) + { + if (!grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_BJSL", row).ToString().Trim().Equals("0") && !grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_BJSL", row).ToString().Trim().Equals("") + && !grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_BJSDBZ", row).ToString().Trim().Equals("Y")) + { + + sFirstXH = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XH", row).ToString().Trim(); + break; + } + } + } + pageParams.AddString("FirstXH", sFirstXH); + + if (txtBJDYZ.Text.Trim().Equals("")) + { + Dictionary dicBJDYZ = XLBJDUtils.GetBJDYZ(cbxBJFLID.SelectedValue.Trim()); + txtBJDYZ.Text = dicBJDYZ["BJDYZ"]; + txtTJYSList.Text = dicBJDYZ["TJYSList"]; + txtYZWPIDList.Text = dicBJDYZ["YZWPIDList"]; + txtReadOnlyYZ.Text = dicBJDYZ["ReadOnlyYZ"]; + txtZDWPIDList.Text = dicBJDYZ["ZDWPIDList"]; + txtPFYZID.Text = dicBJDYZ["PFYZ"]; + txtBTYZ.Text = dicBJDYZ["BTYZ"]; + txtXSJEYZ.Text = dicBJDYZ["XSJEYZ"]; + } + pageParams.AddString("XSBJDHQLJ", bjflxx.XSBJDHQLJ() ? "Y" : "N"); + pageParams.AddString("XSLJ", bjflxx.XSLJ() ? "Y" : "N"); + pageParams.AddString("XSJJ", bjflxx.XSJGBJJChecked() ? "Y" : "N"); + pageParams.AddString("XSJCL", bjflxx.XSJCL() ? "Y" : "N"); + pageParams.AddString("XSLJJCL", bjflxx.XSLJJCL() ? "Y" : "N"); + pageParams.AddString("XSJSJ", bjflxx.XSJSJ() ? "Y" : "N"); + pageParams.AddString("JCLLX", bjflxx.XLXSBJFL_BJJCLLX); + pageParams.AddString("LJJCLLX", bjflxx.XLXSBJFL_LJJCLLX); + pageParams.AddString("XSTZJG", bjflxx.XLXSBJFL_XSTZCPBJ); + pageParams.AddString("XSTZZDXJ", bjflxx.XLXSBJFL_XSTZZDXJ); + pageParams.AddString("XSTZJE", bjflxx.XLXSBJFL_XSTZBJJE); + pageParams.AddString("CPBJMRXSWS", bjflxx.XLXSBJFL_CPBJMRXSWS); + pageParams.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); + + pageParams.AddString("btnRefresh1", btnRefresh1.ClientID.Trim()); + OpenDialog(pageParams); + } + + //材料总重量 + protected void linkZZL_Click(object sender, EventArgs e) + { + + TPageParams pageParams = new TPageParams(); + if (XLBJDUtils.IsJGEJGB(cbxJGBID.SelectedValue.Trim())) + pageParams.UrlPath = "../Components/N_XLBJCL/XLBJD_JGECLZLList.aspx"; + else + pageParams.UrlPath = "../Components/N_XLBJCL/XLBJD_CLZLList.aspx"; + pageParams.AddString("BJDID", txtBJDID.Text.Trim()); + OpenModuleDialog(102579012, pageParams); + } + + + //关注材料重量 + protected void lblZLGZCLS_Click(object sender, EventArgs e) + { + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); + + TPageParams pageParams = new TPageParams(); + pageParams.UrlPath = "XLBJD_ZLGZCLList.aspx"; + pageParams.AddString("BJDID", txtBJDID.Text.Trim()); + pageParams.AddString("ZLGZCLS", bjflxx.XLXSBJFL_ZLGZCLS); + OpenDialog(pageParams); + } + + //项目按钮 + protected void linkXM_Click(object sender, EventArgs e) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Add("select XLXSBJD_XMID,XLXSBJD_KH,XLXSBJD_XMMC,YXXM_WFID, YXXM_WFINST "); + SQL.Add("from XLXSBJD "); + SQL.Add("left join YXXM on YXXM_XMID = XLXSBJD_XMID "); + SQL.Add("where XLXSBJD_BJDID = :pBJDID "); + SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + + if (!ds.Tables[0].Rows[0]["YXXM_WFID"].ToString().Trim().Equals("")) + { + //若XLXSBJD_XMID字段不为空,则点击“项目”标签,打开对应的“100958000|售前项目”记录; + TPageParams pageParams = new TPageParams(); + pageParams.CallAction = TPageCallAction.pcaBrowse; + pageParams.UrlPath = "../Components/N_SQXM/SQXMDJInfo.aspx"; + pageParams.AddString("YXXM_XMID", ds.Tables[0].Rows[0]["XLXSBJD_XMID"].ToString().Trim()); + pageParams.AddString("WFID", ds.Tables[0].Rows[0]["YXXM_WFID"].ToString().Trim()); + pageParams.AddString("WFInst", ds.Tables[0].Rows[0]["YXXM_WFINST"].ToString().Trim()); + OpenModuleDialog(100958000, pageParams); + } + else + { + if (!ds.Tables[0].Rows[0]["XLXSBJD_XMMC"].ToString().Trim().Equals("")) + { + //点击“项目”标签,以新建状态打开“100958000|售前项目”卡片页,将报价单“客户”、“项目”传递给售前项目记录的“业主方”、“项目”,在售前项目保存时,将生成的项目编号回填更新至XLXSBJD_XMID字段。 + TPageParams pageParams = new TPageParams(); + pageParams.CallAction = TPageCallAction.pcaInsert; + pageParams.UrlPath = "../Components/N_SQXM/SQXMDJInfo.aspx"; + pageParams.AddString("XLXSBJD_BJDID", txtBJDID.Text.Trim()); + pageParams.AddString("XLXSBJD_KH", ds.Tables[0].Rows[0]["XLXSBJD_KH"].ToString().Trim()); + pageParams.AddString("XLXSBJD_XMMC", ds.Tables[0].Rows[0]["XLXSBJD_XMMC"].ToString().Trim()); + OpenModuleDialog(100958000, pageParams, btnRefreshCLHQTZ.ClientID); + } + } + } + } + + //付款说明 + protected void lblFKSM_Click(object sender, EventArgs e) + { + TPageParams pageParams = new TPageParams(); + pageParams.UrlPath = "XLBJD_MsgDefList.aspx"; + pageParams.Title = "付款说明信息类助手"; + pageParams.AddString("XLXSBJSM_ZDM", "FKSM"); + pageParams.AddString("txtZDM", txtZDM.ClientID); + pageParams.AddString("txtSMID", txtSMID.ClientID); + pageParams.AddString("btnCODECLASS", btnCODECLASS.ClientID.Trim()); + OpenDialog(pageParams); + } + + //报价备注 + protected void lblBZ_Click(object sender, EventArgs e) + { + TPageParams pageParams = new TPageParams(); + pageParams.UrlPath = "XLBJD_MsgDefList.aspx"; + pageParams.Title = "报价备注信息类助手"; + pageParams.AddString("XLXSBJSM_ZDM", "BZ"); + pageParams.AddString("txtZDM", txtZDM.ClientID); + pageParams.AddString("txtSMID", txtSMID.ClientID); + pageParams.AddString("btnCODECLASS", btnCODECLASS.ClientID.Trim()); + OpenDialog(pageParams); + } + + //客户 + protected void linkKH_Click(object sender, EventArgs e) + { + if (!txtKH.Text.Trim().Equals("")) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Add("select KHXX_CRMKHID, KHXX_MC "); + SQL.Add("from KHXX "); + SQL.Add("where KHXX_MC = :pMC "); + SQL.ParamByName("pMC").Value = txtKH.Text.Trim(); + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + TPageParams pageParams = new TPageParams(); + pageParams.CallAction = TPageCallAction.pcaBrowse; + pageParams.UrlPath = "../Components/N_SQKH/KHDJInfo.aspx"; + pageParams.AddString("CRMKHID", ds.Tables[0].Rows[0]["KHXX_CRMKHID"].ToString().Trim()); + OpenModuleDialog(100956000, pageParams); + + } + else + { + TPageParams pageParams = new TPageParams(); + pageParams.CallAction = TPageCallAction.pcaInsert; + pageParams.UrlPath = "../Components/N_SQKH/KHDJInfo.aspx"; + pageParams.AddString("FromXLXSBJD", "FromXLXSBJD"); + pageParams.AddString("KH", txtKH.Text.Trim()); + OpenModuleDialog(100956000, pageParams); + + } + } + } + + //B|销售单位 + protected void linkSYDWID_Click(object sender, EventArgs e) + { + TPageParams pageParams = new TPageParams(); + pageParams.UrlPath = "XLBJD_ZDTJYSInfo.aspx"; + pageParams.Title = "销售单位调整"; + pageParams.AddString("TJYS", "B"); + pageParams.AddString("BJDID", txtBJDID.Text.Trim()); + pageParams.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); + pageParams.AddString("SYDWID", cbxSYDWID.SelectedValue.Trim()); + pageParams.AddString("btnRefreshCLHQTZ", btnRefreshCLHQTZ.ClientID); + OpenDialog(pageParams); + } + + //8|付款期限 + protected void linkFKQXNR_Click(object sender, EventArgs e) + { + TPageParams pageParams = new TPageParams(); + pageParams.UrlPath = "XLBJD_ZDTJYSInfo.aspx"; + pageParams.Title = "付款期限调整"; + pageParams.AddString("TJYS", "8"); + pageParams.AddString("BJDID", txtBJDID.Text.Trim()); + pageParams.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); + pageParams.AddString("FKQXNR", cbxFKQXNR.SelectedValue.Trim()); + pageParams.AddString("btnRefreshCLHQTZ", btnRefreshCLHQTZ.ClientID); + OpenDialog(pageParams); + } + + //8|付款期限 + protected void lblFKQXTJB_OnClientClick(object sender, EventArgs e) + { + string sJGBID = string.Empty; + List jgbxx_List = XLBJDUtils.GetXLXSJGBXXList("BJD"); + foreach (JGBMLXX jgbxx in jgbxx_List) + { + if (jgbxx.XLXSJGB_TJYS.Equals("8")) + { + sJGBID = jgbxx.XLXSJGB_JGBID; + break; + } + } + if (!sJGBID.Trim().Equals("")) + { + TPageParams tpp = new TPageParams(); + tpp.UrlPath = "TZYZBJ8List.aspx"; + tpp.AddString("JGBID", sJGBID); + OpenFuncModuleDialog(100860039, tpp, btnRefreshFKQXTJB.ClientID); + } + } + + //1|付款方式 + protected void lblPJLX_Click(object sender, EventArgs e) + { + TPageParams pageParams = new TPageParams(); + pageParams.UrlPath = "XLBJD_ZDTJYSInfo.aspx"; + pageParams.Title = "付款方式调整"; + pageParams.AddString("TJYS", "1"); + pageParams.AddString("BJDID", txtBJDID.Text.Trim()); + pageParams.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); + pageParams.AddString("PJLX", cbxPJLX.SelectedValue.Trim()); + pageParams.AddString("btnRefreshCLHQTZ", btnRefreshCLHQTZ.ClientID); + OpenDialog(pageParams); + } + + + //是否有100860008模块权限 + private bool CheckLL() + { + UserRight UR = OpRightUtils.GetUserRight(CurSession.UserId, 100860008); + return (DSActiveModule.IsActiveModule(100860008) && UR.Open); + } + + //是否有100860010模块权限 + private bool CheckCLCB() + { + UserRight UR = OpRightUtils.GetUserRight(CurSession.UserId, 100860010); + return (DSActiveModule.IsActiveModule(100860010) && UR.Open); + } + + //是否有100860024模块权限 + private bool CheckLJ() + { + UserRight UR = OpRightUtils.GetUserRight(CurSession.UserId, 100860024); + return (DSActiveModule.IsActiveModule(100860024) && UR.Open); + } + + //判断模块是否存在并且是否有权限 + private bool CheckModule(string sUMID) + { + int iUMID = CMISproConvert.StrToInt(sUMID); + UserRight UR = OpRightUtils.GetUserRight(CurSession.UserId, iUMID); + return (DSActiveModule.IsActiveModule(iUMID) && UR.Open); + } + + //是否有100860039模块权限 + private bool CheckFKQXTJB() + { + UserRight UR = OpRightUtils.GetUserRight(CurSession.UserId, 100860039); + return (DSActiveModule.IsActiveModule(100860039) && UR.Open); + } + + //是否有102579014模块权限 + private bool CheckYLZDFP() + { + UserRight UR = OpRightUtils.GetUserRight(CurSession.UserId, 102579014); + return (DSActiveModule.IsActiveModule(102579014) && UR.Open); + } + + //是否注册102709000模块 + public static bool CheckXSYBJSQ_SS() + { + return DSActiveModule.IsActiveModule(102709000); + } + + //同步补充插入XLXSCLQD、XLXSJGBMX中没有的记录 + + public static void InsertCLQDorJGBMX(string sBJDID, string sJGBID, string sJGCIDS, CMISproSession cSession) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + InsertCLQDorJGBMX(dberp, SQL, sBJDID, sJGBID, sJGCIDS, cSession); + } + public static void InsertCLQDorJGBMX(TDatabase dberp, TSQL SQL, string sBJDID, string sJGBID, string sJGCIDS, CMISproSession cSession) + { + //是否有模块权限:102579008|报价材料用量 + UserRight UR = OpRightUtils.GetUserRight(cSession.UserId, 102579008); + bool bRight = (DSActiveModule.IsActiveModule(102579008) && UR.Open); + if (!bRight) + { + return; + } + bool bInsCLQD = false; + bool bInsJGBMX = false; + string sBJU003 = cSession.GetOption(100860000, "BJU003"); + Dictionary dicLenJLDWTD = XLBJDUtils.GetLenJLDWTD(); + XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860014); + + + if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_CLYLZJFS)) + { + //仅当XLXSBJPZ_CLYLZJFS含有“0|销售报价单明细无清单触发”,才需要插入“102579008|报价材料用量”记录; + //仅当XLXSBJPZ_CLYLZJFS含有“1|销售价格表明细无清单触发”,才需要插入价格表明细记录; + string sCLYLZJFS = pzxx.XLXSBJPZ_CLYLZJFS; + if (sCLYLZJFS.Contains("0")) + { + bInsCLQD = true; + } + + if (sCLYLZJFS.Contains("1")) + { + bInsJGBMX = true; + } + + } + + if (TWorkflow.Utils.QYWFByWFVID("XLXSBJCLYL") && bInsCLQD) + { + TWorkflow awf1 = new TWorkflow(cSession, null); + awf1.UMID = 102579008; + awf1.CurUserID = cSession.UserId; + string sWFID = awf1.GetWFID("XLXSBJCLYL"); + string sYWSW = TWorkflow.Utils.WFGetYHSWID(sWFID, "0010"); + + SQL.Clear(); + SQL.Add("select XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_XLBZID,XLXSCLQD_DYDJID,"); + SQL.Add(" XLXSCLQD_WFID,XLXSCLQD_WFINST,XLXSCLQD_WFAWAITER"); + SQL.Add(" from XLXSCLQD"); + SQL.Add(" where XLXSCLQD_WFID=:pWFID"); + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSCLQD_WPID", sYWSW)); + SQL.Add(" and XLXSCLQD_BJDID=:pBJDID"); + SQL.Add(" and not exists(select 1 from XLXSBJDMX where XLXSBJDMX_BJDID=:pBJDID and XLXSBJDMX_XH=XLXSCLQD_BJDXH"); + SQL.Add(" and XLXSBJDMX_XLXHID=XLXSCLQD_XLXHID and XLXSBJDMX_XLGGID=XLXSCLQD_XLGGID and XLXSBJDMX_XLBZID=XLXSCLQD_XLBZID and isnull(XLXSBJDMX_DYDJID,' ')=XLXSCLQD_DYDJID)"); + SQL.ParamByName("pWFID").Value = sWFID; + SQL.ParamByName("pBJDID").Value = sBJDID; + DataSet dsCLYL = dberp.OpenDataSet(SQL); + if (dsCLYL.Tables[0].Rows.Count > 0) + { + Dictionary dicDelWfinst = new Dictionary(); + + for (int i = 0; i < dsCLYL.Tables[0].Rows.Count; i++) + { + double dWfinst = CMISproConvert.StrToFloat(dsCLYL.Tables[0].Rows[i]["XLXSCLQD_WFINST"].ToString()); + string sAwaiter = dsCLYL.Tables[0].Rows[i]["XLXSCLQD_WFAWAITER"].ToString().Trim(); + string sGH = sAwaiter.TrimStart(',').TrimEnd(',').Split(',')[0].Trim(); + awf1.WFInfo(sWFID, dWfinst, sGH); + bool bCanDel = awf1.WFRights.HasRight(TWFRight.wfrCanDelete); + if (bCanDel) + { + awf1.WFDelete(sWFID, dWfinst, ""); + dicDelWfinst.Add(dWfinst, sWFID); + } + } + if (dicDelWfinst.Keys.Count > 0) + { + //批量删除 + SQL.Clear(); + SQL.Add("delete from XLXSCLQD"); + SQL.Add(" where XLXSCLQD_WFID=:pWFID"); + SQL.Add(" and ("); + bool bFirst = true; + foreach (double dKey in dicDelWfinst.Keys) + { + if (bFirst) + { + SQL.Add(string.Format(" XLXSCLQD_WFINST={0} ", dKey)); + bFirst = false; + } + else + SQL.Add(string.Format(" or XLXSCLQD_WFINST={0} ", dKey)); + } + SQL.Add(" )"); + SQL.ParamByName("pWFID").Value = sWFID; + dberp.ExecSQL(SQL); + } + } + + //查询在XLXSCLQD中没有的数据(需排除型号、规格、标准、电压等级相同的记录) + SQL.Clear(); + SQL.Add("select min(XLXSBJDMX_XH) as minXH,XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID,XLXSBJDMX_XLBZID,XLXSBJDMX_DYDJID "); + SQL.Add("from XLXSBJDMX "); + SQL.Add("left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSBJDMX_XLGGID "); + SQL.Add("where XLXSBJDMX_BJDID=:pBJDID "); + SQL.Add(" and not exists(select 1 from XLXSCLQD where XLXSCLQD_XLXHID=XLXSBJDMX_XLXHID and XLXSCLQD_XLGGID=XLXSBJDMX_XLGGID "); + SQL.Add(" and XLXSCLQD_XLBZID=isnull(XLXSBJDMX_XLBZID,' ') and XLXSCLQD_DYDJID=isnull(XLXSBJDMX_DYDJID,' ')) "); + SQL.Add(" and exists(select 1 from XLXHB where XLXHB_XLXHID = XLXSBJDMX_XLXHID )"); + SQL.Add(" and exists(select 1 from XLGGB where XLGGB_XLGGID = XLXSBJXLGGTHB_XLGGIDCH )"); + SQL.Add("group by XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID,XLXSBJDMX_XLBZID,XLXSBJDMX_DYDJID "); + SQL.Add("order by minXH"); + SQL.ParamByName("pBJDID").Value = sBJDID; + DataSet dsCLQD = dberp.OpenDataSet(SQL); + for (int i = 0; i < dsCLQD.Tables[0].Rows.Count; i++) + { + //创建线缆销售报价材料用量之工作流实例 + string sDYDJ = dsCLQD.Tables[0].Rows[i]["XLXSBJDMX_DYDJID"].ToString().Trim().Equals("") ? " " : dsCLQD.Tables[0].Rows[i]["XLXSBJDMX_DYDJID"].ToString().Trim(); + + SQL.Clear(); + SQL.Add("insert into XLXSCLQD(XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_XLBZID,XLXSCLQD_DYDJID,XLXSCLQD_BZ,XLXSCLQD_WHR,XLXSCLQD_WHRID,XLXSCLQD_WHSJ,"); + SQL.Add("XLXSCLQD_BJDID,XLXSCLQD_BJDXH,"); + SQL.Add("XLXSCLQD_CLJGBL01,XLXSCLQD_CLJGBL02,XLXSCLQD_CLJGBL03,XLXSCLQD_CLJGBL04,XLXSCLQD_CLJGBL05,XLXSCLQD_CLJGBL06,XLXSCLQD_CLJGBL07,XLXSCLQD_CLJGBL08,XLXSCLQD_CLJGBL09,XLXSCLQD_CLJGBL10,"); + SQL.Add("XLXSCLQD_CLJGBL11,XLXSCLQD_CLJGBL12,XLXSCLQD_CLJGBL13,XLXSCLQD_CLJGBL14,XLXSCLQD_CLJGBL15,XLXSCLQD_CLJGBL16,XLXSCLQD_CLJGBL17,XLXSCLQD_CLJGBL18,XLXSCLQD_CLJGBL19,XLXSCLQD_CLJGBL20,"); + SQL.Add("XLXSCLQD_CLJGBL21,XLXSCLQD_CLJGBL22,XLXSCLQD_CLJGBL23,XLXSCLQD_CLJGBL24,XLXSCLQD_CLJGBL25,XLXSCLQD_CLJGBL26,XLXSCLQD_CLJGBL27,XLXSCLQD_CLJGBL28,XLXSCLQD_CLJGBL29,XLXSCLQD_CLJGBL30,"); + SQL.Add("XLXSCLQD_CLJGBL31,XLXSCLQD_CLJGBL32,XLXSCLQD_CLJGBL33,XLXSCLQD_CLJGBL34,XLXSCLQD_CLJGBL35,XLXSCLQD_CLJGBL36,XLXSCLQD_CLJGBL37,XLXSCLQD_CLJGBL38,XLXSCLQD_CLJGBL39,XLXSCLQD_CLJGBL40,"); + SQL.Add("XLXSCLQD_CLJGBL41,XLXSCLQD_CLJGBL42,XLXSCLQD_CLJGBL43,XLXSCLQD_CLJGBL44,XLXSCLQD_CLJGBL45,XLXSCLQD_CLJGBL46,XLXSCLQD_CLJGBL47,XLXSCLQD_CLJGBL48,XLXSCLQD_CLJGBL49,XLXSCLQD_CLJGBL50,"); + SQL.Add("XLXSCLQD_CLJGBL51,XLXSCLQD_CLJGBL52,XLXSCLQD_CLJGBL53,XLXSCLQD_CLJGBL54,XLXSCLQD_CLJGBL55,XLXSCLQD_CLJGBL56,XLXSCLQD_CLJGBL57,XLXSCLQD_CLJGBL58,XLXSCLQD_CLJGBL59,XLXSCLQD_CLJGBL60,"); + SQL.Add("XLXSCLQD_CLJGBL61,XLXSCLQD_CLJGBL62,XLXSCLQD_CLJGBL63,XLXSCLQD_CLJGBL64,XLXSCLQD_CLJGBL65,XLXSCLQD_CLJGBL66,XLXSCLQD_CLJGBL67,XLXSCLQD_CLJGBL68,XLXSCLQD_CLJGBL69,XLXSCLQD_CLJGBL70,"); + SQL.Add("XLXSCLQD_CLJGBL71,XLXSCLQD_CLJGBL72,XLXSCLQD_CLJGBL73,XLXSCLQD_CLJGBL74,XLXSCLQD_CLJGBL75,XLXSCLQD_CLJGBL76,XLXSCLQD_CLJGBL77,XLXSCLQD_CLJGBL78,XLXSCLQD_CLJGBL79,XLXSCLQD_CLJGBL80) "); + SQL.Add("values(:XLXSCLQD_XLXHID,:XLXSCLQD_XLGGID,:XLXSCLQD_XLBZID,:XLXSCLQD_DYDJID,:XLXSCLQD_BZ,:XLXSCLQD_WHR,:XLXSCLQD_WHRID,:XLXSCLQD_WHSJ,"); + SQL.Add(" :XLXSCLQD_BJDID,:XLXSCLQD_BJDXH,"); + SQL.Add(" 1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,"); + SQL.Add(" 1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,"); + SQL.Add(" 1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,"); + SQL.Add(" 1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,"); + SQL.Add(" 1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,"); + SQL.Add(" 1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,"); + SQL.Add(" 1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,"); + SQL.Add(" 1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0)"); + SQL.ParamByName("XLXSCLQD_XLXHID").Value = dsCLQD.Tables[0].Rows[i]["XLXSBJDMX_XLXHID"].ToString().Trim(); + SQL.ParamByName("XLXSCLQD_XLGGID").Value = dsCLQD.Tables[0].Rows[i]["XLXSBJDMX_XLGGID"].ToString().Trim(); + SQL.ParamByName("XLXSCLQD_XLBZID").Value = dsCLQD.Tables[0].Rows[i]["XLXSBJDMX_XLBZID"].ToString().Trim(); + SQL.ParamByName("XLXSCLQD_DYDJID").Value = sDYDJ; + SQL.ParamByName("XLXSCLQD_BZ").Value = string.Format("由报价单明细记录[{0}]自动生成。", sBJDID + "|" + dsCLQD.Tables[0].Rows[i]["minXH"].ToString().Trim()); + SQL.ParamByName("XLXSCLQD_WHR").Value = cSession.UserName; + SQL.ParamByName("XLXSCLQD_WHRID").Value = cSession.UserId; + SQL.ParamByName("XLXSCLQD_WHSJ").Value = DateTime.Now; + SQL.ParamByName("XLXSCLQD_BJDID").Value = sBJDID; + SQL.ParamByName("XLXSCLQD_BJDXH").Value = dsCLQD.Tables[0].Rows[i]["minXH"].ToString().Trim(); + dberp.ExecSQL(SQL); + + //增加工作流数据 + TWorkflow awf = new TWorkflow(cSession, null); + awf.UMID = 102579008; + awf.CurUserID = cSession.UserId; + awf.WFNewInst(awf.GetWFID("XLXSBJCLYL"), cSession.UserId); + dberp.ExecSQL(string.Format("update XLXSCLQD set XLXSCLQD_WPID='{0}', XLXSCLQD_WFAWAITER='{1}', XLXSCLQD_WFHANDLER='{2}' ,XLXSCLQD_WFINST={3},XLXSCLQD_WFID='{4}',XLXSCLQD_ACTNAME='{5}' where XLXSCLQD_XLXHID='{6}' and XLXSCLQD_XLGGID='{7}' and XLXSCLQD_XLBZID='{8}' and XLXSCLQD_DYDJID='{9}'", + awf.WPID, awf.Awaiter, awf.Handler, awf.WFInst, awf.WFID, awf.GetWFActionName(TWFAction.wfaNewInst), dsCLQD.Tables[0].Rows[i]["XLXSBJDMX_XLXHID"].ToString().Trim(), + dsCLQD.Tables[0].Rows[i]["XLXSBJDMX_XLGGID"].ToString().Trim(), dsCLQD.Tables[0].Rows[i]["XLXSBJDMX_XLBZID"].ToString().Trim(), sDYDJ)); + + string ssWFID = awf.WFID; + double WFINST = awf.WFInst; + string sAWaiter = awf.Awaiter; + string sNextAwaiter = ""; + + //提交下一步 + awf.Enabled = true; + string sUser; + string[] sStr = sAWaiter.Split(','); + try + { + sUser = sStr[1]; + } + catch + { + sUser = cSession.UserId; + } + awf.CurUserID = sUser; + + awf.WFInfo(ssWFID, WFINST, sUser); + + TWFActionParam param = new TWFActionParam(); + param.sOpinion = "报价单自动提交!"; + param.sNextWFID = ssWFID; + string sNWPID = ""; + + //---------直接使用工作流方法取下一步工作流NWPID,不再使用直接写的方法 + TStrings wfpName = new TStrings(); + wfpName.Text = awf.WFGetNextWFP(ssWFID, awf.WFGetStartWPID(ssWFID)); + try + { + if (wfpName.Count > 1) + { + sNWPID = wfpName.Names(1).Trim(); + } + } + catch + { + continue; + } + //----- + + param.sNextWPID = sNWPID; + param.sNextNotifier = ""; + if (!sNWPID.Trim().Equals("ZZZZ")) + { + sNextAwaiter = awf.WFGetNextAwaiter(ssWFID, sNWPID); + if (sNextAwaiter.Trim().Equals("") || sNextAwaiter.Trim().Length > 250) + { + continue; + } + } + else + { + //第一步到结束过程需要手动提交,需要调整数据,此处不做处理。 + continue; + } + param.sNextAwaiter = "," + sNextAwaiter + ","; + if (!awf.WFIsStopWPID(ssWFID, sNWPID)) + param.sWFState = TWorkflow.wfsRunning; + else + param.sWFState = TWorkflow.wfsDone; + + if (awf.WFWorkIsDone(ssWFID, WFINST, sUser)) + { + param.sWPState = TWorkflow.wpsSubmit; + } + else + { + param.sWPState = TWorkflow.wfsRunning; + } + awf.WFSubmit(ssWFID, WFINST, sUser, param); + awf.dbe.ExecSQL(string.Format("update XLXSCLQD set XLXSCLQD_WPID='{0}', XLXSCLQD_WFAWAITER='{1}', XLXSCLQD_WFHANDLER='{2}' ,XLXSCLQD_WFINST={3},XLXSCLQD_WFID='{4}',XLXSCLQD_ACTNAME='{5}' where XLXSCLQD_XLXHID='{6}' and XLXSCLQD_XLGGID='{7}' and XLXSCLQD_XLBZID='{8}' and XLXSCLQD_DYDJID='{9}'", + awf.WPID, awf.Awaiter, awf.Handler, awf.WFInst, awf.WFID, awf.GetWFActionName(TWFAction.wfaSubmit), dsCLQD.Tables[0].Rows[i]["XLXSBJDMX_XLXHID"].ToString().Trim(), + dsCLQD.Tables[0].Rows[i]["XLXSBJDMX_XLGGID"].ToString().Trim(), dsCLQD.Tables[0].Rows[i]["XLXSBJDMX_XLBZID"].ToString().Trim(), sDYDJ)); + } + } + + //因为报价单明细会被随便填写,不能就这样进基础数据表中。此处不补全基本信息 + //if (1 == flag) + //{ + // //批量插入在XLXHB中没有的数据 + // XLUtils.InsertXLXHBFromXLXSCLQD(); + //} + + //批量插入在XLXSJGBMX中没有的数据 + if (sJGCIDS.Trim().Equals("") && !XLBJDUtils.IsJGEJGB(sJGBID.Trim()) && bInsJGBMX)//组合产品目录价格表不执行以下语句,因为其没有明细实体,不知道要插到哪个JGCID中; + //表价实时计算价格表也不执行以下语句 + { + SQL.Clear(); + SQL.Add("insert into XLXSJGBMX( "); + SQL.Add("XLXSJGBMX_JGBID,XLXSJGBMX_XH, "); + SQL.Add("XLXSJGBMX_XLXHID,XLXSJGBMX_XLGGID,XLXSJGBMX_XLBZID,XLXSJGBMX_DYDJID, "); + SQL.Add("XLXSJGBMX_YXQS,XLXSJGBMX_YXQZ,XLXSJGBMX_JLDW, "); + SQL.Add("XLXSJGBMX_WSJJ,XLXSJGBMX_HSJJ,XLXSJGBMX_WSBJ,XLXSJGBMX_HSBJ, "); + SQL.Add("XLXSJGBMX_BZ,XLXSJGBMX_WHRID,XLXSJGBMX_WHR,XLXSJGBMX_WHSJ) "); + SQL.Add("select :pJGBID as JGBID, "); + SQL.Add("(select isnull(max(XLXSJGBMX_XH),0.0) from XLXSJGBMX where XLXSJGBMX_JGBID=:pJGBID)+row_number() "); + SQL.Add("over(order by minXH) as XH, "); + SQL.Add("XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID,XLXSBJDMX_XLBZID,XLXSBJDMX_DYDJID,a.XLXSJGB_YXQS as JGBYXQS,a.XLXSJGB_YXQZ as JGBYXQZ,'" + sBJU003 + "',"); + SQL.Add("isnull(WSCLCB,0.0) as WSCLCB,isnull(CLCB,0.0) as CLCB, "); + + //SQL.Add("case when isnull(WSCLCB,0.0)<>0.0 then (isnull(WSCLCB,0.0)*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)+isnull(JJYZZ,0)) else 0.0 end as WSCPJJ, "); + //SQL.Add("case when isnull(CLCB,0.0)<>0.0 then (isnull(CLCB,0.0)*isnull(JDYZZ,1.0)*isnull(KDYZZ,1.0)+isnull(JJYZZ,0)) else 0.0 end as CPJJ, "); + SQL.Add("isnull(WSCLCB,0.0) as WSCPJJ,isnull(CLCB,0.0) as CPJJ, "); + + SQL.Add("'由报价单明细记录['||rtrim(XLXSBJDMX_BJDID)||'|'||rtrim(convert(char,minXH))||']自动生成。' as BZ, "); + SQL.Add(":pWHRID,:pWHR,:pWHSJ "); + SQL.Add("from "); + SQL.Add("(select XLXSJGB_YXQS,XLXSJGB_YXQZ from XLXSJGB where XLXSJGB_MXBH='JGB' and XLXSJGB_JGBID=(select XLXSBJD_JGBID from XLXSBJD where XLXSBJD_BJDID=:pBJDID)) a, "); + //SQL.Add("(select "); + + //SQL.Add(" exp(sum(log(case when JJFS='JD' then (1.0+YZZ/100.0) else 1.0 end))) as JDYZZ,"); + //SQL.Add(" exp(sum(log(case when JJFS='KD' then 1.0/(1.0-YZZ/100.0) else 1.0 end))) as KDYZZ,"); + //SQL.Add(" sum(case when JJFS='JJ' then YZZ else 0.0 end) as JJYZZ"); + + //SQL.Add(" from (select sum(XLXSJGBYZZ_YZZ) as YZZ,XLXSTZYZ_JJFS as JJFS,XLXSTZYZ_TJYZID"); + //SQL.Add(" from XLXSJGBYZZ,XLXSTZYZ"); + //SQL.Add(" where XLXSTZYZ_MXBH='JZJ' and XLXSTZYZ_TJYS=' ' and XLXSJGBYZZ_JGBID=XLXSTZYZ_JGBID and XLXSJGBYZZ_YZID=XLXSTZYZ_YZID "); + //SQL.Add(" and exists(select 1 from XLXSJGBYZ where XLXSJGBYZ_JGBID=:pJGBID and XLXSJGBYZ_YZID=XLXSTZYZ_YZID)");//必须是当前价格表所用的调价因子 + //SQL.Add(" group by XLXSTZYZ_JJFS,XLXSTZYZ_TJYZID"); + //SQL.Add(" ) bbb"); + //SQL.Add(") b, "); + SQL.Add("(select XLXSBJDMX_BJDID,min(XLXSBJDMX_XH) as minXH,XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID,XLXSBJDMX_XLBZID,XLXSBJDMX_DYDJID,XLXSBJXLGGTHB_XLGGIDCH "); + SQL.Add(" from XLXSBJDMX left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSBJDMX_XLGGID where XLXSBJDMX_BJDID=:pBJDID "); + SQL.Add(" and (XLXSBJDMX_JLDW in ('Km','M','千米','米') "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" or XLXSBJDMX_JLDW='{0}'", sKey)); + } + SQL.Add(" )"); + SQL.Add(" group by XLXSBJDMX_BJDID,XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID,XLXSBJDMX_XLBZID,XLXSBJDMX_DYDJID,XLXSBJXLGGTHB_XLGGIDCH "); + SQL.Add(") c "); + + SQL.Add("left join "); + //取XLXLCLQD_WSCLCB\CLCB--begin + SQL.Add(" ("); + SQL.Add(" select XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_XLBZID,XLXSCLQD_DYDJID,"); + SQL.Add(" sum("); + SQL.Add(" isnull(XLXSCLHQ_WSJG,0.0)"); + SQL.Add(" *(case "); + for (int i = 1; i <= 80; i++) + { + SQL.Add(string.Format(" when XLJGCZBLM_CLQDL='{0}' then XLXSCLQD_SL{1} ", "第" + i.ToString().PadLeft(2, '0') + "列", i.ToString().PadLeft(2, '0'))); + } + SQL.Add(" end)"); + SQL.Add(" *(1+(case "); + for (int i = 1; i <= 80; i++) + { + SQL.Add(string.Format(" when XLJGCZBLM_CLQDL='{0}' then XLXSCLQD_SHL{1} ", "第" + i.ToString().PadLeft(2, '0') + "列", i.ToString().PadLeft(2, '0'))); + } + SQL.Add(" end)/100.0)"); + SQL.Add(" *(case "); + for (int i = 1; i <= 80; i++) + { + SQL.Add(string.Format(" when XLJGCZBLM_CLQDL='{0}' then XLXSCLQD_CLJGBL{1} ", "第" + i.ToString().PadLeft(2, '0') + "列", i.ToString().PadLeft(2, '0'))); + } + SQL.Add(" end)"); + SQL.Add(" ) as WSCLCB,"); + SQL.Add(" sum("); + SQL.Add(" isnull(XLXSCLHQ_HSJG,0.0)"); + SQL.Add(" *(case "); + for (int i = 1; i <= 80; i++) + { + SQL.Add(string.Format(" when XLJGCZBLM_CLQDL='{0}' then XLXSCLQD_SL{1} ", "第" + i.ToString().PadLeft(2, '0') + "列", i.ToString().PadLeft(2, '0'))); + } + SQL.Add(" end)"); + SQL.Add(" *(1+(case "); + for (int i = 1; i <= 80; i++) + { + SQL.Add(string.Format(" when XLJGCZBLM_CLQDL='{0}' then XLXSCLQD_SHL{1} ", "第" + i.ToString().PadLeft(2, '0') + "列", i.ToString().PadLeft(2, '0'))); + } + SQL.Add(" end)/100.0)"); + SQL.Add(" *(case "); + for (int i = 1; i <= 80; i++) + { + SQL.Add(string.Format(" when XLJGCZBLM_CLQDL='{0}' then XLXSCLQD_CLJGBL{1} ", "第" + i.ToString().PadLeft(2, '0') + "列", i.ToString().PadLeft(2, '0'))); + } + SQL.Add(" end)"); + SQL.Add(" ) as CLCB"); + SQL.Add(" from XLXSCLQD,XLJGCZBLM"); + SQL.Add(" left join XLXSBJCL on XLXSBJCL_BJCLID=XLJGCZBLM_BJCLID"); + //SQL.Add(" LEFT JOIN XLJGCZBML on XLJGCZBML_JGCZBID = XLJGCZBLM_JGCZBID "); + SQL.Add(" left join"); + SQL.Add(" ("); + SQL.Add(" select XLXSCLHQ_BJCLID,XLXSCLHQ_WSJG,XLXSCLHQ_HSJG"); + SQL.Add(" from XLXSCLHQ"); + SQL.Add(" where XLXSCLHQ_JGBID=:pJGBID"); + SQL.Add(" ) b on XLXSCLHQ_BJCLID=XLXSBJCL_BJCLID"); + SQL.Add(" where XLJGCZBLM_JGCZBID=XLXSCLQD_JGCZBID and XLXSCLQD_JGCZBBBID = XLJGCZBLM_JGCZBBBID and isnull(XLJGCZBLM_CLQDL,' ')<>' '"); + SQL.Add(" group by XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_XLBZID,XLXSCLQD_DYDJID"); + SQL.Add(" ) lf on XLXSCLQD_XLXHID=XLXSBJDMX_XLXHID and XLXSCLQD_XLGGID=XLXSBJDMX_XLGGID and XLXSCLQD_XLBZID=XLXSBJDMX_XLBZID and XLXSCLQD_DYDJID=isnull(XLXSBJDMX_DYDJID,' ') "); + //取XLXLCLQD_WSCLCB\CLCB--end + + SQL.Add("where XLXSBJDMX_BJDID=:pBJDID "); + SQL.Add(" and exists(select 1 from XLXHB where XLXHB_XLXHID = XLXSBJDMX_XLXHID )"); + SQL.Add(" and exists(select 1 from XLGGB where XLGGB_XLGGID = XLXSBJXLGGTHB_XLGGIDCH )"); + SQL.Add(" and not exists(select 1 from XLXSJGBMX where XLXSJGBMX_JGBID=:pJGBID and XLXSJGBMX_XLXHID=XLXSBJDMX_XLXHID and XLXSJGBMX_XLGGID=XLXSBJDMX_XLGGID "); + SQL.Add(" and isnull(XLXSJGBMX_XLBZID,' ')=isnull(XLXSBJDMX_XLBZID,' ') and isnull(XLXSJGBMX_DYDJID,' ')=isnull(XLXSBJDMX_DYDJID,' ')) "); + SQL.ParamByName("pJGBID").Value = sJGBID; + SQL.ParamByName("pWHRID").Value = cSession.UserId; + SQL.ParamByName("pWHR").Value = cSession.UserName; + SQL.ParamByName("pWHSJ").Value = DateTime.Now; + SQL.ParamByName("pBJDID").Value = sBJDID; + string ss = SQL.Text; + dberp.ExecSQL(SQL); + } + } + + //同步报价单明细记录插入XLXSBJDCLCB、XLXSBJDJJYZ BJU003|报价产品默认计量单位 + + public static void InsertCLCBandJJYZ(TControlState tmpState, string sBJDID, string sJGBID, string sUserID, string sUserMC, string sBJU003, bool bHSBZ) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + InsertCLCBandJJYZ(dberp, SQL, tmpState, sBJDID, sJGBID, GetBJRQbyBJDID(sBJDID), sUserID, sUserMC, sBJU003, bHSBZ); + } + public static void InsertCLCBandJJYZ(TDatabase dberp, TSQL SQL, TControlState tmpState, string sBJDID, string sJGBID, string sBJRQ, string sUserID, string sUserMC, string sBJU003, bool bHSBZ) + { + //bool IsJGEJGB = XLBJDUtils.IsJGEJGB(sJGBID.Trim()); + SQL.Clear(); + SQL.Add("select XLXSJGB_MXBH,XLXSJGB_TJYS from XLXSJGB where XLXSJGB_JGBID=:pJGBID"); + SQL.ParamByName("pJGBID").Value = sJGBID.Trim(); + DataSet dsJGB = dberp.OpenDataSet(SQL); + bool IsJGEJGB = false; + bool IsJGBID3 = false; + if (dsJGB.Tables[0].Rows.Count > 0) + { + IsJGEJGB = dsJGB.Tables[0].Rows[0]["XLXSJGB_MXBH"].ToString().Trim().Equals("JGE"); + IsJGBID3 = dsJGB.Tables[0].Rows[0]["XLXSJGB_TJYS"].ToString().Trim().Equals("3"); + } + //因素3价格表对应的所依价格表已经记录了材料清单,为减少不必要的开销、提高报价速度,因素3价格表不记录XLXSBJDCLCB、并且和JGE一样XLXSBJDJJYZ单独处理 + if (IsJGBID3) + return; + + if (tmpState == TControlState.ctsEdit) + { + //先删除价格表更新时间小于报价单明细的记录 + SQL.Clear(); + SQL.Add("delete from XLXSBJDCLCB where XLXSBJDCLCB_BJDID=:pBJDID "); + SQL.Add(" and not exists(select 1 from XLXSBJDMX where XLXSBJDCLCB_BJDID=XLXSBJDMX_BJDID and XLXSBJDCLCB_XH=XLXSBJDMX_XH "); + SQL.Add(" and isnull(XLXSBJDCLCB_JGBBJGXSJ, convert(datetime, '1900-01-01')) = isnull(XLXSBJDMX_JGBBJGXSJ, convert(datetime, '1900-01-01')) ) "); + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + if (!IsJGEJGB)//JGE程序单独处理 + { + SQL.Clear(); + SQL.Add("delete from XLXSBJDJJYZ where XLXSBJDJJYZ_BJDID=:pBJDID "); + SQL.Add(" and not exists(select 1 from XLXSBJDCLCB where XLXSBJDCLCB_BJDID=XLXSBJDJJYZ_BJDID and XLXSBJDCLCB_XH=XLXSBJDJJYZ_XH) "); + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + } + } + + //处理XLXSBJDMX_JSYCBZ、XLXSBJDMX_JGBBJ字段 + if (IsJGEJGB) + { + //先清空明细异常标志并重置表价 + SQL.Clear(); + SQL.Add("update XLXSBJDMX set XLXSBJDMX_JSYCBZ = ' ',XLXSBJDMX_JGBBJ=abs(XLXSBJDMX_JGBBJ) where XLXSBJDMX_BJDID =:pBJDID and isnull(XLXSBJDMX_JSYCBZ,' ')<>' ' "); + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + Dictionary dicJGBTJYZ = GetJGBBTYZ(sJGBID); + Dictionary dicJGBFGQCPYZ = GetJGBFGQCPYZ(sJGBID); + SQL.Clear(); + SQL.Add(" merge into XLXSBJDMX tar "); + SQL.Add(" using ( "); + SQL.Add(" select XLXSBJDJJYZ_BJDID,XLXSBJDJJYZ_XH , "); + SQL.Add(" case when XLXSBJDMX_BJDHQCLCB<0 then 'A,' else ' ' end "); + foreach (string sKey in dicJGBTJYZ.Keys) + { + SQL.Add(" || case when XLXSBJDJJYZ_YZZ" + sKey.Replace("JZ", "") + " = 0 then '" + GetJGBYZYCBZ(sKey) + ",' else ' ' end "); + } + foreach (string sKey in dicJGBFGQCPYZ.Keys) + { + SQL.Add(" || case when XLXSBJDJJYZ_YZZ" + sKey.Replace("JZ", "") + " = -9999 then '" + GetJGBYZYCBZ(sKey) + "F,' else ' ' end "); + } + SQL.Add(" as JSYCBZ "); + SQL.Add(" from XLXSBJDJJYZ "); + SQL.Add(" left join XLXSBJDMX on XLXSBJDMX_BJDID = XLXSBJDJJYZ_BJDID and XLXSBJDMX_XH = XLXSBJDJJYZ_XH "); + SQL.Add(" where XLXSBJDJJYZ_BJDID = :pBJDID "); + SQL.Add(" and ( XLXSBJDMX_BJDHQCLCB < 0 "); + foreach (string sKey in dicJGBTJYZ.Keys) + { + SQL.Add(" or XLXSBJDJJYZ_YZZ" + sKey.Replace("JZ", "") + " = 0 "); + } + foreach (string sKey in dicJGBFGQCPYZ.Keys) + { + SQL.Add(" or XLXSBJDJJYZ_YZZ" + sKey.Replace("JZ", "") + " = -9999 "); + } + SQL.Add(" ) "); + SQL.Add(" ) sor"); + SQL.Add(" on ("); + SQL.Add(" XLXSBJDMX_BJDID =:pBJDID "); + SQL.Add(" and XLXSBJDMX_BJDID = XLXSBJDJJYZ_BJDID "); + SQL.Add(" and XLXSBJDMX_XH = XLXSBJDJJYZ_XH and XLXSBJDMX_BJLY<>'SSJGBBJ' "); + SQL.Add(" and isnull(XLXSBJDMX_JGFBZ,'N') <> 'Y' and isnull(XLXSBJDMX_WGCPBZ,'N') <> 'Y' "); + SQL.Add(" ) "); + SQL.Add(" when matched then update set XLXSBJDMX_JSYCBZ = JSYCBZ ,XLXSBJDMX_JGBBJ = ABS(XLXSBJDMX_JGBBJ) * -1 "); + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + } + + //再进行与报价单明细匹配 + if (!IsJGEJGB)//是否需要按价格表报价 + { + SQL.Clear(); + SQL.Add("insert into XLXSBJDJJYZ(XLXSBJDJJYZ_BJDID, XLXSBJDJJYZ_XH, XLXSBJDJJYZ_YZZ01,XLXSBJDJJYZ_YZZ02,XLXSBJDJJYZ_YZZ03,XLXSBJDJJYZ_YZZ04,XLXSBJDJJYZ_YZZ05,XLXSBJDJJYZ_YZZ06,XLXSBJDJJYZ_YZZ07,XLXSBJDJJYZ_YZZ08,XLXSBJDJJYZ_YZZ09,XLXSBJDJJYZ_YZZ10,XLXSBJDJJYZ_YSJDZ) "); + SQL.Add("select XLXSBJDMX_BJDID,XLXSBJDMX_XH,isnull(XLXSJGBYZZ0_YZZ01,0),isnull(XLXSJGBYZZ0_YZZ02,0),isnull(XLXSJGBYZZ0_YZZ03,0),isnull(XLXSJGBYZZ0_YZZ04,0),isnull(XLXSJGBYZZ0_YZZ05,0),isnull(XLXSJGBYZZ0_YZZ06,0),isnull(XLXSJGBYZZ0_YZZ07,0),isnull(XLXSJGBYZZ0_YZZ08,0),isnull(XLXSJGBYZZ0_YZZ09,0),isnull(XLXSJGBYZZ0_YZZ10,0),isnull(XLXSJGBMX_YSJDZ,0) "); + SQL.Add(" from XLXSBJDMX "); + SQL.Add(" left join XLXSJGBMX on XLXSJGBMX_JGBID=:pJGBID and XLXSJGBMX_XLXHID=XLXSBJDMX_XLXHID and XLXSJGBMX_XLGGID=XLXSBJDMX_XLGGID and XLXSJGBMX_XLBZID=XLXSBJDMX_XLBZID and XLXSJGBMX_DYDJID=XLXSBJDMX_DYDJID"); + SQL.Add(" left join XLXSJGBYZZ0 on XLXSJGBYZZ0_JGBID=:pJGBID and XLXSJGBYZZ0_XH=XLXSJGBMX_XH"); + SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID "); + SQL.Add(" and not exists(select 1 from XLXSBJDJJYZ where XLXSBJDJJYZ_BJDID=XLXSBJDMX_BJDID and XLXSBJDJJYZ_XH=XLXSBJDMX_XH) "); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + } + else + { + + } + + if (tmpState == TControlState.ctsEdit) + { + SQL.Clear(); + SQL.Add("select XLXSBJD_BJFLID,XLXSBJD_TJ,XLXSBJD_LJ,XLXSBJFL_JLBJDHQ, "); + SQL.Add(" XLXSBJFL_BJDHQLY,XLXSBJFL_TZCLHQ,XLXSBJFL_TBJCLID,XLXSBJFL_LBJCLID"); + SQL.Add(" from XLXSBJD"); + SQL.Add(" left join XLXSBJFL on XLXSBJFL_BJFLID=XLXSBJD_BJFLID"); + SQL.Add(" where XLXSBJD_BJDID=:pBJDID"); + SQL.ParamByName("pBJDID").Value = sBJDID.Trim(); + DataSet dsBJFL = dberp.OpenDataSet(SQL); + if (dsBJFL.Tables[0].Rows.Count > 0) + { + string sTZCLHQ = dsBJFL.Tables[0].Rows[0]["XLXSBJFL_TZCLHQ"].ToString().Trim(); + if (!(sTZCLHQ.Equals("Y") && CMISproDataBase.ExistsRecord("DBERP", string.Format("select top 1 XLXSBJDCLHQ_BJCLID from XLXSBJDCLHQ where XLXSBJDCLHQ_BJDID='{0}'", sBJDID)))) + { + string sBJFLID = dsBJFL.Tables[0].Rows[0]["XLXSBJD_BJFLID"].ToString().Trim(); + string sBJDHQLY = dsBJFL.Tables[0].Rows[0]["XLXSBJFL_BJDHQLY"].ToString().Trim(); + string sTBJCLID = dsBJFL.Tables[0].Rows[0]["XLXSBJFL_TBJCLID"].ToString().Trim(); + string sLBJCLID = dsBJFL.Tables[0].Rows[0]["XLXSBJFL_LBJCLID"].ToString().Trim(); + double fTJ = CMISproConvert.StrToFloat(dsBJFL.Tables[0].Rows[0]["XLXSBJD_TJ"].ToString().Trim()); + double fLJ = CMISproConvert.StrToFloat(dsBJFL.Tables[0].Rows[0]["XLXSBJD_LJ"].ToString().Trim()); + string sJLBJDHQ = dsBJFL.Tables[0].Rows[0]["XLXSBJFL_JLBJDHQ"].ToString().Trim(); + + if (XLBJDUtils.IsJGEJGB(sJGBID)) + { + XLBJDUtils.InsertXLXSBJDCLHQ_WLHQ(dberp, SQL, sBJDHQLY, sBJDID, sBJRQ, bHSBZ, sTBJCLID, sLBJCLID, fTJ, fLJ, sUserMC, sUserID, sJGBID); + } + else + { + //JGB价格表判断是否勾选记录报价单行情 + if (sJLBJDHQ.Equals("Y")) + { + XLBJDUtils.InsertXLXSBJDCLHQ_WLHQ_WithJGBHQ(dberp, SQL, sBJDHQLY, sBJDID,sBJRQ, sUserMC, sUserID, sJGBID); + XLBJDUtils.UpdateBJDHQByTLJ(dberp, SQL, sBJDID, sTBJCLID, sLBJCLID, fTJ, fLJ, bHSBZ, sUserID, sUserMC); + } + } + } + } + + } + + + //需先进行报价单明细表价异常计算,否则报价单明细异常导致的表价变化将不被记录 + int maxLS = 80; + SQL.Clear(); + SQL.Add(" select top 1 XLJGCZBLM_CLQDL "); + SQL.Add(" from XLXSBJDMX "); + SQL.Add(" left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSBJDMX_XLXHID and XLXSCLQD_XLGGID=XLXSBJDMX_XLGGID and XLXSCLQD_XLBZID=XLXSBJDMX_XLBZID and XLXSCLQD_DYDJID=isnull(XLXSBJDMX_DYDJID,' ') "); + SQL.Add(" left join XLJGCZBLM on XLJGCZBLM_JGCZBID=XLXSCLQD_JGCZBID and XLJGCZBLM_JGCZBBBID=XLXSCLQD_JGCZBBBID and isnull(XLJGCZBLM_CLQDL,' ')<>' ' "); + SQL.Add(" where XLXSBJDMX_BJDID= :pBJDID and isnull(XLJGCZBLM_CLQDL,' ')<>' ' "); + SQL.Add(" order by XLJGCZBLM_CLQDL desc "); + SQL.ParamByName("pBJDID").Value = sBJDID; + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + string sQDL = ds.Tables[0].Rows[0]["XLJGCZBLM_CLQDL"].ToString().Trim(); + string sLS = sQDL.Replace("第", "").Replace("列", ""); + maxLS = CMISproConvert.StrToInt(sLS); + } + SQL.Clear(); + SQL.Add("insert into XLXSBJDCLCB(XLXSBJDCLCB_BJDID, XLXSBJDCLCB_XH, XLXSBJDCLCB_XLXHID,XLXSBJDCLCB_XLGGID,XLXSBJDCLCB_XLBZID,XLXSBJDCLCB_DYDJID,XLXSBJDCLCB_XLYSID,XLXSBJDCLCB_BJCP,XLXSBJDCLCB_JLDW, "); + SQL.Add(" XLXSBJDCLCB_BJSL,XLXSBJDCLCB_HSJGBBJ,XLXSBJDCLCB_WSJGBBJ,XLXSBJDCLCB_HSJGBJJ,XLXSBJDCLCB_WSJGBJJ"); + for (int i = 1; i <= maxLS; i++) + { + SQL.Add(string.Format(",XLXSBJDCLCB_CLSL{0}", i.ToString().PadLeft(2, '0').Trim())); + SQL.Add(string.Format(",XLXSBJDCLCB_CLID{0}", i.ToString().PadLeft(2, '0').Trim())); + SQL.Add(string.Format(",XLXSBJDCLCB_CLDJ{0}", i.ToString().PadLeft(2, '0').Trim())); + } + if (maxLS < 80) + { + for (int i = maxLS + 1; i <= 80; i++)//因为XLXSBJDCLCB_CLID不为null,所以所有CLID字段都要插入 + { + SQL.Add(string.Format(",XLXSBJDCLCB_CLID{0}", i.ToString().PadLeft(2, '0').Trim())); + } + } + SQL.Add(" ,XLXSBJDCLCB_JGBBJGXSJ,XLXSBJDCLCB_WHRID,XLXSBJDCLCB_WHR,XLXSBJDCLCB_WHSJ) "); + SQL.Add("select XLXSBJDMX_BJDID,XLXSBJDMX_XH,XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID,XLXSBJDMX_XLBZID,XLXSBJDMX_DYDJID,XLXSBJDMX_XLYSID,XLXSBJDMX_BJCP,XLXSBJDMX_JLDW,"); + SQL.Add(" XLXSBJDMX_BJSL,"); + if (bHSBZ) + { + SQL.Add(" XLXSBJDMX_JGBBJ as HSCPJJ,XLXSBJDMX_JGBBJ/(1+isnull(ZZSL,0.0)/100.0) as WSCPJJ,"); + SQL.Add(" XLXSBJDMX_JGBJJ as HSCLCB,XLXSBJDMX_JGBJJ/(1+isnull(ZZSL,0.0)/100.0) as WSCLCB "); + } + else + { + SQL.Add(" XLXSBJDMX_JGBBJ*(1+isnull(ZZSL,0.0)/100.0) as HSCPJJ,XLXSBJDMX_JGBBJ as WSCPJJ,"); + SQL.Add(" XLXSBJDMX_JGBJJ*(1+isnull(ZZSL,0.0)/100.0) as HSCLCB,XLXSBJDMX_JGBJJ as WSCLCB "); + } + //报价单材料成本材料数量的计量单位与材料清单保持一致,不再依据报价单计量单位进行换算。 + for (int i = 1; i <= maxLS; i++) + { + SQL.Add(string.Format(",isnull(XLXSCLQD_SL{0},0)*isnull(XLXSCLQD_CLJGBL{0},0)*(1+isnull(XLXSCLQD_SHL{0},0)/100.0) as SL{0}", i.ToString().PadLeft(2, '0').Trim())); + SQL.Add(string.Format(",max(case when (CLQDL='第{0}列' and BJHQ='1') then BJCLID when (CLQDL='第{0}列' and BJHQ='2') then BJCLID||'|'||CLID else ' ' end) as CLID{0}", i.ToString().PadLeft(2, '0').Trim())); + SQL.Add(string.Format(",sum(isnull(case when (CLQDL='第{0}列' and BJHQ='1') then XLXSBJDCLHQ_HSJG when (CLQDL='第{0}列' and BJHQ='2' and isnull(XLXSBJDWLHQ_WLID,' ')<>' ') then XLXSBJDWLHQ_HSJG " + + "when (CLQDL='第{0}列' and BJHQ='2' and isnull(XLXSBJDWLHQ_WLID,' ')=' ') then b.XLXSWLHQ_HSJG else 0 end,0)) as CLDJ{0}", i.ToString().PadLeft(2, '0').Trim())); + } + if (maxLS < 80) + { + for (int i = maxLS + 1; i <= 80; i++)//因为XLXSBJDCLCB_CLID不为null,所以所有CLID字段都要插入 + { + SQL.Add(string.Format(",' ' as CLID{0} ", i.ToString().PadLeft(2, '0').Trim())); + } + } + + SQL.Add(" ,XLXSBJDMX_JGBBJGXSJ,:pWHRID,:pWHR,:pWHSJ "); + SQL.Add("from XLXSBJDMX"); + + SQL.Add(" left join ("); + SQL.Add(" select XLXSBJDMX_BJDID as BJDID,XLXSBJDMX_XH as BJDXH,XLJGCZBLM_CLQDL as CLQDL,isnull(XLXSBJCL_BJHQ,'1') as BJHQ,rtrim(isnull(XLJGCZBLM_BJCLID,' ')) as BJCLID,"); + SQL.Add(" case when isnull(XLXSBJCL_BJHQ,'1')='1' then isnull(XLJGCZBLM_BJCLID,' ') "); + for (int i = 1; i <= maxLS; i++) + { + SQL.Add(string.Format(" when isnull(XLXSBJCL_BJHQ,'1')='2' and isnull(XLJGCZBLM_CLQDL,' ')='第{0}列' then isnull(XLXSCLQDWL_WLID{0},' ') ", i.ToString().PadLeft(2, '0').Trim())); + } + SQL.Add(" else ' ' end as CLID "); + SQL.Add(" from XLXSBJDMX "); + SQL.Add(" left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSBJDMX_XLXHID and XLXSCLQD_XLGGID=XLXSBJDMX_XLGGID and XLXSCLQD_XLBZID=XLXSBJDMX_XLBZID and XLXSCLQD_DYDJID=isnull(XLXSBJDMX_DYDJID,' ') "); + SQL.Add(" left join XLXSCLQDWL on XLXSCLQDWL_JGCZBID=XLXSCLQD_JGCZBID and XLXSCLQDWL_JGCZBBBID=XLXSCLQD_JGCZBBBID and XLXSCLQDWL_JGCZBXH=XLXSCLQD_JGCZBXH and XLXSCLQDWL_DRHH=XLXSCLQD_DRHH "); + SQL.Add(" left join XLJGCZBLM on XLJGCZBLM_JGCZBID=XLXSCLQD_JGCZBID and XLJGCZBLM_JGCZBBBID=XLXSCLQD_JGCZBBBID and isnull(XLJGCZBLM_CLQDL,' ')<>' ' "); + SQL.Add(" left join XLXSBJCL on XLXSBJCL_BJCLID=XLJGCZBLM_BJCLID "); + SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID and isnull(XLJGCZBLM_CLQDL,' ')<>' ' "); + SQL.Add(" ) a on BJDID=XLXSBJDMX_BJDID and BJDXH=XLXSBJDMX_XH "); + SQL.Add(" left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSBJDMX_XLXHID and XLXSCLQD_XLGGID=XLXSBJDMX_XLGGID and XLXSCLQD_XLBZID=XLXSBJDMX_XLBZID and XLXSCLQD_DYDJID=isnull(XLXSBJDMX_DYDJID,' ') "); + SQL.Add(" left join XLXSBJDCLHQ on XLXSBJDCLHQ_BJDID=:pBJDID and XLXSBJDCLHQ_BJCLID=BJCLID "); + SQL.Add(" left join XLXSBJDWLHQ on XLXSBJDWLHQ_BJDID=:pBJDID and XLXSBJDWLHQ_WLID=CLID "); + SQL.Add(" left join ( "); + SQL.Add(" select WLID,XLXSWLHQ_WSJG,XLXSWLHQ_HSJG "); + SQL.Add(" from XLXSWLHQ, "); + SQL.Add(" (select XLXSWLHQ_WLID as WLID,max(XLXSWLHQ_YXQS)as maxYXQS "); + SQL.Add(" from XLXSWLHQ where XLXSWLHQ_JGBID=' ' "); + SQL.Add(" and XLXSWLHQ_YXQS<=:pBJRQ and (XLXSWLHQ_YXQZ>=:pBJRQ or XLXSWLHQ_YXQZ is null) "); + SQL.Add(" group by XLXSWLHQ_WLID "); + SQL.Add(" ) wlhq "); + SQL.Add(" where XLXSWLHQ_JGBID=' ' and XLXSWLHQ_WLID=WLID and XLXSWLHQ_YXQS=maxYXQS "); + SQL.Add(" ) b on b.WLID=CLID "); + //获取增值税率,用于计算WSCPJJ + SQL.Add(",(select max(XLXSBJCL_ZZSL) as ZZSL from XLXSBJCL where 1=1) SL "); + SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID "); + SQL.Add(" and not exists(select 1 from XLXSBJDCLCB where XLXSBJDCLCB_BJDID=XLXSBJDMX_BJDID and XLXSBJDCLCB_XH=XLXSBJDMX_XH) "); + SQL.Add(" group by XLXSBJDMX_BJDID,XLXSBJDMX_XH,XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID,XLXSBJDMX_XLBZID,XLXSBJDMX_DYDJID,XLXSBJDMX_XLYSID,XLXSBJDMX_BJCP,XLXSBJDMX_JLDW, "); + SQL.Add(" XLXSBJDMX_BJSL,XLXSBJDMX_JGBBJ,XLXSBJDMX_JGBBJGXSJ,XLXSBJDMX_JGBJJ,ZZSL "); + for (int i = 1; i <= maxLS; i++) + { + SQL.Add(string.Format(",XLXSCLQD_SL{0}", i.ToString().PadLeft(2, '0').Trim())); + SQL.Add(string.Format(",XLXSCLQD_CLJGBL{0}", i.ToString().PadLeft(2, '0').Trim())); + SQL.Add(string.Format(",XLXSCLQD_SHL{0}", i.ToString().PadLeft(2, '0').Trim())); + } + SQL.ParamByName("pWHRID").Value = sUserID; + SQL.ParamByName("pWHR").Value = sUserMC; + SQL.ParamByName("pWHSJ").Value = DateTime.Now; + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pBJRQ").Value = sBJRQ; + dberp.ExecSQL(SQL); + + if (CMISproDataBase.ExistsRecord("DBERP", "select 1 from XLJGCZBLM where isnull(XLJGCZBLM_BJRCLCB,'N') = 'Y' and isnull(XLJGCZBLM_CLQDL,' ')<>' ' ")) + { + SQL.Clear(); + SQL.Add(" delete from BJDLJZSBJRCBLM where BJDLJZSBJRCBLM_BJDID = :pBJDID "); + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + SQL.Clear(); + SQL.Add(" insert into BJDLJZSBJRCBLM(BJDLJZSBJRCBLM_BJDID,BJDLJZSBJRCBLM_XH,BJDLJZSBJRCBLM_BJDCLCBLMH) "); + SQL.Add(" select XLXSBJDMX_BJDID,XLXSBJDMX_XH, substring(isnull(XLJGCZBLM_CLQDL,' '),2,2) from XLXSBJDMX "); + SQL.Add(" left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSBJDMX_XLXHID and XLXSCLQD_XLGGID=XLXSBJDMX_XLGGID and XLXSCLQD_XLBZID=XLXSBJDMX_XLBZID and XLXSCLQD_DYDJID=isnull(XLXSBJDMX_DYDJID,' ') "); + SQL.Add(" left join XLJGCZBLM on XLJGCZBLM_JGCZBID=XLXSCLQD_JGCZBID and XLJGCZBLM_JGCZBBBID=XLXSCLQD_JGCZBBBID and isnull(XLJGCZBLM_CLQDL,' ')<>' ' "); + SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID and isnull(XLJGCZBLM_BJRCLCB,'N') = 'Y' "); + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + } + } + + //依据价格表条件因子ID获取异常标志 + public static string GetJGBYZYCBZ(string sYZID) + { + if (sYZID.Equals("JZ10")) + return "0"; + else + return sYZID.Replace("JZ0", ""); + } + + //获取价格表必填因子 + public static Dictionary GetJGBBTYZ(string sJGBID) + { + Dictionary dicJGBTJYZ = new Dictionary(); + List yzxx_List = XLBJDUtils.GetJGBYZOrderByXSXH(sJGBID); + foreach (TZYZXX yzxx in yzxx_List) + { + if(yzxx.XLXSTZYZ_YZZBT=="Y") + dicJGBTJYZ.Add(yzxx.XLXSTZYZ_YZID.Trim(), yzxx.XLXSTZYZ_YZMC.Trim()); + } + + return dicJGBTJYZ; + } + + //获取价格表覆盖全产品因子 + public static Dictionary GetJGBFGQCPYZ(string sJGBID) + { + Dictionary dicJGBTJYZ = new Dictionary(); + List yzxx_List = XLBJDUtils.GetJGBYZOrderByXSXH(sJGBID); + foreach (TZYZXX yzxx in yzxx_List) + { + if (yzxx.XLXSTZYZ_FGQCP == "Y") + dicJGBTJYZ.Add(yzxx.XLXSTZYZ_YZID.Trim(), yzxx.XLXSTZYZ_YZMC.Trim()); + } + + return dicJGBTJYZ; + } + + //依据报价单ID获取报价日期 + public static string GetBJRQbyBJDID(string sBJDID) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add(" select XLXSBJD_BJRQ from XLXSBJD where XLXSBJD_BJDID = :pBJDID "); + SQL.ParamByName("pBJDID").Value = sBJDID; + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + return CMISproConvert.StrToDateTime(ds.Tables[0].Rows[0][0].ToString().Trim()).ToShortDateString().Trim(); + } + else + return ""; + } + + public void LoadTJYZData() + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add(" SELECT XLXSTZYZ_YZID, XLXSTZYZ_TJBZDYZZ, XLXSTZYZ_TJBZXYZZ FROM XLXSTZYZ WHERE XLXSTZYZ_MXBH = 'BJD' "); + DataSet ds = dberp.OpenDataSet(SQL); + // 清空原有数据(如果需要重新加载) + dicTJYZ.Clear(); + + if (ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) + { + foreach (DataRow row in ds.Tables[0].Rows) + { + TJYZEntity entity = new TJYZEntity(); + entity.YZID = row["XLXSTZYZ_YZID"].ToString().Trim(); + entity.TJBZDYZZ = Convert.ToDouble(row["XLXSTZYZ_TJBZDYZZ"]); + entity.TJBZXYZZ = Convert.ToDouble(row["XLXSTZYZ_TJBZXYZZ"]); + + // 为 dicTJYZ 赋值 + if (!dicTJYZ.ContainsKey(entity.YZID)) + { + dicTJYZ.Add(entity.YZID, entity); + } + } + } + } + + + //按行重新计算报价、价差率等 + private Dictionary CalcRow(GridViewRow row, Dictionary dicYZID_TJYZID, Dictionary dicTYZZYZID, string sCPBJMRXSWS) + { + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); + + Dictionary Result = new Dictionary(); + double dBJSL = CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_BJSL", row), 0); + + string sorYZZ01 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ01", row).Trim(); + string sorYZZ02 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ02", row).Trim(); + string sorYZZ03 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ03", row).Trim(); + string sorYZZ04 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ04", row).Trim(); + string sorYZZ05 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ05", row).Trim(); + string sorYZZ06 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ06", row).Trim(); + string sorYZZ07 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ07", row).Trim(); + string sorYZZ08 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ08", row).Trim(); + string sorYZZ09 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ09", row).Trim(); + string sorYZZ10 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ10", row).Trim(); + string sorYZZ11 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ11", row).Trim(); + string sorYZZ12 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ12", row).Trim(); + string sorYZZ13 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ13", row).Trim(); + string sorYZZ14 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ14", row).Trim(); + string sorYZZ15 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ15", row).Trim(); + string sorYZZ16 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ16", row).Trim(); + string sorYZZ17 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ17", row).Trim(); + string sorYZZ18 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ18", row).Trim(); + string sorYZZ19 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ19", row).Trim(); + string sorYZZ20 = grdXLBJDMX.GetValueByFieldName("TZYZ_BJ20", row).Trim(); + string sorTZZDXJ = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_TZZDXJ", row).Trim(); + + Dictionary dicChangedField = new Dictionary(); + double dCPBJ = 0.0; + string sXSJEYZ = txtXSJEYZ.Text.Trim(); + double dJGBBJ = CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_JGBBJ", row), 0); + if (bjflxx.XLXSBJFL_XSLSBJ == "Y" && CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_LSJGBBJ", row)) != 0) + dJGBBJ = CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_LSJGBBJ", row), 0); + + string sTZQCPBJGS = XLBJDUtils.GetTZQCPBJGS(cbxBJFLID.SelectedValue.Trim()); + if (!sTZQCPBJGS.Equals("")) + { + dCPBJ = XLBJDUtils.GetTZQCPBJ(dJGBBJ.ToString(), sorYZZ01, sorYZZ02, sorYZZ03, sorYZZ04, sorYZZ05, sorYZZ06, sorYZZ07, sorYZZ08, sorYZZ09, sorYZZ10, sorYZZ11, sorYZZ12, sorYZZ13, sorYZZ14, sorYZZ15, sorYZZ16, sorYZZ17, sorYZZ18, sorYZZ19, sorYZZ20, dicChangedField, sTZQCPBJGS, sorTZZDXJ); + } + else + { + if (dJGBBJ!=0) + { + Dictionary dicTJYZIDValue = new Dictionary(); + Dictionary dicTYZZYZIDValue = new Dictionary(); + + //将因子纳入dicTYZZYZIDValue + for (int i = sConColumnsCount; i < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) + { + string sFieldName = grdXLBJDMX.Columns[i].DataField; + string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); + + if (dicValueContained(dicTYZZYZID, sFieldName.Substring(5))) + { + if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5)))//此处无需考虑因子最小值限制 + dicTYZZYZIDValue.Add(sFieldName.Substring(5), CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName(sFieldName, row), 0)); + else + dicTYZZYZIDValue[sFieldName.Substring(5)] += CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName(sFieldName, row), 0); + } + + + string sYZID = sFieldName.Replace("TZYZ_", ""); + if (sXSJEYZ.Contains(sYZID)) + i++; + } + + //将因子纳入dicTJYZIDValue + for (int i = sConColumnsCount; i < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) + { + string sFieldName = grdXLBJDMX.Columns[i].DataField; + string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); + + string tmpTJYZID = dicYZID_TJYZID[sFieldName.Substring(5)]; + double tmpYZZ = CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName(sFieldName, row), 0); + string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; + if (!tmpTYZZYZID.Equals("")) + { + tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); + } + if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) + { + if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) + { + //此处无需考虑因子最小值限制 + dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); + } + else + { + dicTJYZIDValue[tmpTJYZID] += tmpYZZ; + } + } + + string sYZID = sFieldName.Replace("TZYZ_", ""); + if (sXSJEYZ.Contains(sYZID)) + i++; + } + //true表示先加价 + bool JJFirst = XLBJDUtils.JJFirst_BJDYZ(cbxBJFLID.SelectedValue.Trim()); + + dCPBJ = dJGBBJ; + + double dTZYZ_JJ = 0; + for (int i = sConColumnsCount; i < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) + { + string sFieldName = grdXLBJDMX.Columns[i].DataField; + string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); + + if (txtBJDYZ.Text.Contains(sFieldName.Substring(5) + "|" + sColName + "(JJ)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) + dTZYZ_JJ += dicTJYZIDValue[sFieldName.Substring(5)]; + } + + string sYZID = sFieldName.Replace("TZYZ_", ""); + if (sXSJEYZ.Contains(sYZID)) + i++; + } + if (JJFirst) + { + dCPBJ = dCPBJ + dTZYZ_JJ; + } + for (int i = sConColumnsCount; i < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) + { + string sFieldName = grdXLBJDMX.Columns[i].DataField; + string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); + + if (txtBJDYZ.Text.Contains(sFieldName.Substring(5) + "|" + sColName + "(JD)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) + dCPBJ = dCPBJ * (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); + } + else if (txtBJDYZ.Text.Contains(sFieldName.Substring(5) + "|" + sColName + "(KD)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) + dCPBJ = dCPBJ / (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); + } + else if (txtBJDYZ.Text.Contains(sFieldName.Substring(5) + "|" + sColName + "(DD)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) + dCPBJ = dCPBJ / (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); + } + else if (txtBJDYZ.Text.Contains(sFieldName.Substring(5) + "|" + sColName + "(MD)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) + dCPBJ = dCPBJ * (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); + } + else if (txtBJDYZ.Text.Contains(sFieldName.Substring(5) + "|" + sColName + "(MP)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) + dCPBJ = dCPBJ * (dicTJYZIDValue[sFieldName.Substring(5)] / 100); + + } + //MX乘以/DX除以-系数 + else if (txtBJDYZ.Text.Contains(sFieldName.Substring(5) + "|" + sColName + "(MX)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) + dCPBJ = dCPBJ * (dicTJYZIDValue[sFieldName.Substring(5)]); + + } + else if (txtBJDYZ.Text.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 (txtBJDYZ.Text.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); + } + } + + string sYZID = sFieldName.Replace("TZYZ_", ""); + if (sXSJEYZ.Contains(sYZID)) + i++; + } + if (!JJFirst) + { + dCPBJ = dCPBJ + dTZYZ_JJ; + } + } + } + string sBTYZ = txtBTYZ.Text.Trim(); + if (!sBTYZ.Equals("")) + { + foreach (string stBTYZ in sBTYZ.Split(',')) + { + double dYZZ = CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName("TZYZ_" + stBTYZ, row).Trim(), 0); + if (dYZZ == 0) + { + dCPBJ = Math.Abs(dCPBJ) * 0; + break; + } + } + } + dCPBJ = NumberUtils.RoundX(dCPBJ, (CMISproConvert.StrToInt(sCPBJMRXSWS) > iXSWS ? CMISproConvert.StrToInt(sCPBJMRXSWS) : iXSWS));//保留精度高的 + + double dOLD_CPBJ = CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_CPBJ", row), 0); + + //报价锁定需要计算调整报价 + double dNEW_TZJG = 0; + double dTmp_CPBJ = dCPBJ; + bool bBJSDBZ = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_BJSDBZ", row).Equals("Y");//报价锁定标志 + if (bBJSDBZ) + { + if (dCPBJ != 0) + { + dNEW_TZJG = NumberUtils.RoundX((dOLD_CPBJ / dCPBJ - 1) * 100, 15); + } + + //因为报价锁定,所以将计算出来的报价值还原,计算出来的值放在tmp中 + dCPBJ = dOLD_CPBJ; + + } + double dTZQBJJE = NumberUtils.RoundX(dBJSL * XLBJDUtils.RoundSZ(dCPBJ, CMISproConvert.StrToInt(sCPBJMRXSWS)), 2); + double dTZJE = CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_TZBJJE", row), 0); + double dBJJE = dTZQBJJE + dTZJE; + + double dLRE = 0; + if (bjflxx.XLXSBJFL_BJJCLLX.Equals("1"))//表价价差率公式 + dLRE = dBJJE - NumberUtils.RoundX(CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_JGBBJ", row), 0) * dBJSL, 2); + else if (bjflxx.XLXSBJFL_BJJCLLX.Equals("2")) + dLRE = NumberUtils.RoundX(CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_JGBBJ", row), 0) * dBJSL, 2) - dBJJE; + else if (bjflxx.XLXSBJFL_BJJCLLX.Equals("4")) + dLRE = dBJJE - NumberUtils.RoundX(CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_JGBBJ", row), 0) * dBJSL, 2); + + //计算价差率 + double dtmpLRE = 0; + if (bjflxx.XLXSBJFL_BJJCLLX.Equals("1"))//表价价差率公式 + dtmpLRE = dBJJE - CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_JGBBJ", row), 0) * dBJSL; + else if (bjflxx.XLXSBJFL_BJJCLLX.Equals("2")) + dtmpLRE = CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_JGBBJ", row), 0) * dBJSL - dBJJE; + else if (bjflxx.XLXSBJFL_BJJCLLX.Equals("4")) + dtmpLRE = dBJJE - CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_JGBBJ", row), 0) * dBJSL; + double dtmpCPJE = CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_JGBBJ", row), 0) * dBJSL; + + //表价价差率公式 + //表价金额 + double dCPJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_JGBBJ", row), 0) * dBJSL, 2); + double dLRL = 0.0; + if (bjflxx.XLXSBJFL_BJJCLLX.Equals("1")) + { + if (dBJJE != 0) + dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dBJJE, 2); + } + else if (bjflxx.XLXSBJFL_BJJCLLX.Equals("2")) + { + if (dtmpCPJE != 0) + dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); + } + else if (bjflxx.XLXSBJFL_BJJCLLX.Equals("3")) + { + if (dBJJE != 0) + dLRL = NumberUtils.RoundX(dtmpCPJE * 100 / dBJJE, 2); + } + else if (bjflxx.XLXSBJFL_BJJCLLX.Equals("4")) + { + if (dtmpCPJE != 0) + dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); + } + + double dCLCB = CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_CLCB", row), 0); + double dBJDHQCLCB = CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_BJDHQCLCB", row), 0); + + double dCLCBLRL = 0.0; + if (bjflxx.XLXSBJFL_LJJCLLX.Equals("1")) + { + double dCLCBLRE = dBJJE - dCLCB * dBJSL; + if (dBJJE != 0) + dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); + } + else if (bjflxx.XLXSBJFL_LJJCLLX.Equals("2")) + { + double dCLCBLRE = dBJJE - dBJDHQCLCB * dBJSL; + if (dBJJE != 0) + dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); + } + else if (bjflxx.XLXSBJFL_LJJCLLX.Equals("3")) + { + double dCLCBLRE = dBJJE - dBJDHQCLCB * dBJSL; + if (dBJDHQCLCB * dBJSL != 0) + dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / (dBJDHQCLCB * dBJSL), 2); + } + else if (bjflxx.XLXSBJFL_LJJCLLX.Equals("4")) + { + double dCLCBLRE = dBJDHQCLCB * dBJSL; + if (dBJJE != 0) + dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); + } + double dJGBBJLJJCL = 0.0; + if (bjflxx.XLXSBJFL_BJLJJCLLX.Equals("1")) + { + if (dCPJE != 0) + { + dJGBBJLJJCL = NumberUtils.RoundX((dCPJE - dBJSL * dBJDHQCLCB) / dCPJE * 100,2); + } + } + + dCPBJ = XLBJDUtils.RoundSZ(dCPBJ, CMISproConvert.StrToInt(sCPBJMRXSWS)); + + double dQZDXJ = CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_ZDXJ", row)); + string sUpdJJYZList = grdXLBJDMX.GetValueByFieldName("UpdJJYZList", row); + if (sUpdJJYZList.Equals("")) + sUpdJJYZList = "0|0|0|0|0|0|0|0|0|0|0"; + + //计算最低限价、最低限价价差率 + dicChangedField.Add("XLXSBJDMX_CLCB", grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_CLCB", row));//此处简单处理,只为能够触发计算 + string sTZQZDXJ = XLBJDUtils.GetZDXJ(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_CLCB", row), + grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_BJDHQCLCB", row), + grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_JGBJJ", row), + grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_JGBBJ", row), + dCPBJ.ToString(), + sorYZZ01, sorYZZ02, sorYZZ03, sorYZZ04, sorYZZ05, sorYZZ06, sorYZZ07, sorYZZ08, sorYZZ09, sorYZZ10, sorYZZ11, sorYZZ12, sorYZZ13, sorYZZ14, sorYZZ15, sorYZZ16, sorYZZ17, sorYZZ18, sorYZZ19, sorYZZ20, dicChangedField, + grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_TZQZDXJ", row), + cbxBJFLID.SelectedValue.Trim(), 8, grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_ZDXJBJDID", row), sUpdJJYZList); + string stTZZDXJ=grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_TZZDXJ", row); + string stZDXJ = NumberUtils.RoundX(CMISproConvert.StrToFloat(sTZQZDXJ) * (1 + CMISproConvert.StrToFloat(stTZZDXJ) / 100), iXSWS).ToString(); + string stZDXJJCL = XLBJDUtils.GetZDXJJCL(bjflxx.XLXSBJFL_ZDXJJCLLX, stZDXJ, grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_BJSL", row), dBJJE.ToString().Trim(), grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_BJDHQCLCB", row), grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_JGBBJ", row)); + string stYXJ = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_YXJG", row); + string stYXJJCL = XLBJDUtils.GetYXJJCL(bjflxx.XLXSBJFL_YXJJCLLX.Trim(), stZDXJ, stYXJ); + + + double dZDXJ = CMISproConvert.StrToFloat(stZDXJ, 0); + double dZDXJJCL = CMISproConvert.StrToFloat(stZDXJJCL, 0); + double dTZQZDXJ = CMISproConvert.StrToFloat(sTZQZDXJ, 0); + double dYXJJCL = CMISproConvert.StrToFloat(stYXJJCL, 0); + double dZDXJJE = NumberUtils.RoundX(dZDXJ * dBJSL, 2); + + double dCPBJXJ = CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_CPBJXJ", row), 0); + double XJBJCE = dCPBJXJ - dCPBJ; + Result.Add("XLXSBJDMX_BJXJKD", 0); + Result.Add("XLXSBJDMX_BJXJJJ", 0); + Result.Add("XJBJCE", XJBJCE); + + Result.Add("XLXSBJDMX_TZQCPBJ", dTmp_CPBJ); + Result.Add("XLXSBJDMX_TZCPBJ", dNEW_TZJG); + Result.Add("XLXSBJDMX_CPBJ", dCPBJ); + Result.Add("XLXSBJDMX_TZQBJJE", dTZQBJJE); + Result.Add("XLXSBJDMX_BJJE", dBJJE); + Result.Add("TZHDJ", dBJSL == 0 ? 0 : dBJJE / dBJSL); + Result.Add("XLXSBJDMX_JGBBJJCL", dLRL); + Result.Add("XLXSBJDMX_JGBBJJCE", dLRE); + Result.Add("XLXSBJDMX_CLCBJCL", dCLCBLRL); + Result.Add("XLXSBJDMX_JGBBJLJJCL", dJGBBJLJJCL); + Result.Add("XLXSBJDMX_TZQZDXJ", dTZQZDXJ); + Result.Add("XLXSBJDMX_TZZDXJ", CMISproConvert.StrToFloat(stTZZDXJ)); + Result.Add("XLXSBJDMX_ZDXJ", dZDXJ); + Result.Add("XLXSBJDMX_ZDXJJCL", dZDXJJCL); + Result.Add("XLXSBJDMX_YXJJCL", dYXJJCL); + Result.Add("XLXSBJDMX_ZDXJJE", dZDXJJE); + if (dZDXJ != dQZDXJ) + AddChangedField(dicChangedField, "XLXSBJDMX_ZDXJ", dZDXJ.ToString()); + string sJSJ = XLBJDUtils.GetJSJ(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_CLCB", row), + grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_BJDHQCLCB", row), + grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_JGBJJ", row), + grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_JGBBJ", row), + dCPBJ.ToString(),dZDXJ.ToString(), + sorYZZ01, sorYZZ02, sorYZZ03, sorYZZ04, sorYZZ05, sorYZZ06, sorYZZ07, sorYZZ08, sorYZZ09, sorYZZ10, sorYZZ11, sorYZZ12, sorYZZ13, sorYZZ14, sorYZZ15, sorYZZ16, sorYZZ17, sorYZZ18, sorYZZ19, sorYZZ20, dicChangedField, + grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_JSJG", row), + cbxBJFLID.SelectedValue.Trim(), 8, sUpdJJYZList); + + string stJSJJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(sJSJ, 0) * CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_BJSL", row), 0), 2).ToString(); + string stJSJJCL = XLBJDUtils.GetJSJJCL(bjflxx.XLXSBJFL_JSJJCLLX.Trim(), stJSJJE, dBJJE.ToString()); + Result.Add("XLXSBJDMX_JSJG", CMISproConvert.StrToFloat(sJSJ)); + Result.Add("XLXSBJDMX_JSJJE", CMISproConvert.StrToFloat(stJSJJE)); + Result.Add("XLXSBJDMX_JSJJCL", CMISproConvert.StrToFloat(stJSJJCL)); + + return Result; + } + + //按行重新计算报价、价差率等 + private Dictionary CalcRow(DataRow row, Dictionary dicYZID_TJYZID, Dictionary dicTYZZYZID, string sCPBJMRXSWS) + { + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); + + Dictionary Result = new Dictionary(); + double dBJSL = CMISproConvert.StrToFloat(row["XLXSBJDMX_BJSL"].ToString(), 0); + + string sorYZZ01 = row["TZYZ_BJ01"].ToString().Trim(); + string sorYZZ02 = row["TZYZ_BJ02"].ToString().Trim(); + string sorYZZ03 = row["TZYZ_BJ03"].ToString().Trim(); + string sorYZZ04 = row["TZYZ_BJ04"].ToString().Trim(); + string sorYZZ05 = row["TZYZ_BJ05"].ToString().Trim(); + string sorYZZ06 = row["TZYZ_BJ06"].ToString().Trim(); + string sorYZZ07 = row["TZYZ_BJ07"].ToString().Trim(); + string sorYZZ08 = row["TZYZ_BJ08"].ToString().Trim(); + string sorYZZ09 = row["TZYZ_BJ09"].ToString().Trim(); + string sorYZZ10 = row["TZYZ_BJ10"].ToString().Trim(); + string sorYZZ11 = row["TZYZ_BJ11"].ToString().Trim(); + string sorYZZ12 = row["TZYZ_BJ12"].ToString().Trim(); + string sorYZZ13 = row["TZYZ_BJ13"].ToString().Trim(); + string sorYZZ14 = row["TZYZ_BJ14"].ToString().Trim(); + string sorYZZ15 = row["TZYZ_BJ15"].ToString().Trim(); + string sorYZZ16 = row["TZYZ_BJ16"].ToString().Trim(); + string sorYZZ17 = row["TZYZ_BJ17"].ToString().Trim(); + string sorYZZ18 = row["TZYZ_BJ18"].ToString().Trim(); + string sorYZZ19 = row["TZYZ_BJ19"].ToString().Trim(); + string sorYZZ20 = row["TZYZ_BJ20"].ToString().Trim(); + string sorTZZDXJ = row["XLXSBJDMX_TZZDXJ"].ToString().Trim(); + Dictionary dicChangedField = new Dictionary(); + double dCPBJ = 0.0; + string sXSJEYZ = txtXSJEYZ.Text.Trim(); + double dJGBBJ = CMISproConvert.StrToFloat(row["XLXSBJDMX_JGBBJ"].ToString(), 0); + if (bjflxx.XLXSBJFL_XSLSBJ == "Y" && CMISproConvert.StrToFloat(row["XLXSBJDMX_LSJGBBJ"].ToString()) != 0) + dJGBBJ = CMISproConvert.StrToFloat(row["XLXSBJDMX_LSJGBBJ"].ToString(), 0); + string sTZQCPBJGS = XLBJDUtils.GetTZQCPBJGS(cbxBJFLID.SelectedValue.Trim()); + if (!sTZQCPBJGS.Equals("")) + { + dCPBJ = XLBJDUtils.GetTZQCPBJ(dJGBBJ.ToString(), sorYZZ01, sorYZZ02, sorYZZ03, sorYZZ04, sorYZZ05, sorYZZ06, sorYZZ07, sorYZZ08, sorYZZ09, sorYZZ10, sorYZZ11, sorYZZ12, sorYZZ13, sorYZZ14, sorYZZ15, sorYZZ16, sorYZZ17, sorYZZ18, sorYZZ19, sorYZZ20, dicChangedField, sTZQCPBJGS, sorTZZDXJ); + } + else + { + if (dJGBBJ!=0) + { + Dictionary dicTJYZIDValue = new Dictionary(); + Dictionary dicTYZZYZIDValue = new Dictionary(); + + //将因子纳入dicTYZZYZIDValue + for (int i = sConColumnsCount; i < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) + { + string sFieldName = grdXLBJDMX.Columns[i].DataField; + string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); + + if (dicValueContained(dicTYZZYZID, sFieldName.Substring(5))) + { + if (!dicTYZZYZIDValue.ContainsKey(sFieldName.Substring(5)))//此处无需考虑因子最小值限制 + dicTYZZYZIDValue.Add(sFieldName.Substring(5), CMISproConvert.StrToFloat(row[sFieldName].ToString(), 0)); + else + dicTYZZYZIDValue[sFieldName.Substring(5)] += CMISproConvert.StrToFloat(row[sFieldName].ToString(), 0); + } + + string sYZID = sFieldName.Replace("TZYZ_", ""); + if (sXSJEYZ.Contains(sYZID)) + i++; + } + + //将因子纳入dicTJYZIDValue + for (int i = sConColumnsCount; i < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) + { + string sFieldName = grdXLBJDMX.Columns[i].DataField; + string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); + + string tmpTJYZID = dicYZID_TJYZID[sFieldName.Substring(5)]; + double tmpYZZ = CMISproConvert.StrToFloat(row[sFieldName].ToString(), 0); + string tmpTYZZYZID = dicTYZZYZID[sFieldName.Substring(5)]; + if (!tmpTYZZYZID.Equals("")) + { + tmpYZZ = GetTYZZ(tmpTYZZYZID, tmpYZZ, dicTYZZYZIDValue); + } + if (!dicValueContained(dicTYZZYZID, tmpTJYZID)) + { + if (!dicTJYZIDValue.ContainsKey(tmpTJYZID)) + { + //此处无需考虑因子最小值限制 + dicTJYZIDValue.Add(tmpTJYZID, tmpYZZ); + } + else + { + dicTJYZIDValue[tmpTJYZID] += tmpYZZ; + } + } + + string sYZID = sFieldName.Replace("TZYZ_", ""); + if (sXSJEYZ.Contains(sYZID)) + i++; + } + + //true表示先加价 + bool JJFirst = XLBJDUtils.JJFirst_BJDYZ(cbxBJFLID.SelectedValue.Trim()); + + dCPBJ = dJGBBJ; + + double dTZYZ_JJ = 0; + for (int i = sConColumnsCount; i < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) + { + string sFieldName = grdXLBJDMX.Columns[i].DataField; + string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); + + if (txtBJDYZ.Text.Contains(sFieldName.Substring(5) + "|" + sColName + "(JJ)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) + dTZYZ_JJ += dicTJYZIDValue[sFieldName.Substring(5)]; + } + + string sYZID = sFieldName.Replace("TZYZ_", ""); + if (sXSJEYZ.Contains(sYZID)) + i++; + } + if (JJFirst) + { + dCPBJ = dCPBJ + dTZYZ_JJ; + } + for (int i = sConColumnsCount; i < grdXLBJDMX.Columns.Count - sAddColumnsCount; i++) + { + string sFieldName = grdXLBJDMX.Columns[i].DataField; + string sColName = grdXLBJDMX.Columns[i].HeaderText.Trim().Replace("()", "").Replace("(%)", "").Replace("(元)", ""); + + if (txtBJDYZ.Text.Contains(sFieldName.Substring(5) + "|" + sColName + "(JD)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) + dCPBJ = dCPBJ * (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); + } + else if (txtBJDYZ.Text.Contains(sFieldName.Substring(5) + "|" + sColName + "(KD)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) + dCPBJ = dCPBJ / (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); + } + else if (txtBJDYZ.Text.Contains(sFieldName.Substring(5) + "|" + sColName + "(DD)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) + dCPBJ = dCPBJ / (1 + dicTJYZIDValue[sFieldName.Substring(5)] / 100); + } + else if (txtBJDYZ.Text.Contains(sFieldName.Substring(5) + "|" + sColName + "(MD)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) + dCPBJ = dCPBJ * (1 - dicTJYZIDValue[sFieldName.Substring(5)] / 100); + } + else if (txtBJDYZ.Text.Contains(sFieldName.Substring(5) + "|" + sColName + "(MP)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) + dCPBJ = dCPBJ * (dicTJYZIDValue[sFieldName.Substring(5)] / 100); + } + //MX乘以/DX除以-系数 + else if (txtBJDYZ.Text.Contains(sFieldName.Substring(5) + "|" + sColName + "(MX)")) + { + if (dicTJYZIDValue.ContainsKey(sFieldName.Substring(5))) + dCPBJ = dCPBJ * (dicTJYZIDValue[sFieldName.Substring(5)]); + + } + else if (txtBJDYZ.Text.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 (txtBJDYZ.Text.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); + } + } + + string sYZID = sFieldName.Replace("TZYZ_", ""); + if (sXSJEYZ.Contains(sYZID)) + i++; + } + if (!JJFirst) + { + dCPBJ = dCPBJ + dTZYZ_JJ; + } + } + } + string sBTYZ = txtBTYZ.Text.Trim(); + if (!sBTYZ.Equals("")) + { + foreach (string stBTYZ in sBTYZ.Split(',')) + { + double dYZZ = CMISproConvert.StrToFloat(row["TZYZ_" + stBTYZ].ToString().Trim(), 0); + if (dYZZ == 0) + { + dCPBJ = Math.Abs(dCPBJ) * 0; + break; + } + } + } + dCPBJ = NumberUtils.RoundX(dCPBJ, (CMISproConvert.StrToInt(sCPBJMRXSWS) > iXSWS ? CMISproConvert.StrToInt(sCPBJMRXSWS) : iXSWS));//保留精度高的 + + double dOLD_CPBJ = CMISproConvert.StrToFloat(row["XLXSBJDMX_CPBJ"].ToString(), 0); + + //报价锁定需要计算调整报价 + double dNEW_TZJG = 0; + double dTmp_CPBJ = dCPBJ; + bool bBJSDBZ = row["XLXSBJDMX_BJSDBZ"].ToString().Trim().Equals("Y");//报价锁定标志 + if (bBJSDBZ) + { + if (dCPBJ != 0) + { + dNEW_TZJG = NumberUtils.RoundX((dOLD_CPBJ / dCPBJ - 1) * 100, 15); + } + + //因为报价锁定,所以将计算出来的报价值还原,计算出来的值放在tmp中 + dCPBJ = dOLD_CPBJ; + + } + + double dTZQBJJE = NumberUtils.RoundX(dBJSL * NumberUtils.RoundX(dCPBJ, CMISproConvert.StrToInt(sCPBJMRXSWS)), 2); + double dTZJE = CMISproConvert.StrToFloat(row["XLXSBJDMX_TZBJJE"].ToString(), 0); + double dBJJE = dTZQBJJE + dTZJE; + + double dLRE = 0; + if (bjflxx.XLXSBJFL_BJJCLLX.Equals("1"))//表价价差率公式 + dLRE = dBJJE - NumberUtils.RoundX(CMISproConvert.StrToFloat(row["XLXSBJDMX_JGBBJ"].ToString(), 0) * dBJSL, 2); + else if (bjflxx.XLXSBJFL_BJJCLLX.Equals("2")) + dLRE = NumberUtils.RoundX(CMISproConvert.StrToFloat(row["XLXSBJDMX_JGBBJ"].ToString(), 0) * dBJSL, 2) - dBJJE; + else if (bjflxx.XLXSBJFL_BJJCLLX.Equals("4")) + dLRE = dBJJE - NumberUtils.RoundX(CMISproConvert.StrToFloat(row["XLXSBJDMX_JGBBJ"].ToString(), 0) * dBJSL, 2); + //计算价差率 + double dtmpLRE = 0; + if (bjflxx.XLXSBJFL_BJJCLLX.Equals("1"))//表价价差率公式 + dtmpLRE = dBJJE - CMISproConvert.StrToFloat(row["XLXSBJDMX_JGBBJ"].ToString(), 0) * dBJSL; + else if (bjflxx.XLXSBJFL_BJJCLLX.Equals("2")) + dtmpLRE = CMISproConvert.StrToFloat(row["XLXSBJDMX_JGBBJ"].ToString(), 0) * dBJSL - dBJJE; + else if (bjflxx.XLXSBJFL_BJJCLLX.Equals("4")) + dtmpLRE = dBJJE - CMISproConvert.StrToFloat(row["XLXSBJDMX_JGBBJ"].ToString(), 0) * dBJSL; + double dtmpCPJE = CMISproConvert.StrToFloat(row["XLXSBJDMX_JGBBJ"].ToString(), 0) * dBJSL; + //表价价差率公式 + //表价金额 + double dCPJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(row["XLXSBJDMX_JGBBJ"].ToString(), 0) * dBJSL, 2); + double dLRL = 0.0; + if (bjflxx.XLXSBJFL_BJJCLLX.Equals("1")) + { + if (dBJJE != 0) + dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dBJJE, 2); + } + else if (bjflxx.XLXSBJFL_BJJCLLX.Equals("2")) + { + if (dtmpCPJE != 0) + dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); + } + else if (bjflxx.XLXSBJFL_BJJCLLX.Equals("3")) + { + if (dBJJE != 0) + dLRL = NumberUtils.RoundX(dtmpCPJE * 100 / dBJJE, 2); + } + else if (bjflxx.XLXSBJFL_BJJCLLX.Equals("4")) + { + if (dtmpCPJE != 0) + dLRL = NumberUtils.RoundX(dtmpLRE * 100 / dtmpCPJE, 2); + } + + double dCLCB = CMISproConvert.StrToFloat(row["XLXSBJDMX_CLCB"].ToString(), 0); + double dBJDHQCLCB = CMISproConvert.StrToFloat(row["XLXSBJDMX_BJDHQCLCB"].ToString(), 0); + + double dCLCBLRL = 0.0; + if (bjflxx.XLXSBJFL_LJJCLLX.Equals("1")) + { + double dCLCBLRE = dBJJE - dCLCB * dBJSL; + if (dBJJE != 0) + dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); + } + else if (bjflxx.XLXSBJFL_LJJCLLX.Equals("2")) + { + double dCLCBLRE = dBJJE - dBJDHQCLCB * dBJSL; + if (dBJJE != 0) + dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); + } + else if (bjflxx.XLXSBJFL_LJJCLLX.Equals("3")) + { + double dCLCBLRE = dBJJE - dBJDHQCLCB * dBJSL; + if (dBJDHQCLCB * dBJSL != 0) + dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / (dBJDHQCLCB * dBJSL), 2); + } + else if (bjflxx.XLXSBJFL_LJJCLLX.Equals("4")) + { + double dCLCBLRE = dBJDHQCLCB * dBJSL; + if (dBJJE != 0) + dCLCBLRL = NumberUtils.RoundX(dCLCBLRE * 100 / dBJJE, 2); + } + double dJGBBJLJJCL = 0.0; + if (bjflxx.XLXSBJFL_BJLJJCLLX.Equals("1")) + { + if (dCPJE != 0) + { + dJGBBJLJJCL = NumberUtils.RoundX((dCPJE-dBJSL*dBJDHQCLCB)/dCPJE*100,2); + } + } + + dCPBJ = XLBJDUtils.RoundSZ(dCPBJ, CMISproConvert.StrToInt(sCPBJMRXSWS)); + string sUpdJJYZList = row["UpdJJYZList"].ToString().Trim(); + if (sUpdJJYZList.Equals("")) + sUpdJJYZList = "0|0|0|0|0|0|0|0|0|0|0"; + double dQZDXJ = CMISproConvert.StrToFloat(row["XLXSBJDMX_ZDXJ"].ToString().Trim()); + //计算最低限价、最低限价价差率 + dicChangedField.Add("XLXSBJDMX_CLCB", row["XLXSBJDMX_CLCB"].ToString().Trim());//此处简单处理,只为能够触发计算 + string sTZQZDXJ = XLBJDUtils.GetZDXJ(row["XLXSBJDMX_CLCB"].ToString().Trim(), + row["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), + row["XLXSBJDMX_JGBJJ"].ToString().Trim(), + row["XLXSBJDMX_JGBBJ"].ToString().Trim(), + dCPBJ.ToString(), + sorYZZ01, sorYZZ02, sorYZZ03, sorYZZ04, sorYZZ05, sorYZZ06, sorYZZ07, sorYZZ08, sorYZZ09, sorYZZ10, sorYZZ11, sorYZZ12, sorYZZ13, sorYZZ14, sorYZZ15, sorYZZ16, sorYZZ17, sorYZZ18, sorYZZ19, sorYZZ20, dicChangedField, + row["XLXSBJDMX_TZQZDXJ"].ToString().Trim(), + cbxBJFLID.SelectedValue.Trim(), 8, row["XLXSBJDMX_ZDXJBJDID"].ToString().Trim(), sUpdJJYZList); + string stTZZDXJ = row["XLXSBJDMX_TZZDXJ"].ToString().Trim(); + string stZDXJ = NumberUtils.RoundX(CMISproConvert.StrToFloat(sTZQZDXJ) * (1 + CMISproConvert.StrToFloat(stTZZDXJ) / 100), iXSWS).ToString(); + string stZDXJJCL = XLBJDUtils.GetZDXJJCL(bjflxx.XLXSBJFL_ZDXJJCLLX, stZDXJ, row["XLXSBJDMX_BJSL"].ToString().Trim(), dBJJE.ToString().Trim(), row["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), row["XLXSBJDMX_JGBBJ"].ToString().Trim()); + double dZDXJ = CMISproConvert.StrToFloat(stZDXJ, 0); + double dZDXJJCL = CMISproConvert.StrToFloat(stZDXJJCL, 0); + double dTZQZDXJ = CMISproConvert.StrToFloat(sTZQZDXJ, 0); + string stYXJ = row["XLXSBJDMX_YXJG"].ToString().Trim(); + string stYXJJCL = XLBJDUtils.GetYXJJCL(bjflxx.XLXSBJFL_YXJJCLLX.Trim(), stZDXJ, stYXJ); + double dYXJJCL = CMISproConvert.StrToFloat(stYXJJCL, 0); + double dZDXJJE = NumberUtils.RoundX(dZDXJ * dBJSL, 2); + + double dCPBJXJ = CMISproConvert.StrToFloat(row["XLXSBJDMX_CPBJXJ"].ToString().Trim(), 0); + double XJBJCE = dCPBJXJ - dCPBJ; + Result.Add("XLXSBJDMX_BJXJKD", 0); + Result.Add("XLXSBJDMX_BJXJJJ", 0); + Result.Add("XJBJCE", XJBJCE); + + Result.Add("XLXSBJDMX_YXJJCL", dYXJJCL); + Result.Add("XLXSBJDMX_TZQCPBJ", dTmp_CPBJ); + Result.Add("XLXSBJDMX_TZCPBJ", dNEW_TZJG); + Result.Add("XLXSBJDMX_CPBJ", dCPBJ); + Result.Add("XLXSBJDMX_TZQBJJE", dTZQBJJE); + Result.Add("XLXSBJDMX_BJJE", dBJJE); + Result.Add("TZHDJ", dBJSL == 0 ? 0 : dBJJE / dBJSL); + Result.Add("XLXSBJDMX_JGBBJJCL", dLRL); + Result.Add("XLXSBJDMX_JGBBJJCE", dLRE); + Result.Add("XLXSBJDMX_CLCBJCL", dCLCBLRL); + Result.Add("XLXSBJDMX_JGBBJLJJCL", dJGBBJLJJCL); + Result.Add("XLXSBJDMX_TZQZDXJ", dTZQZDXJ); + Result.Add("XLXSBJDMX_TZZDXJ", CMISproConvert.StrToFloat(stTZZDXJ)); + Result.Add("XLXSBJDMX_ZDXJ", dZDXJ); + Result.Add("XLXSBJDMX_ZDXJJCL", dZDXJJCL); + Result.Add("XLXSBJDMX_ZDXJJE", dZDXJJE); + if (dZDXJ != dQZDXJ) + AddChangedField(dicChangedField, "XLXSBJDMX_ZDXJ", dZDXJ.ToString()); + string sJSJ = XLBJDUtils.GetJSJ(row["XLXSBJDMX_CLCB"].ToString().Trim(), + row["XLXSBJDMX_BJDHQCLCB"].ToString().Trim(), + row["XLXSBJDMX_JGBJJ"].ToString().Trim(), + row["XLXSBJDMX_JGBBJ"].ToString().Trim(), + dCPBJ.ToString(),dZDXJ.ToString(), + sorYZZ01, sorYZZ02, sorYZZ03, sorYZZ04, sorYZZ05, sorYZZ06, sorYZZ07, sorYZZ08, sorYZZ09, sorYZZ10, sorYZZ11, sorYZZ12, sorYZZ13, sorYZZ14, sorYZZ15, sorYZZ16, sorYZZ17, sorYZZ18, sorYZZ19, sorYZZ20, dicChangedField, + row["XLXSBJDMX_JSJG"].ToString().Trim(), + cbxBJFLID.SelectedValue.Trim(), 8, sUpdJJYZList); + + string stJSJJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(sJSJ, 0) * CMISproConvert.StrToFloat(row["XLXSBJDMX_BJSL"].ToString().Trim(), 0), 2).ToString(); + string stJSJJCL = XLBJDUtils.GetJSJJCL(bjflxx.XLXSBJFL_JSJJCLLX.Trim(), stJSJJE,dBJJE.ToString()); + Result.Add("XLXSBJDMX_JSJG", CMISproConvert.StrToFloat(sJSJ)); + Result.Add("XLXSBJDMX_JSJJE", CMISproConvert.StrToFloat(stJSJJE)); + Result.Add("XLXSBJDMX_JSJJCL", CMISproConvert.StrToFloat(stJSJJCL)); + return Result; + } + + private double GetZZSLByBJCLID(string sBJCLID) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + sql.Clear(); + sql.Add("select XLXSBJCL_ZZSL from XLXSBJCL where XLXSBJCL_BJCLID=:pBJCLID "); + sql.ParamByName("pBJCLID").Value = sBJCLID; + DataSet ds = dberp.OpenDataSet(sql); + if (ds.Tables[0].Rows.Count > 0) + return CMISproConvert.StrToFloat(ds.Tables[0].Rows[0][0].ToString().Trim(),0); + return 0; + } + + private DataSet GetBJDMX(string sBJDID) + { + //分页模式下,传入页数和每页显示数,用于控制明细查询结果 + entity.XLXSBJDMX.curPageIndex = pgBar.CurrentPageIndex; + entity.XLXSBJDMX.curPageSize = pgBar.PageSize; + entity.XLXSBJDMX.sXSSXFilter = txtXSSXFilter.Value; + entity.XLXSBJDMX.sXLXHIDFilter = txtXLXHIDFilter.Value; + entity.XLXSBJDMX.sXLGGIDFilter = txtXLGGIDFilter.Value; + entity.XLXSBJDMX.sXLBZIDFilter = txtXLBZIDFilter.Value; + entity.XLXSBJDMX.sDYDJIDFilter = txtDYDJIDFilter.Value; + entity.XLXSBJDMX.sXLYSIDFilter = txtXLYSIDFilter.Value; + entity.XLXSBJDMX.sBJCPFilter = txtBJCPFilter.Value; + entity.XLXSBJDMX.sCPMLFilter = txtCPMLFilter.Value; + entity.XLXSBJDMX.sZHCPMLFilter = txtZHCPMLFilter.Value; + entity.XLXSBJDMX.sJGBBJFilter = txtJGBBJFilter.Value; + entity.XLXSBJDMX.sZDXJJCLFilter = txtZDXJJCLFilter.Value; + entity.XLXSBJDMX.sBZFilter = txtBZFilter.Value; + entity.XLXSBJDMX.sBZBJDIDFilter = PageParam.GetRTrimString("BZBJDID"); + entity.XLXSBJDMX.sCPCFXLBZ = PageParam.GetRTrimString("CPCFXLBZ"); + entity.XLXSBJDMX.BJDID = sBJDID; + entity.XLXSBJDMX.sXSYZJEFilter = txtXSJEYZ.Text.Trim(); + + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + sql = entity.XLXSBJDMX.SetQuerySql(); + //sql.ParamByName("XLXSBJDMX_BJDID").Value = sBJDID; + DataSet dsBJDMX = dberp.OpenDataSet(sql); + return dsBJDMX; + } + + private string GetYSIDXX(string sYSID) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add(" select rtrim(XLYSB_XLYSID)||'|'||rtrim(XLYSB_XLYSMC) as XLYSB_XLYSID from XLYSB where XLYSB_XLYSID = :pYSID"); + SQL.ParamByName("pYSID").Value = sYSID; + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + return ds.Tables[0].Rows[0][0].ToString().Trim(); + } + else + return ""; + } + + //新建从表记录根据参数加载标准 + private string GetXLBZXX(string sXLBZID) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add(" select rtrim(XLBZ_XLBZID)||'|'||rtrim(XLBZ_XLBZID)||'|'||rtrim(XLBZ_XLBZLXMC) as XLBZ_XLBZID from XLBZ where XLBZ_XLBZID= :pXLBZID "); + SQL.ParamByName("pXLBZID").Value = sXLBZID; + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + return ds.Tables[0].Rows[0][0].ToString().Trim(); + } + else + return ""; + } + + //新建从表记录根据参数加载标准描述 + private string GetXLBZMS(string sXLBZID) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add(" select XLBZ_XLBZMS from XLBZ where XLBZ_XLBZID= :pXLBZID "); + SQL.ParamByName("pXLBZID").Value = sXLBZID; + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + return ds.Tables[0].Rows[0][0].ToString().Trim(); + } + else + return ""; + } + + + private string GetBJFLID(string sBJDID) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add(" select XLXSBJD_BJFLID from XLXSBJD where XLXSBJD_BJDID= :pBJDID "); + SQL.ParamByName("pBJDID").Value = sBJDID; + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + return ds.Tables[0].Rows[0][0].ToString().Trim(); + } + else + return ""; + } + + //型号/规格->标准-电压等级 + + public static void GetXLBZID_DYDJID(string sXLXHID, string sXLGGID, Dictionary dicXLXX, string sBJCPFZJS, string sJGBIDS, string sJGFID) + { + GetXLBZID_DYDJID(sXLXHID, sXLGGID, dicXLXX, sBJCPFZJS, sJGBIDS, sJGFID, "", false); + } + public static void GetXLBZID_DYDJID(string sXLXHID, string sXLGGID, Dictionary dicXLXX, string sBJCPFZJS, string sJGBIDS, string sJGFID, bool bWBBJD) + { + GetXLBZID_DYDJID(sXLXHID, sXLGGID, dicXLXX, sBJCPFZJS, sJGBIDS, sJGFID, "", bWBBJD); + } + public static void GetXLBZID_DYDJID(string sXLXHID, string sXLGGID, Dictionary dicXLXX, string sBJCPFZJS, string sJGBIDS, string sJGFID,string sBJDID, bool bWBBJD) + { + if (!sJGFID.Equals("")) + { + if (!sJGBIDS.Equals("")) + { + sJGBIDS += "," + sJGFID; + } + else + { + sJGBIDS = sJGFID; + } + } + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + if (!sXLGGID.Trim().Equals("")) + { + SQL.Add(" select top 1 XLXSBJCPMRBZDY_XLBZID,XLXSBJCPMRBZDY_DYDJID from XLXSBJCPMRBZDY where XLXSBJCPMRBZDY_XLXHID=:pXLXHID "); + SQL.Add(" and (XLXSBJCPMRBZDY_XLGGID = :pXLGGID or XLXSBJCPMRBZDY_XLGGID = ' ') order by XLXSBJCPMRBZDY_XLGGID desc "); + SQL.ParamByName("pXLGGID").Value = sXLGGID.Replace("×", "*"); + } + else + SQL.Add(" select top 1 XLXSBJCPMRBZDY_XLBZID,XLXSBJCPMRBZDY_DYDJID from XLXSBJCPMRBZDY where XLXSBJCPMRBZDY_XLXHID=:pXLXHID order by XLXSBJCPMRBZDY_XLGGID "); + SQL.ParamByName("pXLXHID").Value = sXLXHID; + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + dicXLXX.Add("0", ds.Tables[0].Rows[0]["XLXSBJCPMRBZDY_XLBZID"].ToString().Trim() + "*" + ds.Tables[0].Rows[0]["XLXSBJCPMRBZDY_DYDJID"].ToString().Trim()); + } + else + { + if (sXLXHID.Trim().Equals("") || sXLGGID.Trim().Equals("")) + return; + //1|先材料清单再价格表检索 + if (sBJCPFZJS.Equals("1")) + { + SQL.Clear(); + SQL.Add(" select XLXSCLQD_XLBZID,XLXSCLQD_DYDJID,"); + SQL.Add(" case when XLBZ_DZSC='Y' then (select isnull(MAX(XLBZ_PX),0) from XLBZ where XLBZ_DZSC = 'Y' ) else XLBZ_PX end as XLBZ_PX "); + SQL.Add(" from XLXSCLQD "); + SQL.Add(" LEFT JOIN XLBZ ON XLBZ_XLBZID = XLXSCLQD_XLBZID "); + SQL.Add(" LEFT JOIN XLDYDJB ON XLDYDJB_DYDJID = XLXSCLQD_DYDJID "); + SQL.Add(" where XLXSCLQD_XLXHID=:pXLXHID and XLXSCLQD_XLGGID =:pXLGGID and XLXSCLQD_WPID = 'ZZZZ' "); + if (bWBBJD) + SQL.Add(" and len(XLXSCLQD_XLBZID) <10 "); + else + { + if (!sBJDID.Equals("")) + { + SQL.Add(" and (len(XLXSCLQD_XLBZID) <10 or exists(select 1 from XLXSBJYLZDMX left join XLXSBJYLZD on XLXSBJYLZDMX_SQDH = XLXSBJYLZD_SQDH "); + SQL.Add(" where XLXSBJYLZD_BJDID =:pBJDID and XLXSBJYLZDMX_XLBZID = XLXSCLQD_XLBZID))"); + SQL.ParamByName("pBJDID").Value = sBJDID; + } + else + { + SQL.Add(" and len(XLXSCLQD_XLBZID) <10 "); + } + } + SQL.Add(" ORDER BY XLBZ_PX,XLXSCLQD_XLBZID,XLDYDJB_XH "); + SQL.ParamByName("pXLXHID").Value = sXLXHID; + SQL.ParamByName("pXLGGID").Value = sXLGGID; + ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count <= 0) + { + SQL.Clear(); + SQL.Add(" select XLXSJGBMX_XLBZID,XLXSJGBMX_DYDJID,"); + SQL.Add(" case when XLBZ_DZSC='Y' then (select isnull(MAX(XLBZ_PX),0) from XLBZ where XLBZ_DZSC = 'Y' ) else XLBZ_PX end as XLBZ_PX "); + SQL.Add(" from XLXSJGBMX "); + SQL.Add(" LEFT JOIN XLBZ ON XLBZ_XLBZID = XLXSJGBMX_XLBZID "); + SQL.Add(" LEFT JOIN XLDYDJB ON XLDYDJB_DYDJID = XLXSJGBMX_DYDJID "); + SQL.Add(" where XLXSJGBMX_XLXHID=:pXLXHID and XLXSJGBMX_XLGGID =:pXLGGID "); + if (bWBBJD) + SQL.Add(" and len(XLXSJGBMX_XLBZID) <10 "); + else + { + if (!sBJDID.Equals("")) + { + SQL.Add(" and (len(XLXSJGBMX_XLBZID) <10 or exists(select 1 from XLXSBJYLZDMX left join XLXSBJYLZD on XLXSBJYLZDMX_SQDH = XLXSBJYLZD_SQDH "); + SQL.Add(" where XLXSBJYLZD_BJDID =:pBJDID and XLXSBJYLZDMX_XLBZID = XLXSJGBMX_XLBZID))"); + SQL.ParamByName("pBJDID").Value = sBJDID; + } + else + { + SQL.Add(" and len(XLXSJGBMX_XLBZID) <10 "); + } + } + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBIDS)); + SQL.Add(" ORDER BY XLBZ_PX,XLXSJGBMX_XLBZID,XLDYDJB_XH "); + SQL.ParamByName("pXLXHID").Value = sXLXHID; + SQL.ParamByName("pXLGGID").Value = sXLGGID; + ds = dberp.OpenDataSet(SQL); + } + } + else + { + SQL.Clear(); + SQL.Add(" select XLXSJGBMX_XLBZID,XLXSJGBMX_DYDJID, "); + SQL.Add(" case when XLBZ_DZSC='Y' then (select isnull(MAX(XLBZ_PX),0) from XLBZ where XLBZ_DZSC = 'Y' ) else XLBZ_PX end as XLBZ_PX "); + SQL.Add(" from XLXSJGBMX "); + SQL.Add(" LEFT JOIN XLBZ ON XLBZ_XLBZID = XLXSJGBMX_XLBZID "); + SQL.Add(" LEFT JOIN XLDYDJB ON XLDYDJB_DYDJID = XLXSJGBMX_DYDJID "); + SQL.Add(" where XLXSJGBMX_XLXHID=:pXLXHID and XLXSJGBMX_XLGGID =:pXLGGID "); + if (bWBBJD) + SQL.Add(" and len(XLXSJGBMX_XLBZID) <10 "); + else + { + if (!sBJDID.Equals("")) + { + SQL.Add(" and (len(XLXSJGBMX_XLBZID) <10 or exists(select 1 from XLXSBJYLZDMX left join XLXSBJYLZD on XLXSBJYLZDMX_SQDH = XLXSBJYLZD_SQDH "); + SQL.Add(" where XLXSBJYLZD_BJDID =:pBJDID and XLXSBJYLZDMX_XLBZID = XLXSJGBMX_XLBZID))"); + SQL.ParamByName("pBJDID").Value = sBJDID; + } + else + { + SQL.Add(" and len(XLXSJGBMX_XLBZID) <10 "); + } + } + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBIDS)); + SQL.Add(" ORDER BY XLBZ_PX,XLXSJGBMX_XLBZID,XLDYDJB_XH "); + SQL.ParamByName("pXLXHID").Value = sXLXHID; + SQL.ParamByName("pXLGGID").Value = sXLGGID; + ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count <= 0) + { + SQL.Clear(); + SQL.Add(" select XLXSCLQD_XLBZID,XLXSCLQD_DYDJID, "); + SQL.Add(" case when XLBZ_DZSC='Y' then (select isnull(MAX(XLBZ_PX),0) from XLBZ where XLBZ_DZSC = 'Y' ) else XLBZ_PX end as XLBZ_PX "); + SQL.Add(" from XLXSCLQD "); + SQL.Add(" LEFT JOIN XLBZ ON XLBZ_XLBZID = XLXSCLQD_XLBZID "); + SQL.Add(" LEFT JOIN XLDYDJB ON XLDYDJB_DYDJID = XLXSCLQD_DYDJID "); + SQL.Add(" where XLXSCLQD_XLXHID=:pXLXHID and XLXSCLQD_XLGGID =:pXLGGID and XLXSCLQD_WPID = 'ZZZZ' "); + if (bWBBJD) + SQL.Add(" and len(XLXSCLQD_XLBZID) <10 "); + else + { + if (!sBJDID.Equals("")) + { + SQL.Add(" and (len(XLXSCLQD_XLBZID) <10 or exists(select 1 from XLXSBJYLZDMX left join XLXSBJYLZD on XLXSBJYLZDMX_SQDH = XLXSBJYLZD_SQDH "); + SQL.Add(" where XLXSBJYLZD_BJDID =:pBJDID and XLXSBJYLZDMX_XLBZID = XLXSCLQD_XLBZID))"); + SQL.ParamByName("pBJDID").Value = sBJDID; + } + else + { + SQL.Add(" and len(XLXSCLQD_XLBZID) <10 "); + } + } + SQL.Add(" ORDER BY XLBZ_PX,XLXSCLQD_XLBZID,XLDYDJB_XH "); + SQL.ParamByName("pXLXHID").Value = sXLXHID; + SQL.ParamByName("pXLGGID").Value = sXLGGID; + ds = dberp.OpenDataSet(SQL); + } + } + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + //标准*电压等级 + dicXLXX.Add(i.ToString().Trim(), ds.Tables[0].Rows[i][0].ToString().Trim() + "*" + ds.Tables[0].Rows[i][1].ToString().Trim()); + } + } + + } + + //标准与电压的转换传入与传出,格式XLXSCLQ_DYDJDID 或者XLXSJGBMX_DYDJID等,表明如果sValue传入电压,返回的则是标准。 + private List GetBJCPValue_XLXSCLQDorXLXSJGBMX(string sXLXHID, string sXLGGID, string sValue, string sJGBID, string sLY) + { + List lst = new List(); + lst.Clear(); + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + sql.Clear(); + DataSet ds = new DataSet(); + if (sLY.Contains("XLXSCLQD")) + { + sql.Clear(); + if (sLY.Contains("XLXSCLQD_DYDJID")) + { + sql.Add(" SELECT XLXSCLQD_XLBZID FROM XLXSCLQD"); + } + else if (sLY.Contains("XLXSCLQD_XLBZID")) + { + sql.Add(" SELECT XLXSCLQD_DYDJID FROM XLXSCLQD"); + } + else + { + sql.Add(" SELECT XLXSCLQD_DYDJID FROM XLXSCLQD"); + } + sql.Add(" left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSCLQD_XLGGID"); + sql.Add(" WHERE 1=1 and XLXSCLQD_XLXHID=:pXLXHID and XLXSBJXLGGTHB_XLGGIDCH = :pXLGGID and XLXSCLQD_WPID = 'ZZZZ' "); + if (sLY.Contains("XLXSCLQD_DYDJID")) + { + sql.Add(" and XLXSCLQD_DYDJID=:pDYDJID "); + sql.ParamByName("pDYDJID").Value = sValue.Equals("") ? " " : sValue; + } + else if (sLY.Contains("XLXSCLQD_XLBZID")) + { + sql.Add(" and XLXSCLQD_XLBZID=:pXLBZID "); + sql.ParamByName("pXLBZID").Value = sValue; + } + else + { + sql.Add(" and 1<> 1 "); + } + sql.ParamByName("pXLXHID").Value = sXLXHID; + sql.ParamByName("pXLGGID").Value = sXLGGID.Replace('*', '×'); + ds = dberp.OpenDataSet(sql); + + } + else if (sLY.Contains("XLXSJGBMX")) + { + sql.Clear(); + if (sLY.Contains("XLXSJGBMX_DYDJID")) + { + sql.Add(" SELECT XLXSJGBMX_XLBZID FROM XLXSJGBMX "); + } + else if (sLY.Contains("XLXSJGBMX_XLBZID")) + { + sql.Add(" SELECT XLXSJGBMX_DYDJID FROM XLXSJGBMX "); + } + else + { + sql.Add(" SELECT XLXSJGBMX_DYDJID FROM XLXSJGBMX "); + } + sql.Add(" LEFT JOIN XLXSBJXLGGTHB XLXSBJXLGGTHB_MX3 on XLXSBJXLGGTHB_MX3.XLXSBJXLGGTHB_XLGGID=XLXSJGBMX_XLGGID "); + sql.Add(" WHERE 1=1 and XLXSJGBMX_XLXHID=:pXLXHID and XLXSBJXLGGTHB_MX3.XLXSBJXLGGTHB_XLGGIDCH = :pXLGGID "); + sql.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); + if (sLY.Contains("XLXSJGBMX_DYDJID")) + { + sql.Add(" and XLXSJGBMX_DYDJID=:pDYDJID "); + sql.ParamByName("pDYDJID").Value = sValue.Equals("") ? " " : sValue; + } + else if (sLY.Contains("XLXSJGBMX_XLBZID")) + { + sql.Add(" and XLXSJGBMX_XLBZID=:pXLBZID "); + sql.ParamByName("pXLBZID").Value = sValue; + } + else + { + sql.Add(" and 1<> 1 "); + } + sql.ParamByName("pXLXHID").Value = sXLXHID; + sql.ParamByName("pXLGGID").Value = sXLGGID.Replace('*', '×'); + ds = dberp.OpenDataSet(sql); + } + if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) + { + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + if (!lst.Contains(ds.Tables[0].Rows[i][0].ToString().Trim())) + { + lst.Add(ds.Tables[0].Rows[i][0].ToString().Trim()); + } + } + } + return lst; + } + + + private List GetXLBZMSValue_XLXSCLQDorXLXSJGBMX(string sXLXHID, string sXLGGID, string sValue, string sJGBID, string sLY) + { + List lst = new List(); + lst.Clear(); + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + sql.Clear(); + DataSet ds = new DataSet(); + if (sLY.Contains("XLXSCLQD")) + { + sql.Clear(); + if (sLY.Contains("XLXSCLQD_DYDJID")) + { + sql.Add(" SELECT XLBZ_XLBZMS FROM XLXSCLQD"); + } + else if (sLY.Contains("XLXSCLQD_XLBZID")) + { + sql.Add(" SELECT XLXSCLQD_DYDJID FROM XLXSCLQD"); + } + else + { + sql.Add(" SELECT XLXSCLQD_DYDJID FROM XLXSCLQD"); + } + sql.Add(" left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSCLQD_XLGGID"); + sql.Add(" left join XLBZ on XLBZ_XLBZID=XLXSCLQD_XLBZID "); + sql.Add(" WHERE 1=1 and XLXSCLQD_XLXHID=:pXLXHID and XLXSBJXLGGTHB_XLGGIDCH = :pXLGGID and XLXSCLQD_WPID = 'ZZZZ' "); + if (sLY.Contains("XLXSCLQD_DYDJID")) + { + sql.Add(" and XLXSCLQD_DYDJID=:pDYDJID "); + sql.ParamByName("pDYDJID").Value = sValue.Equals("") ? " " : sValue; + } + else if (sLY.Contains("XLXSCLQD_XLBZID")) + { + sql.Add(" and XLXSCLQD_XLBZID=:pXLBZID "); + sql.ParamByName("pXLBZID").Value = sValue; + } + else + { + sql.Add(" and 1<> 1 "); + } + sql.ParamByName("pXLXHID").Value = sXLXHID; + sql.ParamByName("pXLGGID").Value = sXLGGID.Replace('*', '×'); + ds = dberp.OpenDataSet(sql); + + } + else if (sLY.Contains("XLXSJGBMX")) + { + sql.Clear(); + if (sLY.Contains("XLXSJGBMX_DYDJID")) + { + sql.Add(" SELECT XLBZ_XLBZMS FROM XLXSJGBMX "); + } + else if (sLY.Contains("XLXSJGBMX_XLBZID")) + { + sql.Add(" SELECT XLXSJGBMX_DYDJID FROM XLXSJGBMX "); + } + else + { + sql.Add(" SELECT XLXSJGBMX_DYDJID FROM XLXSJGBMX "); + } + sql.Add(" LEFT JOIN XLXSBJXLGGTHB XLXSBJXLGGTHB_MX3 on XLXSBJXLGGTHB_MX3.XLXSBJXLGGTHB_XLGGID=XLXSJGBMX_XLGGID "); + sql.Add(" left join XLBZ on XLBZ_XLBZID=XLXSJGBMX_XLBZID "); + sql.Add(" WHERE 1=1 and XLXSJGBMX_XLXHID=:pXLXHID and XLXSBJXLGGTHB_MX3.XLXSBJXLGGTHB_XLGGIDCH = :pXLGGID "); + sql.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBID)); + if (sLY.Contains("XLXSJGBMX_DYDJID")) + { + sql.Add(" and XLXSJGBMX_DYDJID=:pDYDJID "); + sql.ParamByName("pDYDJID").Value = sValue.Equals("") ? " " : sValue; + } + else if (sLY.Contains("XLXSJGBMX_XLBZID")) + { + sql.Add(" and XLXSJGBMX_XLBZID=:pXLBZID "); + sql.ParamByName("pXLBZID").Value = sValue; + } + else + { + sql.Add(" and 1<> 1 "); + } + sql.ParamByName("pXLXHID").Value = sXLXHID; + sql.ParamByName("pXLGGID").Value = sXLGGID.Replace('*', '×'); + ds = dberp.OpenDataSet(sql); + } + if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) + { + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + if (!lst.Contains(ds.Tables[0].Rows[i][0].ToString().Trim())) + { + lst.Add(ds.Tables[0].Rows[i][0].ToString().Trim()); + } + } + } + return lst; + } + + //根据设置的线缆销售报价产品颜色,给XLXSBJDMX_XLYSID字段赋值 + public static string GetDefaultYSID(string sXLXHID, string sXLGGID,string sXLYSID) + { + if(string.IsNullOrEmpty(sXLYSID)) + sXLYSID = "BK"; + + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + if (!sXLXHID.Equals("")) + { + Dictionary dicXLGGB = XLBJDUtils.GetXXJGIDByXLGGID(sXLGGID, sXLXHID); + SQL.Add("select XLXSBJCPYS_XLYSID,"); + SQL.Add(" case WHEN XLXSBJCPYS_XLJBXHID<>' ' and XLXSBJCPYS_XXJGID<>' ' and XLXSBJCPYS_XXJGID=:pXXJGID then 1"); + SQL.Add(" WHEN XLXSBJCPYS_XLJBXHID<>' ' and XLXSBJCPYS_XXJGID=' ' then 2"); + SQL.Add(" WHEN XLXSBJCPYS_XLJBXHID=' ' and XLXSBJCPYS_XXJGID=' ' then 3"); + SQL.Add(" else 9999 END AS PX,"); + SQL.Add(" XLXSBJCPYS_XLJBXHID,XLXSBJCPYS_XXJGID"); + SQL.Add(" from XLXSBJCPYS"); + SQL.Add(" where 1=1"); + SQL.Add(" and exists(select 1 from XLXHB where XLXHB_XLXHID=:pXLXHID and XLXHB_CPYT=XLXSBJCPYS_CPYT)"); + SQL.Add(" and (XLXSBJCPYS_XLJBXHID =' '"); + SQL.Add(" or exists(select 1 from XLXHB where XLXHB_XLXHID=:pXLXHID and XLXHB_XLJBXHID=XLXSBJCPYS_XLJBXHID)) "); + SQL.Add(" order by PX,XLXSBJCPYS_XLJBXHID,XLXSBJCPYS_XXJGID "); + SQL.ParamByName("pXLXHID").Value = sXLXHID; + SQL.ParamByName("pXXJGID").Value = dicXLGGB["XXJGID"]; + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + if (!ds.Tables[0].Rows[0]["PX"].ToString().Trim().Equals("9999")) + { + sXLYSID = ds.Tables[0].Rows[0]["XLXSBJCPYS_XLYSID"].ToString().Trim(); + } + } + } + + return sXLYSID; + } + + public static string GetDefaultYSID(string sXLXHID, string sXLGGID) + { + return GetDefaultYSID(sXLXHID, sXLGGID,""); + } + + public static string GetMRJLDWByJBXH(string sXLXHID) + { + if (sXLXHID.Equals("")) + return ""; + + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + + SQL.Clear(); + SQL.Add(@"select XLXSBJCPJLDW_JLDW + from XLXSBJCPJLDW + where exists (select 1 from XLXHB where XLXHB_XLXHID=:pXLXHID and XLXSBJCPJLDW_XLJBXHID=XLXHB_XLJBXHID)"); + SQL.ParamByName("pXLXHID").Value = sXLXHID; + + DataSet ds = dberp.OpenDataSet(SQL); + + if (ds.Tables[0].Rows.Count <= 0) + return ""; + + return ds.Tables[0].Rows[0][0].ToString().Trim(); + } + + private Dictionary> GetCLQDTable(string sBJDID) + { + Dictionary> dicCLQD = new Dictionary>(); + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + sql.Clear(); + sql.Add("select XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID,XLXSBJDMX_XLBZID,XLXSBJDMX_DYDJID,XLXSBJDMX_XSSX "); + for (int i = 1; i <= 80; i++) + { + sql.Add(string.Format(",XLXSCLQD_SL{0},XLXSCLQD_SHL{0},XLXSCLQD_CLJGBL{0},XLXSCLQDWL_WLID{0} ", i.ToString().PadLeft(2, '0'))); + } + sql.Add(@" from XLXSBJDMX + left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSBJDMX_XLXHID and XLXSCLQD_XLGGID=XLXSBJDMX_XLGGID and XLXSCLQD_XLBZID=XLXSBJDMX_XLBZID and XLXSCLQD_DYDJID=XLXSBJDMX_DYDJID + left join XLXSCLQDWL on XLXSCLQDWL_JGCZBID=XLXSCLQD_JGCZBID and XLXSCLQDWL_JGCZBBBID=XLXSCLQD_JGCZBBBID and XLXSCLQDWL_JGCZBXH=XLXSCLQD_JGCZBXH and XLXSCLQDWL_DRHH=XLXSCLQD_DRHH + where XLXSBJDMX_BJDID=:pBJDID + order by XLXSBJDMX_XSSX "); + sql.ParamByName("pBJDID").Value = sBJDID; + + DataSet ds = dberp.OpenDataSet(sql); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + Dictionary XLCLQDList = new Dictionary(); + string sXLXHID = ds.Tables[0].Rows[i]["XLXSBJDMX_XLXHID"].ToString().Trim(); + string sXLGGID = ds.Tables[0].Rows[i]["XLXSBJDMX_XLGGID"].ToString().Trim(); + string sXLBZID = ds.Tables[0].Rows[i]["XLXSBJDMX_XLBZID"].ToString().Trim(); + string sDYDJID = ds.Tables[0].Rows[i]["XLXSBJDMX_DYDJID"].ToString().Trim(); + string sXSSX = ds.Tables[0].Rows[i]["XLXSBJDMX_XSSX"].ToString().Trim(); + string sKey = sXLXHID + "|" + sXLGGID + "|" + sXLBZID + "|" + sDYDJID + "|" + sXSSX; + if (!dicCLQD.ContainsKey(sKey)) + { + for (int j = 1; j <= 80; j++) + { + string sL = j.ToString().PadLeft(2, '0'); + double dSL = CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSCLQD_SL" + sL].ToString().Trim(), 0); + double dSHL = CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSCLQD_SHL" + sL].ToString().Trim(), 0); + double dCLJGBL = CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSCLQD_CLJGBL" + sL].ToString().Trim(), 0); + string sWLID = ds.Tables[0].Rows[i]["XLXSCLQDWL_WLID" + sL].ToString().Trim(); + if (dSL > 0) + { + XLCLQDLEntity clqd = new XLCLQDLEntity(); + clqd.CLQDL = sL; + clqd.CLSL = dSL; + clqd.SHL = dSHL; + clqd.CLJGBL = dCLJGBL; + clqd.WLID = sWLID; + XLCLQDList.Add(sL, clqd); + } + + } + if (XLCLQDList.Count > 0) + dicCLQD.Add(sKey, XLCLQDList); + } + } + return dicCLQD; + } + + + + private DataSet GetCLCBTable(string sBJDID) + { + + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + sql.Clear(); + sql.Add(" select XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID,XLXSBJDMX_XLBZID,XLXSBJDMX_DYDJID,XLXSBJDMX_XSSX "); + for (int i = 1; i <= 80; i++) + { + string sL = i.ToString().PadLeft(2, '0'); + sql.Add(string.Format(",XLXSBJDCLCB_CLSL{0},XLXSBJDCLCB_CLDJ{0},XLXSBJDCLCB_CLID{0} ", sL)); + + } + sql.Add(" from XLXSBJDCLCB "); + sql.Add(" left join XLXSBJDMX on XLXSBJDMX_BJDID=XLXSBJDCLCB_BJDID and XLXSBJDMX_XH=XLXSBJDCLCB_XH "); + sql.Add(" where XLXSBJDCLCB_BJDID=:pBJDID "); + sql.ParamByName("pBJDID").Value = sBJDID; + return dberp.OpenDataSet(sql); + } + + private Dictionary GetCLMCDic() + { + Dictionary dicCLHQ = new Dictionary(); + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + sql.Clear(); + sql.Add(@"select XLXSBJCL_BJCLID,XLXSBJCL_BJCLMC + from XLXSBJCL where 1=1 "); + DataSet ds = dberp.OpenDataSet(sql); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + string sBJCLID = ds.Tables[0].Rows[i]["XLXSBJCL_BJCLID"].ToString().Trim(); + string sCLMC = ds.Tables[0].Rows[i]["XLXSBJCL_BJCLMC"].ToString().Trim(); + if (!dicCLHQ.ContainsKey(sBJCLID)) + dicCLHQ.Add(sBJCLID, sCLMC); + } + return dicCLHQ; + + } + + private Dictionary> GetCLQDTable() + { + DataSet ds = GetCLCBTable(txtBJDID.Text.Trim()); + Dictionary dicCLMC = GetCLMCDic(); + Dictionary> dicCLQD = new Dictionary>(); + int estimatedCapacity = ds.Tables[0].Rows.Count; + if (estimatedCapacity > 0) + { + dicCLQD = new Dictionary>(estimatedCapacity); + } + int xlxhIdIndex = ds.Tables[0].Columns.IndexOf("XLXSBJDMX_XLXHID"); + int xlggIdIndex = ds.Tables[0].Columns.IndexOf("XLXSBJDMX_XLGGID"); + int xlbzIdIndex = ds.Tables[0].Columns.IndexOf("XLXSBJDMX_XLBZID"); + int dydjIdIndex = ds.Tables[0].Columns.IndexOf("XLXSBJDMX_DYDJID"); + int xssxIndex = ds.Tables[0].Columns.IndexOf("XLXSBJDMX_XSSX"); + + + // 使用StringBuilder构建键 + StringBuilder keyBuilder = new StringBuilder(100); + + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + DataRow row = ds.Tables[0].Rows[i]; + + // 使用StringBuilder构建键 + keyBuilder.Length = 0; // 清空StringBuilder + keyBuilder.Append(row[xlxhIdIndex].ToString().Trim()).Append("|"); + keyBuilder.Append(row[xlggIdIndex].ToString().Trim()).Append("|"); + keyBuilder.Append(row[xlbzIdIndex].ToString().Trim()).Append("|"); + keyBuilder.Append(row[dydjIdIndex].ToString().Trim()).Append("|"); + keyBuilder.Append(row[xssxIndex].ToString().Trim()); + + string sKey = keyBuilder.ToString(); + + if (!dicCLQD.ContainsKey(sKey)) + { + Dictionary XLCLQDList = new Dictionary(80); + + for (int j = 1; j <= 80; j++) + { + string sL = j.ToString().PadLeft(2, '0'); + + // 缓存列名 + string clslColumn = "XLXSBJDCLCB_CLSL" + sL; + string cldjColumn = "XLXSBJDCLCB_CLDJ" + sL; + string clidColumn = "XLXSBJDCLCB_CLID" + sL; + + double dSL = CMISproConvert.StrToFloat(row[clslColumn].ToString().Trim(), 0); + + if (dSL > 0) + { + string sCLID = row[clidColumn].ToString().Trim().Split('|')[0]; + + XLCLQDLEntity clqd = new XLCLQDLEntity(); + clqd.CLQDL = sL; + clqd.CLSL = dSL; + clqd.CLJG = CMISproConvert.StrToFloat(row[cldjColumn].ToString().Trim(), 0); + clqd.SHL = 0; + clqd.CLJGBL = 1; + clqd.BJCLID = sCLID; + + if (dicCLMC.ContainsKey(sCLID)) + clqd.LMMC = dicCLMC[sCLID]; + + XLCLQDList.Add(sL, clqd); + } + } + + if (XLCLQDList.Count > 0) + dicCLQD.Add(sKey, XLCLQDList); + } + } + return dicCLQD; + } + + + private void BJDHQLJDCJGE() + { + Dictionary> dicCLQD = GetCLQDTable(); + DataSet FinalExcelSet = new DataSet(); + DataTable FinalTable = new DataTable(); + FinalTable.TableName = "报价单行情材料成本"; + FinalTable.Columns.Add("显示序号", typeof(double)); + FinalTable.Columns.Add("型号", typeof(string)); + FinalTable.Columns.Add("规格", typeof(string)); + FinalTable.Columns.Add("标准", typeof(string)); + FinalTable.Columns.Add("电压等级", typeof(string)); + FinalTable.Columns.Add("材料编码", typeof(string)); + FinalTable.Columns.Add("材料名称", typeof(string)); + FinalTable.Columns.Add("材料价格(元/Kg)", typeof(double)); + FinalTable.Columns.Add("材料用量", typeof(double)); + FinalTable.Columns.Add("材料成本", typeof(double)); + // 使用字典提高查找效率 + Dictionary rowDictionary = new Dictionary(); + foreach (string sKey in dicCLQD.Keys) + { + bool flag = false; + string[] keyParts = sKey.Split('|'); + string sXLXHID = keyParts[0]; + string sXLGGID = keyParts[1]; + string sXLBZID = keyParts[2]; + string sDYDJID = keyParts[3]; + double dXSSX = CMISproConvert.StrToFloat(keyParts[4], 0); + + foreach (string CLQDL in dicCLQD[sKey].Keys) + { + XLCLQDLEntity entity = dicCLQD[sKey][CLQDL]; + string sCLBM = entity.BJCLID; + string sCLMC = entity.LMMC; + double dCLJG = entity.CLJG; + double dCLSL = NumberUtils.RoundX(entity.CLSL * (1 - entity.SHL / 100) * entity.CLJGBL, 6); + + if (dCLSL == 0) + continue; + + double dCLCB = NumberUtils.RoundX(dCLJG * dCLSL, 6); + + // 创建唯一键用于查找 + string rowKey = dXSSX.ToString() + "|" + sCLBM; + + if (rowDictionary.ContainsKey(rowKey)) + { + DataRow dr = rowDictionary[rowKey]; + double currentUsage = CMISproConvert.StrToFloat(dr["材料用量"].ToString(), 0); + double currentCost = CMISproConvert.StrToFloat(dr["材料成本"].ToString(), 0); + + dr["材料用量"] = currentUsage + dCLSL; + dr["材料成本"] = currentCost + dCLCB; + dr["材料价格(元/Kg)"] = NumberUtils.RoundX((currentCost + dCLCB) / (currentUsage + dCLSL), 6); + } + else + { + DataRow newRow = FinalTable.NewRow(); + newRow["显示序号"] = dXSSX; + newRow["型号"] = sXLXHID; + newRow["规格"] = sXLGGID; + newRow["标准"] = sXLBZID; + newRow["电压等级"] = sDYDJID; + newRow["材料编码"] = sCLBM; + newRow["材料名称"] = sCLMC; + newRow["材料价格(元/Kg)"] = dCLJG; + newRow["材料用量"] = dCLSL; + newRow["材料成本"] = dCLCB; + + FinalTable.Rows.Add(newRow); + rowDictionary.Add(rowKey, newRow); + } + + flag = true; + } + + if (flag) + { + DataRow newRowBlank = FinalTable.NewRow(); + FinalTable.Rows.Add(newRowBlank); + } + } + + // 其余代码保持不变... + FinalExcelSet.Tables.Add(FinalTable); + NpoiSheetData sd = new NpoiSheetData(); + sd.ColumnStyle = new System.Collections.Generic.Dictionary(); + NpoiColumnStyle ct = new NpoiColumnStyle(); + ct.DataFormat = "0;-0;;@"; + sd.ColumnStyle.Add("A", ct); + ct.DataFormat = "0.000;-0.000;;@"; + sd.ColumnStyle.Add("H", ct); + ct.DataFormat = "0.000000;-0.000000;;@"; + sd.ColumnStyle.Add("I", ct); + ct.DataFormat = "0.0000;-0.0000;;@"; + sd.ColumnStyle.Add("J", ct); + sd.ColumnType = new System.Collections.Generic.Dictionary(); + string sLet = ""; + sLet = TExcelData.ColIndexToReference(0); + sd.ColumnType.Add(sLet, NpoiColumnType.Double); + sLet = TExcelData.ColIndexToReference(7); + sd.ColumnType.Add(sLet, NpoiColumnType.Double); + sLet = TExcelData.ColIndexToReference(8); + sd.ColumnType.Add(sLet, NpoiColumnType.Double); + sLet = TExcelData.ColIndexToReference(9); + sd.ColumnType.Add(sLet, NpoiColumnType.Double); + + + + string sFileName = CurSession.UserId.Trim() + Guid.NewGuid().ToString() + "材料成本"; + string m_tmpFilePath = FileService.CombineTempPath(sFileName + ".xlsx"); + string smessage = string.Empty; + TExcelData.CreateExcel_XLSX_NPOI(m_tmpFilePath, FinalExcelSet, true, null, sd, ref smessage); + if (smessage.Equals("")) + { + System.IO.FileInfo file = new System.IO.FileInfo(m_tmpFilePath); + string URL = Page.ResolveClientUrl("~") + "/N_MODEL/Dialog/TempFileDownload.ashx?TempFileName=" + file.Name + "&FileName=" + sFileName + file.Extension; + string jsript = @"var JLDCDiv = document.createElement('div');JLDCDiv.style.width=0;JLDCDiv.style.height=0;JLDCDiv.id = 'DivifrDownLoad';" + + " var ele=document.documentElement||document.body;ele.appendChild(JLDCDiv);var iJLDCfrm = document.createElement('iframe');iJLDCfrm.id = 'iJLDCfrmDownLoad';iJLDCfrm.src = '" + URL + "';" + + "iJLDCfrm.style.width = 0;iJLDCfrm.style.height = 0; JLDCDiv.appendChild(iJLDCfrm);"; + AjaxRunScript("OPENJLDC", jsript); + } + else + { + ShowMessage(smessage); + } + + } + + + + private bool HasCLQD(string sXLXHID, string sXLGGID, string sXLBZID, string sDYDJID) + { + if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSCLQD where XLXSCLQD_XLXHID='{0}' and XLXSCLQD_XLGGID='{1}' and XLXSCLQD_XLBZID='{2}' and XLXSCLQD_DYDJID='{3}' and XLXSCLQD_WPID='ZZZZ' ", sXLXHID, sXLGGID, sXLBZID, sDYDJID))) + return true; + return false; + } + + + //报价下拉按钮-四舍五入 + private void Round_TZBJ() + { + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); + + TPageParams pageParams = new TPageParams(); + pageParams.UrlPath = "XLBJD_BJSSWRInfo.aspx"; + pageParams.AddString("BJDID", txtBJDID.Text.Trim()); + pageParams.AddString("JCLLX", bjflxx.XLXSBJFL_BJJCLLX); + pageParams.AddString("LJJCLLX", bjflxx.XLXSBJFL_LJJCLLX); + pageParams.AddString("BJLJJCLLX", bjflxx.XLXSBJFL_BJLJJCLLX); + pageParams.AddString("CPBJMRXSWS", bjflxx.XLXSBJFL_CPBJMRXSWS); + pageParams.AddString("btnRefresh1", btnRefresh1.ClientID); + OpenDialog(pageParams); + } + + //报价产品是否启动报价运费 + private string bCPQYYF(string sBJDID, string sXH) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add(" select XLXSBJD_BJFLID,case when ISNULL(A.XLXSBJXHML_CPMLID,' ') = ' ' then ISNULL(B.XLXSBJXHML_CPMLID,' ') else ISNULL(A.XLXSBJXHML_CPMLID,' ') end as CPMLID from XLXSBJDMX "); + SQL.Add(" left join XLXSBJD on XLXSBJD_BJDID = XLXSBJDMX_BJDID "); + SQL.Add(" left join XLXSBJDQYFZB on XLXSBJDQYFZB_XZQHID = XLXSBJD_XZQHID "); + SQL.Add(" left join XLXSBJXHML A on A.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and A.XLXSBJXHML_DYDJID = isnull(XLXSBJDMX_DYDJID, ' ')"); + SQL.Add(" left join XLXSBJXHML B on B.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and B.XLXSBJXHML_DYDJID = ' ' "); + SQL.Add(" where XLXSBJDMX_BJDID = :pBJDID and XLXSBJDMX_XH = :pXH "); + SQL.Add(" and (XLXSBJDQYFZB_YFJSFS like '%3%' or XLXSBJDQYFZB_YFJSFS like '%4%') "); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pXH").Value = CMISproConvert.StrToFloat(sXH); + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + string sBJFLID = ds.Tables[0].Rows[0]["XLXSBJD_BJFLID"].ToString().Trim(); + string sCPMLID = ds.Tables[0].Rows[0]["CPMLID"].ToString().Trim(); + if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSBJDQYFB4SY1 where XLXSBJDQYFB4SY1_CPMLID = '{0}'", sCPMLID))) + { + List yzxx_List = XLBJDUtils.GetBJFLYZOrderByXSXH(sBJFLID); + foreach (TZYZXX yzxx in yzxx_List) + { + if(yzxx.XLXSTZYZ_TJMDID.Equals("100860071")) + return "Y"; + } + + } + } + return "N"; + } + + //获取运费单价 + public static double GetYSFY(string sYSJDID, string sGYSID, string sYFWLID, double fZZL) + { + double fYSFY = 0; + if (sGYSID.Trim().Equals("")) + { + return fYSFY; + } + + string sYSXLID = ""; + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add(" select YSXL_YSXLID from YSXL "); + SQL.Add(" left join YSXLMX on YSXLMX_YSXLID = YSXL_YSXLID "); + SQL.Add(" where isnull(YSXL_TYBZ,'N') <> 'Y' "); + SQL.Add(" and exists(select 1 from YSXLMX where YSXLMX_YSXLID = YSXL_YSXLID and YSXLMX_YSJDID = :pYSXLMX_YSJDID) "); + SQL.Add(" and not exists(select 1 from YSXLMX where YSXLMX_YSXLID = YSXL_YSXLID and YSXLMX_YSJDID <> :pYSXLMX_YSJDID) "); + SQL.Add(" order by YSXL_YSXLID"); + SQL.ParamByName("pYSXLMX_YSJDID").Value = sYSJDID; + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + sYSXLID = ds.Tables[0].Rows[0][0].ToString().Trim(); + + SQL.Clear(); + SQL.Add(" select CHJJJGBMX_WLJG from CHJJJGBMX "); + SQL.Add(" left join CHJJJGB on CHJJJGB_JGBLX = CHJJJGBMX_JGBLX and CHJJJGB_JGBBH = CHJJJGBMX_JGBBH and CHJJJGB_JGBQH = CHJJJGBMX_JGBQH "); + SQL.Add(" left join YFJZQJ on YFJZQJ_WLID = CHJJJGBMX_WLID and YFJZQJ_YFJZQH = SUBSTRING(CHJJJGBMX_JJPC,21,10) "); + SQL.Add(" where CHJJJGBMX_JGBLX = 'YF' and CHJJJGBMX_JGBBH = :pCHJJJGBMX_JGBBH "); + SQL.Add(" and CHJJJGBMX_WLID =:pCHJJJGBMX_WLID and CHJJJGBMX_JJPC like :pCHJJJGBMX_JJPC "); + //此处有交叠问题 + SQL.Add(" and YFJZQJ_YFJZSX > :pZZL and YFJZQJ_YFJZXX <= :pZZL "); + SQL.Add(" and CHJJJGB_KSRQ<=:pRQ and IsNull(CHJJJGB_JSRQ,Convert(DateTime,'9999-12-31'))>=:pRQ "); + SQL.ParamByName("pCHJJJGBMX_JGBBH").Value = sGYSID; + SQL.ParamByName("pCHJJJGBMX_WLID").Value = sYFWLID; + SQL.ParamByName("pCHJJJGBMX_JJPC").Value = sYSXLID.PadRight(10, ' ') + sYSJDID.PadRight(10, ' ') + "%"; + SQL.ParamByName("pZZL").Value = fZZL; + SQL.ParamByName("pRQ").Value = DateTime.Now; + ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + fYSFY = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0][0].ToString().Trim()); + } + } + + return fYSFY; + } + + //字典value值模糊匹配 + public static bool dicValueContained(Dictionary dic, string sValue) + { + foreach (string V in dic.Values) + { + if (V.Contains(sValue)) + return true; + } + return false; + } + + //根据调因子值因子返回调因子值后的因子值 + public static double GetTYZZ(string sTZYZZIDs, double dYZZ, Dictionary dicTYZZYZIDValue) + { + string[] sTYZZYZIDList = sTZYZZIDs.Split(','); + for (int i = 0; i < sTYZZYZIDList.Length; i++) + { + if (dicTYZZYZIDValue.ContainsKey(sTYZZYZIDList[i])) + { + if (XLBJDUtils.GetYZXXByYZID(sTYZZYZIDList[i]).XLXSTZYZ_JJFS == "JD") + dYZZ = dYZZ * (1 + dicTYZZYZIDValue[sTYZZYZIDList[i]] / 100.0);//因子值先被“调因子值”因子作用 + else if (XLBJDUtils.GetYZXXByYZID(sTYZZYZIDList[i]).XLXSTZYZ_JJFS == "KD") + { + if (dicTYZZYZIDValue[sTYZZYZIDList[i]]!=100) + dYZZ = dYZZ / (1 - dicTYZZYZIDValue[sTYZZYZIDList[i]] / 100.0);//因子值先被“调因子值”因子作用 + + } + else + dYZZ = dYZZ + dicTYZZYZIDValue[sTYZZYZIDList[i]];//因子值先被“调因子值”因子作用 + } + + } + return dYZZ; + } + + // + // + // + // + // + // + // + protected void btnMXOper_DropDown(object sender, EventArgs e) + { + bool bFromTQJGDFBJList = PageParam.GetRTrimString("FromTQJGDFBJList").Equals("Y"); + string sXZMXKXX = ""; + XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860000); + if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_XZMXKXX)) + sXZMXKXX = pzxx.XLXSBJPZ_XZMXKXX; + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); + bool bYXLRBJCP = YXLRBJCP(bjflxx.XLXSBJFL_LRBJCPWPID, txtWPID.Value.Trim()); + btnMXOper.Nodes.Clear(); + if (!sXZMXKXX.Equals("")) + { + Dictionary dicMXKXX = new Dictionary(); + dicMXKXX.Add("ZJBJ", "按价格表录入"); + dicMXKXX.Add("WJDR", "按内置格式导入"); + dicMXKXX.Add("FZDR", "按复制内容导入"); + dicMXKXX.Add("QDDR", "按材料清单导入"); + dicMXKXX.Add("HTDR", "按合同标的价格导入"); + if (CheckModule("100860073")) + { + dicMXKXX.Add("WLDR", "按线缆物料导入"); + } + if (CheckModule("100860043")) + { + dicMXKXX.Add("WBBJD", "按外部报价单导入"); + } + if (CheckModule("100860053")) + { + dicMXKXX.Add("WBPIC", "按外部报价单图片导入"); + } + dicMXKXX.Add("GSDR", "按配置格式导入"); + if (CheckModule("100860099")) + { + dicMXKXX.Add("WXCJD", "按微信查价单导入"); + } + if (CheckModule("102591003")) + { + dicMXKXX.Add("GWCP", "国网产品导入"); + } + if (CheckModule("102591004")) + { + dicMXKXX.Add("BYDCP", "比亚迪产品导入"); + } + if (CheckModule("102591005")) + { + dicMXKXX.Add("KHWLDR", "按客户物料导入"); + } + foreach (string sKXX in sXZMXKXX.Split(',')) + { + if (dicMXKXX.ContainsKey(sKXX)) + { + btnMXOper.Nodes.Add(new gtTreeNode(sKXX, dicMXKXX[sKXX])); + } + } + if (CheckModule("100860043")) + { + XLXSBJPZXX pzxx2 = XLBJDUtils.GetXLXSBJPZXX(100860043); + if (!string.IsNullOrEmpty(pzxx2.XLXSBJPZ_KSDREJCD)) + btnMXOper.Nodes.Add(new gtTreeNode(pzxx2.XLXSBJPZ_KSDREJCD, "型号 规格/型号-电压等级 规格", "WBBJD")); + } + } + if (bFromTQJGDFBJList) + btnMXOper.Nodes.Add(new gtTreeNode("TQJGDFDR", "按铜区间或固定费导入")); + //价格模板 + if (HasJGMB()) + btnMXOper.Nodes.Add(new gtTreeNode("JGMBDC", "按价格模板导出")); + //调整标准 + if(bjflxx.XSXLBZMS()) + btnMXOper.Nodes.Add(new gtTreeNode("TZBZ", "调整线缆标准描述")); + else + btnMXOper.Nodes.Add(new gtTreeNode("TZBZ", "调整标准")); + //工作流域权限隐藏了“表价含税” + if (chkJZBJHS.Style["display"] != "none") + { + if (chkJZBJHS.Checked) + { + btnMXOper.Nodes.Add(new gtTreeNode("JZBJHS", "无税报价")); + } + else + { + btnMXOper.Nodes.Add(new gtTreeNode("JZBJHS", "含税报价")); + } + } + if (XLBJDUtils.ExistXSCPML()) + { + btnMXOper.Nodes.Add(new gtTreeNode("GXCPML", "更新产品目录")); + } + if (!bYXLRBJCP) + { + for (int i = 0; i < btnMXOper.Nodes.Count; i++) + { + if (btnMXOper.Nodes[i].Value.Equals("ZJBJ")) + btnMXOper.Nodes[i].Enabled = false; + if (btnMXOper.Nodes[i].Value.Equals("WJDR")) + btnMXOper.Nodes[i].Enabled = false; + if (btnMXOper.Nodes[i].Value.Equals("FZDR")) + btnMXOper.Nodes[i].Enabled = false; + if (btnMXOper.Nodes[i].Value.Equals("QDDR")) + btnMXOper.Nodes[i].Enabled = false; + if (btnMXOper.Nodes[i].Value.Equals("HTDR")) + btnMXOper.Nodes[i].Enabled = false; + if (btnMXOper.Nodes[i].Value.Equals("GSDR")) + btnMXOper.Nodes[i].Enabled = false; + if (btnMXOper.Nodes[i].Value.Equals("WXCJD")) + btnMXOper.Nodes[i].Enabled = false; + if (btnMXOper.Nodes[i].Value.Equals("GWCP")) + btnMXOper.Nodes[i].Enabled = false; + if (btnMXOper.Nodes[i].Value.Equals("BYDCP")) + btnMXOper.Nodes[i].Enabled = false; + if (btnMXOper.Nodes[i].Value.Equals("KHWLDR")) + btnMXOper.Nodes[i].Enabled = false; + if (btnMXOper.Nodes[i].Value.Equals("TQJGDFDR")) + btnMXOper.Nodes[i].Enabled = false; + if (btnMXOper.Nodes[i].Value.Equals("TZBZ")) + btnMXOper.Nodes[i].Enabled = false; + } + } + MenuAreaUpdate(); + } + + protected void btnMXOper_MenuItemClick(object sender, string value) + { + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); + bool bYXLRBJCP = YXLRBJCP(bjflxx.XLXSBJFL_LRBJCPWPID, txtWPID.Value.Trim()); + TPageParams pageParams = new TPageParams(); + switch (value) + { + + case "ZJBJ": + btnMXOper_Click(null, null); + break; + case "WJDR": + pageParams.UrlPath = "DRBJDMX.aspx"; + pageParams.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); + pageParams.AddString("BJDID", txtBJDID.Text.Trim()); + pageParams.AddString("BJRQ", datBJRQ.Text); + pageParams.AddString("JGBID", cbxJGBID.SelectedValue.Trim()); + pageParams.AddString("JGCIDS", txtJGCIDS.Text.Trim()); + pageParams.AddString("BJLY", txtBJLY.Text.Trim()); + pageParams.AddString("JSBLFS", txtJSBLFS.Text.Trim()); + pageParams.AddString("XSQYID", cbxXSQYID.SelectedValue.Trim()); + pageParams.AddString("PJLX", cbxPJLX.SelectedValue.Trim()); + pageParams.AddString("FKQXNR", cbxFKQXNR.SelectedValue.Trim()); + pageParams.AddString("SYDWID", cbxSYDWID.SelectedValue.Trim()); + pageParams.AddString("HSBZ", chkJZBJHS.Checked ? "Y" : "N"); + pageParams.AddString("JCLLX", bjflxx.XLXSBJFL_BJJCLLX); + pageParams.AddString("LJJCLLX", bjflxx.XLXSBJFL_LJJCLLX); + pageParams.AddString("BJDHQLY", bjflxx.XLXSBJFL_BJDHQLY); + pageParams.AddString("XSYXJ", bjflxx.XLXSBJFL_XSYXJ); + pageParams.AddString("XSYZ", bjflxx.XLXSBJFL_XSYZ); + pageParams.AddString("XSYSCP", bjflxx.XLXSBJFL_XSYSCP); + pageParams.AddString("XSBH", bjflxx.XLXSBJFL_XSFBH); + pageParams.AddString("XSCPBJXJ", bjflxx.XLXSBJFL_XSCPBJXJ); + if (bjflxx.XLXSBJFL_TZCLHQ.Equals("Y"))//是否允许调整材料行情 + { + if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select top 1 XLXSBJDCLHQ_BJCLID from XLXSBJDCLHQ where XLXSBJDCLHQ_BJDID='{0}'", txtBJDID.Text.Trim()))) + pageParams.AddString("NeedUpdBJDHQCLCB", "Y"); + } + pageParams.AddString("TBJCLID", bjflxx.XLXSBJFL_TBJCLID); + pageParams.AddString("LBJCLID", bjflxx.XLXSBJFL_LBJCLID); + pageParams.AddString("TJ", txtTJ.Value.ToString()); + pageParams.AddString("LJ", txtLJ.Value.ToString()); + pageParams.AddString("CPBJMRXSWS", bjflxx.XLXSBJFL_CPBJMRXSWS); + OpenDialogClickBtn(pageParams, btnRefreshCLHQTZ.ClientID); + break; + + case "QDDR": + pageParams.UrlPath = "XLBJD_PLDRList.aspx"; + pageParams.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); + pageParams.AddString("BJDID", txtBJDID.Text.Trim()); + pageParams.AddString("BJRQ", datBJRQ.Text); + pageParams.AddString("JLDW", GetOption(100860000, "BJU003")); + pageParams.AddString("JGBID", cbxJGBID.SelectedValue.Trim()); + pageParams.AddString("JGCIDS", txtJGCIDS.Text.Trim()); + pageParams.AddString("BJLY", txtBJLY.Text.Trim()); + pageParams.AddString("JSBLFS", txtJSBLFS.Text.Trim()); + pageParams.AddString("XSQYID", cbxXSQYID.SelectedValue.Trim()); + pageParams.AddString("PJLX", cbxPJLX.SelectedValue.Trim()); + pageParams.AddString("FKQXNR", cbxFKQXNR.SelectedValue.Trim()); + pageParams.AddString("SYDWID", cbxSYDWID.SelectedValue.Trim()); + pageParams.AddString("HSBZ", chkJZBJHS.Checked ? "Y" : "N"); + pageParams.AddString("JCLLX", bjflxx.XLXSBJFL_BJJCLLX); + pageParams.AddString("LJJCLLX", bjflxx.XLXSBJFL_LJJCLLX); + pageParams.AddString("BJDHQLY", bjflxx.XLXSBJFL_BJDHQLY); + if (bjflxx.XLXSBJFL_TZCLHQ.Equals("Y"))//是否允许调整材料行情 + { + if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select top 1 XLXSBJDCLHQ_BJCLID from XLXSBJDCLHQ where XLXSBJDCLHQ_BJDID='{0}'", txtBJDID.Text.Trim()))) + pageParams.AddString("NeedUpdBJDHQCLCB", "Y"); + } + pageParams.AddString("TBJCLID", bjflxx.XLXSBJFL_TBJCLID); + pageParams.AddString("LBJCLID", bjflxx.XLXSBJFL_LBJCLID); + pageParams.AddString("TJ", txtTJ.Value.ToString()); + pageParams.AddString("LJ", txtLJ.Value.ToString()); + pageParams.AddString("CPBJMRXSWS", bjflxx.XLXSBJFL_CPBJMRXSWS); + OpenDialogClickBtn(pageParams, btnRefreshCLHQTZ.ClientID.ToString()); + break; + case "WLDR": + pageParams.UrlPath = "XLBJD_WBXLWLDRList.aspx"; + pageParams.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); + pageParams.AddString("BJDID", txtBJDID.Text.Trim()); + pageParams.AddString("BJRQ", datBJRQ.Text); + pageParams.AddString("JLDW", GetOption(100860000, "BJU003")); + pageParams.AddString("JGBID", cbxJGBID.SelectedValue.Trim()); + pageParams.AddString("JGCIDS", txtJGCIDS.Text.Trim()); + pageParams.AddString("BJLY", txtBJLY.Text.Trim()); + pageParams.AddString("JSBLFS", txtJSBLFS.Text.Trim()); + pageParams.AddString("XSQYID", cbxXSQYID.SelectedValue.Trim()); + pageParams.AddString("PJLX", cbxPJLX.SelectedValue.Trim()); + pageParams.AddString("FKQXNR", cbxFKQXNR.SelectedValue.Trim()); + pageParams.AddString("SYDWID", cbxSYDWID.SelectedValue.Trim()); + pageParams.AddString("HSBZ", chkJZBJHS.Checked ? "Y" : "N"); + pageParams.AddString("JCLLX", bjflxx.XLXSBJFL_BJJCLLX); + pageParams.AddString("LJJCLLX", bjflxx.XLXSBJFL_LJJCLLX); + pageParams.AddString("BJLJJCLLX", bjflxx.XLXSBJFL_BJLJJCLLX); + pageParams.AddString("BJDHQLY", bjflxx.XLXSBJFL_BJDHQLY); + pageParams.AddString("YXLRBJCP", bYXLRBJCP ? "Y" : "N"); + if (bjflxx.XLXSBJFL_TZCLHQ.Equals("Y"))//是否允许调整材料行情 + { + if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select top 1 XLXSBJDCLHQ_BJCLID from XLXSBJDCLHQ where XLXSBJDCLHQ_BJDID='{0}'", txtBJDID.Text.Trim()))) + pageParams.AddString("NeedUpdBJDHQCLCB", "Y"); + } + pageParams.AddString("TBJCLID", bjflxx.XLXSBJFL_TBJCLID); + pageParams.AddString("LBJCLID", bjflxx.XLXSBJFL_LBJCLID); + pageParams.AddString("TJ", txtTJ.Value.ToString()); + pageParams.AddString("LJ", txtLJ.Value.ToString()); + pageParams.AddString("CPBJMRXSWS", bjflxx.XLXSBJFL_CPBJMRXSWS); + OpenModuleDialog(100860073, pageParams, btnRefreshCLHQTZ.ClientID.ToString()); + break; + case "GSDR": + pageParams.UrlPath = "XLBJD_PZGSList.aspx"; + pageParams.AddString("BJRQ", datBJRQ.Text); + pageParams.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); + pageParams.AddString("BJDID", txtBJDID.Text.Trim()); + pageParams.AddString("JGBID", cbxJGBID.SelectedValue.Trim()); + pageParams.AddString("JGCIDS", txtJGCIDS.Text.Trim()); + pageParams.AddString("BJLY", txtBJLY.Text.Trim()); + pageParams.AddString("JSBLFS", txtJSBLFS.Text.Trim()); + pageParams.AddString("XSQYID", cbxXSQYID.SelectedValue.Trim()); + pageParams.AddString("PJLX", cbxPJLX.SelectedValue.Trim()); + pageParams.AddString("FKQXNR", cbxFKQXNR.SelectedValue.Trim()); + pageParams.AddString("SYDWID", cbxSYDWID.SelectedValue.Trim()); + pageParams.AddString("HSBZ", chkJZBJHS.Checked ? "Y" : "N"); + pageParams.AddString("JCLLX", bjflxx.XLXSBJFL_BJJCLLX); + pageParams.AddString("LJJCLLX", bjflxx.XLXSBJFL_LJJCLLX); + pageParams.AddString("BJDHQLY", bjflxx.XLXSBJFL_BJDHQLY); + pageParams.AddString("ZDXJJCLLX", bjflxx.XLXSBJFL_ZDXJJCLLX); + if (bjflxx.XLXSBJFL_TZCLHQ.Equals("Y"))//是否允许调整材料行情 + { + if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select top 1 XLXSBJDCLHQ_BJCLID from XLXSBJDCLHQ where XLXSBJDCLHQ_BJDID='{0}'", txtBJDID.Text.Trim()))) + pageParams.AddString("NeedUpdBJDHQCLCB", "Y"); + } + pageParams.AddString("TBJCLID", bjflxx.XLXSBJFL_TBJCLID); + pageParams.AddString("LBJCLID", bjflxx.XLXSBJFL_LBJCLID); + pageParams.AddString("TJ", txtTJ.Value.ToString()); + pageParams.AddString("LJ", txtLJ.Value.ToString()); + pageParams.AddString("CPBJMRXSWS", bjflxx.XLXSBJFL_CPBJMRXSWS); + OpenDialogClickBtn(pageParams, btnRefreshCLHQTZ.ClientID); + break; + case "WBBJD": + pageParams.UrlPath = "XLBJD_WBBJDDRList.aspx"; + pageParams.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); + pageParams.AddString("BJDID", txtBJDID.Text.Trim()); + pageParams.AddString("BJRQ", datBJRQ.Text); + pageParams.AddString("JLDW", GetOption(100860000, "BJU003")); + pageParams.AddString("JGBID", cbxJGBID.SelectedValue.Trim()); + pageParams.AddString("JGCIDS", txtJGCIDS.Text.Trim()); + pageParams.AddString("BJLY", txtBJLY.Text.Trim()); + pageParams.AddString("JSBLFS", txtJSBLFS.Text.Trim()); + pageParams.AddString("XSQYID", cbxXSQYID.SelectedValue.Trim()); + pageParams.AddString("PJLX", cbxPJLX.SelectedValue.Trim()); + pageParams.AddString("FKQXNR", cbxFKQXNR.SelectedValue.Trim()); + pageParams.AddString("SYDWID", cbxSYDWID.SelectedValue.Trim()); + pageParams.AddString("HSBZ", chkJZBJHS.Checked ? "Y" : "N"); + pageParams.AddString("JCLLX", bjflxx.XLXSBJFL_BJJCLLX); + pageParams.AddString("LJJCLLX", bjflxx.XLXSBJFL_LJJCLLX); + pageParams.AddString("BJDHQLY", bjflxx.XLXSBJFL_BJDHQLY); + pageParams.AddString("YXLRBJCP", bYXLRBJCP ? "Y" : "N"); + if (bjflxx.XLXSBJFL_TZCLHQ.Equals("Y"))//是否允许调整材料行情 + { + if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select top 1 XLXSBJDCLHQ_BJCLID from XLXSBJDCLHQ where XLXSBJDCLHQ_BJDID='{0}'", txtBJDID.Text.Trim()))) + pageParams.AddString("NeedUpdBJDHQCLCB", "Y"); + } + pageParams.AddString("TBJCLID", bjflxx.XLXSBJFL_TBJCLID); + pageParams.AddString("LBJCLID", bjflxx.XLXSBJFL_LBJCLID); + pageParams.AddString("TJ", txtTJ.Value.ToString()); + pageParams.AddString("LJ", txtLJ.Value.ToString()); + pageParams.AddString("CPBJMRXSWS", bjflxx.XLXSBJFL_CPBJMRXSWS); + pageParams.AddString("XSYXJ", bjflxx.XLXSBJFL_XSYXJ); + pageParams.AddString("XSYZ", bjflxx.XLXSBJFL_XSYZ); + pageParams.AddString("XSYSCP", bjflxx.XLXSBJFL_XSYSCP); + pageParams.AddString("XSBH", bjflxx.XLXSBJFL_XSFBH); + pageParams.AddString("XSCPBJXJ", bjflxx.XLXSBJFL_XSCPBJXJ); + txtDRSJ.Text = CMISproConvert.ConvertTime(DateTime.Now); + OpenModuleDialog(100860043, pageParams, btnRefreshWBBJD.ClientID); + + break; + case "GWCP": + pageParams.UrlPath = "../components/N_XLBJDR/GWCPDRList.aspx"; + pageParams.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); + pageParams.AddString("BJDID", txtBJDID.Text.Trim()); + pageParams.AddString("BJRQ", datBJRQ.Text); + pageParams.AddString("JLDW", GetOption(100860000, "BJU003")); + pageParams.AddString("JGBID", cbxJGBID.SelectedValue.Trim()); + pageParams.AddString("JGCIDS", txtJGCIDS.Text.Trim()); + pageParams.AddString("BJLY", txtBJLY.Text.Trim()); + pageParams.AddString("JSBLFS", txtJSBLFS.Text.Trim()); + pageParams.AddString("XSQYID", cbxXSQYID.SelectedValue.Trim()); + pageParams.AddString("PJLX", cbxPJLX.SelectedValue.Trim()); + pageParams.AddString("FKQXNR", cbxFKQXNR.SelectedValue.Trim()); + pageParams.AddString("SYDWID", cbxSYDWID.SelectedValue.Trim()); + pageParams.AddString("HSBZ", chkJZBJHS.Checked ? "Y" : "N"); + pageParams.AddString("JCLLX", bjflxx.XLXSBJFL_BJJCLLX); + pageParams.AddString("LJJCLLX", bjflxx.XLXSBJFL_LJJCLLX); + pageParams.AddString("BJDHQLY", bjflxx.XLXSBJFL_BJDHQLY); + if (bjflxx.XLXSBJFL_TZCLHQ.Equals("Y"))//是否允许调整材料行情 + { + if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select top 1 XLXSBJDCLHQ_BJCLID from XLXSBJDCLHQ where XLXSBJDCLHQ_BJDID='{0}'", txtBJDID.Text.Trim()))) + pageParams.AddString("NeedUpdBJDHQCLCB", "Y"); + } + pageParams.AddString("TBJCLID", bjflxx.XLXSBJFL_TBJCLID); + pageParams.AddString("LBJCLID", bjflxx.XLXSBJFL_LBJCLID); + pageParams.AddString("TJ", txtTJ.Value.ToString()); + pageParams.AddString("LJ", txtLJ.Value.ToString()); + pageParams.AddString("CPBJMRXSWS", bjflxx.XLXSBJFL_CPBJMRXSWS); + pageParams.AddString("XSYXJ", bjflxx.XLXSBJFL_XSYXJ); + pageParams.AddString("XSYZ", bjflxx.XLXSBJFL_XSYZ); + pageParams.AddString("XSYSCP", bjflxx.XLXSBJFL_XSYSCP); + pageParams.AddString("XSBH", bjflxx.XLXSBJFL_XSFBH); + pageParams.AddString("XSCPBJXJ", bjflxx.XLXSBJFL_XSCPBJXJ); + txtDRSJ.Text = CMISproConvert.ConvertTime(DateTime.Now); + OpenModuleDialog(102591003, pageParams, btnRefreshWBBJD.ClientID); + + break; + + case "BYDCP": + pageParams.UrlPath = "../components/N_XLBJDR/BYDCPDRList.aspx"; + pageParams.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); + pageParams.AddString("BJDID", txtBJDID.Text.Trim()); + pageParams.AddString("BJRQ", datBJRQ.Text); + pageParams.AddString("JLDW", GetOption(100860000, "BJU003")); + pageParams.AddString("JGBID", cbxJGBID.SelectedValue.Trim()); + pageParams.AddString("JGCIDS", txtJGCIDS.Text.Trim()); + pageParams.AddString("BJLY", txtBJLY.Text.Trim()); + pageParams.AddString("JSBLFS", txtJSBLFS.Text.Trim()); + pageParams.AddString("XSQYID", cbxXSQYID.SelectedValue.Trim()); + pageParams.AddString("PJLX", cbxPJLX.SelectedValue.Trim()); + pageParams.AddString("FKQXNR", cbxFKQXNR.SelectedValue.Trim()); + pageParams.AddString("SYDWID", cbxSYDWID.SelectedValue.Trim()); + pageParams.AddString("HSBZ", chkJZBJHS.Checked ? "Y" : "N"); + pageParams.AddString("JCLLX", bjflxx.XLXSBJFL_BJJCLLX); + pageParams.AddString("LJJCLLX", bjflxx.XLXSBJFL_LJJCLLX); + pageParams.AddString("BJDHQLY", bjflxx.XLXSBJFL_BJDHQLY); + if (bjflxx.XLXSBJFL_TZCLHQ.Equals("Y"))//是否允许调整材料行情 + { + if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select top 1 XLXSBJDCLHQ_BJCLID from XLXSBJDCLHQ where XLXSBJDCLHQ_BJDID='{0}'", txtBJDID.Text.Trim()))) + pageParams.AddString("NeedUpdBJDHQCLCB", "Y"); + } + pageParams.AddString("TBJCLID", bjflxx.XLXSBJFL_TBJCLID); + pageParams.AddString("LBJCLID", bjflxx.XLXSBJFL_LBJCLID); + pageParams.AddString("TJ", txtTJ.Value.ToString()); + pageParams.AddString("LJ", txtLJ.Value.ToString()); + pageParams.AddString("CPBJMRXSWS", bjflxx.XLXSBJFL_CPBJMRXSWS); + pageParams.AddString("XSYXJ", bjflxx.XLXSBJFL_XSYXJ); + pageParams.AddString("XSYZ", bjflxx.XLXSBJFL_XSYZ); + pageParams.AddString("XSYSCP", bjflxx.XLXSBJFL_XSYSCP); + pageParams.AddString("XSBH", bjflxx.XLXSBJFL_XSFBH); + pageParams.AddString("XSCPBJXJ", bjflxx.XLXSBJFL_XSCPBJXJ); + txtDRSJ.Text = CMISproConvert.ConvertTime(DateTime.Now); + OpenModuleDialog(102591004, pageParams, btnRefreshWBBJD.ClientID); + + break; + + case "KHWLDR": + pageParams.UrlPath = "../components/N_XLBJDR/AKHWLDRList.aspx"; + pageParams.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); + pageParams.AddString("BJDID", txtBJDID.Text.Trim()); + pageParams.AddString("BJRQ", datBJRQ.Text); + pageParams.AddString("JLDW", GetOption(100860000, "BJU003")); + pageParams.AddString("JGBID", cbxJGBID.SelectedValue.Trim()); + pageParams.AddString("JGCIDS", txtJGCIDS.Text.Trim()); + pageParams.AddString("BJLY", txtBJLY.Text.Trim()); + pageParams.AddString("JSBLFS", txtJSBLFS.Text.Trim()); + pageParams.AddString("XSQYID", cbxXSQYID.SelectedValue.Trim()); + pageParams.AddString("PJLX", cbxPJLX.SelectedValue.Trim()); + pageParams.AddString("FKQXNR", cbxFKQXNR.SelectedValue.Trim()); + pageParams.AddString("SYDWID", cbxSYDWID.SelectedValue.Trim()); + pageParams.AddString("HSBZ", chkJZBJHS.Checked ? "Y" : "N"); + pageParams.AddString("JCLLX", bjflxx.XLXSBJFL_BJJCLLX); + pageParams.AddString("LJJCLLX", bjflxx.XLXSBJFL_LJJCLLX); + pageParams.AddString("BJLJJCLLX", bjflxx.XLXSBJFL_BJLJJCLLX); + pageParams.AddString("BJDHQLY", bjflxx.XLXSBJFL_BJDHQLY); + if (bjflxx.XLXSBJFL_TZCLHQ.Equals("Y"))//是否允许调整材料行情 + { + if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select top 1 XLXSBJDCLHQ_BJCLID from XLXSBJDCLHQ where XLXSBJDCLHQ_BJDID='{0}'", txtBJDID.Text.Trim()))) + pageParams.AddString("NeedUpdBJDHQCLCB", "Y"); + } + pageParams.AddString("TBJCLID", bjflxx.XLXSBJFL_TBJCLID); + pageParams.AddString("LBJCLID", bjflxx.XLXSBJFL_LBJCLID); + pageParams.AddString("TJ", txtTJ.Value.ToString()); + pageParams.AddString("LJ", txtLJ.Value.ToString()); + pageParams.AddString("CPBJMRXSWS", bjflxx.XLXSBJFL_CPBJMRXSWS); + pageParams.AddString("XSYSCP", bjflxx.XLXSBJFL_XSYSCP); + txtDRSJ.Text = CMISproConvert.ConvertTime(DateTime.Now); + OpenModuleDialog(102591005, pageParams, btnRefreshWBBJD.ClientID); + break; + + case "WBPIC": + pageParams.UrlPath = "XLBJD_WBPICDRList.aspx"; + pageParams.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); + pageParams.AddString("BJDID", txtBJDID.Text.Trim()); + pageParams.AddString("BJRQ", datBJRQ.Text); + pageParams.AddString("JLDW", GetOption(100860000, "BJU003")); + pageParams.AddString("JGBID", cbxJGBID.SelectedValue.Trim()); + pageParams.AddString("JGCIDS", txtJGCIDS.Text.Trim()); + pageParams.AddString("BJLY", txtBJLY.Text.Trim()); + pageParams.AddString("JSBLFS", txtJSBLFS.Text.Trim()); + pageParams.AddString("XSQYID", cbxXSQYID.SelectedValue.Trim()); + pageParams.AddString("PJLX", cbxPJLX.SelectedValue.Trim()); + pageParams.AddString("FKQXNR", cbxFKQXNR.SelectedValue.Trim()); + pageParams.AddString("SYDWID", cbxSYDWID.SelectedValue.Trim()); + pageParams.AddString("HSBZ", chkJZBJHS.Checked ? "Y" : "N"); + pageParams.AddString("JCLLX", bjflxx.XLXSBJFL_BJJCLLX); + pageParams.AddString("LJJCLLX", bjflxx.XLXSBJFL_LJJCLLX); + pageParams.AddString("BJDHQLY", bjflxx.XLXSBJFL_BJDHQLY); + pageParams.AddString("YXLRBJCP", bYXLRBJCP ? "Y" : "N"); + if (bjflxx.XLXSBJFL_TZCLHQ.Equals("Y"))//是否允许调整材料行情 + { + if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select top 1 XLXSBJDCLHQ_BJCLID from XLXSBJDCLHQ where XLXSBJDCLHQ_BJDID='{0}'", txtBJDID.Text.Trim()))) + pageParams.AddString("NeedUpdBJDHQCLCB", "Y"); + } + pageParams.AddString("TBJCLID", bjflxx.XLXSBJFL_TBJCLID); + pageParams.AddString("LBJCLID", bjflxx.XLXSBJFL_LBJCLID); + pageParams.AddString("TJ", txtTJ.Value.ToString()); + pageParams.AddString("LJ", txtLJ.Value.ToString()); + pageParams.AddString("CPBJMRXSWS", bjflxx.XLXSBJFL_CPBJMRXSWS); + OpenModuleDialog(100860053, pageParams, btnRefreshCLHQTZ.ClientID.ToString()); + break; + case "WXCJD": + pageParams.UrlPath = "WXXLCJDList.aspx"; + pageParams.AddString("BJDID", txtBJDID.Text.Trim()); + OpenModuleDialog(100860099, pageParams, btnRefreshCLHQTZ.ClientID); + break; + case "TQJGDFDR": + pageParams.AddString("ImportMode", "Y"); + pageParams.AddString("BJDID", txtBJDID.Text.Trim()); + pageParams.AddString("BJHS", chkJZBJHS.Checked ? "Y" : "N"); + pageParams.AddString("btnRefreshCID", btnRefreshOper.ClientID); + OpenModuleDialog(100860109, pageParams, btnRefreshOper.ClientID); + break; + case "JGMBDC": + ExportByJGMB(); + break; + case "JZBJHS": + if (GetOption(100860000, "BJU075").Equals("Y")) + { + ShowMessage("已启用表价含税必填,不允许切换无税报价!"); + return; + } + UpdateByJZBJHS(chkJZBJHS.Checked, true);//无税报价、含税报价切换 + break; + case "SZCPML": + OpenCPML(pageParams); + break; + case "HTDR": + pageParams.UrlPath = "XLBJD_HTBDJGDRInfo.aspx"; + pageParams.AddString("BJDID", txtBJDID.Text.Trim()); + OpenDialogClickBtn(pageParams, btnRefreshCLHQTZ.ClientID); + break; + case "TZBZ": + if (!(grdXLBJDMX.CheckBox && !String.IsNullOrEmpty(grdXLBJDMX.CheckedRows))) + { + txtPLSZAll.Value = "Y"; + } + else + txtPLSZAll.Value = "N"; + pageParams.UrlPath = "XLBJD_MX_BJCPInfo.aspx"; + pageParams.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); + pageParams.AddString("PLSZAll", txtPLSZAll.Value); + pageParams.AddString("BJDID", txtBJDID.Text.Trim()); + pageParams.AddString("txtPLSZBZID", txtPLSZBZID.ClientID); + //是否整单调整 + pageParams.AddString("txtPLSZAllCID", txtPLSZAll.ClientID); + pageParams.AddString("btnRefreshPLTZBZ", btnRefreshPLTZBZ.ClientID); + OpenDialog(pageParams); + break; + case "1": + pageParams.UrlPath = "XLBJD_JYDRInfo.aspx"; + pageParams.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); + pageParams.AddString("BJDID", txtBJDID.Text.Trim()); + pageParams.AddString("BJRQ", datBJRQ.Text); + pageParams.AddString("JLDW", GetOption(100860000, "BJU003")); + pageParams.AddString("JGBID", cbxJGBID.SelectedValue.Trim()); + pageParams.AddString("JGCIDS", txtJGCIDS.Text.Trim()); + pageParams.AddString("BJLY", txtBJLY.Text.Trim()); + pageParams.AddString("JSBLFS", txtJSBLFS.Text.Trim()); + pageParams.AddString("XSQYID", cbxXSQYID.SelectedValue.Trim()); + pageParams.AddString("PJLX", cbxPJLX.SelectedValue.Trim()); + pageParams.AddString("FKQXNR", cbxFKQXNR.SelectedValue.Trim()); + pageParams.AddString("SYDWID", cbxSYDWID.SelectedValue.Trim()); + pageParams.AddString("HSBZ", chkJZBJHS.Checked ? "Y" : "N"); + pageParams.AddString("JCLLX", bjflxx.XLXSBJFL_BJJCLLX); + pageParams.AddString("LJJCLLX", bjflxx.XLXSBJFL_LJJCLLX); + pageParams.AddString("BJDHQLY", bjflxx.XLXSBJFL_BJDHQLY); + if (bjflxx.XLXSBJFL_TZCLHQ.Equals("Y"))//是否允许调整材料行情 + { + if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select top 1 XLXSBJDCLHQ_BJCLID from XLXSBJDCLHQ where XLXSBJDCLHQ_BJDID='{0}'", txtBJDID.Text.Trim()))) + pageParams.AddString("NeedUpdBJDHQCLCB", "Y"); + } + pageParams.AddString("TBJCLID", bjflxx.XLXSBJFL_TBJCLID); + pageParams.AddString("LBJCLID", bjflxx.XLXSBJFL_LBJCLID); + pageParams.AddString("TJ", txtTJ.Value.ToString()); + pageParams.AddString("LJ", txtLJ.Value.ToString()); + pageParams.AddString("CPBJMRXSWS", bjflxx.XLXSBJFL_CPBJMRXSWS); + pageParams.AddString("XSYXJ", bjflxx.XLXSBJFL_XSYXJ); + pageParams.AddString("XSYZ", bjflxx.XLXSBJFL_XSYZ); + pageParams.AddString("XSYSCP", bjflxx.XLXSBJFL_XSYSCP); + pageParams.AddString("XSBH", bjflxx.XLXSBJFL_XSFBH); + pageParams.AddString("XSCPBJXJ", bjflxx.XLXSBJFL_XSCPBJXJ); + txtDRSJ.Text = CMISproConvert.ConvertTime(DateTime.Now); + OpenDialogClickBtn(pageParams, btnRefreshWBBJD.ClientID); + break; + case"GXCPML": + GXCPML_Click(); + break; + + } + } + private void GXCPML_Click() + { + string sWarning = "即将更新所有明细的产品目录,是否继续?"; + Confirm.Register("IsQD", sWarning); + Confirm.ShowBtnText = TConfirm.cBtnText.Yes_No; + if (Confirm.GetValue("IsQD").Trim().Equals("")) + { + Confirm.Ask("IsQD"); + return; + } + else if (Confirm.GetValue("IsQD").Trim().Equals("N")) + { + //表示进行了提示并选择了取消,直接返回或其他处理 + Confirm.Clear(); + return; + + } + else if (Confirm.GetValue("IsQD").Trim().Equals("Y")) + { + //表示进行了提示并选择了确认 + Confirm.Clear(); + } + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add(@" merge into XLXSBJDMX tar + using( + select XLXSBJDMX_XH as XH,case when CPMLMC is null then isnull(XLXSBJDMX_CPMLMC,' ') else CPMLMC end as CPMLMC, + case when ZHCPMLMC is null then isnull(XLXSBJDMX_ZHCPMLMC,' ') else ZHCPMLMC end as ZHCPMLMC + from XLXSBJDMX + left join XLXSBJXHML A on A.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and isnull(A.XLXSBJXHML_DYDJID,' ') <> ' ' and A.XLXSBJXHML_DYDJID = isnull(XLXSBJDMX_DYDJID, ' ') + left join XLXSBJXHML B on B.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and isnull(B.XLXSBJXHML_DYDJID,' ') = ' ' + 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 + + where XLXSBJDMX_BJDID=:pBJDID + ) sor + on( + tar.XLXSBJDMX_BJDID=:pBJDID + and tar.XLXSBJDMX_XH=sor.XH + ) + when matched then update set tar.XLXSBJDMX_CPMLMC= sor.CPMLMC,tar.XLXSBJDMX_ZHCPMLMC= sor.ZHCPMLMC "); + SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); + dberp.ExecSQL(SQL); + ShowMessage("更新完成!"); + btnOnlyRefresh_Click(null, null); + + } + //按价格模板导出 + private void ExportByJGMB() + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + sql.Add("select XLXSBJFL_JGMBGRPID from XLXSBJFL where XLXSBJFL_BJFLID=:pBJFLID"); + sql.ParamByName("pBJFLID").Value = cbxBJFLID.SelectedValue.Trim(); + DataSet ds = dberp.OpenDataSet(sql); + if (ds.Tables[0].Rows.Count > 0) + { + double dGroupID = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSBJFL_JGMBGRPID"].ToString()); + DocFileInfo[] docFileInfo = FileService.GetFilesInfo(dGroupID); + if (docFileInfo.Length > 0) + { + string sFileName = docFileInfo[0].FileName; + MemoryStream oFileStream = new MemoryStream(); + FileService.GetFile(docFileInfo[0].FileId, oFileStream); + sql.Clear(); + sql.Add("select XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID,XLXSBJDMX_XLBZID,XLXSBJDMX_DYDJID,XLXSBJDMX_JLDW,XLXSBJDMX_BJSL,XLXSBJDMX_CPBJ,:pSJ as UPDTIME"); + sql.Add(" from XLXSBJDMX"); + sql.Add(" where XLXSBJDMX_BJDID=:pBJDID "); + sql.Add(" order by XLXSBJDMX_XSSX,XLXSBJDMX_XH"); + sql.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); + sql.ParamByName("pSJ").Value = DateTime.Now; + DataSet dsMX = dberp.OpenDataSet(sql); + + Dictionary dicMatchedCol = new Dictionary(); + dicMatchedCol.Add("B", "XLXSBJDMX_XLXHID"); + dicMatchedCol.Add("C", "XLXSBJDMX_XLGGID"); + dicMatchedCol.Add("D", "XLXSBJDMX_XLBZID"); + dicMatchedCol.Add("E", "XLXSBJDMX_DYDJID"); + + Dictionary dicUpdateCol = new Dictionary(); + dicUpdateCol.Add("F", "XLXSBJDMX_JLDW"); + dicUpdateCol.Add("G", "XLXSBJDMX_BJSL"); + dicUpdateCol.Add("H", "XLXSBJDMX_CPBJ"); + //dicUpdateCol.Add("K", "UPDTIME"); + + NpoiSheetData sd = new NpoiSheetData(); + sd.ColumnType = new System.Collections.Generic.Dictionary(); + sd.ColumnType.Add("F", NpoiColumnType.String); + sd.ColumnType.Add("G", NpoiColumnType.Double); + sd.ColumnType.Add("H", NpoiColumnType.Double); + //sd.ColumnType.Add("K", NpoiColumnType.DateTime); + + string errorMessage = ""; + string m_tmpFilePath = TExcelData.UpdateExcel_NPOI(oFileStream, "Sheet1", true, dsMX, dicMatchedCol, dicUpdateCol, sd, true, ref errorMessage); + if (errorMessage.Equals("")) + { + System.IO.FileInfo file = new System.IO.FileInfo(m_tmpFilePath); + string URL = Page.ResolveClientUrl("~") + "/N_MODEL/Dialog/TempFileDownload.ashx?TempFileName=" + file.Name + "&FileName=" + sFileName; + string jsript = @"var JLDCDiv = document.createElement('div');JLDCDiv.style.width=0;JLDCDiv.style.height=0;JLDCDiv.id = 'DivifrDownLoad';" + + " var ele=document.documentElement||document.body;ele.appendChild(JLDCDiv);var iJLDCfrm = document.createElement('iframe');iJLDCfrm.id = 'iJLDCfrmDownLoad';iJLDCfrm.src = '" + URL + "';" + + "iJLDCfrm.style.width = 0;iJLDCfrm.style.height = 0; JLDCDiv.appendChild(iJLDCfrm);"; + AjaxRunScript("MXDC_EX", jsript); + } + else + { + ShowMessage("导出数据失败:" + errorMessage); + } + } + } + } + + private bool HasJGMB() + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + sql.Add("select XLXSBJFL_JGMBGRPID from XLXSBJFL where XLXSBJFL_BJFLID=:pBJFLID"); + sql.ParamByName("pBJFLID").Value = cbxBJFLID.SelectedValue.Trim(); + DataSet ds = dberp.OpenDataSet(sql); + if (ds.Tables[0].Rows.Count > 0) + { + double dGroupID = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSBJFL_JGMBGRPID"].ToString()); + DocFileInfo[] docFileInfo = FileService.GetFilesInfo(dGroupID); + if (docFileInfo.Length > 0) + return true; + } + return false; + } + + //明细按钮----无税报价、含税报价切换 + private void UpdateByJZBJHS(bool bJZBJHS, bool NeedUpdateHSBZ) + { + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); + + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + //铜铝价 + string sTJBJCLID = bjflxx.XLXSBJFL_TBJCLID; + string sLJBJCLID = bjflxx.XLXSBJFL_LBJCLID; + + string sHSBZ = bJZBJHS ? "Y" : "N"; + + string sErrMsg = ""; + try + { + dberp.BeginTrans(); + if (NeedUpdateHSBZ) + { + sHSBZ = bJZBJHS ? "N" : "Y"; + + //更新基准报价含税标志 + SQL.Clear(); + SQL.Add("update XLXSBJD set XLXSBJD_JZBJHS=:pHSBZ where XLXSBJD_BJDID=:pBJDID "); + SQL.ParamByName("pHSBZ").Value = sHSBZ; + SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); + dberp.ExecSQL(SQL); + + chkJZBJHS.Checked = sHSBZ.Equals("Y"); + } + if (!sTJBJCLID.Equals("") || !sLJBJCLID.Equals("")) + { + SQL.Clear(); + SQL.Add("select XLXSBJDCLHQ_BJCLID,XLXSBJDCLHQ_HSJG,XLXSBJDCLHQ_WSJG "); + SQL.Add(" from XLXSBJDCLHQ"); + SQL.Add(" where XLXSBJDCLHQ_BJDID=:pBJDID"); + SQL.Add(" and (XLXSBJDCLHQ_BJCLID=:pTJBJCLID or XLXSBJDCLHQ_BJCLID=:pLJBJCLID)"); + SQL.Add(" order by XLXSBJDCLHQ_BJCLID"); + SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); + SQL.ParamByName("pTJBJCLID").Value = sTJBJCLID; + SQL.ParamByName("pLJBJCLID").Value = sLJBJCLID; + DataSet dsTLJ = dberp.OpenDataSet(SQL); + if (dsTLJ.Tables[0].Rows.Count > 0) + { + for (int i = 0; i < dsTLJ.Tables[0].Rows.Count; i++) + { + if (dsTLJ.Tables[0].Rows[i]["XLXSBJDCLHQ_BJCLID"].ToString().Trim().Equals(sTJBJCLID)) + { + if (chkJZBJHS.Checked) + { + txtTJ.Value = CMISproConvert.StrToFloat(dsTLJ.Tables[0].Rows[i]["XLXSBJDCLHQ_HSJG"].ToString(), 0); + } + else + { + txtTJ.Value = CMISproConvert.StrToFloat(dsTLJ.Tables[0].Rows[i]["XLXSBJDCLHQ_WSJG"].ToString(), 0); + } + } + else if (dsTLJ.Tables[0].Rows[i]["XLXSBJDCLHQ_BJCLID"].ToString().Trim().Equals(sLJBJCLID)) + { + if (chkJZBJHS.Checked) + { + txtLJ.Value = CMISproConvert.StrToFloat(dsTLJ.Tables[0].Rows[i]["XLXSBJDCLHQ_HSJG"].ToString(), 0); + } + else + { + txtLJ.Value = CMISproConvert.StrToFloat(dsTLJ.Tables[0].Rows[i]["XLXSBJDCLHQ_WSJG"].ToString(), 0); + } + } + } + } + else + { + Dictionary dicTLJG = GetTLJByRQ(datBJRQ.Text, cbxBJFLID.SelectedValue.Trim(), chkJZBJHS.Checked, cbxJGBID.SelectedValue.Trim()); + txtTJ.Value = CMISproConvert.StrToFloat(dicTLJG["TJ"], 0); + txtLJ.Value = CMISproConvert.StrToFloat(dicTLJG["LJ"], 0); + } + + if (!sTJBJCLID.Equals("")) + { + //更新铜价 + SQL.Clear(); + SQL.Add("update XLXSBJD set XLXSBJD_TJ = :pTJ where 1=1 and XLXSBJD_BJDID=:pBJDID "); + SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); + SQL.ParamByName("pTJ").Value = txtTJ.Value; + dberp.ExecSQL(SQL); + } + if (!sLJBJCLID.Equals("")) + { + //更新铝价 + SQL.Clear(); + SQL.Add("update XLXSBJD set XLXSBJD_LJ = :pLJ where 1=1 and XLXSBJD_BJDID=:pBJDID "); + SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); + SQL.ParamByName("pLJ").Value = txtLJ.Value; + dberp.ExecSQL(SQL); + } + } + + XLBJDCalcUtils.CalcAfterHSBZChange(dberp, SQL, txtBJDID.Text.Trim(), 1, GetOption(100860000, "BJU002"), GetOption(100860000, "BJU003"), GetOption(100860000, "BJU018"), CurSession.UserId, CurSession.UserName, ref sErrMsg); + + dberp.CommitTrans(); + + //刷新 + btnOnlyRefresh_Click(null, null); + } + catch (Exception ex) + { + ShowMessage(sErrMsg + " " + ex.Message); + dberp.RollbackTrans(); + } + } + + protected void btnCXJS_Click(object sender, EventArgs e) + { + + UpdateByJZBJHS(chkJZBJHS.Checked,false); + } + + //明细按钮----直接报价 + protected void btnMXOper_Click(object sender, EventArgs e) + { + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); + string sHidJSLMList = XLBJDUtils.GetHidJSLMList(cbxBJFLID.SelectedValue.Trim(), IsXJY.Value.Equals("Y"), IsSJY.Value.Equals("Y"), IsHJY.Value.Equals("Y")); + + TPageParams tpp = new TPageParams(); + tpp.UrlPath = "XLBJD_MXOper.aspx"; + tpp.AddString("BJRQ", datBJRQ.Text); + tpp.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); + tpp.AddString("BJDID", txtBJDID.Text.Trim()); + tpp.AddString("JGBID", cbxJGBID.SelectedValue.Trim()); + tpp.AddString("JGCIDS", txtJGCIDS.Text.Trim()); + string sJGFID = XLBJDUtils.GetJGFID(datBJRQ.Text.Trim()); + tpp.AddString("JGFID", sJGFID); + tpp.AddString("BJLY", txtBJLY.Text.Trim()); + tpp.AddString("JSBLFS", txtJSBLFS.Text.Trim()); + tpp.AddString("XSQYID", cbxXSQYID.SelectedValue.Trim()); + tpp.AddString("SQRID", txtSQRID.Value.Trim()); + tpp.AddString("HSBZ", chkJZBJHS.Checked ? "Y" : "N"); + if (txtBJDYZ.Text.Trim().Equals("")) + { + Dictionary dicBJDYZ = XLBJDUtils.GetBJDYZ(cbxBJFLID.SelectedValue.Trim()); + txtBJDYZ.Text = dicBJDYZ["BJDYZ"]; + txtTJYSList.Text = dicBJDYZ["TJYSList"]; + txtYZWPIDList.Text = dicBJDYZ["YZWPIDList"]; + txtReadOnlyYZ.Text = dicBJDYZ["ReadOnlyYZ"]; + txtZDWPIDList.Text = dicBJDYZ["ZDWPIDList"]; + txtPFYZID.Text = dicBJDYZ["PFYZ"]; + txtBTYZ.Text = dicBJDYZ["BTYZ"]; + txtXSJEYZ.Text = dicBJDYZ["XSJEYZ"]; + + txtTZJGBBJ.Text = bjflxx.XLXSBJFL_TZJGBBJ; + txtTZBJDHQLJ.Text = bjflxx.XLXSBJFL_TZBJDHQLJ; + + } + tpp.AddString("XSBJDHQLJ", bjflxx.XSBJDHQLJ() ? "Y" : "N"); + tpp.AddString("XSLJ", bjflxx.XSLJ() ? "Y" : "N"); + tpp.AddString("XSJJ", bjflxx.XSJGBJJChecked() ? "Y" : "N"); + tpp.AddString("XSJCL", bjflxx.XSJCL() ? "Y" : "N"); + tpp.AddString("XSLJJCL", bjflxx.XSLJJCL() ? "Y" : "N"); + tpp.AddString("XSJSJ", bjflxx.XSJSJ() ? "Y" : "N"); + tpp.AddString("JCLLX", bjflxx.XLXSBJFL_BJJCLLX); + tpp.AddString("LJJCLLX", bjflxx.XLXSBJFL_LJJCLLX); + tpp.AddString("XSTZJG", bjflxx.XLXSBJFL_XSTZCPBJ); + tpp.AddString("XSTZZDXJ", bjflxx.XLXSBJFL_XSTZZDXJ); + tpp.AddString("XSTZJE", bjflxx.XLXSBJFL_XSTZBJJE); + tpp.AddString("BJDHQLY", bjflxx.XLXSBJFL_BJDHQLY); + tpp.AddString("XSZDXJ", bjflxx.XLXSBJFL_XSZDXJ); + tpp.AddString("ZDXJJCLLX", bjflxx.XLXSBJFL_ZDXJJCLLX); + if (bjflxx.XLXSBJFL_TZCLHQ.Equals("Y"))//是否允许调整材料行情 + { + if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select top 1 XLXSBJDCLHQ_BJCLID from XLXSBJDCLHQ where XLXSBJDCLHQ_BJDID='{0}'", txtBJDID.Text.Trim()))) + tpp.AddString("NeedUpdBJDHQCLCB", "Y"); + } + tpp.AddString("BJDYZ", txtBJDYZ.Text); + tpp.AddString("BTYZ", txtBTYZ.Text.Trim());//研发自测:刘青棚 2025-03-20 20:40:00 + tpp.AddString("PJLX", cbxPJLX.SelectedValue.Trim()); + tpp.AddString("FKQXNR", cbxFKQXNR.SelectedValue.Trim()); + tpp.AddString("SYDWID", cbxSYDWID.SelectedValue.Trim()); + tpp.AddString("TJYSList", txtTJYSList.Text); + tpp.AddString("YZWPIDList", txtYZWPIDList.Text); + tpp.AddString("ReadOnlyYZ", txtReadOnlyYZ.Text); + tpp.AddString("WPID", txtWPID.Value); + tpp.AddString("TBJCLID", bjflxx.XLXSBJFL_TBJCLID); + tpp.AddString("LBJCLID", bjflxx.XLXSBJFL_LBJCLID); + tpp.AddString("TJ", txtTJ.Value.ToString()); + tpp.AddString("LJ", txtLJ.Value.ToString()); + tpp.AddString("XSJGBBJJCE", bjflxx.XSJGBBJJCEChecked() ? "Y" : "N"); + + tpp.AddString("CPBJMRXSWS", bjflxx.XLXSBJFL_CPBJMRXSWS); + tpp.AddString("JGBIDS", txtJGBIDS.Text.Trim()); + tpp.AddString("JGBTJYS", txtJGBTJYS.Text.Trim()); + tpp.AddString("TZJGBBJ", txtTZJGBBJ.Text.Trim()); + tpp.AddString("TZBJDHQLJ", txtTZBJDHQLJ.Text.Trim()); + tpp.AddString("TZBJ", bjflxx.XLXSBJFL_TZBJ); + tpp.AddString("CPBJZDWPID", bjflxx.XLXSBJFL_CPBJZDWPID); + tpp.AddString("JGBBJBM", bjflxx.XLXSBJFL_JGBBJBM); + tpp.AddString("BJDHQLJBM", bjflxx.XLXSBJFL_BJDHQLJBM); + tpp.AddString("BJBM", bjflxx.XLXSBJFL_BJBM); + tpp.AddString("JLRBJCP", bjflxx.XLXSBJFL_JLRBJCP); + tpp.AddString("HidJSLMList", sHidJSLMList); + tpp.AddString("XHGGYMHJS", bjflxx.XLXSBJFL_XHGGYMHJS); + tpp.AddString("PFYZ", txtPFYZID.Text.Trim()); + tpp.AddString("JMBGSYZID", bjflxx.XLXSBJFL_JMBGSYZID); + tpp.AddString("XSYXJ", bjflxx.XLXSBJFL_XSYXJ); + tpp.AddString("XSYZ", bjflxx.XLXSBJFL_XSYZ); + tpp.AddString("XSYSCP", bjflxx.XLXSBJFL_XSYSCP); + tpp.AddString("XSBH", bjflxx.XLXSBJFL_XSFBH); + tpp.AddString("XSCPBJXJ", bjflxx.XLXSBJFL_XSCPBJXJ); + tpp.AddString("BJLJJCLLX", bjflxx.XLXSBJFL_BJLJJCLLX); + tpp.AddString("XSBJLJJCL", bjflxx.XSBJLJJCL() ? "Y" : "N"); + + tpp.AddString("JYF", bjflxx.XLXSBJFL_JYF);//计运费 + tpp.AddString("YSJDID", cbxYSJDID.SelectedValue.Trim());//运输节点 + tpp.AddString("GYSID", cbxGYSID.SelectedValue.Trim());//运输单位 + tpp.AddString("YFWLID", bjflxx.XLXSBJFL_YFWLID);//运费物料 + tpp.AddString("BJHYF", bjflxx.XLXSBJFL_BJHYF);//报价含运费 + OpenDialogClickBtn(tpp, btnRefreshOper.ClientID); + } + + //明细按钮----设置产品目录 + private void OpenCPML(TPageParams pageParams) + { + UserRight UR = OpRightUtils.GetUserRight(CurSession.UserId, 101421007); + if (UR.Insert) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add("insert into XLXSBJXHML(XLXSBJXHML_XLXHID,XLXSBJXHML_DYDJID, XLXSBJXHML_CPMLID, "); + SQL.Add(" XLXSBJXHML_WHR,XLXSBJXHML_WHRID,XLXSBJXHML_WHSJ)"); + SQL.Add(" select distinct XLXSBJDMX_XLXHID as XLXHID,ISNULL(XLXSBJDMX_DYDJID,' ') as DYDJID, ' ' as CPMLID, "); + SQL.Add(" :pWHR, :pWHRID, :pWHSJ "); + SQL.Add(" from XLXSBJDMX "); + SQL.Add(" where 1=1 "); + SQL.Add(" and XLXSBJDMX_BJDID = :pBJDID "); + SQL.Add(" and not exists (select 1 from XLXSBJXHML where XLXSBJXHML_XLXHID = ISNULL(XLXSBJDMX_XLXHID,' ') and "); + SQL.Add(" ( (XLXSBJXHML_DYDJID = ISNULL(XLXSBJDMX_DYDJID,' ') and XLXSBJXHML_DYDJID <> ' ') or XLXSBJXHML_DYDJID = ' ') ) "); + SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); + SQL.ParamByName("pWHR").Value = CurSession.UserName; + SQL.ParamByName("pWHRID").Value = CurSession.UserId; + SQL.ParamByName("pWHSJ").Value = DateTime.Now; + dberp.ExecSQL(SQL); + } + pageParams.UrlPath = "../Components/N_XLJC/CPML_XHMLList.aspx"; + pageParams.Title = "设置产品目录"; + pageParams.AddString("BJDID", txtBJDID.Text.Trim()); + OpenModuleDialog(101421007, pageParams, btnRefreshCLHQTZ.ClientID.ToString()); + } + + protected void btnRefreshOper_Click(object sender, EventArgs e) + { + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); + + entity.BJDID = txtBJDID.Text.Trim(); + //分页模式下,传入页数和每页显示数,用于控制明细查询结果 + entity.XLXSBJDMX.curPageIndex = pgBar.CurrentPageIndex; + entity.XLXSBJDMX.curPageSize = pgBar.PageSize; + entity.XLXSBJDMX.sXSSXFilter = txtXSSXFilter.Value; + entity.XLXSBJDMX.sXLXHIDFilter = txtXLXHIDFilter.Value; + entity.XLXSBJDMX.sXLGGIDFilter = txtXLGGIDFilter.Value; + entity.XLXSBJDMX.sXLBZIDFilter = txtXLBZIDFilter.Value; + entity.XLXSBJDMX.sDYDJIDFilter = txtDYDJIDFilter.Value; + entity.XLXSBJDMX.sXLYSIDFilter = txtXLYSIDFilter.Value; + entity.XLXSBJDMX.sBJCPFilter = txtBJCPFilter.Value; + entity.XLXSBJDMX.sCPMLFilter = txtCPMLFilter.Value; + entity.XLXSBJDMX.sZHCPMLFilter = txtZHCPMLFilter.Value; + entity.XLXSBJDMX.sJGBBJFilter = txtJGBBJFilter.Value; + entity.XLXSBJDMX.sZDXJJCLFilter = txtZDXJJCLFilter.Value; + entity.XLXSBJDMX.sBZFilter = txtBZFilter.Value; + entity.XLXSBJDMX.sBZBJDIDFilter = PageParam.GetRTrimString("BZBJDID"); + entity.XLXSBJDMX.sCPCFXLBZ = PageParam.GetRTrimString("CPCFXLBZ"); + entity.XLXSBJDMX.BJDID = txtBJDID.Text.Trim(); + entity.XLXSBJDMX.sXSYZJEFilter = txtXSJEYZ.Text.Trim(); + entity.XLXSBJDMX.Query(); + grdXLBJDMX.DataSource = entity.XLXSBJDMX.Entites; + grdXLBJDMX.DataBind(); + grdXLBJDMX.SaveDataInfo.SaveDataFlag = DSaveDataFlag.sdNormal; + + if (grdXLBJDMX.RowCount <= 0) + { + btnBJLR.Enabled = false; + btnCLCB.Enabled = false; + } + else + { + btnBJLR.Enabled = true; + btnCLCB.Enabled = true; + } + + + LoadRecord(); + RefreshForm(); + SetControlState(); + TComboBox.SetComboBox("DBERP", cbxPJLX, string.Format("select SFPJ_PJLX,case isnull(SFPJ_TYBZ,' ') when 'Y' then rtrim(SFPJ_PJMC)||'(停用)' else SFPJ_PJMC end as Name from SFPJ where SFPJ_PJLX='{0}'", cbxPJLX.SelectedValue.Trim()), true); + MenuAreaUpdate(); + FormAreaUpdate(); + + //同步补充插入XLXSCLQD、XLXSJGBMX中没有的记录 + XLBJDInfo.InsertCLQDorJGBMX(txtBJDID.Text.Trim(), cbxJGBID.SelectedValue.Trim(), txtJGCIDS.Text.Trim(), CurSession); + //同步报价单明细记录插入XLXSBJDCLCB、XLXSBJDJJYZ 只有页面刷新后,再能取到正确的chkJZBJHS值 + XLBJDInfo.InsertCLCBandJJYZ(TControlState.ctsEdit, txtBJDID.Text.Trim(), cbxJGBID.SelectedValue.Trim(), CurSession.UserId, CurSession.UserName, GetOption(100860000, "BJU003"), chkJZBJHS.Checked); + + //短米校验 + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + ShowBJSLYZZCheckOrZDFX(dberp, SQL, txtBJDID.Text.Trim(), cbxBJFLID.SelectedValue.Trim(), GetOption(100860000, "BJU003"), bjflxx.XLXSBJFL_XTCPBJYZ); + } + + protected void btnPFZP_Click(object sender, EventArgs e) + { + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); + + Dictionary dicLenJLDWTD = XLBJDUtils.GetLenJLDWTD(); + string sJLDW = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_JLDW", grdXLBJDMX._SelectedIndex).ToUpper(); + double dBJSL = CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_BJSL", grdXLBJDMX._SelectedIndex)); + if ((sJLDW.Equals("M") || sJLDW.Equals("KM") || sJLDW.Equals("米") || sJLDW.Equals("千米") || dicLenJLDWTD.ContainsKey(sJLDW)) && dBJSL != 0) + { + TZYZXX yzxx = XLBJDUtils.GetYZXXByYZID(txtPFYZID.Text.Trim()); + + if (!string.IsNullOrEmpty(yzxx.XLXSTZYZ_YZID)) + { + string sYZMC = yzxx.XLXSTZYZ_YZMC.Trim(); + TPageParams pageParams = new TPageParams(); + pageParams.UrlPath = "BJPF_ZPList.aspx"; + pageParams.AddString("XLXSBJDMX_BJDID", txtBJDID.Text.Trim()); + pageParams.AddString("XLXSBJDMX_XH", grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XH", grdXLBJDMX._SelectedIndex)); + pageParams.AddString("YZID", txtPFYZID.Text.Trim()); + pageParams.AddString("YZMC", sYZMC); + pageParams.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); + pageParams.AddString("XTCPBJYZ", bjflxx.XLXSBJFL_XTCPBJYZ); + pageParams.AddString("CPQYYF", bCPQYYF(txtBJDID.Text.Trim(), grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XH", grdXLBJDMX._SelectedIndex))); + if(lblZJE.Enabled) + pageParams.AddString("ENABLED", "Y"); + else + pageParams.AddString("ENABLED", "N"); + OpenFuncModuleDialog(100860080, pageParams, btnRefreshCLHQTZ.ClientID); + } + } + } + + protected void btnPFJE_Click(object sender, EventArgs e) + { + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); + + Dictionary dicLenJLDWTD = XLBJDUtils.GetLenJLDWTD(); + string sJLDW = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_JLDW", grdXLBJDMX._SelectedIndex).ToUpper(); + double dBJSL = CMISproConvert.StrToFloat(grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_BJSL", grdXLBJDMX._SelectedIndex)); + if ((sJLDW.Equals("M") || sJLDW.Equals("KM") || sJLDW.Equals("米") || sJLDW.Equals("千米") || dicLenJLDWTD.ContainsKey(sJLDW)) && dBJSL != 0) + { + TPageParams pageParams = new TPageParams(); + pageParams.UrlPath = "BJPF_ZPList.aspx"; + pageParams.AddString("XLXSBJDMX_BJDID", txtBJDID.Text.Trim()); + pageParams.AddString("XLXSBJDMX_XH", grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XH", grdXLBJDMX._SelectedIndex)); + pageParams.AddString("YZID", ""); + pageParams.AddString("YZMC", ""); + pageParams.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); + pageParams.AddString("XTCPBJYZ", bjflxx.XLXSBJFL_XTCPBJYZ); + pageParams.AddString("CPQYYF", bCPQYYF(txtBJDID.Text.Trim(), grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XH", grdXLBJDMX._SelectedIndex))); + if (lblZJE.Enabled) + pageParams.AddString("ENABLED", "Y"); + else + pageParams.AddString("ENABLED", "N"); + OpenFuncModuleDialog(100860080, pageParams, btnRefreshCLHQTZ.ClientID); + + } + } + + + protected void btnShowFJXX_Click(object sender, EventArgs e) + { + bZDXSFJXX = false; + if (ShowFJXX) + ShowFJXX = false; + else + ShowFJXX = true; + } + + // 报价单备注以及报价说明助手 + protected void btnCODECLASS_Click(object sender, EventArgs e) + { + if (!txtZDM.Value.Equals("")) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Add("select XLXSBJSM_ZDM,XLXSBJSM_SMID,XLXSBJSM_SMNR "); + SQL.Add(" from XLXSBJSM "); + SQL.Add(" where 1=1 and XLXSBJSM_ZDM = :pXLXSBJSM_ZDM and XLXSBJSM_SMID = :pXLXSBJSM_SMID "); + SQL.ParamByName("pXLXSBJSM_ZDM").Value = txtZDM.Value.Trim(); + SQL.ParamByName("pXLXSBJSM_SMID").Value = txtSMID.Value.Trim(); + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + if (txtZDM.Value.Equals("BZ")) + { + txtBZ.Text = ds.Tables[0].Rows[0]["XLXSBJSM_SMNR"].ToString().Trim(); + } + else if (txtZDM.Value.Equals("FKSM")) + { + txtFKSM.Text = ds.Tables[0].Rows[0]["XLXSBJSM_SMNR"].ToString().Trim(); + } + FormAreaUpdate(); + + } + } + + } + + protected void btnRefreshYZZCheck_Click(object sender, EventArgs e) + { + + btnOnlyRefresh_Click(null, null); + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); + + //只返回第一次不相同的----仅提示 + if (!bjflxx.XLXSBJFL_XTCPBJYZ.Trim().Equals("N")) + { + // + string sBJDID = txtBJDID.Text.Trim(); + string WarningMsg = ""; + XLBJD_BDOBill.JudgeDifBJCP(sBJDID, GetOption(100860000, "BJU003"), ref WarningMsg, bjflxx.XLXSBJFL_XTCPBJYZ.Trim()); + if (!WarningMsg.Equals("")) + { + WarningMsg = String.Format("显示序号为【" + WarningMsg + "】的相同报价产品的{0}不同!", bjflxx.XLXSBJFL_BJBM.Equals("") ? "报价" : bjflxx.XLXSBJFL_BJBM); + ShowMessage(WarningMsg); + } + } + + //自动撞单分析 + XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860068); + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + + if (pzxx.XLXSBJPZ_ZDZD=="Y") + { + SQL.Clear(); + SQL.Add("select XLXSBJD_ZDQRRGH from XLXSBJD where XLXSBJD_BJDID = :pBJDID and isnull(XLXSBJD_ZDQRRGH,' ') = ' ' "); + SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + btnZDFX_Click(null, null); + } + } + + } + + protected void btnRefreshFKQXTJB_Click(object sender, EventArgs e) + { + //付款期限 + TComboBox.SetComboBox("DBERP", cbxFKQXNR, " select XLXSBJDYZZ8_FKQXNR as ID,XLXSBJDYZZ8_FKQXNR as NAME from XLXSBJDYZZ8 where XLXSBJDYZZ8_FKQXNR<>' ' " + + " and exists ( select 1 from XLXSTZYZ where XLXSBJDYZZ8_JGBID = XLXSTZYZ_JGBID and XLXSTZYZ_YZID = XLXSBJDYZZ8_YZID and XLXSTZYZ_MXBH ='BJD' " + + " and exists ( select 1 from XLXSBJFLYZ where XLXSBJFLYZ_BJFLID = '" + cbxBJFLID.SelectedValue.Trim() + "' and XLXSBJFLYZ_YZID = XLXSTZYZ_YZID ))" + + " order by ID", true); + FormAreaUpdate(); + } + + + + //铜价、铝价标签 + protected void lblTJ_Click(object sender, EventArgs e) + { + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); + + TPageParams pageParams = new TPageParams(); + pageParams.UrlPath = "XLBJD_TLJInfo.aspx"; + pageParams.AddString("BJDID", txtBJDID.Text.Trim()); + pageParams.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); + pageParams.AddString("HSBZ", chkJZBJHS.Checked ? "Y" : "N"); + pageParams.AddString("TBJCLID", bjflxx.XLXSBJFL_TBJCLID); + pageParams.AddString("LBJCLID", bjflxx.XLXSBJFL_LBJCLID); + pageParams.AddString("TJ", txtTJ.Value.ToString()); + pageParams.AddString("LJ", txtLJ.Value.ToString()); + pageParams.AddString("JGBID", cbxJGBID.SelectedValue.Trim()); + pageParams.AddString("JGBTJYS", txtJGBTJYS.Text.Trim()); + pageParams.AddString("MXBH", bjflxx.XLXSBJFL_MXBH); + pageParams.AddString("JGBIDS", txtJGBIDS.Text.Trim()); + pageParams.AddString("JSBLFS", txtJSBLFS.Text.Trim()); + pageParams.AddString("JCLLX", bjflxx.XLXSBJFL_BJJCLLX); + pageParams.AddString("LJJCLLX", bjflxx.XLXSBJFL_LJJCLLX); + pageParams.AddString("BJLJJCLLX", bjflxx.XLXSBJFL_BJLJJCLLX); + pageParams.AddString("CPBJMRXSWS", bjflxx.XLXSBJFL_CPBJMRXSWS); + pageParams.AddString("GYSID", cbxGYSID.SelectedValue.Trim()); + pageParams.AddString("ZDXJJCLLX", bjflxx.XLXSBJFL_ZDXJJCLLX); + pageParams.AddString("YFWLID", bjflxx.XLXSBJFL_YFWLID);//运费物料 + pageParams.AddString("BJHYF", bjflxx.XLXSBJFL_BJHYF);//报价含运费 + pageParams.AddString("JYF", bjflxx.XLXSBJFL_JYF);//计运费 + pageParams.AddString("YSJDID", cbxYSJDID.SelectedValue.Trim());//运输节点 + pageParams.AddString("btnRefreshCLHQTZ", btnRefreshCLHQTZ.ClientID); + pageParams.AddString("txtNEWBJDID", txtNEWBJDID.ClientID); + pageParams.AddString("BJDHQLY", bjflxx.XLXSBJFL_BJDHQLY); + pageParams.AddString("BJRQ", datBJRQ.Text.Trim()); + OpenDialog(pageParams); + } + + protected void lblJGBID_Click(object sender, EventArgs e) + { + if (txtTJ.Visible) + return; + TPageParams pageParams = new TPageParams(); + pageParams.UrlPath = "XLBJD_JGMLXZ.aspx"; + pageParams.AddString("BJDID", txtBJDID.Text.Trim()); + pageParams.AddString("BJFLID", cbxBJFLID.SelectedValue.Trim()); + pageParams.AddString("HSBZ", chkJZBJHS.Checked ? "Y" : "N"); + pageParams.AddString("BJRQ", datBJRQ.Text.Trim()); + pageParams.AddString("XSQYID", cbxXSQYID.SelectedValue.Trim()); + OpenDialogClickBtn(pageParams, btnRefreshCLHQTZ.ClientID); + } + + //获取指定日铜价、铝价 + public static Dictionary GetTLJByRQ(string sRQ, string sBJFLID, bool bHSBZ, string sJGBID) + { + Dictionary dicTLJG = new Dictionary(); + dicTLJG.Add("TJ", ""); + dicTLJG.Add("LJ", ""); + dicTLJG.Add("TJWHSJ", ""); + dicTLJG.Add("LJWHSJ", ""); + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + if (CMISproDataBase.ExistsRecord("DBERP", "SELECT 1 FROM XLXSBJFL WHERE (XLXSBJFL_MXBH = 'JGE' OR (XLXSBJFL_MXBH = 'JGB' AND XLXSBJFL_BJDHQLY = '2')) AND XLXSBJFL_BJFLID = '" + sBJFLID + "'") + || sJGBID.Equals("ZZZZZZZZ")) + { + sql.Add(" select XLXSCLHQ_BJCLID,TL,XLXSCLHQ_WSJG,XLXSCLHQ_HSJG,XLXSCLHQ_WHSJ "); + sql.Add(" from XLXSCLHQ, "); + sql.Add(" ( "); + sql.Add(" select XLXSCLHQ_BJCLID as BJCLID, "); + sql.Add(" case when XLXSCLHQ_BJCLID=XLXSBJFL_TBJCLID then 'T' when XLXSCLHQ_BJCLID=XLXSBJFL_LBJCLID then 'L' else ' ' end as TL,"); + sql.Add(" max(XLXSCLHQ_YXQS) as maxYXQS"); + sql.Add(" from XLXSCLHQ,XLXSBJFL "); + sql.Add(" where XLXSCLHQ_JGBID='ZZZZZZZZ' "); + sql.Add(" and XLXSBJFL_BJFLID=:pBJFLID"); + sql.Add(" and (XLXSCLHQ_BJCLID=XLXSBJFL_TBJCLID or XLXSCLHQ_BJCLID=XLXSBJFL_LBJCLID)"); + sql.Add(" and XLXSCLHQ_YXQS<=:pRQ and (XLXSCLHQ_YXQZ is null or XLXSCLHQ_YXQZ>=:pRQ) "); + sql.Add(" group by XLXSCLHQ_BJCLID,XLXSBJFL_TBJCLID,XLXSBJFL_LBJCLID "); + sql.Add(" ) b "); + sql.Add(" where XLXSCLHQ_JGBID='ZZZZZZZZ' "); + sql.Add(" and XLXSCLHQ_BJCLID=BJCLID "); + sql.Add(" and XLXSCLHQ_YXQS=maxYXQS "); + sql.Add(" order by XLXSCLHQ_BJCLID"); + sql.ParamByName("pBJFLID").Value = sBJFLID; + sql.ParamByName("pRQ").Value = sRQ; + } + else + { + sql.Add(" select XLXSCLHQ_BJCLID,TL,XLXSCLHQ_WSJG,XLXSCLHQ_HSJG,XLXSCLHQ_WHSJ "); + sql.Add(" from XLXSCLHQ,"); + sql.Add(" ("); + sql.Add(" select XLXSCLHQ_BJCLID as BJCLID,"); + sql.Add(" case when XLXSCLHQ_BJCLID=XLXSBJFL_TBJCLID then 'T' when XLXSCLHQ_BJCLID=XLXSBJFL_LBJCLID then 'L' else ' ' end as TL,"); + sql.Add(" max(XLXSCLHQ_YXQS)as maxYXQS"); + sql.Add(" from XLXSCLHQ,XLXSBJCL,XLXSBJFL"); + sql.Add(" where XLXSCLHQ_JGBID='ZZZZZZZZ'"); + sql.Add(" and XLXSBJFL_BJFLID=:pBJFLID"); + sql.Add(" and (XLXSCLHQ_BJCLID=XLXSBJFL_TBJCLID or XLXSCLHQ_BJCLID=XLXSBJFL_LBJCLID)"); + sql.Add(" and XLXSCLHQ_YXQS<=:pBJRQ"); + sql.Add(" and (XLXSCLHQ_YXQZ>=:pBJRQ or XLXSCLHQ_YXQZ is null)"); + sql.Add(" and XLXSBJCL_BJCLID=XLXSCLHQ_BJCLID"); + sql.Add(" and exists(select 1 from XLXSBJFLBJRHQCL where XLXSBJFLBJRHQCL_BJFLID=:pBJFLID and XLXSBJFLBJRHQCL_BJCLID=XLXSBJCL_BJCLID)");//报价日行情之报价材料 + sql.Add(" group by XLXSCLHQ_BJCLID,XLXSBJFL_TBJCLID,XLXSBJFL_LBJCLID "); + sql.Add(" ) x"); + sql.Add(" where XLXSCLHQ_JGBID='ZZZZZZZZ'"); + sql.Add(" and XLXSCLHQ_BJCLID=BJCLID"); + sql.Add(" and XLXSCLHQ_YXQS=maxYXQS"); + + sql.Add(" union all "); + //报价单非报价日之材料行情 + sql.Add(" select XLXSCLHQ_BJCLID, "); + sql.Add(" case when XLXSCLHQ_BJCLID=XLXSBJFL_TBJCLID then 'T' when XLXSCLHQ_BJCLID=XLXSBJFL_LBJCLID then 'L' else ' ' end as TL,"); + sql.Add(" XLXSCLHQ_WSJG,XLXSCLHQ_HSJG,XLXSCLHQ_WHSJ "); + sql.Add(" from XLXSCLHQ,XLXSBJCL,XLXSBJFL"); + sql.Add(" where XLXSCLHQ_JGBID<>'ZZZZZZZZ'"); + sql.Add(" and XLXSCLHQ_JGBID=:pJGBID"); + sql.Add(" and XLXSBJFL_BJFLID=:pBJFLID"); + sql.Add(" and (XLXSCLHQ_BJCLID=XLXSBJFL_TBJCLID or XLXSCLHQ_BJCLID=XLXSBJFL_LBJCLID)"); + sql.Add(" and XLXSBJCL_BJCLID=XLXSCLHQ_BJCLID"); + sql.Add(" and not exists(select 1 from XLXSBJFLBJRHQCL where XLXSBJFLBJRHQCL_BJFLID=:pBJFLID and XLXSBJFLBJRHQCL_BJCLID=XLXSBJCL_BJCLID)");//非报价日行情的报价材料 + sql.ParamByName("pBJFLID").Value = sBJFLID; + sql.ParamByName("pBJRQ").Value = sRQ; + sql.ParamByName("pJGBID").Value = sJGBID; + } + DataSet ds = dberp.OpenDataSet(sql); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + if (ds.Tables[0].Rows[i]["TL"].ToString().Trim().Equals("T")) + { + dicTLJG["TJWHSJ"] = ds.Tables[0].Rows[i]["XLXSCLHQ_WHSJ"].ToString().Trim(); + + if (!bHSBZ) + dicTLJG["TJ"] = ds.Tables[0].Rows[i]["XLXSCLHQ_WSJG"].ToString().Trim(); + else + dicTLJG["TJ"] = ds.Tables[0].Rows[i]["XLXSCLHQ_HSJG"].ToString().Trim(); + } + if (ds.Tables[0].Rows[i]["TL"].ToString().Trim().Equals("L")) + { + dicTLJG["LJWHSJ"] = ds.Tables[0].Rows[i]["XLXSCLHQ_WHSJ"].ToString().Trim(); + + if (!bHSBZ) + dicTLJG["LJ"] = ds.Tables[0].Rows[i]["XLXSCLHQ_WSJG"].ToString().Trim(); + else + dicTLJG["LJ"] = ds.Tables[0].Rows[i]["XLXSCLHQ_HSJG"].ToString().Trim(); + } + } + return dicTLJG; + } + + //获取指定日铜价、铝价 + public static Dictionary GetTLJByRQ(string sRQ, string sBJFLID, bool bHSBZ) + { + return GetTLJByRQ(sRQ, sBJFLID, bHSBZ, "ZZZZZZZZ"); + } + + //初始化铜价、铝价标签 + private void InitLable_TLJ() + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + sql.Clear(); + sql.Add("select isnull(XLXSBJD_TLJZD,'N') as TLJZD from XLXSBJD where XLXSBJD_BJDID='" + txtBJDID.Text.Trim() + "'"); + DataSet ds = dberp.OpenDataSet(sql); + if (ds.Tables[0].Rows.Count > 0) + { + string sTLJZD = ds.Tables[0].Rows[0][0].ToString().Trim(); + if (sTLJZD.Equals("Y")) + { + lblTJ.Text = "指定铜价"; + lblLJ.Text = "指定铝价"; + } + else if (sTLJZD.Equals("T")) + { + lblTJ.Text = "指定铜价"; + lblLJ.Text = "铝价"; + } + else if (sTLJZD.Equals("L")) + { + lblTJ.Text = "铜价"; + lblLJ.Text = "指定铝价"; + } + else + { + lblTJ.Text = "铜价"; + lblLJ.Text = "铝价"; + } + + } + else + { + lblTJ.Text = "铜价"; + lblLJ.Text = "铝价"; + } + } + + protected void btnRefTLJ_Click(object sender, EventArgs e) + { + Dictionary dicTLJG = GetTLJByRQ(datBJRQ.Text, cbxBJFLID.SelectedValue.Trim(), chkJZBJHS.Checked, cbxJGBID.SelectedValue.Trim()); + txtTJ.Value = CMISproConvert.StrToFloat(dicTLJG["TJ"], 0); + txtLJ.Value = CMISproConvert.StrToFloat(dicTLJG["LJ"], 0); + FormAreaUpdate(); + txtTJ_TextChanged(null, null); + } + + protected void txtTJ_TextChanged(object sender, EventArgs e) + { + if (ControlState != TControlState.ctsBrowse && XLBJDUtils.IsJGEJGB(cbxJGBID.SelectedValue.Trim()))//表价实时计算价格表 + { + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(cbxBJFLID.SelectedValue.Trim()); + + bool IsGridChanged = false;//标记grid有没有被修改过 + bool NeedShowMsg = false; + foreach (GridViewRow row in grdXLBJDMX.NewRows) + { + if (row.Attributes["EditAction"].Equals("E") || row.Attributes["EditAction"].Equals("A") || row.Attributes["EditAction"].Equals("D")) + IsGridChanged = true; + } + + bool bExistBJDHQ = false; + if (bjflxx.XLXSBJFL_TZCLHQ.Equals("Y"))//是否允许调整材料行情 + { + if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select top 1 XLXSBJDCLHQ_BJCLID from XLXSBJDCLHQ where XLXSBJDCLHQ_BJDID='{0}'", txtBJDID.Text.Trim()))) + bExistBJDHQ = true; + } + + string sBJU018 = GetOption(100860000, "BJU018"); + string sBJU003 = GetOption(100860000, "BJU003");//默认计量单位 + double dBJDJLDWHSBL = 1; + if (IsGridChanged) + { + foreach (GridViewRow row in grdXLBJDMX.NewRows) + { + if (!row.Attributes["EditAction"].Equals("D")) + { + //手输表价、外购产品不重算表价,以免冲掉手动维护的表价 + if (grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_BJLY",row).Trim().Equals("SSJGBBJ") || + grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_WGCPBZ", row).Trim().Equals("Y") || + grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_JGFBZ", row).Trim().Equals("Y")) + { + continue; + } + double dCPJJ = 0; + double dJJ = 0; + double dCLCB = 0; + double dBJDHQCLCB = 0; + bool JgIsZero = false;//是否存在有材料用量、无材料价格的情况 + string sJLDW = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_JLDW", row).Trim().Split('|')[0].Trim(); + + string sXLXHID = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XLXHID", row).Trim(); + string sXLGGID = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XLGGID", row).Trim(); + string sXLBZID = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_XLBZID", row).Trim().Split('|')[0].Trim(); + string sDYDJID = grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_DYDJID", row).Trim(); + + //材料行情计量单位到报价单计量单位换算比例 + if (XLBJDUtils.sJCJLDWList.IndexOf(sBJU003.ToUpper()) >= 0 + && XLBJDUtils.sJCJLDWList.IndexOf(sJLDW.ToUpper()) >= 0) + { + dBJDJLDWHSBL = XLBJDUtils.GetJLDWHSBL_JG(sBJU003, sJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID); + } + else + { + dBJDJLDWHSBL = XLBJDUtils.GetJLDWHSBL_JG(sBJU003, sJLDW); + } + + Dictionary dicJGE = XLBJDUtils.GetCLCB_JGE(datBJRQ.Text, sXLXHID, sXLGGID, sXLBZID, sDYDJID, bjflxx.XLXSBJFL_TBJCLID, bjflxx.XLXSBJFL_LBJCLID, txtTJ.Value.ToString(), txtLJ.Value.ToString(), chkJZBJHS.Checked, bExistBJDHQ, txtBJDID.Text.Trim(), cbxBJFLID.SelectedValue.Trim()); + JgIsZero = dicJGE["JgIsZero"] == 1 ? true : false; + + dCLCB = dicJGE["CLCB"]; + dJJ = dCLCB; + if (JgIsZero)//若存在有材料用量、无材料价格的情况,则算出的表价、报价单行情料价改为负数显示 + { + dBJDHQCLCB = dCLCB * (-1); + } + else + { + dBJDHQCLCB = dCLCB; + } + + DataSet dsJGBYZ = new DataSet(); + string sJGBTJYSS = ""; + //计算公式以及因子的输出 + Dictionary dicJGBTZYZGS_JGE = new Dictionary(); + //记录价格表调价因素相关信息-线缆基本信息 + Dictionary dicXLJBXX_JGE = new Dictionary(); + XLBJDUtils.GetdsJGBYZ_JGE(cbxJGBID.SelectedValue.Trim(), ref dsJGBYZ); + sJGBTJYSS = XLBJDUtils.GetJGBTJYSSByBJFLID(cbxBJFLID.SelectedValue.Trim()); + + 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", dBJDJLDWHSBL.ToString().Trim()); + dicJGBTZYZGS_JGE = XLBJDUtils.GetJGBTZYZ_JGE(cbxJGBID.SelectedValue.Trim(), "0", dsJGBYZ, dicXLJBXX_JGE); + //此处先进行保留,保证以下计算值来源一致。 + dCLCB = NumberUtils.RoundX(dCLCB, iXSWS); + double dZBZ = dCLCB; + if (sJGBTJYSS.Equals("1")) + { + string sTmpGS = ""; + string sJSGS = dicJGBTZYZGS_JGE["JSGS"].Trim(); + if (sJSGS.Equals("")) + { + if (dicJGBTZYZGS_JGE["JJFirst"].Equals("1")) + { + sTmpGS = "(" + dCLCB.ToString().Trim() + "+" + dicJGBTZYZGS_JGE["JJ"] + ")*(" + dicJGBTZYZGS_JGE["JD"] + ")*(" + dicJGBTZYZGS_JGE["KD"] + ")*(" + dicJGBTZYZGS_JGE["SX"] + ")"; + } + else + { + sTmpGS = dCLCB.ToString().Trim() + "*(" + dicJGBTZYZGS_JGE["JD"] + ")*(" + dicJGBTZYZGS_JGE["KD"] + ")*(" + dicJGBTZYZGS_JGE["SX"] + ")+(" + dicJGBTZYZGS_JGE["JJ"] + ")"; + + } + } + else + { + sTmpGS = sJSGS.Replace("JGBJJ", dCLCB.ToString().Trim()); + } + gtExpression exp = new gtExpression(); + try + { + dZBZ = NumberUtils.RoundX(exp.Evaluate(sTmpGS), 15); + } + catch + { + dZBZ = 0; + } + + Dictionary dicJDYZXS = new Dictionary(); + for (int i = 0; i < dsJGBYZ.Tables[0].Rows.Count; i++) + { + string sYZID = dsJGBYZ.Tables[0].Rows[i]["XLXSJGBYZ_YZID"].ToString().Trim(); + string sJJFS = dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_JJFS"].ToString().Trim(); + if (sJJFS.Equals("JJ") && (!dicJDYZXS.ContainsKey(sYZID))) + dicJDYZXS.Add(sYZID, dBJDJLDWHSBL); + else + dicJDYZXS.Add(sYZID, 1); + } + + for (int i = 1; i <= 10; i++) + { + string sYZID = "JZ" + i.ToString().PadLeft(2, '0'); + if (dicJGBTZYZGS_JGE.ContainsKey(sYZID) && dicJDYZXS.ContainsKey(sYZID)) + { + double sYZZ = CMISproConvert.StrToFloat(dicJGBTZYZGS_JGE[sYZID].Trim(), 0) * dicJDYZXS[sYZID]; + dicJGBTZYZGS_JGE[sYZID] = sYZZ.ToString(); + } + + } + + grdXLBJDMX.EditNewRow(row.RowIndex, "UpdJJYZList", dicJGBTZYZGS_JGE["JZ01"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ02"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ03"].Trim() + + "|" + dicJGBTZYZGS_JGE["JZ04"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ05"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ06"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ07"].Trim() + + "|" + dicJGBTZYZGS_JGE["JZ08"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ09"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ10"].Trim() + "|0"); + } + else + grdXLBJDMX.EditNewRow(row.RowIndex, "UpdJJYZList", "0|0|0|0|0|0|0|0|0|0|0"); + + if (JgIsZero)//若存在有材料用量、无材料价格的情况,则算出的表价、报价单行情料价改为负数显示 + { + dCPJJ = dZBZ * (-1); + dJJ = dJJ * (-1); + dCLCB = dCLCB * (-1); + } + else + { + dCPJJ = dZBZ; + } + + + if (sBJU018.Equals("Y") && XLBJDUtils.sJQCDJLDWList.Contains(sBJU003.ToUpper()))//若BJU018参数值为Y,且为价格表单位为长度单位,则先换算倍率后再保留小数位数。 + { + dCPJJ = dCPJJ * dBJDJLDWHSBL; + dJJ = dJJ * dBJDJLDWHSBL; + dCLCB = dCLCB * dBJDJLDWHSBL; + dBJDHQCLCB = dBJDHQCLCB * dBJDJLDWHSBL; + + dCPJJ = NumberUtils.RoundX(dCPJJ, iXSWS); + dJJ = NumberUtils.RoundX(dJJ, iXSWS); + dCLCB = NumberUtils.RoundX(dCLCB, iXSWS); + dBJDHQCLCB = NumberUtils.RoundX(dBJDHQCLCB, iXSWS); + } + else + { + dCPJJ = NumberUtils.RoundX(dCPJJ, iXSWS); + dJJ = NumberUtils.RoundX(dJJ, iXSWS); + dCLCB = NumberUtils.RoundX(dCLCB, iXSWS); + dBJDHQCLCB = NumberUtils.RoundX(dBJDHQCLCB, iXSWS); + + dCPJJ = dCPJJ * dBJDJLDWHSBL; + dJJ = dJJ * dBJDJLDWHSBL; + dCLCB = dCLCB * dBJDJLDWHSBL; + dBJDHQCLCB = dBJDHQCLCB * dBJDJLDWHSBL; + } + + if (dJJ == 0) + dCPJJ = 0; + + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_CLCB", dCLCB.ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JGBJJ", dJJ.ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JGBBJ", dCPJJ.ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_BJDHQCLCB", dBJDHQCLCB.ToString()); + } + } + + Dictionary dicTJYZID = XLBJDUtils.GetTJYZIDXX("BJD");//获取YZID对应的TJYZID + Dictionary dicTYZZYZID = XLBJDUtils.GetTYZZYZIDXX("BJD");//获取YZID对应的TYZZYZID + foreach (GridViewRow row in grdXLBJDMX.NewRows) + { + NeedShowMsg = true; + + Dictionary dicCalcRow = CalcRow(row, dicTJYZID, dicTYZZYZID, bjflxx.XLXSBJFL_CPBJMRXSWS); + + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_BJXJKD", dicCalcRow["XLXSBJDMX_BJXJKD"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_BJXJJJ", dicCalcRow["XLXSBJDMX_BJXJJJ"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XJBJCE", dicCalcRow["XJBJCE"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_TZQCPBJ", dicCalcRow["XLXSBJDMX_TZQCPBJ"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_TZCPBJ", dicCalcRow["XLXSBJDMX_TZCPBJ"].ToString("F6")); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_CPBJ", dicCalcRow["XLXSBJDMX_CPBJ"].ToString()); + //仅重算了表价的明细才需更新报价来源 + if (!grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_BJLY", row).Trim().Equals("SSJGBBJ") && + !grdXLBJDMX.GetValueByFieldName("XLXSBJDMX_WGCPBZ", row).Trim().Equals("Y")) + { + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_BJLY", "JGBBJ"); + } + + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_BJTJCZ", "TJYZJS"); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_TZQBJJE", dicCalcRow["XLXSBJDMX_TZQBJJE"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_BJJE", dicCalcRow["XLXSBJDMX_BJJE"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "TZHDJ", dicCalcRow["TZHDJ"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JGBBJJCL", dicCalcRow["XLXSBJDMX_JGBBJJCL"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JGBBJJCE", dicCalcRow["XLXSBJDMX_JGBBJJCE"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_CLCBJCL", dicCalcRow["XLXSBJDMX_CLCBJCL"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_CLCBJCLSDBZ", "N"); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_TZQZDXJ", dicCalcRow["XLXSBJDMX_TZQZDXJ"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_TZZDXJ", dicCalcRow["XLXSBJDMX_TZZDXJ"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_ZDXJ", dicCalcRow["XLXSBJDMX_ZDXJ"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JSJG", dicCalcRow["XLXSBJDMX_JSJG"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JSJJE", dicCalcRow["XLXSBJDMX_JSJJE"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_JSJJCL", dicCalcRow["XLXSBJDMX_JSJJCL"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_ZDXJJCL", dicCalcRow["XLXSBJDMX_ZDXJJCL"].ToString()); + grdXLBJDMX.EditNewRow(row.RowIndex, "XLXSBJDMX_ZDXJJE", dicCalcRow["XLXSBJDMX_ZDXJJE"].ToString()); + } + + grdXLBJDMX.CommitEdit(); + } + else + { + DataSet dsBJDMX = GetBJDMX(txtBJDID.Text.Trim()); + + foreach (DataRow row in dsBJDMX.Tables[0].Rows) + { + //手输表价、外购产品不重算表价,以免冲掉手动维护的表价 + if (row["XLXSBJDMX_BJLY"].ToString().Trim().Equals("SSJGBBJ") || + row["XLXSBJDMX_WGCPBZ"].ToString().Trim().Equals("Y") || + row["XLXSBJDMX_JGFBZ"].ToString().Trim().Equals("Y")) + { + continue; + } + double dCPJJ = 0; + double dJJ = 0; + double dCLCB = 0; + double dBJDHQCLCB = 0; + bool JgIsZero = false;//是否存在有材料用量、无材料价格的情况 + string sJLDW = row["XLXSBJDMX_JLDW"].ToString().Trim().Split('|')[0].Trim(); + + string sXLXHID = row["XLXSBJDMX_XLXHID"].ToString().Trim(); + string sXLGGID = row["XLXSBJDMX_XLGGID"].ToString().Trim(); + string sXLBZID = row["XLXSBJDMX_XLBZID"].ToString().Trim().Split('|')[0].Trim(); + string sDYDJID = row["XLXSBJDMX_DYDJID"].ToString().Trim().Split('|')[0].Trim(); + + //材料行情计量单位到报价单计量单位换算比例 + if (XLBJDUtils.sJCJLDWList.IndexOf(sBJU003.ToUpper()) >= 0 + && XLBJDUtils.sJCJLDWList.IndexOf(sJLDW.ToUpper()) >= 0) + { + dBJDJLDWHSBL = XLBJDUtils.GetJLDWHSBL_JG(sBJU003, sJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID); + } + else + { + dBJDJLDWHSBL = XLBJDUtils.GetJLDWHSBL_JG(sBJU003, sJLDW); + } + + Dictionary dicJGE = XLBJDUtils.GetCLCB_JGE(datBJRQ.Text, sXLXHID, sXLGGID, sXLBZID, sDYDJID, bjflxx.XLXSBJFL_TBJCLID, bjflxx.XLXSBJFL_LBJCLID, txtTJ.Value.ToString(), txtLJ.Value.ToString(), chkJZBJHS.Checked, bExistBJDHQ, txtBJDID.Text.Trim(), cbxBJFLID.SelectedValue.Trim()); + JgIsZero = dicJGE["JgIsZero"] == 1 ? true : false; + + dCLCB = dicJGE["CLCB"]; + dJJ = dCLCB; + if (JgIsZero)//若存在有材料用量、无材料价格的情况,则算出的表价、报价单行情料价改为负数显示 + { + dBJDHQCLCB = dCLCB * (-1); + } + else + { + dBJDHQCLCB = dCLCB; + } + + DataSet dsJGBYZ = new DataSet(); + string sJGBTJYSS = ""; + //计算公式以及因子的输出 + Dictionary dicJGBTZYZGS_JGE = new Dictionary(); + //记录价格表调价因素相关信息-线缆基本信息 + Dictionary dicXLJBXX_JGE = new Dictionary(); + XLBJDUtils.GetdsJGBYZ_JGE(cbxJGBID.SelectedValue.Trim(), ref dsJGBYZ); + sJGBTJYSS = XLBJDUtils.GetJGBTJYSSByBJFLID(cbxBJFLID.SelectedValue.Trim()); + + 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", dBJDJLDWHSBL.ToString().Trim()); + dicJGBTZYZGS_JGE = XLBJDUtils.GetJGBTZYZ_JGE(cbxJGBID.SelectedValue.Trim(), "0", dsJGBYZ, dicXLJBXX_JGE); + dCLCB = NumberUtils.RoundX(dCLCB, iXSWS); + double dZBZ = dCLCB; + if (sJGBTJYSS.Equals("1")) + { + string sTmpGS = ""; + string sJSGS = dicJGBTZYZGS_JGE["JSGS"].Trim(); + if (sJSGS.Equals("")) + { + if (dicJGBTZYZGS_JGE["JJFirst"].Equals("1")) + { + sTmpGS = "(" + dCLCB.ToString().Trim() + "+" + dicJGBTZYZGS_JGE["JJ"] + ")*(" + dicJGBTZYZGS_JGE["JD"] + ")*(" + dicJGBTZYZGS_JGE["KD"] + ")*(" + dicJGBTZYZGS_JGE["SX"] + ")"; + } + else + { + sTmpGS = dCLCB.ToString().Trim() + "*(" + dicJGBTZYZGS_JGE["JD"] + ")*(" + dicJGBTZYZGS_JGE["KD"] + ")*(" + dicJGBTZYZGS_JGE["SX"] + ")+(" + dicJGBTZYZGS_JGE["JJ"] + ")"; + + } + } + else + { + sTmpGS = sJSGS.Replace("JGBJJ", dCLCB.ToString().Trim()); + } + gtExpression exp = new gtExpression(); + try + { + dZBZ = NumberUtils.RoundX(exp.Evaluate(sTmpGS), 15); + } + catch + { + dZBZ = 0; + } + Dictionary dicJDYZXS = new Dictionary(); + for (int i = 0; i < dsJGBYZ.Tables[0].Rows.Count; i++) + { + string sYZID = dsJGBYZ.Tables[0].Rows[i]["XLXSJGBYZ_YZID"].ToString().Trim(); + string sJJFS = dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_JJFS"].ToString().Trim(); + if (sJJFS.Equals("JJ") && (!dicJDYZXS.ContainsKey(sYZID))) + dicJDYZXS.Add(sYZID, dBJDJLDWHSBL); + else + dicJDYZXS.Add(sYZID, 1); + } + + for (int i = 1; i <= 10; i++) + { + string sYZID = "JZ" + i.ToString().PadLeft(2, '0'); + if (dicJGBTZYZGS_JGE.ContainsKey(sYZID) && dicJDYZXS.ContainsKey(sYZID)) + { + double sYZZ = CMISproConvert.StrToFloat(dicJGBTZYZGS_JGE[sYZID].Trim(), 0) * dicJDYZXS[sYZID]; + dicJGBTZYZGS_JGE[sYZID] = sYZZ.ToString(); + } + + } + + row["UpdJJYZList"] = dicJGBTZYZGS_JGE["JZ01"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ02"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ03"].Trim() + + "|" + dicJGBTZYZGS_JGE["JZ04"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ05"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ06"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ07"].Trim() + + "|" + dicJGBTZYZGS_JGE["JZ08"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ09"].Trim() + "|" + dicJGBTZYZGS_JGE["JZ10"].Trim() + "|0"; + } + else + row["UpdJJYZList"] = "0|0|0|0|0|0|0|0|0|0|0"; + + if (JgIsZero)//若存在有材料用量、无材料价格的情况,则算出的表价、报价单行情料价改为负数显示 + { + dCPJJ = dZBZ * (-1); + dJJ = dJJ * (-1); + dCLCB = dCLCB * (-1); + } + else + { + dCPJJ = dZBZ; + } + + if (sBJU018.Equals("Y") && XLBJDUtils.sJQCDJLDWList.Contains(sBJU003.ToUpper()))//若BJU018参数值为Y,且为价格表单位为长度单位,则先换算倍率后再保留小数位数。 + { + dCPJJ = dCPJJ * dBJDJLDWHSBL; + dJJ = dJJ * dBJDJLDWHSBL; + dCLCB = dCLCB * dBJDJLDWHSBL; + dBJDHQCLCB = dBJDHQCLCB * dBJDJLDWHSBL; + + dCPJJ = NumberUtils.RoundX(dCPJJ, iXSWS); + dJJ = NumberUtils.RoundX(dJJ, iXSWS); + dCLCB = NumberUtils.RoundX(dCLCB, iXSWS); + dBJDHQCLCB = NumberUtils.RoundX(dBJDHQCLCB, iXSWS); + } + else + { + dCPJJ = NumberUtils.RoundX(dCPJJ, iXSWS); + dJJ = NumberUtils.RoundX(dJJ, iXSWS); + dCLCB = NumberUtils.RoundX(dCLCB, iXSWS); + dBJDHQCLCB = NumberUtils.RoundX(dBJDHQCLCB, iXSWS); + + dCPJJ = dCPJJ * dBJDJLDWHSBL; + dJJ = dJJ * dBJDJLDWHSBL; + dCLCB = dCLCB * dBJDJLDWHSBL; + dBJDHQCLCB = dBJDHQCLCB * dBJDJLDWHSBL; + } + + if (dJJ == 0) + dCPJJ = 0; + + row["XLXSBJDMX_CLCB"] = dCLCB; + row["XLXSBJDMX_JGBJJ"] = dJJ; + row["XLXSBJDMX_JGBBJ"] = dCPJJ; + row["XLXSBJDMX_JGBBJTZ"] = "N"; + row["XLXSBJDMX_JGBBJGXSJ"] = MISproUtils.GetServerTime().ToString().Trim(); + row["XLXSBJDMX_BJDHQCLCB"] = dBJDHQCLCB; + row["XLXSBJDMX_BJDHQCLCBTZ"] = "N"; + } + + Dictionary dicTJYZID = XLBJDUtils.GetTJYZIDXX("BJD");//获取YZID对应的TJYZID + Dictionary dicTYZZYZID = XLBJDUtils.GetTYZZYZIDXX("BJD");//获取YZID对应的TYZZYZID + foreach (DataRow row in dsBJDMX.Tables[0].Rows) + { + NeedShowMsg = true; + + Dictionary dicCalcRow = CalcRow(row, dicTJYZID, dicTYZZYZID, bjflxx.XLXSBJFL_CPBJMRXSWS); + + row["XLXSBJDMX_BJXJKD"] = dicCalcRow["XLXSBJDMX_BJXJKD"].ToString(); + row["XLXSBJDMX_BJXJJJ"] = dicCalcRow["XLXSBJDMX_BJXJJJ"].ToString(); + row["XJBJCE"] = dicCalcRow["XJBJCE"].ToString(); + row["XLXSBJDMX_TZQCPBJ"] = dicCalcRow["XLXSBJDMX_TZQCPBJ"].ToString(); + row["XLXSBJDMX_TZCPBJ"] = dicCalcRow["XLXSBJDMX_TZCPBJ"].ToString("F6"); + row["XLXSBJDMX_CPBJ"] = dicCalcRow["XLXSBJDMX_CPBJ"].ToString(); + //仅重算了表价的明细才需更新报价来源 + if (!row["XLXSBJDMX_BJLY"].ToString().Trim().Equals("SSJGBBJ") && + !row["XLXSBJDMX_WGCPBZ"].ToString().Trim().Equals("Y")) + { + row["XLXSBJDMX_BJLY"] = "JGBBJ"; + } + row["XLXSBJDMX_BJTJCZ"] = "TJYZJS"; + row["XLXSBJDMX_TZQBJJE"] = dicCalcRow["XLXSBJDMX_TZQBJJE"].ToString(); + row["XLXSBJDMX_BJJE"] = dicCalcRow["XLXSBJDMX_BJJE"].ToString(); + row["TZHDJ"] = dicCalcRow["TZHDJ"].ToString(); + row["XLXSBJDMX_JGBBJJCL"] = dicCalcRow["XLXSBJDMX_JGBBJJCL"].ToString(); + row["XLXSBJDMX_JGBBJJCE"] = dicCalcRow["XLXSBJDMX_JGBBJJCE"].ToString(); + row["XLXSBJDMX_CLCBJCL"] = dicCalcRow["XLXSBJDMX_CLCBJCL"].ToString(); + row["XLXSBJDMX_CLCBJCLSDBZ"] = "N"; + row["XLXSBJDMX_TZQZDXJ"] = dicCalcRow["XLXSBJDMX_TZQZDXJ"].ToString(); + row["XLXSBJDMX_TZZDXJ"] = dicCalcRow["XLXSBJDMX_TZZDXJ"].ToString(); + row["XLXSBJDMX_ZDXJ"] = dicCalcRow["XLXSBJDMX_ZDXJ"].ToString(); + row["XLXSBJDMX_JSJG"] = dicCalcRow["XLXSBJDMX_JSJG"].ToString(); + row["XLXSBJDMX_JSJJE"] = dicCalcRow["XLXSBJDMX_JSJJE"].ToString(); + row["XLXSBJDMX_JSJJCL"] = dicCalcRow["XLXSBJDMX_JSJJCL"].ToString(); + row["XLXSBJDMX_ZDXJJCL"] = dicCalcRow["XLXSBJDMX_ZDXJJCL"].ToString(); + row["XLXSBJDMX_ZDXJJE"] = dicCalcRow["XLXSBJDMX_ZDXJJE"].ToString(); + + } + + grdXLBJDMX.DataSource = dsBJDMX; + grdXLBJDMX.DataBind(); + } + InitLable_TLJ(); + + if (NeedShowMsg) + ShowMessage(string.Format("已根据修改后价格重新计算了{0}!", bjflxx.XLXSBJFL_BJBM.Equals("") ? "报价" : bjflxx.XLXSBJFL_BJBM)); + } + } + + /// + /// 客户IDchange + /// + /// + /// + protected void txtKHID_TextChanged(object sender, EventArgs e) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add("select KH_MC,KH_LXR,KH_TEL,KH_TXY from KH where KH_KHID=:pKHID and isnull(KH_TYBZ,'N') <> 'Y' order by KH_KHID"); + SQL.ParamByName("pKHID").Value = txtKHID.Text.Trim(); + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + txtKH.Text = ds.Tables[0].Rows[0]["KH_MC"].ToString().Trim(); + txtKHLXR.Text = ds.Tables[0].Rows[0]["KH_LXR"].ToString().Trim(); + txtLXDH.Text = ds.Tables[0].Rows[0]["KH_TEL"].ToString().Trim(); + if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from KH where KH_TXY = '{0}' and KH_KHID = '{1}' ", GetTXYValue(), txtBGQKHID.Value.Trim())) + || txtBGQKHID.Value.Trim().Equals("")) + { + string sKHTXY = ds.Tables[0].Rows[0]["KH_TXY"].ToString().Trim(); + if (!sKHTXY.Equals("")) + { + SetTXYValue(sKHTXY); + cbxTXY_SelectedIndexChanged(null, null); + } + } + //FormAreaUpdate(); + txtBGQKHID.Value = txtKHID.Text.Trim(); + } + else + { + txtKH.Text = ""; + } + } + + /// + /// 客户change + /// + /// + /// + protected void txtKH_TextChanged(object sender, EventArgs e) + { + string sKHJSLY = ""; + XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860000); + if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_KHJSLY)) + sKHJSLY = pzxx.XLXSBJPZ_KHJSLY; + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + + if (sKHJSLY.Equals("KH")) + { + //客户检索来源=客户 + SQL.Clear(); + SQL.Add("select KH_LXR,KH_TEL,KH_TXY from KH where KH_MC=:pKHMC and isnull(KH_TYBZ,'N') <> 'Y' order by KH_KHID"); + SQL.ParamByName("pKHMC").Value = txtKH.Text.Trim(); + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + txtKHLXR.Text = ds.Tables[0].Rows[0]["KH_LXR"].ToString().Trim(); + txtLXDH.Text = ds.Tables[0].Rows[0]["KH_TEL"].ToString().Trim(); + if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from KH where KH_TXY = '{0}' and KH_MC = '{1}' ", GetTXYValue(), txtBGQKH.Value.Trim())) + || txtBGQKH.Value.Trim().Equals("")) + { + string sKHTXY = ds.Tables[0].Rows[0]["KH_TXY"].ToString().Trim(); + if (!sKHTXY.Equals("")) + { + SetTXYValue(sKHTXY); + cbxTXY_SelectedIndexChanged(null, null); + } + } + //FormAreaUpdate(); + txtBGQKH.Value = txtKH.Text.Trim(); + } + } + else if (sKHJSLY.Equals("KHXX")) + { + //客户检索来源=售前客户 + SQL.Clear(); + SQL.Add(" select KHXX_FZRID,KHXX_FZRGH,KHXX_FZR,KHXX_CRMKHID from KHXX"); + SQL.Add(" where 1=1 "); + SQL.Add("and KHXX_MC = :pKHMC "); + SQL.ParamByName("pKHMC").Value = txtKH.Text.Trim(); + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count == 1) + { + string sKHTXY = ds.Tables[0].Rows[0]["KHXX_FZR"].ToString().Trim(); + //售前客户中的责任人、唯一的客户联系人、客户联系电话作为报价单销售员、报价单客户联系人、报价单客户联系电话 + if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from KHXX where KHXX_FZR = '{0}' and KHXX_MC = '{1}' ", GetTXYValue(), txtBGQKH.Value.Trim())) + || txtBGQKH.Value.Trim().Equals("")) + { + if (!sKHTXY.Equals("")) + { + SetTXYValue(sKHTXY); + cbxTXY_SelectedIndexChanged(null, null); + } + } + + + SQL.Clear(); + SQL.Add(" SELECT KHLXR_LXRID,KHLXR_BB,KHLXR_XM,KHLXR_CW,KHLXR_YDDH FROM KHLXR "); + SQL.Add(" WHERE KHLXR_CRMKHID = :pCRMKHID and isnull(KHLXR_YZF,'N') = 'N' "); + SQL.Add(" order by KHLXR_LXRID desc "); + SQL.ParamByName("pCRMKHID").Value = ds.Tables[0].Rows[0]["KHXX_CRMKHID"].ToString().Trim(); + ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count == 1) + { + if (!ds.Tables[0].Rows[0]["KHLXR_XM"].ToString().Trim().Equals("")) + { + txtKHLXR.Text = ds.Tables[0].Rows[0]["KHLXR_XM"].ToString().Trim(); + } + else + { + txtKHLXR.Text = ds.Tables[0].Rows[0]["KHLXR_CW"].ToString().Trim(); + } + txtLXDH.Text = ds.Tables[0].Rows[0]["KHLXR_YDDH"].ToString().Trim(); + } + //FormAreaUpdate(); + txtBGQKH.Value = txtKH.Text.Trim(); + } + } + } + + /// + /// 项目change + /// + /// + /// + protected void txtXM_OnTextChanged(object sender, EventArgs e) + { + //启用售前项目备案管理 + XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860000); + + if (pzxx.XLXSBJPZ_SQXMBAGL=="Y") + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Add("select YXXM_XMID,YXXM_MC from YXXM where YXXM_MC=:pMC order by YXXM_XMID"); + SQL.ParamByName("pMC").Value =txtXM.Text.Trim(); + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + txtXMID.Value = ds.Tables[0].Rows[0]["YXXM_XMID"].ToString().Trim(); + } + else + { + txtXMID.Value = ""; + } + } + } + + /// + /// 客户联系人change + /// + /// + /// + protected void txtKHLXR_OnTextChanged(object sender, EventArgs e) + { + string sKHJSLY = ""; + XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860000); + if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_KHJSLY)) + sKHJSLY = pzxx.XLXSBJPZ_KHJSLY; + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + + if (sKHJSLY.Equals("KHXX")) + { + //客户检索来源=售前客户 + SQL.Clear(); + SQL.Add(" select KHXX_FZRID,KHXX_FZRGH,KHXX_FZR,KHXX_CRMKHID from KHXX"); + SQL.Add(" where 1=1 "); + SQL.Add("and KHXX_MC = :pKHMC "); + SQL.ParamByName("pKHMC").Value = txtKH.Text.Trim(); + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count == 1) + { + //售前客户中的责任人、唯一的客户联系人、客户联系电话作为报价单销售员、报价单客户联系人、报价单客户联系电话 + SQL.Clear(); + SQL.Add(" select KHLXR_YDDH "); + SQL.Add(" from KHLXR A "); + SQL.Add(" left join KHXX on KHXX_CRMKHID=A.KHLXR_CRMKHID "); + SQL.Add(" where 1=1 "); + SQL.Add(" and KHXX_CRMKHID = :pCRMKHID "); + SQL.Add(" and (A.KHLXR_XM = :pXM or KHLXR_CW = :pXM)"); + SQL.Add(" and A.KHLXR_BB=(select max(KHLXR_BB) as BB "); + SQL.Add(" from KHLXR B "); + SQL.Add(" where B.KHLXR_CRMKHID=A.KHLXR_CRMKHID and B.KHLXR_LXRID=A.KHLXR_LXRID "); + SQL.Add(" and isnull(B.KHLXR_YZF,'N')<>'Y') "); + SQL.Add("order by isnull(A.KHLXR_YZF,'N'), A.KHLXR_LXRID "); + SQL.ParamByName("pCRMKHID").Value = ds.Tables[0].Rows[0]["KHXX_CRMKHID"].ToString().Trim(); + SQL.ParamByName("pXM").Value = txtKHLXR.Text.Trim(); + ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count == 1) + { + txtLXDH.Text = ds.Tables[0].Rows[0]["KHLXR_YDDH"].ToString().Trim(); + } + + FormAreaUpdate(); + } + } + } + + protected void btnRefreshWBBJD_Click(object sender, EventArgs e) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add(" select top 1 XLXSBJDMX_XH from XLXSBJDMX where XLXSBJDMX_BJDID=:pBJDID and XLXSBJDMX_WHSJ > :pWHSJ "); + SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); + SQL.ParamByName("pWHSJ").Value = CMISproConvert.StrToDateTime(txtDRSJ.Text.Trim()); + if (dberp.OpenDataSet(SQL).Tables[0].Rows.Count <= 0) + return; + btnOnlyRefresh_Click(null, null); + //自动撞单分析 + XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860068); + + if (pzxx.XLXSBJPZ_ZDZD == "Y") + { + + SQL.Clear(); + SQL.Add("select XLXSBJD_ZDQRRGH from XLXSBJD where XLXSBJD_BJDID = :pBJDID and isnull(XLXSBJD_ZDQRRGH,' ') = ' ' "); + SQL.ParamByName("pBJDID").Value = txtBJDID.Text.Trim(); + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + btnZDFX_Click(null, null); + } + } + } + + protected void linkKHDH_Click(object sender, EventArgs e) + { + string sKHDHUrl = GetKHDHURL(); + string jsript = @"window.open('" + sKHDHUrl + "');"; + AjaxRunScript("linkKHDHOPen", jsript); + } + + + + + + + + + + // 页面设置后保存单页记录数 + void pgBar_PageSizeChanged(object sender, EventArgs e) + { + if (CurSession.DbId != "") + { + TGtPager.SavePageSize(TContextDatabases.GetDatabase("DBERP"), CurSession.UserId, this.UMID, "XLBJDInfo.aspx", pgBar); + } + } + + // 页面设置后刷新GRID数据 + void pgBar_PageChanged(object sender, EventArgs e) + { + if (pgBar.PageSize > pgBar.MaxPageSize) + pgBar.PageSize = pgBar.MaxPageSize; + //btnReLoad_Click(null, null); + + SetRecordCount(pgBar, txtBJDID.Text.Trim(), txtXSSXFilter.Value, txtXLXHIDFilter.Value, txtXLGGIDFilter.Value, txtXLBZIDFilter.Value, txtDYDJIDFilter.Value, txtXLYSIDFilter.Value, txtBJCPFilter.Value, txtJGBBJFilter.Value, txtZDXJJCLFilter.Value, txtCPMLFilter.Value, txtZHCPMLFilter.Value, txtBZFilter.Value); + + //传入页数和每页显示数,用于控制明细查询结果 + entity.XLXSBJDMX.curPageIndex = pgBar.CurrentPageIndex; + entity.XLXSBJDMX.curPageSize = pgBar.PageSize; + entity.XLXSBJDMX.sXSSXFilter = txtXSSXFilter.Value; + entity.XLXSBJDMX.sXLXHIDFilter = txtXLXHIDFilter.Value; + entity.XLXSBJDMX.sXLGGIDFilter = txtXLGGIDFilter.Value; + entity.XLXSBJDMX.sXLBZIDFilter = txtXLBZIDFilter.Value; + entity.XLXSBJDMX.sDYDJIDFilter = txtDYDJIDFilter.Value; + entity.XLXSBJDMX.sXLYSIDFilter = txtXLYSIDFilter.Value; + entity.XLXSBJDMX.sBJCPFilter = txtBJCPFilter.Value; + entity.XLXSBJDMX.sCPMLFilter = txtCPMLFilter.Value; + entity.XLXSBJDMX.sZHCPMLFilter = txtZHCPMLFilter.Value; + entity.XLXSBJDMX.sJGBBJFilter = txtJGBBJFilter.Value; + entity.XLXSBJDMX.sZDXJJCLFilter = txtZDXJJCLFilter.Value; + entity.XLXSBJDMX.sBZFilter = txtBZFilter.Value; + entity.XLXSBJDMX.sBZBJDIDFilter = PageParam.GetRTrimString("BZBJDID"); + entity.XLXSBJDMX.sCPCFXLBZ = PageParam.GetRTrimString("CPCFXLBZ"); + entity.XLXSBJDMX.BJDID = txtBJDID.Text.Trim(); + entity.XLXSBJDMX.sXSYZJEFilter = txtXSJEYZ.Text.Trim(); + entity.XLXSBJDMX.Query(); + grdXLBJDMX.DataSource = entity.XLXSBJDMX.Entites; + grdXLBJDMX.CheckedRows = ""; + grdXLBJDMX.DataBind(); + grdXLBJDMX.SaveDataInfo.SaveDataFlag = DSaveDataFlag.sdNormal; + } + + private void SetRecordCount(gtPager pgr, string sBJDID, string sXSSXFilter, string sXLXHIDFilter, string sXLGGIDFilter, string sXLBZIDFilter, string sDYDJIDFilter, string sXLYSIDFilter, string sBJCPFilter, string sJGBBJFilter, string sZDXJJCLFilter, string sCPMLFilter, string sZHCPMLFilter, string sBZFilter) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + sql.Add("select count(1) as JLS from XLXSBJDMX "); + sql.Add("left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSBJDMX_XLGGID "); + if (!sXLBZIDFilter.Equals("")) + sql.Add("left join XLBZ on XLBZ_XLBZID = XLXSBJDMX_XLBZID "); + if (!sXLYSIDFilter.Equals("")) + sql.Add("left join XLYSB on XLYSB_XLYSID = XLXSBJDMX_XLYSID "); + sql.Add("where XLXSBJDMX_BJDID=:pBJDID "); + sql.ParamByName("pBJDID").Value = sBJDID; + if (!sXSSXFilter.Equals("")) + { + sql.Add(" and XLXSBJDMX_XSSX=:pXSSX"); + sql.ParamByName("pXSSX").Value = CMISproConvert.StrToFloat(sXSSXFilter, 0); + } + if (!sXLXHIDFilter.Equals("")) + { + string sQueryTag = "E"; + string sFirstC = sXLXHIDFilter.Substring(0, 1); + string sLastC = sXLXHIDFilter.Substring(sXLXHIDFilter.Length - 1, 1); + if (sFirstC.Equals("%")) + { + sQueryTag = "L"; + if (sLastC.Equals("%")) + sQueryTag = "A"; + } + else + { + if (sLastC.Equals("%")) + sQueryTag = "R"; + } + if (sQueryTag.Equals("E")) + { + sql.Add(" and XLXSBJDMX_XLXHID=:pXLXHID"); + } + else + { + sql.Add(" and XLXSBJDMX_XLXHID like :pXLXHID"); + } + sql.ParamByName("pXLXHID").Value = sXLXHIDFilter; + } + if (!sXLGGIDFilter.Equals("")) + { + if (sXLGGIDFilter.Split('-').Length>1) + { + string sStartNum = sXLGGIDFilter.Split('-')[0]; + string sEndNum = sXLGGIDFilter.Split('-')[1]; + double dStartNum = CMISproConvert.StrToFloat(sStartNum, 0); + double dEndNum = CMISproConvert.StrToFloat(sEndNum, 0); + sql.Add(@" and exists(select 1 from XLGGB + left join XLDTJMZHB on XLDTJMZHB_DTJMZHID=XLGGB_DTJMZHID + where XLGGB_XLGGID=XLXSBJXLGGTHB_XLGGIDCH + and XLDTJMZHB_DTJM1>=:pStartNum "); + if (dEndNum != 0) + { + sql.Add(" and XLDTJMZHB_DTJM1<=:pEndNum "); + sql.ParamByName("pEndNum").Value = dEndNum; + + } + sql.Add(")"); + sql.ParamByName("pStartNum").Value = dStartNum; + } + else + { + string sQueryTag = "E"; + string sFirstC = sXLGGIDFilter.Substring(0, 1); + string sLastC = sXLGGIDFilter.Substring(sXLGGIDFilter.Length - 1, 1); + if (sFirstC.Equals("%")) + { + sQueryTag = "L"; + if (sLastC.Equals("%")) + sQueryTag = "A"; + } + else + { + if (sLastC.Equals("%")) + sQueryTag = "R"; + } + if (sQueryTag.Equals("E")) + { + sql.Add(" and XLXSBJDMX_XLGGID=:pXLGGID"); + } + else + { + sql.Add(" and XLXSBJDMX_XLGGID like :pXLGGID"); + } + sql.ParamByName("pXLGGID").Value = sXLGGIDFilter; + } + + } + if (!sXLBZIDFilter.Equals("")) + { + string sQueryTag = "E"; + string sFirstC = sXLBZIDFilter.Substring(0, 1); + string sLastC = sXLBZIDFilter.Substring(sXLBZIDFilter.Length - 1, 1); + if (sFirstC.Equals("%")) + { + sQueryTag = "L"; + if (sLastC.Equals("%")) + sQueryTag = "A"; + } + else + { + if (sLastC.Equals("%")) + sQueryTag = "R"; + } + if (sQueryTag.Equals("E")) + { + sql.Add(" and ( XLXSBJDMX_XLBZID=:pXLBZ or XLBZ_XLBZLXMC=:pXLBZ )"); + } + else + { + sql.Add(" and ( XLXSBJDMX_XLBZID like :pXLBZ or XLBZ_XLBZLXMC like :pXLBZ )"); + } + sql.ParamByName("pXLBZ").Value = sXLBZIDFilter; + } + if (!sDYDJIDFilter.Equals("")) + { + string sQueryTag = "E"; + string sFirstC = sDYDJIDFilter.Substring(0, 1); + string sLastC = sDYDJIDFilter.Substring(sDYDJIDFilter.Length - 1, 1); + if (sFirstC.Equals("%")) + { + sQueryTag = "L"; + if (sLastC.Equals("%")) + sQueryTag = "A"; + } + else + { + if (sLastC.Equals("%")) + sQueryTag = "R"; + } + if (sQueryTag.Equals("E")) + { + sql.Add(" and XLXSBJDMX_DYDJID=:pDYDJID"); + } + else + { + sql.Add(" and XLXSBJDMX_DYDJID like :pDYDJID"); + } + sql.ParamByName("pDYDJID").Value = sDYDJIDFilter; + } + if (!sXLYSIDFilter.Equals("")) + { + string sQueryTag = "E"; + string sFirstC = sXLYSIDFilter.Substring(0, 1); + string sLastC = sXLYSIDFilter.Substring(sXLYSIDFilter.Length - 1, 1); + if (sFirstC.Equals("%")) + { + sQueryTag = "L"; + if (sLastC.Equals("%")) + sQueryTag = "A"; + } + else + { + if (sLastC.Equals("%")) + sQueryTag = "R"; + } + if (sQueryTag.Equals("E")) + { + sql.Add(" and ( XLXSBJDMX_XLYSID=:pXLYS or XLYSB_XLYSMC=:pXLYS )"); + } + else + { + sql.Add(" and ( XLXSBJDMX_XLYSID like :pXLYS or XLYSB_XLYSMC like :pXLYS )"); + } + sql.ParamByName("pXLYS").Value = sXLYSIDFilter; + } + if (!sBJCPFilter.Equals("")) + { + string sQueryTag = "E"; + string sFirstC = sBJCPFilter.Substring(0, 1); + string sLastC = sBJCPFilter.Substring(sBJCPFilter.Length - 1, 1); + if (sFirstC.Equals("%")) + { + sQueryTag = "L"; + if (sLastC.Equals("%")) + sQueryTag = "A"; + } + else + { + if (sLastC.Equals("%")) + sQueryTag = "R"; + } + if (sQueryTag.Equals("E")) + { + sql.Add(" and XLXSBJDMX_BJCP=:pBJCP"); + } + else + { + sql.Add(" and XLXSBJDMX_BJCP like :pBJCP"); + } + sql.ParamByName("pBJCP").Value = sBJCPFilter; + } + if (!sJGBBJFilter.Equals("")) + { + sql.Add(" and XLXSBJDMX_JGBBJ=:pJGBBJ"); + sql.ParamByName("pJGBBJ").Value = CMISproConvert.StrToFloat(sJGBBJFilter); + } + if (!sZDXJJCLFilter.Equals("")) + { + string tmpZDXJJCL = sZDXJJCLFilter.Replace(">=", "").Replace(">", "").Replace("<=", "").Replace("<","").Replace("=", ""); + double dZDXJJCL = CMISproConvert.StrToFloat(tmpZDXJJCL, -999); + if (dZDXJJCL == -999) + { + sql.Add(" and XLXSBJDMX_ZDXJJCL=:pZDXJJCL"); + sql.ParamByName("pZDXJJCL").Value = dZDXJJCL; + } + else if (sZDXJJCLFilter.StartsWith(">=")) + { + sql.Add(" and XLXSBJDMX_ZDXJJCL>=:pZDXJJCL"); + sql.ParamByName("pZDXJJCL").Value = dZDXJJCL; + } + else if (sZDXJJCLFilter.StartsWith(">")) + { + sql.Add(" and XLXSBJDMX_ZDXJJCL>:pZDXJJCL"); + sql.ParamByName("pZDXJJCL").Value = dZDXJJCL; + } + else if (sZDXJJCLFilter.StartsWith("<=")) + { + sql.Add(" and XLXSBJDMX_ZDXJJCL<=:pZDXJJCL"); + sql.ParamByName("pZDXJJCL").Value = dZDXJJCL; + } + else if (sZDXJJCLFilter.StartsWith("<")) + { + sql.Add(" and XLXSBJDMX_ZDXJJCL<:pZDXJJCL"); + sql.ParamByName("pZDXJJCL").Value = dZDXJJCL; + } + else if (sZDXJJCLFilter.StartsWith("=")) + { + sql.Add(" and XLXSBJDMX_ZDXJJCL=:pZDXJJCL"); + sql.ParamByName("pZDXJJCL").Value = dZDXJJCL; + } + else + { + sql.Add(" and XLXSBJDMX_ZDXJJCL=:pZDXJJCL"); + sql.ParamByName("pZDXJJCL").Value = dZDXJJCL; + } + + } + if (!sCPMLFilter.Equals("")) + { + if (sCPMLFilter.Equals("空")) + { + sql.Add(" and isnull(XLXSBJDMX_CPMLMC,' ')=' ' "); + } + else + { + string sQueryTag = "E"; + string sFirstC = sCPMLFilter.Substring(0, 1); + string sLastC = sCPMLFilter.Substring(sCPMLFilter.Length - 1, 1); + if (sFirstC.Equals("%")) + { + sQueryTag = "L"; + if (sLastC.Equals("%")) + sQueryTag = "A"; + } + else + { + if (sLastC.Equals("%")) + sQueryTag = "R"; + } + if (sQueryTag.Equals("E")) + { + sql.Add(" and XLXSBJDMX_CPMLMC=:pCPMLMC"); + } + else + { + sql.Add(" and XLXSBJDMX_CPMLMC like :pCPMLMC"); + } + sql.ParamByName("pCPMLMC").Value = sCPMLFilter; + } + + } + + if (!sZHCPMLFilter.Equals("")) + { + if (sZHCPMLFilter.Equals("空")) + { + sql.Add(" and isnull(XLXSBJDMX_ZHCPMLMC,' ')=' ' "); + } + else + { + string sQueryTag = "E"; + string sFirstC = sZHCPMLFilter.Substring(0, 1); + string sLastC = sZHCPMLFilter.Substring(sZHCPMLFilter.Length - 1, 1); + if (sFirstC.Equals("%")) + { + sQueryTag = "L"; + if (sLastC.Equals("%")) + sQueryTag = "A"; + } + else + { + if (sLastC.Equals("%")) + sQueryTag = "R"; + } + if (sQueryTag.Equals("E")) + { + sql.Add(" and XLXSBJDMX_ZHCPMLMC=:pZHCPMLMC"); + } + else + { + sql.Add(" and XLXSBJDMX_ZHCPMLMC like :pZHCPMLMC"); + } + sql.ParamByName("pZHCPMLMC").Value = sZHCPMLFilter; + } + + } + + if (!sBZFilter.Equals("")) + { + string sQueryTag = "E"; + string sFirstC = sBZFilter.Substring(0, 1); + string sLastC = sBZFilter.Substring(sBZFilter.Length - 1, 1); + if (sFirstC.Equals("%")) + { + sQueryTag = "L"; + if (sLastC.Equals("%")) + sQueryTag = "A"; + } + else + { + if (sLastC.Equals("%")) + sQueryTag = "R"; + } + if (sQueryTag.Equals("E")) + { + sql.Add(" and XLXSBJDMX_BZ=:pBZ"); + } + else + { + sql.Add(" and XLXSBJDMX_BZ like :pBZ"); + } + sql.ParamByName("pBZ").Value = sBZFilter; + } + + DataSet ds = dberp.OpenDataSet(sql); + pgr.RecordCount = CMISproConvert.StrToInt(ds.Tables[0].Rows[0]["JLS"].ToString()); + } + + // 临时将当前页之后的记录显示序号*10000 + private void SetXssxBeforeSave(string sBJDID, int curPageIndex, int curPageSize) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + sql.Add(" merge into XLXSBJDMX tag "); + sql.Add(" using "); + sql.Add(" ( "); + sql.Add(" select ROW_NUMBER()over(order by XLXSBJDMX_XSSX,XLXSBJDMX_XH) as RNum,XLXSBJDMX_XH as BJDXH,XLXSBJDMX_BJDID as BJDID "); + sql.Add(" from XLXSBJDMX "); + sql.Add(" where XLXSBJDMX_BJDID = :pBJDID "); + sql.Add(" ) sor "); + sql.Add(" on (tag.XLXSBJDMX_BJDID = sor.BJDID "); + sql.Add(" and tag.XLXSBJDMX_XH = sor.BJDXH "); + sql.Add(" and tag.XLXSBJDMX_BJDID = :pBJDID "); + sql.Add(" and sor.RNum>= :pStartRow ) "); + sql.Add(" when matched then update set tag.XLXSBJDMX_XSSX = tag.XLXSBJDMX_XSSX*10000 "); + sql.ParamByName("pBJDID").Value = sBJDID; + sql.ParamByName("pStartRow").Value = curPageSize * curPageIndex + 1; + dberp.ExecSQL(sql); + } + + private int SetXssxAfterSave(string sBJDID) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + sql.Add(" merge into XLXSBJDMX tag "); + sql.Add(" using "); + sql.Add(" ( "); + sql.Add(" select ROW_NUMBER()over(order by XLXSBJDMX_XSSX,XLXSBJDMX_XH) as RNum,XLXSBJDMX_XH as BJDXH,XLXSBJDMX_BJDID as BJDID "); + sql.Add(" from XLXSBJDMX "); + sql.Add(" where XLXSBJDMX_BJDID = :pBJDID "); + sql.Add(" ) sor "); + sql.Add(" on (tag.XLXSBJDMX_BJDID = sor.BJDID "); + sql.Add(" and tag.XLXSBJDMX_XH = sor.BJDXH "); + sql.Add(" and tag.XLXSBJDMX_BJDID = :pBJDID )"); + sql.Add(" when matched then update set tag.XLXSBJDMX_XSSX = sor.RNum "); + sql.ParamByName("pBJDID").Value = sBJDID; + return dberp.ExecSQL(sql); + } + + //复制时,不允许操作明细 + protected void btnCopyEx_Click(object sender, EventArgs e) + { + grdXLBJDMX.DataSource = null; + grdXLBJDMX.DataBind(); + + grdXLBJDMX.EnabledToolBar = false; + + CanCopyMX.Value = "Y";//复制操作需要复制明细 + } + + + protected void grdXLBJDMX_ColumnFilter(object sender, ColumnFilterEventArgs e) + { + //string sField = e.ActiveField; //AutoDoFilter设为true的栏目可以取到正确的e.ActiveField + if (txtXSSXFilter.Value.Equals(e.FilterRow.Cells[grdXLBJDMX.GetIndexByFieldName("XLXSBJDMX_XSSX")].Text.Trim()) && txtXSSXFilter.Value.Equals("") + && txtXLXHIDFilter.Value.Equals(e.FilterRow.Cells[grdXLBJDMX.GetIndexByFieldName("XLXSBJDMX_XLXHID")].Text.Trim()) && txtXLXHIDFilter.Value.Equals("") + && txtXLGGIDFilter.Value.Equals(e.FilterRow.Cells[grdXLBJDMX.GetIndexByFieldName("XLXSBJDMX_XLGGID")].Text.Trim()) && txtXLGGIDFilter.Value.Equals("") + && txtXLBZIDFilter.Value.Equals(e.FilterRow.Cells[grdXLBJDMX.GetIndexByFieldName("XLXSBJDMX_XLBZID")].Text.Trim()) && txtXLBZIDFilter.Value.Equals("") + && txtDYDJIDFilter.Value.Equals(e.FilterRow.Cells[grdXLBJDMX.GetIndexByFieldName("XLXSBJDMX_DYDJID")].Text.Trim()) && txtDYDJIDFilter.Value.Equals("") + && txtXLYSIDFilter.Value.Equals(e.FilterRow.Cells[grdXLBJDMX.GetIndexByFieldName("XLXSBJDMX_XLYSID")].Text.Trim()) && txtXLYSIDFilter.Value.Equals("") + && txtBJCPFilter.Value.Equals(e.FilterRow.Cells[grdXLBJDMX.GetIndexByFieldName("XLXSBJDMX_BJCP")].Text.Trim()) && txtBJCPFilter.Value.Equals("") + && txtCPMLFilter.Value.Equals(e.FilterRow.Cells[grdXLBJDMX.GetIndexByFieldName("XLXSBJDMX_CPMLMC")].Text.Trim()) && txtCPMLFilter.Value.Equals("") + && txtZHCPMLFilter.Value.Equals(e.FilterRow.Cells[grdXLBJDMX.GetIndexByFieldName("XLXSBJDMX_ZHCPMLMC")].Text.Trim()) && txtZHCPMLFilter.Value.Equals("") + && txtJGBBJFilter.Value.Equals(e.FilterRow.Cells[grdXLBJDMX.GetIndexByFieldName("XLXSBJDMX_JGBBJ")].Text.Trim()) && txtJGBBJFilter.Value.Equals("") + && txtZDXJJCLFilter.Value.Equals(e.FilterRow.Cells[grdXLBJDMX.GetIndexByFieldName("XLXSBJDMX_ZDXJJCL")].Text.Trim()) && txtZDXJJCLFilter.Value.Equals("") + && txtBZFilter.Value.Equals(e.FilterRow.Cells[grdXLBJDMX.GetIndexByFieldName("XLXSBJDMX_BZ")].Text.Trim()) && txtBZFilter.Value.Equals("")) + return;//若筛选条件未发生变化,且都为空,则不查询 + + txtXSSXFilter.Value = e.FilterRow.Cells[grdXLBJDMX.GetIndexByFieldName("XLXSBJDMX_XSSX")].Text.Trim(); + txtXLXHIDFilter.Value = e.FilterRow.Cells[grdXLBJDMX.GetIndexByFieldName("XLXSBJDMX_XLXHID")].Text.Trim(); + txtXLGGIDFilter.Value = e.FilterRow.Cells[grdXLBJDMX.GetIndexByFieldName("XLXSBJDMX_XLGGID")].Text.Trim(); + txtXLBZIDFilter.Value = e.FilterRow.Cells[grdXLBJDMX.GetIndexByFieldName("XLXSBJDMX_XLBZID")].Text.Trim(); + txtDYDJIDFilter.Value = e.FilterRow.Cells[grdXLBJDMX.GetIndexByFieldName("XLXSBJDMX_DYDJID")].Text.Trim(); + txtXLYSIDFilter.Value = e.FilterRow.Cells[grdXLBJDMX.GetIndexByFieldName("XLXSBJDMX_XLYSID")].Text.Trim(); + txtBJCPFilter.Value = e.FilterRow.Cells[grdXLBJDMX.GetIndexByFieldName("XLXSBJDMX_BJCP")].Text.Trim(); + txtCPMLFilter.Value = e.FilterRow.Cells[grdXLBJDMX.GetIndexByFieldName("XLXSBJDMX_CPMLMC")].Text.Trim(); + txtZHCPMLFilter.Value = e.FilterRow.Cells[grdXLBJDMX.GetIndexByFieldName("XLXSBJDMX_ZHCPMLMC")].Text.Trim(); + txtJGBBJFilter.Value = e.FilterRow.Cells[grdXLBJDMX.GetIndexByFieldName("XLXSBJDMX_JGBBJ")].Text.Trim(); + txtZDXJJCLFilter.Value = e.FilterRow.Cells[grdXLBJDMX.GetIndexByFieldName("XLXSBJDMX_ZDXJJCL")].Text.Trim(); + txtBZFilter.Value = e.FilterRow.Cells[grdXLBJDMX.GetIndexByFieldName("XLXSBJDMX_BZ")].Text.Trim(); + SetRecordCount(pgBar, txtBJDID.Text.Trim(), txtXSSXFilter.Value, txtXLXHIDFilter.Value, txtXLGGIDFilter.Value, txtXLBZIDFilter.Value, txtDYDJIDFilter.Value, txtXLYSIDFilter.Value, txtBJCPFilter.Value, txtJGBBJFilter.Value, txtZDXJJCLFilter.Value, txtCPMLFilter.Value, txtZHCPMLFilter.Value, txtBZFilter.Value); + + //分页模式下,传入页数和每页显示数,用于控制明细查询结果 + entity.XLXSBJDMX.curPageIndex = pgBar.CurrentPageIndex; + entity.XLXSBJDMX.curPageSize = pgBar.PageSize; + entity.XLXSBJDMX.sXSSXFilter = txtXSSXFilter.Value; + entity.XLXSBJDMX.sXLXHIDFilter = txtXLXHIDFilter.Value; + entity.XLXSBJDMX.sXLGGIDFilter = txtXLGGIDFilter.Value; + entity.XLXSBJDMX.sXLBZIDFilter = txtXLBZIDFilter.Value; + entity.XLXSBJDMX.sDYDJIDFilter = txtDYDJIDFilter.Value; + entity.XLXSBJDMX.sXLYSIDFilter = txtXLYSIDFilter.Value; + entity.XLXSBJDMX.sBJCPFilter = txtBJCPFilter.Value; + entity.XLXSBJDMX.sCPMLFilter = txtCPMLFilter.Value; + entity.XLXSBJDMX.sZHCPMLFilter = txtZHCPMLFilter.Value; + entity.XLXSBJDMX.sJGBBJFilter = txtJGBBJFilter.Value; + entity.XLXSBJDMX.sZDXJJCLFilter = txtZDXJJCLFilter.Value; + entity.XLXSBJDMX.sBZFilter = txtBZFilter.Value; + entity.XLXSBJDMX.sBZBJDIDFilter = PageParam.GetRTrimString("BZBJDID"); + entity.XLXSBJDMX.sCPCFXLBZ = PageParam.GetRTrimString("CPCFXLBZ"); + entity.XLXSBJDMX.BJDID = this.txtBJDID.Text.Trim(); + entity.XLXSBJDMX.Query(); + grdXLBJDMX.DataSource = entity.XLXSBJDMX.Entites; + grdXLBJDMX.DataBind(); + } + + //protected void grdXLBJDMX_GetFilterDropDownItems(object sender, GetDropDownColumnItemsEventArgs e) + //{ + // if (e.EventFieldName == "XLXSBJDMX_XLXHID") + // { + // TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + // DataSet ds = dberp.OpenDataSet(string.Format("select distinct XLXSBJDMX_XLXHID as XLXHID from XLXSBJDMX where XLXSBJDMX_BJDID='{0}' order by XLXHID", e.MasterDataSet["txtBJDID"].Trim())); + + // e.DropDownItems.Clear(); + // e.DropDownItems.Add(new ListItem("", "")); + // for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + // { + // e.DropDownItems.Add(new ListItem(ds.Tables[0].Rows[i]["XLXHID"].ToString().Trim(), ds.Tables[0].Rows[i]["XLXHID"].ToString().Trim())); + // } + // } + //} + + /// + /// 是否处于行过滤状态 + /// + /// + private bool IsFilterState() + { + if (txtXSSXFilter.Value.Trim().Equals("") && txtXLXHIDFilter.Value.Trim().Equals("") && txtXLGGIDFilter.Value.Trim().Equals("") + && txtXLBZIDFilter.Value.Trim().Equals("") && txtDYDJIDFilter.Value.Trim().Equals("") && txtXLYSIDFilter.Value.Trim().Equals("") && txtBJCPFilter.Value.Trim().Equals("") && txtJGBBJFilter.Value.Trim().Equals("") && txtZDXJJCLFilter.Value.Trim().Equals("") && txtCPMLFilter.Value.Trim().Equals("") && txtZHCPMLFilter.Value.Trim().Equals("") && txtBZFilter.Value.Trim().Equals("")) + { + return false; + } + else + return true; + } + + /// + /// 清空隐藏控件值 + /// + private void ClearFilterCtrl() + { + txtXSSXFilter.Value = ""; + txtXLXHIDFilter.Value = ""; + txtXLGGIDFilter.Value = ""; + txtXLBZIDFilter.Value = ""; + txtDYDJIDFilter.Value = ""; + txtXLYSIDFilter.Value = ""; + txtBJCPFilter.Value = ""; + txtCPMLFilter.Value = ""; + txtZHCPMLFilter.Value = ""; + txtJGBBJFilter.Value = ""; + txtZDXJJCLFilter.Value = ""; + txtBZFilter.Value = ""; + } + } + + + public class XLCLQDLEntity + { + private string _CLQDL = string.Empty; + public string CLQDL + { + get { return _CLQDL; } + set { _CLQDL = value; } + } + + private string _LMMC = string.Empty; + public string LMMC + { + get { return _LMMC; } + set { _LMMC = value; } + } + + private string _BJHQ = string.Empty; + public string BJHQ + { + get { return _BJHQ; } + set { _BJHQ = value; } + } + + private string _BJCLID = string.Empty; + public string BJCLID + { + get { return _BJCLID; } + set { _BJCLID = value; } + } + + private string _WLID = string.Empty; + public string WLID + { + get { return _WLID; } + set { _WLID = value; } + } + + private double _CLSL = 0; + public double CLSL + { + get { return _CLSL; } + set { _CLSL = value; } + } + + private double _SHL = 0; + public double SHL + { + get { return _SHL; } + set { _SHL = value; } + } + + private double _CLJGBL = 0; + public double CLJGBL + { + get { return _CLJGBL; } + set { _CLJGBL = value; } + } + + private double _CLJG = 0; + public double CLJG + { + get { return _CLJG; } + set { _CLJG = value; } + } + + } + + + public class TJYZEntity + { + private string _YZID = string.Empty; + public string YZID + { + get { return _YZID; } + set { _YZID = value; } + } + + private double _TJBZDYZZ = 0; + public double TJBZDYZZ + { + get { return _TJBZDYZZ; } + set { _TJBZDYZZ = value; } + } + + private double _TJBZXYZZ = 0; + public double TJBZXYZZ + { + get { return _TJBZXYZZ; } + set { _TJBZXYZZ = value; } + } + } + +} diff --git a/XLBJDInfo.aspx.designer.cs b/XLBJDInfo.aspx.designer.cs new file mode 100644 index 0000000..7d4a72c --- /dev/null +++ b/XLBJDInfo.aspx.designer.cs @@ -0,0 +1,2446 @@ +//------------------------------------------------------------------------------ +// +// 此代码由工具生成。 +// 运行时版本:2.0.50727.9179 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// +//------------------------------------------------------------------------------ + +namespace GThinking.U20261363_N_XLXSBJ { + + + /// + /// XLBJDInfo 类。 + /// + /// + /// 自动生成的类。 + /// + public partial class XLBJDInfo { + + /// + /// CustomButton 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Table CustomButton; + + /// + /// btnBJSM 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtToolButton btnBJSM; + + /// + /// btnMXOper 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtToolButton btnMXOper; + + /// + /// btnAIZXQK 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtToolButton btnAIZXQK; + + /// + /// btnBJCPJX 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtToolButton btnBJCPJX; + + /// + /// btnTBSJKSLR 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtToolButton btnTBSJKSLR; + + /// + /// btnBJLR 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtToolButton btnBJLR; + + /// + /// btnCLCB 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtToolButton btnCLCB; + + /// + /// btnLJ 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtToolButton btnLJ; + + /// + /// btnFZGX 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtToolButton btnFZGX; + + /// + /// btnBJ 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtToolButton btnBJ; + + /// + /// btnRefresh1 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtButton btnRefresh1; + + /// + /// btnCLCYZD 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtToolButton btnCLCYZD; + + /// + /// btnYLZDFP 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtToolButton btnYLZDFP; + + /// + /// btnZDFX 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtToolButton btnZDFX; + + /// + /// btnBJFK 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtToolButton btnBJFK; + + /// + /// btnSend 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtToolButton btnSend; + + /// + /// btnQXSend 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtToolButton btnQXSend; + + /// + /// btnKHWL 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtToolButton btnKHWL; + + /// + /// btnCXJS 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtToolButton btnCXJS; + + /// + /// txtKHChange 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtButton txtKHChange; + + /// + /// btnReLoad 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtButton btnReLoad; + + /// + /// btnRefreshOper 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtButton btnRefreshOper; + + /// + /// btnRefreshGLBJD 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtButton btnRefreshGLBJD; + + /// + /// btnRefreshCLHQTZ 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtButton btnRefreshCLHQTZ; + + /// + /// btnRefreshWBBJD 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtButton btnRefreshWBBJD; + + /// + /// btnRefreshBJDYZ 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtButton btnRefreshBJDYZ; + + /// + /// btnRefreshYFYZ1 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtButton btnRefreshYFYZ1; + + /// + /// btnRefreshYFYZ2 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtButton btnRefreshYFYZ2; + + /// + /// btnRefreshYFYZ3 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtButton btnRefreshYFYZ3; + + /// + /// btnRefreshBJSL 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtButton btnRefreshBJSL; + + /// + /// btnRefreshJGBBJTZ 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtButton btnRefreshJGBBJTZ; + + /// + /// btnRefreshJGBBJSC 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtButton btnRefreshJGBBJSC; + + /// + /// btnRefreshBJSF 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtButton btnRefreshBJSF; + + /// + /// btnRefreshBJXF 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtButton btnRefreshBJXF; + + /// + /// btnRefreshBJJCL 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtButton btnRefreshBJJCL; + + /// + /// btnRefreshLJJCL 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtButton btnRefreshLJJCL; + + /// + /// btnRefreshBJXJ 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtButton btnRefreshBJXJ; + + /// + /// btnRefreshBJPLTJ 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtButton btnRefreshBJPLTJ; + + /// + /// btnRefreshPLTZBZ 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtButton btnRefreshPLTZBZ; + + /// + /// btnRefreshKHWL 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtButton btnRefreshKHWL; + + /// + /// btnCODECLASS 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtButton btnCODECLASS; + + /// + /// btnRefreshYZZCheck 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtButton btnRefreshYZZCheck; + + /// + /// btnRefTLJ 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtButton btnRefTLJ; + + /// + /// btnPFZP 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtButton btnPFZP; + + /// + /// btnPFJE 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtButton btnPFJE; + + /// + /// btnShowFJXX 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtButton btnShowFJXX; + + /// + /// btnRefreshFKQXTJB 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtButton btnRefreshFKQXTJB; + + /// + /// hidKH 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TextBox hidKH; + + /// + /// hidXM 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TextBox hidXM; + + /// + /// hidYZ 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TextBox hidYZ; + + /// + /// GtLabel1 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel GtLabel1; + + /// + /// txtBJDID 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtTextBox txtBJDID; + + /// + /// lblBJDID 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtButton lblBJDID; + + /// + /// lblBJRQ 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblBJRQ; + + /// + /// datBJRQ 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtDateTimeTextBox datBJRQ; + + /// + /// lblJGBID 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.LinkButton lblJGBID; + + /// + /// lblJGBIDMH 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblJGBIDMH; + + /// + /// cbxJGBID 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtComboBox cbxJGBID; + + /// + /// lblTJ 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.LinkButton lblTJ; + + /// + /// lblTJMH 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblTJMH; + + /// + /// txtTJ 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtNumTextBox txtTJ; + + /// + /// lblLJ 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.LinkButton lblLJ; + + /// + /// lblLJMH 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblLJMH; + + /// + /// txtLJ 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtNumTextBox txtLJ; + + /// + /// aRefTLJ 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlAnchor aRefTLJ; + + /// + /// trHQJCJY 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlTableRow trHQJCJY; + + /// + /// lblHQJCJY 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblHQJCJY; + + /// + /// lblBJFL 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblBJFL; + + /// + /// cbxBJFLID 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtComboBox cbxBJFLID; + + /// + /// lblXSQYID 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblXSQYID; + + /// + /// cbxXSQYID 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtComboBox cbxXSQYID; + + /// + /// lblZJE 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.LinkButton lblZJE; + + /// + /// lbllblZJEMH 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lbllblZJEMH; + + /// + /// txtZJE 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtNumTextBox txtZJE; + + /// + /// Td1 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlTableCell Td1; + + /// + /// lblZZL 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblZZL; + + /// + /// linkZZL 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.LinkButton linkZZL; + + /// + /// LinkZZLMH 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel LinkZZLMH; + + /// + /// txtZZL 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtNumTextBox txtZZL; + + /// + /// lblZLGZCLS 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtButton lblZLGZCLS; + + /// + /// lblKB1 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblKB1; + + /// + /// lblSYDWID 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblSYDWID; + + /// + /// linkSYDWID 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.LinkButton linkSYDWID; + + /// + /// linkSYDWIDMH 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel linkSYDWIDMH; + + /// + /// cbxSYDWID 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtComboBox cbxSYDWID; + + /// + /// cbxKHID 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtComboBox cbxKHID; + + /// + /// lblXSJL 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblXSJL; + + /// + /// cbxXSJLMC 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtComboBox cbxXSJLMC; + + /// + /// lblKH 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblKH; + + /// + /// linkKH 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.LinkButton linkKH; + + /// + /// linkKHMH 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel linkKHMH; + + /// + /// txtKHID 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtTextBox txtKHID; + + /// + /// txtKH 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtTextBox txtKH; + + /// + /// lblXSBMID 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblXSBMID; + + /// + /// cbxXSBMID 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtComboBox cbxXSBMID; + + /// + /// lblTXY 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblTXY; + + /// + /// cbxTXY 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtComboBox cbxTXY; + + /// + /// cbxTXYMC 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtAjaxComboBox cbxTXYMC; + + /// + /// txtTXY 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtTextBox txtTXY; + + /// + /// lblKHLXR 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblKHLXR; + + /// + /// txtKHLXR 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtTextBox txtKHLXR; + + /// + /// lblLXDH 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblLXDH; + + /// + /// txtLXDH 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtTextBox txtLXDH; + + /// + /// trST 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlTableRow trST; + + /// + /// chkYZB 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtCheckBox chkYZB; + + /// + /// lblYZBRQ 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblYZBRQ; + + /// + /// datYZBRQ 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtDateTimeTextBox datYZBRQ; + + /// + /// lblJHJHRQS 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblJHJHRQS; + + /// + /// datJHJHRQS 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtDateTimeTextBox datJHJHRQS; + + /// + /// lblJHJHRQZ 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblJHJHRQZ; + + /// + /// datJHJHRQZ 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtDateTimeTextBox datJHJHRQZ; + + /// + /// chkZCJH 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtCheckBox chkZCJH; + + /// + /// trST2 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlTableRow trST2; + + /// + /// lblYZBSL 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblYZBSL; + + /// + /// txtYZBSL 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtNumTextBox txtYZBSL; + + /// + /// lblYZBJE 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblYZBJE; + + /// + /// txtYZBJE 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtNumTextBox txtYZBJE; + + /// + /// lblFKQXNR 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblFKQXNR; + + /// + /// linkFKQXNR 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.LinkButton linkFKQXNR; + + /// + /// linkFKQXNRMH 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel linkFKQXNRMH; + + /// + /// txtFKQXNR 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtTextBox txtFKQXNR; + + /// + /// cbxFKQXNR 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtComboBox cbxFKQXNR; + + /// + /// lblFKQXTJB 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtButton lblFKQXTJB; + + /// + /// lblKHDH 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblKHDH; + + /// + /// linkKHDH 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.LinkButton linkKHDH; + + /// + /// linkKHDHMH 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel linkKHDHMH; + + /// + /// txtKHDH 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtTextBox txtKHDH; + + /// + /// lblXM 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblXM; + + /// + /// linkXM 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.LinkButton linkXM; + + /// + /// linkXMMH 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel linkXMMH; + + /// + /// cbxKHSZDPRO 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtComboBox cbxKHSZDPRO; + + /// + /// cbxKHSZDCITY 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtComboBox cbxKHSZDCITY; + + /// + /// cbxKHSZDCOUNTY 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtComboBox cbxKHSZDCOUNTY; + + /// + /// txtXM 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtTextBox txtXM; + + /// + /// lblPJLX 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.LinkButton lblPJLX; + + /// + /// lblPJLXMH 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblPJLXMH; + + /// + /// lblFKSM 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.LinkButton lblFKSM; + + /// + /// lblFKSMMH 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblFKSMMH; + + /// + /// cbxPJLX 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtComboBox cbxPJLX; + + /// + /// txtFKSM 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtTextBox txtFKSM; + + /// + /// lblXXDZ 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblXXDZ; + + /// + /// txtXXDZ 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtTextBox txtXXDZ; + + /// + /// lblWPID 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblWPID; + + /// + /// txtLCZT 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtTextBox txtLCZT; + + /// + /// lblLRL 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblLRL; + + /// + /// txtLRL 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtNumTextBox txtLRL; + + /// + /// trYSDW 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlTableRow trYSDW; + + /// + /// lblYSJDID 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblYSJDID; + + /// + /// cbxYSJDID 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtComboBox cbxYSJDID; + + /// + /// lblGYSID 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblGYSID; + + /// + /// cbxGYSID 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtComboBox cbxGYSID; + + /// + /// lblYSFY 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblYSFY; + + /// + /// txtYSFY 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtNumTextBox txtYSFY; + + /// + /// lblBZ 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.LinkButton lblBZ; + + /// + /// lblBZMH 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblBZMH; + + /// + /// txtBZ 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtTextBox txtBZ; + + /// + /// lblCZJSXY 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblCZJSXY; + + /// + /// cbxCZJSXY 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtComboBox cbxCZJSXY; + + /// + /// chkKQZYZDBS 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtCheckBox chkKQZYZDBS; + + /// + /// lblFJS 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblFJS; + + /// + /// txtFJS 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtNumTextBox txtFJS; + + /// + /// chkJZBJHS 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtCheckBox chkJZBJHS; + + /// + /// lblWHR 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblWHR; + + /// + /// txtWHR 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtTextBox txtWHR; + + /// + /// lblWHSJ 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblWHSJ; + + /// + /// datWHSJ 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtDateTime datWHSJ; + + /// + /// lblHJXX 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblHJXX; + + /// + /// txtBJDYZ 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtTextBox txtBJDYZ; + + /// + /// txtJZBJHS 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtTextBox txtJZBJHS; + + /// + /// txtTJYSList 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtTextBox txtTJYSList; + + /// + /// txtJGBIDS 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtTextBox txtJGBIDS; + + /// + /// txtJGCIDS 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtTextBox txtJGCIDS; + + /// + /// txtBJLY 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtTextBox txtBJLY; + + /// + /// txtYZWPIDList 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtTextBox txtYZWPIDList; + + /// + /// txtJGBTJYS 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtTextBox txtJGBTJYS; + + /// + /// txtJSBLFS 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtTextBox txtJSBLFS; + + /// + /// txtReadOnlyYZ 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtTextBox txtReadOnlyYZ; + + /// + /// txtBTYZ 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtTextBox txtBTYZ; + + /// + /// txtXSJEYZ 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtTextBox txtXSJEYZ; + + /// + /// txtFSYZ 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtTextBox txtFSYZ; + + /// + /// txtZDWPIDList 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtTextBox txtZDWPIDList; + + /// + /// txtTZJGBBJ 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtTextBox txtTZJGBBJ; + + /// + /// txtTZBJDHQLJ 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtTextBox txtTZBJDHQLJ; + + /// + /// txtZDXJJCL 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtNumTextBox txtZDXJJCL; + + /// + /// txtLJJCL 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtNumTextBox txtLJJCL; + + /// + /// txtPFYZID 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtTextBox txtPFYZID; + + /// + /// txtBZPFYZID 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtTextBox txtBZPFYZID; + + /// + /// txtDRSJ 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtDateTime txtDRSJ; + + /// + /// txtFirstBJSL 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtTextBox txtFirstBJSL; + + /// + /// txtFirstJLDW 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtTextBox txtFirstJLDW; + + /// + /// divFJXXLabel 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlGenericControl divFJXXLabel; + + /// + /// lblFJXX 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblFJXX; + + /// + /// divFJXX 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlGenericControl divFJXX; + + /// + /// pgBar 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtPager pgBar; + + /// + /// divBarQY 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlGenericControl divBarQY; + + /// + /// txtHJXX 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtHTMLEditor txtHJXX; + + /// + /// grdXLBJDMX 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtAjaxGridView grdXLBJDMX; + + /// + /// txtWHRID 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.HiddenField txtWHRID; + + /// + /// txtZDZDLX 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.HiddenField txtZDZDLX; + + /// + /// txtTXYold 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.HiddenField txtTXYold; + + /// + /// txtWFID 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.HiddenField txtWFID; + + /// + /// txtWPID 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.HiddenField txtWPID; + + /// + /// txtWFINST 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.HiddenField txtWFINST; + + /// + /// txtHANDLER 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.HiddenField txtHANDLER; + + /// + /// txtAWAITER 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.HiddenField txtAWAITER; + + /// + /// maxXH 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.HiddenField maxXH; + + /// + /// ctrlState 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.HiddenField ctrlState; + + /// + /// txtCLHQJGBID 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.HiddenField txtCLHQJGBID; + + /// + /// txtNEWBJDID 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.HiddenField txtNEWBJDID; + + /// + /// txtJSCQDOCGRPID 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.HiddenField txtJSCQDOCGRPID; + + /// + /// txtJSCQFJS 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.HiddenField txtJSCQFJS; + + /// + /// IsXJY 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.HiddenField IsXJY; + + /// + /// IsSJY 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.HiddenField IsSJY; + + /// + /// IsHJY 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.HiddenField IsHJY; + + /// + /// CanCopyMX 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.HiddenField CanCopyMX; + + /// + /// txtXSSXFilter 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.HiddenField txtXSSXFilter; + + /// + /// txtXLXHIDFilter 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.HiddenField txtXLXHIDFilter; + + /// + /// txtXLGGIDFilter 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.HiddenField txtXLGGIDFilter; + + /// + /// txtXLBZIDFilter 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.HiddenField txtXLBZIDFilter; + + /// + /// txtDYDJIDFilter 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.HiddenField txtDYDJIDFilter; + + /// + /// txtXLYSIDFilter 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.HiddenField txtXLYSIDFilter; + + /// + /// txtBJCPFilter 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.HiddenField txtBJCPFilter; + + /// + /// txtCPMLFilter 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.HiddenField txtCPMLFilter; + + /// + /// txtZHCPMLFilter 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.HiddenField txtZHCPMLFilter; + + /// + /// txtBJU074 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.HiddenField txtBJU074; + + /// + /// txtJGBBJFilter 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.HiddenField txtJGBBJFilter; + + /// + /// txtZDXJJCLFilter 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.HiddenField txtZDXJJCLFilter; + + /// + /// txtBZFilter 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.HiddenField txtBZFilter; + + /// + /// txtPLSZYZList 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.HiddenField txtPLSZYZList; + + /// + /// txtPLSZAll 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.HiddenField txtPLSZAll; + + /// + /// txtPLSZJMBGS 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.HiddenField txtPLSZJMBGS; + + /// + /// txtBJSL 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.HiddenField txtBJSL; + + /// + /// txtJGBBJTZ 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.HiddenField txtJGBBJTZ; + + /// + /// txtBJSF 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.HiddenField txtBJSF; + + /// + /// txtBJXF 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.HiddenField txtBJXF; + + /// + /// txtTZZ 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.HiddenField txtTZZ; + + /// + /// txtOLDTJ 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.HiddenField txtOLDTJ; + + /// + /// txtOLDLJ 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.HiddenField txtOLDLJ; + + /// + /// txtOLDBJDID 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.HiddenField txtOLDBJDID; + + /// + /// txtOLDBJDID2 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.HiddenField txtOLDBJDID2; + + /// + /// txtPLSZBZID 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.HiddenField txtPLSZBZID; + + /// + /// txtPLSZKHWLID 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.HiddenField txtPLSZKHWLID; + + /// + /// txtMRBZID 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.HiddenField txtMRBZID; + + /// + /// txtXZQHID 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.HiddenField txtXZQHID; + + /// + /// txtXMID 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.HiddenField txtXMID; + + /// + /// txtOLDXM 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.HiddenField txtOLDXM; + + /// + /// txtZDM 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.HiddenField txtZDM; + + /// + /// txtSMID 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.HiddenField txtSMID; + + /// + /// txtSQR 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.HiddenField txtSQR; + + /// + /// txtSQRGH 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.HiddenField txtSQRGH; + + /// + /// txtZDQRRGH 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.HiddenField txtZDQRRGH; + + /// + /// txtSQRID 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.HiddenField txtSQRID; + + /// + /// txtSQRQ 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.HiddenField txtSQRQ; + + /// + /// txtYBJDIDS 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.HiddenField txtYBJDIDS; + + /// + /// txtZT 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.HiddenField txtZT; + + /// + /// txtLogicValid 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.HiddenField txtLogicValid; + + /// + /// txtOldJGBID 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.HiddenField txtOldJGBID; + + /// + /// txtRefOldJGBBJ 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.HiddenField txtRefOldJGBBJ; + + /// + /// txtPTBB 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.HiddenField txtPTBB; + + /// + /// txtBGQKHID 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.HiddenField txtBGQKHID; + + /// + /// txtBGQKH 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.HiddenField txtBGQKH; + + /// + /// txtFZBZ 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.HiddenField txtFZBZ; + + /// + /// txtBJSQDH 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.HiddenField txtBJSQDH; + + /// + /// txtHidKHID 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.HiddenField txtHidKHID; + + /// + /// txtIsWebCtrl 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.HiddenField txtIsWebCtrl; + + /// + /// IsKHChange 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlInputText IsKHChange; + + /// + /// divAiButton 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlGenericControl divAiButton; + + /// + /// Master 属性。 + /// + /// + /// 自动生成的属性。 + /// + public new GThinking.N_MODEL.Page.MasterBDOBill Master { + get { + return ((GThinking.N_MODEL.Page.MasterBDOBill)(base.Master)); + } + } + } +} diff --git a/XLBJDList.aspx b/XLBJDList.aspx new file mode 100644 index 0000000..b9c0b04 --- /dev/null +++ b/XLBJDList.aspx @@ -0,0 +1,372 @@ +<%@ Page Language="C#" MasterPageFile="~/N_MODEL/Page/MasterSingleGrid.Master" AutoEventWireup="true" + Codebehind="XLBJDList.aspx.cs" Inherits="GThinking.U20261363_N_XLXSBJ.XLBJDList" Title="线缆销售报价单" %> + +<%@ MasterType VirtualPath="~/N_MODEL/Page/MasterSingleGrid.Master" %> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <%-- + + + --%> + + + + + + + + + + + + + + + + + <%-- + + + --%> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <%-- + --%> + + + + + + + + + <%-- + --%> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/XLBJDList.aspx.cs b/XLBJDList.aspx.cs new file mode 100644 index 0000000..1a8669d --- /dev/null +++ b/XLBJDList.aspx.cs @@ -0,0 +1,1065 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; +using GThinking.N_MODEL.Page; +using GThinking.N_MISPRO.Utility; +using GThinking.N_MISPRO.Data; +using GThinking.N_MISPRO; +using GThinking.N_WORKFLOW; +using System.Collections.Generic; +using GThinking.N_MISPRO.TableCache; +using GThinking.N_PUBLIC2; +using GThinking.N_PUBLIC; + +namespace GThinking.U20261363_N_XLXSBJ +{ + public partial class XLBJDList : SingleGridBase + { + XLBJD entity = new XLBJD(); + XLBJD_M queryentity = new XLBJD_M(); + + public static Dictionary dicFJXSXSBZ = new Dictionary(); + public static Dictionary dicFJXXSYBJFL = new Dictionary(); + public static Dictionary dicZBLMBJFL = new Dictionary(); + + public static string sFJXXSZ = ""; + + public string sYZBSPTJ = "N"; + public string sYZBSPTH = "N"; + + + #region Page类事件继承 + + protected void Page_Load(object sender, EventArgs e) + { + this.UMID = 100860174; + this.UMName = "线缆销售报价单"; + this.CurMaster = Master; + this.ModuleGV = ContentGrid; + this.CurEntity = entity; + this.CurQueryEntity = queryentity; + this.PageHeight = 500; + this.PageWidth = 700; + this.sURLTarget = "XLBJDInfo.aspx"; + this.sQueryURLTarget = "XLBJDQuery.aspx"; + base.DataKeyNames = new string[] { "XLXSBJD_BJDID", "XLXSBJD_CLHQJGBID", "XLXSBJD_BJFLID", "XLXSBJD_XMMC", "XLXSBJD_BJRQ", "XLXSBJD_ZJE" }; + this.Master.EnableAttachBtn = true; + + if (!IsPostBack) + { + CurQueryEntity.FieldByName("SW").Value = "W"; + CurQueryEntity.FieldByName("PXFS").Value = "报价日期正序↑"; + } + ContentGrid.FindColumnExByFieldName("XLXSBJD_TJ").NumberDecimalPlace = XLBJDUtils.BJCLPriceDecimal; + ContentGrid.FindColumnExByFieldName("XLXSBJD_LJ").NumberDecimalPlace = XLBJDUtils.BJCLPriceDecimal; + base.InitPage(); + + if (!IsPostBack) + { + HidLMByJS(); + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sSQL = new TSQL(dberp); + sSQL.Clear(); + sSQL.Add("select XLXSBJKZXXSZ_MJSQL, XLXSBJKZXXSZ_SRFS,XLXSBJKZXXSZ_DYZD from XLXSBJKZXXSZ "); + sSQL.Add("where 1=1 "); + sSQL.Add(" and rtrim(convert(varchar(4000),isnull(XLXSBJKZXXSZ_MJSQL ,' ')))||' ' <> ' ' and isnull(XLXSBJKZXXSZ_SRFS,' ') <> 'A' "); + sSQL.Add(" and isnull(XLXSBJKZXXSZ_LBXS,'N') = 'Y'"); + DataSet ds = dberp.OpenDataSet(sSQL); + if (ds.Tables[0].Rows.Count > 0) + { + for (int i = 0; i < ds.Tables[0].Rows.Count; ++i) + { + sFJXXSZ += ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_DYZD"].ToString().Trim() + ","; + } + } + + sSQL.Clear(); + sSQL.Add(" select XLXSBJKZXXSZ_XSBZ,XLXSBJKZXXSZ_DYZD from XLXSBJKZXXSZ "); + sSQL.Add(" where 1=1 "); + sSQL.Add(" and isnull(XLXSBJKZXXSZ_XSBZ,' ') <> ' '"); + sSQL.Add(" and isnull(XLXSBJKZXXSZ_LBXS,'N') = 'Y'"); + ds = dberp.OpenDataSet(sSQL); + if (ds.Tables[0].Rows.Count > 0) + { + for (int i = 0; i < ds.Tables[0].Rows.Count; ++i) + { + string sXSBZ = ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_XSBZ"].ToString().Trim(); + string sDYZD = ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_DYZD"].ToString().Trim(); + if (!dicFJXSXSBZ.ContainsKey(sDYZD)) + dicFJXSXSBZ.Add(sDYZD, sXSBZ); + } + } + + sSQL.Clear(); + sSQL.Add(" select XLXSBJKZXXSZ_SYBJFLID,XLXSBJKZXXSZ_DYZD from XLXSBJKZXXSZ "); + sSQL.Add(" where 1=1 "); + sSQL.Add(" and isnull(XLXSBJKZXXSZ_SYBJFLID,' ') <> ' '"); + sSQL.Add(" and isnull(XLXSBJKZXXSZ_LBXS,'N') = 'Y'"); + ds = dberp.OpenDataSet(sSQL); + if (ds.Tables[0].Rows.Count > 0) + { + for (int i = 0; i < ds.Tables[0].Rows.Count; ++i) + { + string sSYBJFL = ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_SYBJFLID"].ToString().Trim(); + string sDYZD = ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_DYZD"].ToString().Trim(); + if (!dicFJXXSYBJFL.ContainsKey(sDYZD)) + dicFJXXSYBJFL.Add(sDYZD, sSYBJFL); + } + } + } + + //解决复制明细、与复制主记录分开处理的情况 + this.Master.StandardCopyButton.OnClientClick = ""; + this.Master.StandardCopyButton.Click += new EventHandler(btnCopyEx_Click); + + if (!IsPostBack) + { + Master_OnStandardQuery(null, null); + } + if (!CheckModule("100860008")) + { + int index1 = ContentGrid.Columns.IndexOf(ContentGrid.FindColumnByFieldName("XLXSBJD_LRL")); + int index2 = ContentGrid.Columns.IndexOf(ContentGrid.FindColumnByFieldName("XLXSBJD_ZDXJJCL")); + + ContentGrid.Columns[index1].Visible = false; + ContentGrid.Columns[index2].Visible = false; + } + if (!CheckModule("100860068")) + { + int index1 = ContentGrid.Columns.IndexOf(ContentGrid.FindColumnByFieldName("ZDFXYQR")); + ContentGrid.Columns[index1].Visible = false; + + } + + } + + #endregion + + #region 模板继承事件 + + protected override bool CanSubmit() + { + string sBJDID = ContentGrid.DataKeys[ContentGrid.SelectedIndex]["XLXSBJD_BJDID"].ToString().Trim(); + string sWarningMsg = ""; + string sBJFLID = ""; + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add(" SELECT XLXSBJD_BJFLID FROM XLXSBJD WHERE XLXSBJD_BJDID=:pXLXSBJD_BJDID "); + SQL.ParamByName("pXLXSBJD_BJDID").Value = sBJDID; + DataSet data = dberp.OpenDataSet(SQL); + if (data.Tables[0].Rows.Count > 0) + { + sBJFLID = data.Tables[0].Rows[0][0].ToString().Trim(); + } + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(sBJFLID); + + if (bjflxx.XLXSBJFL_XTCPBJYZ.Trim().Equals("Y") || bjflxx.XLXSBJFL_XTCPBJYZ.Trim().Equals("5")) + { + XLBJD_BDOBill.JudgeDifBJCP(sBJDID, GetOption(100860000,"BJU003"), ref sWarningMsg, bjflxx.XLXSBJFL_XTCPBJYZ.Trim()); + if (!sWarningMsg.Equals("")) + { + ShowMessage(String.Format(("显示序号为【" + sWarningMsg + "】的相同报价产品的报价不同,不允许提交!"))); + return false; + } + } + + XLBJD_BDOBill.JudgeDifBJZJE(sBJDID, ref sWarningMsg); + if (!sWarningMsg.Equals("")) + { + ShowMessage(sWarningMsg); + return false; + } + return base.CanSubmit(); + } + + protected override bool Master_BeforeDeleteAction(object sender, EventArgs e) + { + string sBJDID = ContentGrid.DataKeys[ContentGrid.SelectedIndex]["XLXSBJD_BJDID"].ToString().Trim(); + string sSQL = string.Format("select top 1 XLXSBJYLZD_BJDID from XLXSBJYLZD where XLXSBJYLZD_BJDID='{0}'", sBJDID); + if (CMISproDataBase.ExistsRecord("DBERP", sSQL)) + { + ShowMessage("已申请材料用量制定,不允许删除!"); + return false; + } + + sSQL = string.Format("select 1 from BJD where BJD_BJDID='{0}'", sBJDID); + if (CMISproDataBase.ExistsRecord("DBERP", sSQL)) + { + ShowMessage("报价单已反馈,不允许删除!"); + return false; + } + + CurEntity.Param.Add("XLXSBJD_BJDID", ContentGrid.DataKeys[ContentGrid.SelectedIndex]["XLXSBJD_BJDID"].ToString().Trim()); + + XLBJDUtils.UpdateTJBZ(ContentGrid.DataKeys[ContentGrid.SelectedIndex]["XLXSBJD_BJDID"].ToString().Trim(), "Delete"); + + return base.Master_BeforeDeleteAction(sender, e); + } + + protected override void AfterDelete(TDatabase db, ref bool ActionIsDone) + { + base.AfterDelete(db, ref ActionIsDone); + TSQL tSQL = new TSQL(db); + XLBJDUtils.AfterDeleteBJD(db, tSQL, ContentGrid.DataKeys[ContentGrid.SelectedIndex]["XLXSBJD_BJDID"].ToString().Trim()); + } + + protected override bool Master_AfterDeleteAction(object sender, EventArgs e) + { + if (!base.Master_AfterDeleteAction(sender, e)) return false; + + base.InitEntityByCondition(); + entity.EntityTable.QuerySelSql = GetQuerySql(); + entity.GridDataBind(ContentGrid, tSession); + ContentGrid.SelectedIndex = -1; + return true; + } + + protected override void Master_OnStandardQuery(object sender, EventArgs e) + { + base.InitEntityByCondition(); + base.Master_OnStandardQuery(sender, e); + entity.EntityTable.QuerySelSql = GetQuerySql(); + entity.GridDataBind(ContentGrid, tSession); + } + + protected override void moduleGV_PageIndexChanging(object sender, GridViewPageEventArgs e) + { + base.InitEntityByCondition(); + entity.EntityTable.QuerySelSql = GetQuerySql(); + ContentGrid.SelectedIndex = -1; + base.moduleGV_PageIndexChanging(sender, e); + } + + protected override void moduleGV_RowDataBound(object sender, GridViewRowEventArgs e) + { + if (e.Row.RowType == DataControlRowType.DataRow) + { + string sWPID = e.Row.Cells[0].Text.Trim(); + string sBJFLID = ContentGrid.DataKeys[e.Row.RowIndex]["XLXSBJD_BJFLID"].ToString().Trim(); + if (sBJFLID.Contains("|")) + sBJFLID = sBJFLID.Split('|')[0]; + e.Row.Cells[0].Text = _curWorkFlow.GetWPName("XLXSBJ_BJD", sWPID); + e.Row.Cells[e.Row.Cells.Count - 5].Text = _curWorkFlow.UserInfo.GetUserNames(e.Row.Cells[e.Row.Cells.Count - 5].Text.Trim()); + e.Row.Cells[e.Row.Cells.Count - 4].Text = _curWorkFlow.UserInfo.GetUserNames(e.Row.Cells[e.Row.Cells.Count - 4].Text.Trim()); + if (ContentGrid.DataKeys[e.Row.RowIndex]["XLXSBJD_CLHQJGBID"].ToString().Trim().Equals("ZZZZZZZZ")) + { + e.Row.Cells[6].Text = e.Row.Cells[6].Text.Trim() + ",ZZZZZZZZ|基础材料行情"; + } + else if (ContentGrid.DataKeys[e.Row.RowIndex]["XLXSBJD_CLHQJGBID"].ToString().Trim().Equals("YYYYYYYY")) + { + e.Row.Cells[6].Text = e.Row.Cells[6].Text.Trim() + ",YYYYYYYY|报价单材料行情"; + } + + int iKZSZStart = ContentGrid.Columns.IndexOf(ContentGrid.FindColumnByFieldName("KZSZ01")); + for (int i = 1; i < 5; i++) + { + string sZDM = "KZSZ" + i.ToString().PadLeft(2, '0'); + if (dicFJXSXSBZ.ContainsKey(sZDM)) + { + string sXSBZ = "," + dicFJXSXSBZ[sZDM] + ","; + if (!sXSBZ.Contains("," + sWPID + ",")) + { + e.Row.Cells[iKZSZStart + i - 1].Text = ""; + } + } + if (dicFJXXSYBJFL.ContainsKey(sZDM)) + { + string sSYBJFL = "," + dicFJXXSYBJFL[sZDM] + ","; + if (!sSYBJFL.Contains("," + sBJFLID + ",")) + { + e.Row.Cells[iKZSZStart + i - 1].Text = ""; + } + } + } + + int iKZZFStart = ContentGrid.Columns.IndexOf(ContentGrid.FindColumnByFieldName("KZZF01")); + for (int i = 1; i < 11; i++) + { + string sZDM = "KZZF" + i.ToString().PadLeft(2, '0'); + if (sFJXXSZ.Contains(sZDM)) + e.Row.Cells[iKZZFStart + i - 1].Text = GetZFSelected(sZDM, e.Row.Cells[iKZZFStart + i - 1].Text.Trim()); + if (dicFJXSXSBZ.ContainsKey(sZDM)) + { + string sXSBZ = "," + dicFJXSXSBZ[sZDM] + ","; + if (!sXSBZ.Contains("," + sWPID + ",")) + { + e.Row.Cells[iKZZFStart + i - 1].Text = ""; + } + } + if (dicFJXXSYBJFL.ContainsKey(sZDM)) + { + string sSYBJFL = "," + dicFJXXSYBJFL[sZDM] + ","; + if (!sSYBJFL.Contains("," + sBJFLID + ",")) + { + e.Row.Cells[iKZZFStart + i - 1].Text = ""; + } + } + } + + int iKZRQStart = ContentGrid.Columns.IndexOf(ContentGrid.FindColumnByFieldName("KZRQ01")); + for (int i = 1; i < 5; i++) + { + string sZDM = "KZRQ" + i.ToString().PadLeft(2, '0'); + if (dicFJXSXSBZ.ContainsKey(sZDM)) + { + string sXSBZ = "," + dicFJXSXSBZ[sZDM] + ","; + if (!sXSBZ.Contains("," + sWPID + ",")) + { + e.Row.Cells[iKZRQStart + i - 1].Text = ""; + } + } + if (dicFJXXSYBJFL.ContainsKey(sZDM)) + { + string sSYBJFL = "," + dicFJXXSYBJFL[sZDM] + ","; + if (!sSYBJFL.Contains("," + sBJFLID + ",")) + { + e.Row.Cells[iKZRQStart + i - 1].Text = ""; + } + } + } + + int iKZWBStart = ContentGrid.Columns.IndexOf(ContentGrid.FindColumnByFieldName("KZWB01")); + for (int i = 1; i < 5; i++) + { + string sZDM = "KZWB" + i.ToString().PadLeft(2, '0'); + if (dicFJXSXSBZ.ContainsKey(sZDM)) + { + string sXSBZ = "," + dicFJXSXSBZ[sZDM] + ","; + if (!sXSBZ.Contains("," + sWPID + ",")) + { + e.Row.Cells[iKZWBStart + i - 1].Text = ""; + } + } + if (dicFJXXSYBJFL.ContainsKey(sZDM)) + { + string sSYBJFL = "," + dicFJXXSYBJFL[sZDM] + ","; + if (!sSYBJFL.Contains("," + sBJFLID + ",")) + { + e.Row.Cells[iKZWBStart + i - 1].Text = ""; + } + } + } + + + foreach (string sKey in dicZBLMBJFL.Keys) + { + if (("," + dicZBLMBJFL[sKey] + ",").Contains("," + sBJFLID + ",")) + { + int indexLM = ContentGrid.Columns.IndexOf(ContentGrid.FindColumnByFieldName(sKey)); + e.Row.Cells[indexLM].Text = ""; + } + } + + LinkPageParam.AddString("WFID", ContentGrid.DataKeys[e.Row.RowIndex]["XLXSBJD_WFID"].ToString().Trim()); + LinkPageParam.AddString("WFINST", ContentGrid.DataKeys[e.Row.RowIndex]["XLXSBJD_WFINST"].ToString().Trim()); + LinkPageParam.AddString("XLXSBJD_BJDID", ContentGrid.DataKeys[e.Row.RowIndex]["XLXSBJD_BJDID"].ToString().Trim()); + + } + base.moduleGV_RowDataBound(sender, e); + } + + protected override void BeforeAttach() + { + attDoc.WorkTableName = "XLXSBJD"; + attDoc.UpdCondition = string.Format(" XLXSBJD_BJDID='{0}'", ContentGrid.DataKeys[ContentGrid.SelectedIndex]["XLXSBJD_BJDID"].ToString().Trim()); + + base.BeforeAttach(); + } + + protected override void Master_BeforeAction(TWorkflow Sender, TWFAction Action, ref bool CanAction) + { + base.Master_BeforeAction(Sender, Action, ref CanAction); + string sOption = Sender.GetWPOption(Sender.WFID, Sender.WPID, "生成PDF附件").ToString().Trim(); + if (Action == TWFAction.wfaSubmit) + { + if (sOption.Equals("Y")) + XLBJDInfo.PDFDC(ContentGrid.DataKeys[ContentGrid.SelectedIndex]["XLXSBJD_BJDID"].ToString().Trim()); + } + + } + protected override void Master_wfAfterActionEvent(TWorkflow Sender, TWFAction Action, bool ActionIsDone) + { + base.Master_wfAfterActionEvent(Sender, Action, ActionIsDone); + + if (!ActionIsDone) + return; + string sWPID = ""; + string sBJSQDH = ""; + TSQL SQL = new TSQL(Sender.dbe); + SQL.Clear(); + SQL.Add("select XLXSBJD_WPID,XLXSBJD_BJSQDH,XLXSBJD_BJJSJD,XLXSBJD_ZB from XLXSBJD where XLXSBJD_BJDID=:pBJDID"); + SQL.ParamByName("pBJDID").Value = ContentGrid.DataKeys[ContentGrid.SelectedIndex]["XLXSBJD_BJDID"].ToString().Trim(); + DataSet ds = Sender.dbe.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + sWPID = ds.Tables[0].Rows[0][0].ToString().Trim(); + sBJSQDH = ds.Tables[0].Rows[0][1].ToString().Trim(); + } + string sZDQRWPID = XLBJDUtils.GetXLXSBJPZXX(100860068).XLXSBJPZ_ZDQRWPID; + if (!sZDQRWPID.Equals("")) + { + if (Action == TWFAction.wfaSubmit) + { + if (sZDQRWPID.Contains(sWPID)) + { + SQL.Clear(); + SQL.Add("update XLXSBJD set XLXSBJD_ZDQRRGH=:pZDQRRGH ,XLXSBJD_ZDQRSJ=:pZDQRSJ WHERE XLXSBJD_BJDID=:pBJDID"); + SQL.ParamByName("pZDQRRGH").Value = tSession.UserId; + SQL.ParamByName("pZDQRSJ").Value = CMISproConvert.ConvertTime(DateTime.Now); + SQL.ParamByName("pBJDID").Value = ContentGrid.DataKeys[ContentGrid.SelectedIndex]["XLXSBJD_BJDID"].ToString().Trim(); + Sender.dbe.ExecSQL(SQL); + } + } + } + if (!sBJSQDH.Trim().Equals("") && XLBJDInfo.CheckXSYBJSQ_SS()) + { + string sBJJSJD = ds.Tables[0].Rows[0][2].ToString().Trim(); + string sWPNAME = Sender.GetWPName(Sender.WFID, sWPID); + string sJSJD = tSession.UserName + " " + Sender.WAend.ToString().Trim() + " " + sWPNAME + " " + Sender.GetWFActionName(Action); + if (!sBJJSJD.Equals("")) + sBJJSJD += "\r\n"; + sBJJSJD += sJSJD; + SQL.Clear(); + SQL.Add(" update XLXSBJD set XLXSBJD_BJJSJD = :pJSJD where XLXSBJD_BJDID = :pBJDID "); + SQL.ParamByName("pJSJD").Value = sBJJSJD; + SQL.ParamByName("pBJDID").Value = ContentGrid.DataKeys[ContentGrid.SelectedIndex]["XLXSBJD_BJDID"].ToString().Trim(); + Sender.dbe.ExecSQL(SQL); + } + + SQL.Clear(); + SQL.Add(" update XLXSBJD"); + SQL.Add(" set XLXSBJD_WFID = :XLXSBJD_WFID, "); + SQL.Add(" XLXSBJD_WPID = :XLXSBJD_WPID, "); + SQL.Add(" XLXSBJD_WFAWAITER = :XLXSBJD_WFAWAITER, "); + SQL.Add(" XLXSBJD_WFHANDLER = :XLXSBJD_WFHANDLER, "); + SQL.Add(" XLXSBJD_WFINST = :XLXSBJD_WFINST, "); + SQL.Add(" XLXSBJD_ACTNAME = :XLXSBJD_ACTNAME "); + SQL.Add(" where XLXSBJD_BJDID = :XLXSBJD_BJDID "); + SQL.ParamByName("XLXSBJD_WFID").Value = Sender.WFID; + SQL.ParamByName("XLXSBJD_WFINST").Value = Sender.WFInst; + SQL.ParamByName("XLXSBJD_WPID").Value = Sender.WPID; + SQL.ParamByName("XLXSBJD_WFAWAITER").Value = Sender.Awaiter; + SQL.ParamByName("XLXSBJD_WFHANDLER").Value = Sender.Handler; + SQL.ParamByName("XLXSBJD_ACTNAME").Value = Sender.GetWFActionName(Action); + SQL.ParamByName("XLXSBJD_BJDID").Value = ContentGrid.DataKeys[ContentGrid.SelectedIndex]["XLXSBJD_BJDID"].ToString().Trim(); + Sender.dbe.ExecSQL(SQL); + + string sBJDID = ContentGrid.DataKeys[ContentGrid.SelectedIndex]["XLXSBJD_BJDID"].ToString().Trim(); + string sBJFLID = ContentGrid.DataKeys[ContentGrid.SelectedIndex]["XLXSBJD_BJFLID"].ToString().Trim(); + string sXM = ContentGrid.DataKeys[ContentGrid.SelectedIndex]["XLXSBJD_XMMC"].ToString().Trim(); + string sBJRQ = ContentGrid.DataKeys[ContentGrid.SelectedIndex]["XLXSBJD_BJRQ"].ToString().Trim(); + string sZJE = ContentGrid.DataKeys[ContentGrid.SelectedIndex]["XLXSBJD_ZJE"].ToString().Trim(); + + string sCurZT = TWorkflow.Utils.WFGetBZSWID(Sender.WFID, Sender.WPID); + //若“100860062|销售报价业务配置”项目检索来源为“YXXM|售前项目”且XLXSBJD_XMMC不为空 + if (sCurZT == "ZZZZ") + { + string sPSDH = ""; + bool bINS = false; + XLBJD_BDOBill.InsBJPS(SQL, Sender.dbe, Sender, Action, sBJDID, tSession, "100860000", ref sPSDH, ref bINS); + if (bINS) + { + XLBJD_BDOBill.DispatchtoZZZZ(sPSDH, tSession); + } + + } + if (!sZDQRWPID.Equals("")) + { + if (Action == TWFAction.wfaSubmit) + { + if (sZDQRWPID.Contains(Sender.WPID)) + { + SQL.Clear(); + SQL.Add("update XLXSBJD set XLXSBJD_ZDZDLX=:pZDZDLX WHERE XLXSBJD_BJDID=:pBJDID"); + SQL.ParamByName("pZDZDLX").Value = XLBJD_BDOBill.getZDZDLX(ContentGrid.DataKeys[ContentGrid.SelectedIndex]["XLXSBJD_BJDID"].ToString().Trim()); + SQL.ParamByName("pBJDID").Value = ContentGrid.DataKeys[ContentGrid.SelectedIndex]["XLXSBJD_BJDID"].ToString().Trim(); + Sender.dbe.ExecSQL(SQL); + } + } + } + + + if (sCurZT == "ZZZZ" && !sBJSQDH.Trim().Equals("") && XLBJDInfo.CheckXSYBJSQ_SS()) + { + string sZB = ds.Tables[0].Rows[0][3].ToString().Trim(); + if (sZB.Equals("Y")) + XLBJD_BDOBill.DispatchXLBJSQ(sBJSQDH, "ZZZZ", tSession); + else + XLBJD_BDOBill.DispatchXLBJSQ(sBJSQDH, "0060", tSession); + } + } + + protected override void OnReportUnknownFunction(string Name, string Params, ref string ValueType, ref string Value, TDatabase db) + { + string[] Param; + Param = Params.Split(','); + if (Name.Trim().ToUpper() == "GETCPBJ") + { + ValueType = "N"; + if (Param.Length >= 5) + { + Value = XLBJDUtils.GetCPBJ(Param[0], Param[1], Param[2], Param[3], Param[4]).ToString(); + } + else + { + Value = "0"; + } + } + } + + protected override void Master_wfOnGetParamName(ref List ParamList) + { + base.Master_wfOnGetParamName(ref ParamList); + ParamList.Add("自动撞单"); + } + + protected override void Master_wfOnGetParamEvent(TWorkflow Sender, string ParamName, ref string Value, ref bool Succeess) + { + base.Master_wfOnGetParamEvent(Sender, ParamName, ref Value, ref Succeess); + if (ParamName == "自动撞单") + { + if (ParamName == "自动撞单") + { + if (XLBJD_BDOBill.getZDZDLX(ContentGrid.DataKeys[ContentGrid.SelectedIndex]["XLXSBJD_BJDID"].ToString().Trim()).Equals("")) + { + + Value = "N"; + } + else + { + Value = "Y"; + } + Succeess = true; + } + } + } + + protected override bool ConfirmWFAction(TWFAction Action) + { + if (Action == TWFAction.wfaSubmit) + { + string sBJDID = ContentGrid.DataKeys[ContentGrid.SelectedIndex]["XLXSBJD_BJDID"].ToString().Trim(); + string sWarningMsg = ""; + string sBJFLID = ""; + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add(" SELECT XLXSBJD_BJFLID FROM XLXSBJD WHERE XLXSBJD_BJDID=:pXLXSBJD_BJDID "); + SQL.ParamByName("pXLXSBJD_BJDID").Value = sBJDID; + DataSet data = dberp.OpenDataSet(SQL); + if (data.Tables[0].Rows.Count > 0) + { + sBJFLID = data.Tables[0].Rows[0][0].ToString().Trim(); + } + + BJFLXX bjflxx = XLBJDUtils.GetBJFLXX(sBJFLID); + if (bjflxx.XLXSBJFL_XTCPBJYZ.Trim().Equals("Z") || bjflxx.XLXSBJFL_XTCPBJYZ.Trim().Equals("6")) + { + XLBJD_BDOBill.JudgeDifBJCP(sBJDID, GetOption(100860000,"BJU003"), ref sWarningMsg, bjflxx.XLXSBJFL_XTCPBJYZ.Trim()); + if (!sWarningMsg.Equals("")) + { + Confirm.Register("ask", "显示序号为" + sWarningMsg + "的相同报价产品的报价不同,是否确认提交?"); + Confirm.ShowBtnText = TConfirm.cBtnText.Yes_No; + if (Confirm.GetValue("ask").Trim().Equals("")) + { + Confirm.Ask("ask"); + return false; + } + else if (Confirm.GetValue("ask").Trim().Equals("N")) + { + Confirm.Clear(); + return false; + } + else if (Confirm.GetValue("ask").Trim().Equals("Y")) + { + Confirm.Clear(); + } + } + } + } + return base.ConfirmWFAction(Action); + } + + #endregion + + #region 私有函数 + + private void HidLMByJS() + { + TYGXX tRYXX = TRYXX.GetRYXXByGH(tSession.UserId); + string sXJYROLEID = string.Empty; + string sSJYROLEID = string.Empty; + string sHJYROLEID = string.Empty; + XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860000); + if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_XJYROLEID)) + sXJYROLEID = pzxx.XLXSBJPZ_XJYROLEID; + + if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_SJYROLEID)) + sSJYROLEID = pzxx.XLXSBJPZ_SJYROLEID; + + if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_HJYROLEID)) + sHJYROLEID = pzxx.XLXSBJPZ_HJYROLEID; + + Dictionary dicLMID = new Dictionary(); + dicLMID.Add("txtBZ", "XLXSBJD_BZ"); + + bool IsXJY = CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from USERROLE where URUSERID='{0}' and " + CMISproDataBase.GetWhereEqual("URROLEID", sXJYROLEID), tRYXX.RYID)); + bool IsSJY = CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from USERROLE where URUSERID='{0}' and " + CMISproDataBase.GetWhereEqual("URROLEID", sSJYROLEID), tRYXX.RYID)); + bool IsHJY = CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from USERROLE where URUSERID='{0}' and " + CMISproDataBase.GetWhereEqual("URROLEID", sHJYROLEID), tRYXX.RYID)); + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sSQL = new TSQL(dberp); + sSQL.Clear(); + sSQL.Add("select distinct XLXSBJFLJSLM_BJFLID,XLXSBJFLJSLM_LMID from XLXSBJFLJSLM where XLXSBJFLJSLM_YCBZ='Y' and XLXSBJFLJSLM_LMLX='W' "); + if(IsXJY||IsSJY||IsHJY) + { + sSQL.Add(" and ( 1<>1 "); + if(IsXJY) + sSQL.Add(" or XLXSBJFLJSLM_JSLX='X' "); + if (IsSJY) + sSQL.Add(" or XLXSBJFLJSLM_JSLX='S' "); + if (IsHJY) + sSQL.Add(" or XLXSBJFLJSLM_JSLX='H' "); + sSQL.Add(" ) "); + + } + else + { + sSQL.Add(" and XLXSBJFLJSLM_JSLX='Q' "); + } + DataSet ds = dberp.OpenDataSet(sSQL); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + string sBJFLID = ds.Tables[0].Rows[i]["XLXSBJFLJSLM_BJFLID"].ToString().Trim(); + string sLMID = ds.Tables[0].Rows[i]["XLXSBJFLJSLM_LMID"].ToString().Trim(); + if (dicLMID.ContainsKey(sLMID)) + { + sLMID = dicLMID[sLMID]; + if (!dicZBLMBJFL.ContainsKey(sLMID)) + dicZBLMBJFL.Add(sLMID, sBJFLID); + else + dicZBLMBJFL[sLMID] += "," + sBJFLID; + } + + } + + } + + //设置附加信息是否显示 + private void SetFJXX() + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sSQL = new TSQL(dberp); + sSQL.Clear(); + sSQL.Add("select XLXSBJKZXXSZ_MC, XLXSBJKZXXSZ_DYZD from XLXSBJKZXXSZ where isnull(XLXSBJKZXXSZ_LBXS,'N') = 'Y' order by XLXSBJKZXXSZ_BH"); + DataSet ds = dberp.OpenDataSet(sSQL); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + ContentGrid.FindColumnByFieldName(ds.Tables[0].Rows[i][1].ToString().Trim()).Visible = true; + ContentGrid.FindColumnByFieldName(ds.Tables[0].Rows[i][1].ToString().Trim()).HeaderText = ds.Tables[0].Rows[i][0].ToString().Trim(); + } + } + + //加载选择类型的字符数据 + private string GetZFSelected(string sZDM, string sValue) + { + string sResult = sValue; + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sSQL = new TSQL(dberp); + sSQL.Clear(); + sSQL.Add("select XLXSBJKZXXSZ_MJSQL, XLXSBJKZXXSZ_SRFS from XLXSBJKZXXSZ "); + sSQL.Add("where XLXSBJKZXXSZ_DYZD = :pDYZD "); + sSQL.Add(" and rtrim(convert(varchar(4000),isnull(XLXSBJKZXXSZ_MJSQL ,' ')))||' ' <> ' ' and isnull(XLXSBJKZXXSZ_SRFS,' ') <> 'A' "); + sSQL.ParamByName("pDYZD").Value = sZDM.Trim(); + DataSet ds = dberp.OpenDataSet(sSQL); + if (ds.Tables[0].Rows.Count > 0) + { + sValue = "," + sValue + ","; + sResult = ""; + string sMJSQL = ds.Tables[0].Rows[0][0].ToString().Trim(); + string sSRFS = ds.Tables[0].Rows[0][1].ToString().Trim(); + sSQL.Clear(); + sSQL.Add(sMJSQL); + DataSet dsResult = dberp.OpenDataSet(sSQL); + if (sSRFS.Trim().Equals("B")) + { + for (int i = 0; i < dsResult.Tables[0].Rows.Count; i++) + { + if (sValue.Trim().Contains("," + dsResult.Tables[0].Rows[i][0].ToString().Trim() + ",")) + { + sResult += dsResult.Tables[0].Rows[i][0].ToString().Trim() + "|" + dsResult.Tables[0].Rows[i][1].ToString().Trim(); + break; + } + } + } + else + { + for (int i = 0; i < dsResult.Tables[0].Rows.Count; i++) + { + if (sValue.Trim().Contains("," + dsResult.Tables[0].Rows[i][0].ToString().Trim() + ",")) + { + sResult += dsResult.Tables[0].Rows[i][1].ToString().Trim() + ","; + } + } + } + sResult = sResult.TrimEnd(','); + } + return sResult; + } + + private string GetQuerySql() + { + SetFJXX(); + string sSQL = " select XLXSBJD_BJDID, case when isnull(XLXSBJFL_BJFLID,' ')=' ' then XLXSBJD_BJFLID else rtrim(XLXSBJD_BJFLID)||'|'||XLXSBJFL_BJFLMC end as XLXSBJD_BJFLID," + + " case isnull(XLXSBJD_JGBID,' ') when ' ' then ' ' else rtrim(XLXSBJD_JGBID)||'|'||XLXSJGB_JGBMC end as XSJGB,XLXSBJD_TJ,XLXSBJD_LJ,XLXSBJD_CLHQJGBID,"; + bool bXScbxKHID = XSCBXKHID(); + if (bXScbxKHID) + sSQL += " case isnull(XLXSBJD_KHID,' ') when ' ' then rtrim(XLXSBJD_SYDWID)||'|'||GS_GSMC else rtrim(XLXSBJD_KHID)||'|'||KH_MC end as XHDW,"; + else + sSQL += " case isnull(XLXSBJD_SYDWID,' ') when ' ' then ' ' else rtrim(XLXSBJD_SYDWID)||'|'||GS_GSMC end as XHDW,"; + + sSQL += " case isnull(XLXSBJD_XSBMID,' ') when ' ' then ' ' else rtrim(XLXSBJD_XSBMID)||'|'||BM_MC end as XSBM,XLXSBJD_FKSM," + + " case isnull(XLXSBJD_XSQYID,' ') when ' ' then ' ' else rtrim(XLXSBJD_XSQYID)||'|'||XSQY_XSQYMC end as XSQY, " + + " XLXSBJD_TXY, XLXSBJD_KH, XLXSBJD_KHLXR, XLXSBJD_LXDH, XLXSBJD_CZ, XLXSBJD_XMMC, XLXSBJD_XXDZ, XLXSBJD_BZ,XLXSBJD_ZJE,XLXSBJD_LRL, " + + " XLXSBJD_BJRQ, XLXSBJD_XSJLMC,XLXSBJD_CZJSXY,XLXSBJD_KHDH,XLXSBJD_LRL,XLXSBJD_ZDXJJCL,XLXSBJD_SQR, " + + " XLXSBJD_FKQXNR,XLXSBJD_FKRQ,case when isnull(XLXSBJD_ZDQRRGH,' ')<>' ' then 'Y' else 'N' end as ZDFXYQR," + + " case isnull(XLXSBJD_ZBZT,' ') when 'Y' then '全部中标' when 'P' then '部分中标' when 'N' then '未中标' when 'F' then '废标' when 'Q' then '弃标' else ' ' end as FKJG, " + + " XLXSBJKZXX_KZSZ01 as KZSZ01, XLXSBJKZXX_KZSZ02 as KZSZ02, XLXSBJKZXX_KZSZ03 as KZSZ03, XLXSBJKZXX_KZSZ04 as KZSZ04, XLXSBJKZXX_KZSZ05 as KZSZ05, " + + " XLXSBJKZXX_KZZF01 as KZZF01, XLXSBJKZXX_KZZF02 as KZZF02, XLXSBJKZXX_KZZF03 as KZZF03, XLXSBJKZXX_KZZF04 as KZZF04, XLXSBJKZXX_KZZF05 as KZZF05, " + + " XLXSBJKZXX_KZZF06 as KZZF06, XLXSBJKZXX_KZZF07 as KZZF07, XLXSBJKZXX_KZZF08 as KZZF08, XLXSBJKZXX_KZZF09 as KZZF09, XLXSBJKZXX_KZZF10 as KZZF10, " + + " XLXSBJKZXX_KZRQ01 as KZRQ01, XLXSBJKZXX_KZRQ02 as KZRQ02, XLXSBJKZXX_KZRQ03 as KZRQ03, XLXSBJKZXX_KZRQ04 as KZRQ04, XLXSBJKZXX_KZRQ05 as KZRQ05, " + + " XLXSBJKZXX_KZWB01 as KZWB01, XLXSBJKZXX_KZWB02 as KZWB02, XLXSBJKZXX_KZWB03 as KZWB03, XLXSBJKZXX_KZWB04 as KZWB04, XLXSBJKZXX_KZWB05 as KZWB05, " + + " XLXSBJD_DOCGRPID,XLXSBJD_FJS,XLXSBJD_WHR, XLXSBJD_WHRID, XLXSBJD_WHSJ, XLXSBJD_WFID, XLXSBJD_WFINST, XLXSBJD_WPID, XLXSBJD_WFAWAITER, XLXSBJD_WFHANDLER, XLXSBJD_ACTNAME " + + " from XLXSBJD " + + " left join XLXSBJKZXX on XLXSBJKZXX_BJDID = XLXSBJD_BJDID " + + " left join GS on GS_SYDWID=XLXSBJD_SYDWID" + + " left join BM on BM_BMID=XLXSBJD_XSBMID" + + " left join XLXSBJFL on XLXSBJD_BJFLID=XLXSBJFL_BJFLID" + + " left join XSQY on XSQY_XSQYID=XLXSBJD_XSQYID" + + " left join KH on KH_KHID=XLXSBJD_KHID" + + " left join XLXSJGB on XLXSJGB_JGBID=XLXSBJD_JGBID and XLXSJGB_MXBH in ('JGB','JGE')" + + " where 1=1 " + + " and isnull(XLXSBJD_YWLX,' ') = ' ' "; + switch (CurQueryEntity.FieldByName("SW").Value.Trim()) + { + case "W": + sSQL += "\r\n and " + _curWorkFlow.GetWhereAgent("XLXSBJ_BJD", tSession.UserId, "XLXSBJD_WFAWAITER", "XLXSBJD_WFID", "XLXSBJD_WPID"); + break; + case "H": + sSQL += "\r\n and XLXSBJD_WFHANDLER LIKE :XLXSBJD_WFHANDLER "; + entity.Param.Add("XLXSBJD_WFHANDLER", "%," + tSession.UserId + ",%"); + break; + case "A": + break; + } + if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("WFAWAITER").Value.Trim())) + { + sSQL += " \r\n and XLXSBJD_WFAWAITER like :pWFAWITER "; + entity.Param.Add("pWFAWITER", string.Format("%,{0},%", CurQueryEntity.FieldByName("WFAWAITER").Value.Trim())); + } + if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("STATE").Value.Trim())) + { + sSQL += "\r\n and " + CMISproDataBase.GetWhereEqual("XLXSBJD_WPID", CurQueryEntity.FieldByName("STATE").Value.Trim()); + } + if (!CurQueryEntity.FieldByName("XHDW").Value.Trim().Equals("")) + { + sSQL += "\r\n and (GS_GSMC like :pXHDW or KH_MC like :pXHDW) "; + entity.Param.Add("pXHDW", "%" + CurQueryEntity.FieldByName("XHDW").Value.Trim() + "%"); + } + if (!CurQueryEntity.FieldByName("XSBM").Value.Trim().Equals("")) + { + sSQL += "\r\n and " + CMISproDataBase.GetWhereEqual("XLXSBJD_XSBMID", CurQueryEntity.FieldByName("XSBM").Value.Trim()); + } + if (!string.IsNullOrEmpty(GetOption(100860000,"HJU006").Trim())) + { + sSQL += " and (" + CMISproDataBase.GetWhereEqual("XLXSBJD_XSBMID", GetOption(100860000,"HJU006").Trim()); + sSQL += " or isnull(XLXSBJD_XSBMID, ' ') = ' ')"; + } + if (!CurQueryEntity.FieldByName("TXY").Value.Trim().Equals("")) + { + sSQL += "\r\n and (XLXSBJD_TXY = :pTXY) "; + entity.Param.Add("pTXY", CurQueryEntity.FieldByName("TXY").Value.Trim()); + } + if (!CurQueryEntity.FieldByName("KH").Value.Trim().Equals("")) + { + sSQL += "\r\n and (XLXSBJD_KH like :pKH) "; + entity.Param.Add("pKH", "%" + CurQueryEntity.FieldByName("KH").Value.Trim() + "%"); + } + if (!CurQueryEntity.FieldByName("SQRGH").Value.Trim().Equals("")) + { + sSQL+=" and " + CMISproDataBase.GetWhereEqual("XLXSBJD_SQRGH", CurQueryEntity.FieldByName("SQRGH").Value.Trim()); + } + if (!CurQueryEntity.FieldByName("XM").Value.Trim().Equals("")) + { + sSQL += "\r\n and " + CMISproDataBase.GetWhereLike("XLXSBJD_XMMC", CurQueryEntity.FieldByName("XM").Value.Trim()); + } + if (!CurQueryEntity.FieldByName("BJDID").Value.Trim().Equals("")) + { + sSQL += "\r\n and XLXSBJD_BJDID like :pBJDID "; + entity.Param.Add("pBJDID", "%" + CurQueryEntity.FieldByName("BJDID").Value.Trim() + "%"); + } + if (!CurQueryEntity.FieldByName("BJFLID").Value.Trim().Equals("")) + { + sSQL += "\r\n and XLXSBJD_BJFLID = :pBJFLID "; + entity.Param.Add("pBJFLID", CurQueryEntity.FieldByName("BJFLID").Value.Trim()); + } + if (!CurQueryEntity.FieldByName("BJBZ").Value.Trim().Equals("")) + { + sSQL += "\r\n and XLXSBJD_BZ like :pBJBZ "; + entity.Param.Add("pBJBZ",'%'+CurQueryEntity.FieldByName("BJBZ").Value.Trim()+'%'); + } + if (!CurQueryEntity.FieldByName("KHDH").Value.Trim().Equals("")) + { + sSQL += "\r\n and XLXSBJD_KHDH like :pKHDH "; + entity.Param.Add("pKHDH", '%' + CurQueryEntity.FieldByName("KHDH").Value.Trim() + '%'); + } + //报价金额 + if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("BJZJES").Value.Trim()) && !CurQueryEntity.FieldByName("BJZJES").Value.Trim().Equals("0")) + { + sSQL +="\r\n and XLXSBJD_ZJE >=:pBJZJES "; + entity.Param.Add("pBJZJES", CMISproConvert.StrToFloat(CurQueryEntity.FieldByName("BJZJES").Value.Trim(),0)); + + } + if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("BJZJEZ").Value.Trim()) && !CurQueryEntity.FieldByName("BJZJEZ").Value.Trim().Equals("0")) + { + sSQL += "\r\n and XLXSBJD_ZJE <=:pBJZJEZ "; + entity.Param.Add("pBJZJEZ", CMISproConvert.StrToFloat(CurQueryEntity.FieldByName("BJZJEZ").Value.Trim(), 0)); + + } + + if (CurQueryEntity.FieldByName("ZCJHSCQK").Value.Trim() == "已生成") + { + sSQL += "and exists(select 1 from XLZCJH where XLZCJH_YWDH=XLXSBJD_BJDID )"; + } + else if (CurQueryEntity.FieldByName("ZCJHSCQK").Value.Trim() == "未生成") + { + sSQL += "and not exists(select 1 from XLZCJH where XLZCJH_YWDH=XLXSBJD_BJDID )"; + } + + if (!string.IsNullOrEmpty(GetOption(100860000,"BJU012").Trim())) + { + sSQL += " and (" + CMISproDataBase.GetWhereEqual("XLXSBJD_BJFLID", GetOption(100860000,"BJU012").Trim()); + sSQL += " or isnull(XLXSBJD_BJFLID, ' ') = ' ')"; + } + if (CurQueryEntity.FieldByName("ZDFXYQR").Value.ToUpper().Trim().Equals("TRUE")) + { + sSQL += " and isnull(XLXSBJD_ZDQRRGH,' ')<>' ' "; + } + if (CurQueryEntity.FieldByName("JCFZCS").Value.ToUpper().Trim().Equals("TRUE")) + { + sSQL += " and isnull(XLXSBJD_FZBZ,'N') ='Y' "; + } + if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("FKJG").Value.Trim())) + { + sSQL += "\r\n and " + CMISproDataBase.GetWhereEqual("XLXSBJD_ZBZT", CurQueryEntity.FieldByName("FKJG").Value.Trim()); + } + sSQL += CMISproDataBase.GetTimeConditionSQL("XLXSBJD_BJRQ", + CurQueryEntity.FieldByName("BJRQS").Value.ToString().Trim(), + CurQueryEntity.FieldByName("BJRQZ").Value.ToString().Trim(), + DateTimeType.dtDate, DateTimeType.dtDate); + sSQL += CMISproDataBase.GetTimeConditionSQL("XLXSBJD_WHSJ", + CurQueryEntity.FieldByName("WHSJS").Value.ToString().Trim(), + CurQueryEntity.FieldByName("WHSJZ").Value.ToString().Trim(), + DateTimeType.dtTime, DateTimeType.dtTime); + sSQL += CMISproDataBase.GetTimeConditionSQL("XLXSBJD_FKRQ", + CurQueryEntity.FieldByName("FKRQS").Value.ToString().Trim(), + CurQueryEntity.FieldByName("FKRQZ").Value.ToString().Trim(), + DateTimeType.dtDate, DateTimeType.dtDate); + for (int i = 1; i <= 5; i++) + { + string fieldNumber = i.ToString().PadLeft(2, '0'); + string fieldName = "KZSZ" + fieldNumber; + + string fieldValue = CurQueryEntity.FieldByName(fieldName).Value.ToString().Trim(); + if (!string.IsNullOrEmpty(fieldValue) && fieldValue != "0") + { + string paramName = "pKZSZ" + fieldNumber; + sSQL+=string.Format(" and isnull(XLXSBJKZXX_KZSZ{0},0) = :{1} ", + fieldNumber, + paramName); + + entity.Param.Add(paramName, CMISproConvert.StrToFloat(fieldValue)); + } + } + + for (int i = 1; i <= 10; i++) + { + string fieldNumber = i.ToString().PadLeft(2, '0'); + string fieldName = "KZZF" + fieldNumber+"1"; + + string fieldValue = CurQueryEntity.FieldByName(fieldName).Value.ToString().Trim(); + if (!string.IsNullOrEmpty(fieldValue)) + { + string paramName = "p" + fieldName; + sSQL += string.Format(" and isnull(XLXSBJKZXX_KZZF{0},' ') like :{1} ", + fieldNumber, + paramName); + + entity.Param.Add(paramName, "%" + fieldValue+"%" ); + } + } + + for (int i = 1; i <= 10; i++) + { + string fieldNumber = i.ToString().PadLeft(2, '0'); + string fieldName = "KZZF" + fieldNumber + "2"; + + string fieldValue = CurQueryEntity.FieldByName(fieldName).Value.ToString().Trim(); + if (!string.IsNullOrEmpty(fieldValue)) + { + string paramName = "p" + fieldName; + sSQL += string.Format(" and ','||Rtrim(isnull(XLXSBJKZXX_KZZF{0},' '))||',' like :{1} ", + fieldNumber, + paramName); + + entity.Param.Add(paramName, "%," + fieldValue + ",%"); + } + } + + for (int i = 1; i <= 5; i++) + { + string fieldNumber = i.ToString().PadLeft(2, '0'); + string fieldName = "KZWB" + fieldNumber; + + string fieldValue = CurQueryEntity.FieldByName(fieldName).Value.ToString().Trim(); + if (!string.IsNullOrEmpty(fieldValue)) + { + string paramName = "pKZWB" + fieldNumber; + sSQL += string.Format(" and isnull(XLXSBJKZXX_KZWB{0},' ') like :{1} ", + fieldNumber, + paramName); + + entity.Param.Add(paramName, "%" + fieldValue + "%"); + } + } + + for (int i = 1; i <= 5; i++) + { + string fieldNumber = i.ToString().PadLeft(2, '0'); + string fieldName = "KZRQ" + fieldNumber; + + sSQL+=CMISproDataBase.GetTimeConditionSQL("XLXSBJKZXX_KZRQ"+fieldNumber, CurQueryEntity.FieldByName(fieldName + "S").Value.Trim(), CurQueryEntity.FieldByName(fieldName+"Z").Value.Trim(), DateTimeType.dtDate, DateTimeType.dtDate); + } + + if (CurQueryEntity.FieldByName("PXFS").Value.Trim().Equals("报价单号倒序↓")) + { + sSQL += " order by XLXSBJD_BJDID desc "; + } + else if (CurQueryEntity.FieldByName("PXFS").Value.Trim().Equals("报价单号正序↑")) + { + sSQL += " order by XLXSBJD_BJDID "; + } + else if (CurQueryEntity.FieldByName("PXFS").Value.Trim().Equals("报价日期倒序↓")) + { + sSQL += " order by XLXSBJD_BJRQ DESC, XLXSBJD_BJDID DESC "; + } + else if (CurQueryEntity.FieldByName("PXFS").Value.Trim().Equals("报价日期正序↑")) + { + sSQL += " order by XLXSBJD_BJRQ, XLXSBJD_BJDID "; + } + else + { + sSQL += " order by XLXSBJD_BJRQ, XLXSBJD_BJDID "; + } + return sSQL; + } + + //判断模块是否存在并且是否有权限 + private bool CheckModule(string sUMID) + { + int iUMID = CMISproConvert.StrToInt(sUMID); + UserRight UR = OpRightUtils.GetUserRight(tSession.UserId, iUMID); + return (DSActiveModule.IsActiveModule(iUMID) && UR.Open); + } + + private bool XSCBXKHID() + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + //客户ID + XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860000); + + //销售报价业务配置“客户检索来源”为“KH|客户”、且“新增客户要求”为“报价前维护”时,txtKHID显示,cbxKHID不显示 + if (pzxx.XLXSBJPZ_KHJSLY == "KH" && pzxx.XLXSBJPZ_XZKHYQ == "Q") + return false; + + return true; + } + + #endregion + + protected void btnCopyEx_Click(object sender, EventArgs e) + { + if (ContentGrid.SelectedIndex == -1) + { + ShowMessage("请选择处理记录!"); + return; + } + TPageParams pageParams = new TPageParams(); + pageParams.UrlPath = this.sURLTarget; + pageParams.CallAction = TPageCallAction.pcaCopy; + pageParams.AddString("CopyFromList", "Y"); + pageParams.AddString("WFID", ContentGrid.DataKeys[ContentGrid.SelectedIndex]["XLXSBJD_WFID"].ToString().Trim()); + pageParams.AddString("WFINST", ContentGrid.DataKeys[ContentGrid.SelectedIndex]["XLXSBJD_WFINST"].ToString().Trim()); + pageParams.AddString("XLXSBJD_BJDID", ContentGrid.DataKeys[ContentGrid.SelectedIndex]["XLXSBJD_BJDID"].ToString().Trim()); + OpenDialog(pageParams); + } + + protected void btnGRWJGRefer_Click(object sender, EventArgs e) + { + int tmpIndex = ContentGrid.SelectedIndex; + moduleGV_PageIndexChanging(null, null); + ContentGrid.SelectedIndex = tmpIndex; + } + + protected void btnZBZT_Click(object sender, EventArgs e) + { + Confirm.Register("ask", "将更新报价单反馈结果历史数据,是否确认?"); + Confirm.ShowBtnText = TConfirm.cBtnText.Yes_No; + if (Confirm.GetValue("ask").Trim().Equals("")) + { + Confirm.Ask("ask"); + return; + } + else if (Confirm.GetValue("ask").Trim().Equals("N")) + { + Confirm.Clear(); + return; + } + else if (Confirm.GetValue("ask").Trim().Equals("Y")) + { + Confirm.Clear(); + } + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add(" merge into XLXSBJD tag "); + SQL.Add(" using( "); + SQL.Add(" select XLXSBJDMX_BJDID as BJDID,case when ZMXSL=ZBMXSL then 'Y' when (isnull(ZBMXSL,0)+isnull(PBMXSL,0))>0 then 'P' "); + SQL.Add(" when (ZMXSL<>isnull(FBMXSL,0) and ZMXSL<>isnull(QBMXSL,0) AND WZBMXSL = ZMXSL) then 'N' "); + SQL.Add(" when ZMXSL=FBMXSL then 'F' when ZMXSL=QBMXSL then 'Q' else ' ' end as FKJG "); + SQL.Add(" from "); + SQL.Add(" (SELECT XLXSBJDMX_BJDID,count(1) as ZMXSL,sum(case when isnull(XLXSBJDMX_ZB,' ')='Y' then 1 else 0 end) as ZBMXSL, "); + SQL.Add(" sum(case when isnull(XLXSBJDMX_ZB,' ')='P' then 1 else 0 end) as PBMXSL, "); + SQL.Add(" sum(case when isnull(XLXSBJDMX_ZB,' ') in ('N','F','Q') then 1 else 0 end) as WZBMXSL, "); + SQL.Add(" sum(case when isnull(XLXSBJDMX_ZB,' ')='F' then 1 else 0 end) as FBMXSL, "); + SQL.Add(" sum(case when isnull(XLXSBJDMX_ZB,' ')='Q' then 1 else 0 end) as QBMXSL "); + SQL.Add(" from XLXSBJDMX "); + SQL.Add(" left join XLXSBJD on XLXSBJD_BJDID = XLXSBJDMX_BJDID "); + SQL.Add(" where isnull(XLXSBJD_ZBZT,' ') = ' ' "); + SQL.Add(" group by XLXSBJDMX_BJDID) ZBA "); + SQL.Add(" ) sor "); + SQL.Add(" on(XLXSBJD_BJDID = sor.BJDID and isnull(XLXSBJD_ZBZT,' ') = ' ') "); + SQL.Add(" when matched then update set XLXSBJD_ZBZT = sor.FKJG "); + dberp.ExecSQL(SQL); + ShowMessage("更新成功!"); + } + } +} diff --git a/XLBJDList.aspx.designer.cs b/XLBJDList.aspx.designer.cs new file mode 100644 index 0000000..569dcf7 --- /dev/null +++ b/XLBJDList.aspx.designer.cs @@ -0,0 +1,43 @@ +//------------------------------------------------------------------------------ +// +// 此代码由工具生成。 +// 运行时版本:2.0.50727.9179 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// +//------------------------------------------------------------------------------ + +namespace GThinking.U20261363_N_XLXSBJ { + + + /// + /// XLBJDList 类。 + /// + /// + /// 自动生成的类。 + /// + public partial class XLBJDList { + + /// + /// ContentGrid 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtGridView ContentGrid; + + /// + /// Master 属性。 + /// + /// + /// 自动生成的属性。 + /// + public new GThinking.N_MODEL.Page.MasterSingleGrid Master { + get { + return ((GThinking.N_MODEL.Page.MasterSingleGrid)(base.Master)); + } + } + } +} diff --git a/XLBJDQuery.aspx b/XLBJDQuery.aspx new file mode 100644 index 0000000..7952042 --- /dev/null +++ b/XLBJDQuery.aspx @@ -0,0 +1,690 @@ +<%@ Page Language="C#" MasterPageFile="~/N_MODEL/Page/MasterSingleQuery.Master" AutoEventWireup="True" + Codebehind="XLBJDQuery.aspx.cs" Inherits="GThinking.U20261363_N_XLXSBJ.XLBJDQuery" Title="查询" %> + +<%@ MasterType VirtualPath="~/N_MODEL/Page/MasterSingleQuery.Master" %> + + + + + + 事务: + + + + + + + + + + 待处理人: + + + + + + + + + + 流程状态: + + + + + + + + + 报价分类: + + + + + + + + + + 报价单号: + + + + + + + + + 报价日期始: + + + + + + + + + 报价日期止: + + + + + + + + + 申请人: + + + + + + + + + + 销售单位: + + + + + + + + + 销售部门: + + + + + + + + + + 销售员: + + + + + + + + + + 客户: + + + + + + + + + 项目: + + + + + + + + + 报价总金额始: + + + + + + + + + 报价总金额止: + + + + + + + + + 排序方式: + + + + + + + + + + 报价备注: + + + + + + + + + 维护时间始: + + + + + + + + + 维护时间止: + + + + + + + + + 反馈日期始: + + + + + + + + + 反馈日期止: + + + + + + + + + 反馈结果: + + + + + + + + + + 客户单号: + + + + + + + + + + 主材计划生成情况: + + + + + + + + + + + + + + + + + + + + + + + + + + + 扩展数值01: + + + + + + + + + 扩展数值02: + + + + + + + + + 扩展数值03: + + + + + + + + + 扩展数值04: + + + + + + + + + 扩展数值05: + + + + + + + + + 扩展字符01: + + + + + + + + + 扩展字符01: + + + + + + + + + + 扩展字符02: + + + + + + + + + 扩展字符02: + + + + + + + + + + 扩展字符03: + + + + + + + + + 扩展字符03: + + + + + + + + + + 扩展字符04: + + + + + + + + + 扩展字符04: + + + + + + + + + + 扩展字符05: + + + + + + + + + 扩展字符05: + + + + + + + + + + 扩展字符06: + + + + + + + + + 扩展字符06: + + + + + + + + + + 扩展字符07: + + + + + + + + + 扩展字符07: + + + + + + + + + + 扩展字符08: + + + + + + + + + 扩展字符08: + + + + + + + + + + 扩展字符09: + + + + + + + + + + 扩展字符09: + + + + + + + + + + 扩展字符10: + + + + + + + + + 扩展字符10: + + + + + + + + + + 扩展日期01始: + + + + + + + + + 扩展日期01止: + + + + + + + + + 扩展日期02始: + + + + + + + + + 扩展日期02止: + + + + + + + + + 扩展日期03始: + + + + + + + + + 扩展日期03止: + + + + + + + + + 扩展日期04始: + + + + + + + + + 扩展日期04止: + + + + + + + + + 扩展日期05始: + + + + + + + + + 扩展日期05止: + + + + + + + + + 扩展文本01: + + + + + + + + + + 扩展文本02: + + + + + + + + + + 扩展文本03: + + + + + + + + + + 扩展文本04: + + + + + + + + + + 扩展文本05: + + + + + + + diff --git a/XLBJDQuery.aspx.cs b/XLBJDQuery.aspx.cs new file mode 100644 index 0000000..31a91c3 --- /dev/null +++ b/XLBJDQuery.aspx.cs @@ -0,0 +1,587 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; +using GThinking.N_MODEL.Page; +using GThinking.N_MISPRO.Utility; +using GThinking.N_MISPRO.Data; +using GThinking.N_WORKFLOW; +using GThinking.N_PUBLIC; +using GThinking.N_MODEL.Dialog; +using GThinking.N_CONTROL; +using System.Text; +using GThinking.N_MISPRO.TableCache; + +namespace GThinking.U20261363_N_XLXSBJ +{ + public partial class XLBJDQuery : SingleQueryBase + { + XLBJD_M queryentity = new XLBJD_M(); + + #region 页面初始化 + + protected void Page_Load(object sender, EventArgs e) + { + this.UMID = 100860174; + this.UMName = "查询"; + this.CurMaster = Master; + this.CurQueryTable = QueryTalbe; + this.CurQueryEntity = queryentity; + + if (!IsPostBack) + { + InitControl(); + } + + base.InitPage(); + + + } + + #endregion + + #region 私有函数 + + private void InitControl() + { + WorkFlowUtils.SetCombox_WFSW(this.UMID, tSession, cbxSW); + TRYXX.SetComboBox_GH(cbxDCLR, "", true, true); + WorkFlowUtils.SetCheckedDropDownList_WFPROC("XLXSBJ_BJD", cbxWFState); + + string sSQL = string.Format("select XLXSBJFL_BJFLID,case isnull(XLXSBJFL_TYBZ,' ') when 'Y' then rtrim(XLXSBJFL_BJFLMC)||'(停用)' else XLXSBJFL_BJFLMC end as Name from XLXSBJFL where 1 = 1 "); + if (!string.IsNullOrEmpty(GetOption(100860000,"BJU012").Trim())) + { + sSQL += " and (" + CMISproDataBase.GetWhereEqual("XLXSBJFL_BJFLID", GetOption(100860000,"BJU012").Trim()); + sSQL += " or isnull(XLXSBJFL_BJFLID, ' ') = ' ')"; + } + sSQL += " order by XLXSBJFL_XSXH,XLXSBJFL_BJFLID "; + TComboBox.SetComboBox("DBERP", cbxBJFLID, sSQL, true); + + cbxPXFS.ClearItems(); + cbxPXFS.Items.Add(new ListItem("报价单号倒序↓", "报价单号倒序↓")); + cbxPXFS.Items.Add(new ListItem("报价单号正序↑", "报价单号正序↑")); + cbxPXFS.Items.Add(new ListItem("报价日期倒序↓", "报价日期倒序↓")); + cbxPXFS.Items.Add(new ListItem("报价日期正序↑", "报价日期正序↑")); + cbxFKJG.ClearItems(); + cbxFKJG.Items.Add(new ListItem("全部中标", "Y")); + cbxFKJG.Items.Add(new ListItem("部分中标", "P")); + cbxFKJG.Items.Add(new ListItem("未中标", "N")); + cbxFKJG.Items.Add(new ListItem("废标", "F")); + cbxFKJG.Items.Add(new ListItem("弃标", "Q")); + cbxFKJG.ShowValue = false; + + cbxZCJH.ClearItems(); + cbxZCJH.Items.Add(new ListItem("全部", "")); + cbxZCJH.Items.Add(new ListItem("未生成", "未生成")); + cbxZCJH.Items.Add(new ListItem("已生成", "已生成")); + cbxZCJH.ShowValue = false; + + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + sql.Clear(); + sql.Add("select XSY_TXY,XSY_ZJM from XSY where 1=1 order by XSY_ZJM"); + DataSet ds = dberp.OpenDataSet(sql); + cbxTXY.ClearItems(); + if (ds.Tables[0].Rows.Count > 0) + { + cbxTXY.Items.Add(new ListItem("", "")); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + string sTXY = ds.Tables[0].Rows[i][0].ToString().Trim(); + string sZJM = ds.Tables[0].Rows[i][1].ToString().Trim(); + if (sZJM.Equals("")) + sZJM = CMISproConvert.ConvertZJM(sTXY).Trim(); + cbxTXY.Items.Add(new ListItem(sZJM + "|" + sTXY, sTXY)); + } + } + + sql.Clear(); + ds.Clear(); + sql.Add(" SELECT BM_BMID,BM_MC FROM BM where 1=1 "); + if (!string.IsNullOrEmpty(GetOption(100860000,"HJU006").Trim())) + { + sql.Add(" and " + CMISproDataBase.GetWhereEqual("BM_BMID", GetOption(100860000,"HJU006").Trim())); + } + sql.Add(" order by BM_BMID "); + ds = dberp.OpenDataSet(sql); + cbxXSBM.ClearItems(); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + string sID = ds.Tables[0].Rows[i]["BM_BMID"].ToString().Trim(); + string sName = ds.Tables[0].Rows[i]["BM_MC"].ToString().Trim(); + cbxXSBM.Items.Add(new ListItem(sName, sID)); + } + + sql.Clear(); + sql.Add(@"select distinct XLXSBJD_SQRGH,XLXSBJD_SQR,isnull(RSRYJBXX_PYBM,' ') as PYBM from XLXSBJD + left join RSRYJBXX on RSRYJBXX_RYID=XLXSBJD_SQRID + order by XLXSBJD_SQRGH"); + ds = dberp.OpenDataSet(sql); + cbxSQR.ClearItems(); + if (ds.Tables[0].Rows.Count > 0) + { + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + string sSQRGH = ds.Tables[0].Rows[i]["XLXSBJD_SQRGH"].ToString().Trim(); + string sSQR = ds.Tables[0].Rows[i]["XLXSBJD_SQR"].ToString().Trim(); + string sZJM = ds.Tables[0].Rows[i]["PYBM"].ToString().Trim(); + if(sZJM.Equals("")) + sZJM = CMISproConvert.ConvertZJM(sSQR).Trim(); + cbxSQR.Items.Add(new ListItem(sZJM + "|" + sSQR + "|" + sSQRGH, sSQRGH)); + } + } + chkZDFXYQR.Visible = false; + if (CheckModule("100860068")) + chkZDFXYQR.Visible = true; + LoadKZXXFZ(); + } + + private void LoadKZXXFZ() + { + + string sZDM = "";//使用字段 + string sMC = "";//附加信息名称 + string sSRFS = "";//输入方式 + string sMJLB = "";//枚举列表 + string sMJSQL = "";//SQL命令 + DataSet ds = XLBJDUtils.GetKZXX(); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + if (ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_ZWCXTJ"].ToString().Trim() != "Y") + continue; + sZDM = ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_DYZD"].ToString().Trim(); + sMC = ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_MC"].ToString().Trim(); + sSRFS = ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_SRFS"].ToString().Trim(); + sMJLB = ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_MJLB"].ToString().Trim(); + sMJSQL = ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_MJSQL"].ToString().Trim(); + //数值型 + if (ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_SJLX"].ToString().Trim().Equals("A")) + { + switch (sZDM) + { + case "KZSZ01": + KZSZ01.Visible = true; + lblKZSZ01.Text = sMC + ":"; + break; + case "KZSZ02": + KZSZ02.Visible = true; + lblKZSZ02.Text = sMC + ":"; + break; + case "KZSZ03": + KZSZ03.Visible = true; + lblKZSZ03.Text = sMC + ":"; + break; + case "KZSZ04": + KZSZ04.Visible = true; + lblKZSZ04.Text = sMC + ":"; + break; + case "KZSZ05": + KZSZ05.Visible = true; + lblKZSZ05.Text = sMC + ":"; + break; + } + } + //日期型 + else if (ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_SJLX"].ToString().Trim().Equals("C")) + { + switch (sZDM) + { + case "KZRQ01": + KZRQ01S.Visible = true; + KZRQ01Z.Visible = true; + lblKZRQ01S.Text = sMC + "始:"; + lblKZRQ01Z.Text = sMC + "止:"; + break; + case "KZRQ02": + KZRQ02S.Visible = true; + KZRQ02Z.Visible = true; + lblKZRQ02S.Text = sMC + "始:"; + lblKZRQ02Z.Text = sMC + "止:"; + break; + case "KZRQ03": + KZRQ03S.Visible = true; + KZRQ03Z.Visible = true; + lblKZRQ03S.Text = sMC + "始:"; + lblKZRQ03Z.Text = sMC + "止:"; + break; + case "KZRQ04": + KZRQ04S.Visible = true; + KZRQ04Z.Visible = true; + lblKZRQ04S.Text = sMC + "始:"; + lblKZRQ04Z.Text = sMC + "止:"; + break; + case "KZRQ05": + KZRQ05S.Visible = true; + KZRQ05Z.Visible = true; + lblKZRQ05S.Text = sMC + "始:"; + lblKZRQ05Z.Text = sMC + "止:"; + break; + + } + } + //字符型 + else if (ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_SJLX"].ToString().Trim().Equals("B")) + { + switch (sZDM) + { + case "KZZF01": + if (sSRFS.Trim().Equals("A")) + { + KZZF012.Visible = false; + KZZF011.Visible = true; + lblKZZF011.Text = sMC + ":"; + } + else + { + KZZF012.Visible = true; + KZZF011.Visible = false; + lblKZZF012.Text = sMC + ":"; + if (sMJLB.Trim().Equals("")) + { + TComboBox.SetComboBox("DBERP", cbxKZZF01, sMJSQL, true); + } + else + { + cbxKZZF01.ClearItems(); + cbxKZZF01.Items.Add(new ListItem("", "")); + string[] array = sMJLB.Trim().Replace("\r\n", ",").Split(','); + foreach (string sValue in array) + { + cbxKZZF01.Items.Add(new ListItem(sValue, sValue)); + } + cbxKZZF01.ShowValue = false; + } + } + break; + case "KZZF02": + if (sSRFS.Trim().Equals("A")) + { + KZZF022.Visible = false; + KZZF021.Visible = true; + lblKZZF021.Text = sMC + ":"; + } + else + { + KZZF022.Visible = true; + KZZF021.Visible = false; + lblKZZF022.Text = sMC + ":"; + if (sMJLB.Trim().Equals("")) + { + TComboBox.SetComboBox("DBERP", cbxKZZF02, sMJSQL, true); + } + else + { + cbxKZZF02.ClearItems(); + cbxKZZF02.Items.Add(new ListItem("", "")); + string[] array = sMJLB.Trim().Replace("\r\n", ",").Split(','); + foreach (string sValue in array) + { + cbxKZZF02.Items.Add(new ListItem(sValue, sValue)); + } + cbxKZZF02.ShowValue = false; + } + } + break; + case "KZZF03": + if (sSRFS.Trim().Equals("A")) + { + KZZF032.Visible = false; + KZZF031.Visible = true; + lblKZZF031.Text = sMC + ":"; + } + else + { + KZZF032.Visible = true; + KZZF031.Visible = false; + lblKZZF032.Text = sMC + ":"; + if (sMJLB.Trim().Equals("")) + { + TComboBox.SetComboBox("DBERP", cbxKZZF03, sMJSQL, true); + } + else + { + cbxKZZF03.ClearItems(); + cbxKZZF03.Items.Add(new ListItem("", "")); + string[] array = sMJLB.Trim().Replace("\r\n", ",").Split(','); + foreach (string sValue in array) + { + cbxKZZF03.Items.Add(new ListItem(sValue, sValue)); + } + cbxKZZF03.ShowValue = false; + } + } + break; + case "KZZF04": + if (sSRFS.Trim().Equals("A")) + { + KZZF042.Visible = false; + KZZF041.Visible = true; + lblKZZF041.Text = sMC + ":"; + } + else + { + KZZF042.Visible = true; + KZZF041.Visible = false; + lblKZZF042.Text = sMC + ":"; + if (sMJLB.Trim().Equals("")) + { + TComboBox.SetComboBox("DBERP", cbxKZZF04, sMJSQL, true); + } + else + { + cbxKZZF04.ClearItems(); + cbxKZZF04.Items.Add(new ListItem("", "")); + string[] array = sMJLB.Trim().Replace("\r\n", ",").Split(','); + foreach (string sValue in array) + { + cbxKZZF04.Items.Add(new ListItem(sValue, sValue)); + } + cbxKZZF04.ShowValue = false; + } + } + break; + case "KZZF05": + if (sSRFS.Trim().Equals("A")) + { + KZZF052.Visible = false; + KZZF051.Visible = true; + lblKZZF051.Text = sMC + ":"; + } + else + { + KZZF052.Visible = true; + KZZF051.Visible = false; + lblKZZF052.Text = sMC + ":"; + if (sMJLB.Trim().Equals("")) + { + TComboBox.SetComboBox("DBERP", cbxKZZF05, sMJSQL, true); + } + else + { + cbxKZZF05.ClearItems(); + cbxKZZF05.Items.Add(new ListItem("", "")); + string[] array = sMJLB.Trim().Replace("\r\n", ",").Split(','); + foreach (string sValue in array) + { + cbxKZZF05.Items.Add(new ListItem(sValue, sValue)); + } + cbxKZZF05.ShowValue = false; + } + } + break; + case "KZZF06": + if (sSRFS.Trim().Equals("A")) + { + KZZF062.Visible = false; + KZZF061.Visible = true; + lblKZZF061.Text = sMC + ":"; + } + else + { + KZZF062.Visible = true; + KZZF061.Visible = false; + lblKZZF062.Text = sMC + ":"; + if (sMJLB.Trim().Equals("")) + { + TComboBox.SetComboBox("DBERP", cbxKZZF06, sMJSQL, true); + } + else + { + cbxKZZF06.ClearItems(); + cbxKZZF06.Items.Add(new ListItem("", "")); + string[] array = sMJLB.Trim().Replace("\r\n", ",").Split(','); + foreach (string sValue in array) + { + cbxKZZF06.Items.Add(new ListItem(sValue, sValue)); + } + cbxKZZF06.ShowValue = false; + } + } + break; + case "KZZF07": + if (sSRFS.Trim().Equals("A")) + { + KZZF072.Visible = false; + KZZF071.Visible = true; + lblKZZF071.Text = sMC + ":"; + } + else + { + KZZF072.Visible = true; + KZZF071.Visible = false; + lblKZZF072.Text = sMC + ":"; + if (sMJLB.Trim().Equals("")) + { + TComboBox.SetComboBox("DBERP", cbxKZZF07, sMJSQL, true); + } + else + { + cbxKZZF07.ClearItems(); + cbxKZZF07.Items.Add(new ListItem("", "")); + string[] array = sMJLB.Trim().Replace("\r\n", ",").Split(','); + foreach (string sValue in array) + { + cbxKZZF07.Items.Add(new ListItem(sValue, sValue)); + } + cbxKZZF07.ShowValue = false; + } + } + break; + case "KZZF08": + if (sSRFS.Trim().Equals("A")) + { + KZZF082.Visible = false; + KZZF081.Visible = true; + lblKZZF081.Text = sMC + ":"; + } + else + { + KZZF082.Visible = true; + KZZF081.Visible = false; + lblKZZF082.Text = sMC + ":"; + if (sMJLB.Trim().Equals("")) + { + TComboBox.SetComboBox("DBERP", cbxKZZF08, sMJSQL, true); + } + else + { + cbxKZZF08.ClearItems(); + cbxKZZF08.Items.Add(new ListItem("", "")); + string[] array = sMJLB.Trim().Replace("\r\n", ",").Split(','); + foreach (string sValue in array) + { + cbxKZZF08.Items.Add(new ListItem(sValue, sValue)); + } + cbxKZZF08.ShowValue = false; + } + } + break; + case "KZZF09": + if (sSRFS.Trim().Equals("A")) + { + KZZF092.Visible = false; + KZZF091.Visible = true; + lblKZZF091.Text = sMC + ":"; + } + else + { + KZZF092.Visible = true; + KZZF091.Visible = false; + lblKZZF092.Text = sMC + ":"; + if (sMJLB.Trim().Equals("")) + { + TComboBox.SetComboBox("DBERP", cbxKZZF09, sMJSQL, true); + } + else + { + cbxKZZF09.ClearItems(); + cbxKZZF09.Items.Add(new ListItem("", "")); + string[] array = sMJLB.Trim().Replace("\r\n", ",").Split(','); + foreach (string sValue in array) + { + cbxKZZF09.Items.Add(new ListItem(sValue, sValue)); + } + cbxKZZF09.ShowValue = false; + } + } + break; + case "KZZF10": + if (sSRFS.Trim().Equals("A")) + { + KZZF102.Visible = false; + KZZF101.Visible = true; + lblKZZF101.Text = sMC + ":"; + } + else + { + KZZF102.Visible = true; + KZZF101.Visible = false; + lblKZZF102.Text = sMC + ":"; + if (sMJLB.Trim().Equals("")) + { + TComboBox.SetComboBox("DBERP", cbxKZZF10, sMJSQL, true); + } + else + { + cbxKZZF10.ClearItems(); + cbxKZZF10.Items.Add(new ListItem("", "")); + string[] array = sMJLB.Trim().Replace("\r\n", ",").Split(','); + foreach (string sValue in array) + { + cbxKZZF10.Items.Add(new ListItem(sValue, sValue)); + } + cbxKZZF10.ShowValue = false; + } + } + break; + + } + + } + else if (ds.Tables[0].Rows[i]["XLXSBJKZXXSZ_SJLX"].ToString().Trim().Equals("D")) + { + switch (sZDM) + { + case "KZWB01": + KZWB01.Visible = true; + lblKZWB01.Text = sMC + ":"; + + break; + case "KZWB02": + KZWB02.Visible = true; + lblKZWB02.Text = sMC + ":"; + break; + case "KZWB03": + KZWB03.Visible = true; + lblKZWB03.Text = sMC + ":"; + break; + case "KZWB04": + KZWB04.Visible = true; + lblKZWB04.Text = sMC + ":"; + break; + case "KZWB05": + KZWB05.Visible = true; + lblKZWB05.Text = sMC + ":"; + break; + + } + } + } + + } + + + //判断模块是否存在并且是否有权限 + private bool CheckModule(string sUMID) + { + int iUMID = CMISproConvert.StrToInt(sUMID); + UserRight UR = OpRightUtils.GetUserRight(tSession.UserId, iUMID); + return (DSActiveModule.IsActiveModule(iUMID) && UR.Open); + } + + #endregion + + #region 控件事件 + + protected void cbxSW_SelectedIndexChanged(object sender, EventArgs e) + { + if (IsPostBack) + { + if (cbxSW.SelectedValue.Trim().Equals("A")) + { + datBJRQS.Text = DateTime.Now.Year.ToString().Trim() + "-" + DateTime.Now.Month.ToString().Trim().PadLeft(2, '0') + "-01"; + datBJRQZ.Text = DateTime.Now.ToShortDateString().Trim(); + } + } + } + + + #endregion + } +} diff --git a/XLBJDQuery.aspx.designer.cs b/XLBJDQuery.aspx.designer.cs new file mode 100644 index 0000000..ef5a28c --- /dev/null +++ b/XLBJDQuery.aspx.designer.cs @@ -0,0 +1,2689 @@ +//------------------------------------------------------------------------------ +// +// 此代码由工具生成。 +// 运行时版本:2.0.50727.9179 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// +//------------------------------------------------------------------------------ + +namespace GThinking.U20261363_N_XLXSBJ { + + + /// + /// XLBJDQuery 类。 + /// + /// + /// 自动生成的类。 + /// + public partial class XLBJDQuery { + + /// + /// QueryTalbe 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Table QueryTalbe; + + /// + /// lblSW 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblSW; + + /// + /// cbxSW 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtComboBox cbxSW; + + /// + /// GtLabel9 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel GtLabel9; + + /// + /// cbxDCLR 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtComboBox cbxDCLR; + + /// + /// TableRow4 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableRow TableRow4; + + /// + /// TableCell10 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell10; + + /// + /// TableCell11 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell11; + + /// + /// GtLabel10 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel GtLabel10; + + /// + /// TableCell12 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell12; + + /// + /// cbxWFState 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtCheckedDropDownList cbxWFState; + + /// + /// GtLabel11 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel GtLabel11; + + /// + /// cbxBJFLID 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtComboBox cbxBJFLID; + + /// + /// GtLabel3 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel GtLabel3; + + /// + /// txtBJDID 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtTextBox txtBJDID; + + /// + /// GtLabel1 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel GtLabel1; + + /// + /// datBJRQS 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtDateTimeTextBox datBJRQS; + + /// + /// GtLabel2 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel GtLabel2; + + /// + /// datBJRQZ 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtDateTimeTextBox datBJRQZ; + + /// + /// GtLabel22 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel GtLabel22; + + /// + /// cbxSQR 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtCheckedDropDownList cbxSQR; + + /// + /// GtLabel7 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel GtLabel7; + + /// + /// txtXHDW 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtTextBox txtXHDW; + + /// + /// GtLabel12 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel GtLabel12; + + /// + /// cbxXSBM 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtCheckedDropDownList cbxXSBM; + + /// + /// GtLabel5 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel GtLabel5; + + /// + /// cbxTXY 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtComboBox cbxTXY; + + /// + /// GtLabel6 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel GtLabel6; + + /// + /// txtKH 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtTextBox txtKH; + + /// + /// GtLabel8 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel GtLabel8; + + /// + /// txtXM 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtTextBox txtXM; + + /// + /// GtLabel25 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel GtLabel25; + + /// + /// txtBJZJES 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtNumTextBox txtBJZJES; + + /// + /// GtLabel26 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel GtLabel26; + + /// + /// txtBJZJEZ 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtNumTextBox txtBJZJEZ; + + /// + /// GtLabel4 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel GtLabel4; + + /// + /// cbxPXFS 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtComboBox cbxPXFS; + + /// + /// GtLabel13 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel GtLabel13; + + /// + /// txtBJBZ 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtTextBox txtBJBZ; + + /// + /// GtLabel17 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel GtLabel17; + + /// + /// dtWHSJS 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtDateTime dtWHSJS; + + /// + /// GtLabel18 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel GtLabel18; + + /// + /// dtWHSJZ 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtDateTime dtWHSJZ; + + /// + /// GtLabel14 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel GtLabel14; + + /// + /// datFKRQS 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtDateTimeTextBox datFKRQS; + + /// + /// GtLabel15 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel GtLabel15; + + /// + /// datFKRQZ 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtDateTimeTextBox datFKRQZ; + + /// + /// GtLabel16 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel GtLabel16; + + /// + /// cbxFKJG 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtCheckedDropDownList cbxFKJG; + + /// + /// lblKHDH 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblKHDH; + + /// + /// txtKHDH 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtTextBox txtKHDH; + + /// + /// lblZCJH 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblZCJH; + + /// + /// cbxZCJH 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtComboBox cbxZCJH; + + /// + /// chkZDFXYQR 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtCheckBox chkZDFXYQR; + + /// + /// chkJCFZCS 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtCheckBox chkJCFZCS; + + /// + /// KZSZ01 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableRow KZSZ01; + + /// + /// TableCell7 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell7; + + /// + /// TableCell8 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell8; + + /// + /// lblKZSZ01 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblKZSZ01; + + /// + /// TableCell9 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell9; + + /// + /// txtKZSZ01 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtNumTextBox txtKZSZ01; + + /// + /// KZSZ02 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableRow KZSZ02; + + /// + /// TableCell22 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell22; + + /// + /// TableCell23 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell23; + + /// + /// lblKZSZ02 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblKZSZ02; + + /// + /// TableCell24 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell24; + + /// + /// txtKZSZ02 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtNumTextBox txtKZSZ02; + + /// + /// KZSZ03 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableRow KZSZ03; + + /// + /// TableCell28 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell28; + + /// + /// TableCell31 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell31; + + /// + /// lblKZSZ03 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblKZSZ03; + + /// + /// TableCell32 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell32; + + /// + /// txtKZSZ03 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtNumTextBox txtKZSZ03; + + /// + /// KZSZ04 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableRow KZSZ04; + + /// + /// TableCell33 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell33; + + /// + /// TableCell34 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell34; + + /// + /// lblKZSZ04 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblKZSZ04; + + /// + /// TableCell35 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell35; + + /// + /// txtKZSZ04 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtNumTextBox txtKZSZ04; + + /// + /// KZSZ05 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableRow KZSZ05; + + /// + /// TableCell36 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell36; + + /// + /// TableCell37 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell37; + + /// + /// lblKZSZ05 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblKZSZ05; + + /// + /// TableCell38 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell38; + + /// + /// txtKZSZ05 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtNumTextBox txtKZSZ05; + + /// + /// KZZF011 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableRow KZZF011; + + /// + /// TableCell54 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell54; + + /// + /// TableCell55 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell55; + + /// + /// lblKZZF011 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblKZZF011; + + /// + /// TableCell56 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell56; + + /// + /// txtKZZF01 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtTextBox txtKZZF01; + + /// + /// KZZF012 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableRow KZZF012; + + /// + /// TableCell138 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell138; + + /// + /// TableCell139 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell139; + + /// + /// lblKZZF012 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblKZZF012; + + /// + /// TableCell140 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell140; + + /// + /// cbxKZZF01 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtComboBox cbxKZZF01; + + /// + /// KZZF021 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableRow KZZF021; + + /// + /// TableCell57 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell57; + + /// + /// TableCell58 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell58; + + /// + /// lblKZZF021 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblKZZF021; + + /// + /// TableCell59 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell59; + + /// + /// txtKZZF02 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtTextBox txtKZZF02; + + /// + /// KZZF022 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableRow KZZF022; + + /// + /// TableCell141 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell141; + + /// + /// TableCell142 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell142; + + /// + /// lblKZZF022 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblKZZF022; + + /// + /// TableCell143 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell143; + + /// + /// cbxKZZF02 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtComboBox cbxKZZF02; + + /// + /// KZZF031 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableRow KZZF031; + + /// + /// TableCell60 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell60; + + /// + /// TableCell61 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell61; + + /// + /// lblKZZF031 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblKZZF031; + + /// + /// TableCell62 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell62; + + /// + /// txtKZZF03 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtTextBox txtKZZF03; + + /// + /// KZZF032 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableRow KZZF032; + + /// + /// TableCell144 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell144; + + /// + /// TableCell145 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell145; + + /// + /// lblKZZF032 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblKZZF032; + + /// + /// TableCell146 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell146; + + /// + /// cbxKZZF03 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtComboBox cbxKZZF03; + + /// + /// KZZF041 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableRow KZZF041; + + /// + /// TableCell63 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell63; + + /// + /// TableCell64 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell64; + + /// + /// lblKZZF041 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblKZZF041; + + /// + /// TableCell65 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell65; + + /// + /// txtKZZF04 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtTextBox txtKZZF04; + + /// + /// KZZF042 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableRow KZZF042; + + /// + /// TableCell147 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell147; + + /// + /// TableCell148 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell148; + + /// + /// lblKZZF042 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblKZZF042; + + /// + /// TableCell149 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell149; + + /// + /// cbxKZZF04 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtComboBox cbxKZZF04; + + /// + /// KZZF051 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableRow KZZF051; + + /// + /// TableCell66 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell66; + + /// + /// TableCell67 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell67; + + /// + /// lblKZZF051 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblKZZF051; + + /// + /// TableCell68 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell68; + + /// + /// txtKZZF05 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtTextBox txtKZZF05; + + /// + /// KZZF052 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableRow KZZF052; + + /// + /// TableCell150 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell150; + + /// + /// TableCell151 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell151; + + /// + /// lblKZZF052 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblKZZF052; + + /// + /// TableCell152 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell152; + + /// + /// cbxKZZF05 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtComboBox cbxKZZF05; + + /// + /// KZZF061 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableRow KZZF061; + + /// + /// TableCell69 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell69; + + /// + /// TableCell70 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell70; + + /// + /// lblKZZF061 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblKZZF061; + + /// + /// TableCell71 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell71; + + /// + /// txtKZZF06 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtTextBox txtKZZF06; + + /// + /// KZZF062 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableRow KZZF062; + + /// + /// TableCell153 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell153; + + /// + /// TableCell154 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell154; + + /// + /// lblKZZF062 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblKZZF062; + + /// + /// TableCell155 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell155; + + /// + /// cbxKZZF06 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtComboBox cbxKZZF06; + + /// + /// KZZF071 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableRow KZZF071; + + /// + /// TableCell272 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell272; + + /// + /// TableCell273 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell273; + + /// + /// lblKZZF071 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblKZZF071; + + /// + /// TableCell274 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell274; + + /// + /// txtKZZF07 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtTextBox txtKZZF07; + + /// + /// KZZF072 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableRow KZZF072; + + /// + /// TableCell156 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell156; + + /// + /// TableCell157 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell157; + + /// + /// lblKZZF072 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblKZZF072; + + /// + /// TableCell158 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell158; + + /// + /// cbxKZZF07 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtComboBox cbxKZZF07; + + /// + /// KZZF081 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableRow KZZF081; + + /// + /// TableCell180 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell180; + + /// + /// TableCell181 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell181; + + /// + /// lblKZZF081 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblKZZF081; + + /// + /// TableCell271 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell271; + + /// + /// txtKZZF08 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtTextBox txtKZZF08; + + /// + /// KZZF082 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableRow KZZF082; + + /// + /// TableCell159 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell159; + + /// + /// TableCell160 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell160; + + /// + /// lblKZZF082 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblKZZF082; + + /// + /// TableCell161 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell161; + + /// + /// cbxKZZF08 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtComboBox cbxKZZF08; + + /// + /// KZZF091 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableRow KZZF091; + + /// + /// TableCell72 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell72; + + /// + /// TableCell73 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell73; + + /// + /// lblKZZF091 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblKZZF091; + + /// + /// TableCell74 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell74; + + /// + /// txtKZZF09 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtTextBox txtKZZF09; + + /// + /// KZZF092 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableRow KZZF092; + + /// + /// TableCell162 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell162; + + /// + /// TableCell163 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell163; + + /// + /// lblKZZF092 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblKZZF092; + + /// + /// TableCell164 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell164; + + /// + /// cbxKZZF09 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtComboBox cbxKZZF09; + + /// + /// KZZF101 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableRow KZZF101; + + /// + /// TableCell75 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell75; + + /// + /// TableCell76 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell76; + + /// + /// lblKZZF101 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblKZZF101; + + /// + /// TableCell77 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell77; + + /// + /// txtKZZF10 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtTextBox txtKZZF10; + + /// + /// KZZF102 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableRow KZZF102; + + /// + /// TableCell165 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell165; + + /// + /// TableCell166 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell166; + + /// + /// lblKZZF102 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblKZZF102; + + /// + /// TableCell167 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell167; + + /// + /// cbxKZZF10 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtComboBox cbxKZZF10; + + /// + /// KZRQ01S 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableRow KZRQ01S; + + /// + /// TableCell78 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell78; + + /// + /// TableCell79 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell79; + + /// + /// lblKZRQ01S 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblKZRQ01S; + + /// + /// TableCell80 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell80; + + /// + /// datKZRQ01S 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtDateTimeTextBox datKZRQ01S; + + /// + /// KZRQ01Z 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableRow KZRQ01Z; + + /// + /// TableCell81 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell81; + + /// + /// TableCell82 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell82; + + /// + /// lblKZRQ01Z 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblKZRQ01Z; + + /// + /// TableCell83 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell83; + + /// + /// datKZRQ01Z 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtDateTimeTextBox datKZRQ01Z; + + /// + /// KZRQ02S 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableRow KZRQ02S; + + /// + /// TableCell84 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell84; + + /// + /// TableCell85 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell85; + + /// + /// lblKZRQ02S 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblKZRQ02S; + + /// + /// TableCell86 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell86; + + /// + /// datKZRQ02S 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtDateTimeTextBox datKZRQ02S; + + /// + /// KZRQ02Z 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableRow KZRQ02Z; + + /// + /// TableCell87 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell87; + + /// + /// TableCell88 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell88; + + /// + /// lblKZRQ02Z 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblKZRQ02Z; + + /// + /// TableCell89 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell89; + + /// + /// datKZRQ02Z 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtDateTimeTextBox datKZRQ02Z; + + /// + /// KZRQ03S 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableRow KZRQ03S; + + /// + /// TableCell90 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell90; + + /// + /// TableCell91 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell91; + + /// + /// lblKZRQ03S 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblKZRQ03S; + + /// + /// TableCell92 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell92; + + /// + /// datKZRQ03S 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtDateTimeTextBox datKZRQ03S; + + /// + /// KZRQ03Z 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableRow KZRQ03Z; + + /// + /// TableCell93 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell93; + + /// + /// TableCell94 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell94; + + /// + /// lblKZRQ03Z 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblKZRQ03Z; + + /// + /// TableCell95 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell95; + + /// + /// datKZRQ03Z 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtDateTimeTextBox datKZRQ03Z; + + /// + /// KZRQ04S 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableRow KZRQ04S; + + /// + /// TableCell96 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell96; + + /// + /// TableCell97 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell97; + + /// + /// lblKZRQ04S 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblKZRQ04S; + + /// + /// TableCell98 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell98; + + /// + /// datKZRQ04S 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtDateTimeTextBox datKZRQ04S; + + /// + /// KZRQ04Z 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableRow KZRQ04Z; + + /// + /// TableCell99 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell99; + + /// + /// TableCell100 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell100; + + /// + /// lblKZRQ04Z 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblKZRQ04Z; + + /// + /// TableCell101 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell101; + + /// + /// datKZRQ04Z 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtDateTimeTextBox datKZRQ04Z; + + /// + /// KZRQ05S 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableRow KZRQ05S; + + /// + /// TableCell102 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell102; + + /// + /// TableCell103 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell103; + + /// + /// lblKZRQ05S 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblKZRQ05S; + + /// + /// TableCell104 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell104; + + /// + /// datKZRQ05S 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtDateTimeTextBox datKZRQ05S; + + /// + /// KZRQ05Z 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableRow KZRQ05Z; + + /// + /// TableCell105 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell105; + + /// + /// TableCell106 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell106; + + /// + /// lblKZRQ05Z 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblKZRQ05Z; + + /// + /// TableCell107 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell107; + + /// + /// datKZRQ05Z 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtDateTimeTextBox datKZRQ05Z; + + /// + /// KZWB01 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableRow KZWB01; + + /// + /// TableCell293 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell293; + + /// + /// TableCell294 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell294; + + /// + /// lblKZWB01 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblKZWB01; + + /// + /// TableCell295 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell295; + + /// + /// txtKZWB01 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtTextBox txtKZWB01; + + /// + /// KZWB02 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableRow KZWB02; + + /// + /// TableCell299 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell299; + + /// + /// TableCell300 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell300; + + /// + /// lblKZWB02 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblKZWB02; + + /// + /// TableCell301 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell301; + + /// + /// txtKZWB02 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtTextBox txtKZWB02; + + /// + /// KZWB03 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableRow KZWB03; + + /// + /// TableCell305 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell305; + + /// + /// TableCell306 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell306; + + /// + /// lblKZWB03 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblKZWB03; + + /// + /// TableCell307 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell307; + + /// + /// txtKZWB03 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtTextBox txtKZWB03; + + /// + /// KZWB04 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableRow KZWB04; + + /// + /// TableCell311 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell311; + + /// + /// TableCell312 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell312; + + /// + /// lblKZWB04 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblKZWB04; + + /// + /// TableCell313 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell313; + + /// + /// txtKZWB04 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtTextBox txtKZWB04; + + /// + /// KZWB05 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableRow KZWB05; + + /// + /// TableCell317 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell317; + + /// + /// TableCell318 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell318; + + /// + /// lblKZWB05 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtLabel lblKZWB05; + + /// + /// TableCell319 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.TableCell TableCell319; + + /// + /// txtKZWB05 控件。 + /// + /// + /// 自动生成的字段。 + /// 要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::GThinking.N_CONTROL.gtTextBox txtKZWB05; + + /// + /// Master 属性。 + /// + /// + /// 自动生成的属性。 + /// + public new GThinking.N_MODEL.Page.MasterSingleQuery Master { + get { + return ((GThinking.N_MODEL.Page.MasterSingleQuery)(base.Master)); + } + } + } +} diff --git a/XLBJDUtils.cs b/XLBJDUtils.cs new file mode 100644 index 0000000..090b883 --- /dev/null +++ b/XLBJDUtils.cs @@ -0,0 +1,18648 @@ +using System; +using System.Data; +using System.Configuration; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; +using GThinking.N_MISPROAS.Web.AjaxServices; +using GThinking.N_MISPRO.Data; +using System.Collections.Generic; +using System.Collections; +using GThinking.N_MISPRO.Utility; +using System.IO; +using System.Text; +using GThinking.N_MISPRO; +using System.Text.RegularExpressions; +using GThinking.N_MISPRO.TableCache; +using GThinking.N_MISPRO.Caching; + + + +namespace GThinking.U20261363_N_XLXSBJ +{ + + public class XLBJDUtils + { + public static string sJCJLDWList = "M、KM、米、千米、KG、T、千克、公斤、吨"; + public static string sJCJLDWList_Weg = "KG、T、千克、公斤、吨"; + public static int BJCLPriceDecimal + { + get { return CMISproConvert.StrToInt(GetXLXSBJPZXX(100860014).XLXSBJPZ_CLJGXSWS, 3); } + } + public static double ModifiedNum = 0.001; + public static string sJQCDJLDWList = "M、KM、米、千米"; + public static int JQJSXSWS = 6; + public static double sCJXS = 0.8; + + //报价单调价因子小数位数 + public static int JGBYZZDecimal = 3; + + //获取长度计量单位换算关系字典 + public static Dictionary GetLenJLDWTD() + { + Dictionary dic = new Dictionary(); + dic.Add("百米", 100.0); + dic.Add("卷", 100.0); + return dic; + } + + public static readonly Dictionary CableCodeDict = CreateDictionary(); + + private static Dictionary CreateDictionary() + { + Dictionary dict = new Dictionary(); + + dict.Add("超高压线缆", "CGYDL"); + dict.Add("中压线缆", "ZYDL"); + dict.Add("低压线缆(无屏蔽)", "DYWPPDL"); + dict.Add("低压线缆(有屏蔽)", "DYYPPDL"); + dict.Add("不带护套布电线", "WHTBDX"); + dict.Add("对绞软电线工艺", "WHTDJRDX"); + dict.Add("不带护套软电线", "WHTRDX"); + dict.Add("带护套布电线", "YHTBDX"); + dict.Add("带护套软电线", "YHTRDX"); + dict.Add("扁形无护套电线", "BXWHTDX"); + dict.Add("光伏电缆", "GFDL"); + dict.Add("控制线缆", "KZDL"); + dict.Add("架空绝缘线", "JKJYDL"); + dict.Add("计算机线缆", "JSJDL"); + dict.Add("柔性防火电缆", "FHDL"); + dict.Add("高寿命低压电力电缆", "GSMDYDL"); + dict.Add("高寿命电线", "GSMDX"); + dict.Add("耐热交联聚烯烃电线", "NRJLDX"); + dict.Add("云母带矿物绝缘波纹铜护套电缆", "YMDKWJYDL"); + dict.Add("额定电压750V及以下矿物绝缘电缆", "KWJYDL"); + dict.Add("金属护套无机矿物绝缘电缆", "WJKWJYDL"); + dict.Add("铁路数字信号电缆", "TLSZXHDL"); + dict.Add("低压变频电缆", "DYBPDL"); + dict.Add("中压变频电缆", "ZYBPDL"); + dict.Add("铁路信号电缆", "TLXHDL"); + dict.Add("应答器数据传输电缆", "TLYDQDL"); + dict.Add("铁路列车计轴综合信号电缆", "TLJZDL"); + dict.Add("铁路综合屏蔽信号电缆", "TLZHDL"); + dict.Add("铁路长途对称通信电缆", "TLDCDL"); + dict.Add("数字通信用水平对绞电缆", "SZTXDL"); + dict.Add("通信电源用阻燃耐火软电缆", "TXZRNHDL"); + dict.Add("企业标准控制电缆", "KZDLQB"); + dict.Add("氟塑料控制电缆", "KZDLFSL"); + dict.Add("硅橡胶控制电缆", "KZDLGXJ"); + dict.Add("耐高温计算机电缆", "JSJDLNGW"); + dict.Add("电焊机电缆", "DHJDL"); + dict.Add("通用橡套软电缆", "TYXTRDL"); + dict.Add("铝绞线", "LJX001"); + dict.Add("钢芯铝绞线", "LJX002"); + dict.Add("防腐型钢芯铝绞线", "LJX003"); + dict.Add("煤矿用控制电缆", "MKKZDL"); + dict.Add("船用低压电力电缆", "CYDYDL"); + dict.Add("采煤机软电缆", "MKCMJRDL"); + dict.Add("采煤机屏蔽监视加强型软电缆", "MKCMJPBJSRDL"); + dict.Add("采煤机金属屏蔽软电缆", "MKCMJJSPBRDL"); + dict.Add("移动软电缆", "MKYDRDL"); + dict.Add("移动金属屏蔽监视型软电缆", "MKYDJSPBJSRDL"); + dict.Add("移动屏蔽软电缆", "MKYDPBRDL"); + dict.Add("煤矿用电钻电缆", "MKDZDL"); + dict.Add("煤矿用移动轻型软电缆", "MKYDQXRDL"); + dict.Add("煤矿用矿工帽灯线", "MKMDX"); + dict.Add("煤矿用中压电力电缆", "MKDLDL"); + dict.Add("车辆高压电缆", "CLGYDL"); + dict.Add("风能电缆", "FNDL"); + dict.Add("煤矿用低压电力电缆", "MKDYDLDL"); + dict.Add("潜油泵电缆", "QYBDL"); + dict.Add("德标汽车低压线", "DBQCDYX"); + dict.Add("电动汽车充电用电缆工艺", "DDQCCDYDL"); + dict.Add("低压轨道交通车辆电缆工艺", "DYGDJTDL"); + dict.Add("动车组第二类型低烟无卤标准壁电缆工艺", "DCZDEDL"); + dict.Add("铁路客车用电线电缆工艺", "TLKCYDL"); + dict.Add("低烟无卤标准壁电缆工艺", "DCZBZBDL"); + dict.Add("家装环保电线工艺", "JZHBDX"); + dict.Add("车辆高压电缆工艺", "CLGY001"); + dict.Add("升降机电缆工艺", "SJJDL"); + dict.Add("煤矿用通信电缆", "MKTXDL"); + dict.Add("铝合金光伏电缆工艺", "GFLHJDL"); + dict.Add("电机引接线工艺", "DJYJX"); + dict.Add("船用低压电力电缆工艺", "CYDYDL"); + dict.Add("煤矿用通信电缆工艺", "MKTXDL"); + dict.Add("拖链电缆工艺", "TLDL"); + dict.Add("扁电缆工艺", "BXYDRDL"); + dict.Add("移动橡套卷筒电缆工艺", "YDXTDL"); + dict.Add("盾构机用软电缆工艺", "DGJRDL"); + dict.Add("船用中压电力电缆工艺", "CYZYDL"); + dict.Add("船用控制电缆工艺", "CYKZDL"); + dict.Add("船用仪表电缆工艺", "CYYBDL"); + dict.Add("船用电线工艺", "CYBDX"); + dict.Add("舰用中压电力电缆工艺", "JYZYDL"); + dict.Add("舰用低压电力电缆工艺", "JYDYDL"); + dict.Add("舰用通信电缆工艺", "JYTXDL"); + dict.Add("舰用控制电缆工艺", "JYKZDL"); + dict.Add("船用中压变频电力电缆工艺", "CYZYBPDL"); + dict.Add("船用低压变频电力电缆工艺", "CYDYBPDL"); + dict.Add("海洋工程低压电力电缆工艺", "HYGCDYDL"); + dict.Add("海洋工程通信电缆工艺", "HYGCTXDL"); + dict.Add("铝合金绞线工艺", "LJX004"); + dict.Add("钢芯铝合金绞线工艺", "LJX005"); + dict.Add("铝合金芯铝绞线工艺", "LJX006"); + dict.Add("铝包钢芯铝绞线工艺", "LJX007"); + dict.Add("铝包钢芯铝合金绞线工艺", "LJX008"); + dict.Add("日标单芯汽车线工艺", "RBQC01"); + dict.Add("日标多芯汽车线工艺", "RBQC02"); + dict.Add("国标单芯汽车线工艺", "GBQC01"); + dict.Add("国标多芯汽车线工艺", "GBQC02"); + dict.Add("美标单芯汽车线工艺", "MBQC01"); + dict.Add("新能源单芯汽车线工艺", "XNYQC01"); + dict.Add("新能源多芯汽车线工艺", "XNYQC02"); + dict.Add("螺旋电缆工艺", "LXDL01"); + dict.Add("华通潜油泵电缆", "HTQYBDL"); + dict.Add("德标通讯及数据传输用电缆工艺", "DBTXSJCSDL"); + dict.Add("EN50525系列工艺", "EN50525"); + dict.Add("EN50214系列扁线工艺", "EN50214"); + dict.Add("EN50618系列光伏电缆工艺", "EN50618"); + dict.Add("EN50620电动汽车充电电缆工艺", "EN50620"); + dict.Add("欧标低压电力电缆工艺", "OBDYDL"); + dict.Add("欧标电源安装电线工艺", "OBDYAZX"); + dict.Add("澳标低压电力电缆工艺", "ABDYDL"); + dict.Add("澳标控制电缆工艺", "ABKZDL"); + dict.Add("美标UL758电器布线电线电缆工艺", "UL758"); + dict.Add("美标UL1277电源和控制托架电缆工艺", "UL1277"); + dict.Add("美标UL62软线及装置线工艺", "UL62"); + dict.Add("美标UL83热塑性绝缘电线电缆工艺", "UL83"); + dict.Add("美标UL44热固性绝缘电线电缆工艺", "UL44"); + dict.Add("埃因企标电缆工艺", "ANQBDL"); + dict.Add("安装用电线工艺", "DXAZ001"); + dict.Add("影视灯光电缆", "YSDGDL"); + dict.Add("音响线", "YXX"); + dict.Add("射频电缆工艺", "SPTZ001"); + dict.Add("移动电器用软电缆工艺", "YDDQYRDL"); + dict.Add("煤矿用变频橡套软电缆工艺", "MKBPXTRDL"); + dict.Add("汉缆低压乙丙橡胶软电缆", "HLDYYBXJRDL"); + dict.Add("汉缆中压乙丙橡胶软电缆", "HLZYYBXJRDL"); + dict.Add("梭车用金属屏蔽加强型橡套软电缆", "SCYXTRDL"); + dict.Add("铁路贯通地线", "TLGTDX"); + dict.Add("铁路通信漏泄同轴电缆", "TLLXTZDL"); + dict.Add("核电中压电缆", "HDZYDL"); + dict.Add("核电低压电缆", "HDDYDL"); + dict.Add("核电站用1E级控制电缆", "HD1EKZDL"); + dict.Add("核电测量电缆", "HDCLDL"); + dict.Add("核级补偿电缆", "HDBCDL"); + dict.Add("舰用核电低压电力电缆", "JYHDDYDL"); + dict.Add("舰用核电控制电缆", "JYHDKZDL"); + dict.Add("舰用核电通信电缆", "JYHDTXDL"); + dict.Add("氟塑料绝缘电力电缆", "FSLDYWPPDL"); + dict.Add("氟塑料绝缘有屏蔽电力电缆", "FSLDYYPPDL"); + dict.Add("硅橡胶绝缘电力电缆", "GXJDYWPPDL"); + dict.Add("硅橡胶绝缘有屏蔽电力电缆", "GXJDYYPPDL"); + dict.Add("核电用布电线", "HDYBDX"); + dict.Add("储能电缆工艺", "CNDL"); + dict.Add("钢绞线工艺", "LJX009"); + dict.Add("铝包钢绞线工艺", "LJX010"); + dict.Add("补偿电缆工艺", "BCDL"); + dict.Add("钢芯耐热铝合金绞线工艺", "LJX011"); + dict.Add("铝包钢芯耐热铝合金绞线工艺", "LJX012"); + dict.Add("钢芯高强度耐热铝合金绞线工艺", "LJX013"); + dict.Add("圆线同心绞铝包殷钢芯铝合金绞线工艺", "LJX014"); + dict.Add("钢芯耐热铝合金型线绞线工艺", "LJX015"); + dict.Add("凯布斯企标电缆工艺", "KBSQBDL"); + dict.Add("欧标直流充电用电缆工艺", "OBZLCDDL"); + dict.Add("欧标交流充电用电缆工艺", "OBJLCDDL"); + dict.Add("八益专用电缆工艺", "BYZYDL"); + dict.Add("核电仪表电缆工艺", "HDYBDL"); + dict.Add("核电通信电缆工艺", "HDTXDL"); + dict.Add("电气化铁路27.5kV单相交流交联聚乙烯绝缘电缆工艺", "DQDXDL"); + dict.Add("DC1500V直流电缆工艺", "DC1500DL"); + dict.Add("通信电缆工艺", "TXDL"); + dict.Add("核电同轴电缆工艺", "HDTZDL"); + dict.Add("氟塑料安装线", "FSLAZDL"); + dict.Add("东方电缆自研工艺", "DFDLZYGY"); + dict.Add("移动用丁腈聚氯乙烯电缆工艺", "YDYDJJLYXDL"); + dict.Add("移动用丁腈聚氯乙烯扁电缆工艺", "YDYDJJLYXBDL"); + dict.Add("移动用弹性体软电缆工艺", "YDYTXTRDL"); + dict.Add("航空航天用含氟聚合物绝缘电线电缆工艺", "HKHTYHFJHWJYDXDL"); + dict.Add("中压交流海底电缆工艺", "ZYJLHDDL"); + dict.Add("超高压交流海底电缆工艺", "CGYJLHDDL"); + dict.Add("直流海底电缆工艺", "ZLHDDL"); + dict.Add("铁路用铜及铜合金绞线工艺", "TLYTJX"); + dict.Add("易初专用工艺", "YCZYGY"); + dict.Add("防腐钢芯铝合金绞线工艺", "LJX016"); + dict.Add("防腐铝包钢芯铝合金绞线工艺", "LJX017"); + dict.Add("华菱专用工艺", "HLZYGY"); + dict.Add("工业机器人电缆工艺", "GYJQRDL"); + dict.Add("橡皮布电线工艺", "XPBDX"); + dict.Add("橡套卷筒电缆工艺", "XTJTDL"); + + return dict; + } + + [AjaxMethod] + public string[] GetTXY3(string key, int count, string prefixText, string config) + { + System.Web.Script.Serialization.JavaScriptSerializer Serializer = new System.Web.Script.Serialization.JavaScriptSerializer(); + Hashtable Config = Serializer.Deserialize(config); + string sXSJLMC = Config != null && Config.ContainsKey("XSJLMC") ? (string)Config["XSJLMC"] : ""; + string sBMID = Config != null && Config.ContainsKey("BMID") ? (string)Config["BMID"] : ""; + + List Items = new List(); + Items.Clear(); + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + + if (sXSJLMC.Trim().Equals("")) + { + sql.Clear(); + sql.Add("select XSY_TXY,XSY_ZJM,XSY_SJ from XSY where isnull(XSY_TYBZ,' ')<>'Y' "); + if (!string.IsNullOrEmpty(sBMID.Trim())) + { + sql.Add(" and (" + CMISproDataBase.GetWhereEqual("XSY_BMID", sBMID.Trim())); + sql.Add(" or isnull(XSY_BMID, ' ') = ' ')"); + } + if (!string.IsNullOrEmpty(key)) + { + sql.Add(" and (XSY_TXY like '%" + key.Trim() + "%' or XSY_ZJM like '%" + key.Trim().ToUpper() + "%')"); + } + sql.Add(" order by XSY_ZJM,XSY_TXY"); + } + else + { + sql.Clear(); + sql.Add("select XSY_TXY,XSY_ZJM,XSY_SJ from XSY left join (select XSY_TXY as SJXSYMC, XSY_XSYBH as XSYBH from XSY) SJ on SJ.XSYBH=XSY_SJXSYBH"); + sql.Add(" where isnull(XSY_TYBZ,' ')<>'Y' and SJ.SJXSYMC=:pSJXSYMC "); + if (!string.IsNullOrEmpty(sBMID.Trim())) + { + sql.Add(" and (" + CMISproDataBase.GetWhereEqual("XSY_BMID", sBMID.Trim())); + sql.Add(" or isnull(XSY_BMID, ' ') = ' ')"); + } + if (!string.IsNullOrEmpty(key)) + { + sql.Add(" and (XSY_TXY like '%" + key.Trim() + "%' or XSY_ZJM like '%" + key.Trim().ToUpper() + "%')"); + } + sql.Add(" order by XSY_ZJM,XSY_TXY"); + sql.ParamByName("pSJXSYMC").Value = sXSJLMC.Trim(); + } + + try + { + DataSet ds = dberp.OpenDataSet(sql); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + string sTXY = ds.Tables[0].Rows[i]["XSY_TXY"].ToString().Trim(); + string sZJM = ds.Tables[0].Rows[i]["XSY_ZJM"].ToString().Trim(); + string sSJ = ds.Tables[0].Rows[i]["XSY_SJ"].ToString().Trim(); + if (sZJM.Equals("")) + sZJM = CMISproConvert.ConvertZJM(sTXY).Trim(); + + Items.Add(String.Format("{0}|{1}", sTXY, sZJM + "|" + sTXY + "|" + sSJ)); + } + } + catch + { + Items.Clear(); + } + + return Items.ToArray(); + } + + + public static double GetCLZL(string sXLXHID, string sXLGGID, string sXLBZID, string sDYDJID) + { + return GetCLZL(sXLXHID, sXLGGID, sXLBZID, sDYDJID, true); + } + + public static double GetCLZL(string sXLXHID, string sXLGGID, string sXLBZID, string sDYDJID, bool bXSWS) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + sql.Add("select XLXSCLQD_CLZL "); + sql.Add("from XLXSCLQD "); + sql.Add("where XLXSCLQD_XLXHID=:pXLXHID "); + sql.Add(" and XLXSCLQD_XLGGID=:pXLGGID "); + sql.Add(" and XLXSCLQD_XLBZID=:pXLBZID "); + sql.Add(" and XLXSCLQD_DYDJID=:pDYDJID "); + sql.Add(" and XLXSCLQD_WPID='ZZZZ' "); + sql.ParamByName("pXLXHID").Value = sXLXHID; + sql.ParamByName("pXLGGID").Value = sXLGGID; + sql.ParamByName("pXLBZID").Value = sXLBZID; + sql.ParamByName("pDYDJID").Value = sDYDJID; + DataSet ds = dberp.OpenDataSet(sql); + if (ds.Tables[0].Rows.Count > 0) + { + if (bXSWS) + return NumberUtils.RoundX(CMISproConvert.StrToFloat(ds.Tables[0].Rows[0][0].ToString()), 6); + else + return CMISproConvert.StrToFloat(ds.Tables[0].Rows[0][0].ToString()); + } + else + return 0.0; + } + + + public static double GetCLZL(string sXLXHID, string sXLGGID, string sXLBZID, string sDYDJID,string sJGBID) + { + if (string.IsNullOrEmpty(sJGBID)) + return GetCLZL(sXLXHID, sXLGGID, sXLBZID, sDYDJID); + + string tmpXLXHID = sXLXHID; + string tmpXLGGID = sXLGGID; + string tmpXLBZID = sXLBZID; + string tmpDYDJID = sDYDJID; + int iSYXH = 0; + double dYSJDZ = 1; + double dCLCBYSJDZ = 1; + bool bExistedSYJGBMX = XLBJDUtils.ExistedSYJGBMX(sXLXHID, sXLGGID, sXLBZID, sDYDJID, sJGBID, ref iSYXH, ref dYSJDZ, ref dCLCBYSJDZ); + if(!bExistedSYJGBMX) + return GetCLZL(sXLXHID, sXLGGID, sXLBZID, sDYDJID); + XLBJDUtils.GetJGBMXBySYXH(sJGBID, iSYXH, ref tmpXLXHID, ref tmpXLGGID, ref tmpXLBZID, ref tmpDYDJID); + return GetCLZL(tmpXLXHID, tmpXLGGID, tmpXLBZID, tmpDYDJID); + + + } + + //初始化字典,value值赋值为0 + public static Dictionary InitdicYZZ(string sBJFLID, string sTJYS) + { + Dictionary dicYZZ = new Dictionary(); + dicYZZ.Clear(); + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + sql.Clear(); + sql.Add("select XLXSTZYZ_YZID "); + sql.Add(" from XLXSTZYZ"); + sql.Add(" where XLXSTZYZ_MXBH='BJD' and XLXSTZYZ_TJYS = :pTJYS"); + sql.Add(" and exists(select 1 from XLXSBJFLYZ where XLXSBJFLYZ_BJFLID=:sBJFLID and XLXSBJFLYZ_YZID=XLXSTZYZ_YZID)"); + sql.Add(" order by XLXSTZYZ_YZID"); + sql.ParamByName("pTJYS").Value = sTJYS.Trim(); + sql.ParamByName("sBJFLID").Value = sBJFLID.Trim(); + DataSet ds = dberp.OpenDataSet(sql); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + dicYZZ.Add(ds.Tables[0].Rows[i]["XLXSTZYZ_YZID"].ToString().Trim(), 0); + } + return dicYZZ; + } + + + //获取调价因素为" "的报价因子值 + public static Dictionary GetBJDYZZ0(string sBJFLID, bool bWGCP, bool bWGCPBZChanged, string sBJDJLDW, string sBJU003, string sXLXHID, string sXLGGID, string sXLBZID, string sDYDJID, string sBJDID) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + sql.Add("select XLXSBJDYZZ_YZZ,XLXSBJDYZZ_YZID,XLXSTZYZ_MRTJFW,XLXSTZYZ_JJFS from XLXSBJDYZZ,XLXSTZYZ"); + sql.Add(" where XLXSTZYZ_JGBID=XLXSBJDYZZ_JGBID and XLXSTZYZ_YZID=XLXSBJDYZZ_YZID and XLXSTZYZ_MXBH='BJD'"); + sql.Add(" and exists(select 1 from XLXSBJFLYZ where XLXSBJFLYZ_BJFLID=:pBJFLID and XLXSBJFLYZ_YZID=XLXSTZYZ_YZID)"); + sql.Add(" order by XLXSBJDYZZ_YZID"); + sql.ParamByName("pBJFLID").Value = sBJFLID.Trim(); + DataSet ds = dberp.OpenDataSet(sql); + Dictionary dicYZZ0 = new Dictionary(); + CMISproSession tSession = CMISproSessionManager.GetCurrentSession(); + double dSL = string.IsNullOrEmpty((tSession.GetOption(100860000, "BJU055"))) ? 0 : (double.Parse((tSession.GetOption(100860000, "BJU055")))) / 100.0; ; + bool IsHSWL = (dSL == 0); + bool IsHS = GetBJDHSBZ(sBJDID); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + //形如(BJ10,2) + if (!dicYZZ0.ContainsKey(ds.Tables[0].Rows[i]["XLXSBJDYZZ_YZID"].ToString().Trim())) + { + double dYZZ = CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSBJDYZZ_YZZ"].ToString()); + if (ds.Tables[0].Rows[i]["XLXSTZYZ_JJFS"].ToString().Trim() == "JJ") + { + dYZZ *= GetHSBL(sBJDJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID); + if ((!IsHS) && (!IsHSWL)) + { + dYZZ = dYZZ / NumberUtils.RoundX((1 + dSL), 6); + } + } + string sMRTJFW = "," + ds.Tables[0].Rows[i]["XLXSTZYZ_MRTJFW"].ToString().Trim() + ","; + if (sMRTJFW.Contains(",2,") && !bWGCP)//2|外购产品 + { + dYZZ = 0.0; + } + if (sMRTJFW.Contains(",3,") && bWGCP)//3|非外购产品 + { + dYZZ = 0.0; + } + if (!bWGCPBZChanged) + { + dicYZZ0.Add(ds.Tables[0].Rows[i]["XLXSBJDYZZ_YZID"].ToString().Trim(), dYZZ); + } + else//如果是外购产品标志变了,则只重新获取外购因子、非外购因子的默认值,以免冲掉用户手动修改的因子值 + { + if (sMRTJFW.Contains(",2,") || sMRTJFW.Contains(",3,")) + { + dicYZZ0.Add(ds.Tables[0].Rows[i]["XLXSBJDYZZ_YZID"].ToString().Trim(), dYZZ); + } + } + } + } + return dicYZZ0; + } + + //获取调价因素为“1|付款方式”的报价因子值 + public static Dictionary GetBJDYZZ1(string sBJFLID, string sPJLX, string sBJDJLDW, string sBJU003, string sXLXHID, string sXLGGID, string sXLBZID, string sDYDJID, string sBJDID) + { + //string sBJDJSDW = GetsJSDW(sBJDJLDW, sBJU003); + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + sql.Add("select XLXSBJDYZZ1_YZZ,XLXSBJDYZZ1_YZID,XLXSTZYZ_JJFS from XLXSBJDYZZ1,XLXSTZYZ"); + sql.Add(" where XLXSTZYZ_JGBID=XLXSBJDYZZ1_JGBID and XLXSTZYZ_YZID=XLXSBJDYZZ1_YZID and XLXSTZYZ_MXBH='BJD'"); + sql.Add(" and exists(select 1 from XLXSBJFLYZ where XLXSBJFLYZ_BJFLID=:pBJFLID and XLXSBJFLYZ_YZID=XLXSTZYZ_YZID)"); + sql.Add(" and XLXSBJDYZZ1_PJLX =:pPJLX "); + sql.Add(" order by XLXSBJDYZZ1_YZID"); + sql.ParamByName("pBJFLID").Value = sBJFLID.Trim(); + sql.ParamByName("pPJLX").Value = sPJLX; + DataSet ds = dberp.OpenDataSet(sql); + Dictionary dicYZZ1 = InitdicYZZ(sBJFLID, "1"); + CMISproSession tSession = CMISproSessionManager.GetCurrentSession(); + double dSL = string.IsNullOrEmpty((tSession.GetOption(100860000, "BJU055"))) ? 0 : (double.Parse((tSession.GetOption(100860000, "BJU055")))) / 100.0; ; + bool IsHSWL = (dSL == 0); + bool IsHS = GetBJDHSBZ(sBJDID); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + double dYZZ = CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSBJDYZZ1_YZZ"].ToString()); + if (ds.Tables[0].Rows[i]["XLXSTZYZ_JJFS"].ToString().Trim() == "JJ") + { + dYZZ *= GetHSBL(sBJDJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID); + if ((!IsHS) && (!IsHSWL)) + { + dYZZ = dYZZ / NumberUtils.RoundX((1 + dSL), 6); + } + } + //形如(BJ10,2) + if (!dicYZZ1.ContainsKey(ds.Tables[0].Rows[i]["XLXSBJDYZZ1_YZID"].ToString().Trim())) + { + dicYZZ1.Add(ds.Tables[0].Rows[i]["XLXSBJDYZZ1_YZID"].ToString().Trim(), dYZZ); + } + else + { + dicYZZ1[ds.Tables[0].Rows[i]["XLXSBJDYZZ1_YZID"].ToString().Trim()] = dYZZ; + } + } + return dicYZZ1; + } + + //获取调价因素为“2|导体材料&电压区间&报价数量区间”的报价因子值 + public static Dictionary GetBJDYZZ2(string sBJFLID, string sDYDJID, double fBJSL, string sXLXHID, string sBJDJLDW, string sBJU003, string sXLGGID, string sXLBZID, string sBJDID) + { + string sBJDJSDW = GetsJSDW(sBJDJLDW, sBJU003); + Dictionary dicLenJLDWTD = XLBJDUtils.GetLenJLDWTD(); + Dictionary dicYZZ2 = new Dictionary(); + if (!CMISproDataBase.ExistsRecord("DBERP", string.Format("select XLXHB_CPYT from XLXHB where XLXHB_XLXHID ='{0}' and XLXHB_CPYT in (select XLXSBJDYZZ2BSY1_CPYT from XLXSBJDYZZ2BSY1)", sXLXHID))) + { + string sDTCLID = ""; + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + sql.Clear(); + sql.Add(" select XLXHB_DTCLID from XLXHB WHERE XLXHB_XLXHID =:pXLXHID "); + sql.ParamByName("pXLXHID").Value = sXLXHID; + DataSet data = dberp.OpenDataSet(sql); + if (data.Tables[0].Rows.Count > 0) + { + sDTCLID = data.Tables[0].Rows[0][0].ToString().Trim(); + } + + sql.Clear(); + sql.Add("select XLXSBJDYZZ2_YZZ,XLXSBJDYZZ2_YZID,XLXSBJDYZZ2_DTCLID,XLXSTZYZ_JJFS, "); + sql.Add(" case WHEN XLXSBJDYZZ2_DTCLID<>' ' then 1 "); + sql.Add(" WHEN XLXSBJDYZZ2_DTCLID=' ' then 2 "); + sql.Add("end as PX "); + sql.Add(" from XLXSBJDYZZ2,XLXSTZYZ,"); + sql.Add("("); + sql.Add("select (case when XLDYDJB_XXLXDY>XLDYDJB_XXXXDY then XLDYDJB_XXLXDY else XLDYDJB_XXXXDY end)"); + sql.Add(" *(case XLDYDJB_DYJLDW when 'V' then 1 else 1000 end) as DY"); + sql.Add(" from XLDYDJB"); + sql.Add(" where XLDYDJB_DYDJID=:pDYDJID"); + sql.Add(") DYDJB "); + sql.Add(" where XLXSTZYZ_JGBID=XLXSBJDYZZ2_JGBID and XLXSTZYZ_YZID=XLXSBJDYZZ2_YZID and XLXSTZYZ_MXBH='BJD'"); + sql.Add(" and exists(select 1 from XLXSBJFLYZ where XLXSBJFLYZ_BJFLID=:pBJFLID and XLXSBJFLYZ_YZID=XLXSTZYZ_YZID)"); + sql.Add(" and XLXSBJDYZZ2_DYXX<=DY and ((XLXSBJDYZZ2_DYSX<>0 and XLXSBJDYZZ2_DYSX>DY) or XLXSBJDYZZ2_DYSX=0)"); + sql.Add(" and XLXSBJDYZZ2_BJSLXX<=:pBJSL and ((XLXSBJDYZZ2_BJSLSX<>0 and XLXSBJDYZZ2_BJSLSX>:pBJSL) or XLXSBJDYZZ2_BJSLSX=0)"); + sql.Add(" order by PX,XLXSBJDYZZ2_YZID"); + sql.ParamByName("pBJFLID").Value = sBJFLID.Trim(); + sql.ParamByName("pDYDJID").Value = sDYDJID.Trim(); + sql.ParamByName("pBJSL").Value = fBJSL; + DataSet ds = dberp.OpenDataSet(sql); + CMISproSession tSession = CMISproSessionManager.GetCurrentSession(); + double dSL = string.IsNullOrEmpty((tSession.GetOption(100860000, "BJU055"))) ? 0 : (double.Parse((tSession.GetOption(100860000, "BJU055")))) / 100.0; ; + bool IsHSWL = (dSL == 0); + bool IsHS = GetBJDHSBZ(sBJDID); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + double dYZZ = CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSBJDYZZ2_YZZ"].ToString()); + if (ds.Tables[0].Rows[i]["XLXSTZYZ_JJFS"].ToString().Trim() == "JJ") + { + dYZZ *= GetHSBL(sBJDJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID); + if ((!IsHS) && (!IsHSWL)) + { + dYZZ = NumberUtils.RoundX(dYZZ / (1 + dSL), 6); + } + } + //形如(BJ10,2) + if (ds.Tables[0].Rows[i]["PX"].ToString().Trim().Equals("1")) + { + if (ds.Tables[0].Rows[i]["XLXSBJDYZZ2_DTCLID"].ToString().Trim().Equals(sDTCLID)) + { + if (!dicYZZ2.ContainsKey(ds.Tables[0].Rows[i]["XLXSBJDYZZ2_YZID"].ToString().Trim())) + { + if (sBJDJSDW.Equals("M") || sBJDJSDW.Equals("Km") || dicLenJLDWTD.ContainsKey(sBJDJSDW)) + dicYZZ2.Add(ds.Tables[0].Rows[i]["XLXSBJDYZZ2_YZID"].ToString().Trim(), dYZZ); + else + dicYZZ2.Add(ds.Tables[0].Rows[i]["XLXSBJDYZZ2_YZID"].ToString().Trim(), 0); + + } + } + } + if (ds.Tables[0].Rows[i]["PX"].ToString().Trim().Equals("2")) + { + + if (!dicYZZ2.ContainsKey(ds.Tables[0].Rows[i]["XLXSBJDYZZ2_YZID"].ToString().Trim())) + { + if (sBJDJSDW.Equals("M") || sBJDJSDW.Equals("Km") || dicLenJLDWTD.ContainsKey(sBJDJSDW)) + dicYZZ2.Add(ds.Tables[0].Rows[i]["XLXSBJDYZZ2_YZID"].ToString().Trim(), dYZZ); + else + dicYZZ2.Add(ds.Tables[0].Rows[i]["XLXSBJDYZZ2_YZID"].ToString().Trim(), 0); + } + + } + + //dicYZZ2.Add(ds.Tables[0].Rows[i]["XLXSBJDYZZ2_YZID"].ToString().Trim(), CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSBJDYZZ2_YZZ"].ToString())); + } + } + Dictionary tmpdicYZZ2 = InitdicYZZ(sBJFLID, "2"); + foreach (string key in tmpdicYZZ2.Keys) + { + if (!dicYZZ2.ContainsKey(key)) + { + dicYZZ2.Add(key, 0); + } + } + return dicYZZ2; + } + + //获取调价因素为“3|产品用途&电压等级分类&报价数量区间”的报价因子值 + public static Dictionary GetBJDYZZ3(string sBJFLID, double fBJSL, string sXLXHID, string sXLGGID, string sXLBZID, string sDYDJID, string sBJDJLDW, string sBJU003, string sBJDID) + { + string sBJDJSDW = GetsJSDW(sBJDJLDW, sBJU003); + Dictionary dicLenJLDWTD = XLBJDUtils.GetLenJLDWTD(); + Dictionary dicYZZ3 = new Dictionary(); + bool bBSY1 = CMISproDataBase.ExistsRecord("DBERP", string.Format("select XLXHB_CPYT from XLXHB where XLXHB_XLXHID ='{0}' and XLXHB_CPYT in (select XLXSBJDYZZ3BSY1_CPYT from XLXSBJDYZZ3BSY1)", sXLXHID)); + bool bBSY2 = CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSBJDYZZ3BSY2 " + + " where XLXSBJDYZZ3BSY2_XLXHID ='{0}' and XLXSBJDYZZ3BSY2_XLGGID='{1}' " + + " and XLXSBJDYZZ3BSY2_XLBZID='{2}' and XLXSBJDYZZ3BSY2_DYDJID='{3}' ", sXLXHID, sXLGGID, sXLBZID, sDYDJID)); + bool bBSY3 = CMISproDataBase.ExistsRecord("DBERP", string.Format("select XLXHB_XLJBXHID from XLXHB where XLXHB_XLXHID ='{0}' and XLXHB_XLJBXHID in (select XLXSBJDYZZ3BSY3_XLJBXHID from XLXSBJDYZZ3BSY3 where 1=1)", sXLXHID)); + + if (!bBSY1 && !bBSY2 && !bBSY3) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + sql.Add("select XLXSBJDYZZ3_YZZ,XLXSBJDYZZ3_YZID,XLXSTZYZ_JJFS, "); + sql.Add(" case WHEN XLXSBJDYZZ3_CPYT<>' ' and XLXSBJDYZZ3_DYDJFL<>' ' then 1"); + sql.Add(" WHEN XLXSBJDYZZ3_CPYT<>' ' and XLXSBJDYZZ3_DYDJFL=' ' then 2 "); + sql.Add(" WHEN XLXSBJDYZZ3_CPYT=' ' and XLXSBJDYZZ3_DYDJFL<>' ' then 3 "); + sql.Add(" WHEN XLXSBJDYZZ3_CPYT=' ' and XLXSBJDYZZ3_DYDJFL=' ' then 4 END AS PX,XLXSBJDYZZ3_CPYT,XLXSBJDYZZ3_DYDJFL "); + sql.Add(" from XLXSBJDYZZ3,XLXSTZYZ "); + sql.Add(" where XLXSTZYZ_JGBID=XLXSBJDYZZ3_JGBID and XLXSTZYZ_YZID=XLXSBJDYZZ3_YZID and XLXSTZYZ_MXBH='BJD'"); + sql.Add(" and exists(select 1 from XLXSBJFLYZ where XLXSBJFLYZ_BJFLID=:pBJFLID and XLXSBJFLYZ_YZID=XLXSTZYZ_YZID)"); + sql.Add(" and XLXSBJDYZZ3_BJSLXX<=:pBJSL and ((XLXSBJDYZZ3_BJSLSX<>0 and XLXSBJDYZZ3_BJSLSX>:pBJSL) or XLXSBJDYZZ3_BJSLSX=0)"); + sql.Add(" and (XLXSBJDYZZ3_CPYT =' ' or XLXSBJDYZZ3_CPYT = (select XLXHB_CPYT from XLXHB where XLXHB_XLXHID = :pXLXHID))"); + sql.Add(" and (XLXSBJDYZZ3_DYDJFL =' ' or XLXSBJDYZZ3_DYDJFL = (select XLDYDJB_DYDJFL from XLDYDJB where XLDYDJB_DYDJID = :pDYDJID)) "); + sql.Add(" order by PX,XLXSBJDYZZ3_YZID"); + sql.ParamByName("pBJFLID").Value = sBJFLID.Trim(); + sql.ParamByName("pBJSL").Value = fBJSL; + sql.ParamByName("pXLXHID").Value = sXLXHID; + sql.ParamByName("pDYDJID").Value = sDYDJID; + DataSet ds = dberp.OpenDataSet(sql); + CMISproSession tSession = CMISproSessionManager.GetCurrentSession(); + double dSL = string.IsNullOrEmpty((tSession.GetOption(100860000, "BJU055"))) ? 0 : (double.Parse((tSession.GetOption(100860000, "BJU055")))) / 100.0; ; + bool IsHSWL = (dSL == 0); + bool IsHS = GetBJDHSBZ(sBJDID); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + double dYZZ = CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSBJDYZZ3_YZZ"].ToString()); + if (ds.Tables[0].Rows[i]["XLXSTZYZ_JJFS"].ToString().Trim() == "JJ") + { + dYZZ *= GetHSBL(sBJDJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID); ; + if ((!IsHS) && (!IsHSWL)) + { + dYZZ = NumberUtils.RoundX(dYZZ / (1 + dSL), 6); + } + } + + //形如(BJ10,2) + if (ds.Tables[0].Rows[i]["PX"].ToString().Trim().Equals("1")) + { + if (!dicYZZ3.ContainsKey(ds.Tables[0].Rows[i]["XLXSBJDYZZ3_YZID"].ToString().Trim())) + { + if (sBJDJSDW.Equals("M") || sBJDJSDW.Equals("Km") || dicLenJLDWTD.ContainsKey(sBJDJSDW)) + dicYZZ3.Add(ds.Tables[0].Rows[i]["XLXSBJDYZZ3_YZID"].ToString().Trim(), dYZZ); + else + dicYZZ3.Add(ds.Tables[0].Rows[i]["XLXSBJDYZZ3_YZID"].ToString().Trim(), 0); + } + } + if (ds.Tables[0].Rows[i]["PX"].ToString().Trim().Equals("2")) + { + if (!dicYZZ3.ContainsKey(ds.Tables[0].Rows[i]["XLXSBJDYZZ3_YZID"].ToString().Trim())) + { + if (sBJDJSDW.Equals("M") || sBJDJSDW.Equals("Km") || dicLenJLDWTD.ContainsKey(sBJDJSDW)) + dicYZZ3.Add(ds.Tables[0].Rows[i]["XLXSBJDYZZ3_YZID"].ToString().Trim(), dYZZ); + else + dicYZZ3.Add(ds.Tables[0].Rows[i]["XLXSBJDYZZ3_YZID"].ToString().Trim(), 0); + } + } + if (ds.Tables[0].Rows[i]["PX"].ToString().Trim().Equals("3")) + { + if (!dicYZZ3.ContainsKey(ds.Tables[0].Rows[i]["XLXSBJDYZZ3_YZID"].ToString().Trim())) + { + if (sBJDJSDW.Equals("M") || sBJDJSDW.Equals("Km") || dicLenJLDWTD.ContainsKey(sBJDJSDW)) + dicYZZ3.Add(ds.Tables[0].Rows[i]["XLXSBJDYZZ3_YZID"].ToString().Trim(), dYZZ); + else + dicYZZ3.Add(ds.Tables[0].Rows[i]["XLXSBJDYZZ3_YZID"].ToString().Trim(), 0); + } + } + if (ds.Tables[0].Rows[i]["PX"].ToString().Trim().Equals("4")) + { + if (!dicYZZ3.ContainsKey(ds.Tables[0].Rows[i]["XLXSBJDYZZ3_YZID"].ToString().Trim())) + { + if (sBJDJSDW.Equals("M") || sBJDJSDW.Equals("Km") || dicLenJLDWTD.ContainsKey(sBJDJSDW)) + dicYZZ3.Add(ds.Tables[0].Rows[i]["XLXSBJDYZZ3_YZID"].ToString().Trim(), dYZZ); + else + dicYZZ3.Add(ds.Tables[0].Rows[i]["XLXSBJDYZZ3_YZID"].ToString().Trim(), 0); + + } + } + } + } + Dictionary tmpdicYZZ3 = InitdicYZZ(sBJFLID, "3"); + foreach (string key in tmpdicYZZ3.Keys) + { + if (!dicYZZ3.ContainsKey(key)) + { + dicYZZ3.Add(key, 0); + } + } + + return dicYZZ3; + } + + //获取调价因素为“E|型号&电压等级&主芯截面范围&报价数量区间”的报价因子值 + public static Dictionary GetBJDYZZE(string sBJFLID, string sXLXHID, string sDYDJID, double fZXJM, double fBJSL, string sBJDJLDW, string sBJU003, string sXLGGID, string sXLBZID, string sBJDID) + { + string sBJDJSDW = GetsJSDW(sBJDJLDW, sBJU003); + Dictionary dicLenJLDWTD = XLBJDUtils.GetLenJLDWTD(); + Dictionary dicYZZE = new Dictionary(); + bool bBSY1 = CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXHB where XLXHB_XLXHID ='{0}' and XLXHB_CPYT in (select XLXSBJDYZZEBSY1_CPYT from XLXSBJDYZZEBSY1)", sXLXHID)); + bool bBSY2 = CMISproDataBase.ExistsRecord("DBERP", string.Format("select XLXHB_XLJBXHID from XLXHB where XLXHB_XLXHID ='{0}' and XLXHB_XLJBXHID in (select XLXSBJDYZZEBSY2_XLJBXHID from XLXSBJDYZZEBSY2 where 1=1)", sXLXHID)); + + if (!bBSY1 && !bBSY2) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + sql.Clear(); + sql.Add("select XLXSBJDYZZE_YZZ,XLXSBJDYZZE_YZID,XLXSBJDYZZE_XLXHID,XLXSBJDYZZE_DYDJID,XLXSTZYZ_JJFS, "); + sql.Add(" case WHEN XLXSBJDYZZE_XLXHID<>' ' and XLXSBJDYZZE_DYDJID<>' ' then 1 "); + sql.Add(" WHEN XLXSBJDYZZE_XLXHID<>' ' and XLXSBJDYZZE_DYDJID=' ' then 2 "); + sql.Add(" WHEN XLXSBJDYZZE_XLXHID=' ' and XLXSBJDYZZE_DYDJID=' ' then 3 "); + sql.Add("end as PX "); + sql.Add(" from XLXSBJDYZZE,XLXSTZYZ"); + sql.Add(" where XLXSTZYZ_JGBID=XLXSBJDYZZE_JGBID and XLXSTZYZ_YZID=XLXSBJDYZZE_YZID and XLXSTZYZ_MXBH='BJD'"); + sql.Add(" and exists(select 1 from XLXSBJFLYZ where XLXSBJFLYZ_BJFLID=:pBJFLID and XLXSBJFLYZ_YZID=XLXSTZYZ_YZID)"); + sql.Add(" and (XLXSBJDYZZE_XLXHID=' ' or XLXSBJDYZZE_XLXHID=:pXLXHID)"); + sql.Add(" and (XLXSBJDYZZE_DYDJID=' ' or XLXSBJDYZZE_DYDJID=:pDYDJID)"); + sql.Add(" and XLXSBJDYZZE_ZXJMXX<=:pZXJM and ((XLXSBJDYZZE_ZXJMSX<>0 and XLXSBJDYZZE_ZXJMSX>=:pZXJM) or XLXSBJDYZZE_ZXJMSX=0)"); + sql.Add(" and XLXSBJDYZZE_BJSLXX<=:pBJSL and ((XLXSBJDYZZE_BJSLSX<>0 and XLXSBJDYZZE_BJSLSX>:pBJSL) or XLXSBJDYZZE_BJSLSX=0)"); + sql.Add(" order by PX,XLXSBJDYZZE_YZID"); + sql.ParamByName("pBJFLID").Value = sBJFLID.Trim(); + sql.ParamByName("pXLXHID").Value = sXLXHID; + sql.ParamByName("pDYDJID").Value = sDYDJID; + sql.ParamByName("pZXJM").Value = fZXJM; + sql.ParamByName("pBJSL").Value = fBJSL; + DataSet ds = dberp.OpenDataSet(sql); + CMISproSession tSession = CMISproSessionManager.GetCurrentSession(); + double dSL = string.IsNullOrEmpty((tSession.GetOption(100860000, "BJU055"))) ? 0 : (double.Parse((tSession.GetOption(100860000, "BJU055")))) / 100.0; ; + bool IsHSWL = (dSL == 0); + bool IsHS = GetBJDHSBZ(sBJDID); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + double dYZZ = CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSBJDYZZE_YZZ"].ToString()); + if (ds.Tables[0].Rows[i]["XLXSTZYZ_JJFS"].ToString().Trim() == "JJ") + { + if ((!IsHS) && (!IsHSWL)) + { + dYZZ = NumberUtils.RoundX(dYZZ / (1 + dSL), 6); + } + } + + if (!dicYZZE.ContainsKey(ds.Tables[0].Rows[i]["XLXSBJDYZZE_YZID"].ToString().Trim())) + { + if (sBJDJSDW.Equals("M") || sBJDJSDW.Equals("Km") || dicLenJLDWTD.ContainsKey(sBJDJSDW)) + dicYZZE.Add(ds.Tables[0].Rows[i]["XLXSBJDYZZE_YZID"].ToString().Trim(), dYZZ); + else + dicYZZE.Add(ds.Tables[0].Rows[i]["XLXSBJDYZZE_YZID"].ToString().Trim(), 0); + } + } + } + Dictionary tmpdicYZZE = InitdicYZZ(sBJFLID, "E"); + foreach (string key in tmpdicYZZE.Keys) + { + if (!dicYZZE.ContainsKey(key)) + { + dicYZZE.Add(key, 0); + } + } + return dicYZZE; + } + //获取调价因素为“G|按电压芯线结构导体材料主芯截面报价数量”的报价因子值 + public static Dictionary GetBJDYZZG(string sBJFLID, string sXLXHID, string sDYDJID, string sXXJGID, double fZXJM, double fBJSL, string sBJDJLDW, string sBJU003, string sBJDID) + { + string sBJDJSDW = GetsJSDW(sBJDJLDW, sBJU003); + Dictionary dicLenJLDWTD = XLBJDUtils.GetLenJLDWTD(); + Dictionary dicYZZG = new Dictionary(); + string sDTCLID = ""; + + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + sql.Clear(); + sql.Add(" select XLXHB_DTCLID,XLXHB_CPYT,XLXHB_XLTXID from XLXHB WHERE XLXHB_XLXHID =:pXLXHID "); + sql.ParamByName("pXLXHID").Value = sXLXHID; + DataSet daXLXH = dberp.OpenDataSet(sql); + if (daXLXH.Tables[0].Rows.Count > 0) + { + sDTCLID = daXLXH.Tables[0].Rows[0][0].ToString().Trim(); + + } + + sql.Clear(); + sql.Add("select XLXSBJDYZZG_YZZ,XLXSBJDYZZG_YZID,XLXSBJDYZZG_DTCLID,XLXSBJDYZZG_XXJGID,XLXSBJDYZZG_DYDJID,XLXSTZYZ_JJFS, "); + sql.Add(" case WHEN XLXSBJDYZZG_DTCLID<>' ' then 1 "); + sql.Add(" WHEN XLXSBJDYZZG_DTCLID=' ' then 2 "); + sql.Add("end as PX "); + sql.Add(" from XLXSBJDYZZG,XLXSTZYZ"); + sql.Add(" where XLXSTZYZ_JGBID=XLXSBJDYZZG_JGBID and XLXSTZYZ_YZID=XLXSBJDYZZG_YZID and XLXSTZYZ_MXBH='BJD'"); + sql.Add(" and exists(select 1 from XLXSBJFLYZ where XLXSBJFLYZ_BJFLID=:pBJFLID and XLXSBJFLYZ_YZID=XLXSTZYZ_YZID)"); + sql.Add(" and (XLXSBJDYZZG_DTCLID=' ' or XLXSBJDYZZG_DTCLID=:pDTCLID)"); + sql.Add(" and (XLXSBJDYZZG_DYDJID=:pDYDJID) and XLXSBJDYZZG_XXJGID=:pXXJGID "); + sql.Add(" and XLXSBJDYZZG_ZXJMXX<=:pZXJM and ((XLXSBJDYZZG_ZXJMSX<>0 and XLXSBJDYZZG_ZXJMSX>=:pZXJM) or XLXSBJDYZZG_ZXJMSX=0)"); + sql.Add(" and XLXSBJDYZZG_BJSLXX<=:pBJSL and ((XLXSBJDYZZG_BJSLSX<>0 and XLXSBJDYZZG_BJSLSX>:pBJSL) or XLXSBJDYZZG_BJSLSX=0)"); + sql.Add(" order by PX,XLXSBJDYZZG_YZID"); + sql.ParamByName("pBJFLID").Value = sBJFLID.Trim(); + sql.ParamByName("pXXJGID").Value = sXXJGID.Trim(); + sql.ParamByName("pDTCLID").Value = sDTCLID; + sql.ParamByName("pDYDJID").Value = sDYDJID; + sql.ParamByName("pZXJM").Value = fZXJM; + sql.ParamByName("pBJSL").Value = fBJSL; + DataSet ds = dberp.OpenDataSet(sql); + CMISproSession tSession = CMISproSessionManager.GetCurrentSession(); + double dSL = string.IsNullOrEmpty((tSession.GetOption(100860000, "BJU055"))) ? 0 : (double.Parse((tSession.GetOption(100860000, "BJU055")))) / 100.0; + bool IsHSWL = (dSL == 0); + bool IsHS = GetBJDHSBZ(sBJDID); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + double dYZZ = CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSBJDYZZG_YZZ"].ToString()); + if (ds.Tables[0].Rows[i]["XLXSTZYZ_JJFS"].ToString().Trim() == "JJ") + { + if ((!IsHS) && (!IsHSWL)) + { + dYZZ = NumberUtils.RoundX(dYZZ / (1 + dSL), 6); + } + } + + if (!dicYZZG.ContainsKey(ds.Tables[0].Rows[i]["XLXSBJDYZZG_YZID"].ToString().Trim())) + { + if (sBJDJSDW.Equals("M") || sBJDJSDW.Equals("Km") || dicLenJLDWTD.ContainsKey(sBJDJSDW)) + dicYZZG.Add(ds.Tables[0].Rows[i]["XLXSBJDYZZG_YZID"].ToString().Trim(), dYZZ); + else + dicYZZG.Add(ds.Tables[0].Rows[i]["XLXSBJDYZZG_YZID"].ToString().Trim(), 0); + } + } + + Dictionary tmpdicYZZG = InitdicYZZ(sBJFLID, "G"); + foreach (string key in tmpdicYZZG.Keys) + { + if (!dicYZZG.ContainsKey(key)) + { + dicYZZG.Add(key, 0); + } + } + return dicYZZG; + } + + //获取调价因素为“F|电压等级&芯线结构&报价数量区间加价/报价数量”的报价因子值 + public static Dictionary GetBJDYZZF(string sBJFLID, string sDYDJID, string sXXJGID, double fBJSL, string sBJDJLDW, string sBJU003, string sBJDID) + { + return GetBJDYZZF(sBJFLID, " ", sDYDJID, sXXJGID, fBJSL, sBJDJLDW, sBJU003, sBJDID); + } + + //获取调价因素为“F|导体材料&电压等级&芯线结构&报价数量区间加价/报价数量”的报价因子值 + public static Dictionary GetBJDYZZF(string sBJFLID, string sXLXHID, string sDYDJID, string sXXJGID, double fBJSL, string sBJDJLDW, string sBJU003, string sBJDID) + { + string sBJDJSDW = GetsJSDW(sBJDJLDW, sBJU003); + string sDTCLID = GetDTCLIDByXLXHID(sXLXHID); + Dictionary dicLenJLDWTD = XLBJDUtils.GetLenJLDWTD(); + Dictionary dicYZZF = new Dictionary(); + //当前计量单位与参数一致后,报价数量的变化后的值 + double dBJU003HSBL = 1.0; + CMISproSession tSession = CMISproSessionManager.GetCurrentSession(); + double dSL = string.IsNullOrEmpty((tSession.GetOption(100860000, "BJU055"))) ? 0 : (double.Parse((tSession.GetOption(100860000, "BJU055")))) / 100.0; ; + bool IsHSWL = (dSL == 0); + bool IsHS = GetBJDHSBZ(sBJDID); + dBJU003HSBL = XLBJDUtils.GetJLDWHSBL_SL(sBJDJSDW, sBJU003); + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + if (fBJSL != 0) + { + sql.Clear(); + sql.Add("select XLXSBJDYZZF_YZZ,XLXSBJDYZZF_YZID,XLXSBJDYZZF_XXJGID,XLXSBJDYZZF_DYDJID,XLXSTZYZ_JJFS, "); + sql.Add(" case WHEN XLXSBJDYZZF_XXJGID<>' ' and XLXSBJDYZZF_DYDJID<>' ' then 1 "); + sql.Add(" WHEN XLXSBJDYZZF_DYDJID<>' ' and XLXSBJDYZZF_XXJGID=' ' then 2 "); + sql.Add("end as PX "); + sql.Add(" from XLXSBJDYZZF,XLXSTZYZ"); + sql.Add(" where XLXSTZYZ_JGBID=XLXSBJDYZZF_JGBID and XLXSTZYZ_YZID=XLXSBJDYZZF_YZID and XLXSTZYZ_MXBH='BJD'"); + sql.Add(" and exists(select 1 from XLXSBJFLYZ where XLXSBJFLYZ_BJFLID=:pBJFLID and XLXSBJFLYZ_YZID=XLXSTZYZ_YZID)"); + sql.Add(" and (XLXSBJDYZZF_XXJGID=' ' or XLXSBJDYZZF_XXJGID=:pXXJGID)"); + sql.Add(" and (XLXSBJDYZZF_DYDJID=' ' or XLXSBJDYZZF_DYDJID=:pDYDJID)"); + sql.Add(" and XLXSBJDYZZF_DTCLID=:pDTCLID "); + sql.Add(" and XLXSBJDYZZF_BJSLXX<=:pBJSL and ((XLXSBJDYZZF_BJSLSX<>0 and XLXSBJDYZZF_BJSLSX>:pBJSL) or XLXSBJDYZZF_BJSLSX=0)"); + sql.Add(" order by PX,XLXSBJDYZZF_YZID"); + sql.ParamByName("pBJFLID").Value = sBJFLID.Trim(); + sql.ParamByName("pXXJGID").Value = sXXJGID; + sql.ParamByName("pDYDJID").Value = sDYDJID; + sql.ParamByName("pDTCLID").Value = sDTCLID; + sql.ParamByName("pBJSL").Value = fBJSL; + DataSet ds = dberp.OpenDataSet(sql); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + Double dYZZ = CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSBJDYZZF_YZZ"].ToString()); + if (ds.Tables[0].Rows[i]["XLXSTZYZ_JJFS"].ToString().Trim() == "JJ") + { + if ((!IsHS) && (!IsHSWL)) + { + dYZZ = NumberUtils.RoundX(dYZZ / (1 + dSL), 6); + } + } + if (ds.Tables[0].Rows[i]["PX"].ToString().Trim().Equals("1")) + { + if (ds.Tables[0].Rows[i]["XLXSBJDYZZF_DYDJID"].ToString().Trim().Equals(sDYDJID) && ds.Tables[0].Rows[i]["XLXSBJDYZZF_XXJGID"].ToString().Trim().Equals(sXXJGID)) + { + if (!dicYZZF.ContainsKey(ds.Tables[0].Rows[i]["XLXSBJDYZZF_YZID"].ToString().Trim())) + { + if (sBJDJSDW.Equals("M") || sBJDJSDW.Equals("Km") || dicLenJLDWTD.ContainsKey(sBJDJSDW)) + dicYZZF.Add(ds.Tables[0].Rows[i]["XLXSBJDYZZF_YZID"].ToString().Trim(), NumberUtils.RoundX(dYZZ / fBJSL * dBJU003HSBL, 6)); + else + dicYZZF.Add(ds.Tables[0].Rows[i]["XLXSBJDYZZF_YZID"].ToString().Trim(), 0); + } + } + } + if (ds.Tables[0].Rows[i]["PX"].ToString().Trim().Equals("2")) + { + if (ds.Tables[0].Rows[i]["XLXSBJDYZZF_DYDJID"].ToString().Trim().Equals(sDYDJID)) + { + if (!dicYZZF.ContainsKey(ds.Tables[0].Rows[i]["XLXSBJDYZZF_YZID"].ToString().Trim())) + { + if (sBJDJSDW.Equals("M") || sBJDJSDW.Equals("Km") || dicLenJLDWTD.ContainsKey(sBJDJSDW)) + dicYZZF.Add(ds.Tables[0].Rows[i]["XLXSBJDYZZF_YZID"].ToString().Trim(), NumberUtils.RoundX(dYZZ / fBJSL * dBJU003HSBL, 6)); + else + dicYZZF.Add(ds.Tables[0].Rows[i]["XLXSBJDYZZF_YZID"].ToString().Trim(), 0); + } + } + } + } + } + Dictionary tmpdicYZZF = InitdicYZZ(sBJFLID, "F"); + foreach (string key in tmpdicYZZF.Keys) + { + if (!dicYZZF.ContainsKey(key)) + { + dicYZZF.Add(key, 0); + } + } + + return dicYZZF; + } + + //获取调价因素为“H|型号&主芯截面范围&报价数量区间加价/报价数量”的报价因子值 + public static Dictionary GetBJDYZZH(string sBJFLID, string sXLXHID, string sDYDJID, string sXLYSID, double fZXJM, double fBJSL, string sBJDJLDW, string sBJU003, string sBJDID) + { + string sBJDJSDW = GetsJSDW(sBJDJLDW, sBJU003); + Dictionary dicLenJLDWTD = XLBJDUtils.GetLenJLDWTD(); + Dictionary dicYZZH = new Dictionary(); + //当前计量单位与参数一致后,报价数量的变化后的值 + double dBJU003HSBL = 1.0; + dBJU003HSBL = XLBJDUtils.GetJLDWHSBL_SL(sBJDJSDW, sBJU003); + if (sXLYSID.Contains("|")) + sXLYSID = sXLYSID.Split('|')[0]; + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + if (fBJSL != 0) + { + sql.Clear(); + sql.Add("select XLXSBJDYZZH_YZZ,XLXSBJDYZZH_YZID,XLXSBJDYZZH_XLXHID,XLXSBJDYZZH_DYDJID,XLXSBJDYZZH_XLYSID,XLXSTZYZ_JJFS, "); + sql.Add("case WHEN isnull(XLXSBJDYZZH_DYDJID, ' ') <> ' ' and isnull(XLXSBJDYZZH_XLYSID,' ') <> ' ' then 1 "); + sql.Add(" WHEN isnull(XLXSBJDYZZH_DYDJID, ' ') <> ' ' and isnull(XLXSBJDYZZH_XLYSID,' ') = ' ' then 2 "); + sql.Add(" WHEN isnull(XLXSBJDYZZH_DYDJID, ' ') = ' ' and isnull(XLXSBJDYZZH_XLYSID,' ') <> ' ' then 3 "); + sql.Add(" WHEN isnull(XLXSBJDYZZH_DYDJID, ' ') = ' ' and isnull(XLXSBJDYZZH_XLYSID,' ') = ' ' then 4 end as PX"); + sql.Add(" from XLXSBJDYZZH,XLXSTZYZ"); + sql.Add(" where XLXSTZYZ_JGBID=XLXSBJDYZZH_JGBID and XLXSTZYZ_YZID=XLXSBJDYZZH_YZID and XLXSTZYZ_MXBH='BJD'"); + sql.Add(" and exists(select 1 from XLXSBJFLYZ where XLXSBJFLYZ_BJFLID=:pBJFLID and XLXSBJFLYZ_YZID=XLXSTZYZ_YZID)"); + sql.Add(" and XLXSBJDYZZH_XLXHID=:pXLXHID "); + sql.Add(" and XLXSBJDYZZH_ZXJMXX<=:pZXJM and ((XLXSBJDYZZH_ZXJMSX<>0 and XLXSBJDYZZH_ZXJMSX>=:pZXJM) or XLXSBJDYZZH_ZXJMSX=0)"); + sql.Add(" and XLXSBJDYZZH_BJSLXX<=:pBJSL and ((XLXSBJDYZZH_BJSLSX<>0 and XLXSBJDYZZH_BJSLSX>:pBJSL) or XLXSBJDYZZH_BJSLSX=0)"); + sql.Add(" order by PX,XLXSBJDYZZH_YZID"); + sql.ParamByName("pBJFLID").Value = sBJFLID.Trim(); + sql.ParamByName("pXLXHID").Value = sXLXHID; + sql.ParamByName("pZXJM").Value = fZXJM; + sql.ParamByName("pBJSL").Value = fBJSL; + DataSet ds = dberp.OpenDataSet(sql); + CMISproSession tSession = CMISproSessionManager.GetCurrentSession(); + double dSL = string.IsNullOrEmpty((tSession.GetOption(100860000, "BJU055"))) ? 0 : (double.Parse((tSession.GetOption(100860000, "BJU055")))) / 100.0; ; + bool IsHSWL = (dSL == 0); + bool IsHS = GetBJDHSBZ(sBJDID); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + double dYZZ = CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSBJDYZZH_YZZ"].ToString()); + if (ds.Tables[0].Rows[i]["XLXSTZYZ_JJFS"].ToString().Trim() == "JJ") + { + if ((!IsHS) && (!IsHSWL)) + { + dYZZ = NumberUtils.RoundX(dYZZ / (1 + dSL), 6); + } + } + if (ds.Tables[0].Rows[i]["PX"].ToString().Trim().Equals("1")) + { + if (ds.Tables[0].Rows[i]["XLXSBJDYZZH_DYDJID"].ToString().Trim().Equals(sDYDJID) && ds.Tables[0].Rows[i]["XLXSBJDYZZH_XLYSID"].ToString().Trim().Equals(sXLYSID)) + { + if (!dicYZZH.ContainsKey(ds.Tables[0].Rows[i]["XLXSBJDYZZH_YZID"].ToString().Trim())) + { + if (sBJDJSDW.Equals("M") || sBJDJSDW.Equals("Km") || dicLenJLDWTD.ContainsKey(sBJDJSDW)) + dicYZZH.Add(ds.Tables[0].Rows[i]["XLXSBJDYZZH_YZID"].ToString().Trim(), NumberUtils.RoundX(dYZZ / fBJSL * dBJU003HSBL, 6)); + else + dicYZZH.Add(ds.Tables[0].Rows[i]["XLXSBJDYZZH_YZID"].ToString().Trim(), 0); + } + } + } + if (ds.Tables[0].Rows[i]["PX"].ToString().Trim().Equals("2")) + { + if (ds.Tables[0].Rows[i]["XLXSBJDYZZH_DYDJID"].ToString().Trim().Equals(sDYDJID)) + { + if (!dicYZZH.ContainsKey(ds.Tables[0].Rows[i]["XLXSBJDYZZH_YZID"].ToString().Trim())) + { + if (sBJDJSDW.Equals("M") || sBJDJSDW.Equals("Km") || dicLenJLDWTD.ContainsKey(sBJDJSDW)) + dicYZZH.Add(ds.Tables[0].Rows[i]["XLXSBJDYZZH_YZID"].ToString().Trim(), NumberUtils.RoundX(dYZZ / fBJSL * dBJU003HSBL, 6)); + else + dicYZZH.Add(ds.Tables[0].Rows[i]["XLXSBJDYZZH_YZID"].ToString().Trim(), 0); + } + } + } + if (ds.Tables[0].Rows[i]["PX"].ToString().Trim().Equals("3")) + { + if (ds.Tables[0].Rows[i]["XLXSBJDYZZH_XLYSID"].ToString().Trim().Equals(sXLYSID)) + { + if (!dicYZZH.ContainsKey(ds.Tables[0].Rows[i]["XLXSBJDYZZH_YZID"].ToString().Trim())) + { + if (sBJDJSDW.Equals("M") || sBJDJSDW.Equals("Km") || dicLenJLDWTD.ContainsKey(sBJDJSDW)) + dicYZZH.Add(ds.Tables[0].Rows[i]["XLXSBJDYZZH_YZID"].ToString().Trim(), NumberUtils.RoundX(dYZZ / fBJSL * dBJU003HSBL, 6)); + else + dicYZZH.Add(ds.Tables[0].Rows[i]["XLXSBJDYZZH_YZID"].ToString().Trim(), 0); + } + } + } + if (ds.Tables[0].Rows[i]["PX"].ToString().Trim().Equals("4")) + { + if (!dicYZZH.ContainsKey(ds.Tables[0].Rows[i]["XLXSBJDYZZH_YZID"].ToString().Trim())) + { + if (sBJDJSDW.Equals("M") || sBJDJSDW.Equals("Km") || dicLenJLDWTD.ContainsKey(sBJDJSDW)) + dicYZZH.Add(ds.Tables[0].Rows[i]["XLXSBJDYZZH_YZID"].ToString().Trim(), NumberUtils.RoundX(dYZZ / fBJSL * dBJU003HSBL, 6)); + else + dicYZZH.Add(ds.Tables[0].Rows[i]["XLXSBJDYZZH_YZID"].ToString().Trim(), 0); + } + } + } + } + Dictionary tmpdicYZZH = InitdicYZZ(sBJFLID, "H"); + foreach (string key in tmpdicYZZH.Keys) + { + if (!dicYZZH.ContainsKey(key)) + { + dicYZZH.Add(key, 0); + } + } + + return dicYZZH; + } + + //获取调价因素为“4|型号”的报价因子值 + public static Dictionary GetBJDYZZ4(string sBJFLID, string sXLXHID, string sBJDJLDW, string sBJU003, string sXLGGID, string sXLBZID, string sDYDJID, string sBJDID) + { + //string sBJDJSDW = GetsJSDW(sBJDJLDW, sBJU003); + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + sql.Add("select XLXSBJDYZZ4_YZZ,XLXSBJDYZZ4_YZID,XLXSTZYZ_JJFS from XLXSBJDYZZ4,XLXSTZYZ"); + sql.Add(" where XLXSTZYZ_JGBID=XLXSBJDYZZ4_JGBID and XLXSTZYZ_YZID=XLXSBJDYZZ4_YZID and XLXSTZYZ_MXBH='BJD'"); + sql.Add(" and exists(select 1 from XLXSBJFLYZ where XLXSBJFLYZ_BJFLID=:pBJFLID and XLXSBJFLYZ_YZID=XLXSTZYZ_YZID)"); + sql.Add(" and XLXSBJDYZZ4_XLXHID =:pXLXHID "); + sql.Add(" order by XLXSBJDYZZ4_YZID"); + sql.ParamByName("pBJFLID").Value = sBJFLID.Trim(); + sql.ParamByName("pXLXHID").Value = sXLXHID; + DataSet ds = dberp.OpenDataSet(sql); + Dictionary dicYZZ4 = InitdicYZZ(sBJFLID, "4"); + CMISproSession tSession = CMISproSessionManager.GetCurrentSession(); + double dSL = string.IsNullOrEmpty((tSession.GetOption(100860000, "BJU055"))) ? 0 : (double.Parse((tSession.GetOption(100860000, "BJU055")))) / 100.0; ; + bool IsHSWL = (dSL == 0); + bool IsHS = GetBJDHSBZ(sBJDID); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + double dYZZ = CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSBJDYZZ4_YZZ"].ToString()); + if (ds.Tables[0].Rows[i]["XLXSTZYZ_JJFS"].ToString().Trim() == "JJ") + { + dYZZ *= GetHSBL(sBJDJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID); ; + if ((!IsHS) && (!IsHSWL)) + { + dYZZ = NumberUtils.RoundX(dYZZ / (1 + dSL), 6); + } + } + + //形如(BJ10,2) + if (!dicYZZ4.ContainsKey(ds.Tables[0].Rows[i]["XLXSBJDYZZ4_YZID"].ToString().Trim())) + { + dicYZZ4.Add(ds.Tables[0].Rows[i]["XLXSBJDYZZ4_YZID"].ToString().Trim(), dYZZ); + } + else + { + dicYZZ4[ds.Tables[0].Rows[i]["XLXSBJDYZZ4_YZID"].ToString().Trim()] = dYZZ; + } + } + return dicYZZ4; + } + + //获取调价因素为“5|销售区域&型号&标准&电压等级&主芯截面范围”的报价因子值 + public static Dictionary GetBJDYZZ5(string sBJFLID, string sXSQYID, string sXLXHID, string sXLBZID, string sDYDJID, double fZXJM, string sBJDJLDW, string sBJU003, string sXLGGID, string sBJDID) + { + //string sBJDJSDW = GetsJSDW(sBJDJLDW, sBJU003); + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + Dictionary dicYZZ5 = new Dictionary(); + sql.Clear(); + sql.Add("select XLXSBJDYZZ5_YZZ,XLXSBJDYZZ5_YZID,XLXSTZYZ_JJFS, "); + sql.Add("case WHEN XLXSBJDYZZ5_XSQYID<>' ' and XLXSBJDYZZ5_XLBZID<>' ' then 1 "); + sql.Add(" WHEN XLXSBJDYZZ5_XSQYID<>' ' and XLXSBJDYZZ5_XLBZID=' ' then 2 "); + sql.Add(" WHEN XLXSBJDYZZ5_XSQYID=' ' and XLXSBJDYZZ5_XLBZID<>' ' then 3 "); + sql.Add(" WHEN XLXSBJDYZZ5_XSQYID=' ' and XLXSBJDYZZ5_XLBZID=' ' then 4 "); + sql.Add(" END AS PX,XLXSBJDYZZ5_XSQYID,XLXSBJDYZZ5_XLBZID "); + sql.Add(" from XLXSBJDYZZ5,XLXSTZYZ "); + sql.Add(" where XLXSTZYZ_JGBID=XLXSBJDYZZ5_JGBID and XLXSTZYZ_YZID=XLXSBJDYZZ5_YZID and XLXSTZYZ_MXBH='BJD'"); + sql.Add(" and exists(select 1 from XLXSBJFLYZ where XLXSBJFLYZ_BJFLID=:pBJFLID and XLXSBJFLYZ_YZID=XLXSTZYZ_YZID)"); + sql.Add(" and XLXSBJDYZZ5_XLXHID=:pXLXHID and XLXSBJDYZZ5_DYDJID=:pDYDJID"); + sql.Add(" and XLXSBJDYZZ5_ZXJMXX<=:pZXJM and ((XLXSBJDYZZ5_ZXJMSX<>0 and XLXSBJDYZZ5_ZXJMSX>=:pZXJM) or XLXSBJDYZZ5_ZXJMSX=0)"); + sql.Add(" order by PX,XLXSBJDYZZ5_YZID "); + sql.ParamByName("pBJFLID").Value = sBJFLID.Trim(); + sql.ParamByName("pXLXHID").Value = sXLXHID; + sql.ParamByName("pDYDJID").Value = sDYDJID; + sql.ParamByName("pZXJM").Value = fZXJM; + DataSet ds = dberp.OpenDataSet(sql); + CMISproSession tSession = CMISproSessionManager.GetCurrentSession(); + double dSL = string.IsNullOrEmpty((tSession.GetOption(100860000, "BJU055"))) ? 0 : (double.Parse((tSession.GetOption(100860000, "BJU055")))) / 100.0; ; + bool IsHSWL = (dSL == 0); + bool IsHS = GetBJDHSBZ(sBJDID); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + double dYZZ = CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSBJDYZZ5_YZZ"].ToString()); + if (ds.Tables[0].Rows[i]["XLXSTZYZ_JJFS"].ToString().Trim() == "JJ") + { + dYZZ *= GetHSBL(sBJDJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID); ; + if ((!IsHS) && (!IsHSWL)) + { + dYZZ = NumberUtils.RoundX(dYZZ / (1 + dSL), 6); + } + } + + + if (ds.Tables[0].Rows[i]["PX"].ToString().Trim().Equals("1")) + { + if (ds.Tables[0].Rows[i]["XLXSBJDYZZ5_XSQYID"].ToString().Trim().Equals(sXSQYID) && ds.Tables[0].Rows[i]["XLXSBJDYZZ5_XLBZID"].ToString().Trim().Equals(sXLBZID)) + { + if (!dicYZZ5.ContainsKey(ds.Tables[0].Rows[i]["XLXSBJDYZZ5_YZID"].ToString().Trim())) + { + dicYZZ5.Add(ds.Tables[0].Rows[i]["XLXSBJDYZZ5_YZID"].ToString().Trim(), dYZZ); + + } + } + } + if (ds.Tables[0].Rows[i]["PX"].ToString().Trim().Equals("2")) + { + if (ds.Tables[0].Rows[i]["XLXSBJDYZZ5_XSQYID"].ToString().Trim().Equals(sXSQYID)) + { + if (!dicYZZ5.ContainsKey(ds.Tables[0].Rows[i]["XLXSBJDYZZ5_YZID"].ToString().Trim())) + { + dicYZZ5.Add(ds.Tables[0].Rows[i]["XLXSBJDYZZ5_YZID"].ToString().Trim(), dYZZ); + } + } + } + if (ds.Tables[0].Rows[i]["PX"].ToString().Trim().Equals("3")) + { + if (ds.Tables[0].Rows[i]["XLXSBJDYZZ5_XLBZID"].ToString().Trim().Equals(sXLBZID)) + { + if (!dicYZZ5.ContainsKey(ds.Tables[0].Rows[i]["XLXSBJDYZZ5_YZID"].ToString().Trim())) + { + dicYZZ5.Add(ds.Tables[0].Rows[i]["XLXSBJDYZZ5_YZID"].ToString().Trim(), dYZZ); + } + } + } + if (ds.Tables[0].Rows[i]["PX"].ToString().Trim().Equals("4")) + { + if (!dicYZZ5.ContainsKey(ds.Tables[0].Rows[i]["XLXSBJDYZZ5_YZID"].ToString().Trim())) + { + dicYZZ5.Add(ds.Tables[0].Rows[i]["XLXSBJDYZZ5_YZID"].ToString().Trim(), dYZZ); + } + } + + } + Dictionary tmpdicYZZ5 = InitdicYZZ(sBJFLID, "5"); + foreach (string key in tmpdicYZZ5.Keys) + { + if (!dicYZZ5.ContainsKey(key)) + { + dicYZZ5.Add(key, 0); + } + } + return dicYZZ5; + } + + //获取调价因素为“6|报价数量区间调价米数/报价数量”的报价因子值 + public static Dictionary GetBJDYZZ6(string sBJFLID, double fBJSL, string sBJDJLDW, string sBJU003, string sBJDID) + { + string sBJDJSDW = GetsJSDW(sBJDJLDW, sBJU003); + Dictionary dicLenJLDWTD = XLBJDUtils.GetLenJLDWTD(); + Dictionary dicYZZ6 = InitdicYZZ(sBJFLID, "6"); + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + sql.Add("select XLXSBJDYZZ6_YZZ,XLXSBJDYZZ6_YZID,XLXSTZYZ_JJFS from XLXSBJDYZZ6,XLXSTZYZ"); + sql.Add(" where XLXSTZYZ_JGBID=XLXSBJDYZZ6_JGBID and XLXSTZYZ_YZID=XLXSBJDYZZ6_YZID and XLXSTZYZ_MXBH='BJD'"); + sql.Add(" and exists(select 1 from XLXSBJFLYZ where XLXSBJFLYZ_BJFLID=:pBJFLID and XLXSBJFLYZ_YZID=XLXSTZYZ_YZID)"); + sql.Add(" and XLXSBJDYZZ6_BJSLXX<=:pBJSL and ((XLXSBJDYZZ6_BJSLSX<>0 and XLXSBJDYZZ6_BJSLSX>:pBJSL) or XLXSBJDYZZ6_BJSLSX=0)"); + sql.Add(" order by XLXSBJDYZZ6_YZID"); + sql.ParamByName("pBJFLID").Value = sBJFLID.Trim(); + sql.ParamByName("pBJSL").Value = fBJSL; + DataSet ds = dberp.OpenDataSet(sql); + CMISproSession tSession = CMISproSessionManager.GetCurrentSession(); + double dSL = string.IsNullOrEmpty((tSession.GetOption(100860000, "BJU055"))) ? 0 : (double.Parse((tSession.GetOption(100860000, "BJU055")))) / 100.0; ; + bool IsHSWL = (dSL == 0); + bool IsHS = GetBJDHSBZ(sBJDID); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + double dYZZ = CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSBJDYZZ6_YZZ"].ToString()); + if (ds.Tables[0].Rows[i]["XLXSTZYZ_JJFS"].ToString().Trim() == "JJ") + { + if ((!IsHS) && (!IsHSWL)) + { + dYZZ = NumberUtils.RoundX(dYZZ / (1 + dSL), 6); + } + } + //形如(BJ10,2) + if (fBJSL != 0) + { + if (!dicYZZ6.ContainsKey(ds.Tables[0].Rows[i]["XLXSBJDYZZ6_YZID"].ToString().Trim())) + { + if (sBJDJSDW.Equals("M") || sBJDJSDW.Equals("Km") || dicLenJLDWTD.ContainsKey(sBJDJSDW)) + dicYZZ6.Add(ds.Tables[0].Rows[i]["XLXSBJDYZZ6_YZID"].ToString().Trim(), dYZZ * 100.0 / fBJSL); + else + dicYZZ6.Add(ds.Tables[0].Rows[i]["XLXSBJDYZZ6_YZID"].ToString().Trim(), 0); + } + else + { + if (sBJDJSDW.Equals("M") || sBJDJSDW.Equals("Km") || dicLenJLDWTD.ContainsKey(sBJDJSDW)) + dicYZZ6[ds.Tables[0].Rows[i]["XLXSBJDYZZ6_YZID"].ToString().Trim()] = dYZZ * 100.0 / fBJSL; + } + } + } + return dicYZZ6; + } + + //获取调价因素为“7|型号&电压等级&芯线结构&主芯截面范围”的报价因子值 + public static Dictionary GetBJDYZZ7(string sBJFLID, string sXLXHID, string sDYDJID, string sXXJGID, double fZXJM, string sBJDJLDW, string sBJU003, string sXLGGID, string sXLBZID, string sBJDID) + { + //string sBJDJSDW = GetsJSDW(sBJDJLDW, sBJU003); + Dictionary dicYZZ7 = new Dictionary(); + dicYZZ7.Clear(); + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + sql.Add("select XLXSBJDYZZ7_YZZ,XLXSBJDYZZ7_YZID,XLXSTZYZ_JJFS, "); + + sql.Add(" case WHEN XLXSBJDYZZ7_DYDJID<>' ' and XLXSBJDYZZ7_XXJGID<>' ' then 1 "); + sql.Add(" WHEN XLXSBJDYZZ7_DYDJID<>' ' and XLXSBJDYZZ7_XXJGID=' ' then 2 "); + sql.Add(" WHEN XLXSBJDYZZ7_DYDJID=' ' and XLXSBJDYZZ7_XXJGID<>' ' then 3 "); + sql.Add(" WHEN XLXSBJDYZZ7_DYDJID=' ' and XLXSBJDYZZ7_XXJGID=' ' then 4 "); + sql.Add(" END AS PX,XLXSBJDYZZ7_DYDJID,XLXSBJDYZZ7_XXJGID "); + sql.Add(" from XLXSBJDYZZ7,XLXSTZYZ "); + sql.Add(" where XLXSTZYZ_JGBID=XLXSBJDYZZ7_JGBID and XLXSTZYZ_YZID=XLXSBJDYZZ7_YZID and XLXSTZYZ_MXBH='BJD'"); + sql.Add(" and exists(select 1 from XLXSBJFLYZ where XLXSBJFLYZ_BJFLID=:pBJFLID and XLXSBJFLYZ_YZID=XLXSTZYZ_YZID)"); + sql.Add(" and XLXSBJDYZZ7_XLXHID=:pXLXHID "); + sql.Add(" and XLXSBJDYZZ7_ZXJMXX<=:pZXJM and ((XLXSBJDYZZ7_ZXJMSX<>0 and XLXSBJDYZZ7_ZXJMSX>=:pZXJM) or XLXSBJDYZZ7_ZXJMSX=0)"); + sql.Add(" order by PX,XLXSBJDYZZ7_YZID"); + sql.ParamByName("pBJFLID").Value = sBJFLID.Trim(); + sql.ParamByName("pXLXHID").Value = sXLXHID; + sql.ParamByName("pZXJM").Value = fZXJM; + DataSet ds = dberp.OpenDataSet(sql); + CMISproSession tSession = CMISproSessionManager.GetCurrentSession(); + double dSL = string.IsNullOrEmpty((tSession.GetOption(100860000, "BJU055"))) ? 0 : (double.Parse((tSession.GetOption(100860000, "BJU055")))) / 100.0; ; + bool IsHSWL = (dSL == 0); + bool IsHS = GetBJDHSBZ(sBJDID); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + double dYZZ = CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSBJDYZZ7_YZZ"].ToString()); + if (ds.Tables[0].Rows[i]["XLXSTZYZ_JJFS"].ToString().Trim() == "JJ") + { + dYZZ *= GetHSBL(sBJDJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID); ; + if ((!IsHS) && (!IsHSWL)) + { + dYZZ = NumberUtils.RoundX(dYZZ / (1 + dSL), 6); + } + } + + if (ds.Tables[0].Rows[i]["PX"].ToString().Trim().Equals("1")) + { + if (ds.Tables[0].Rows[i]["XLXSBJDYZZ7_DYDJID"].ToString().Trim().Equals(sDYDJID) && ds.Tables[0].Rows[i]["XLXSBJDYZZ7_XXJGID"].ToString().Trim().Equals(sXXJGID)) + { + if (!dicYZZ7.ContainsKey(ds.Tables[0].Rows[i]["XLXSBJDYZZ7_YZID"].ToString().Trim())) + { + dicYZZ7.Add(ds.Tables[0].Rows[i]["XLXSBJDYZZ7_YZID"].ToString().Trim(), dYZZ); + } + } + } + if (ds.Tables[0].Rows[i]["PX"].ToString().Trim().Equals("2")) + { + if (ds.Tables[0].Rows[i]["XLXSBJDYZZ7_DYDJID"].ToString().Trim().Equals(sDYDJID)) + { + if (!dicYZZ7.ContainsKey(ds.Tables[0].Rows[i]["XLXSBJDYZZ7_YZID"].ToString().Trim())) + { + dicYZZ7.Add(ds.Tables[0].Rows[i]["XLXSBJDYZZ7_YZID"].ToString().Trim(), dYZZ); + } + } + } + if (ds.Tables[0].Rows[i]["PX"].ToString().Trim().Equals("3")) + { + if (ds.Tables[0].Rows[i]["XLXSBJDYZZ7_XXJGID"].ToString().Trim().Equals(sXXJGID)) + { + if (!dicYZZ7.ContainsKey(ds.Tables[0].Rows[i]["XLXSBJDYZZ7_YZID"].ToString().Trim())) + { + dicYZZ7.Add(ds.Tables[0].Rows[i]["XLXSBJDYZZ7_YZID"].ToString().Trim(), dYZZ); + } + } + } + if (ds.Tables[0].Rows[i]["PX"].ToString().Trim().Equals("4")) + { + if (!dicYZZ7.ContainsKey(ds.Tables[0].Rows[i]["XLXSBJDYZZ7_YZID"].ToString().Trim())) + { + dicYZZ7.Add(ds.Tables[0].Rows[i]["XLXSBJDYZZ7_YZID"].ToString().Trim(), dYZZ); + } + } + + } + Dictionary tmpdicYZZ7 = InitdicYZZ(sBJFLID, "7"); + foreach (string key in tmpdicYZZ7.Keys) + { + if (!dicYZZ7.ContainsKey(key)) + { + dicYZZ7.Add(key, 0); + } + } + return dicYZZ7; + } + + //获取调价因素为“8|付款期限”的报价因子值 + public static Dictionary GetBJDYZZ8(string sBJFLID, string sFKQXNR, string sBJDJLDW, string sBJU003, string sXLXHID, string sXLGGID, string sXLBZID, string sDYDJID, string sBJDID) + { + //string sBJDJSDW = GetsJSDW(sBJDJLDW, sBJU003); + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + sql.Add("select XLXSBJDYZZ8_YZZ,XLXSBJDYZZ8_YZID,XLXSTZYZ_JJFS from XLXSBJDYZZ8,XLXSTZYZ"); + sql.Add(" where XLXSTZYZ_JGBID=XLXSBJDYZZ8_JGBID and XLXSTZYZ_YZID=XLXSBJDYZZ8_YZID and XLXSTZYZ_MXBH='BJD'"); + sql.Add(" and exists(select 1 from XLXSBJFLYZ where XLXSBJFLYZ_BJFLID=:pBJFLID and XLXSBJFLYZ_YZID=XLXSTZYZ_YZID)"); + sql.Add(" and XLXSBJDYZZ8_FKQXNR =:pFKQXNR "); + sql.Add(" order by XLXSBJDYZZ8_YZID"); + sql.ParamByName("pBJFLID").Value = sBJFLID.Trim(); + sql.ParamByName("pFKQXNR").Value = sFKQXNR; + DataSet ds = dberp.OpenDataSet(sql); + Dictionary dicYZZ8 = InitdicYZZ(sBJFLID, "8"); + CMISproSession tSession = CMISproSessionManager.GetCurrentSession(); + double dSL = string.IsNullOrEmpty((tSession.GetOption(100860000, "BJU055"))) ? 0 : (double.Parse((tSession.GetOption(100860000, "BJU055")))) / 100.0; ; + bool IsHSWL = (dSL == 0); + bool IsHS = GetBJDHSBZ(sBJDID); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + double dYZZ = CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSBJDYZZ8_YZZ"].ToString()); + if (ds.Tables[0].Rows[i]["XLXSTZYZ_JJFS"].ToString().Trim() == "JJ") + { + dYZZ *= GetHSBL(sBJDJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID); ; + if ((!IsHS) && (!IsHSWL)) + { + dYZZ = NumberUtils.RoundX(dYZZ / (1 + dSL), 6); + } + } + + //形如(BJ10,2) + if (!dicYZZ8.ContainsKey(ds.Tables[0].Rows[i]["XLXSBJDYZZ8_YZID"].ToString().Trim())) + { + dicYZZ8.Add(ds.Tables[0].Rows[i]["XLXSBJDYZZ8_YZID"].ToString().Trim(), dYZZ); + } + else + { + dicYZZ8[ds.Tables[0].Rows[i]["XLXSBJDYZZ8_YZID"].ToString().Trim()] = dYZZ; + } + } + return dicYZZ8; + } + + //获取调价因素为“9|导体材料&产品用途&电压等级分类&产品特性”的报价因子值 + public static Dictionary GetBJDYZZ9(string sBJFLID, string sXLXHID, string sDYDJID, string sBJDJLDW, string sBJU003, string sXLGGID, string sXLBZID, string sBJDID) + { + //string sBJDJSDW = GetsJSDW(sBJDJLDW, sBJU003); + string sDTCLID = ""; + string sCPYT = ""; + string sXLTXID = ""; + string sDYDJFL = ""; + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + sql.Clear(); + sql.Add(" select XLXHB_DTCLID,XLXHB_CPYT,XLXHB_XLTXID from XLXHB WHERE XLXHB_XLXHID =:pXLXHID "); + sql.ParamByName("pXLXHID").Value = sXLXHID; + DataSet daXLXH = dberp.OpenDataSet(sql); + if (daXLXH.Tables[0].Rows.Count > 0) + { + sDTCLID = daXLXH.Tables[0].Rows[0][0].ToString().Trim(); + sCPYT = daXLXH.Tables[0].Rows[0][1].ToString().Trim(); + sXLTXID = daXLXH.Tables[0].Rows[0][2].ToString().Trim(); + } + + sql.Clear(); + sql.Add("select XLDYDJB_DYDJFL from XLDYDJB WHERE XLDYDJB_DYDJID =:pDYDJID "); + sql.ParamByName("pDYDJID").Value = sDYDJID; + DataSet daDYDJ = dberp.OpenDataSet(sql); + if (daDYDJ.Tables[0].Rows.Count > 0) + { + sDYDJFL = daDYDJ.Tables[0].Rows[0][0].ToString().Trim(); + } + + sql.Clear(); + sql.Add("select XLXSBJDYZZ9_YZZ,XLXSBJDYZZ9_YZID,XLXSTZYZ_JJFS, "); + sql.Add("case WHEN XLXSBJDYZZ9_CPYT<>' ' and XLXSBJDYZZ9_DYDJFL<>' ' and XLXSBJDYZZ9_XLTXID <> ' ' then 1 "); + sql.Add(" WHEN ( "); + sql.Add(" (XLXSBJDYZZ9_CPYT <>' ' and XLXSBJDYZZ9_DYDJFL<>' ' and XLXSBJDYZZ9_XLTXID = ' ') "); + sql.Add(" or (XLXSBJDYZZ9_CPYT = ' ' and XLXSBJDYZZ9_DYDJFL<>' ' and XLXSBJDYZZ9_XLTXID <> ' ') "); + sql.Add(" or (XLXSBJDYZZ9_CPYT <> ' ' and XLXSBJDYZZ9_DYDJFL=' ' and XLXSBJDYZZ9_XLTXID <> ' ') "); + sql.Add(" ) then 2 "); + sql.Add(" WHEN ( "); + sql.Add(" (XLXSBJDYZZ9_CPYT <>' ' and XLXSBJDYZZ9_DYDJFL=' ' and XLXSBJDYZZ9_XLTXID = ' ') "); + sql.Add(" or (XLXSBJDYZZ9_CPYT = ' ' and XLXSBJDYZZ9_DYDJFL<>' ' and XLXSBJDYZZ9_XLTXID = ' ') "); + sql.Add(" or (XLXSBJDYZZ9_CPYT = ' ' and XLXSBJDYZZ9_DYDJFL=' ' and XLXSBJDYZZ9_XLTXID <> ' ') "); + sql.Add(" ) then 3 "); + sql.Add(" WHEN XLXSBJDYZZ9_CPYT=' ' and XLXSBJDYZZ9_DYDJFL=' ' and XLXSBJDYZZ9_XLTXID = ' ' then 4 "); + sql.Add(" END AS PX,XLXSBJDYZZ9_CPYT,XLXSBJDYZZ9_DYDJFL,XLXSBJDYZZ9_XLTXID "); + sql.Add(" from XLXSBJDYZZ9,XLXSTZYZ "); + sql.Add(" where XLXSTZYZ_JGBID=XLXSBJDYZZ9_JGBID and XLXSTZYZ_YZID=XLXSBJDYZZ9_YZID and XLXSTZYZ_MXBH='BJD'"); + sql.Add(" and exists(select 1 from XLXSBJFLYZ where XLXSBJFLYZ_BJFLID=:pBJFLID and XLXSBJFLYZ_YZID=XLXSTZYZ_YZID)"); + sql.Add(" and XLXSBJDYZZ9_DTCLID=:pDTCLID "); + sql.Add(" order by PX,XLXSBJDYZZ9_YZID "); + sql.ParamByName("pBJFLID").Value = sBJFLID.Trim(); + sql.ParamByName("pDTCLID").Value = sDTCLID; + DataSet ds = dberp.OpenDataSet(sql); + Dictionary dicYZZ9 = new Dictionary(); + CMISproSession tSession = CMISproSessionManager.GetCurrentSession(); + double dSL = string.IsNullOrEmpty((tSession.GetOption(100860000, "BJU055"))) ? 0 : (double.Parse((tSession.GetOption(100860000, "BJU055")))) / 100.0; ; + bool IsHSWL = (dSL == 0); + bool IsHS = GetBJDHSBZ(sBJDID); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + double dYZZ = CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSBJDYZZ9_YZZ"].ToString()); + if (ds.Tables[0].Rows[i]["XLXSTZYZ_JJFS"].ToString().Trim() == "JJ") + { + dYZZ *= GetHSBL(sBJDJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID); ; + if ((!IsHS) && (!IsHSWL)) + { + dYZZ = NumberUtils.RoundX(dYZZ / (1 + dSL), 6); + } + } + + if (ds.Tables[0].Rows[i]["PX"].ToString().Trim().Equals("1")) + { + if (ds.Tables[0].Rows[i]["XLXSBJDYZZ9_CPYT"].ToString().Trim().Equals(sCPYT) + && ds.Tables[0].Rows[i]["XLXSBJDYZZ9_DYDJFL"].ToString().Trim().Equals(sDYDJFL) + && ds.Tables[0].Rows[i]["XLXSBJDYZZ9_XLTXID"].ToString().Trim().Equals(sXLTXID)) + { + if (!dicYZZ9.ContainsKey(ds.Tables[0].Rows[i]["XLXSBJDYZZ9_YZID"].ToString().Trim())) + { + dicYZZ9.Add(ds.Tables[0].Rows[i]["XLXSBJDYZZ9_YZID"].ToString().Trim(), dYZZ); + } + } + } + if (ds.Tables[0].Rows[i]["PX"].ToString().Trim().Equals("2")) + { + if ( + (ds.Tables[0].Rows[i]["XLXSBJDYZZ9_CPYT"].ToString().Trim().Equals(sCPYT) && ds.Tables[0].Rows[i]["XLXSBJDYZZ9_DYDJFL"].ToString().Trim().Equals(sDYDJFL)) + || (ds.Tables[0].Rows[i]["XLXSBJDYZZ9_CPYT"].ToString().Trim().Equals(sCPYT) && ds.Tables[0].Rows[i]["XLXSBJDYZZ9_XLTXID"].ToString().Trim().Equals(sXLTXID)) + || (ds.Tables[0].Rows[i]["XLXSBJDYZZ9_DYDJFL"].ToString().Trim().Equals(sDYDJFL) && ds.Tables[0].Rows[i]["XLXSBJDYZZ9_XLTXID"].ToString().Trim().Equals(sXLTXID)) + + ) + { + if (!dicYZZ9.ContainsKey(ds.Tables[0].Rows[i]["XLXSBJDYZZ9_YZID"].ToString().Trim())) + { + dicYZZ9.Add(ds.Tables[0].Rows[i]["XLXSBJDYZZ9_YZID"].ToString().Trim(), dYZZ); + } + } + } + if (ds.Tables[0].Rows[i]["PX"].ToString().Trim().Equals("3")) + { + if ( + (ds.Tables[0].Rows[i]["XLXSBJDYZZ9_CPYT"].ToString().Trim().Equals(sCPYT) && !sCPYT.Equals("")) + || (ds.Tables[0].Rows[i]["XLXSBJDYZZ9_DYDJFL"].ToString().Trim().Equals(sDYDJFL) && !sDYDJFL.Equals("")) + || (ds.Tables[0].Rows[i]["XLXSBJDYZZ9_XLTXID"].ToString().Trim().Equals(sXLTXID) && !sXLTXID.Equals("")) + ) + { + if (!dicYZZ9.ContainsKey(ds.Tables[0].Rows[i]["XLXSBJDYZZ9_YZID"].ToString().Trim())) + { + dicYZZ9.Add(ds.Tables[0].Rows[i]["XLXSBJDYZZ9_YZID"].ToString().Trim(), dYZZ); + } + } + } + if (ds.Tables[0].Rows[i]["PX"].ToString().Trim().Equals("4")) + { + if (!dicYZZ9.ContainsKey(ds.Tables[0].Rows[i]["XLXSBJDYZZ9_YZID"].ToString().Trim())) + { + dicYZZ9.Add(ds.Tables[0].Rows[i]["XLXSBJDYZZ9_YZID"].ToString().Trim(), dYZZ); + } + } + + } + Dictionary tmpdicYZZ9 = InitdicYZZ(sBJFLID, "9"); + foreach (string key in tmpdicYZZ9.Keys) + { + if (!dicYZZ9.ContainsKey(key)) + { + dicYZZ9.Add(key, 0); + } + } + return dicYZZ9; + } + + //获取调价因素为“A|型号&规格&电压&标准”的报价因子值 + public static Dictionary GetBJDYZZA(string sBJFLID, string sXLXHID, string sXLGGID, string sXLBZID, string sDYDJID, string sBJDJLDW, string sBJU003, string sBJDID) + { + //string sBJDJSDW = GetsJSDW(sBJDJLDW, sBJU003); + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + bool bUseXLXSBJXLGGTHB = UseXLXSBJXLGGTHB(); + TSQL sql = new TSQL(dberp); + sql.Add("select XLXSBJDYZZA_YZZ,XLXSBJDYZZA_YZID,XLXSTZYZ_JJFS from XLXSBJDYZZA"); + sql.Add(" left join XLXSTZYZ on XLXSTZYZ_JGBID=XLXSBJDYZZA_JGBID and XLXSTZYZ_YZID=XLXSBJDYZZA_YZID and XLXSTZYZ_MXBH='BJD'"); + if (bUseXLXSBJXLGGTHB) + { + sql.Add(" left join XLXSBJXLGGTHB on XLXSBJXLGGTHB.XLXSBJXLGGTHB_XLGGID = XLXSBJDYZZA_XLGGID"); + } + sql.Add(" where exists(select 1 from XLXSBJFLYZ where XLXSBJFLYZ_BJFLID=:pBJFLID and XLXSBJFLYZ_YZID=XLXSTZYZ_YZID)"); + sql.Add(" and XLXSBJDYZZA_XLXHID =:pXLXHID "); + if (bUseXLXSBJXLGGTHB) + { + sql.Add(" and isnull(XLXSBJXLGGTHB.XLXSBJXLGGTHB_XLGGIDCH,' ') =:pXLGGID "); + } + else + { + sql.Add(" and REPLACE(XLXSBJDYZZA_XLGGID,'*','×') =:pXLGGID "); + } + sql.Add(" and XLXSBJDYZZA_XLBZID =:pXLBZID "); + sql.Add(" and XLXSBJDYZZA_DYDJID =:pDYDJID "); + sql.Add(" order by XLXSBJDYZZA_YZID"); + sql.ParamByName("pBJFLID").Value = sBJFLID.Trim(); + sql.ParamByName("pXLXHID").Value = sXLXHID; + sql.ParamByName("pXLGGID").Value = sXLGGID.Replace('*', '×'); + sql.ParamByName("pXLBZID").Value = sXLBZID; + sql.ParamByName("pDYDJID").Value = sDYDJID; + DataSet ds = dberp.OpenDataSet(sql); + Dictionary dicYZZA = InitdicYZZ(sBJFLID, "A"); + CMISproSession tSession = CMISproSessionManager.GetCurrentSession(); + double dSL = string.IsNullOrEmpty((tSession.GetOption(100860000, "BJU055"))) ? 0 : (double.Parse((tSession.GetOption(100860000, "BJU055")))) / 100.0; ; + bool IsHSWL = (dSL == 0); + bool IsHS = GetBJDHSBZ(sBJDID); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + double dYZZ = CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSBJDYZZA_YZZ"].ToString()); + if (ds.Tables[0].Rows[i]["XLXSTZYZ_JJFS"].ToString().Trim() == "JJ") + { + dYZZ *= GetHSBL(sBJDJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID); ; + if ((!IsHS) && (!IsHSWL)) + { + dYZZ = NumberUtils.RoundX(dYZZ / (1 + dSL), 6); + } + } + + //形如(BJ10,2) + if (!dicYZZA.ContainsKey(ds.Tables[0].Rows[i]["XLXSBJDYZZA_YZID"].ToString().Trim())) + { + dicYZZA.Add(ds.Tables[0].Rows[i]["XLXSBJDYZZA_YZID"].ToString().Trim(), dYZZ); + } + else + { + dicYZZA[ds.Tables[0].Rows[i]["XLXSBJDYZZA_YZID"].ToString().Trim()] = dYZZ; + } + } + return dicYZZA; + } + + //获取调价因素为“B|销售单位”的报价因子值 + public static Dictionary GetBJDYZZB(string sBJFLID, string sSYDWID, string sBJDJLDW, string sBJU003, string sXLXHID, string sXLGGID, string sXLBZID, string sDYDJID, string sBJDID) + { + //string sBJDJSDW = GetsJSDW(sBJDJLDW, sBJU003); + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + sql.Add("select XLXSBJDYZZB_YZZ,XLXSBJDYZZB_YZID,XLXSTZYZ_JJFS from XLXSBJDYZZB,XLXSTZYZ"); + sql.Add(" where XLXSTZYZ_JGBID=XLXSBJDYZZB_JGBID and XLXSTZYZ_YZID=XLXSBJDYZZB_YZID and XLXSTZYZ_MXBH='BJD'"); + sql.Add(" and exists(select 1 from XLXSBJFLYZ where XLXSBJFLYZ_BJFLID=:pBJFLID and XLXSBJFLYZ_YZID=XLXSTZYZ_YZID)"); + sql.Add(" and XLXSBJDYZZB_SYDWID =:pSYDWID "); + sql.Add(" order by XLXSBJDYZZB_YZID"); + sql.ParamByName("pBJFLID").Value = sBJFLID.Trim(); + sql.ParamByName("pSYDWID").Value = sSYDWID; + DataSet ds = dberp.OpenDataSet(sql); + Dictionary dicYZZB = InitdicYZZ(sBJFLID, "B"); + CMISproSession tSession = CMISproSessionManager.GetCurrentSession(); + double dSL = string.IsNullOrEmpty((tSession.GetOption(100860000, "BJU055"))) ? 0 : (double.Parse((tSession.GetOption(100860000, "BJU055")))) / 100.0; ; + bool IsHSWL = (dSL == 0); + bool IsHS = GetBJDHSBZ(sBJDID); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + double dYZZ = CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSBJDYZZB_YZZ"].ToString()); + if (ds.Tables[0].Rows[i]["XLXSTZYZ_JJFS"].ToString().Trim() == "JJ") + { + dYZZ *= GetHSBL(sBJDJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID); ; + if ((!IsHS) && (!IsHSWL)) + { + dYZZ = NumberUtils.RoundX(dYZZ / (1 + dSL), 6); + } + } + + //形如(BJ10,2) + if (!dicYZZB.ContainsKey(ds.Tables[0].Rows[i]["XLXSBJDYZZB_YZID"].ToString().Trim())) + { + dicYZZB.Add(ds.Tables[0].Rows[i]["XLXSBJDYZZB_YZID"].ToString().Trim(), dYZZ); + } + else + { + dicYZZB[ds.Tables[0].Rows[i]["XLXSBJDYZZB_YZID"].ToString().Trim()] = dYZZ; + } + } + return dicYZZB; + } + + //获取调价因素为“C|按产品目录主芯截面范围产品特性调报价”的报价因子值 + public static Dictionary GetBJDYZZC(string sBJDID, string sBJFLID, string sXLXHID, string sDYDJID, double fZXJM, string sBJDJLDW, string sBJU003, string sXLGGID, string sXLBZID) + { + //string sBJDJSDW = GetsJSDW(sBJDJLDW, sBJU003); + Dictionary dicYZZC = new Dictionary(); + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + //先匹配因子值 + sql.Add("select XLXSBJDYZZC_YZID,XLXSTZYZ_JJFS, "); + sql.Add(" XLXSBJDYZZC_CPMLYZZ + "); + sql.Add(" (case when XLXHB_RDT='Y' then XLXSBJDYZZC_RDTYZZ else 0 end) + "); + sql.Add(" (case when isnull(XLXHB_FPCLID,' ')<>' ' or isnull(XLXHB_PBCLID,' ')<>' ' then XLXSBJDYZZC_PBYZZ else 0 end) + "); + sql.Add(" (case when XLXHB_NHTX='Y' then XLXSBJDYZZC_NHYZZ else 0 end) as YZZ, "); + sql.Add(" case when XLXSBJXHML_DYDJID<>' ' and XLXSBJDYZZC_BJDID<>' ' then 1 "); + sql.Add(" when XLXSBJXHML_DYDJID<>' ' and XLXSBJDYZZC_BJDID=' ' then 2 "); + sql.Add(" when XLXSBJXHML_DYDJID=' ' and XLXSBJDYZZC_BJDID<>' ' then 3 "); + sql.Add(" when XLXSBJXHML_DYDJID=' ' and XLXSBJDYZZC_BJDID=' ' then 4 "); + sql.Add(" end as PX,XLXSBJXHML_DYDJID,XLXSBJDYZZC_BJDID "); + sql.Add(" from XLXSBJDYZZC,XLXSTZYZ,XLXSBJXHML,XLXHB "); + sql.Add(" where XLXSTZYZ_JGBID=XLXSBJDYZZC_JGBID and XLXSTZYZ_TJYS='C' and XLXSTZYZ_YZID=XLXSBJDYZZC_YZID and XLXSTZYZ_MXBH='BJD' "); + sql.Add(" and (XLXSBJDYZZC_BJDID=' ' or XLXSBJDYZZC_BJDID=:pBJDID) "); + sql.Add(" and exists(select 1 from XLXSBJFLYZ where XLXSBJFLYZ_BJFLID=:pBJFLID and XLXSBJFLYZ_YZID=XLXSTZYZ_YZID)"); + sql.Add(" and XLXSBJXHML_CPMLID=XLXSBJDYZZC_CPMLID and XLXSBJXHML_XLXHID=XLXHB_XLXHID "); + sql.Add(" and (XLXSBJXHML_DYDJID=' ' or XLXSBJXHML_DYDJID=:pDYDJID) "); + sql.Add(" and XLXHB_XLXHID=:pXLXHID "); + sql.Add(" and XLXSBJDYZZC_ZXJMXX<=:pZXJM and ((XLXSBJDYZZC_ZXJMSX<>0 and XLXSBJDYZZC_ZXJMSX>=:pZXJM) or XLXSBJDYZZC_ZXJMSX=0)"); + sql.Add(" order by PX,XLXSBJDYZZC_YZID"); + sql.ParamByName("pBJDID").Value = sBJDID.Trim(); + sql.ParamByName("pBJFLID").Value = sBJFLID.Trim(); + sql.ParamByName("pDYDJID").Value = sDYDJID.Trim(); + sql.ParamByName("pXLXHID").Value = sXLXHID; + sql.ParamByName("pZXJM").Value = fZXJM; + DataSet ds = dberp.OpenDataSet(sql); + CMISproSession tSession = CMISproSessionManager.GetCurrentSession(); + double dSL = string.IsNullOrEmpty((tSession.GetOption(100860000, "BJU055"))) ? 0 : (double.Parse((tSession.GetOption(100860000, "BJU055")))) / 100.0; ; + bool IsHSWL = (dSL == 0); + bool IsHS = GetBJDHSBZ(sBJDID); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + double dYZZ = CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["YZZ"].ToString()); + if (ds.Tables[0].Rows[i]["XLXSTZYZ_JJFS"].ToString().Trim() == "JJ") + { + dYZZ *= GetHSBL(sBJDJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID); ; + if ((!IsHS) && (!IsHSWL)) + { + dYZZ = NumberUtils.RoundX(dYZZ / (1 + dSL), 6); + } + } + + if (ds.Tables[0].Rows[i]["PX"].ToString().Trim().Equals("1")) + { + if (ds.Tables[0].Rows[i]["XLXSBJXHML_DYDJID"].ToString().Trim().Equals(sDYDJID) && ds.Tables[0].Rows[i]["XLXSBJDYZZC_BJDID"].ToString().Trim().Equals(sBJDID)) + { + if (!dicYZZC.ContainsKey(ds.Tables[0].Rows[i]["XLXSBJDYZZC_YZID"].ToString().Trim())) + { + dicYZZC.Add(ds.Tables[0].Rows[i]["XLXSBJDYZZC_YZID"].ToString().Trim(), dYZZ); + } + } + } + if (ds.Tables[0].Rows[i]["PX"].ToString().Trim().Equals("2")) + { + if (ds.Tables[0].Rows[i]["XLXSBJXHML_DYDJID"].ToString().Trim().Equals(sDYDJID)) + { + if (!dicYZZC.ContainsKey(ds.Tables[0].Rows[i]["XLXSBJDYZZC_YZID"].ToString().Trim())) + { + dicYZZC.Add(ds.Tables[0].Rows[i]["XLXSBJDYZZC_YZID"].ToString().Trim(), dYZZ); + } + } + } + if (ds.Tables[0].Rows[i]["PX"].ToString().Trim().Equals("3")) + { + if (ds.Tables[0].Rows[i]["XLXSBJDYZZC_BJDID"].ToString().Trim().Equals(sBJDID)) + { + if (!dicYZZC.ContainsKey(ds.Tables[0].Rows[i]["XLXSBJDYZZC_YZID"].ToString().Trim())) + { + dicYZZC.Add(ds.Tables[0].Rows[i]["XLXSBJDYZZC_YZID"].ToString().Trim(), dYZZ); + } + } + } + if (ds.Tables[0].Rows[i]["PX"].ToString().Trim().Equals("4")) + { + if (!dicYZZC.ContainsKey(ds.Tables[0].Rows[i]["XLXSBJDYZZC_YZID"].ToString().Trim())) + { + dicYZZC.Add(ds.Tables[0].Rows[i]["XLXSBJDYZZC_YZID"].ToString().Trim(), dYZZ); + } + } + } + Dictionary tmpdicYZZC = InitdicYZZ(sBJFLID, "C"); + foreach (string key in tmpdicYZZC.Keys) + { + if (!dicYZZC.ContainsKey(key)) + { + dicYZZC.Add(key, 0); + } + } + return dicYZZC; + } + + //获取调价因素为“D|颜色&主芯截面范围”的报价因子值 + public static Dictionary GetBJDYZZD(string sBJFLID, string sXLYSID, string sBJDJLDW, string sBJU003, string sXLXHID, string sXLGGID, string sXLBZID, string sDYDJID, string sBJDID) + { + Dictionary dicXLGGB = GetXXJGIDByXLGGID(sXLGGID, sXLXHID); + double fZXJM = CMISproConvert.StrToFloat(dicXLGGB["ZXJM"]); + Dictionary dicYZZD = InitdicYZZ(sBJFLID, "D"); + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + sql.Clear(); + sql.Add("select XLXSBJDYZZD_YZZ,XLXSBJDYZZD_YZID,XLXSTZYZ_JJFS from XLXSBJDYZZD,XLXSTZYZ"); + sql.Add(" where XLXSTZYZ_JGBID=XLXSBJDYZZD_JGBID and XLXSTZYZ_YZID=XLXSBJDYZZD_YZID and XLXSTZYZ_MXBH='BJD'"); + sql.Add(" and exists(select 1 from XLXSBJFLYZ where XLXSBJFLYZ_BJFLID=:pBJFLID and XLXSBJFLYZ_YZID=XLXSTZYZ_YZID)"); + sql.Add(" and XLXSBJDYZZD_XLYSID =:pXLYSID "); + sql.Add(" and XLXSBJDYZZD_ZXJMXX<=:pZXJM and ((XLXSBJDYZZD_ZXJMSX<>0 and XLXSBJDYZZD_ZXJMSX>=:pZXJM) or XLXSBJDYZZD_ZXJMSX=0)"); + sql.Add(" order by XLXSBJDYZZD_YZID"); + sql.ParamByName("pBJFLID").Value = sBJFLID.Trim(); + sql.ParamByName("pXLYSID").Value = sXLYSID; + sql.ParamByName("pZXJM").Value = fZXJM; + DataSet ds = dberp.OpenDataSet(sql); + CMISproSession tSession = CMISproSessionManager.GetCurrentSession(); + double dSL = string.IsNullOrEmpty((tSession.GetOption(100860000, "BJU055"))) ? 0 : (double.Parse((tSession.GetOption(100860000, "BJU055")))) / 100.0; ; + bool IsHSWL = (dSL == 0); + bool IsHS = GetBJDHSBZ(sBJDID); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + double dYZZ = CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSBJDYZZD_YZZ"].ToString()); + if (ds.Tables[0].Rows[i]["XLXSTZYZ_JJFS"].ToString().Trim() == "JJ") + { + dYZZ *= GetHSBL(sBJDJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID); ; + if ((!IsHS) && (!IsHSWL)) + { + dYZZ = NumberUtils.RoundX(dYZZ / (1 + dSL), 6); + } + } + + //形如(BJ10,2) + if (dicYZZD.ContainsKey(ds.Tables[0].Rows[i]["XLXSBJDYZZD_YZID"].ToString().Trim())) + { + dicYZZD[ds.Tables[0].Rows[i]["XLXSBJDYZZD_YZID"].ToString().Trim()] = dYZZ; + } + else + { + dicYZZD.Add(ds.Tables[0].Rows[i]["XLXSBJDYZZD_YZID"].ToString().Trim(), dYZZ); + } + } + return dicYZZD; + } + + //获取调价因素为“K|导体类型电压等级/材料重量”的报价因子值 + public static Dictionary GetBJDYZZK(string sBJFLID, double fBJSL, string sBJDJLDW, string sBJU003, string sXLXHID, string sXLGGID, string sXLBZID, string sDYDJID, string sBJDID) + { + Dictionary dicYZZK = InitdicYZZ(sBJFLID, "K"); + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + sql.Clear(); + sql.Add("select XLXHB_DTCLID from XLXHB where XLXHB_XLXHID=:pXLXHID "); + sql.ParamByName("pXLXHID").Value = sXLXHID; + DataSet ds = dberp.OpenDataSet(sql); + CMISproSession tSession = CMISproSessionManager.GetCurrentSession(); + double dSL = string.IsNullOrEmpty((tSession.GetOption(100860000, "BJU055"))) ? 0 : (double.Parse((tSession.GetOption(100860000, "BJU055")))) / 100.0; ; + bool IsHSWL = (dSL == 0); + bool IsHS = GetBJDHSBZ(sBJDID); + if (ds.Tables[0].Rows.Count > 0) + { + string sDTCLID = ds.Tables[0].Rows[0][0].ToString().Trim(); + double dCLZL = 0; + sql.Clear(); + sql.Add("select XLXSCLQD_CLZL from XLXSCLQD where XLXSCLQD_WPID='ZZZZ' and XLXSCLQD_XLXHID=:pXLXHID and XLXSCLQD_XLGGID=:pXLGGID and XLXSCLQD_XLBZID=:pXLBZID and XLXSCLQD_DYDJID=:pDYDJID"); + sql.ParamByName("pXLXHID").Value = sXLXHID; + sql.ParamByName("pXLGGID").Value = sXLGGID; + sql.ParamByName("pXLBZID").Value = sXLBZID; + sql.ParamByName("pDYDJID").Value = sDYDJID; + ds = dberp.OpenDataSet(sql); + if (ds.Tables[0].Rows.Count > 0) + dCLZL = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0][0].ToString().Trim()); + + + + sql.Clear(); + sql.Add("select XLXSBJDYZZK_YZZ,XLXSBJDYZZK_YZID,XLXSTZYZ_JJFS from XLXSBJDYZZK,XLXSTZYZ"); + sql.Add(" where XLXSTZYZ_JGBID=XLXSBJDYZZK_JGBID and XLXSTZYZ_YZID=XLXSBJDYZZK_YZID and XLXSTZYZ_MXBH='BJD'"); + sql.Add(" and exists(select 1 from XLXSBJFLYZ where XLXSBJFLYZ_BJFLID=:pBJFLID and XLXSBJFLYZ_YZID=XLXSTZYZ_YZID)"); + sql.Add(" and XLXSBJDYZZK_DTLX =:pDTLX and XLXSBJDYZZK_DYDJID =' ' "); + sql.Add(" order by XLXSBJDYZZK_YZID"); + sql.ParamByName("pBJFLID").Value = sBJFLID.Trim(); + sql.ParamByName("pDTLX").Value = sDTCLID; + ds = dberp.OpenDataSet(sql); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + double dYZZ = NumberUtils.RoundX(CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSBJDYZZK_YZZ"].ToString()) * dCLZL, 6); + if (ds.Tables[0].Rows[i]["XLXSTZYZ_JJFS"].ToString().Trim() == "JJ") + { + dYZZ *= GetHSBL(sBJDJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID); + if ((!IsHS) && (!IsHSWL)) + { + dYZZ = NumberUtils.RoundX(dYZZ / (1 + dSL), 6); + } + } + + //形如(BJ10,2) + if (dicYZZK.ContainsKey(ds.Tables[0].Rows[i]["XLXSBJDYZZK_YZID"].ToString().Trim())) + { + dicYZZK[ds.Tables[0].Rows[i]["XLXSBJDYZZK_YZID"].ToString().Trim()] = dYZZ; + } + else + { + dicYZZK.Add(ds.Tables[0].Rows[i]["XLXSBJDYZZK_YZID"].ToString().Trim(), dYZZ); + } + } + + sql.Clear(); + sql.Add("select XLXSBJDYZZK_YZZ,XLXSBJDYZZK_YZID,XLXSTZYZ_JJFS from XLXSBJDYZZK,XLXSTZYZ"); + sql.Add(" where XLXSTZYZ_JGBID=XLXSBJDYZZK_JGBID and XLXSTZYZ_YZID=XLXSBJDYZZK_YZID and XLXSTZYZ_MXBH='BJD'"); + sql.Add(" and exists(select 1 from XLXSBJFLYZ where XLXSBJFLYZ_BJFLID=:pBJFLID and XLXSBJFLYZ_YZID=XLXSTZYZ_YZID)"); + sql.Add(" and XLXSBJDYZZK_DTLX =:pDTLX and XLXSBJDYZZK_DYDJID =:pDYDJID "); + sql.Add(" order by XLXSBJDYZZK_YZID"); + sql.ParamByName("pBJFLID").Value = sBJFLID.Trim(); + sql.ParamByName("pDTLX").Value = sDTCLID; + sql.ParamByName("pDYDJID").Value = sDYDJID; + ds = dberp.OpenDataSet(sql); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + double dYZZ = NumberUtils.RoundX(CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSBJDYZZK_YZZ"].ToString()) * dCLZL, 6); + if (ds.Tables[0].Rows[i]["XLXSTZYZ_JJFS"].ToString().Trim() == "JJ") + { + dYZZ *= GetHSBL(sBJDJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID); + if ((!IsHS) && (!IsHSWL)) + { + dYZZ = NumberUtils.RoundX(dYZZ / (1 + dSL), 6); + } + } + + //形如(BJ10,2) + if (dicYZZK.ContainsKey(ds.Tables[0].Rows[i]["XLXSBJDYZZK_YZID"].ToString().Trim())) + { + dicYZZK[ds.Tables[0].Rows[i]["XLXSBJDYZZK_YZID"].ToString().Trim()] = dYZZ; + } + else + { + dicYZZK.Add(ds.Tables[0].Rows[i]["XLXSBJDYZZK_YZID"].ToString().Trim(), dYZZ); + } + } + } + + + + return dicYZZK; + } + + + // 获取调价因素为“L|按标准&报价数量区间调报价”的报价因子值 + public static Dictionary GetBJDYZZL(string sBJFLID,string sXLBZID,double fBJSL,string sBJDJLDW,string sBJU003,string sXLXHID,string sXLGGID,string sDYDJID,string sBJDID) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + + sql.Clear(); + sql.Add("select XLXSBJDYZZL_YZZ,"); + sql.Add(" XLXSBJDYZZL_YZID,"); + sql.Add(" XLXSTZYZ_JJFS"); + sql.Add(" from XLXSBJDYZZL"); + sql.Add(" left join XLXSTZYZ"); + sql.Add(" on XLXSTZYZ_JGBID = XLXSBJDYZZL_JGBID"); + sql.Add(" and XLXSTZYZ_YZID = XLXSBJDYZZL_YZID"); + sql.Add(" and XLXSTZYZ_MXBH = 'BJD'"); + sql.Add(" where exists"); + sql.Add(" ("); + sql.Add(" select 1"); + sql.Add(" from XLXSBJFLYZ"); + sql.Add(" where XLXSBJFLYZ_BJFLID = :pBJFLID"); + sql.Add(" and XLXSBJFLYZ_YZID = XLXSTZYZ_YZID"); + sql.Add(" )"); + sql.Add(" and XLXSBJDYZZL_XLBZID = :pXLBZID"); + sql.Add(" and XLXSBJDYZZL_BJSLS <= :pBJSL"); + sql.Add(" and ("); + sql.Add(" (XLXSBJDYZZL_BJSLZ <> 0 and XLXSBJDYZZL_BJSLZ > :pBJSL)"); + sql.Add(" or XLXSBJDYZZL_BJSLZ = 0"); + sql.Add(" )"); + sql.Add(" order by XLXSBJDYZZL_YZID"); + sql.ParamByName("pBJFLID").Value = sBJFLID.Trim(); + sql.ParamByName("pXLBZID").Value = sXLBZID.Trim(); + sql.ParamByName("pBJSL").Value = fBJSL; + + DataSet ds = dberp.OpenDataSet(sql); + Dictionary dicYZZL = InitdicYZZ(sBJFLID, "L"); + CMISproSession tSession = CMISproSessionManager.GetCurrentSession(); + double dSL =string.IsNullOrEmpty(tSession.GetOption(100860000, "BJU055"))? 0: double.Parse(tSession.GetOption(100860000, "BJU055")) / 100.0; + bool IsHSWL = (dSL == 0); + bool IsHS = GetBJDHSBZ(sBJDID); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + double dYZZ = CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSBJDYZZL_YZZ"].ToString()); + if (ds.Tables[0].Rows[i]["XLXSTZYZ_JJFS"].ToString().Trim() == "JJ") + { + dYZZ *= GetHSBL(sBJDJLDW,sBJU003,sXLXHID,sXLGGID,sXLBZID,sDYDJID); + + if ((!IsHS) && (!IsHSWL)) + { + dYZZ = NumberUtils.RoundX(dYZZ / (1 + dSL),6); + } + } + string sYZID = ds.Tables[0].Rows[i]["XLXSBJDYZZL_YZID"].ToString().Trim(); + if (!dicYZZL.ContainsKey(sYZID)) + { + dicYZZL.Add(sYZID, dYZZ); + } + else + { + dicYZZL[sYZID] = dYZZ; + } + } + return dicYZZL; + } + + + + + //获取调价模块为“100860124|按包装长度包装方式调盘费”的报价因子值 + public static Dictionary GetBJDBZPFYZZ(string sBZPFYZID, string sXLXHID, string sXLGGID, string sXLBZID, string sDYDJID, string sBJDJLDW, string sBJU003, string sBJDID) + { + sBJU003 = "M"; + //string sBJDJSDW = GetsJSDW(sBJDJLDW, sBJU003); + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + sql.Clear(); + sql.Add(@" SELECT isnull(MIN(ROUND(CASE WHEN ISNULL(CONVERT(FLOAT,ISNULL(XLBMYSMX_DHMC,'0')),0)=0 THEN 0 ELSE PJJG/CONVERT(FLOAT,ISNULL(XLBMYSMX_DHMC,'0')) END,6)),0) AS YZZ + FROM XLXSCLQD + LEFT JOIN XLXHJGCZBNR ON XLXHJGCZBNR_JGCZBID=XLXSCLQD_JGCZBID AND XLXHJGCZBNR_JGCZBBBID=XLXSCLQD_JGCZBBBID + AND XLXHJGCZBNR_JGCZBXH=XLXSCLQD_JGCZBXH AND XLXHJGCZBNR_DRHH=XLXSCLQD_DRHH + LEFT JOIN XLBMYSMX ON XLBMYSMX_YSBM='DC' AND XLBMYSMX_YSID=XLXHJGCZBNR_DC + LEFT JOIN XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSCLQD_XLGGID + LEFT JOIN (SELECT XLZPPJFL_PJFLMC,MAX(XLZPPJJG_PJJG) AS PJJG FROM XLZPPJFL + LEFT JOIN XLZPPJJG ON XLZPPJJG_PJCZ=XLZPPJFL_PJFLID + WHERE 1=1 and XLZPPJJG_YXQS <= :pDtNow and (XLZPPJJG_YXQZ>=:pDtNow or XLZPPJJG_YXQZ is null) + GROUP BY XLZPPJFL_PJFLMC) PJ ON RTRIM(XLZPPJFL_PJFLMC)=RTRIM(XLXHJGCZBNR_BZFS) + WHERE XLXSCLQD_XLXHID=:pXLXHID AND XLXSBJXLGGTHB_XLGGIDCH=:pXLGGID + AND XLXSCLQD_XLBZID = :pXLBZID AND XLXSCLQD_DYDJID=:pDYDJID + GROUP BY XLXSCLQD_XLXHID,XLXSBJXLGGTHB_XLGGIDCH,XLXSCLQD_XLBZID,XLXSCLQD_DYDJID "); + sql.ParamByName("pXLXHID").Value = sXLXHID; + sql.ParamByName("pXLGGID").Value = sXLGGID.Replace('*', '×'); + sql.ParamByName("pXLBZID").Value = sXLBZID; + sql.ParamByName("pDYDJID").Value = sDYDJID; + sql.ParamByName("pDtNow").Value = DateTime.Now; + DataSet ds = dberp.OpenDataSet(sql); + Dictionary dicYZZBZPF = new Dictionary(); + CMISproSession tSession = CMISproSessionManager.GetCurrentSession(); + double dSL = string.IsNullOrEmpty((tSession.GetOption(100860000, "BJU055"))) ? 0 : (double.Parse((tSession.GetOption(100860000, "BJU055")))) / 100.0; ; + bool IsHSWL = (dSL == 0); + bool IsHS = GetBJDHSBZ(sBJDID); + dicYZZBZPF.Add(sBZPFYZID, 0); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + double dYZZ = CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["YZZ"].ToString()); + dYZZ *= GetHSBL(sBJDJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID); ; + if ((!IsHS) && (!IsHSWL)) + { + dYZZ = NumberUtils.RoundX(dYZZ / (1 + dSL), 6); + } + dicYZZBZPF[sBZPFYZID] = dYZZ; + } + + return dicYZZBZPF; + } + + //获取调价模块为“100860162|按产品外径报价数量区间调盘费”的报价因子值 + public static Dictionary GetBJDCPWJPFYZZ(string sBZPFYZID, string sXLXHID, string sXLGGID, string sXLBZID, string sDYDJID, string sBJDJLDW, string sBJU003, string sBJDID, double fBJSL) + { + sBJU003 = "M"; + string sBJDJSDW = GetsJSDW(sBJDJLDW, sBJU003); + Dictionary dicLenJLDWTD = XLBJDUtils.GetLenJLDWTD(); + if (sBJDJSDW.Equals("Km") || sBJDJSDW.Equals("千米")) + { + fBJSL *= 1000; + } + else if (dicLenJLDWTD.ContainsKey(sBJDJSDW)) + { + fBJSL *= 100; + } + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + Dictionary dicYZZBZPF = new Dictionary(); + dicYZZBZPF.Add(sBZPFYZID, 0); + + CMISproSession tSession = CMISproSessionManager.GetCurrentSession(); + double dSL = string.IsNullOrEmpty((tSession.GetOption(100860000, "BJU055"))) ? 0 : (double.Parse((tSession.GetOption(100860000, "BJU055")))) / 100.0; + bool IsHSWL = (dSL == 0); + bool IsHS = GetBJDHSBZ(sBJDID); + + // 先获取产品外径(沿用线缆构成数据中的导体外径字段) + double dCPWJ = 0; + TSQL sqlWJ = new TSQL(dberp); + sqlWJ.Clear(); + sqlWJ.Add(@" SELECT XLXLB_WJ + FROM XLXLB + WHERE XLXLB_XLXHID=:pXLXHID AND XLXLB_XLGGID=:pXLGGID + AND XLXLB_XLBZID=:pXLBZID AND XLXLB_DYDJID=:pDYDJID "); + sqlWJ.ParamByName("pXLXHID").Value = sXLXHID; + sqlWJ.ParamByName("pXLGGID").Value = sXLGGID.Replace('*', '×'); + sqlWJ.ParamByName("pXLBZID").Value = sXLBZID; + sqlWJ.ParamByName("pDYDJID").Value = sDYDJID; + DataSet dsWJ = dberp.OpenDataSet(sqlWJ); + if ((dsWJ.Tables.Count == 0) || (dsWJ.Tables[0].Rows.Count == 0)) + { + return dicYZZBZPF; + } + dCPWJ = CMISproConvert.StrToFloat(dsWJ.Tables[0].Rows[0]["XLXLB_WJ"].ToString()); + + // 按外径找可用区间 + TSQL sqlQJ = new TSQL(dberp); + sqlQJ.Clear(); + sqlQJ.Add(@" SELECT XLXSBJPJWJSLQJ_CPWJXX,XLXSBJPJWJSLQJ_CPWJSX,XLXSBJPJWJSLQJ_BJSLXX,XLXSBJPJWJSLQJ_BJSLSX,XLXSBJPJWJSLQJ_PJWLID + FROM XLXSBJPJWJSLQJ + WHERE :pCPWJ >= XLXSBJPJWJSLQJ_CPWJXX AND :pCPWJ <= XLXSBJPJWJSLQJ_CPWJSX + ORDER BY XLXSBJPJWJSLQJ_BJSLXX,XLXSBJPJWJSLQJ_BJSLSX "); + sqlQJ.ParamByName("pCPWJ").Value = dCPWJ; + DataSet dsQJ = dberp.OpenDataSet(sqlQJ); + if ((dsQJ.Tables.Count == 0) || (dsQJ.Tables[0].Rows.Count == 0)) + { + // 外径不在配置区间内,返回0 + return dicYZZBZPF; + } + + DataRow drTarget = null; + bool bUseMaxSXScale = false; + double dMaxBJSLSX = 0; + + int i; + for (i = 0; i < dsQJ.Tables[0].Rows.Count; i++) + { + double dBJSLXX = CMISproConvert.StrToFloat(dsQJ.Tables[0].Rows[i]["XLXSBJPJWJSLQJ_BJSLXX"].ToString()); + double dBJSLSX = CMISproConvert.StrToFloat(dsQJ.Tables[0].Rows[i]["XLXSBJPJWJSLQJ_BJSLSX"].ToString()); + if ((fBJSL >= dBJSLXX) && (fBJSL <= dBJSLSX)) + { + drTarget = dsQJ.Tables[0].Rows[i]; + break; + } + } + + if (drTarget == null) + { + double dMinBJSLXX = CMISproConvert.StrToFloat(dsQJ.Tables[0].Rows[0]["XLXSBJPJWJSLQJ_BJSLXX"].ToString()); + double dLastBJSLSX = CMISproConvert.StrToFloat(dsQJ.Tables[0].Rows[dsQJ.Tables[0].Rows.Count - 1]["XLXSBJPJWJSLQJ_BJSLSX"].ToString()); + + if (fBJSL < dMinBJSLXX) + { + // 数量小于最小下限,取最小下限记录 + drTarget = dsQJ.Tables[0].Rows[0]; + } + else if (fBJSL > dLastBJSLSX) + { + // 数量大于最大上限,取最大上限记录并按盘具数折算 + drTarget = dsQJ.Tables[0].Rows[dsQJ.Tables[0].Rows.Count - 1]; + bUseMaxSXScale = true; + dMaxBJSLSX = dLastBJSLSX; + } + else + { + // 若数量落在中间断档,按无匹配处理 + return dicYZZBZPF; + } + } + + string sPJWLID = drTarget["XLXSBJPJWJSLQJ_PJWLID"].ToString().Trim(); + if (string.IsNullOrEmpty(sPJWLID)) + { + return dicYZZBZPF; + } + + // 根据盘具物料获取盘具最新有效价格(按PJCZ/PJWJ/PJNJ/PJKD关联) + TSQL sqlPJJG = new TSQL(dberp); + sqlPJJG.Clear(); + sqlPJJG.Add(@" SELECT ISNULL(JG.XLZPPJJG_PJJG,0) AS PJJG + FROM XLZPPJ PJ + INNER JOIN XLZPPJJG JG ON JG.XLZPPJJG_PJCZ = PJ.XLZPPJ_PJCZ + AND ISNULL(JG.XLZPPJJG_PJWJ,0) = ISNULL(PJ.XLZPPJ_PJWJ,0) + AND ISNULL(JG.XLZPPJJG_PJNJ,0) = ISNULL(PJ.XLZPPJ_PJNJ,0) + AND ISNULL(JG.XLZPPJJG_PJKD,0) = ISNULL(PJ.XLZPPJ_PJKD,0) + WHERE PJ.XLZPPJ_PJWLID=:pPJWLID + AND ISNULL(PJ.XLZPPJ_TYBZ,'N')<>'Y' + AND (PJ.XLZPPJ_QYRQ IS NULL OR PJ.XLZPPJ_QYRQ <= :pDtNow) + AND JG.XLZPPJJG_YXQS <= :pDtNow + AND (JG.XLZPPJJG_YXQZ >= :pDtNow OR JG.XLZPPJJG_YXQZ IS NULL) + ORDER BY JG.XLZPPJJG_YXQS DESC "); + sqlPJJG.ParamByName("pPJWLID").Value = sPJWLID; + sqlPJJG.ParamByName("pDtNow").Value = DateTime.Now; + DataSet dsPJJG = dberp.OpenDataSet(sqlPJJG); + if ((dsPJJG.Tables.Count == 0) || (dsPJJG.Tables[0].Rows.Count == 0)) + { + return dicYZZBZPF; + } + + double dPJJG = CMISproConvert.StrToFloat(dsPJJG.Tables[0].Rows[0]["PJJG"].ToString()); + if (dPJJG <= 0) + { + return dicYZZBZPF; + } + + if (fBJSL <= 0) + { + return dicYZZBZPF; + } + + double dYZZ = 0; + if (bUseMaxSXScale) + { + if (dMaxBJSLSX <= 0) + { + return dicYZZBZPF; + } + double dPJS = Math.Ceiling(fBJSL / dMaxBJSLSX); + dYZZ = (dPJS * dPJJG) / fBJSL; + } + else + { + dYZZ = dPJJG / fBJSL; + } + dYZZ *= GetHSBL(sBJDJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID); + if ((!IsHS) && (!IsHSWL)) + { + dYZZ = NumberUtils.RoundX(dYZZ / (1 + dSL), 6); + } + dicYZZBZPF[sBZPFYZID] = dYZZ; + + return dicYZZBZPF; + } + + //获取报价因子的最小值 + public static string GetMinYZZ(string sYZID, double dHSBL) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add("select XLXSBJDYZZ_MINC,XLXSTZYZ_JJFS from XLXSBJDYZZ "); + SQL.Add(" left join XLXSTZYZ on XLXSTZYZ_JGBID=XLXSBJDYZZ_JGBID and XLXSTZYZ_YZID=XLXSBJDYZZ_YZID"); + SQL.Add(" where XLXSTZYZ_MXBH='BJD' and XLXSTZYZ_YZID=:pYZID and XLXSTZYZ_TJYS=' '"); + SQL.ParamByName("pYZID").Value = sYZID; + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + if (string.IsNullOrEmpty(ds.Tables[0].Rows[0][0].ToString().Trim())) + return ""; + double dYZZ = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0][0].ToString().Trim()); + if (ds.Tables[0].Rows[0]["XLXSTZYZ_JJFS"].ToString().Trim() == "JJ") + dYZZ *= dHSBL; + return dYZZ.ToString(); + } + else + return ""; + } + + //获取报价因子的最大值 + public static string GetMaxYZZ(string sYZID, double dHSBL) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add("select XLXSBJDYZZ_MAXC,XLXSTZYZ_JJFS from XLXSBJDYZZ "); + SQL.Add(" left join XLXSTZYZ on XLXSTZYZ_JGBID=XLXSBJDYZZ_JGBID and XLXSTZYZ_YZID=XLXSBJDYZZ_YZID"); + SQL.Add(" where XLXSTZYZ_MXBH='BJD' and XLXSTZYZ_YZID=:pYZID and XLXSTZYZ_TJYS=' '"); + SQL.ParamByName("pYZID").Value = sYZID; + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + if (string.IsNullOrEmpty(ds.Tables[0].Rows[0][0].ToString().Trim())) + return ""; + double dYZZ = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0][0].ToString().Trim()); + if (ds.Tables[0].Rows[0]["XLXSTZYZ_JJFS"].ToString().Trim() == "JJ") + dYZZ *= dHSBL; + return dYZZ.ToString(); + } + else + return ""; + } + + //获取调价因素B的因子的最小值 + public static string GetMinYZZB(string sSYDWID,string sYZID, double dHSBL) + { + + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add("select XLXSBJDYZZB_MINC,XLXSTZYZ_JJFS from XLXSBJDYZZB "); + SQL.Add(" left join XLXSTZYZ on XLXSTZYZ_JGBID=XLXSBJDYZZB_JGBID and XLXSTZYZ_YZID=XLXSBJDYZZB_YZID"); + SQL.Add(" where XLXSTZYZ_MXBH='BJD' and XLXSTZYZ_YZID=:pYZID and XLXSTZYZ_TJYS='B' and XLXSBJDYZZB_SYDWID=:pSYDWID "); + SQL.ParamByName("pYZID").Value = sYZID; + SQL.ParamByName("pSYDWID").Value = sSYDWID; + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + if (string.IsNullOrEmpty(ds.Tables[0].Rows[0][0].ToString().Trim())) + return ""; + double dYZZ = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0][0].ToString().Trim()); + if (ds.Tables[0].Rows[0]["XLXSTZYZ_JJFS"].ToString().Trim() == "JJ") + dYZZ *= dHSBL; + return dYZZ.ToString(); + } + else + return ""; + } + + + + //获取调价因素B的因子的最大值 + public static string GetMaxYZZB(string sSYDWID, string sYZID, double dHSBL) + { + + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add("select XLXSBJDYZZB_MAXC,XLXSTZYZ_JJFS from XLXSBJDYZZB "); + SQL.Add(" left join XLXSTZYZ on XLXSTZYZ_JGBID=XLXSBJDYZZB_JGBID and XLXSTZYZ_YZID=XLXSBJDYZZB_YZID "); + SQL.Add(" where XLXSTZYZ_MXBH='BJD' and XLXSTZYZ_YZID=:pYZID and XLXSTZYZ_TJYS='B' and XLXSBJDYZZB_SYDWID=:pSYDWID "); + SQL.ParamByName("pYZID").Value = sYZID; + SQL.ParamByName("pSYDWID").Value = sSYDWID; + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + if (string.IsNullOrEmpty(ds.Tables[0].Rows[0][0].ToString().Trim())) + return ""; + double dYZZ = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0][0].ToString().Trim()); + if (ds.Tables[0].Rows[0]["XLXSTZYZ_JJFS"].ToString().Trim() == "JJ") + dYZZ *= dHSBL; + return dYZZ.ToString(); + } + else + return ""; + } + + + public static double GetHSBL(string sBJDJLDW, string sBJU003, string sXLXHID, string sXLGGID, string sXLBZID, string sDYDJID) + { + double dBJDJLDWHSBL = 1; + if (sXLXHID.Equals("")) + { + dBJDJLDWHSBL = XLBJDUtils.GetJLDWHSBL_JG(sBJU003, sBJDJLDW); + } + else if (XLBJDUtils.sJCJLDWList.IndexOf(sBJU003.ToUpper()) >= 0 + && XLBJDUtils.sJCJLDWList.IndexOf(sBJDJLDW.ToUpper()) >= 0) + { + dBJDJLDWHSBL = XLBJDUtils.GetJLDWHSBL_JG(sBJU003, sBJDJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID); + } + else + { + dBJDJLDWHSBL = XLBJDUtils.GetJLDWHSBL_JG(sBJU003, sBJDJLDW); + } + return dBJDJLDWHSBL == 0 ? 1 : dBJDJLDWHSBL; + } + + + + //获取调价因素为" "的报价格表因子值 + public static Dictionary GetJGBYZZ0(string sJGEJGBID) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + sql.Add("select XLXSJGBYZZ_YZID,XLXSJGBYZZ_YZZ from XLXSJGBYZZ,XLXSTZYZ "); + sql.Add(" where XLXSTZYZ_JGBID=XLXSJGBYZZ_JGBID and XLXSTZYZ_YZID=XLXSJGBYZZ_YZID and XLXSTZYZ_MXBH='JZJ' "); + sql.Add(" and exists ( select 1 from XLXSJGBYZ where XLXSJGBYZ_JGBID =:pJGEJGBID and XLXSJGBYZ_YZID = XLXSTZYZ_YZID) "); + sql.Add(" order by XLXSJGBYZZ_YZID"); + sql.ParamByName("pJGEJGBID").Value = sJGEJGBID; + DataSet ds = dberp.OpenDataSet(sql); + Dictionary dicYZZ0 = new Dictionary(); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + //形如(JZ07,2) + if (!dicYZZ0.ContainsKey(ds.Tables[0].Rows[i]["XLXSJGBYZZ_YZID"].ToString().Trim())) + { + dicYZZ0.Add(ds.Tables[0].Rows[i]["XLXSJGBYZZ_YZID"].ToString().Trim(), CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSJGBYZZ_YZZ"].ToString())); + } + } + return dicYZZ0; + } + + //获取调价因素为【1|型号&规格&电压&标准】 的价格表因子值 + public static Dictionary GetJGBYZZ1(string sJGEJGBID, string sXLXHID, string sXLGGID, string sXLBZID, string sDYDJID) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + sql.Add("select XLXSJGBYZZ1_YZID,XLXSJGBYZZ1_YZZ from XLXSJGBYZZ1"); + sql.Add(" left join XLXSBJXLGGTHB XLXSBJXLGGTHB_YZZ1 on XLXSBJXLGGTHB_YZZ1.XLXSBJXLGGTHB_XLGGID=XLXSJGBYZZ1_XLGGID"); + sql.Add(" ,XLXSTZYZ"); + sql.Add(" where XLXSTZYZ_JGBID=XLXSJGBYZZ1_JGBID and XLXSTZYZ_YZID=XLXSJGBYZZ1_YZID and XLXSTZYZ_MXBH='JZJ'"); + sql.Add(" and exists(select 1 from XLXSJGBYZ where XLXSJGBYZ_JGBID =:pJGEJGBID and XLXSJGBYZ_YZID = XLXSTZYZ_YZID)"); + sql.Add(" and XLXSJGBYZZ1_XLXHID =:pXLXHID "); + sql.Add(" and XLXSBJXLGGTHB_YZZ1.XLXSBJXLGGTHB_XLGGIDCH=:pXLGGID "); + sql.Add(" and XLXSJGBYZZ1_XLBZID =:pXLBZID "); + sql.Add(" and XLXSJGBYZZ1_DYDJID =:pDYDJID "); + sql.Add(" order by XLXSJGBYZZ1_YZID"); + sql.ParamByName("pJGEJGBID").Value = sJGEJGBID; + sql.ParamByName("pXLXHID").Value = sXLXHID; + sql.ParamByName("pXLGGID").Value = sXLGGID.Replace('*', '×'); + sql.ParamByName("pXLBZID").Value = sXLBZID; + sql.ParamByName("pDYDJID").Value = sDYDJID; + DataSet ds = dberp.OpenDataSet(sql); + Dictionary dicYZZ1 = new Dictionary(); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + //形如(JZ07,2) + if (!dicYZZ1.ContainsKey(ds.Tables[0].Rows[i]["XLXSJGBYZZ1_YZID"].ToString().Trim())) + { + dicYZZ1.Add(ds.Tables[0].Rows[i]["XLXSJGBYZZ1_YZID"].ToString().Trim(), CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSJGBYZZ1_YZZ"].ToString())); + } + } + return dicYZZ1; + } + + //获取调价因素为【2|产品用途&电压等级分类&报价材料】 的价格表因子值----因子值无法选择到,不参与计算 + + //获取调价因素为【3|销售区域&导体材料&线缆型号&主芯截面】的价格表因子值 + public static Dictionary GetJGBYZZ3(string sJGEJGBID, string sXSQYID, string sXLXHID, string fZXJM) + { + Dictionary dicYZZ3 = new Dictionary(); + dicYZZ3.Clear(); + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + sql.Add("select XLXSJGBYZZ3_YZZ,XLXSJGBYZZ3_YZID, "); + sql.Add(" case WHEN XLXSJGBYZZ3_XLXHID<>' ' and XLXSJGBYZZ3_ZXJM<>0 then 1 "); + sql.Add(" WHEN XLXSJGBYZZ3_XLXHID<>' ' and XLXSJGBYZZ3_ZXJM=0 then 2 "); + sql.Add(" WHEN XLXSJGBYZZ3_XLXHID=' ' and XLXSJGBYZZ3_ZXJM<>0 then 3 "); + sql.Add(" WHEN XLXSJGBYZZ3_XLXHID=' ' and XLXSJGBYZZ3_ZXJM=0 then 4 "); + sql.Add(" END AS PX,XLXSJGBYZZ3_XLXHID,XLXSJGBYZZ3_ZXJM "); + sql.Add(" from XLXSJGBYZZ3,XLXSTZYZ "); + sql.Add(" where XLXSTZYZ_JGBID=XLXSJGBYZZ3_JGBID and XLXSTZYZ_YZID=XLXSJGBYZZ3_YZID and XLXSTZYZ_MXBH='JZJ'"); + sql.Add(" and exists(select 1 from XLXSJGBYZ where XLXSJGBYZ_JGBID =:pJGEJGBID and XLXSJGBYZ_YZID = XLXSTZYZ_YZID)"); + sql.Add(" and XLXSJGBYZZ3_DTCLID=(select XLXHB_DTCLID from XLXHB where XLXHB_XLXHID=:pXLXHID) "); + sql.Add(" and XLXSJGBYZZ3_XSQYID=:pXSQYID "); + sql.Add(" order by PX,XLXSJGBYZZ3_YZID"); + sql.ParamByName("pJGEJGBID").Value = sJGEJGBID; + sql.ParamByName("pXLXHID").Value = sXLXHID; + sql.ParamByName("pXSQYID").Value = sXSQYID; + DataSet ds = dberp.OpenDataSet(sql); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + if (ds.Tables[0].Rows[i]["PX"].ToString().Trim().Equals("1")) + { + if (ds.Tables[0].Rows[i]["XLXSJGBYZZ3_XLXHID"].ToString().Trim().Equals(sXLXHID) + && (CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSJGBYZZ3_ZXJM"].ToString()) == CMISproConvert.StrToFloat(fZXJM))) + { + if (!dicYZZ3.ContainsKey(ds.Tables[0].Rows[i]["XLXSJGBYZZ3_YZID"].ToString().Trim())) + dicYZZ3.Add(ds.Tables[0].Rows[i]["XLXSJGBYZZ3_YZID"].ToString().Trim(), CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSJGBYZZ3_YZZ"].ToString())); + } + } + if (ds.Tables[0].Rows[i]["PX"].ToString().Trim().Equals("2")) + { + if (ds.Tables[0].Rows[i]["XLXSJGBYZZ3_XLXHID"].ToString().Trim().Equals(sXLXHID)) + { + if (!dicYZZ3.ContainsKey(ds.Tables[0].Rows[i]["XLXSJGBYZZ3_YZID"].ToString().Trim())) + dicYZZ3.Add(ds.Tables[0].Rows[i]["XLXSJGBYZZ3_YZID"].ToString().Trim(), CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSJGBYZZ3_YZZ"].ToString())); + } + } + if (ds.Tables[0].Rows[i]["PX"].ToString().Trim().Equals("3")) + { + if (CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSJGBYZZ3_ZXJM"].ToString()) == CMISproConvert.StrToFloat(fZXJM)) + { + if (!dicYZZ3.ContainsKey(ds.Tables[0].Rows[i]["XLXSJGBYZZ3_YZID"].ToString().Trim())) + dicYZZ3.Add(ds.Tables[0].Rows[i]["XLXSJGBYZZ3_YZID"].ToString().Trim(), CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSJGBYZZ3_YZZ"].ToString())); + } + } + if (ds.Tables[0].Rows[i]["PX"].ToString().Trim().Equals("4")) + { + if (!dicYZZ3.ContainsKey(ds.Tables[0].Rows[i]["XLXSJGBYZZ3_YZID"].ToString().Trim())) + dicYZZ3.Add(ds.Tables[0].Rows[i]["XLXSJGBYZZ3_YZID"].ToString().Trim(), CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSJGBYZZ3_YZZ"].ToString())); + } + + } + return dicYZZ3; + } + + //获取调价因素为【4|型号&电压等级&芯线结构&主芯截面范围】的价格表因子值 + public static Dictionary GetJGBYZZ4(string sJGEJGBID, string sXLXHID, string sDYDJID, string sXXJGID, string fZXJM) + { + Dictionary dicYZZ4 = new Dictionary(); + dicYZZ4.Clear(); + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + sql.Add("select XLXSJGBYZZ4_YZZ,XLXSJGBYZZ4_YZID, "); + sql.Add(" case WHEN XLXSJGBYZZ4_DYDJID<>' ' and XLXSJGBYZZ4_XXJGID<>' ' then 1 "); + sql.Add(" WHEN XLXSJGBYZZ4_DYDJID<>' ' and XLXSJGBYZZ4_XXJGID=' ' then 2 "); + sql.Add(" WHEN XLXSJGBYZZ4_DYDJID=' ' and XLXSJGBYZZ4_XXJGID<>' ' then 3 "); + sql.Add(" WHEN XLXSJGBYZZ4_DYDJID=' ' and XLXSJGBYZZ4_XXJGID=' ' then 4 "); + sql.Add(" END AS PX,XLXSJGBYZZ4_DYDJID,XLXSJGBYZZ4_XXJGID "); + sql.Add(" from XLXSJGBYZZ4,XLXSTZYZ "); + sql.Add(" where XLXSTZYZ_JGBID=XLXSJGBYZZ4_JGBID and XLXSTZYZ_YZID=XLXSJGBYZZ4_YZID and XLXSTZYZ_MXBH='JZJ'"); + sql.Add(" and exists(select 1 from XLXSJGBYZ where XLXSJGBYZ_JGBID =:pJGEJGBID and XLXSJGBYZ_YZID = XLXSTZYZ_YZID)"); + sql.Add(" and XLXSJGBYZZ4_XLXHID=:pXLXHID "); + sql.Add(" and XLXSJGBYZZ4_ZXJMXX<=:pZXJM and ((XLXSJGBYZZ4_ZXJMSX<>0 and XLXSJGBYZZ4_ZXJMSX>=:pZXJM) or XLXSJGBYZZ4_ZXJMSX=0)"); + sql.Add(" order by PX,XLXSJGBYZZ4_YZID"); + sql.ParamByName("pJGEJGBID").Value = sJGEJGBID; + sql.ParamByName("pXLXHID").Value = sXLXHID; + sql.ParamByName("pZXJM").Value = CMISproConvert.StrToFloat(fZXJM); + DataSet ds = dberp.OpenDataSet(sql); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + if (ds.Tables[0].Rows[i]["PX"].ToString().Trim().Equals("1")) + { + if (ds.Tables[0].Rows[i]["XLXSJGBYZZ4_DYDJID"].ToString().Trim().Equals(sDYDJID) && ds.Tables[0].Rows[i]["XLXSJGBYZZ4_XXJGID"].ToString().Trim().Equals(sXXJGID)) + { + if (!dicYZZ4.ContainsKey(ds.Tables[0].Rows[i]["XLXSJGBYZZ4_YZID"].ToString().Trim())) + dicYZZ4.Add(ds.Tables[0].Rows[i]["XLXSJGBYZZ4_YZID"].ToString().Trim(), CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSJGBYZZ4_YZZ"].ToString())); + } + } + if (ds.Tables[0].Rows[i]["PX"].ToString().Trim().Equals("2")) + { + if (ds.Tables[0].Rows[i]["XLXSJGBYZZ4_DYDJID"].ToString().Trim().Equals(sDYDJID)) + { + if (!dicYZZ4.ContainsKey(ds.Tables[0].Rows[i]["XLXSJGBYZZ4_YZID"].ToString().Trim())) + dicYZZ4.Add(ds.Tables[0].Rows[i]["XLXSJGBYZZ4_YZID"].ToString().Trim(), CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSJGBYZZ4_YZZ"].ToString())); + } + } + if (ds.Tables[0].Rows[i]["PX"].ToString().Trim().Equals("3")) + { + if (ds.Tables[0].Rows[i]["XLXSJGBYZZ4_XXJGID"].ToString().Trim().Equals(sXXJGID)) + { + if (!dicYZZ4.ContainsKey(ds.Tables[0].Rows[i]["XLXSJGBYZZ4_YZID"].ToString().Trim())) + dicYZZ4.Add(ds.Tables[0].Rows[i]["XLXSJGBYZZ4_YZID"].ToString().Trim(), CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSJGBYZZ4_YZZ"].ToString())); + } + } + if (ds.Tables[0].Rows[i]["PX"].ToString().Trim().Equals("4")) + { + if (!dicYZZ4.ContainsKey(ds.Tables[0].Rows[i]["XLXSJGBYZZ4_YZID"].ToString().Trim())) + dicYZZ4.Add(ds.Tables[0].Rows[i]["XLXSJGBYZZ4_YZID"].ToString().Trim(), CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSJGBYZZ4_YZZ"].ToString())); + } + + } + return dicYZZ4; + } + + //获取调价因素为"9|型号&规格&电压等级&芯线结构&主芯截面范围"的价格表因子值 + public static Dictionary GetJGBYZZ9(string sJGEJGBID, string sXLXHID, string sXLGGID, string sDYDJID) + { + Dictionary dicYZZ9 = new Dictionary(); + dicYZZ9.Clear(); + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + sql.Add("select XLXSJGBYZZ9_YZZ,XLXSJGBYZZ9_YZID, "); + sql.Add(" case WHEN XLXSJGBYZZ9_XLGGID<>' ' and XLXSJGBYZZ9_DYDJID<>' ' then 1 "); + sql.Add(" WHEN XLXSJGBYZZ9_XLGGID<>' ' and XLXSJGBYZZ9_DYDJID=' ' then 2 "); + sql.Add(" WHEN XLXSJGBYZZ9_XLGGID=' ' and XLXSJGBYZZ9_DYDJID<>' ' then 3 "); + sql.Add(" WHEN XLXSJGBYZZ9_XLGGID=' ' and XLXSJGBYZZ9_DYDJID=' ' then 4 "); + sql.Add(" END AS PX,XLXSJGBYZZ9_XLGGID,XLXSJGBYZZ9_DYDJID "); + sql.Add(" from XLXSJGBYZZ9,XLXSTZYZ "); + sql.Add(" where XLXSTZYZ_JGBID=XLXSJGBYZZ9_JGBID and XLXSTZYZ_YZID=XLXSJGBYZZ9_YZID and XLXSTZYZ_MXBH='JZJ'"); + sql.Add(" and exists(select 1 from XLXSJGBYZ where XLXSJGBYZ_JGBID =:pJGEJGBID and XLXSJGBYZ_YZID = XLXSTZYZ_YZID)"); + sql.Add(" and XLXSJGBYZZ9_XLXHID=:pXLXHID "); + sql.Add(" order by PX,XLXSJGBYZZ9_YZID"); + sql.ParamByName("pJGEJGBID").Value = sJGEJGBID; + sql.ParamByName("pXLXHID").Value = sXLXHID; + DataSet ds = dberp.OpenDataSet(sql); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + if (ds.Tables[0].Rows[i]["PX"].ToString().Trim().Equals("1")) + { + if (ds.Tables[0].Rows[i]["XLXSJGBYZZ9_XLGGID"].ToString().Trim().Equals(sXLGGID) && ds.Tables[0].Rows[i]["XLXSJGBYZZ9_DYDJID"].ToString().Trim().Equals(sDYDJID)) + { + if (!dicYZZ9.ContainsKey(ds.Tables[0].Rows[i]["XLXSJGBYZZ9_YZID"].ToString().Trim())) + dicYZZ9.Add(ds.Tables[0].Rows[i]["XLXSJGBYZZ9_YZID"].ToString().Trim(), CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSJGBYZZ9_YZZ"].ToString())); + } + } + if (ds.Tables[0].Rows[i]["PX"].ToString().Trim().Equals("2")) + { + if (ds.Tables[0].Rows[i]["XLXSJGBYZZ9_XLGGID"].ToString().Trim().Equals(sXLGGID)) + { + if (!dicYZZ9.ContainsKey(ds.Tables[0].Rows[i]["XLXSJGBYZZ9_YZID"].ToString().Trim())) + dicYZZ9.Add(ds.Tables[0].Rows[i]["XLXSJGBYZZ9_YZID"].ToString().Trim(), CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSJGBYZZ9_YZZ"].ToString())); + } + } + if (ds.Tables[0].Rows[i]["PX"].ToString().Trim().Equals("3")) + { + if (ds.Tables[0].Rows[i]["XLXSJGBYZZ9_DYDJID"].ToString().Trim().Equals(sDYDJID)) + { + if (!dicYZZ9.ContainsKey(ds.Tables[0].Rows[i]["XLXSJGBYZZ9_YZID"].ToString().Trim())) + dicYZZ9.Add(ds.Tables[0].Rows[i]["XLXSJGBYZZ9_YZID"].ToString().Trim(), CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSJGBYZZ9_YZZ"].ToString())); + } + } + if (ds.Tables[0].Rows[i]["PX"].ToString().Trim().Equals("4")) + { + if (!dicYZZ9.ContainsKey(ds.Tables[0].Rows[i]["XLXSJGBYZZ9_YZID"].ToString().Trim())) + dicYZZ9.Add(ds.Tables[0].Rows[i]["XLXSJGBYZZ9_YZID"].ToString().Trim(), CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSJGBYZZ9_YZZ"].ToString())); + } + } + return dicYZZ9; + } + + //获取调价因素为【5|型号&电压等级&主芯截面范围&总芯数范围】的价格表因子值 + public static Dictionary GetJGBYZZ5(string sJGEJGBID, string sXLXHID, string sDYDJID, string fZXJM, string fGGZXS) + { + Dictionary dicYZZ5 = new Dictionary(); + dicYZZ5.Clear(); + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + sql.Add("select XLXSJGBYZZ5_YZZ,XLXSJGBYZZ5_YZID, "); + sql.Add(" case WHEN XLXSJGBYZZ5_DYDJID<>' ' then 1 "); + sql.Add(" WHEN XLXSJGBYZZ5_DYDJID=' ' then 2 "); + sql.Add(" END AS PX,XLXSJGBYZZ5_DYDJID "); + sql.Add(" from XLXSJGBYZZ5,XLXSTZYZ "); + sql.Add(" where XLXSTZYZ_JGBID=XLXSJGBYZZ5_JGBID and XLXSTZYZ_YZID=XLXSJGBYZZ5_YZID and XLXSTZYZ_MXBH='JZJ'"); + sql.Add(" and exists(select 1 from XLXSJGBYZ where XLXSJGBYZ_JGBID =:pJGEJGBID and XLXSJGBYZ_YZID = XLXSTZYZ_YZID)"); + sql.Add(" and XLXSJGBYZZ5_XLXHID=:pXLXHID "); + sql.Add(" and XLXSJGBYZZ5_ZXJMXX<=:pZXJM and ((XLXSJGBYZZ5_ZXJMSX<>0 and XLXSJGBYZZ5_ZXJMSX>=:pZXJM) or XLXSJGBYZZ5_ZXJMSX=0)"); + sql.Add(" and XLXSJGBYZZ5_ZXSXX<=:pZXS and ((XLXSJGBYZZ5_ZXSSX<>0 and XLXSJGBYZZ5_ZXSSX>=:pZXS) or XLXSJGBYZZ5_ZXSSX=0)"); + sql.Add(" order by PX,XLXSJGBYZZ5_YZID"); + sql.ParamByName("pJGEJGBID").Value = sJGEJGBID; + sql.ParamByName("pXLXHID").Value = sXLXHID; + sql.ParamByName("pZXJM").Value = CMISproConvert.StrToFloat(fZXJM); + sql.ParamByName("pZXS").Value = CMISproConvert.StrToFloat(fGGZXS); + DataSet ds = dberp.OpenDataSet(sql); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + if (ds.Tables[0].Rows[i]["PX"].ToString().Trim().Equals("1")) + { + if (ds.Tables[0].Rows[i]["XLXSJGBYZZ5_DYDJID"].ToString().Trim().Equals(sDYDJID)) + { + if (!dicYZZ5.ContainsKey(ds.Tables[0].Rows[i]["XLXSJGBYZZ5_YZID"].ToString().Trim())) + dicYZZ5.Add(ds.Tables[0].Rows[i]["XLXSJGBYZZ5_YZID"].ToString().Trim(), CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSJGBYZZ5_YZZ"].ToString())); + } + } + if (ds.Tables[0].Rows[i]["PX"].ToString().Trim().Equals("2")) + { + if (!dicYZZ5.ContainsKey(ds.Tables[0].Rows[i]["XLXSJGBYZZ5_YZID"].ToString().Trim())) + dicYZZ5.Add(ds.Tables[0].Rows[i]["XLXSJGBYZZ5_YZID"].ToString().Trim(), CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSJGBYZZ5_YZZ"].ToString())); + } + } + return dicYZZ5; + } + + //获取调价因素为【8|材料重量】 的价格表因子值 + public static Dictionary GetJGBYZZ8(string sJGEJGBID, string sXLXHID, string sXLGGID, string sXLBZID, string sDYDJID) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + sql.Add("select XLXSJGBYZZ8_YZID,XLXSJGBYZZ8_YZZ,XLXSCLQD_CLZL from XLXSTZYZ,XLXSJGBYZZ8 "); + sql.Add(" left join XLXSBJXLGGTHB XLXSBJXLGGTHB_YZZ8 on XLXSBJXLGGTHB_YZZ8.XLXSBJXLGGTHB_XLGGID=XLXSJGBYZZ8_XLGGID "); + sql.Add(" LEFT JOIN XLXSCLQD ON XLXSCLQD_XLXHID = XLXSJGBYZZ8_XLXHID AND XLXSCLQD_XLBZID = XLXSJGBYZZ8_XLBZID AND XLXSCLQD_XLGGID = XLXSJGBYZZ8_XLGGID AND XLXSCLQD_DYDJID = XLXSJGBYZZ8_DYDJID "); + sql.Add(" where XLXSTZYZ_JGBID=XLXSJGBYZZ8_JGBID and XLXSTZYZ_YZID=XLXSJGBYZZ8_YZID and XLXSTZYZ_MXBH='JZJ'"); + sql.Add(" and exists(select 1 from XLXSJGBYZ where XLXSJGBYZ_JGBID =:pJGEJGBID and XLXSJGBYZ_YZID = XLXSTZYZ_YZID)"); + sql.Add(" and XLXSJGBYZZ8_XLXHID =:pXLXHID "); + sql.Add(" and XLXSBJXLGGTHB_YZZ8.XLXSBJXLGGTHB_XLGGIDCH=:pXLGGID "); + sql.Add(" and XLXSJGBYZZ8_XLBZID =:pXLBZID "); + sql.Add(" and XLXSJGBYZZ8_DYDJID =:pDYDJID "); + sql.Add(" order by XLXSJGBYZZ8_YZID"); + sql.ParamByName("pJGEJGBID").Value = sJGEJGBID; + sql.ParamByName("pXLXHID").Value = sXLXHID; + sql.ParamByName("pXLGGID").Value = sXLGGID.Replace('*', '×'); + sql.ParamByName("pXLBZID").Value = sXLBZID; + sql.ParamByName("pDYDJID").Value = sDYDJID; + DataSet ds = dberp.OpenDataSet(sql); + Dictionary dicYZZ8 = new Dictionary(); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + //形如(JZ07,2) + if (!dicYZZ8.ContainsKey(ds.Tables[0].Rows[i]["XLXSJGBYZZ8_YZID"].ToString().Trim())) + { + dicYZZ8.Add(ds.Tables[0].Rows[i]["XLXSJGBYZZ8_YZID"].ToString().Trim(), CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSJGBYZZ8_YZZ"].ToString(), 0) * CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSCLQD_CLZL"].ToString(), 0) / 1000); + } + } + return dicYZZ8; + } + + + //根据型号获取导体材料ID + public static string GetDTCLIDByXLXHID(string sXLXHID) + { + string sDTCLID = ""; + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + sql.Clear(); + sql.Add(" select XLXHB_DTCLID from XLXHB WHERE XLXHB_XLXHID =:pXLXHID "); + sql.ParamByName("pXLXHID").Value = sXLXHID; + DataSet data = dberp.OpenDataSet(sql); + if (data.Tables[0].Rows.Count > 0) + { + sDTCLID = data.Tables[0].Rows[0][0].ToString().Trim(); + } + return sDTCLID; + } + + //根据规格解析出主芯截面 + //25, 2×50, 3×120+1×70, 3×120×70 + public static string GetZXJMByXLGGID(string sXLGGID, string sXLXHID) + { + string sZXJM = ""; + string sXLGGJDGZ = "0"; + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + sql.Clear(); + sql.Add("select XLXHB_XLGGJDGZ from XLXHB WHERE XLXHB_XLXHID=:pXLXHID "); + sql.ParamByName("pXLXHID").Value = sXLXHID.Trim(); + DataSet ds = dberp.OpenDataSet(sql); + if (ds.Tables[0].Rows.Count > 0) + sXLGGJDGZ = ds.Tables[0].Rows[0][0].ToString().Trim(); + sql.Clear(); + sql.Add("select XLGGB_DTJMZHID from XLGGB WHERE XLGGB_XLGGID=:pXLGGID and XLGGB_XLGGJDGZ=:pXLGGJDGZ "); + sql.ParamByName("pXLGGID").Value = sXLGGID.Trim().Replace("*", "×"); + sql.ParamByName("pXLGGJDGZ").Value = sXLGGJDGZ; + ds = dberp.OpenDataSet(sql); + if (ds.Tables[0].Rows.Count > 0) + { + string sDTJMZHID = ds.Tables[0].Rows[0]["XLGGB_DTJMZHID"].ToString().Trim(); + if (sDTJMZHID.Split('/').Length > 0) + { + sZXJM = sDTJMZHID.Split('/')[0]; + } + else + { + sZXJM = sDTJMZHID; + } + } + + if (sZXJM.Equals("")) + { + sZXJM = "0"; + } + return sZXJM; + } + + //根据规格解析出主芯截面、芯线结构,规格总芯数 + public static Dictionary GetXXJGIDByXLGGID(string sXLGGID, string sXLXHID) + { + string sZXJM = ""; + string sXXJGID = ""; + string sGGZXS = ""; + string sXLGGJDGZ = "0"; + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + sql.Clear(); + sql.Add("select XLXHB_XLGGJDGZ from XLXHB WHERE XLXHB_XLXHID=:pXLXHID "); + sql.ParamByName("pXLXHID").Value = sXLXHID.Trim(); + DataSet ds = dberp.OpenDataSet(sql); + if (ds.Tables[0].Rows.Count > 0) + sXLGGJDGZ = ds.Tables[0].Rows[0][0].ToString().Trim(); + + + sql.Clear(); + sql.Add("select XLGGB_DTJMZHID,XLGGB_XXJGID,XLGGB_GGZXS from XLGGB WHERE XLGGB_XLGGID=:pXLGGID and XLGGB_XLGGJDGZ=:pXLGGJDGZ "); + sql.ParamByName("pXLGGID").Value = sXLGGID.Trim().Replace("*", "×"); + sql.ParamByName("pXLGGJDGZ").Value = sXLGGJDGZ; + ds = dberp.OpenDataSet(sql); + if (ds.Tables[0].Rows.Count > 0) + { + string sDTJMZHID = ds.Tables[0].Rows[0]["XLGGB_DTJMZHID"].ToString().Trim(); + if (sDTJMZHID.Split('/').Length > 0) + { + sZXJM = sDTJMZHID.Split('/')[0]; + } + else + { + sZXJM = sDTJMZHID; + } + + sXXJGID = ds.Tables[0].Rows[0]["XLGGB_XXJGID"].ToString().Trim(); + sGGZXS = ds.Tables[0].Rows[0]["XLGGB_GGZXS"].ToString().Trim(); + } + + if (sZXJM.Equals("")) + { + sZXJM = "0"; + } + + Dictionary dicXLGGB = new Dictionary(); + dicXLGGB.Add("ZXJM", sZXJM); + dicXLGGB.Add("XXJGID", sXXJGID); + dicXLGGB.Add("GGZXS", sGGZXS); + return dicXLGGB; + } + + //新建报价单明细时,插入XLXSBJDYZZ0,给报价单因子赋默认值 + public static void InsertXLXSBJDYZZ0(TDatabase dberp, TSQL sSQL, string sBJFLID, string sBJDID, int iXH, double fBJSL, + string sXLXHID, string sXLGGID, string sXLBZID, string sXLDYDJ, string sXSQYID, string sPJLX, + string sFKQXNR, string sSYDWID, string sJLDW, string sBJU003, string sWGCPBZ, string sXLYSID) + { + sSQL.Clear(); + sSQL.Add("delete from XLXSBJDYZZ0 where XLXSBJDYZZ0_BJDID=:pBJDID and XLXSBJDYZZ0_XH =:pXH "); + sSQL.ParamByName("pBJDID").Value = sBJDID; + sSQL.ParamByName("pXH").Value = iXH; + dberp.ExecSQL(sSQL); + + //先插入再更新 + sSQL.Clear(); + sSQL.Add("insert into XLXSBJDYZZ0(XLXSBJDYZZ0_BJDID,XLXSBJDYZZ0_XH) "); + sSQL.Add("values(:pBJDID,:pXH) "); + sSQL.ParamByName("pBJDID").Value = sBJDID; + sSQL.ParamByName("pXH").Value = iXH; + dberp.ExecSQL(sSQL); + + //按行存储因子值,用于一行执行一次update + Dictionary dicBJDYZZ = new Dictionary(); + + //报价分类使用到的调价因素 + sSQL.Clear(); + sSQL.Add("select XLXSTZYZ_TJYS from XLXSBJFLYZ"); + sSQL.Add(" left join XLXSTZYZ on XLXSTZYZ_MXBH='BJD' and XLXSTZYZ_YZID=XLXSBJFLYZ_YZID"); + sSQL.Add(" where XLXSBJFLYZ_BJFLID=:pBJFLID"); + sSQL.Add(" order by XLXSTZYZ_XSXH,XLXSBJFLYZ_YZID"); + sSQL.ParamByName("pBJFLID").Value = sBJFLID.Trim(); + DataSet dsTJYS = dberp.OpenDataSet(sSQL); + string sTJYSList = ""; + for (int i = 0; i < dsTJYS.Tables[0].Rows.Count; i++) + { + string sTJYS = dsTJYS.Tables[0].Rows[i]["XLXSTZYZ_TJYS"].ToString().Trim(); + if (sTJYS.Equals("")) + sTJYS = "空"; + + if (sTJYSList.Equals("")) + sTJYSList = "," + sTJYS + ","; + else + { + if (!sTJYSList.Contains("," + sTJYS + ",")) + sTJYSList = sTJYSList + sTJYS + ","; + } + } + + double dJLDWHSBL = 1.0; + dJLDWHSBL = XLBJDUtils.GetJLDWHSBL_SL(sJLDW, sBJU003); + double dTmpBJSL = fBJSL * dJLDWHSBL; + + Dictionary dicXLGGB = GetXXJGIDByXLGGID(sXLGGID, sXLXHID); + //解析获取主芯截面 + string fZXJM = dicXLGGB["ZXJM"]; + //获取芯线结构 + string sXXJGID = dicXLGGB["XXJGID"]; + + //获取调价因素为空的因子值 + Dictionary dicYZZ0 = XLBJDUtils.GetBJDYZZ0(sBJFLID, sWGCPBZ.Equals("Y"), false, sJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sXLDYDJ, sBJDID); + //获取按“1|付款方式”设置的调价因子值 + Dictionary dicYZZ1 = new Dictionary(); + if (sTJYSList.Contains(",1,")) + { + dicYZZ1 = XLBJDUtils.GetBJDYZZ1(sBJFLID, sPJLX, sJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sXLDYDJ, sBJDID); + } + //获取按“2|导体材料&电压区间&报价数量区间”设置的调价因子值 + Dictionary dicYZZ2 = new Dictionary(); + if (sTJYSList.Contains(",2,")) + { + dicYZZ2 = XLBJDUtils.GetBJDYZZ2(sBJFLID, sXLDYDJ, dTmpBJSL, sXLXHID, sJLDW, sBJU003, sXLGGID, sXLBZID, sBJDID); + } + //获取按“3|产品用途&电压等级分类&报价数量区间”设置的调价因子值 + Dictionary dicYZZ3 = new Dictionary(); + if (sTJYSList.Contains(",3,")) + { + dicYZZ3 = XLBJDUtils.GetBJDYZZ3(sBJFLID, dTmpBJSL, sXLXHID, sXLGGID, sXLBZID, sXLDYDJ, sJLDW, sBJU003, sBJDID); + } + //获取按“E|型号&电压等级&主芯截面范围&报价数量区间”设置的调价因子值 + Dictionary dicYZZE = new Dictionary(); + if (sTJYSList.Contains(",E,")) + { + dicYZZE = XLBJDUtils.GetBJDYZZE(sBJFLID, sXLXHID, sXLDYDJ, CMISproConvert.StrToFloat(fZXJM), dTmpBJSL, sJLDW, sBJU003, sXLGGID, sXLBZID, sBJDID); + } + //获取按“F|电压等级&芯线结构&报价数量区间加价/报价数量”设置的调价因子值 + Dictionary dicYZZF = new Dictionary(); + if (sTJYSList.Contains(",F,")) + { + dicYZZF = XLBJDUtils.GetBJDYZZF(sBJFLID, sXLXHID,sXLDYDJ, sXXJGID, dTmpBJSL, sJLDW, sBJU003, sBJDID); + } + //获取按“4|型号”设置的调价因子值 + Dictionary dicYZZ4 = new Dictionary(); + if (sTJYSList.Contains(",4,")) + { + dicYZZ4 = XLBJDUtils.GetBJDYZZ4(sBJFLID, sXLXHID, sJLDW, sBJU003, sXLGGID, sXLBZID, sXLDYDJ, sBJDID); + } + //获取按“5|销售区域&型号&标准&电压等级&主芯截面范围”设置的调价因子值 + Dictionary dicYZZ5 = new Dictionary(); + if (sTJYSList.Contains(",5,")) + { + dicYZZ5 = XLBJDUtils.GetBJDYZZ5(sBJFLID, sXSQYID, sXLXHID, sXLBZID, sXLDYDJ, CMISproConvert.StrToFloat(fZXJM), sJLDW, sBJU003, sXLGGID, sBJDID); + } + //获取按“6|报价数量区间调价米数/报价数量”设置的调价因子值 + Dictionary dicYZZ6 = new Dictionary(); + if (sTJYSList.Contains(",6,")) + { + dicYZZ6 = XLBJDUtils.GetBJDYZZ6(sBJFLID, dTmpBJSL, sJLDW, sBJU003, sBJDID); + } + //获取按“7|型号&电压等级&芯线结构&主芯截面范围”设置的调价因子值 + Dictionary dicYZZ7 = new Dictionary(); + if (sTJYSList.Contains(",7,")) + { + dicYZZ7 = XLBJDUtils.GetBJDYZZ7(sBJFLID, sXLXHID, sXLDYDJ, sXXJGID, CMISproConvert.StrToFloat(fZXJM), sJLDW, sBJU003, sXLGGID, sXLBZID, sBJDID); + } + + //获取按“8|付款期限”设置的调价因子值 + Dictionary dicYZZ8 = new Dictionary(); + if (sTJYSList.Contains(",8,")) + { + dicYZZ8 = XLBJDUtils.GetBJDYZZ8(sBJFLID, sFKQXNR, sJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sXLDYDJ, sBJDID); + } + + //获取按“9|导体材料&产品用途&电压等级分类&产品特性”因子值 + Dictionary dicYZZ9 = new Dictionary(); + if (sTJYSList.Contains(",9,")) + { + dicYZZ9 = XLBJDUtils.GetBJDYZZ9(sBJFLID, sXLXHID, sXLDYDJ, sJLDW, sBJU003, sXLGGID, sXLBZID, sBJDID); + } + + //获取按“A|型号&规格&电压&标准”因子值 + Dictionary dicYZZA = new Dictionary(); + if (sTJYSList.Contains(",A,")) + { + dicYZZA = XLBJDUtils.GetBJDYZZA(sBJFLID, sXLXHID, sXLGGID, sXLBZID, sXLDYDJ, sJLDW, sBJU003, sBJDID); + } + + Dictionary dicYZZBZPF = new Dictionary(); + if (sTJYSList.Contains(",BZPF,")) + { + //包装盘费 + string sBZPFYZID = XLBJDUtils.GetBJFLSYBZPFYZID(sBJFLID); + if (!sBZPFYZID.Equals("")) + { + sBZPFYZID = sBZPFYZID.Split('|')[0]; + + dicYZZBZPF = XLBJDUtils.GetBJDBZPFYZZ(sBZPFYZID, sXLXHID, sXLGGID, sXLBZID, sXLDYDJ, sJLDW, sBJU003, sBJDID); + } + } + + Dictionary dicYZZCPWJPF = new Dictionary(); + if (sTJYSList.Contains(",CPWJPF,")) + { + //产品外径盘费 + string sCPWJPFYZID = XLBJDUtils.GetBJFLSYCPWJPFYZID(sBJFLID); + if (!sCPWJPFYZID.Equals("")) + { + sCPWJPFYZID = sCPWJPFYZID.Split('|')[0]; + + dicYZZCPWJPF = XLBJDUtils.GetBJDCPWJPFYZZ(sCPWJPFYZID, sXLXHID, sXLGGID, sXLBZID, sXLDYDJ, sJLDW, sBJU003, sBJDID, fBJSL); + } + } + + //获取按“B|销售单位”因子值 + Dictionary dicYZZB = new Dictionary(); + if (sTJYSList.Contains(",B,")) + { + dicYZZB = XLBJDUtils.GetBJDYZZB(sBJFLID, sSYDWID, sJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sXLDYDJ, sBJDID); + } + + //获取按“C|产品目录&主芯截面范围&产品特性”因子值 + Dictionary dicYZZC = new Dictionary(); + if (sTJYSList.Contains(",C,")) + { + dicYZZC = XLBJDUtils.GetBJDYZZC(sBJDID, sBJFLID, sXLXHID, sXLDYDJ, CMISproConvert.StrToFloat(fZXJM), sJLDW, sBJU003, sXLGGID, sXLBZID); + } + //获取按“D|颜色”设置的调价因子值 + Dictionary dicYZZD = new Dictionary(); + if (sTJYSList.Contains(",D,")) + { + dicYZZD = XLBJDUtils.GetBJDYZZD(sBJFLID, sXLYSID, sJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sXLDYDJ, sBJDID); + } + + Dictionary dicYZZG = new Dictionary(); + if (sTJYSList.Contains(",G,")) + { + dicYZZG = XLBJDUtils.GetBJDYZZG(sBJFLID, sXLXHID, sXLDYDJ, sXXJGID, CMISproConvert.StrToFloat(fZXJM), dTmpBJSL, sJLDW, sBJU003, sBJDID); + } + Dictionary dicYZZH = new Dictionary(); + if (sTJYSList.Contains(",H,")) + { + dicYZZH = XLBJDUtils.GetBJDYZZH(sBJFLID, sXLXHID, sXLDYDJ, sXLYSID, CMISproConvert.StrToFloat(fZXJM), dTmpBJSL, sJLDW, sBJU003, sBJDID); + } + Dictionary dicYZZK = new Dictionary(); + if (sTJYSList.Contains(",K,")) + { + dicYZZK = XLBJDUtils.GetBJDYZZK(sBJFLID, dTmpBJSL, sJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sXLDYDJ, sBJDID); + } + + Dictionary dicYZZL = new Dictionary(); + if (sTJYSList.Contains(",L,")) + { + dicYZZL = XLBJDUtils.GetBJDYZZL(sBJFLID, sXLBZID, dTmpBJSL, sJLDW, sBJU003, sXLXHID, sXLGGID, sXLDYDJ, sBJDID); + } + + + foreach (string sYZID in dicYZZ0.Keys) + { + if (dicBJDYZZ.ContainsKey(sYZID)) + dicBJDYZZ[sYZID] = dicYZZ0[sYZID]; + else + dicBJDYZZ.Add(sYZID, dicYZZ0[sYZID]); + } + foreach (string sYZID in dicYZZ1.Keys) + { + if (dicBJDYZZ.ContainsKey(sYZID)) + dicBJDYZZ[sYZID] = dicYZZ1[sYZID]; + else + dicBJDYZZ.Add(sYZID, dicYZZ1[sYZID]); + } + foreach (string sYZID in dicYZZ2.Keys) + { + if (dicBJDYZZ.ContainsKey(sYZID)) + dicBJDYZZ[sYZID] = dicYZZ2[sYZID]; + else + dicBJDYZZ.Add(sYZID, dicYZZ2[sYZID]); + } + foreach (string sYZID in dicYZZ3.Keys) + { + if (dicBJDYZZ.ContainsKey(sYZID)) + dicBJDYZZ[sYZID] = dicYZZ3[sYZID]; + else + dicBJDYZZ.Add(sYZID, dicYZZ3[sYZID]); + } + foreach (string sYZID in dicYZZE.Keys) + { + if (dicBJDYZZ.ContainsKey(sYZID)) + dicBJDYZZ[sYZID] = dicYZZE[sYZID]; + else + dicBJDYZZ.Add(sYZID, dicYZZE[sYZID]); + } + foreach (string sYZID in dicYZZF.Keys) + { + if (dicBJDYZZ.ContainsKey(sYZID)) + dicBJDYZZ[sYZID] = dicYZZF[sYZID]; + else + dicBJDYZZ.Add(sYZID, dicYZZF[sYZID]); + } + foreach (string sYZID in dicYZZ4.Keys) + { + if (dicBJDYZZ.ContainsKey(sYZID)) + dicBJDYZZ[sYZID] = dicYZZ4[sYZID]; + else + dicBJDYZZ.Add(sYZID, dicYZZ4[sYZID]); + } + foreach (string sYZID in dicYZZ5.Keys) + { + if (dicBJDYZZ.ContainsKey(sYZID)) + dicBJDYZZ[sYZID] = dicYZZ5[sYZID]; + else + dicBJDYZZ.Add(sYZID, dicYZZ5[sYZID]); + } + foreach (string sYZID in dicYZZ6.Keys) + { + if (dicBJDYZZ.ContainsKey(sYZID)) + dicBJDYZZ[sYZID] = dicYZZ6[sYZID]; + else + dicBJDYZZ.Add(sYZID, dicYZZ6[sYZID]); + } + foreach (string sYZID in dicYZZ7.Keys) + { + if (dicBJDYZZ.ContainsKey(sYZID)) + dicBJDYZZ[sYZID] = dicYZZ7[sYZID]; + else + dicBJDYZZ.Add(sYZID, dicYZZ7[sYZID]); + } + + foreach (string sYZID in dicYZZ8.Keys) + { + if (dicBJDYZZ.ContainsKey(sYZID)) + dicBJDYZZ[sYZID] = dicYZZ8[sYZID]; + else + dicBJDYZZ.Add(sYZID, dicYZZ8[sYZID]); + } + + foreach (string sYZID in dicYZZ9.Keys) + { + if (dicBJDYZZ.ContainsKey(sYZID)) + dicBJDYZZ[sYZID] = dicYZZ9[sYZID]; + else + dicBJDYZZ.Add(sYZID, dicYZZ9[sYZID]); + } + + foreach (string sYZID in dicYZZA.Keys) + { + if (dicBJDYZZ.ContainsKey(sYZID)) + dicBJDYZZ[sYZID] = dicYZZA[sYZID]; + else + dicBJDYZZ.Add(sYZID, dicYZZA[sYZID]); + } + foreach (string sYZID in dicYZZBZPF.Keys) + { + if (dicBJDYZZ.ContainsKey(sYZID)) + dicBJDYZZ[sYZID] = dicYZZBZPF[sYZID]; + else + dicBJDYZZ.Add(sYZID, dicYZZBZPF[sYZID]); + } + foreach (string sYZID in dicYZZB.Keys) + { + if (dicBJDYZZ.ContainsKey(sYZID)) + dicBJDYZZ[sYZID] = dicYZZB[sYZID]; + else + dicBJDYZZ.Add(sYZID, dicYZZB[sYZID]); + } + foreach (string sYZID in dicYZZC.Keys) + { + if (dicBJDYZZ.ContainsKey(sYZID)) + dicBJDYZZ[sYZID] = dicYZZC[sYZID]; + else + dicBJDYZZ.Add(sYZID, dicYZZC[sYZID]); + } + foreach (string sYZID in dicYZZD.Keys) + { + if (dicBJDYZZ.ContainsKey(sYZID)) + dicBJDYZZ[sYZID] = dicYZZD[sYZID]; + else + dicBJDYZZ.Add(sYZID, dicYZZD[sYZID]); + } + foreach (string sYZID in dicYZZG.Keys) + { + if (dicBJDYZZ.ContainsKey(sYZID)) + dicBJDYZZ[sYZID] = dicYZZG[sYZID]; + else + dicBJDYZZ.Add(sYZID, dicYZZG[sYZID]); + } + foreach (string sYZID in dicYZZH.Keys) + { + if (dicBJDYZZ.ContainsKey(sYZID)) + dicBJDYZZ[sYZID] = dicYZZH[sYZID]; + else + dicBJDYZZ.Add(sYZID, dicYZZH[sYZID]); + } + foreach (string sYZID in dicYZZK.Keys) + { + if (dicBJDYZZ.ContainsKey(sYZID)) + dicBJDYZZ[sYZID] = dicYZZK[sYZID]; + else + dicBJDYZZ.Add(sYZID, dicYZZK[sYZID]); + } + + if (dicBJDYZZ.Keys.Count > 0) + { + sSQL.Clear(); + sSQL.Add("update XLXSBJDYZZ0 set "); + bool IsFirstKey = true; + foreach (string sKey in dicBJDYZZ.Keys) + { + if (IsFirstKey) + sSQL.Add(string.Format("XLXSBJDYZZ0_YZZ{0}={1} ", sKey.Trim().Replace("BJ", ""), dicBJDYZZ[sKey])); + else + sSQL.Add(string.Format(",XLXSBJDYZZ0_YZZ{0}={1} ", sKey.Trim().Replace("BJ", ""), dicBJDYZZ[sKey])); + + IsFirstKey = false; + } + sSQL.Add("where XLXSBJDYZZ0_BJDID=:pBJDID and XLXSBJDYZZ0_XH=:pXH "); + sSQL.ParamByName("pBJDID").Value = sBJDID; + sSQL.ParamByName("pXH").Value = iXH; + dberp.ExecSQL(sSQL); + } + } + + public static void AfterDeleteBJD(TDatabase dberp, TSQL SQL, string sBJDID) + { + SQL.Clear(); + SQL.Add("delete from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID"); + SQL.ParamByName("XLXSBJDMX_BJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + SQL.Clear(); + SQL.Add("delete from XLXSBJDYZZ0 where XLXSBJDYZZ0_BJDID = :XLXSBJDYZZ0_BJDID "); + SQL.ParamByName("XLXSBJDYZZ0_BJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + SQL.Clear(); + SQL.Add("delete from XLXSBJDMXFD where XLXSBJDMXFD_BJDID = :XLXSBJDMXFD_BJDID "); + SQL.ParamByName("XLXSBJDMXFD_BJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + SQL.Clear(); + SQL.Add("delete from XLXSBJDMXZP where XLXSBJDMXZP_BJDID = :XLXSBJDMXZP_BJDID "); + SQL.ParamByName("XLXSBJDMXZP_BJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + SQL.Clear(); + SQL.Add("delete from XLXSBJDCLCB where XLXSBJDCLCB_BJDID = :XLXSBJDCLCB_BJDID "); + SQL.ParamByName("XLXSBJDCLCB_BJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + SQL.Clear(); + SQL.Add("delete from XLXSBJDJJYZ where XLXSBJDJJYZ_BJDID = :XLXSBJDJJYZ_BJDID "); + SQL.ParamByName("XLXSBJDJJYZ_BJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + SQL.Clear(); + SQL.Add("delete from XLXSBJDCLHQ where XLXSBJDCLHQ_BJDID = :XLXSBJDCLHQ_BJDID"); + SQL.ParamByName("XLXSBJDCLHQ_BJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + SQL.Clear(); + SQL.Add("delete from XLXSBJDWLHQ where XLXSBJDWLHQ_BJDID = :XLXSBJDWLHQ_BJDID"); + SQL.ParamByName("XLXSBJDWLHQ_BJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + //删除比对操作的数据 + SQL.Clear(); + SQL.Add("delete from XLXSBJDBDMX where XLXSBJDBDMX_BJDID=:pBJDID"); + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + //删除外部报价单 + SQL.Clear(); + SQL.Add("delete from XLWBBJDML where XLWBBJDML_BJDID=:pBJDID"); + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + SQL.Clear(); + SQL.Add("delete from XLWBBJDLM where XLWBBJDLM_BJDID=:pBJDID"); + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + SQL.Clear(); + SQL.Add("delete from XLWBBJDNR where XLWBBJDNR_BJDID=:pBJDID"); + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + SQL.Clear(); + SQL.Add("delete from XLWBBJDMX where XLWBBJDMX_BJDID=:pBJDID"); + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + SQL.Clear(); + SQL.Add("delete from XLWBBJDMXYZZ where XLWBBJDMXYZZ_BJDID=:pBJDID"); + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + SQL.Clear(); + SQL.Add("delete from XLXSBJDYZZC where XLXSBJDYZZC_BJDID=:pBJDID"); + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + SQL.Clear(); + SQL.Add("delete from XLXSBJZDCZ where XLXSBJZDCZ_BJDID = :pBJDID"); + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + SQL.Clear(); + SQL.Add("delete from XLXSBJKZXX where XLXSBJKZXX_BJDID = :pBJDID "); + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + SQL.Clear(); + SQL.Add("delete from XLXSBJDGYJD where XLXSBJDGYJD_BJDID = :pBJDID "); + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + SQL.Clear(); + SQL.Add("delete from XLXSBJFKCFMX where XLXSBJFKCFMX_BJDID = :pBJDID "); + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + SQL.Clear(); + SQL.Add("delete from BJDCLYLBL where BJDCLYLBL_BJDID = :pBJDID "); + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + + SQL.Clear(); + SQL.Add("delete from CLYLZDFP where CLYLZDFP_BJDID = :pBJDID "); + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + //删除后,去除AI任务执行情况中对应的BJDID + SQL.Clear(); + SQL.Add("update XLXSBJAIWDJXRW set XLXSBJAIWDJXRW_BJDID = '' where XLXSBJAIWDJXRW_BJDID = :pBJDID "); + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + SQL.Clear(); + SQL.Add("update XLXSBJAIWD set XLXSBJAIWD_BJDID = '' where XLXSBJAIWD_BJDID = :pBJDID "); + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + SQL.Clear(); + SQL.Add("delete from BJDLJZSBJRCBLM where BJDLJZSBJRCBLM_BJDID=:pBJDID"); + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + SQL.Clear(); + SQL.Add("delete from XLJXMX where XLJXMX_XLJXDH = :pBJDID and XLJXMX_XLJXDJ='XSBJ'"); + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + } + public static void UpdateBJDMX(TDatabase dberp, TSQL SQL, string sBJFLID, string sBJDID, int tmpXSWS, string sJCLLX, string sLJJCLLX, string sCPBJMRXSWS) + { + UpdateBJDMX(dberp, SQL, sBJFLID, sBJDID, tmpXSWS, sJCLLX, sLJJCLLX, sCPBJMRXSWS, "", 0); + } + public static void UpdateBJDMX(TDatabase dberp, TSQL SQL, string sBJFLID, string sBJDID, int tmpXSWS, string sJCLLX, string sLJJCLLX, string sCPBJMRXSWS, DateTime tWHSJCondition) + { + UpdateBJDMX(dberp, SQL, sBJFLID, sBJDID, tmpXSWS, sJCLLX, sLJJCLLX, sCPBJMRXSWS, "", 0, false, false, false, "", tWHSJCondition); + } + public static void UpdateBJDMX(TDatabase dberp, TSQL SQL, string sBJFLID, string sBJDID, int tmpXSWS, string sJCLLX, string sLJJCLLX, string sCPBJMRXSWS, string sXHList, int minBJDXH) + { + UpdateBJDMX(dberp, SQL, sBJFLID, sBJDID, tmpXSWS, sJCLLX, sLJJCLLX, sCPBJMRXSWS, sXHList, minBJDXH, false, false, false, ""); + } + public static void UpdateBJDMX(TDatabase dberp, TSQL SQL, string sBJFLID, string sBJDID, int tmpXSWS, string sJCLLX, string sLJJCLLX, string sCPBJMRXSWS, string sXHList, int minBJDXH, bool bYBJ, bool bWG, bool bFWG, string sTLcpList) + { + UpdateBJDMX(dberp, SQL, sBJFLID, sBJDID, tmpXSWS, sJCLLX, sLJJCLLX, sCPBJMRXSWS, sXHList, minBJDXH, bYBJ, bWG, bFWG, sTLcpList, DateTime.MinValue); + } + /// + /// 批量更新报价单明细,不包含最低限价、最低限价价差率的更新,使用UpdateZDXJGS方法更新 + /// + /// + /// + /// + /// + /// + /// 表价价差率公式 + /// 料价价差率公式 + /// 报价默认小数位数 + public static void UpdateBJDMX(TDatabase dberp, TSQL SQL, string sBJFLID, string sBJDID, int tmpXSWS, string sJCLLX, string sLJJCLLX, string sCPBJMRXSWS, string sXHList, int minBJDXH, bool bYBJ, bool bWG, bool bFWG, string sTLcpList, DateTime tWHSJCondition) + { + UpdateBJDMX(dberp, SQL, sBJFLID, sBJDID, tmpXSWS, sJCLLX, sLJJCLLX, sCPBJMRXSWS, sXHList, minBJDXH, bYBJ, bWG, bFWG, sTLcpList, tWHSJCondition,false); + } + + public static void UpdateBJDMX(TDatabase dberp, TSQL SQL, string sBJFLID, string sBJDID, int tmpXSWS, string sJCLLX, string sLJJCLLX, string sCPBJMRXSWS, string sXHList, int minBJDXH, bool bYBJ, bool bWG, bool bFWG, string sTLcpList, DateTime tWHSJCondition, bool bYLZD) + { + UpdateBJDMX( dberp, SQL, sBJFLID, sBJDID, tmpXSWS, sJCLLX, sLJJCLLX, sCPBJMRXSWS, sXHList, minBJDXH, bYBJ, bWG, bFWG, sTLcpList, tWHSJCondition, bYLZD,0); + } + + public static void UpdateBJDMX(TDatabase dberp, TSQL SQL, string sBJFLID, string sBJDID, int tmpXSWS, string sJCLLX, string sLJJCLLX, string sCPBJMRXSWS, string sXHList, int minBJDXH, bool bYBJ, bool bWG, bool bFWG, string sTLcpList, DateTime tWHSJCondition, bool bYLZD,int VBJDID) + { + string sTZQCPBJGS = XLBJDUtils.GetTZQCPBJGS(sBJFLID); + string sBJLJJCLLX = ""; + string sJSJJCLLX = ""; + CMISproSession tSession = CMISproSessionManager.GetCurrentSession(); + double dSL = string.IsNullOrEmpty((tSession.GetOption(100860000, "BJU055"))) ? 0 : (double.Parse((tSession.GetOption(100860000, "BJU055")))) / 100.0; + bool IsHSWL = (dSL == 0); + bool IsHS = GetBJDHSBZ(sBJDID); + SQL.Clear(); + SQL.Add("select XLXSBJFL_BJLJJCLLX,XLXSBJFL_JSJJCLLX FROM XLXSBJFL WHERE XLXSBJFL_BJFLID = :pFLID "); + SQL.ParamByName("pFLID").Value = sBJFLID; + BJFLXX bjflxx = GetBJFLXX(sBJFLID); + DataSet dsBJFL = dberp.OpenDataSet(SQL); + if (dsBJFL.Tables[0].Rows.Count > 0) + { + sBJLJJCLLX = dsBJFL.Tables[0].Rows[0]["XLXSBJFL_BJLJJCLLX"].ToString().Trim(); + sJSJJCLLX = dsBJFL.Tables[0].Rows[0]["XLXSBJFL_JSJJCLLX"].ToString().Trim(); + } + if (!sTZQCPBJGS.Equals("")) + { + XLBJDCalcUtils.UpdateBJDMXByGS(dberp, SQL, sTZQCPBJGS, sBJDID, sBJFLID, tmpXSWS, sJCLLX, sLJJCLLX, sBJLJJCLLX, sCPBJMRXSWS, sXHList, minBJDXH, bYBJ, bWG, bFWG, sTLcpList, tWHSJCondition, bYLZD, VBJDID); + + } + else + { + Dictionary dicLenJLDWTD = XLBJDUtils.GetLenJLDWTD(); + + SQL.Clear(); + SQL.Add("select XLXSBJFLYZ_YZID,XLXSTZYZ_JJFS,XLXSTZYZ_TJYZID,XLXSTZYZ_TJYS,isnull(XLXSTZYZ_YZZBT,'N') as BTYZ,"); + SQL.Add(" XLXSTZYZ_TYZZYZID"); + SQL.Add(" from XLXSBJFLYZ"); + SQL.Add(" left join XLXSTZYZ on XLXSTZYZ_MXBH='BJD' and XLXSTZYZ_YZID=XLXSBJFLYZ_YZID"); + SQL.Add(" where XLXSBJFLYZ_BJFLID=:pBJFLID"); + SQL.Add(" and isnull(XLXSTZYZ_BCYTJ,'N') <> 'Y' "); + SQL.Add(" and XLXSTZYZ_TJLX='1'");//1|调价格 + SQL.Add(" order by XLXSTZYZ_TJYZID,XLXSTZYZ_XSXH,XLXSBJFLYZ_YZID"); + SQL.ParamByName("pBJFLID").Value = sBJFLID; + DataSet dsBJDYZ = dberp.OpenDataSet(SQL); + if (dsBJDYZ.Tables[0].Rows.Count > 0) + { + string sJDSQL = "1"; + string sKDSQL = "1"; + string sDDSQL = "1"; + string sMDSQL = "1"; + string sMPSQL = "1"; + string sJJSQL = "0"; + string sMXSQL = "1"; + string sDXSQL = "1"; + string sSXSQL = "1"; + string sTJYZID = dsBJDYZ.Tables[0].Rows[0]["XLXSTZYZ_TJYZID"].ToString().Trim(); + string sJJFS = dsBJDYZ.Tables[0].Rows[0]["XLXSTZYZ_JJFS"].ToString().Trim(); + string sBTYZJYSQL = "";//必填因子校验SQL + string sBTYZSQL = "";//必填因子SQL + for (int i = 1; i < dsBJDYZ.Tables[0].Rows.Count; i++) + { + if (!sTJYZID.Equals(dsBJDYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYZID"].ToString().Trim())) + { + //1*(1+JDYZZ_BJ02/100.0) + if (sJJFS.Equals("JD")) + sJDSQL = sJDSQL + "*(1+JDYZZ_" + sTJYZID + "/100.0)"; + else if (sJJFS.Equals("KD")) + sKDSQL = sKDSQL + "/(1-KDYZZ_" + sTJYZID + "/100.0)"; + else if (sJJFS.Equals("DD")) + sDDSQL = sDDSQL + "/(1+DDYZZ_" + sTJYZID + "/100.0)"; + else if (sJJFS.Equals("MD")) + sMDSQL = sMDSQL + "*(1-MDYZZ_" + sTJYZID + "/100.0)"; + else if (sJJFS.Equals("MP")) + sMPSQL = sMPSQL + "*(MPYZZ_" + sTJYZID + "/100.0)"; + else if (sJJFS.Equals("JJ")) + { + if ((!IsHS) && (!IsHSWL)) + { + sJJSQL = sJJSQL + "+(JJYZZ_" + sTJYZID + "/(1+" + dSL.ToString() + "))"; + } + else + { + sJJSQL += "+JJYZZ_" + sTJYZID; + } + } + else if (sJJFS.Equals("MX")) + sMXSQL = sMXSQL + "*(MXYZZ_" + sTJYZID + ")"; + else if (sJJFS.Equals("DX")) + sDXSQL = sDXSQL + "*(case when DXYZZ_" + sTJYZID + "= 0 then 0 else 1.0/ DXYZZ_" + sTJYZID + " end )"; + else if (sJJFS.Equals("SX")) + sSXSQL = sSXSQL + "*(case when SXYZZ_" + sTJYZID + ">=0 then 1/(1-SXYZZ_" + sTJYZID + "/100.0) else (1+SXYZZ_" + sTJYZID + "/100.0) end)"; + sTJYZID = dsBJDYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYZID"].ToString().Trim(); + sJJFS = dsBJDYZ.Tables[0].Rows[i]["XLXSTZYZ_JJFS"].ToString().Trim(); + } + } + if (sJJFS.Equals("JD")) + sJDSQL = sJDSQL + "*(1+JDYZZ_" + sTJYZID + "/100.0)"; + else if (sJJFS.Equals("KD")) + sKDSQL = sKDSQL + "/(1-KDYZZ_" + sTJYZID + "/100.0)"; + else if (sJJFS.Equals("DD")) + sDDSQL = sDDSQL + "/(1+DDYZZ_" + sTJYZID + "/100.0)"; + else if (sJJFS.Equals("MD")) + sMDSQL = sMDSQL + "*(1-MDYZZ_" + sTJYZID + "/100.0)"; + else if (sJJFS.Equals("MP")) + sMPSQL = sMPSQL + "*(MPYZZ_" + sTJYZID + "/100.0)"; + else if (sJJFS.Equals("JJ")) + { + if ((!IsHS) && (!IsHSWL)) + { + sJJSQL = sJJSQL + "+(JJYZZ_" + sTJYZID + "/(1+" + dSL.ToString() + "))"; + } + else + { + sJJSQL += "+JJYZZ_" + sTJYZID; + } + } + else if (sJJFS.Equals("MX")) + sMXSQL = sMXSQL + "*(MXYZZ_" + sTJYZID + ")"; + else if (sJJFS.Equals("DX")) + sDXSQL = sDXSQL + "*(case when DXYZZ_" + sTJYZID + "= 0 then 0 else 1.0/ DXYZZ_" + sTJYZID + " end )"; + else if (sJJFS.Equals("SX")) + sSXSQL = sSXSQL + "*(case when SXYZZ_" + sTJYZID + ">=0 then 1/(1-SXYZZ_" + sTJYZID + "/100.0) else (1+SXYZZ_" + sTJYZID + "/100.0) end)"; + for (int i = 0; i < dsBJDYZ.Tables[0].Rows.Count; i++) + { + if (dsBJDYZ.Tables[0].Rows[i]["BTYZ"].ToString().Trim().Equals("Y")) + { + if (sBTYZJYSQL.Equals("")) + sBTYZJYSQL = "*( case "; + string sBTYZZ_SQL = string.Format("XLXSBJDYZZ0_YZZ{0}", dsBJDYZ.Tables[0].Rows[i]["XLXSBJFLYZ_YZID"].ToString().Trim().Replace("BJ", "")); + sBTYZJYSQL += "when " + sBTYZZ_SQL + " = 0 then 0 "; + sBTYZSQL += "," + sBTYZZ_SQL; + } + } + if (!sBTYZJYSQL.Equals("")) + sBTYZJYSQL += " else 1 end )"; + //true表示先加价 + bool JJFirst = JJFirst_BJDYZ(sBJFLID); + /* + merge into 目标表 a + using 源表 b + on(a.条件字段1=b.条件字段1 and a.条件字段2=b.条件字段2 ……) + when matched then update set a.更新字段=b.字段 + when not matched then insert into a(字段1,字段2……)values(值1,值2……) + */ + //区别非锁定-sqlBJJE,XLXSBJDMX_BJSDBZ + string sqlBJJE = ""; + string sqlBJ = ""; + string sCPBJBLXSWS = Math.Pow(10, -1 * CMISproConvert.StrToFloat(sCPBJMRXSWS)).ToString("F9"); + if (SystemInfoUtils.GetSystem().Id.Trim().Equals("0574000503") || SystemInfoUtils.GetSystem().Id.Trim().Equals("0574000504"))//0574000503|宁波东方正式系统,0574000504|宁波东方测试系统 + { + sCPBJBLXSWS = Math.Pow(10, -2).ToString("F9"); + } + if (JJFirst) + { + sqlBJ = string.Format("RoundFix(((XLXSBJDMX_JGBBJ + isnull(JJYZZ,0)) * isnull(JDYZZ,1.0) * isnull(KDYZZ,1.0)* isnull(DDYZZ,1.0) * isnull(MDYZZ,1.0) * isnull(MPYZZ,1.0) * isnull(MXYZZ,1.0) * isnull(DXYZZ,1.0)* isnull(SXYZZ,1.0))*(1+XLXSBJDMX_TZCPBJ/100)*(case when XLXSBJDMX_JGBBJ = 0 then 0 else 1 end)/{0},0)*{0}" + sBTYZJYSQL, sCPBJBLXSWS); + } + else + { + sqlBJ = string.Format("RoundFix((XLXSBJDMX_JGBBJ * isnull(JDYZZ,1.0) * isnull(KDYZZ,1.0) *isnull(DDYZZ,1.0) * isnull(MDYZZ,1.0) * isnull(MXYZZ,1.0) * isnull(MPYZZ,1.0) * isnull(DXYZZ,1.0) * isnull(SXYZZ,1.0) + isnull(JJYZZ,0))*(1+XLXSBJDMX_TZCPBJ/100)*(case when XLXSBJDMX_JGBBJ = 0 then 0 else 1 end)/{0},0)*{0}" + sBTYZJYSQL, sCPBJBLXSWS); + } + sqlBJJE = string.Format("RoundFix(" + sqlBJ + "*XLXSBJDMX_BJSL+XLXSBJDMX_TZBJJE,2)"); + SQL.Clear(); + SQL.Add(" merge into XLXSBJDMX tar "); + SQL.Add(" using ( "); + SQL.Add("select BJDID,XH," + sJDSQL + " as JDYZZ," + sKDSQL + " as KDYZZ," + sDDSQL + " as DDYZZ," + sMDSQL + " as MDYZZ," + sMPSQL + " as MPYZZ," + sMXSQL + " as MXYZZ," + sDXSQL + " as DXYZZ," + sJJSQL + " as JJYZZ," + sSXSQL + " as SXYZZ "); + SQL.Add(sBTYZSQL); + SQL.Add(" from "); + SQL.Add("("); + SQL.Add(" select XLXSBJDYZZ0_BJDID as BJDID,XLXSBJDYZZ0_XH as XH,"); + SQL.Add(" ("); + + string sTYZZ_SQL1 = string.Format("XLXSBJDYZZ0_YZZ{0}", dsBJDYZ.Tables[0].Rows[0]["XLXSBJFLYZ_YZID"].ToString().Trim().Replace("BJ", "")); + + if (!dsBJDYZ.Tables[0].Rows[0]["XLXSTZYZ_TYZZYZID"].ToString().Trim().Equals("")) + { + string[] sTYZZYZIDList = dsBJDYZ.Tables[0].Rows[0]["XLXSTZYZ_TYZZYZID"].ToString().Trim().Split(','); + for (int j = 0; j < sTYZZYZIDList.Length; j++) + { + if (XLBJDUtils.GetYZXXByYZID(sTYZZYZIDList[j]).XLXSTZYZ_JJFS == "JD") + sTYZZ_SQL1 = sTYZZ_SQL1 + string.Format("*(1+XLXSBJDYZZ0_YZZ{0}/100.0)", sTYZZYZIDList[j].Replace("BJ", "")); + else if (XLBJDUtils.GetYZXXByYZID(sTYZZYZIDList[j]).XLXSTZYZ_JJFS == "KD") + sTYZZ_SQL1 = sTYZZ_SQL1 + string.Format("/(case when (1-XLXSBJDYZZ0_YZZ{0}/100.0)=0 then 1 else (1-XLXSBJDYZZ0_YZZ{0}/100.0) end)", sTYZZYZIDList[j].Replace("BJ", "")); + else if (XLBJDUtils.GetYZXXByYZID(sTYZZYZIDList[j]).XLXSTZYZ_JJFS == "JJ" && ((!IsHS) && (!IsHSWL))) + sTYZZ_SQL1 = sTYZZ_SQL1 + string.Format("+ XLXSBJDYZZ0_YZZ{0}/ (1+" + dSL.ToString() + ")", sTYZZYZIDList[j].Replace("BJ", "")); + + else + sTYZZ_SQL1 = "(" + sTYZZ_SQL1 + string.Format("+XLXSBJDYZZ0_YZZ{0} )", sTYZZYZIDList[j].Replace("BJ", "")); + } + } + SQL.Add(sTYZZ_SQL1); + + + + + sTJYZID = dsBJDYZ.Tables[0].Rows[0]["XLXSTZYZ_TJYZID"].ToString().Trim(); + sJJFS = dsBJDYZ.Tables[0].Rows[0]["XLXSTZYZ_JJFS"].ToString().Trim(); + for (int i = 1; i < dsBJDYZ.Tables[0].Rows.Count; i++) + { + if (sTJYZID.Equals(dsBJDYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYZID"].ToString().Trim())) + { + string sTYZZ_SQL = string.Format("XLXSBJDYZZ0_YZZ{0}", dsBJDYZ.Tables[0].Rows[i]["XLXSBJFLYZ_YZID"].ToString().Trim().Replace("BJ", "")); + + if (!dsBJDYZ.Tables[0].Rows[i]["XLXSTZYZ_TYZZYZID"].ToString().Trim().Equals("")) + { + string[] sTYZZYZIDList = dsBJDYZ.Tables[0].Rows[i]["XLXSTZYZ_TYZZYZID"].ToString().Trim().Split(','); + for (int j = 0; j < sTYZZYZIDList.Length; j++) + { + if (XLBJDUtils.GetYZXXByYZID(sTYZZYZIDList[j]).XLXSTZYZ_JJFS == "JD") + sTYZZ_SQL = sTYZZ_SQL + string.Format("*(1+XLXSBJDYZZ0_YZZ{0}/100.0)", sTYZZYZIDList[j].Replace("BJ", "")); + else if (XLBJDUtils.GetYZXXByYZID(sTYZZYZIDList[j]).XLXSTZYZ_JJFS == "KD") + sTYZZ_SQL = sTYZZ_SQL + string.Format("/(case when (1-XLXSBJDYZZ0_YZZ{0}/100.0)=0 then 1 else (1-XLXSBJDYZZ0_YZZ{0}/100.0) end)", sTYZZYZIDList[j].Replace("BJ", "")); + else if (XLBJDUtils.GetYZXXByYZID(sTYZZYZIDList[j]).XLXSTZYZ_JJFS == "JJ" && ((!IsHS) && (!IsHSWL))) + sTYZZ_SQL = sTYZZ_SQL + string.Format("+ XLXSBJDYZZ0_YZZ{0}/ (1+" + dSL.ToString() + ")", sTYZZYZIDList[j].Replace("BJ", "")); + else + sTYZZ_SQL = "(" + sTYZZ_SQL + string.Format("+XLXSBJDYZZ0_YZZ{0} )", sTYZZYZIDList[j].Replace("BJ", "")); + } + } + SQL.Add("+" + sTYZZ_SQL); + } + else + { + if (sJJFS.Equals("JD")) + SQL.Add(") as " + "JDYZZ_" + sTJYZID); + else if (sJJFS.Equals("KD")) + SQL.Add(") as " + "KDYZZ_" + sTJYZID); + else if (sJJFS.Equals("DD")) + SQL.Add(") as " + "DDYZZ_" + sTJYZID); + else if (sJJFS.Equals("MD")) + SQL.Add(") as " + "MDYZZ_" + sTJYZID); + else if (sJJFS.Equals("MP")) + SQL.Add(") as " + "MPYZZ_" + sTJYZID); + else if (sJJFS.Equals("JJ")) + SQL.Add(") as " + "JJYZZ_" + sTJYZID); + else if (sJJFS.Equals("MX")) + SQL.Add(") as " + "MXYZZ_" + sTJYZID); + else if (sJJFS.Equals("DX")) + SQL.Add(") as " + "DXYZZ_" + sTJYZID); + else if (sJJFS.Equals("SX")) + SQL.Add(") as " + "SXYZZ_" + sTJYZID); + + sTJYZID = dsBJDYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYZID"].ToString().Trim(); + sJJFS = dsBJDYZ.Tables[0].Rows[i]["XLXSTZYZ_JJFS"].ToString().Trim(); + SQL.Add(",("); + string sTYZZ_SQL = string.Format("XLXSBJDYZZ0_YZZ{0}", dsBJDYZ.Tables[0].Rows[i]["XLXSBJFLYZ_YZID"].ToString().Trim().Replace("BJ", "")); + + if (!dsBJDYZ.Tables[0].Rows[i]["XLXSTZYZ_TYZZYZID"].ToString().Trim().Equals("")) + { + string[] sTYZZYZIDList = dsBJDYZ.Tables[0].Rows[i]["XLXSTZYZ_TYZZYZID"].ToString().Trim().Split(','); + for (int j = 0; j < sTYZZYZIDList.Length; j++) + { + if (XLBJDUtils.GetYZXXByYZID(sTYZZYZIDList[j]).XLXSTZYZ_JJFS == "JD") + sTYZZ_SQL = sTYZZ_SQL + string.Format("*(1+XLXSBJDYZZ0_YZZ{0}/100.0)", sTYZZYZIDList[j].Replace("BJ", "")); + else if (XLBJDUtils.GetYZXXByYZID(sTYZZYZIDList[j]).XLXSTZYZ_JJFS == "KD") + sTYZZ_SQL = sTYZZ_SQL + string.Format("/(case when (1-XLXSBJDYZZ0_YZZ{0}/100.0)=0 then 1 else (1-XLXSBJDYZZ0_YZZ{0}/100.0) end)", sTYZZYZIDList[j].Replace("BJ", "")); + else if (XLBJDUtils.GetYZXXByYZID(sTYZZYZIDList[j]).XLXSTZYZ_JJFS == "JJ" && ((!IsHS) && (!IsHSWL))) + sTYZZ_SQL = sTYZZ_SQL + string.Format("+ XLXSBJDYZZ0_YZZ{0}/ (1+" + dSL.ToString() + ")", sTYZZYZIDList[j].Replace("BJ", "")); + else + sTYZZ_SQL = "(" + sTYZZ_SQL + string.Format("+XLXSBJDYZZ0_YZZ{0} )", sTYZZYZIDList[j].Replace("BJ", "")); + } + } + SQL.Add(sTYZZ_SQL); + } + } + if (sJJFS.Equals("JD")) + SQL.Add(") as " + "JDYZZ_" + sTJYZID); + else if (sJJFS.Equals("KD")) + SQL.Add(") as " + "KDYZZ_" + sTJYZID); + else if (sJJFS.Equals("DD")) + SQL.Add(") as " + "DDYZZ_" + sTJYZID); + else if (sJJFS.Equals("MD")) + SQL.Add(") as " + "MDYZZ_" + sTJYZID); + else if (sJJFS.Equals("MP")) + SQL.Add(") as " + "MPYZZ_" + sTJYZID); + else if (sJJFS.Equals("JJ")) + SQL.Add(") as " + "JJYZZ_" + sTJYZID); + else if (sJJFS.Equals("MX")) + SQL.Add(") as " + "MXYZZ_" + sTJYZID); + else if (sJJFS.Equals("DX")) + SQL.Add(") as " + "DXYZZ_" + sTJYZID); + else if (sJJFS.Equals("SX")) + SQL.Add(") as " + "SXYZZ_" + sTJYZID); + SQL.Add(sBTYZSQL); + SQL.Add(" from XLXSBJDYZZ0"); + SQL.Add(" where XLXSBJDYZZ0_BJDID=:pBJDID "); + + if (bYLZD) + { + SQL.Add(@" and exists( select 1 from XLXSBJYLZD + left join XLXSBJYLZDMX on XLXSBJYLZD_SQDH=XLXSBJYLZDMX_SQDH + where XLXSBJYLZD_BJDID=:pBJDID and XLXSBJYLZDMX_BJDXH=XLXSBJDYZZ0_XH ) "); + } + else + { + + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDYZZ0_XH >= :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + if (VBJDID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pID and V_BJDXH_BJDID = XLXSBJDYZZ0_BJDID and V_BJDXH_BJDXH = XLXSBJDYZZ0_XH) "); + SQL.ParamByName("pID").Value = VBJDID; + } + else + { + if (!sXHList.Trim().Equals("")) + { + SQL.Add(" and " + GetWhereEqual("XLXSBJDYZZ0_XH", sXHList)); + } + } + } + + SQL.Add(" ) a"); + SQL.Add(" ) sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSBJDMX_BJDID=:pBJDID and XLXSBJDMX_XH=XH "); + SQL.Add(" and XLXSBJDMX_BJSDBZ<>'Y'"); + //SQL.Add(" and upper(XLXSBJDMX_JLDW) in ('KM','M','千米','米') ");特意不执行,非长度单位与界面直接维护逻辑一致,按因子值正常计算 + + if (bYLZD) + { + SQL.Add(@" and exists( select 1 from XLXSBJYLZD + left join XLXSBJYLZDMX on XLXSBJYLZD_SQDH=XLXSBJYLZDMX_SQDH + where XLXSBJYLZD_BJDID=:pBJDID and XLXSBJYLZDMX_BJDXH=XLXSBJDMX_XH ) "); + } + else + { + + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDMX_XH >= :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + if (VBJDID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pID and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "); + SQL.ParamByName("pID").Value = VBJDID; + } + else + { + if (!sXHList.Trim().Equals("")) + { + SQL.Add(" and " + GetWhereEqual("XLXSBJDMX_XH", sXHList)); + } + } + } + + if (bYBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + if (bWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y'"); + if (!sTLcpList.Equals("")) + SQL.Add(" and exists(select 1 from XLXHB where XLXHB_XLXHID=UPPER(XLXSBJDMX_XLXHID) and " + CMISproDataBase.GetWhereEqual("XLXHB_DTCLID", sTLcpList) + ") "); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + if (JJFirst) + { + SQL.Add("XLXSBJDMX_TZQCPBJ=RoundFix((XLXSBJDMX_JGBBJ + isnull(JJYZZ,0))* isnull(JDYZZ,1.0) * isnull(KDYZZ,1.0) * isnull(DDYZZ,1.0) * isnull(MDYZZ,1.0) * isnull(MPYZZ,1.0) * isnull(MXYZZ,1.0) * isnull(DXYZZ,1.0) * isnull(SXYZZ,1.0)*(case when XLXSBJDMX_JGBBJ = 0 then 0 else 1 end)," + (CMISproConvert.StrToInt(sCPBJMRXSWS) > tmpXSWS ? CMISproConvert.StrToInt(sCPBJMRXSWS) : tmpXSWS) + ")" + sBTYZJYSQL + ",");//保留精度高的 + SQL.Add(string.Format("XLXSBJDMX_TZQBJJE=RoundFix(RoundFix(((XLXSBJDMX_JGBBJ + isnull(JJYZZ,0))* isnull(JDYZZ,1.0) * isnull(KDYZZ,1.0) * isnull(DDYZZ,1.0) * isnull(MDYZZ,1.0)* isnull(MXYZZ,1.0) * isnull(DXYZZ,1.0) * isnull(SXYZZ,1.0) )*(1+XLXSBJDMX_TZCPBJ/100)*(case when XLXSBJDMX_JGBBJ = 0 then 0 else 1 end)/{0},0)*{0}*XLXSBJDMX_BJSL,2)" + sBTYZJYSQL + ",", sCPBJBLXSWS)); + } + else + { + SQL.Add("XLXSBJDMX_TZQCPBJ=RoundFix(XLXSBJDMX_JGBBJ * isnull(JDYZZ,1.0) * isnull(KDYZZ,1.0) * isnull(DDYZZ,1.0) * isnull(MDYZZ,1.0) * isnull(MPYZZ,1.0) * isnull(MXYZZ,1.0) * isnull(DXYZZ,1.0) * isnull(SXYZZ,1.0) + isnull(JJYZZ,0)*(case when XLXSBJDMX_JGBBJ = 0 then 0 else 1 end)," + (CMISproConvert.StrToInt(sCPBJMRXSWS) > tmpXSWS ? CMISproConvert.StrToInt(sCPBJMRXSWS) : tmpXSWS) + ")" + sBTYZJYSQL + ",");//保留精度高的 + SQL.Add(string.Format("XLXSBJDMX_TZQBJJE=RoundFix(RoundFix((XLXSBJDMX_JGBBJ * isnull(JDYZZ,1.0) * isnull(KDYZZ,1.0) * isnull(DDYZZ,1.0) * isnull(MDYZZ,1.0)* isnull(MXYZZ,1.0) * isnull(DXYZZ,1.0) * isnull(SXYZZ,1.0) + isnull(JJYZZ,0))*(1+XLXSBJDMX_TZCPBJ/100)*(case when XLXSBJDMX_JGBBJ = 0 then 0 else 1 end)/{0},0)*{0}*XLXSBJDMX_BJSL,2)" + sBTYZJYSQL + ",", sCPBJBLXSWS)); + } + SQL.Add("XLXSBJDMX_CPBJ=" + sqlBJ + ","); + SQL.Add(" XLXSBJDMX_BJXJKD = 0, XLXSBJDMX_BJXJJJ = 0, "); + SQL.Add("XLXSBJDMX_BJJE=" + sqlBJJE + ","); + if (bjflxx.XLXSBJFL_XSLSBJ == "Y") + SQL.Text = SQL.Text.Replace("XLXSBJDMX_JGBBJ", " case when XLXSBJDMX_LSJGBBJ=0 then XLXSBJDMX_JGBBJ else XLXSBJDMX_LSJGBBJ end "); + if (sJCLLX.Equals("1"))//表价价差率公式 + { + SQL.Add("XLXSBJDMX_JGBBJJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + "-XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); + SQL.Add("XLXSBJDMX_JGBBJJCE =RoundFix(" + sqlBJJE + "-RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)," + tmpXSWS + "), "); + } + else if (sJCLLX.Equals("2")) + { + SQL.Add("XLXSBJDMX_JGBBJJCL =case when RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL-" + sqlBJJE + ")/(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL),2) end,"); + SQL.Add("XLXSBJDMX_JGBBJJCE =RoundFix(RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)-" + sqlBJJE + "," + tmpXSWS + "), "); + } + else if (sJCLLX.Equals("3")) + { + SQL.Add("XLXSBJDMX_JGBBJJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); + SQL.Add("XLXSBJDMX_JGBBJJCE =0, "); + } + else if (sJCLLX.Equals("4")) + { + SQL.Add("XLXSBJDMX_JGBBJJCL =case when RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + " - XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL),2) end,"); + SQL.Add("XLXSBJDMX_JGBBJJCE =RoundFix(" + sqlBJJE + " - RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)," + tmpXSWS + "), "); + } + else + { + SQL.Add("XLXSBJDMX_JGBBJJCL=0,"); + SQL.Add("XLXSBJDMX_JGBBJJCE=0,"); + } + if (sLJJCLLX.Equals("1"))//料价价差率公式 + { + SQL.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")) + { + SQL.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")) + { + SQL.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")) + { + SQL.Add("XLXSBJDMX_CLCBJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); + } + else + { + SQL.Add("XLXSBJDMX_CLCBJCL=0,"); + } + + SQL.Add("XLXSBJDMX_JSJJE=RoundFix(XLXSBJDMX_JSJG*XLXSBJDMX_BJSL,2),"); + if (sJSJJCLLX.Equals("1")) + { + SQL.Add("XLXSBJDMX_JSJJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + "-XLXSBJDMX_JSJG*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); + } + else if (sJSJJCLLX.Equals("2")) + { + SQL.Add("XLXSBJDMX_JSJJCL =case when XLXSBJDMX_JSJG*XLXSBJDMX_BJSL=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + "-XLXSBJDMX_JSJG*XLXSBJDMX_BJSL)/(XLXSBJDMX_JSJG*XLXSBJDMX_BJSL),2) end,"); + } + else if (sJSJJCLLX.Equals("3")) + { + SQL.Add("XLXSBJDMX_JSJJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_JSJG*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); + } + else + { + SQL.Add("XLXSBJDMX_JSJJCL=0,"); + } + + if (sBJLJJCLLX.Equals("1"))//表价料价价差率公式 + { + SQL.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 + { + SQL.Add("XLXSBJDMX_JGBBJLJJCL=0,"); + } + SQL.Add("XLXSBJDMX_BJTJCZ='TJYZJS',"); + SQL.Add("XLXSBJDMX_CLCBJCLSDBZ='N'"); + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + sqlBJJE = "RoundFix(XLXSBJDMX_CPBJ*XLXSBJDMX_BJSL,2)+XLXSBJDMX_TZBJJE"; + SQL.Clear(); + SQL.Add(" merge into XLXSBJDMX tar "); + SQL.Add(" using ( "); + SQL.Add("select BJDID,XH," + sJDSQL + " as JDYZZ," + sKDSQL + " as KDYZZ," + sDDSQL + " as DDYZZ," + sMDSQL + " as MDYZZ," + sMPSQL + " as MPYZZ," + sMXSQL + " as MXYZZ," + sDXSQL + " as DXYZZ," + sJJSQL + " as JJYZZ," + sSXSQL + " as SXYZZ "); + SQL.Add(sBTYZSQL); + SQL.Add(" from "); + SQL.Add("("); + SQL.Add(" select XLXSBJDYZZ0_BJDID as BJDID,XLXSBJDYZZ0_XH as XH,"); + SQL.Add(" ("); + string sTYZZ_SQL2 = string.Format("XLXSBJDYZZ0_YZZ{0}", dsBJDYZ.Tables[0].Rows[0]["XLXSBJFLYZ_YZID"].ToString().Trim().Replace("BJ", "")); + + if (!dsBJDYZ.Tables[0].Rows[0]["XLXSTZYZ_TYZZYZID"].ToString().Trim().Equals("")) + { + string[] sTYZZYZIDList = dsBJDYZ.Tables[0].Rows[0]["XLXSTZYZ_TYZZYZID"].ToString().Trim().Split(','); + for (int j = 0; j < sTYZZYZIDList.Length; j++) + { + if (XLBJDUtils.GetYZXXByYZID(sTYZZYZIDList[j]).XLXSTZYZ_JJFS == "JD") + sTYZZ_SQL2 = sTYZZ_SQL2 + string.Format("*(1+XLXSBJDYZZ0_YZZ{0}/100.0)", sTYZZYZIDList[j].Replace("BJ", "")); + else if (XLBJDUtils.GetYZXXByYZID(sTYZZYZIDList[j]).XLXSTZYZ_JJFS == "KD") + sTYZZ_SQL2 = sTYZZ_SQL2 + string.Format("/(case when (1-XLXSBJDYZZ0_YZZ{0}/100.0)=0 then 1 else (1-XLXSBJDYZZ0_YZZ{0}/100.0) end)", sTYZZYZIDList[j].Replace("BJ", "")); + else + sTYZZ_SQL2 = "(" + sTYZZ_SQL2 + string.Format("+XLXSBJDYZZ0_YZZ{0} )", sTYZZYZIDList[j].Replace("BJ", "")); + } + } + SQL.Add(sTYZZ_SQL2); + + + sTJYZID = dsBJDYZ.Tables[0].Rows[0]["XLXSTZYZ_TJYZID"].ToString().Trim(); + sJJFS = dsBJDYZ.Tables[0].Rows[0]["XLXSTZYZ_JJFS"].ToString().Trim(); + for (int i = 1; i < dsBJDYZ.Tables[0].Rows.Count; i++) + { + if (sTJYZID.Equals(dsBJDYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYZID"].ToString().Trim())) + { + string sTYZZ_SQL = string.Format("XLXSBJDYZZ0_YZZ{0}", dsBJDYZ.Tables[0].Rows[i]["XLXSBJFLYZ_YZID"].ToString().Trim().Replace("BJ", "")); + + if (!dsBJDYZ.Tables[0].Rows[i]["XLXSTZYZ_TYZZYZID"].ToString().Trim().Equals("")) + { + string[] sTYZZYZIDList = dsBJDYZ.Tables[0].Rows[i]["XLXSTZYZ_TYZZYZID"].ToString().Trim().Split(','); + for (int j = 0; j < sTYZZYZIDList.Length; j++) + { + if (XLBJDUtils.GetYZXXByYZID(sTYZZYZIDList[j]).XLXSTZYZ_JJFS == "JD") + sTYZZ_SQL = sTYZZ_SQL + string.Format("*(1+XLXSBJDYZZ0_YZZ{0}/100.0)", sTYZZYZIDList[j].Replace("BJ", "")); + else if (XLBJDUtils.GetYZXXByYZID(sTYZZYZIDList[j]).XLXSTZYZ_JJFS == "KD") + sTYZZ_SQL = sTYZZ_SQL + string.Format("/(case when (1-XLXSBJDYZZ0_YZZ{0}/100.0)=0 then 1 else (1-XLXSBJDYZZ0_YZZ{0}/100.0) end)", sTYZZYZIDList[j].Replace("BJ", "")); + else + sTYZZ_SQL = "(" + sTYZZ_SQL + string.Format("+XLXSBJDYZZ0_YZZ{0} )", sTYZZYZIDList[j].Replace("BJ", "")); + } + } + SQL.Add("+" + sTYZZ_SQL); + } + else + { + if (sJJFS.Equals("JD")) + SQL.Add(") as " + "JDYZZ_" + sTJYZID); + else if (sJJFS.Equals("KD")) + SQL.Add(") as " + "KDYZZ_" + sTJYZID); + else if (sJJFS.Equals("DD")) + SQL.Add(") as " + "DDYZZ_" + sTJYZID); + else if (sJJFS.Equals("MD")) + SQL.Add(") as " + "MDYZZ_" + sTJYZID); + else if (sJJFS.Equals("MP")) + SQL.Add(") as " + "MPYZZ_" + sTJYZID); + else if (sJJFS.Equals("JJ")) + SQL.Add(") as " + "JJYZZ_" + sTJYZID); + else if (sJJFS.Equals("MX")) + SQL.Add(") as " + "MXYZZ_" + sTJYZID); + else if (sJJFS.Equals("DX")) + SQL.Add(") as " + "DXYZZ_" + sTJYZID); + else if (sJJFS.Equals("SX")) + SQL.Add(") as " + "SXYZZ_" + sTJYZID); + + sTJYZID = dsBJDYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYZID"].ToString().Trim(); + sJJFS = dsBJDYZ.Tables[0].Rows[i]["XLXSTZYZ_JJFS"].ToString().Trim(); + SQL.Add(",("); + string sTYZZ_SQL = string.Format("XLXSBJDYZZ0_YZZ{0}", dsBJDYZ.Tables[0].Rows[i]["XLXSBJFLYZ_YZID"].ToString().Trim().Replace("BJ", "")); + + if (!dsBJDYZ.Tables[0].Rows[i]["XLXSTZYZ_TYZZYZID"].ToString().Trim().Equals("")) + { + string[] sTYZZYZIDList = dsBJDYZ.Tables[0].Rows[i]["XLXSTZYZ_TYZZYZID"].ToString().Trim().Split(','); + for (int j = 0; j < sTYZZYZIDList.Length; j++) + { + if (XLBJDUtils.GetYZXXByYZID(sTYZZYZIDList[j]).XLXSTZYZ_JJFS == "JD") + sTYZZ_SQL = sTYZZ_SQL + string.Format("*(1+XLXSBJDYZZ0_YZZ{0}/100.0)", sTYZZYZIDList[j].Replace("BJ", "")); + else if (XLBJDUtils.GetYZXXByYZID(sTYZZYZIDList[j]).XLXSTZYZ_JJFS == "KD") + sTYZZ_SQL = sTYZZ_SQL + string.Format("/(case when (1-XLXSBJDYZZ0_YZZ{0}/100.0)=0 then 1 else (1-XLXSBJDYZZ0_YZZ{0}/100.0) end)", sTYZZYZIDList[j].Replace("BJ", "")); + else + sTYZZ_SQL = "(" + sTYZZ_SQL + string.Format("+XLXSBJDYZZ0_YZZ{0} )", sTYZZYZIDList[j].Replace("BJ", "")); + } + } + SQL.Add(sTYZZ_SQL); + } + } + if (sJJFS.Equals("JD")) + SQL.Add(") as " + "JDYZZ_" + sTJYZID); + else if (sJJFS.Equals("KD")) + SQL.Add(") as " + "KDYZZ_" + sTJYZID); + else if (sJJFS.Equals("DD")) + SQL.Add(") as " + "DDYZZ_" + sTJYZID); + else if (sJJFS.Equals("MD")) + SQL.Add(") as " + "MDYZZ_" + sTJYZID); + else if (sJJFS.Equals("MP")) + SQL.Add(") as " + "MPYZZ_" + sTJYZID); + else if (sJJFS.Equals("JJ")) + SQL.Add(") as " + "JJYZZ_" + sTJYZID); + else if (sJJFS.Equals("MX")) + SQL.Add(") as " + "MXYZZ_" + sTJYZID); + else if (sJJFS.Equals("DX")) + SQL.Add(") as " + "DXYZZ_" + sTJYZID); + else if (sJJFS.Equals("SX")) + SQL.Add(") as " + "SXYZZ_" + sTJYZID); + SQL.Add(sBTYZSQL); + SQL.Add(" from XLXSBJDYZZ0"); + SQL.Add(" where XLXSBJDYZZ0_BJDID=:pBJDID "); + if (bYLZD) + { + SQL.Add(@" and exists( select 1 from XLXSBJYLZD + left join XLXSBJYLZDMX on XLXSBJYLZD_SQDH=XLXSBJYLZDMX_SQDH + where XLXSBJYLZD_BJDID=:pBJDID and XLXSBJYLZDMX_BJDXH=XLXSBJDYZZ0_XH ) "); + } + else + { + + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDYZZ0_XH >= :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + if (VBJDID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pID and V_BJDXH_BJDID = XLXSBJDYZZ0_BJDID and V_BJDXH_BJDXH = XLXSBJDYZZ0_XH) "); + SQL.ParamByName("pID").Value = VBJDID; + } + else + { + if (!sXHList.Trim().Equals("")) + { + SQL.Add(" and " + GetWhereEqual("XLXSBJDYZZ0_XH", sXHList)); + } + } + } + + SQL.Add(" ) a"); + SQL.Add(") sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSBJDMX_BJDID=:pBJDID and XLXSBJDMX_XH=XH "); + SQL.Add(" and XLXSBJDMX_BJSDBZ='Y'"); + SQL.Add(" and (XLXSBJDMX_JLDW in ('Km','M','千米','米') "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" or XLXSBJDMX_JLDW='{0}'", sKey)); + } + SQL.Add(" ) "); + if (bYLZD) + { + SQL.Add(@" and exists( select 1 from XLXSBJYLZD + left join XLXSBJYLZDMX on XLXSBJYLZD_SQDH=XLXSBJYLZDMX_SQDH + where XLXSBJYLZD_BJDID=:pBJDID and XLXSBJYLZDMX_BJDXH=XLXSBJDMX_XH ) "); + } + else + { + + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDMX_XH >= :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + if (VBJDID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pID and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "); + SQL.ParamByName("pID").Value = VBJDID; + } + else + { + if (!sXHList.Trim().Equals("")) + { + SQL.Add(" and " + GetWhereEqual("XLXSBJDMX_XH", sXHList)); + } + } + } + + if (bYBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + if (bWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y'"); + if (!sTLcpList.Equals("")) + SQL.Add(" and exists(select 1 from XLXHB where XLXHB_XLXHID=UPPER(XLXSBJDMX_XLXHID) and " + CMISproDataBase.GetWhereEqual("XLXHB_DTCLID", sTLcpList) + ") "); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + if (JJFirst) + { + SQL.Add("XLXSBJDMX_TZQCPBJ=RoundFix((XLXSBJDMX_JGBBJ + isnull(JJYZZ,0)) * isnull(JDYZZ,1.0) * isnull(KDYZZ,1.0)* isnull(DDYZZ,1.0) * isnull(MDYZZ,1.0) * isnull(MPYZZ,1.0) * isnull(MXYZZ,1.0) * isnull(DXYZZ,1.0) * isnull(SXYZZ,1.0)*(case when XLXSBJDMX_JGBBJ = 0 then 0 else 1 end) ," + (CMISproConvert.StrToInt(sCPBJMRXSWS) > tmpXSWS ? CMISproConvert.StrToInt(sCPBJMRXSWS) : tmpXSWS) + ")" + sBTYZJYSQL + ",");//保留精度高的 + } + else + { + SQL.Add("XLXSBJDMX_TZQCPBJ=RoundFix(XLXSBJDMX_JGBBJ * isnull(JDYZZ,1.0) * isnull(KDYZZ,1.0) * isnull(DDYZZ,1.0) * isnull(MDYZZ,1.0) * isnull(MPYZZ,1.0) * isnull(MXYZZ,1.0) * isnull(DXYZZ,1.0) * isnull(SXYZZ,1.0)+ isnull(JJYZZ,0)*(case when XLXSBJDMX_JGBBJ = 0 then 0 else 1 end)," + (CMISproConvert.StrToInt(sCPBJMRXSWS) > tmpXSWS ? CMISproConvert.StrToInt(sCPBJMRXSWS) : tmpXSWS) + ")" + sBTYZJYSQL + ",");//保留精度高的 + } + SQL.Add("XLXSBJDMX_TZQBJJE=RoundFix(XLXSBJDMX_CPBJ*XLXSBJDMX_BJSL,2),"); + SQL.Add("XLXSBJDMX_BJJE=" + sqlBJJE + ","); + if (bjflxx.XLXSBJFL_XSLSBJ == "Y") + SQL.Text = SQL.Text.Replace("XLXSBJDMX_JGBBJ", " case when XLXSBJDMX_LSJGBBJ=0 then XLXSBJDMX_JGBBJ else XLXSBJDMX_LSJGBBJ end "); + if (sJCLLX.Equals("1"))//表价价差率公式 + { + SQL.Add("XLXSBJDMX_JGBBJJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + "-XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); + SQL.Add("XLXSBJDMX_JGBBJJCE =RoundFix(" + sqlBJJE + "-RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)," + tmpXSWS + "), "); + } + else if (sJCLLX.Equals("2")) + { + SQL.Add("XLXSBJDMX_JGBBJJCL =case when RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL-" + sqlBJJE + ")/(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL),2) end,"); + SQL.Add("XLXSBJDMX_JGBBJJCE =RoundFix(RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)-" + sqlBJJE + "," + tmpXSWS + "), "); + } + else if (sJCLLX.Equals("3")) + { + SQL.Add("XLXSBJDMX_JGBBJJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); + SQL.Add("XLXSBJDMX_JGBBJJCE =0, "); + } + else if (sJCLLX.Equals("4")) + { + SQL.Add("XLXSBJDMX_JGBBJJCL =case when RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + " - XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL),2) end,"); + SQL.Add("XLXSBJDMX_JGBBJJCE =RoundFix(" + sqlBJJE + " - RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)," + tmpXSWS + "), "); + } + else + { + SQL.Add("XLXSBJDMX_JGBBJJCL=0,"); + SQL.Add("XLXSBJDMX_JGBBJJCE=0,"); + } + if (sLJJCLLX.Equals("1"))//料价价差率公式 + { + SQL.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")) + { + SQL.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")) + { + SQL.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")) + { + SQL.Add("XLXSBJDMX_CLCBJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); + } + else + { + SQL.Add("XLXSBJDMX_CLCBJCL=0,"); + } + + SQL.Add("XLXSBJDMX_JSJJE=RoundFix(XLXSBJDMX_JSJG*XLXSBJDMX_BJSL,2),"); + if (sJSJJCLLX.Equals("1")) + { + SQL.Add("XLXSBJDMX_JSJJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + "-XLXSBJDMX_JSJG*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); + } + else if (sJSJJCLLX.Equals("2")) + { + SQL.Add("XLXSBJDMX_JSJJCL =case when XLXSBJDMX_JSJG*XLXSBJDMX_BJSL=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + "-XLXSBJDMX_JSJG*XLXSBJDMX_BJSL)/(XLXSBJDMX_JSJG*XLXSBJDMX_BJSL),2) end,"); + } + else if (sJSJJCLLX.Equals("3")) + { + SQL.Add("XLXSBJDMX_JSJJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_JSJG*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); + } + else + { + SQL.Add("XLXSBJDMX_JSJJCL=0,"); + } + + if (sBJLJJCLLX.Equals("1"))//表价料价价差率公式 + { + SQL.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 + { + SQL.Add("XLXSBJDMX_JGBBJLJJCL=0,"); + } + SQL.Add("XLXSBJDMX_CLCBJCLSDBZ='N'"); + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + //处理调整报价% + SQL.Clear(); + SQL.Add("update XLXSBJDMX set XLXSBJDMX_TZCPBJ=(case when XLXSBJDMX_TZQCPBJ=0.0 then 0.0 else 100.0*(XLXSBJDMX_CPBJ-XLXSBJDMX_TZQCPBJ)/XLXSBJDMX_TZQCPBJ end)"); + SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID"); + SQL.Add(" and XLXSBJDMX_BJSDBZ='Y'"); + SQL.Add(" and (XLXSBJDMX_JLDW in ('Km','M','千米','米') "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" or XLXSBJDMX_JLDW='{0}'", sKey)); + } + SQL.Add(" ) "); + if (bYLZD) + { + SQL.Add(@" and exists( select 1 from XLXSBJYLZD + left join XLXSBJYLZDMX on XLXSBJYLZD_SQDH=XLXSBJYLZDMX_SQDH + where XLXSBJYLZD_BJDID=:pBJDID and XLXSBJYLZDMX_BJDXH=XLXSBJDMX_XH ) "); + } + else + { + + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDMX_XH >= :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + if (VBJDID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pID and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "); + SQL.ParamByName("pID").Value = VBJDID; + } + else + { + if (!sXHList.Trim().Equals("")) + { + SQL.Add(" and " + GetWhereEqual("XLXSBJDMX_XH", sXHList)); + } + } + } + + if (bYBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + if (bWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y'"); + if (!sTLcpList.Equals("")) + SQL.Add(" and exists(select 1 from XLXHB where XLXHB_XLXHID=UPPER(XLXSBJDMX_XLXHID) and " + CMISproDataBase.GetWhereEqual("XLXHB_DTCLID", sTLcpList) + ") "); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + } + else + { + //更新非报价锁定记录 + string sCPBJBLXSWS = Math.Pow(10, -1 * CMISproConvert.StrToFloat(sCPBJMRXSWS)).ToString("F9"); + if (SystemInfoUtils.GetSystem().Id.Trim().Equals("0574000503") || SystemInfoUtils.GetSystem().Id.Trim().Equals("0574000504"))//0574000503|宁波东方正式系统,0574000504|宁波东方测试系统 + { + sCPBJBLXSWS = Math.Pow(10, -2).ToString("F9"); + } + string sqlBJJE = string.Format("RoundFix(RoundFix(XLXSBJDMX_JGBBJ*(1+XLXSBJDMX_TZCPBJ/100)/{0},0)*{0}*XLXSBJDMX_BJSL+XLXSBJDMX_TZBJJE,2)", sCPBJBLXSWS); + SQL.Clear(); + SQL.Add("update XLXSBJDMX set "); + + SQL.Add("XLXSBJDMX_TZQCPBJ=RoundFix(XLXSBJDMX_JGBBJ," + (CMISproConvert.StrToInt(sCPBJMRXSWS) > tmpXSWS ? CMISproConvert.StrToInt(sCPBJMRXSWS) : tmpXSWS) + "),");//保留精度高的 + SQL.Add(string.Format("XLXSBJDMX_CPBJ=RoundFix(XLXSBJDMX_JGBBJ*(1+XLXSBJDMX_TZCPBJ/100)/{0},0)*{0},", sCPBJBLXSWS)); + SQL.Add(string.Format("XLXSBJDMX_TZQBJJE=RoundFix(RoundFix(XLXSBJDMX_JGBBJ*(1+XLXSBJDMX_TZCPBJ/100)/{0},0)*{0}*XLXSBJDMX_BJSL,2),", sCPBJBLXSWS)); + SQL.Add(" XLXSBJDMX_BJXJKD = 0, XLXSBJDMX_BJXJJJ = 0, "); + SQL.Add("XLXSBJDMX_BJJE=" + sqlBJJE + ","); + if (bjflxx.XLXSBJFL_XSLSBJ == "Y") + SQL.Text = SQL.Text.Replace("XLXSBJDMX_JGBBJ", " case when XLXSBJDMX_LSJGBBJ=0 then XLXSBJDMX_JGBBJ else XLXSBJDMX_LSJGBBJ end "); + if (sJCLLX.Equals("1"))//表价价差率公式 + { + SQL.Add("XLXSBJDMX_JGBBJJCL=case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + "-XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); + SQL.Add("XLXSBJDMX_JGBBJJCE=RoundFix(" + sqlBJJE + "-RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)," + tmpXSWS + "), "); + } + else if (sJCLLX.Equals("2")) + { + SQL.Add("XLXSBJDMX_JGBBJJCL=case when RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL-" + sqlBJJE + ")/(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL),2) end,"); + SQL.Add("XLXSBJDMX_JGBBJJCE=RoundFix(RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)-" + sqlBJJE + "," + tmpXSWS + "), "); + } + else if (sJCLLX.Equals("3")) + { + SQL.Add("XLXSBJDMX_JGBBJJCL=case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); + SQL.Add("XLXSBJDMX_JGBBJJCE=0, "); + } + else if (sJCLLX.Equals("4")) + { + SQL.Add("XLXSBJDMX_JGBBJJCL=case when RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + " - XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL),2) end,"); + SQL.Add("XLXSBJDMX_JGBBJJCE=RoundFix(" + sqlBJJE + " - RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)," + tmpXSWS + "), "); + } + else + { + SQL.Add("XLXSBJDMX_JGBBJJCL=0,"); + SQL.Add("XLXSBJDMX_JGBBJJCE=0,"); + } + if (sLJJCLLX.Equals("1"))//料价价差率公式 + { + SQL.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")) + { + SQL.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")) + { + SQL.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")) + { + SQL.Add("XLXSBJDMX_CLCBJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); + } + else + { + SQL.Add("XLXSBJDMX_CLCBJCL=0,"); + } + + SQL.Add("XLXSBJDMX_JSJJE=RoundFix(XLXSBJDMX_JSJG*XLXSBJDMX_BJSL,2),"); + if (sJSJJCLLX.Equals("1")) + { + SQL.Add("XLXSBJDMX_JSJJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + "-XLXSBJDMX_JSJG*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); + } + else if (sJSJJCLLX.Equals("2")) + { + SQL.Add("XLXSBJDMX_JSJJCL =case when XLXSBJDMX_JSJG*XLXSBJDMX_BJSL=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + "-XLXSBJDMX_JSJG*XLXSBJDMX_BJSL)/(XLXSBJDMX_JSJG*XLXSBJDMX_BJSL),2) end,"); + } + else if (sJSJJCLLX.Equals("3")) + { + SQL.Add("XLXSBJDMX_JSJJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_JSJG*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); + } + else + { + SQL.Add("XLXSBJDMX_JSJJCL=0,"); + } + + if (sBJLJJCLLX.Equals("1"))//表价料价价差率公式 + { + SQL.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 + { + SQL.Add("XLXSBJDMX_JGBBJLJJCL=0,"); + } + SQL.Add("XLXSBJDMX_BJTJCZ='TJYZJS',"); + SQL.Add("XLXSBJDMX_CLCBJCLSDBZ='N'"); + SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID "); + SQL.Add(" and XLXSBJDMX_BJSDBZ<>'Y'"); + SQL.Add(" and (XLXSBJDMX_JLDW in ('Km','M','千米','米') "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" or XLXSBJDMX_JLDW='{0}'", sKey)); + } + SQL.Add(" ) "); + if (bYLZD) + { + SQL.Add(@" and exists( select 1 from XLXSBJYLZD + left join XLXSBJYLZDMX on XLXSBJYLZD_SQDH=XLXSBJYLZDMX_SQDH + where XLXSBJYLZD_BJDID=:pBJDID and XLXSBJYLZDMX_BJDXH=XLXSBJDMX_XH ) "); + } + else + { + + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDMX_XH >= :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + if (VBJDID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pID and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "); + SQL.ParamByName("pID").Value = VBJDID; + } + else + { + if (!sXHList.Trim().Equals("")) + { + SQL.Add(" and " + GetWhereEqual("XLXSBJDMX_XH", sXHList)); + } + } + } + + if (bYBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + if (bWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y'"); + if (!sTLcpList.Equals("")) + SQL.Add(" and exists(select 1 from XLXHB where XLXHB_XLXHID=UPPER(XLXSBJDMX_XLXHID) and " + CMISproDataBase.GetWhereEqual("XLXHB_DTCLID", sTLcpList) + ") "); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + //更新报价锁定记录 + sqlBJJE = "RoundFix(XLXSBJDMX_CPBJ*XLXSBJDMX_BJSL,2)+XLXSBJDMX_TZBJJE"; + SQL.Clear(); + SQL.Add("update XLXSBJDMX set "); + + SQL.Add("XLXSBJDMX_TZQCPBJ=RoundFix(XLXSBJDMX_JGBBJ," + (CMISproConvert.StrToInt(sCPBJMRXSWS) > tmpXSWS ? CMISproConvert.StrToInt(sCPBJMRXSWS) : tmpXSWS) + "),");//保留精度高的 + //SQL.Add("XLXSBJDMX_CPBJ=RoundFix(XLXSBJDMX_JGBBJ*(1+XLXSBJDMX_TZCPBJ/100)," + tmpXSWS + "),"); + SQL.Add("XLXSBJDMX_TZQBJJE=RoundFix(XLXSBJDMX_CPBJ*XLXSBJDMX_BJSL,2),"); + SQL.Add("XLXSBJDMX_BJJE=" + sqlBJJE + ","); + if (bjflxx.XLXSBJFL_XSLSBJ == "Y") + SQL.Text = SQL.Text.Replace("XLXSBJDMX_JGBBJ", " case when XLXSBJDMX_LSJGBBJ=0 then XLXSBJDMX_JGBBJ else XLXSBJDMX_LSJGBBJ end "); + if (sJCLLX.Equals("1"))//表价价差率公式 + { + SQL.Add("XLXSBJDMX_JGBBJJCL=case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + "-XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); + SQL.Add("XLXSBJDMX_JGBBJJCE=RoundFix(" + sqlBJJE + "-RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)," + tmpXSWS + "), "); + } + else if (sJCLLX.Equals("2")) + { + SQL.Add("XLXSBJDMX_JGBBJJCL=case when RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL-" + sqlBJJE + ")/(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL),2) end,"); + SQL.Add("XLXSBJDMX_JGBBJJCE=RoundFix(RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)-" + sqlBJJE + "," + tmpXSWS + "), "); + } + else if (sJCLLX.Equals("3")) + { + SQL.Add("XLXSBJDMX_JGBBJJCL=case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); + SQL.Add("XLXSBJDMX_JGBBJJCE=0, "); + } + else if (sJCLLX.Equals("4")) + { + SQL.Add("XLXSBJDMX_JGBBJJCL=case when RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + " - XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL)/(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL),2) end,"); + SQL.Add("XLXSBJDMX_JGBBJJCE=RoundFix(" + sqlBJJE + " - RoundFix(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL,2)," + tmpXSWS + "), "); + } + else + { + SQL.Add("XLXSBJDMX_JGBBJJCL=0,"); + SQL.Add("XLXSBJDMX_JGBBJJCE=0,"); + } + if (sLJJCLLX.Equals("1"))//料价价差率公式 + { + SQL.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")) + { + SQL.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")) + { + SQL.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")) + { + SQL.Add("XLXSBJDMX_CLCBJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); + } + else + { + SQL.Add("XLXSBJDMX_CLCBJCL=0,"); + } + + SQL.Add("XLXSBJDMX_JSJJE=RoundFix(XLXSBJDMX_JSJG*XLXSBJDMX_BJSL,2),"); + if (sJSJJCLLX.Equals("1")) + { + SQL.Add("XLXSBJDMX_JSJJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + "-XLXSBJDMX_JSJG*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); + } + else if (sJSJJCLLX.Equals("2")) + { + SQL.Add("XLXSBJDMX_JSJJCL =case when XLXSBJDMX_JSJG*XLXSBJDMX_BJSL=0.0 then 0.0 else RoundFix(100*(" + sqlBJJE + "-XLXSBJDMX_JSJG*XLXSBJDMX_BJSL)/(XLXSBJDMX_JSJG*XLXSBJDMX_BJSL),2) end,"); + } + else if (sJSJJCLLX.Equals("3")) + { + SQL.Add("XLXSBJDMX_JSJJCL =case when " + sqlBJJE + "=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_JSJG*XLXSBJDMX_BJSL)/(" + sqlBJJE + "),2) end,"); + } + else + { + SQL.Add("XLXSBJDMX_JSJJCL=0,"); + } + + + if (sBJLJJCLLX.Equals("1"))//表价料价价差率公式 + { + SQL.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 + { + SQL.Add("XLXSBJDMX_JGBBJLJJCL=0,"); + } + SQL.Add("XLXSBJDMX_CLCBJCLSDBZ='N'"); + SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID "); + SQL.Add(" and XLXSBJDMX_BJSDBZ='Y'"); + SQL.Add(" and (XLXSBJDMX_JLDW in ('Km','M','千米','米') "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" or XLXSBJDMX_JLDW='{0}'", sKey)); + } + SQL.Add(" ) "); + if (bYLZD) + { + SQL.Add(@" and exists( select 1 from XLXSBJYLZD + left join XLXSBJYLZDMX on XLXSBJYLZD_SQDH=XLXSBJYLZDMX_SQDH + where XLXSBJYLZD_BJDID=:pBJDID and XLXSBJYLZDMX_BJDXH=XLXSBJDMX_XH ) "); + } + else + { + + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDMX_XH >= :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + if (VBJDID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pID and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "); + SQL.ParamByName("pID").Value = VBJDID; + } + else + { + if (!sXHList.Trim().Equals("")) + { + SQL.Add(" and " + GetWhereEqual("XLXSBJDMX_XH", sXHList)); + } + } + } + + if (bYBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + if (bWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y'"); + if (!sTLcpList.Equals("")) + SQL.Add(" and exists(select 1 from XLXHB where XLXHB_XLXHID=UPPER(XLXSBJDMX_XLXHID) and " + CMISproDataBase.GetWhereEqual("XLXHB_DTCLID", sTLcpList) + ") "); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + //处理调整报价% + SQL.Clear(); + SQL.Add("update XLXSBJDMX set XLXSBJDMX_TZCPBJ=(case when XLXSBJDMX_TZQCPBJ=0.0 then 0.0 else 100.0*(XLXSBJDMX_CPBJ-XLXSBJDMX_TZQCPBJ)/XLXSBJDMX_TZQCPBJ end)"); + SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID"); + SQL.Add(" and XLXSBJDMX_BJSDBZ='Y'"); + SQL.Add(" and (XLXSBJDMX_JLDW in ('Km','M','千米','米') "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" or XLXSBJDMX_JLDW='{0}'", sKey)); + } + SQL.Add(" ) "); + if (bYLZD) + { + SQL.Add(@" and exists( select 1 from XLXSBJYLZD + left join XLXSBJYLZDMX on XLXSBJYLZD_SQDH=XLXSBJYLZDMX_SQDH + where XLXSBJYLZD_BJDID=:pBJDID and XLXSBJYLZDMX_BJDXH=XLXSBJDMX_XH ) "); + } + else + { + + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDMX_XH >= :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + if (VBJDID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pID and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "); + SQL.ParamByName("pID").Value = VBJDID; + } + else + { + if (!sXHList.Trim().Equals("")) + { + SQL.Add(" and " + GetWhereEqual("XLXSBJDMX_XH", sXHList)); + } + } + } + + if (bYBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + if (bWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y'"); + if (!sTLcpList.Equals("")) + SQL.Add(" and exists(select 1 from XLXHB where XLXHB_XLXHID=UPPER(XLXSBJDMX_XLXHID) and " + CMISproDataBase.GetWhereEqual("XLXHB_DTCLID", sTLcpList) + ") "); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + } + } + } + + + public static Dictionary GetCLCB_BJHQ(string sBJFLID, string sJGBID, string sBJRQ, string sXLXHID, string sXLGGID, string sXLBZID, string sDYDJID, string sJGBJLDW, string sBJU003) + { + double dCLCB1 = 0.0; + double dWSCLCB1 = 0.0; + double dCLCB2 = 0.0; + double dWSCLCB2 = 0.0; + bool JgIsZero = false;//是否存在有材料用量、无材料价格的情况 + + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sSQL = new TSQL(dberp); + sSQL.Clear(); + sSQL.Add("select XLXSCLQD_JGCZBID,XLXSCLQD_JGCZBBBID from XLXSCLQD where XLXSCLQD_XLXHID=:pXLXHID and XLXSCLQD_XLGGID=:pXLGGID and XLXSCLQD_XLBZID=:pXLBZID and XLXSCLQD_DYDJID=:pDYDJID"); + sSQL.Add(" and XLXSCLQD_WPID='ZZZZ'"); + sSQL.ParamByName("pXLXHID").Value = sXLXHID; + sSQL.ParamByName("pXLGGID").Value = sXLGGID; + sSQL.ParamByName("pXLBZID").Value = sXLBZID; + sSQL.ParamByName("pDYDJID").Value = sDYDJID.Trim().Equals("") ? " " : sDYDJID.Trim(); + DataSet dsQD = dberp.OpenDataSet(sSQL); + if (dsQD.Tables[0].Rows.Count > 0) + { + string sJGCZBID = dsQD.Tables[0].Rows[0]["XLXSCLQD_JGCZBID"].ToString().Trim(); + string sJGCZBBBID = dsQD.Tables[0].Rows[0]["XLXSCLQD_JGCZBBBID"].ToString().Trim(); + + sSQL.Clear(); + sSQL.Add("select XLJGCZBLM_CLQDL,XLJGCZBLM_BJCLID,XLXSBJCL_BJHQ,XLJGCZBML_CZBLX from XLJGCZBLM"); + sSQL.Add(" left join XLXSBJCL on XLXSBJCL_BJCLID=XLJGCZBLM_BJCLID"); + sSQL.Add(" left join XLJGCZBML on XLJGCZBML_JGCZBID=XLJGCZBLM_JGCZBID"); + sSQL.Add(" where XLJGCZBLM_JGCZBID=:pJGCZBID and XLJGCZBLM_JGCZBBBID=:pJGCZBBBID"); + sSQL.Add(" and isnull(XLJGCZBLM_CLQDL,' ')<>' '"); + sSQL.Add(" order by XLJGCZBLM_CLQDL"); + sSQL.ParamByName("pJGCZBID").Value = sJGCZBID; + sSQL.ParamByName("pJGCZBBBID").Value = sJGCZBBBID; + DataSet dsJGCZB = dberp.OpenDataSet(sSQL); + Dictionary dicCLHQ = new Dictionary(); + Dictionary dicWLHQ = new Dictionary(); + for (int i = 0; i < dsJGCZB.Tables[0].Rows.Count; i++) + { + //B类尺重表只支持材料行情报价 + if (dsJGCZB.Tables[0].Rows[i]["XLJGCZBML_CZBLX"].ToString().Trim().Equals("B")) + { + dicCLHQ.Add(dsJGCZB.Tables[0].Rows[i]["XLJGCZBLM_CLQDL"].ToString().Trim(), dsJGCZB.Tables[0].Rows[i]["XLJGCZBLM_BJCLID"].ToString().Trim()); + } + else//Z类A类C类 + { + if (dsJGCZB.Tables[0].Rows[i]["XLXSBJCL_BJHQ"].ToString().Trim().Equals("2")) + { + //2|物料行情 + dicWLHQ.Add(dsJGCZB.Tables[0].Rows[i]["XLJGCZBLM_CLQDL"].ToString().Trim(), dsJGCZB.Tables[0].Rows[i]["XLJGCZBLM_BJCLID"].ToString().Trim()); + } + else + { + //1|材料行情 + dicCLHQ.Add(dsJGCZB.Tables[0].Rows[i]["XLJGCZBLM_CLQDL"].ToString().Trim(), dsJGCZB.Tables[0].Rows[i]["XLJGCZBLM_BJCLID"].ToString().Trim()); + } + } + } + + + sSQL.Clear(); + sSQL.Add("select XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_XLBZID,XLXSCLQD_DYDJID,"); + foreach (string sCLQDL in dicCLHQ.Keys) + { + sSQL.Add(string.Format("XLXSCLQD_SL{0}*CLJG{0}*(1+XLXSCLQD_SHL{0}/100)*XLXSCLQD_CLJGBL{0}+", sCLQDL.Replace("第", "").Replace("列", ""))); + } + sSQL.Add("0 as WSCLCB, "); + foreach (string sCLQDL in dicCLHQ.Keys) + { + sSQL.Add(string.Format("XLXSCLQD_SL{0}*HSJG{0}*(1+XLXSCLQD_SHL{0}/100)*XLXSCLQD_CLJGBL{0}+", sCLQDL.Replace("第", "").Replace("列", ""))); + } + sSQL.Add("0 as CLCB, "); + if (dicCLHQ.Keys.Count > 0) + { + //是否存在有材料用量、无材料价格的情况 + sSQL.Add("case "); + foreach (string sCLQDL in dicCLHQ.Keys) + { + sSQL.Add(string.Format(" when (XLXSCLQD_SL{0}>0 and HSJG{0}=0) then 'Y' ", sCLQDL.Replace("第", "").Replace("列", ""))); + } + sSQL.Add(" else 'N' end as JgIsZero "); + } + else + { + sSQL.Add(" 'N' as JgIsZero "); + } + + sSQL.Add("from XLXSCLQD "); + sSQL.Add(" left join"); + sSQL.Add(" ("); + sSQL.Add(" select JGCZBID,JGCZBBBID,"); + for (int i = 1; i < 80; i++) + { + sSQL.Add(string.Format(" sum(CLJG{0}) as CLJG{0},sum(HSJG{0}) as HSJG{0},", i.ToString().PadLeft(2, '0'))); + } + sSQL.Add(" sum(CLJG80) as CLJG80,sum(HSJG80) as HSJG80"); + sSQL.Add(" from"); + sSQL.Add(" ("); + sSQL.Add(" select XLJGCZBLM_JGCZBID as JGCZBID,XLJGCZBLM_JGCZBBBID as JGCZBBBID,"); + for (int i = 1; i < 80; i++) + { + sSQL.Add(string.Format(" case when XLJGCZBLM_CLQDL='{0}' then isnull(CLJG,0.0) else 0.0 end as CLJG{1},", "第" + i.ToString().PadLeft(2, '0') + "列", i.ToString().PadLeft(2, '0'))); + sSQL.Add(string.Format(" case when XLJGCZBLM_CLQDL='{0}' then isnull(HSJG,0.0) else 0.0 end as HSJG{1},", "第" + i.ToString().PadLeft(2, '0') + "列", i.ToString().PadLeft(2, '0'))); + } + sSQL.Add(" case when XLJGCZBLM_CLQDL='第80列' then isnull(CLJG,0.0) else 0.0 end as CLJG80,"); + sSQL.Add(" case when XLJGCZBLM_CLQDL='第80列' then isnull(HSJG,0.0) else 0.0 end as HSJG80 "); + sSQL.Add(" from XLJGCZBLM"); + sSQL.Add(" left join "); + sSQL.Add(" ("); + sSQL.Add(" select XLXSBJCL_BJCLID as BJCLID,"); + sSQL.Add(" case when isnull(XLXSBJFLBJRHQCL_BJCLID,' ')<>' ' then bjrclhq.CLJG else jgbclhq.CLJG end as CLJG, "); + sSQL.Add(" case when isnull(XLXSBJFLBJRHQCL_BJCLID,' ')<>' ' then bjrclhq.HSJG else jgbclhq.HSJG end as HSJG "); + sSQL.Add(" from XLXSBJCL"); + sSQL.Add(" left join XLXSBJFLBJRHQCL on XLXSBJFLBJRHQCL_BJFLID=:pBJFLID and XLXSBJFLBJRHQCL_BJCLID=XLXSBJCL_BJCLID"); + //bjrclhq 报价材料之报价日行情 + sSQL.Add(" left join ("); + sSQL.Add(" select BJCLID,XLXSCLHQ_WSJG as CLJG,XLXSCLHQ_HSJG as HSJG"); + sSQL.Add(" from XLXSCLHQ,"); + sSQL.Add(" ("); + sSQL.Add(" select XLXSCLHQ_BJCLID as BJCLID,max(XLXSCLHQ_YXQS)as maxYXQS"); + sSQL.Add(" from XLXSCLHQ"); + sSQL.Add(" where XLXSCLHQ_JGBID='ZZZZZZZZ'"); + sSQL.Add(" and XLXSCLHQ_YXQS<=:pBJRQ and(XLXSCLHQ_YXQZ>=:pBJRQ or XLXSCLHQ_YXQZ is null)"); + sSQL.Add(" group by XLXSCLHQ_BJCLID"); + sSQL.Add(" ) a"); + sSQL.Add(" where XLXSCLHQ_JGBID='ZZZZZZZZ' "); + sSQL.Add(" and XLXSCLHQ_BJCLID=BJCLID"); + sSQL.Add(" and XLXSCLHQ_YXQS=maxYXQS"); + sSQL.Add(" )bjrclhq on bjrclhq.BJCLID=XLXSBJCL_BJCLID"); + //jgbclhq 报价材料之价格表行情 + sSQL.Add(" left join ("); + sSQL.Add(" select XLXSCLHQ_BJCLID as BJCLID,XLXSCLHQ_WSJG as CLJG,XLXSCLHQ_HSJG as HSJG"); + sSQL.Add(" from XLXSCLHQ"); + sSQL.Add(" where XLXSCLHQ_JGBID<>'ZZZZZZZZ' and XLXSCLHQ_JGBID=:pJGBID"); + sSQL.Add(" )jgbclhq on jgbclhq.BJCLID=XLXSBJCL_BJCLID"); + sSQL.Add(" ) JGB on JGB.BJCLID=XLJGCZBLM_BJCLID"); + sSQL.Add(" where XLJGCZBLM_JGCZBID=:pJGCZBID and XLJGCZBLM_JGCZBBBID=:pJGCZBBBID"); + sSQL.Add(" ) b"); + sSQL.Add(" group by JGCZBID,JGCZBBBID"); + sSQL.Add(" ) c on JGCZBID=XLXSCLQD_JGCZBID and JGCZBBBID= XLXSCLQD_JGCZBBBID "); + sSQL.Add("where XLXSCLQD_XLXHID=:pXLXHID and XLXSCLQD_XLGGID=:pXLGGID and XLXSCLQD_XLBZID=:pXLBZID and XLXSCLQD_DYDJID=:pDYDJID"); + sSQL.ParamByName("pJGBID").Value = sJGBID; + sSQL.ParamByName("pBJRQ").Value = sBJRQ; + sSQL.ParamByName("pBJFLID").Value = sBJFLID; + + sSQL.ParamByName("pXLXHID").Value = sXLXHID; + sSQL.ParamByName("pXLGGID").Value = sXLGGID; + sSQL.ParamByName("pXLBZID").Value = sXLBZID; + sSQL.ParamByName("pDYDJID").Value = sDYDJID.Trim().Equals("") ? " " : sDYDJID.Trim(); + + sSQL.ParamByName("pJGCZBID").Value = sJGCZBID; + sSQL.ParamByName("pJGCZBBBID").Value = sJGCZBBBID; + DataSet ds1 = dberp.OpenDataSet(sSQL); + if (ds1.Tables[0].Rows.Count > 0) + { + dCLCB1 = CMISproConvert.StrToFloat(ds1.Tables[0].Rows[0]["CLCB"].ToString()); + dWSCLCB1 = CMISproConvert.StrToFloat(ds1.Tables[0].Rows[0]["WSCLCB"].ToString()); + if (ds1.Tables[0].Rows[0]["JgIsZero"].ToString().Trim().Equals("Y")) + JgIsZero = true; + } + + + + if (dicWLHQ.Keys.Count > 0) + { + string sSQL_1 = "select XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_XLBZID,XLXSCLQD_DYDJID,"; + string sSQL_2 = string.Empty; + string sSQL_3 = " 0 as WSCLCB,"; + string sSQL_4 = string.Empty; + string sSQL_5 = " 0 as CLCB, case "; + string sSQL_6 = string.Empty; + string sSQL_7 = " else 'N' end as JgIsZero from XLXSCLQD " + + " left join ( " + + " select XLXSCLQDWL_JGCZBID as JGCZBID,XLXSCLQDWL_JGCZBBBID as JGCZBBBID,XLXSCLQDWL_DRHH as DRHH, XLXSCLQDWL_JGCZBXH as JGCZBXH, "; + string sSQL_8 = string.Empty; + string sSQL_9 = " ' ' as MJBZ from XLXSCLQDWL "; + string sSQL_10 = string.Empty; + string sSQL_11 = " ) d on JGCZBID=XLXSCLQD_JGCZBID and JGCZBBBID= XLXSCLQD_JGCZBBBID and JGCZBXH= XLXSCLQD_JGCZBXH and DRHH=XLXSCLQD_DRHH " + + " where XLXSCLQD_XLXHID=:pXLXHID and XLXSCLQD_XLGGID=:pXLGGID and XLXSCLQD_XLBZID=:pXLBZID and XLXSCLQD_DYDJID=:pDYDJID"; + int count = 0;//拼接的栏目数量 + foreach (string sCLQDL in dicWLHQ.Keys) + { + + sSQL_2 += string.Format("XLXSCLQD_SL{0}*(1+XLXSCLQD_SHL{0}/100)*XLXSCLQD_CLJGBL{0}*isnull(WSJG{0},0)+", sCLQDL.Replace("第", "").Replace("列", "")); + + sSQL_4 += string.Format("XLXSCLQD_SL{0}*(1+XLXSCLQD_SHL{0}/100)*XLXSCLQD_CLJGBL{0}*isnull(HSJG{0},0)+", sCLQDL.Replace("第", "").Replace("列", "")); + + sSQL_6 += string.Format(" when (XLXSCLQD_SL{0}>0 and isnull(HSJG{0},0)=0) then 'Y' ", sCLQDL.Replace("第", "").Replace("列", "")); + + sSQL_8 += string.Format(" isnull(c{0}.XLXSWLHQ_WSJG,0) as WSJG{0},isnull(c{0}.XLXSWLHQ_HSJG,0) as HSJG{0}, ", sCLQDL.Replace("第", "").Replace("列", "")); + + //关联XLXSWLHQ,获取物料行情 + + sSQL_10 += " left join"; + sSQL_10 += " ("; + sSQL_10 += " select XLXSWLHQ_WLID,XLXSWLHQ_WSJG,XLXSWLHQ_HSJG"; + sSQL_10 += " from XLXSWLHQ,"; + sSQL_10 += " ("; + sSQL_10 += " select XLXSWLHQ_WLID as WLID,max(XLXSWLHQ_YXQS)as maxYXQS"; + sSQL_10 += " from XLXSWLHQ"; + sSQL_10 += " where XLXSWLHQ_JGBID=' '"; + sSQL_10 += " and XLXSWLHQ_YXQS<=:pRQ and (XLXSWLHQ_YXQZ>=:pRQ or XLXSWLHQ_YXQZ is null)"; + sSQL_10 += " group by XLXSWLHQ_WLID"; + sSQL_10 += string.Format(") a{0} ", sCLQDL.Replace("第", "").Replace("列", "")); + sSQL_10 += " where XLXSWLHQ_JGBID=' ' and XLXSWLHQ_WLID=WLID and XLXSWLHQ_YXQS=maxYXQS"; + sSQL_10 += string.Format(") c{0} on c{0}.XLXSWLHQ_WLID=XLXSCLQDWL_WLID{0} ", sCLQDL.Replace("第", "").Replace("列", "")); + + count++; + if (count % 25 == 0 || count == dicWLHQ.Count) + { + sSQL.Clear(); + sSQL.Add(sSQL_1); + sSQL.Add(sSQL_2); + sSQL.Add(sSQL_3); + sSQL.Add(sSQL_4); + sSQL.Add(sSQL_5); + sSQL.Add(sSQL_6); + sSQL.Add(sSQL_7); + sSQL.Add(sSQL_8); + sSQL.Add(sSQL_9); + sSQL.Add(sSQL_10); + sSQL.Add(sSQL_11); + sSQL.ParamByName("pRQ").Value = sBJRQ; + sSQL.ParamByName("pXLXHID").Value = sXLXHID; + sSQL.ParamByName("pXLGGID").Value = sXLGGID; + sSQL.ParamByName("pXLBZID").Value = sXLBZID; + sSQL.ParamByName("pDYDJID").Value = sDYDJID.Trim().Equals("") ? " " : sDYDJID.Trim(); + DataSet ds2 = dberp.OpenDataSet(sSQL); + if (ds2.Tables[0].Rows.Count > 0) + { + dCLCB2 += CMISproConvert.StrToFloat(ds2.Tables[0].Rows[0]["CLCB"].ToString()); + dWSCLCB2 += CMISproConvert.StrToFloat(ds2.Tables[0].Rows[0]["WSCLCB"].ToString()); + if (ds2.Tables[0].Rows[0]["JgIsZero"].ToString().Trim().Equals("Y")) + JgIsZero = true; + } + sSQL_2 = string.Empty; + sSQL_4 = string.Empty; + sSQL_6 = string.Empty; + sSQL_8 = string.Empty; + sSQL_10 = string.Empty; + + } + + } + + } + + } + + Dictionary aryCLCB = new Dictionary(); + + double dBJU003_JGB_JLDWHSBL = GetJLDWHSBL_JG(sBJU003, sJGBJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID); + dCLCB1 = dCLCB1 * dBJU003_JGB_JLDWHSBL; + dCLCB2 = dCLCB2 * dBJU003_JGB_JLDWHSBL; + dWSCLCB1 = dWSCLCB1 * dBJU003_JGB_JLDWHSBL; + dWSCLCB2 = dWSCLCB2 * dBJU003_JGB_JLDWHSBL; + + aryCLCB.Add("CLCB", dCLCB1 + dCLCB2); + aryCLCB.Add("WSCLCB", dWSCLCB1 + dWSCLCB2); + if (JgIsZero) + aryCLCB.Add("JgIsZero", 1);//1代表真 + else + aryCLCB.Add("JgIsZero", 0);//0代表假 + return aryCLCB; + } + + public static double GetCPJJbyCLCB(double dCLCB, string sJGBID, string sJGCIDS, string sXLXHID, string sXLGGID, string sST, string sDYDJ) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + //如果是组合产品目录价格表,需要先确定当前报价产品属于组合产品目录价格表的哪一张JGC价格表,按该JGC价格表的调价方式对dCLCB进行调价,得到表价 + if (!sJGCIDS.Trim().Equals("")) + { + //这里sJGBID变量被偷换成了JGC价格表 + sJGBID = GetJGCID(sJGCIDS, sXLXHID, sXLGGID, sST, sDYDJ); + } + + double dCPJJ = 0.0; + sql.Clear(); + sql.Add("select XLXSJGBYZ_YZID,XLXSTZYZ_JJFS,XLXSTZYZ_TJYZID"); + sql.Add(" from XLXSJGBYZ"); + sql.Add(" left join XLXSTZYZ on XLXSTZYZ_MXBH='JZJ' and XLXSTZYZ_YZID=XLXSJGBYZ_YZID"); + sql.Add(" where XLXSJGBYZ_JGBID=:pJGBID"); + sql.Add(" order by XLXSTZYZ_TJYZID,XLXSTZYZ_XSXH,XLXSJGBYZ_YZID"); + sql.ParamByName("pJGBID").Value = sJGBID; + DataSet dsJGBYZ = dberp.OpenDataSet(sql); + if (dsJGBYZ.Tables[0].Rows.Count > 0) + { + string sJDSQL = "1"; + string sKDSQL = "1"; + string sJJSQL = "0"; + string sSXSQL = "1"; + string sTJYZID = dsJGBYZ.Tables[0].Rows[0]["XLXSTZYZ_TJYZID"].ToString().Trim(); + string sJJFS = dsJGBYZ.Tables[0].Rows[0]["XLXSTZYZ_JJFS"].ToString().Trim(); + for (int i = 1; i < dsJGBYZ.Tables[0].Rows.Count; i++) + { + if (!sTJYZID.Equals(dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYZID"].ToString().Trim())) + { + if (sJJFS.Equals("JD")) + sJDSQL = sJDSQL + "*(1+JDYZZ_" + sTJYZID + "/100.0)"; + else if (sJJFS.Equals("KD")) + sKDSQL = sKDSQL + "/(1-KDYZZ_" + sTJYZID + "/100.0)"; + else if (sJJFS.Equals("JJ")) + sJJSQL += "+JJYZZ_" + sTJYZID; + else if (sJJFS.Equals("SX")) + sSXSQL = sSXSQL + "*(case when SXYZZ_" + sTJYZID + ">=0 then 1/(1-SXYZZ_" + sTJYZID + "/100.0) else (1+SXYZZ_" + sTJYZID + "/100.0) end)"; + + sTJYZID = dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYZID"].ToString().Trim(); + sJJFS = dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_JJFS"].ToString().Trim(); + } + } + if (sJJFS.Equals("JD")) + sJDSQL = sJDSQL + "*(1+JDYZZ_" + sTJYZID + "/100.0)"; + else if (sJJFS.Equals("KD")) + sKDSQL = sKDSQL + "/(1-KDYZZ_" + sTJYZID + "/100.0)"; + else if (sJJFS.Equals("JJ")) + sJJSQL += "+JJYZZ_" + sTJYZID; + else if (sJJFS.Equals("SX")) + { + sSXSQL = sSXSQL + "*(case when SXYZZ_" + sTJYZID + ">=0 then 1/(1-SXYZZ_" + sTJYZID + "/100.0) else (1+SXYZZ_" + sTJYZID + "/100.0) end)"; + } + + sql.Clear(); + sql.Add("select JGBID,XH," + sJDSQL + " as JDYZZ," + sKDSQL + " as KDYZZ," + sJJSQL + " as JJYZZ," + sSXSQL + " as SXYZZ"); + sql.Add(" from "); + sql.Add("("); + sql.Add(" select XLXSJGBYZZ0_JGBID as JGBID,XLXSJGBYZZ0_XH as XH,"); + sql.Add(" ("); + sql.Add(string.Format("XLXSJGBYZZ0_YZZ{0}", dsJGBYZ.Tables[0].Rows[0]["XLXSJGBYZ_YZID"].ToString().Trim().Replace("JZ", ""))); + + sTJYZID = dsJGBYZ.Tables[0].Rows[0]["XLXSTZYZ_TJYZID"].ToString().Trim(); + sJJFS = dsJGBYZ.Tables[0].Rows[0]["XLXSTZYZ_JJFS"].ToString().Trim(); + for (int i = 1; i < dsJGBYZ.Tables[0].Rows.Count; i++) + { + if (sTJYZID.Equals(dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYZID"].ToString().Trim())) + { + sql.Add(string.Format("+XLXSJGBYZZ0_YZZ{0}", dsJGBYZ.Tables[0].Rows[i]["XLXSJGBYZ_YZID"].ToString().Trim().Replace("JZ", ""))); + } + else + { + if (sJJFS.Equals("JD")) + sql.Add(") as " + "JDYZZ_" + sTJYZID); + else if (sJJFS.Equals("KD")) + sql.Add(") as " + "KDYZZ_" + sTJYZID); + else if (sJJFS.Equals("JJ")) + sql.Add(") as " + "JJYZZ_" + sTJYZID); + else if (sJJFS.Equals("SX")) + sql.Add(") as " + "SXYZZ_" + sTJYZID); + + sTJYZID = dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYZID"].ToString().Trim(); + sJJFS = dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_JJFS"].ToString().Trim(); + sql.Add(",("); + sql.Add(string.Format("XLXSJGBYZZ0_YZZ{0}", dsJGBYZ.Tables[0].Rows[i]["XLXSJGBYZ_YZID"].ToString().Trim().Replace("JZ", ""))); + } + } + if (sJJFS.Equals("JD")) + sql.Add(") as " + "JDYZZ_" + sTJYZID); + else if (sJJFS.Equals("KD")) + sql.Add(") as " + "KDYZZ_" + sTJYZID); + else if (sJJFS.Equals("JJ")) + sql.Add(") as " + "JJYZZ_" + sTJYZID); + else if (sJJFS.Equals("SX")) + sql.Add(") as " + "SXYZZ_" + sTJYZID); + + + sql.Add(" from XLXSJGBYZZ0"); + sql.Add(" where XLXSJGBYZZ0_JGBID=:pJGBID "); + sql.Add(" and XLXSJGBYZZ0_XH=(select XLXSJGBMX_XH from XLXSJGBMX where XLXSJGBMX_JGBID=:pJGBID and XLXSJGBMX_XLXHID=:pXLXHID and XLXSJGBMX_XLGGID=:pXLGGID "); + sql.Add(" and XLXSJGBMX_XLBZID=:pXLBZID and XLXSJGBMX_DYDJID=:pDYDJID)"); + sql.Add(") a"); + sql.ParamByName("pJGBID").Value = sJGBID; + sql.ParamByName("pXLXHID").Value = sXLXHID; + sql.ParamByName("pXLGGID").Value = sXLGGID; + sql.ParamByName("pXLBZID").Value = sST; + sql.ParamByName("pDYDJID").Value = sDYDJ; + DataSet ds = dberp.OpenDataSet(sql); + if (ds.Tables[0].Rows.Count > 0) + { + double dJDYZZ = 1.0; + double dKDYZZ = 1.0; + double dJJYZZ = 0.0; + for (int j = 0; j < ds.Tables[0].Columns.Count; j++) + { + if (ds.Tables[0].Columns[j].ColumnName.StartsWith("JDYZZ_")) + dJDYZZ = dJDYZZ * (1 + CMISproConvert.StrToFloat(ds.Tables[0].Rows[0][j].ToString()) / 100.0); + else if (ds.Tables[0].Columns[j].ColumnName.StartsWith("KDYZZ_")) + dKDYZZ = dKDYZZ / (1 - CMISproConvert.StrToFloat(ds.Tables[0].Rows[0][j].ToString()) / 100.0); + else if (ds.Tables[0].Columns[j].ColumnName.StartsWith("JJYZZ_")) + dJJYZZ = dJJYZZ + CMISproConvert.StrToFloat(ds.Tables[0].Rows[0][j].ToString()); + } + if (JJFirst_JGBYZ(sJGBID)) + { + dCPJJ = (dCLCB + CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["JJYZZ"].ToString())) * CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["JDYZZ"].ToString()) + * CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["KDYZZ"].ToString()) * CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["SXYZZ"].ToString()); + } + else + { + dCPJJ = dCLCB * CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["JDYZZ"].ToString()) * CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["KDYZZ"].ToString()) + * CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["SXYZZ"].ToString()) + CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["JJYZZ"].ToString()); + } + } + else + { + dCPJJ = dCLCB; + } + } + else + { + dCPJJ = dCLCB; + } + return NumberUtils.RoundX(dCPJJ, 8);//测试存在0.2816*1.25=0.35200000000000004的情况,故此处对精度做一下控制。 + } + + //按报价日行情重新计算基价、表价 + public static void GetFromJGB_BJRHQ(string sXLXHID, string sXLGGID, string sST, string sDYDJ, string sJGBID, string sJGCIDS, string sBJRQ, bool bHSBZ, + string sBJU002, string sBJFLID, string sJGBJLDW, string sBJU003, ref string sCPJJ, ref string sJJ, ref string sCLCB, ref bool JgIsZero) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + double dCLCB = 0.0; + double dJJ = 0.0; + double dCPJJ = 0.0; + + int iXSWS = string.IsNullOrEmpty(sBJU002) ? 5 : CMISproConvert.StrToInt(sBJU002); + if (iXSWS < 0) + iXSWS = 0; + else if (iXSWS > 8) + iXSWS = 8; + + sql.Clear(); + sql.Add("select XLXSJGB_TJYS,XLXSJGB_JGBIDS from XLXSJGB where XLXSJGB_MXBH='JGB' and XLXSJGB_JGBID=:pJGBID "); + sql.ParamByName("pJGBID").Value = sJGBID; + DataSet ds = dberp.OpenDataSet(sql); + if (ds.Tables[0].Rows.Count > 0) + { + if (ds.Tables[0].Rows[0]["XLXSJGB_TJYS"].ToString().Trim().Equals("0") || ds.Tables[0].Rows[0]["XLXSJGB_TJYS"].ToString().Trim().Equals("1")) + { + if (bHSBZ) + { + Dictionary aryCLCB = GetCLCB_BJHQ(sBJFLID, sJGBID, sBJRQ, sXLXHID, sXLGGID, sST, sDYDJ, sJGBJLDW, sBJU003); + dJJ = aryCLCB["CLCB"]; + dCLCB = aryCLCB["CLCB"];//成本价、出厂价价格表的基价即材料成本 + JgIsZero = aryCLCB["JgIsZero"] == 1 ? true : false; + } + else + { + Dictionary aryCLCB = GetCLCB_BJHQ(sBJFLID, sJGBID, sBJRQ, sXLXHID, sXLGGID, sST, sDYDJ, sJGBJLDW, sBJU003); + dJJ = aryCLCB["WSCLCB"]; + dCLCB = aryCLCB["CLCB"]; + JgIsZero = aryCLCB["JgIsZero"] == 1 ? true : false; + } + dCLCB = NumberUtils.RoundX(dCLCB, iXSWS); + dJJ = NumberUtils.RoundX(dJJ, iXSWS); + dCPJJ = GetCPJJbyCLCB(dJJ, sJGBID, sJGCIDS, sXLXHID, sXLGGID, sST, sDYDJ); + } + else if (ds.Tables[0].Rows[0]["XLXSJGB_TJYS"].ToString().Trim().Equals("2"))//暂不支持组合产品目录价格表 + { + //出厂价价格表 + string sJGBIDS = ds.Tables[0].Rows[0]["XLXSJGB_JGBIDS"].ToString().Trim(); + + sql.Clear(); + sql.Add("select XLXSJGBMX_JGBID "); + sql.Add("from XLXSJGBMX "); + sql.Add("where " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGBIDS)); + sql.Add(" and XLXSJGBMX_XLXHID=:pXLXHID and XLXSJGBMX_XLGGID=:pXLGGID and XLXSJGBMX_XLBZID=:pXLBZID and isnull(XLXSJGBMX_DYDJID,' ')=:pDYDJID"); + sql.Add(" order by XLXSJGBMX_JGBID"); + sql.ParamByName("pXLXHID").Value = sXLXHID; + sql.ParamByName("pXLGGID").Value = sXLGGID; + sql.ParamByName("pXLBZID").Value = sST; + sql.ParamByName("pDYDJID").Value = sDYDJ.Trim().Equals("") ? " " : sDYDJ.Trim(); + DataSet dsJGBMX = dberp.OpenDataSet(sql); + if (dsJGBMX.Tables[0].Rows.Count > 0) + { + string sJGBID_1 = dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_JGBID"].ToString().Trim(); + double dJJ_1 = 0.0; + if (bHSBZ) + { + Dictionary aryCLCB_1 = GetCLCB_BJHQ(sBJFLID, sJGBID_1, sBJRQ, sXLXHID, sXLGGID, sST, sDYDJ, sJGBJLDW, sBJU003); + dJJ_1 = aryCLCB_1["CLCB"]; + dCLCB = aryCLCB_1["CLCB"];//区域价所依出厂价的基价即材料成本 + JgIsZero = aryCLCB_1["JgIsZero"] == 1 ? true : false; + } + else + { + Dictionary aryCLCB_1 = GetCLCB_BJHQ(sBJFLID, sJGBID_1, sBJRQ, sXLXHID, sXLGGID, sST, sDYDJ, sJGBJLDW, sBJU003); + dJJ_1 = aryCLCB_1["WSCLCB"]; + dCLCB = aryCLCB_1["WSCLCB"]; + JgIsZero = aryCLCB_1["JgIsZero"] == 1 ? true : false; + } + + dCLCB = NumberUtils.RoundX(dCLCB, iXSWS); + dJJ = GetCPJJbyCLCB(dJJ_1, sJGBID_1, "", sXLXHID, sXLGGID, sST, sDYDJ); + dJJ = NumberUtils.RoundX(dJJ, iXSWS); + dCPJJ = GetCPJJbyCLCB(dJJ, sJGBID, "", sXLXHID, sXLGGID, sST, sDYDJ); + } + } + } + sCPJJ = NumberUtils.RoundX(dCPJJ, iXSWS).ToString(); + sJJ = dJJ.ToString(); + sCLCB = dCLCB.ToString(); + } + + public static Dictionary GetCLCB_BJDHQ(string sBJDID, string sBJRQ, string sXLXHID, string sXLGGID, string sXLBZID, string sDYDJID) + { + return GetCLCB_BJDHQ(sBJDID, sBJRQ, sXLXHID, sXLGGID, sXLBZID, sDYDJID, ""); + } + + //特别处理:若存在有材料用量、无材料价格的情况,则算出的报价单行情料价改为负数显示 + //若sJGBID1不为空,则只返回材料价价差 + public static Dictionary GetCLCB_BJDHQ(string sBJDID, string sBJRQ, string sXLXHID, string sXLGGID, string sXLBZID, string sDYDJID, string sJGBID1) + { + double dCLCB1 = 0.0; + double dWSCLCB1 = 0.0; + double dCLCB2 = 0.0; + double dWSCLCB2 = 0.0; + bool JgIsZero = false;//是否存在有材料用量、无材料价格的情况 + + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sSQL = new TSQL(dberp); + sSQL.Clear(); + sSQL.Add("select XLXSCLQD_JGCZBID, XLXSCLQD_JGCZBBBID from XLXSCLQD where XLXSCLQD_XLXHID=:pXLXHID and XLXSCLQD_XLGGID=:pXLGGID and XLXSCLQD_XLBZID=:pXLBZID and XLXSCLQD_DYDJID=:pDYDJID"); + sSQL.Add(" and XLXSCLQD_WPID='ZZZZ'"); + sSQL.ParamByName("pXLXHID").Value = sXLXHID; + sSQL.ParamByName("pXLGGID").Value = sXLGGID; + sSQL.ParamByName("pXLBZID").Value = sXLBZID; + sSQL.ParamByName("pDYDJID").Value = sDYDJID.Trim().Equals("") ? " " : sDYDJID.Trim(); + DataSet dsQD = dberp.OpenDataSet(sSQL); + if (dsQD.Tables[0].Rows.Count > 0) + { + string sJGCZBID = dsQD.Tables[0].Rows[0]["XLXSCLQD_JGCZBID"].ToString().Trim(); + string sJGCZBBBID = dsQD.Tables[0].Rows[0]["XLXSCLQD_JGCZBBBID"].ToString().Trim(); + + sSQL.Clear(); + sSQL.Add("select XLJGCZBLM_CLQDL,XLJGCZBLM_BJCLID,XLXSBJCL_BJHQ,XLJGCZBML_CZBLX,isnull(XLJGCZBLM_BJRCLCB,'N') as XLJGCZBLM_BJRCLCB from XLJGCZBLM"); + sSQL.Add(" left join XLXSBJCL on XLXSBJCL_BJCLID=XLJGCZBLM_BJCLID"); + sSQL.Add(" left join XLJGCZBML on XLJGCZBML_JGCZBID=XLJGCZBLM_JGCZBID"); + sSQL.Add(" where XLJGCZBLM_JGCZBID=:pJGCZBID and XLJGCZBLM_JGCZBBBID=:pJGCZBBBID"); + sSQL.Add(" and isnull(XLJGCZBLM_CLQDL,' ')<>' '"); + sSQL.Add(" order by XLJGCZBLM_CLQDL"); + sSQL.ParamByName("pJGCZBID").Value = sJGCZBID; + sSQL.ParamByName("pJGCZBBBID").Value = sJGCZBBBID; + DataSet dsJGCZB = dberp.OpenDataSet(sSQL); + Dictionary dicCLHQ = new Dictionary(); + Dictionary dicWLHQ = new Dictionary(); + Dictionary dicBJRCB = new Dictionary(); + for (int i = 0; i < dsJGCZB.Tables[0].Rows.Count; i++) + { + //B类尺重表只支持材料行情报价 + if (dsJGCZB.Tables[0].Rows[i]["XLJGCZBML_CZBLX"].ToString().Trim().Equals("B")) + { + dicCLHQ.Add(dsJGCZB.Tables[0].Rows[i]["XLJGCZBLM_CLQDL"].ToString().Trim(), dsJGCZB.Tables[0].Rows[i]["XLJGCZBLM_BJCLID"].ToString().Trim()); + } + else//Z类A类C类 + { + if (dsJGCZB.Tables[0].Rows[i]["XLXSBJCL_BJHQ"].ToString().Trim().Equals("2")) + { + //2|物料行情 + dicWLHQ.Add(dsJGCZB.Tables[0].Rows[i]["XLJGCZBLM_CLQDL"].ToString().Trim(), dsJGCZB.Tables[0].Rows[i]["XLJGCZBLM_BJCLID"].ToString().Trim()); + } + else + { + //1|材料行情 + dicCLHQ.Add(dsJGCZB.Tables[0].Rows[i]["XLJGCZBLM_CLQDL"].ToString().Trim(), dsJGCZB.Tables[0].Rows[i]["XLJGCZBLM_BJCLID"].ToString().Trim()); + } + } + if (dsJGCZB.Tables[0].Rows[i]["XLJGCZBLM_BJRCLCB"].ToString().Trim().Equals("Y")) + { + dicBJRCB.Add(dsJGCZB.Tables[0].Rows[i]["XLJGCZBLM_CLQDL"].ToString().Trim(), dsJGCZB.Tables[0].Rows[i]["XLJGCZBLM_CLQDL"].ToString().Trim()); + } + } + + + sSQL.Clear(); + sSQL.Add("select XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_XLBZID,XLXSCLQD_DYDJID,"); + foreach (string sCLQDL in dicCLHQ.Keys) + { + sSQL.Add(string.Format("XLXSCLQD_SL{0}*CLJG{0}*(1+XLXSCLQD_SHL{0}/100)*XLXSCLQD_CLJGBL{0}+", sCLQDL.Replace("第", "").Replace("列", ""))); + } + sSQL.Add("0 as WSCLCB, "); + foreach (string sCLQDL in dicCLHQ.Keys) + { + sSQL.Add(string.Format("XLXSCLQD_SL{0}*HSJG{0}*(1+XLXSCLQD_SHL{0}/100)*XLXSCLQD_CLJGBL{0}+", sCLQDL.Replace("第", "").Replace("列", ""))); + } + sSQL.Add("0 as CLCB, "); + + if (dicCLHQ.Keys.Count > 0) + { + //是否存在有材料用量、无材料价格的情况 + sSQL.Add("case "); + foreach (string sCLQDL in dicCLHQ.Keys) + { + if (dicBJRCB.ContainsKey(sCLQDL)) + continue; + sSQL.Add(string.Format(" when (XLXSCLQD_SL{0}>0 and HSJG{0}=0) then 'Y' ", sCLQDL.Replace("第", "").Replace("列", ""))); + } + sSQL.Add(" else 'N' end as JgIsZero "); + } + else + { + sSQL.Add(" 'N' as JgIsZero "); + } + + sSQL.Add("from XLXSCLQD "); + sSQL.Add(" left join"); + sSQL.Add(" ("); + sSQL.Add(" select JGCZBID,JGCZBBBID,"); + for (int i = 1; i < 80; i++) + { + sSQL.Add(string.Format(" sum(CLJG{0}) as CLJG{0},sum(HSJG{0}) as HSJG{0},", i.ToString().PadLeft(2, '0'))); + } + sSQL.Add(" sum(CLJG80) as CLJG80,sum(HSJG80) as HSJG80"); + sSQL.Add(" from"); + sSQL.Add(" ("); + sSQL.Add(" select XLJGCZBLM_JGCZBID as JGCZBID,XLJGCZBLM_JGCZBBBID as JGCZBBBID,"); + for (int i = 1; i < 80; i++) + { + sSQL.Add(string.Format(" case when XLJGCZBLM_CLQDL='{0}' then isnull(XLXSBJDCLHQ_WSJG,0.0) else 0.0 end * case when isnull(XLJGCZBLM_BJRCLCB,'N') = 'Y' then 0 else 1 end as CLJG{1},", "第" + i.ToString().PadLeft(2, '0') + "列", i.ToString().PadLeft(2, '0'))); + sSQL.Add(string.Format(" case when XLJGCZBLM_CLQDL='{0}' then isnull(XLXSBJDCLHQ_HSJG,0.0) else 0.0 end * case when isnull(XLJGCZBLM_BJRCLCB,'N') = 'Y' then 0 else 1 end as HSJG{1},", "第" + i.ToString().PadLeft(2, '0') + "列", i.ToString().PadLeft(2, '0'))); + } + sSQL.Add(" case when XLJGCZBLM_CLQDL='第80列' then isnull(XLXSBJDCLHQ_WSJG,0.0) else 0.0 end * case when isnull(XLJGCZBLM_BJRCLCB,'N') = 'Y' then 0 else 1 end as CLJG80,"); + sSQL.Add(" case when XLJGCZBLM_CLQDL='第80列' then isnull(XLXSBJDCLHQ_HSJG,0.0) else 0.0 end * case when isnull(XLJGCZBLM_BJRCLCB,'N') = 'Y' then 0 else 1 end as HSJG80 "); + sSQL.Add(" from XLJGCZBLM"); + if (!sJGBID1.Equals("")) + { + sSQL.Add(" left join ("); + sSQL.Add(" select j3.XLXSBJDCLHQ_BJCLID as XLXSBJDCLHQ_BJCLID,"); + sSQL.Add(" j3.XLXSBJDCLHQ_HSJG-j1.XLXSCLHQ_HSJG as XLXSBJDCLHQ_HSJG,j3.XLXSBJDCLHQ_WSJG-j1.XLXSCLHQ_WSJG as XLXSBJDCLHQ_WSJG"); + sSQL.Add(" from XLXSCLHQ j1,XLXSBJDCLHQ j3"); + sSQL.Add(" where j1.XLXSCLHQ_JGBID=:pJGBID1 and j3.XLXSBJDCLHQ_BJDID=:pBJDID"); + sSQL.Add(" and j1.XLXSCLHQ_BJCLID=j3.XLXSBJDCLHQ_BJCLID"); + sSQL.Add(" ) jj on XLXSBJDCLHQ_BJCLID=XLJGCZBLM_BJCLID"); + sSQL.ParamByName("pJGBID1").Value = sJGBID1; + } + else + { + sSQL.Add(" left join XLXSBJDCLHQ on XLXSBJDCLHQ_BJDID=:pBJDID and XLXSBJDCLHQ_BJCLID=XLJGCZBLM_BJCLID"); + } + sSQL.Add(" where XLJGCZBLM_JGCZBID=:pJGCZBID and XLJGCZBLM_JGCZBBBID=:pJGCZBBBID "); + sSQL.Add(" ) b"); + sSQL.Add(" group by JGCZBID,JGCZBBBID"); + sSQL.Add(" ) c on JGCZBID=XLXSCLQD_JGCZBID and JGCZBBBID=XLXSCLQD_JGCZBBBID "); + sSQL.Add("where XLXSCLQD_XLXHID=:pXLXHID and XLXSCLQD_XLGGID=:pXLGGID and XLXSCLQD_XLBZID=:pXLBZID and XLXSCLQD_DYDJID=:pDYDJID"); + sSQL.ParamByName("pBJDID").Value = sBJDID; + + sSQL.ParamByName("pXLXHID").Value = sXLXHID; + sSQL.ParamByName("pXLGGID").Value = sXLGGID; + sSQL.ParamByName("pXLBZID").Value = sXLBZID; + sSQL.ParamByName("pDYDJID").Value = sDYDJID.Trim().Equals("") ? " " : sDYDJID.Trim(); + + sSQL.ParamByName("pJGCZBID").Value = sJGCZBID; + sSQL.ParamByName("pJGCZBBBID").Value = sJGCZBBBID; + DataSet ds1 = dberp.OpenDataSet(sSQL); + if (ds1.Tables[0].Rows.Count > 0) + { + dCLCB1 = CMISproConvert.StrToFloat(ds1.Tables[0].Rows[0]["CLCB"].ToString()); + dWSCLCB1 = CMISproConvert.StrToFloat(ds1.Tables[0].Rows[0]["WSCLCB"].ToString()); + + if (ds1.Tables[0].Rows[0]["JgIsZero"].ToString().Trim().Equals("Y")) + JgIsZero = true; + } + + + + if (dicWLHQ.Keys.Count > 0) + { + string sSQL_1 = "select XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_XLBZID,XLXSCLQD_DYDJID,"; + string sSQL_2 = string.Empty; + string sSQL_3 = " 0 as WSCLCB,"; + string sSQL_4 = string.Empty; + string sSQL_5 = " 0 as CLCB, case "; + string sSQL_6 = string.Empty; + string sSQL_7 = " else 'N' end as JgIsZero from XLXSCLQD " + + " left join ( " + + " select XLXSCLQDWL_JGCZBID as JGCZBID,XLXSCLQDWL_JGCZBBBID as JGCZBBBID,XLXSCLQDWL_DRHH as DRHH, XLXSCLQDWL_JGCZBXH as JGCZBXH, "; + string sSQL_8 = string.Empty; + string sSQL_9 = " ' ' as MJBZ from XLXSCLQDWL "; + string sSQL_10 = string.Empty; + string sSQL_11 = " ) d on JGCZBID=XLXSCLQD_JGCZBID and JGCZBBBID= XLXSCLQD_JGCZBBBID and JGCZBXH= XLXSCLQD_JGCZBXH and DRHH=XLXSCLQD_DRHH " + + " where XLXSCLQD_XLXHID=:pXLXHID and XLXSCLQD_XLGGID=:pXLGGID and XLXSCLQD_XLBZID=:pXLBZID and XLXSCLQD_DYDJID=:pDYDJID"; + int count = 0;//拼接的栏目数量 + foreach (string sCLQDL in dicWLHQ.Keys) + { + if (dicBJRCB.ContainsKey(sCLQDL)) + { + count++; + continue; + } + sSQL_2 += string.Format("XLXSCLQD_SL{0}*(1+XLXSCLQD_SHL{0}/100)*XLXSCLQD_CLJGBL{0}*isnull(WSJG{0},0)+", sCLQDL.Replace("第", "").Replace("列", "")); + + sSQL_4 += string.Format("XLXSCLQD_SL{0}*(1+XLXSCLQD_SHL{0}/100)*XLXSCLQD_CLJGBL{0}*isnull(HSJG{0},0)+", sCLQDL.Replace("第", "").Replace("列", "")); + + sSQL_6 += string.Format(" when (XLXSCLQD_SL{0}>0 and isnull(HSJG{0},0)=0) then 'Y' ", sCLQDL.Replace("第", "").Replace("列", "")); + + sSQL_8 += string.Format(" isnull(c{0}.WSJG,0) as WSJG{0},isnull(c{0}.HSJG,0) as HSJG{0}, ", sCLQDL.Replace("第", "").Replace("列", "")); + + //关联XLXSWLHQ,获取物料行情 + + sSQL_10 += " left join"; + sSQL_10 += " ("; + sSQL_10 += " select XLXSBJCLWL_WLID,"; + if (!sJGBID1.Equals(""))//若sJGBID1不为空,则获取价差 + { + sSQL_10 += " case when isnull(XLXSBJDWLHQ_WLID,' ')=' ' then 0 else XLXSBJDWLHQ_WSJG-XLXSWLHQ_WSJG end as WSJG,"; + sSQL_10 += " case when isnull(XLXSBJDWLHQ_WLID,' ')=' ' then 0 else XLXSBJDWLHQ_HSJG-XLXSWLHQ_HSJG end as HSJG "; + } + else + { + sSQL_10 += " case when isnull(XLXSBJDWLHQ_WLID,' ')=' ' then XLXSWLHQ_WSJG else XLXSBJDWLHQ_WSJG end as WSJG,"; + sSQL_10 += " case when isnull(XLXSBJDWLHQ_WLID,' ')=' ' then XLXSWLHQ_HSJG else XLXSBJDWLHQ_HSJG end as HSJG "; + } + sSQL_10 += " from XLXSBJCLWL "; + sSQL_10 += string.Format("left join XLXSBJDWLHQ on XLXSBJDWLHQ_BJDID='{0}' and XLXSBJDWLHQ_WLID=XLXSBJCLWL_WLID", sBJDID);//关联XLXSBJDWLHQ,获取报价单物料行情 + sSQL_10 += " left join"; + sSQL_10 += " ("; + sSQL_10 += " select WLID,XLXSWLHQ_WSJG,XLXSWLHQ_HSJG"; + sSQL_10 += " from XLXSWLHQ,"; + sSQL_10 += " ("; + sSQL_10 += " select XLXSWLHQ_WLID as WLID,max(XLXSWLHQ_YXQS)as maxYXQS"; + sSQL_10 += " from XLXSWLHQ"; + sSQL_10 += " where XLXSWLHQ_JGBID=' '"; + sSQL_10 += " and XLXSWLHQ_YXQS<=:pRQ and (XLXSWLHQ_YXQZ>=:pRQ or XLXSWLHQ_YXQZ is null)"; + sSQL_10 += " group by XLXSWLHQ_WLID"; + sSQL_10 += string.Format(") a{0} ", sCLQDL.Replace("第", "").Replace("列", "")); + sSQL_10 += " where XLXSWLHQ_JGBID=' '"; + sSQL_10 += " and XLXSWLHQ_WLID=WLID"; + sSQL_10 += " and XLXSWLHQ_YXQS=maxYXQS"; + sSQL_10 += string.Format(") WLJGB{0} on WLJGB{0}.WLID=XLXSBJCLWL_WLID", sCLQDL.Replace("第", "").Replace("列", "")); + sSQL_10 += string.Format(") c{0} on c{0}.XLXSBJCLWL_WLID=XLXSCLQDWL_WLID{0} ", sCLQDL.Replace("第", "").Replace("列", "")); + + + count++; + if (count % 25 == 0 || count == dicWLHQ.Count) + { + sSQL.Clear(); + sSQL.Add(sSQL_1); + sSQL.Add(sSQL_2); + sSQL.Add(sSQL_3); + sSQL.Add(sSQL_4); + sSQL.Add(sSQL_5); + sSQL.Add(sSQL_6); + sSQL.Add(sSQL_7); + sSQL.Add(sSQL_8); + sSQL.Add(sSQL_9); + sSQL.Add(sSQL_10); + sSQL.Add(sSQL_11); + sSQL.ParamByName("pRQ").Value = sBJRQ; + sSQL.ParamByName("pXLXHID").Value = sXLXHID; + sSQL.ParamByName("pXLGGID").Value = sXLGGID; + sSQL.ParamByName("pXLBZID").Value = sXLBZID; + sSQL.ParamByName("pDYDJID").Value = sDYDJID.Trim().Equals("") ? " " : sDYDJID.Trim(); + DataSet ds2 = dberp.OpenDataSet(sSQL); + if (ds2.Tables[0].Rows.Count > 0) + { + dCLCB2 += CMISproConvert.StrToFloat(ds2.Tables[0].Rows[0]["CLCB"].ToString()); + dWSCLCB2 += CMISproConvert.StrToFloat(ds2.Tables[0].Rows[0]["WSCLCB"].ToString()); + if (ds2.Tables[0].Rows[0]["JgIsZero"].ToString().Trim().Equals("Y")) + JgIsZero = true; + } + sSQL_2 = string.Empty; + sSQL_4 = string.Empty; + sSQL_6 = string.Empty; + sSQL_8 = string.Empty; + sSQL_10 = string.Empty; + + } + + } + + } + + } + + Dictionary aryCLCB = new Dictionary(); + if (!sJGBID1.Equals(""))//若sJGBID1不为空,则不进行负数的校验,因为此时返回值代表的是两个价格表行情之差 + { + aryCLCB.Add("CLCB", dCLCB1 + dCLCB2); + aryCLCB.Add("WSCLCB", dWSCLCB1 + dWSCLCB2); + } + else + { + if (JgIsZero)//若存在有材料用量、无材料价格的情况,则算出的报价单行情料价改为负数显示 + { + aryCLCB.Add("CLCB", (dCLCB1 + dCLCB2) * -1); + aryCLCB.Add("WSCLCB", (dWSCLCB1 + dWSCLCB2) * -1); + } + else + { + aryCLCB.Add("CLCB", dCLCB1 + dCLCB2); + aryCLCB.Add("WSCLCB", dWSCLCB1 + dWSCLCB2); + } + } + return aryCLCB; + } + + //报价日行情 + public static Dictionary GetCLCB_BJRHQ(string sBJRQ, string sXLXHID, string sXLGGID, string sXLBZID, string sDYDJID) + { + double dCLCB1 = 0.0; + double dWSCLCB1 = 0.0; + double dCLCB2 = 0.0; + double dWSCLCB2 = 0.0; + bool JgIsZero = false;//是否存在有材料用量、无材料价格的情况 + + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sSQL = new TSQL(dberp); + sSQL.Clear(); + sSQL.Add("select XLXSCLQD_JGCZBID,XLXSCLQD_JGCZBBBID from XLXSCLQD where XLXSCLQD_XLXHID=:pXLXHID and XLXSCLQD_XLGGID=:pXLGGID and XLXSCLQD_XLBZID=:pXLBZID and XLXSCLQD_DYDJID=:pDYDJID"); + sSQL.Add(" and XLXSCLQD_WPID='ZZZZ'"); + sSQL.ParamByName("pXLXHID").Value = sXLXHID; + sSQL.ParamByName("pXLGGID").Value = sXLGGID; + sSQL.ParamByName("pXLBZID").Value = sXLBZID; + sSQL.ParamByName("pDYDJID").Value = sDYDJID.Trim().Equals("") ? " " : sDYDJID.Trim(); + DataSet dsQD = dberp.OpenDataSet(sSQL); + if (dsQD.Tables[0].Rows.Count > 0) + { + string sJGCZBID = dsQD.Tables[0].Rows[0]["XLXSCLQD_JGCZBID"].ToString().Trim(); + string sJGCZBBBID = dsQD.Tables[0].Rows[0]["XLXSCLQD_JGCZBBBID"].ToString().Trim(); + + sSQL.Clear(); + sSQL.Add("select XLJGCZBLM_CLQDL,XLJGCZBLM_BJCLID,XLXSBJCL_BJHQ,XLJGCZBML_CZBLX,isnull(XLJGCZBLM_BJRCLCB,'N') as XLJGCZBLM_BJRCLCB from XLJGCZBLM"); + sSQL.Add(" left join XLXSBJCL on XLXSBJCL_BJCLID=XLJGCZBLM_BJCLID"); + sSQL.Add(" left join XLJGCZBML on XLJGCZBML_JGCZBID=XLJGCZBLM_JGCZBID"); + sSQL.Add(" where XLJGCZBLM_JGCZBID=:pJGCZBID and XLJGCZBLM_JGCZBBBID=:pJGCZBBBID"); + sSQL.Add(" and isnull(XLJGCZBLM_CLQDL,' ')<>' '"); + sSQL.Add(" order by XLJGCZBLM_CLQDL"); + sSQL.ParamByName("pJGCZBID").Value = sJGCZBID; + sSQL.ParamByName("pJGCZBBBID").Value = sJGCZBBBID; + DataSet dsJGCZB = dberp.OpenDataSet(sSQL); + Dictionary dicCLHQ = new Dictionary(); + Dictionary dicWLHQ = new Dictionary(); + Dictionary dicBJRCB = new Dictionary(); + for (int i = 0; i < dsJGCZB.Tables[0].Rows.Count; i++) + { + //B类尺重表只支持材料行情报价 + if (dsJGCZB.Tables[0].Rows[i]["XLJGCZBML_CZBLX"].ToString().Trim().Equals("B")) + { + dicCLHQ.Add(dsJGCZB.Tables[0].Rows[i]["XLJGCZBLM_CLQDL"].ToString().Trim(), dsJGCZB.Tables[0].Rows[i]["XLJGCZBLM_BJCLID"].ToString().Trim()); + } + else//Z类A类C类 + { + if (dsJGCZB.Tables[0].Rows[i]["XLXSBJCL_BJHQ"].ToString().Trim().Equals("2")) + { + //2|物料行情 + dicWLHQ.Add(dsJGCZB.Tables[0].Rows[i]["XLJGCZBLM_CLQDL"].ToString().Trim(), dsJGCZB.Tables[0].Rows[i]["XLJGCZBLM_BJCLID"].ToString().Trim()); + } + else + { + //1|材料行情 + dicCLHQ.Add(dsJGCZB.Tables[0].Rows[i]["XLJGCZBLM_CLQDL"].ToString().Trim(), dsJGCZB.Tables[0].Rows[i]["XLJGCZBLM_BJCLID"].ToString().Trim()); + } + } + if (dsJGCZB.Tables[0].Rows[i]["XLJGCZBLM_BJRCLCB"].ToString().Trim().Equals("Y")) + { + dicBJRCB.Add(dsJGCZB.Tables[0].Rows[i]["XLJGCZBLM_CLQDL"].ToString().Trim(), dsJGCZB.Tables[0].Rows[i]["XLJGCZBLM_CLQDL"].ToString().Trim()); + } + } + + + sSQL.Clear(); + sSQL.Add("select XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_XLBZID,XLXSCLQD_DYDJID,"); + foreach (string sCLQDL in dicCLHQ.Keys) + { + sSQL.Add(string.Format("XLXSCLQD_SL{0}*CLJG{0}*(1+XLXSCLQD_SHL{0}/100)*XLXSCLQD_CLJGBL{0}+", sCLQDL.Replace("第", "").Replace("列", ""))); + } + sSQL.Add("0 as WSCLCB, "); + foreach (string sCLQDL in dicCLHQ.Keys) + { + sSQL.Add(string.Format("XLXSCLQD_SL{0}*HSJG{0}*(1+XLXSCLQD_SHL{0}/100)*XLXSCLQD_CLJGBL{0}+", sCLQDL.Replace("第", "").Replace("列", ""))); + } + sSQL.Add("0 as CLCB, "); + if (dicCLHQ.Keys.Count > 0) + { + //是否存在有材料用量、无材料价格的情况 + sSQL.Add("case "); + foreach (string sCLQDL in dicCLHQ.Keys) + { + if (dicBJRCB.ContainsKey(sCLQDL)) + continue; + sSQL.Add(string.Format(" when (XLXSCLQD_SL{0}>0 and HSJG{0}=0) then 'Y' ", sCLQDL.Replace("第", "").Replace("列", ""))); + } + sSQL.Add(" else 'N' end as JgIsZero "); + } + else + { + sSQL.Add(" 'N' as JgIsZero "); + } + + sSQL.Add("from XLXSCLQD "); + sSQL.Add(" left join"); + sSQL.Add(" ("); + sSQL.Add(" select JGCZBID,JGCZBBBID,"); + for (int i = 1; i < 80; i++) + { + sSQL.Add(string.Format(" sum(CLJG{0}) as CLJG{0},sum(HSJG{0}) as HSJG{0},", i.ToString().PadLeft(2, '0'))); + } + sSQL.Add(" sum(CLJG80) as CLJG80,sum(HSJG80) as HSJG80"); + sSQL.Add(" from"); + sSQL.Add(" ("); + sSQL.Add(" select XLJGCZBLM_JGCZBID as JGCZBID,XLJGCZBLM_JGCZBBBID as JGCZBBBID,"); + for (int i = 1; i < 80; i++) + { + sSQL.Add(string.Format(" case when XLJGCZBLM_CLQDL='{0}' then isnull(CLJG,0.0) else 0.0 end * case when isnull(XLJGCZBLM_BJRCLCB,'N') = 'Y' then 0 else 1 end as CLJG{1},", "第" + i.ToString().PadLeft(2, '0') + "列", i.ToString().PadLeft(2, '0'))); + sSQL.Add(string.Format(" case when XLJGCZBLM_CLQDL='{0}' then isnull(HSJG,0.0) else 0.0 end * case when isnull(XLJGCZBLM_BJRCLCB,'N') = 'Y' then 0 else 1 end as HSJG{1},", "第" + i.ToString().PadLeft(2, '0') + "列", i.ToString().PadLeft(2, '0'))); + } + sSQL.Add(" case when XLJGCZBLM_CLQDL='第80列' then isnull(CLJG,0.0) else 0.0 end * case when isnull(XLJGCZBLM_BJRCLCB,'N') = 'Y' then 0 else 1 end as CLJG80,"); + sSQL.Add(" case when XLJGCZBLM_CLQDL='第80列' then isnull(HSJG,0.0) else 0.0 end * case when isnull(XLJGCZBLM_BJRCLCB,'N') = 'Y' then 0 else 1 end as HSJG80 "); + sSQL.Add(" from XLJGCZBLM"); + sSQL.Add(" left join "); + sSQL.Add(" ("); + sSQL.Add(" select BJCLID,XLXSCLHQ_WSJG as CLJG,XLXSCLHQ_HSJG as HSJG"); + sSQL.Add(" from XLXSCLHQ,"); + sSQL.Add(" ("); + sSQL.Add(" select XLXSCLHQ_BJCLID as BJCLID,max(XLXSCLHQ_YXQS)as maxYXQS"); + sSQL.Add(" from XLXSCLHQ"); + sSQL.Add(" where XLXSCLHQ_JGBID='ZZZZZZZZ'"); + sSQL.Add(" and XLXSCLHQ_YXQS<=:pBJRQ and(XLXSCLHQ_YXQZ>=:pBJRQ or XLXSCLHQ_YXQZ is null)"); + sSQL.Add(" group by XLXSCLHQ_BJCLID"); + sSQL.Add(" ) a"); + sSQL.Add(" where XLXSCLHQ_JGBID='ZZZZZZZZ' "); + sSQL.Add(" and XLXSCLHQ_BJCLID=BJCLID"); + sSQL.Add(" and XLXSCLHQ_YXQS=maxYXQS"); + sSQL.Add(" ) JGB on JGB.BJCLID=XLJGCZBLM_BJCLID"); + sSQL.Add(" where XLJGCZBLM_JGCZBID=:pJGCZBID and XLJGCZBLM_JGCZBBBID=:pJGCZBBBID"); + sSQL.Add(" ) b"); + sSQL.Add(" group by JGCZBID,JGCZBBBID"); + sSQL.Add(" ) c on JGCZBID=XLXSCLQD_JGCZBID and JGCZBBBID= XLXSCLQD_JGCZBBBID "); + sSQL.Add("where XLXSCLQD_XLXHID=:pXLXHID and XLXSCLQD_XLGGID=:pXLGGID and XLXSCLQD_XLBZID=:pXLBZID and XLXSCLQD_DYDJID=:pDYDJID"); + sSQL.ParamByName("pBJRQ").Value = sBJRQ; + + sSQL.ParamByName("pXLXHID").Value = sXLXHID; + sSQL.ParamByName("pXLGGID").Value = sXLGGID; + sSQL.ParamByName("pXLBZID").Value = sXLBZID; + sSQL.ParamByName("pDYDJID").Value = sDYDJID.Trim().Equals("") ? " " : sDYDJID.Trim(); + + sSQL.ParamByName("pJGCZBID").Value = sJGCZBID; + sSQL.ParamByName("pJGCZBBBID").Value = sJGCZBBBID; + DataSet ds1 = dberp.OpenDataSet(sSQL); + if (ds1.Tables[0].Rows.Count > 0) + { + dCLCB1 = CMISproConvert.StrToFloat(ds1.Tables[0].Rows[0]["CLCB"].ToString()); + dWSCLCB1 = CMISproConvert.StrToFloat(ds1.Tables[0].Rows[0]["WSCLCB"].ToString()); + if (ds1.Tables[0].Rows[0]["JgIsZero"].ToString().Trim().Equals("Y")) + JgIsZero = true; + } + + + if (dicWLHQ.Keys.Count > 0) + { + string sSQL_1 = "select XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_XLBZID,XLXSCLQD_DYDJID,"; + string sSQL_2 = string.Empty; + string sSQL_3 = " 0 as WSCLCB,"; + string sSQL_4 = string.Empty; + string sSQL_5 = " 0 as CLCB, case "; + string sSQL_6 = string.Empty; + string sSQL_7 = " else 'N' end as JgIsZero from XLXSCLQD " + + " left join ( " + + " select XLXSCLQDWL_JGCZBID as JGCZBID,XLXSCLQDWL_JGCZBBBID as JGCZBBBID,XLXSCLQDWL_DRHH as DRHH, XLXSCLQDWL_JGCZBXH as JGCZBXH, "; + string sSQL_8 = string.Empty; + string sSQL_9 = " ' ' as MJBZ from XLXSCLQDWL "; + string sSQL_10 = string.Empty; + string sSQL_11 = " ) d on JGCZBID=XLXSCLQD_JGCZBID and JGCZBBBID= XLXSCLQD_JGCZBBBID and JGCZBXH= XLXSCLQD_JGCZBXH and DRHH=XLXSCLQD_DRHH " + + " where XLXSCLQD_XLXHID=:pXLXHID and XLXSCLQD_XLGGID=:pXLGGID and XLXSCLQD_XLBZID=:pXLBZID and XLXSCLQD_DYDJID=:pDYDJID"; + int count = 0;//拼接的栏目数量 + foreach (string sCLQDL in dicWLHQ.Keys) + { + if (dicBJRCB.ContainsKey(sCLQDL)) + { + count++; + continue; + } + sSQL_2 += string.Format("XLXSCLQD_SL{0}*(1+XLXSCLQD_SHL{0}/100)*XLXSCLQD_CLJGBL{0}*isnull(WSJG{0},0)+", sCLQDL.Replace("第", "").Replace("列", "")); + + sSQL_4 += string.Format("XLXSCLQD_SL{0}*(1+XLXSCLQD_SHL{0}/100)*XLXSCLQD_CLJGBL{0}*isnull(HSJG{0},0)+", sCLQDL.Replace("第", "").Replace("列", "")); + + sSQL_6 += string.Format(" when (XLXSCLQD_SL{0}>0 and isnull(HSJG{0},0)=0) then 'Y' ", sCLQDL.Replace("第", "").Replace("列", "")); + + sSQL_8 += string.Format(" isnull(c{0}.XLXSWLHQ_WSJG,0) as WSJG{0},isnull(c{0}.XLXSWLHQ_HSJG,0) as HSJG{0}, ", sCLQDL.Replace("第", "").Replace("列", "")); + + //关联XLXSWLHQ,获取物料行情 + + sSQL_10 += " left join"; + sSQL_10 += " ("; + sSQL_10 += " select XLXSWLHQ_WLID,XLXSWLHQ_WSJG,XLXSWLHQ_HSJG"; + sSQL_10 += " from XLXSWLHQ,"; + sSQL_10 += " ("; + sSQL_10 += " select XLXSWLHQ_WLID as WLID,max(XLXSWLHQ_YXQS)as maxYXQS"; + sSQL_10 += " from XLXSWLHQ"; + sSQL_10 += " where XLXSWLHQ_JGBID=' '"; + sSQL_10 += " and XLXSWLHQ_YXQS<=:pRQ and (XLXSWLHQ_YXQZ>=:pRQ or XLXSWLHQ_YXQZ is null)"; + sSQL_10 += " group by XLXSWLHQ_WLID"; + sSQL_10 += string.Format(") a{0} ", sCLQDL.Replace("第", "").Replace("列", "")); + sSQL_10 += " where XLXSWLHQ_JGBID=' ' and XLXSWLHQ_WLID=WLID and XLXSWLHQ_YXQS=maxYXQS"; + sSQL_10 += string.Format(") c{0} on c{0}.XLXSWLHQ_WLID=XLXSCLQDWL_WLID{0} ", sCLQDL.Replace("第", "").Replace("列", "")); + + + count++; + if (count % 25 == 0 || count == dicWLHQ.Count) + { + sSQL.Clear(); + sSQL.Add(sSQL_1); + sSQL.Add(sSQL_2); + sSQL.Add(sSQL_3); + sSQL.Add(sSQL_4); + sSQL.Add(sSQL_5); + sSQL.Add(sSQL_6); + sSQL.Add(sSQL_7); + sSQL.Add(sSQL_8); + sSQL.Add(sSQL_9); + sSQL.Add(sSQL_10); + sSQL.Add(sSQL_11); + sSQL.ParamByName("pRQ").Value = sBJRQ; + sSQL.ParamByName("pXLXHID").Value = sXLXHID; + sSQL.ParamByName("pXLGGID").Value = sXLGGID; + sSQL.ParamByName("pXLBZID").Value = sXLBZID; + sSQL.ParamByName("pDYDJID").Value = sDYDJID.Trim().Equals("") ? " " : sDYDJID.Trim(); + DataSet ds2 = dberp.OpenDataSet(sSQL); + if (ds2.Tables[0].Rows.Count > 0) + { + dCLCB2 += CMISproConvert.StrToFloat(ds2.Tables[0].Rows[0]["CLCB"].ToString()); + dWSCLCB2 += CMISproConvert.StrToFloat(ds2.Tables[0].Rows[0]["WSCLCB"].ToString()); + if (ds2.Tables[0].Rows[0]["JgIsZero"].ToString().Trim().Equals("Y")) + JgIsZero = true; + } + sSQL_2 = string.Empty; + sSQL_4 = string.Empty; + sSQL_6 = string.Empty; + sSQL_8 = string.Empty; + sSQL_10 = string.Empty; + + } + + } + + } + + } + + Dictionary aryCLCB = new Dictionary(); + aryCLCB.Add("CLCB", dCLCB1 + dCLCB2); + aryCLCB.Add("WSCLCB", dWSCLCB1 + dWSCLCB2); + if (JgIsZero) + aryCLCB.Add("JgIsZero", 1);//1代表真 + else + aryCLCB.Add("JgIsZero", 0);//0代表假 + return aryCLCB; + } + + //按“JGE|表价实时计算价格表”报价,用界面上的铜价、铝价代替相关材料的报价日行情 + public static Dictionary GetCLCB_JGE(string sBJRQ, string sXLXHID, string sXLGGID, string sXLBZID, string sDYDJID, string sTBJCLID, string sLBJCLID, string sTJ, string sLJ, bool bHSBZ, bool bExistBJDHQ, string sBJDID) + { + double dCLCB1 = 0.0; + double dCLCB2 = 0.0; + bool JgIsZero = false;//是否存在有材料用量、无材料价格的情况 + + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sSQL = new TSQL(dberp); + + if (!sBJDID.Equals("")) + { + sSQL.Clear(); + sSQL.Add(@"select XLXSBJXHML_CPMLID + from XLXSBJXHML + where (XLXSBJXHML_XLXHID=:pXLXHID and XLXSBJXHML_DYDJID=:pDYDJID) or (XLXSBJXHML_XLXHID=:pXLXHID and XLXSBJXHML_DYDJID=' ') + order by XLXSBJXHML_XLXHID,XLXSBJXHML_DYDJID desc"); + sSQL.ParamByName("pXLXHID").Value = sXLXHID; + sSQL.ParamByName("pDYDJID").Value = sDYDJID; + DataSet dsCPML = dberp.OpenDataSet(sSQL); + if (dsCPML.Tables[0].Rows.Count > 0) + { + string sCPMLID = dsCPML.Tables[0].Rows[0]["XLXSBJXHML_CPMLID"].ToString().Trim(); + if (!string.IsNullOrEmpty(sCPMLID)) + { + //查询报价分类产品目录 + sSQL.Clear(); + sSQL.Add(@"select XLXSCPML_CPMLIDS + from XLXSBJD + left join XLXSBJFL on XLXSBJD_BJFLID=XLXSBJFL_BJFLID + left join XLXSCPML on XLXSCPML_CPMLID=XLXSBJFL_CPMLID + where XLXSBJD_BJDID=:pBJDID and isnull(XLXSCPML_CPMLIDS,' ')<>' ' and ','||rtrim(ltrim(XLXSCPML_CPMLIDS))||',' not like :pCPMLID "); + sSQL.ParamByName("pBJDID").Value = sBJDID; + sSQL.ParamByName("pCPMLID").Value = "%," + sCPMLID + ",%"; + DataSet dsFLML = dberp.OpenDataSet(sSQL); + if (dsFLML.Tables[0].Rows.Count > 0) + { + Dictionary aryCLCBZero = new Dictionary(); + aryCLCBZero.Add("CLCB", dCLCB1 + dCLCB2); + aryCLCBZero.Add("JgIsZero", 0);//0代表假 + return aryCLCBZero; + } + } + } + } + + + sSQL.Clear(); + sSQL.Add("select XLXSCLQD_JGCZBID,XLXSCLQD_JGCZBBBID from XLXSCLQD where XLXSCLQD_XLXHID=:pXLXHID and XLXSCLQD_XLGGID=:pXLGGID and XLXSCLQD_XLBZID=:pXLBZID and XLXSCLQD_DYDJID=:pDYDJID"); + sSQL.Add(" and XLXSCLQD_WPID='ZZZZ'"); + sSQL.ParamByName("pXLXHID").Value = sXLXHID; + sSQL.ParamByName("pXLGGID").Value = sXLGGID; + sSQL.ParamByName("pXLBZID").Value = sXLBZID; + sSQL.ParamByName("pDYDJID").Value = sDYDJID.Trim().Equals("") ? " " : sDYDJID.Trim(); + DataSet dsQD = dberp.OpenDataSet(sSQL); + if (dsQD.Tables[0].Rows.Count > 0) + { + string sJGCZBID = dsQD.Tables[0].Rows[0]["XLXSCLQD_JGCZBID"].ToString().Trim(); + string sJGCZBBBID = dsQD.Tables[0].Rows[0]["XLXSCLQD_JGCZBBBID"].ToString().Trim(); + sSQL.Clear(); + sSQL.Add("select XLJGCZBLM_CLQDL,XLJGCZBLM_BJCLID,XLXSBJCL_BJHQ,XLJGCZBML_CZBLX,isnull(XLJGCZBLM_BJRCLCB,'N') as XLJGCZBLM_BJRCLCB from XLJGCZBLM"); + sSQL.Add(" left join XLXSBJCL on XLXSBJCL_BJCLID=XLJGCZBLM_BJCLID"); + sSQL.Add(" left join XLJGCZBML on XLJGCZBML_JGCZBID=XLJGCZBLM_JGCZBID"); + sSQL.Add(" where XLJGCZBLM_JGCZBID=:pJGCZBID and XLJGCZBLM_JGCZBBBID=:pJGCZBBBID"); + sSQL.Add(" and isnull(XLJGCZBLM_CLQDL,' ')<>' '"); + sSQL.Add(" order by XLJGCZBLM_CLQDL"); + sSQL.ParamByName("pJGCZBID").Value = sJGCZBID; + sSQL.ParamByName("pJGCZBBBID").Value = sJGCZBBBID; + DataSet dsJGCZB = dberp.OpenDataSet(sSQL); + Dictionary dicCLHQ = new Dictionary(); + Dictionary dicWLHQ = new Dictionary(); + Dictionary dicBJRCB = new Dictionary(); + for (int i = 0; i < dsJGCZB.Tables[0].Rows.Count; i++) + { + //B类尺重表只支持材料行情报价 + if (dsJGCZB.Tables[0].Rows[i]["XLJGCZBML_CZBLX"].ToString().Trim().Equals("B")) + { + dicCLHQ.Add(dsJGCZB.Tables[0].Rows[i]["XLJGCZBLM_CLQDL"].ToString().Trim(), dsJGCZB.Tables[0].Rows[i]["XLJGCZBLM_BJCLID"].ToString().Trim()); + } + else//Z类A类C类 + { + if (dsJGCZB.Tables[0].Rows[i]["XLXSBJCL_BJHQ"].ToString().Trim().Equals("2")) + { + //2|物料行情 + dicWLHQ.Add(dsJGCZB.Tables[0].Rows[i]["XLJGCZBLM_CLQDL"].ToString().Trim(), dsJGCZB.Tables[0].Rows[i]["XLJGCZBLM_BJCLID"].ToString().Trim()); + } + else + { + //1|材料行情 + dicCLHQ.Add(dsJGCZB.Tables[0].Rows[i]["XLJGCZBLM_CLQDL"].ToString().Trim(), dsJGCZB.Tables[0].Rows[i]["XLJGCZBLM_BJCLID"].ToString().Trim()); + } + } + if (dsJGCZB.Tables[0].Rows[i]["XLJGCZBLM_BJRCLCB"].ToString().Trim().Equals("Y")) + { + dicBJRCB.Add(dsJGCZB.Tables[0].Rows[i]["XLJGCZBLM_CLQDL"].ToString().Trim(), dsJGCZB.Tables[0].Rows[i]["XLJGCZBLM_CLQDL"].ToString().Trim()); + } + } + + + sSQL.Clear(); + sSQL.Add("select XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_XLBZID,XLXSCLQD_DYDJID,"); + foreach (string sCLQDL in dicCLHQ.Keys) + { + if (bHSBZ) + sSQL.Add(string.Format("XLXSCLQD_SL{0}*HSJG{0}*(1+XLXSCLQD_SHL{0}/100)*XLXSCLQD_CLJGBL{0}+", sCLQDL.Replace("第", "").Replace("列", ""))); + else + sSQL.Add(string.Format("XLXSCLQD_SL{0}*CLJG{0}*(1+XLXSCLQD_SHL{0}/100)*XLXSCLQD_CLJGBL{0}+", sCLQDL.Replace("第", "").Replace("列", ""))); + } + sSQL.Add("0 as CLCB, "); + if (dicCLHQ.Keys.Count > 0) + { + //是否存在有材料用量、无材料价格的情况 + sSQL.Add("case "); + foreach (string sCLQDL in dicCLHQ.Keys) + { + if (dicBJRCB.ContainsKey(sCLQDL)) + continue; + if (bHSBZ) + sSQL.Add(string.Format(" when (XLXSCLQD_SL{0}>0 and HSJG{0}=0) then 'Y' ", sCLQDL.Replace("第", "").Replace("列", ""))); + else + sSQL.Add(string.Format(" when (XLXSCLQD_SL{0}>0 and CLJG{0}=0) then 'Y' ", sCLQDL.Replace("第", "").Replace("列", ""))); + } + sSQL.Add(" else 'N' end as JgIsZero "); + } + else + { + sSQL.Add(" 'N' as JgIsZero "); + } + + sSQL.Add("from XLXSCLQD "); + sSQL.Add(" left join"); + sSQL.Add(" ("); + sSQL.Add(" select JGCZBID,JGCZBBBID,"); + for (int i = 1; i < 80; i++) + { + if (bHSBZ) + sSQL.Add(string.Format(" sum(HSJG{0}) as HSJG{0},", i.ToString().PadLeft(2, '0'))); + else + sSQL.Add(string.Format(" sum(CLJG{0}) as CLJG{0},", i.ToString().PadLeft(2, '0'))); + } + if (bHSBZ) + sSQL.Add(" sum(HSJG80) as HSJG80"); + else + sSQL.Add(" sum(CLJG80) as CLJG80"); + sSQL.Add(" from"); + sSQL.Add(" ("); + sSQL.Add(" select XLJGCZBLM_JGCZBID as JGCZBID,XLJGCZBLM_JGCZBBBID as JGCZBBBID,"); + for (int i = 1; i < 80; i++) + { + if (bHSBZ) + sSQL.Add(string.Format(" case when XLJGCZBLM_CLQDL='{0}' then isnull(HSJG,0.0) else 0.0 end * case when isnull(XLJGCZBLM_BJRCLCB,'N') = 'Y' then 0 else 1 end as HSJG{1},", "第" + i.ToString().PadLeft(2, '0') + "列", i.ToString().PadLeft(2, '0'))); + else + sSQL.Add(string.Format(" case when XLJGCZBLM_CLQDL='{0}' then isnull(CLJG,0.0) else 0.0 end * case when isnull(XLJGCZBLM_BJRCLCB,'N') = 'Y' then 0 else 1 end as CLJG{1},", "第" + i.ToString().PadLeft(2, '0') + "列", i.ToString().PadLeft(2, '0'))); + } + if (bHSBZ) + sSQL.Add(" case when XLJGCZBLM_CLQDL='第80列' then isnull(HSJG,0.0) else 0.0 end * case when isnull(XLJGCZBLM_BJRCLCB,'N') = 'Y' then 0 else 1 end as HSJG80 "); + else + sSQL.Add(" case when XLJGCZBLM_CLQDL='第80列' then isnull(CLJG,0.0) else 0.0 end * case when isnull(XLJGCZBLM_BJRCLCB,'N') = 'Y' then 0 else 1 end as CLJG80 "); + + sSQL.Add(" from XLJGCZBLM"); + if (bHSBZ) + { + if (bExistBJDHQ)//存在报价单行情 + { + sSQL.Add(" left join "); + sSQL.Add(" ("); + sSQL.Add(" select XLXSBJDCLHQ_BJCLID as BJCLID,"); + sSQL.Add(string.Format("case when isnull(XLXSBJDCLHQ_BJCLID,' ')<>' ' and XLXSBJDCLHQ_BJCLID='{0}' then {1}", sTBJCLID.Trim(), sTJ)); + sSQL.Add(string.Format(" when isnull(XLXSBJDCLHQ_BJCLID,' ')<>' ' and XLXSBJDCLHQ_BJCLID='{0}' then {1}", sLBJCLID.Trim(), sLJ)); + sSQL.Add(string.Format(" when isnull(XLXSBJDCLHQ_JGYBJCLID1,' ')<>' ' and XLXSBJDCLHQ_JGYBJCLID1='{0}' then {1}*XLXSBJDCLHQ_JGBL1+XLXSBJDCLHQ_HSJGF", sTBJCLID.Trim(), sTJ)); + sSQL.Add(string.Format(" when isnull(XLXSBJDCLHQ_JGYBJCLID1,' ')<>' ' and XLXSBJDCLHQ_JGYBJCLID1='{0}' then {1}*XLXSBJDCLHQ_JGBL1+XLXSBJDCLHQ_HSJGF", sLBJCLID.Trim(), sLJ)); + sSQL.Add(" else XLXSBJDCLHQ_HSJG end as HSJG "); + sSQL.Add(" from XLXSBJDCLHQ"); + //sSQL.Add(" left join XLXSBJCL on XLXSBJCL_BJCLID=XLXSBJDCLHQ_BJCLID"); + sSQL.Add(" where XLXSBJDCLHQ_BJDID=:pBJDID"); + sSQL.Add(" ) JGB on JGB.BJCLID=XLJGCZBLM_BJCLID"); + sSQL.ParamByName("pBJDID").Value = sBJDID; + } + else + { + sSQL.Add(" left join "); + sSQL.Add(" ("); + sSQL.Add(" select BJCLID,"); + sSQL.Add(string.Format("case when isnull(BJCLID,' ')<>' ' and BJCLID='{0}' then {1}", sTBJCLID.Trim(), sTJ)); + sSQL.Add(string.Format(" when isnull(BJCLID,' ')<>' ' and BJCLID='{0}' then {1}", sLBJCLID.Trim(), sLJ)); + sSQL.Add(string.Format(" when isnull(JGYBJCLID,' ')<>' ' and JGYBJCLID='{0}' then {1}*XLXSCLHQ_JGBL1+XLXSCLHQ_HSJGF", sTBJCLID.Trim(), sTJ)); + sSQL.Add(string.Format(" when isnull(JGYBJCLID,' ')<>' ' and JGYBJCLID='{0}' then {1}*XLXSCLHQ_JGBL1+XLXSCLHQ_HSJGF", sLBJCLID.Trim(), sLJ)); + sSQL.Add(" else XLXSCLHQ_HSJG end as HSJG "); + sSQL.Add(" from XLXSCLHQ,"); + sSQL.Add(" ("); + sSQL.Add(" select XLXSCLHQ_BJCLID as BJCLID,XLXSCLHQ_JGYBJCLID1 as JGYBJCLID,"); + sSQL.Add(" max(XLXSCLHQ_YXQS) as maxYXQS"); + sSQL.Add(" from XLXSCLHQ"); + //sSQL.Add(" left join XLXSBJCL on XLXSBJCL_BJCLID=XLXSCLHQ_BJCLID"); + sSQL.Add(" where XLXSCLHQ_JGBID='ZZZZZZZZ'"); + sSQL.Add(" and XLXSCLHQ_YXQS<=:pBJRQ and(XLXSCLHQ_YXQZ>=:pBJRQ or XLXSCLHQ_YXQZ is null)"); + sSQL.Add(" group by XLXSCLHQ_BJCLID,XLXSCLHQ_JGYBJCLID1 "); + sSQL.Add(" ) a"); + sSQL.Add(" where XLXSCLHQ_JGBID='ZZZZZZZZ'"); + sSQL.Add(" and XLXSCLHQ_BJCLID=BJCLID"); + sSQL.Add(" and XLXSCLHQ_YXQS=maxYXQS"); + sSQL.Add(" ) JGB on JGB.BJCLID=XLJGCZBLM_BJCLID"); + sSQL.ParamByName("pBJRQ").Value = sBJRQ; + } + } + else + { + if (bExistBJDHQ)//存在报价单行情 + { + sSQL.Add(" left join "); + sSQL.Add(" ("); + sSQL.Add(" select XLXSBJDCLHQ_BJCLID as BJCLID,"); + sSQL.Add(string.Format("case when isnull(XLXSBJDCLHQ_BJCLID,' ')<>' ' and XLXSBJDCLHQ_BJCLID='{0}' then {1}", sTBJCLID.Trim(), sTJ)); + sSQL.Add(string.Format(" when isnull(XLXSBJDCLHQ_BJCLID,' ')<>' ' and XLXSBJDCLHQ_BJCLID='{0}' then {1}", sLBJCLID.Trim(), sLJ)); + sSQL.Add(string.Format(" when isnull(XLXSBJDCLHQ_JGYBJCLID1,' ')<>' ' and XLXSBJDCLHQ_JGYBJCLID1='{0}' then {1}*XLXSBJDCLHQ_JGBL1+XLXSBJDCLHQ_WSJGF", sTBJCLID.Trim(), sTJ)); + sSQL.Add(string.Format(" when isnull(XLXSBJDCLHQ_JGYBJCLID1,' ')<>' ' and XLXSBJDCLHQ_JGYBJCLID1='{0}' then {1}*XLXSBJDCLHQ_JGBL1+XLXSBJDCLHQ_WSJGF", sLBJCLID.Trim(), sLJ)); + sSQL.Add(" else XLXSBJDCLHQ_WSJG end as CLJG "); + sSQL.Add(" from XLXSBJDCLHQ"); + //sSQL.Add(" left join XLXSBJCL on XLXSBJCL_BJCLID=XLXSBJDCLHQ_BJCLID"); + sSQL.Add(" where XLXSBJDCLHQ_BJDID=:pBJDID"); + sSQL.Add(" ) JGB on JGB.BJCLID=XLJGCZBLM_BJCLID"); + sSQL.ParamByName("pBJDID").Value = sBJDID; + } + else + { + sSQL.Add(" left join "); + sSQL.Add(" ("); + sSQL.Add(" select BJCLID,"); + sSQL.Add(string.Format("case when isnull(BJCLID,' ')<>' ' and BJCLID='{0}' then {1}", sTBJCLID.Trim(), sTJ)); + sSQL.Add(string.Format(" when isnull(BJCLID,' ')<>' ' and BJCLID='{0}' then {1}", sLBJCLID.Trim(), sLJ)); + sSQL.Add(string.Format(" when isnull(JGYBJCLID,' ')<>' ' and JGYBJCLID='{0}' then {1}*XLXSCLHQ_JGBL1+XLXSCLHQ_WSJGF", sTBJCLID.Trim(), sTJ)); + sSQL.Add(string.Format(" when isnull(JGYBJCLID,' ')<>' ' and JGYBJCLID='{0}' then {1}*XLXSCLHQ_JGBL1+XLXSCLHQ_WSJGF", sLBJCLID.Trim(), sLJ)); + sSQL.Add(" else XLXSCLHQ_WSJG end as CLJG "); + sSQL.Add(" from XLXSCLHQ,"); + sSQL.Add(" ("); + sSQL.Add(" select XLXSCLHQ_BJCLID as BJCLID,XLXSCLHQ_JGYBJCLID1 as JGYBJCLID,"); + sSQL.Add(" max(XLXSCLHQ_YXQS) as maxYXQS"); + sSQL.Add(" from XLXSCLHQ"); + // sSQL.Add(" left join XLXSBJCL on XLXSBJCL_BJCLID=XLXSCLHQ_BJCLID"); + sSQL.Add(" where XLXSCLHQ_JGBID='ZZZZZZZZ'"); + sSQL.Add(" and XLXSCLHQ_YXQS<=:pBJRQ and(XLXSCLHQ_YXQZ>=:pBJRQ or XLXSCLHQ_YXQZ is null)"); + sSQL.Add(" group by XLXSCLHQ_BJCLID,XLXSCLHQ_JGYBJCLID1 "); + sSQL.Add(" ) a"); + sSQL.Add(" where XLXSCLHQ_JGBID='ZZZZZZZZ'"); + sSQL.Add(" and XLXSCLHQ_BJCLID=BJCLID"); + sSQL.Add(" and XLXSCLHQ_YXQS=maxYXQS"); + sSQL.Add(" ) JGB on JGB.BJCLID=XLJGCZBLM_BJCLID"); + sSQL.ParamByName("pBJRQ").Value = sBJRQ; + } + } + sSQL.Add(" where XLJGCZBLM_JGCZBID=:pJGCZBID and XLJGCZBLM_JGCZBBBID=:pJGCZBBBID"); + sSQL.Add(" ) b"); + sSQL.Add(" group by JGCZBID,JGCZBBBID"); + sSQL.Add(" ) c on JGCZBID=XLXSCLQD_JGCZBID and JGCZBBBID= XLXSCLQD_JGCZBBBID "); + sSQL.Add("where XLXSCLQD_XLXHID=:pXLXHID and XLXSCLQD_XLGGID=:pXLGGID and XLXSCLQD_XLBZID=:pXLBZID and XLXSCLQD_DYDJID=:pDYDJID"); + + sSQL.ParamByName("pXLXHID").Value = sXLXHID; + sSQL.ParamByName("pXLGGID").Value = sXLGGID; + sSQL.ParamByName("pXLBZID").Value = sXLBZID; + sSQL.ParamByName("pDYDJID").Value = sDYDJID.Trim().Equals("") ? " " : sDYDJID.Trim(); + + sSQL.ParamByName("pJGCZBID").Value = sJGCZBID; + sSQL.ParamByName("pJGCZBBBID").Value = sJGCZBBBID; + DataSet ds1 = dberp.OpenDataSet(sSQL); + if (ds1.Tables[0].Rows.Count > 0) + { + dCLCB1 = CMISproConvert.StrToFloat(ds1.Tables[0].Rows[0]["CLCB"].ToString()); + if (ds1.Tables[0].Rows[0]["JgIsZero"].ToString().Trim().Equals("Y")) + JgIsZero = true; + } + + + if (dicWLHQ.Keys.Count > 0) + { + string sSQL_1 = " select XLXSCLQD_XLXHID,XLXSCLQD_XLGGID,XLXSCLQD_XLBZID,XLXSCLQD_DYDJID,"; + string sSQL_2 = string.Empty; + string sSQL_3 = " 0 as CLCB, case "; + string sSQL_4 = string.Empty; + string sSQL_5 = " else 'N' end as JgIsZero from XLXSCLQD " + + " left join (" + + " select XLXSCLQDWL_JGCZBID as JGCZBID,XLXSCLQDWL_JGCZBBBID as JGCZBBBID,XLXSCLQDWL_DRHH as DRHH, XLXSCLQDWL_JGCZBXH as JGCZBXH,"; + string sSQL_6 = string.Empty; + string sSQL_7 = " ' ' as MJBZ from XLXSCLQDWL "; + string sSQL_8 = string.Empty; + string sSQL_9 = " ) e on JGCZBID=XLXSCLQD_JGCZBID and JGCZBBBID=XLXSCLQD_JGCZBBBID and JGCZBXH=XLXSCLQD_JGCZBXH and DRHH=XLXSCLQD_DRHH " + + " where XLXSCLQD_XLXHID=:pXLXHID and XLXSCLQD_XLGGID=:pXLGGID and XLXSCLQD_XLBZID=:pXLBZID and XLXSCLQD_DYDJID=:pDYDJID "; + int count = 0;//拼接的栏目数量 + foreach (string sCLQDL in dicWLHQ.Keys) + { + if (dicBJRCB.ContainsKey(sCLQDL)) + { + count++; + continue; + } + if (bHSBZ) + sSQL_2 += string.Format("XLXSCLQD_SL{0}*(1+XLXSCLQD_SHL{0}/100)*XLXSCLQD_CLJGBL{0}*isnull(HSJG{0},0)+", sCLQDL.Replace("第", "").Replace("列", "")); + else + sSQL_2 += string.Format("XLXSCLQD_SL{0}*(1+XLXSCLQD_SHL{0}/100)*XLXSCLQD_CLJGBL{0}*isnull(WSJG{0},0)+", sCLQDL.Replace("第", "").Replace("列", "")); + + + //是否存在有物料用量、无物料价格的情况 + + + if (bHSBZ) + sSQL_4 += string.Format(" when (XLXSCLQD_SL{0}>0 and isnull(HSJG{0},0)=0) then 'Y' ", sCLQDL.Replace("第", "").Replace("列", "")); + else + sSQL_4 += string.Format(" when (XLXSCLQD_SL{0}>0 and isnull(WSJG{0},0)=0) then 'Y' ", sCLQDL.Replace("第", "").Replace("列", "")); + + if (bExistBJDHQ)//存在报价单材料行情,即认为也存在报价单物料行情 + { + + if (bHSBZ) + { + + sSQL_6 += string.Format("case when isnull(d{0}.XLXSBJDWLHQ_WLID,' ')<>' ' then isnull(d{0}.HSJG,0) else isnull(c{0}.HSJG,0) end as HSJG{0}, ", sCLQDL.Replace("第", "").Replace("列", "")); + + } + else + { + + sSQL_6 += string.Format("case when isnull(d{0}.XLXSBJDWLHQ_WLID,' ')<>' ' then isnull(d{0}.WSJG,0) else isnull(c{0}.WSJG,0) end as WSJG{0}, ", sCLQDL.Replace("第", "").Replace("列", "")); + + } + + } + else + { + + if (bHSBZ) + { + + sSQL_6 += string.Format("isnull(c{0}.HSJG,0) as HSJG{0}, ", sCLQDL.Replace("第", "").Replace("列", "")); + + } + else + { + + sSQL_6 += string.Format("isnull(c{0}.WSJG,0) as WSJG{0}, ", sCLQDL.Replace("第", "").Replace("列", "")); + + } + + } + if (bExistBJDHQ)//存在报价单材料行情,即认为也存在报价单物料行情 + { + //关联XLXSBJDWLHQ,获取报价单物料行情 + + sSQL_8 += " left join "; + sSQL_8 += " ("; + sSQL_8 += " select XLXSBJDWLHQ_WLID,"; + if (bHSBZ) + { + sSQL_8 += string.Format("case when isnull(XLXSBJDWLHQ_JGYBJCLID1,' ')<>' ' and XLXSBJDWLHQ_JGYBJCLID1='{0}' then {1}*XLXSBJDWLHQ_JGBL1+XLXSBJDWLHQ_HSJGF", sTBJCLID.Trim(), sTJ); + sSQL_8 += string.Format(" when isnull(XLXSBJDWLHQ_JGYBJCLID1,' ')<>' ' and XLXSBJDWLHQ_JGYBJCLID1='{0}' then {1}*XLXSBJDWLHQ_JGBL1+XLXSBJDWLHQ_HSJGF", sLBJCLID.Trim(), sLJ); + sSQL_8 += " else XLXSBJDWLHQ_HSJG end as HSJG "; + } + else + { + sSQL_8 += string.Format("case when isnull(XLXSBJDWLHQ_JGYBJCLID1,' ')<>' ' and XLXSBJDWLHQ_JGYBJCLID1='{0}' then {1}*XLXSBJDWLHQ_JGBL1+XLXSBJDWLHQ_WSJGF", sTBJCLID.Trim(), sTJ); + sSQL_8 += string.Format(" when isnull(XLXSBJDWLHQ_JGYBJCLID1,' ')<>' ' and XLXSBJDWLHQ_JGYBJCLID1='{0}' then {1}*XLXSBJDWLHQ_JGBL1+XLXSBJDWLHQ_WSJGF", sLBJCLID.Trim(), sLJ); + sSQL_8 += " else XLXSBJDWLHQ_WSJG end as WSJG "; + } + sSQL_8 += " from XLXSBJDWLHQ"; + sSQL_8 += " left join XLXSBJCLWL on XLXSBJCLWL_WLID=XLXSBJDWLHQ_WLID"; + sSQL_8 += " left join XLXSBJCL on XLXSBJCL_BJCLID=XLXSBJCLWL_BJCLID"; + sSQL_8 += string.Format(" where XLXSBJDWLHQ_BJDID='{0}'", sBJDID); + sSQL_8 += string.Format(") d{0} on d{0}.XLXSBJDWLHQ_WLID=XLXSCLQDWL_WLID{0} ", sCLQDL.Replace("第", "").Replace("列", "")); + + + //关联XLXSWLHQ,获取物料行情 + + sSQL_8 += " left join"; + sSQL_8 += " ("; + sSQL_8 += " select XLXSWLHQ_WLID as WLID,"; + if (bHSBZ) + { + sSQL_8 += string.Format("case when isnull(XLXSWLHQ_JGYBJCLID1,' ')<>' ' and XLXSWLHQ_JGYBJCLID1='{0}' then {1}*XLXSWLHQ_JGBL1+XLXSWLHQ_HSJGF", sTBJCLID.Trim(), sTJ); + sSQL_8 += string.Format(" when isnull(XLXSWLHQ_JGYBJCLID1,' ')<>' ' and XLXSWLHQ_JGYBJCLID1='{0}' then {1}*XLXSWLHQ_JGBL1+XLXSWLHQ_HSJGF", sLBJCLID.Trim(), sLJ); + sSQL_8 += " else XLXSWLHQ_HSJG end as HSJG "; + } + else + { + sSQL_8 += string.Format("case when isnull(XLXSWLHQ_JGYBJCLID1,' ')<>' ' and XLXSWLHQ_JGYBJCLID1='{0}' then {1}*XLXSWLHQ_JGBL1+XLXSWLHQ_WSJGF", sTBJCLID.Trim(), sTJ); + sSQL_8 += string.Format(" when isnull(XLXSWLHQ_JGYBJCLID1,' ')<>' ' and XLXSWLHQ_JGYBJCLID1='{0}' then {1}*XLXSWLHQ_JGBL1+XLXSWLHQ_WSJGF", sLBJCLID.Trim(), sLJ); + sSQL_8 += " else XLXSWLHQ_WSJG end as WSJG "; + } + sSQL_8 += " from XLXSWLHQ,"; + sSQL_8 += " ("; + sSQL_8 += " select XLXSWLHQ_WLID as WLID,max(XLXSWLHQ_YXQS)as maxYXQS"; + sSQL_8 += " from XLXSWLHQ"; + sSQL_8 += " where XLXSWLHQ_JGBID=' '"; + sSQL_8 += " and XLXSWLHQ_YXQS<=:pRQ and (XLXSWLHQ_YXQZ>=:pRQ or XLXSWLHQ_YXQZ is null)"; + sSQL_8 += " group by XLXSWLHQ_WLID"; + sSQL_8 += string.Format(") a{0} ", sCLQDL.Replace("第", "").Replace("列", "")); + sSQL_8 += " left join XLXSBJCLWL on XLXSBJCLWL_WLID=WLID";//20.09.22新增 + sSQL_8 += " left join XLXSBJCL on XLXSBJCL_BJCLID=XLXSBJCLWL_BJCLID";//20.09.22新增 + sSQL_8 += " where XLXSWLHQ_JGBID=' ' and XLXSWLHQ_WLID=WLID and XLXSWLHQ_YXQS=maxYXQS"; + sSQL_8 += string.Format(") c{0} on c{0}.WLID=XLXSCLQDWL_WLID{0} ", sCLQDL.Replace("第", "").Replace("列", "")); + + } + else + { + //关联XLXSWLHQ,获取物料行情 + + sSQL_8 += " left join"; + sSQL_8 += " ("; + sSQL_8 += " select XLXSWLHQ_WLID as WLID,"; + if (bHSBZ) + { + sSQL_8 += string.Format("case when isnull(XLXSWLHQ_JGYBJCLID1,' ')<>' ' and XLXSWLHQ_JGYBJCLID1='{0}' then {1}*XLXSWLHQ_JGBL1+XLXSWLHQ_HSJGF", sTBJCLID.Trim(), sTJ); + sSQL_8 += string.Format(" when isnull(XLXSWLHQ_JGYBJCLID1,' ')<>' ' and XLXSWLHQ_JGYBJCLID1='{0}' then {1}*XLXSWLHQ_JGBL1+XLXSWLHQ_HSJGF", sLBJCLID.Trim(), sLJ); + sSQL_8 += " else XLXSWLHQ_HSJG end as HSJG "; + } + else + { + sSQL_8 += string.Format("case when isnull(XLXSWLHQ_JGYBJCLID1,' ')<>' ' and XLXSWLHQ_JGYBJCLID1='{0}' then {1}*XLXSWLHQ_JGBL1+XLXSWLHQ_WSJGF", sTBJCLID.Trim(), sTJ); + sSQL_8 += string.Format(" when isnull(XLXSWLHQ_JGYBJCLID1,' ')<>' ' and XLXSWLHQ_JGYBJCLID1='{0}' then {1}*XLXSWLHQ_JGBL1+XLXSWLHQ_WSJGF", sLBJCLID.Trim(), sLJ); + sSQL_8 += " else XLXSWLHQ_WSJG end as WSJG "; + } + sSQL_8 += " from XLXSWLHQ,"; + sSQL_8 += " ("; + sSQL_8 += " select XLXSWLHQ_WLID as WLID,max(XLXSWLHQ_YXQS)as maxYXQS"; + sSQL_8 += " from XLXSWLHQ"; + sSQL_8 += " where XLXSWLHQ_JGBID=' '"; + sSQL_8 += " and XLXSWLHQ_YXQS<=:pRQ and (XLXSWLHQ_YXQZ>=:pRQ or XLXSWLHQ_YXQZ is null)"; + sSQL_8 += " group by XLXSWLHQ_WLID"; + sSQL_8 += string.Format(") a{0} ", sCLQDL.Replace("第", "").Replace("列", "")); + sSQL_8 += " left join XLXSBJCLWL on XLXSBJCLWL_WLID=WLID";//20.09.22新增 + sSQL_8 += " left join XLXSBJCL on XLXSBJCL_BJCLID=XLXSBJCLWL_BJCLID";//20.09.22新增 + sSQL_8 += " where XLXSWLHQ_JGBID=' ' and XLXSWLHQ_WLID=WLID and XLXSWLHQ_YXQS=maxYXQS"; + sSQL_8 += string.Format(") c{0} on c{0}.WLID=XLXSCLQDWL_WLID{0} ", sCLQDL.Replace("第", "").Replace("列", "")); + + } + count++; + if (count % 25 == 0 || count == dicWLHQ.Count) + { + sSQL.Clear(); + sSQL.Add(sSQL_1); + sSQL.Add(sSQL_2); + sSQL.Add(sSQL_3); + sSQL.Add(sSQL_4); + sSQL.Add(sSQL_5); + sSQL.Add(sSQL_6); + sSQL.Add(sSQL_7); + sSQL.Add(sSQL_8); + sSQL.Add(sSQL_9); + sSQL.ParamByName("pRQ").Value = sBJRQ; + sSQL.ParamByName("pXLXHID").Value = sXLXHID; + sSQL.ParamByName("pXLGGID").Value = sXLGGID; + sSQL.ParamByName("pXLBZID").Value = sXLBZID; + sSQL.ParamByName("pDYDJID").Value = sDYDJID.Trim().Equals("") ? " " : sDYDJID.Trim(); + DataSet ds2 = dberp.OpenDataSet(sSQL); + if (ds2.Tables[0].Rows.Count > 0) + { + dCLCB2 += CMISproConvert.StrToFloat(ds2.Tables[0].Rows[0]["CLCB"].ToString()); + if (ds2.Tables[0].Rows[0]["JgIsZero"].ToString().Trim().Equals("Y")) + JgIsZero = true; + } + sSQL_2 = string.Empty; + sSQL_4 = string.Empty; + sSQL_6 = string.Empty; + sSQL_8 = string.Empty; + + } + + } + } + + } + + Dictionary aryCLCB = new Dictionary(); + aryCLCB.Add("CLCB", dCLCB1 + dCLCB2); + if (JgIsZero) + aryCLCB.Add("JgIsZero", 1);//1代表真 + else + aryCLCB.Add("JgIsZero", 0);//0代表假 + return aryCLCB; + } + + public static Dictionary GetCLCB_JGE(string sBJRQ, string sXLXHID, string sXLGGID, string sXLBZID, string sDYDJID, string sTBJCLID, string sLBJCLID, string sTJ, string sLJ, bool bHSBZ, bool bExistBJDHQ, string sBJDID, string sBJFLID) + { + if (sBJDID.Equals("")) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sSQL = new TSQL(dberp); + sSQL.Clear(); + sSQL.Add(@"select XLXSBJXHML_CPMLID + from XLXSBJXHML + where (XLXSBJXHML_XLXHID=:pXLXHID and XLXSBJXHML_DYDJID=:pDYDJID) or (XLXSBJXHML_XLXHID=:pXLXHID and XLXSBJXHML_DYDJID=' ') + order by XLXSBJXHML_XLXHID,XLXSBJXHML_DYDJID desc"); + sSQL.ParamByName("pXLXHID").Value = sXLXHID; + sSQL.ParamByName("pDYDJID").Value = sDYDJID; + DataSet dsCPML = dberp.OpenDataSet(sSQL); + if (dsCPML.Tables[0].Rows.Count > 0) + { + string sCPMLID = dsCPML.Tables[0].Rows[0]["XLXSBJXHML_CPMLID"].ToString().Trim(); + if (!string.IsNullOrEmpty(sCPMLID)) + { + //查询报价分类产品目录 + sSQL.Clear(); + sSQL.Add(@"select XLXSCPML_CPMLIDS + from XLXSBJFL + left join XLXSCPML on XLXSCPML_CPMLID=XLXSBJFL_CPMLID + where XLXSBJFL_BJFLID=:pBJFLID and isnull(XLXSCPML_CPMLIDS,' ')<>' ' and ','||rtrim(ltrim(XLXSCPML_CPMLIDS))||',' not like :pCPMLID "); + sSQL.ParamByName("pBJFLID").Value = sBJFLID; + sSQL.ParamByName("pCPMLID").Value = "%," + sCPMLID + ",%"; + DataSet dsFLML = dberp.OpenDataSet(sSQL); + if (dsFLML.Tables[0].Rows.Count > 0) + { + Dictionary aryCLCBZero = new Dictionary(); + aryCLCBZero.Add("CLCB", 0); + aryCLCBZero.Add("JgIsZero", 0);//0代表假 + return aryCLCBZero; + } + } + } + } + return GetCLCB_JGE(sBJRQ, sXLXHID, sXLGGID, sXLBZID, sDYDJID, sTBJCLID, sLBJCLID, sTJ, sLJ, bHSBZ, bExistBJDHQ, sBJDID); + } + //计算价格表调价因素3在报价单上的材料价价差 + public static double GetCLCBC_JGBID3(string sJGBID3, string sJGBID1, string sJGBXH1, string sBJDID, string sTBJCLID, string sLBJCLID, string sTJ, string sLJ, bool bHSBZ, bool bExistBJDHQ, string sJSBLFS, int iXSWS) + { + double dCLCBC = 0.0; + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add("select XLXSJGBCLQD_JGCZBID,XLXSJGBCLQD_JGCZBBBID,XLXSJGBCLQD_JJFPSJ from XLXSJGBCLQD "); + SQL.Add(" where XLXSJGBCLQD_JGBID=:pJGBID1"); + SQL.Add(" and XLXSJGBCLQD_XH=:pJGBXH1"); + SQL.Add(" order by XLXSJGBCLQD_XH"); + SQL.ParamByName("pJGBID1").Value = sJGBID1; + SQL.ParamByName("pJGBXH1").Value = sJGBXH1; + DataSet dsJGCZB = dberp.OpenDataSet(SQL); + if (dsJGCZB.Tables[0].Rows.Count > 0) + { + string tmpJGCZBID = dsJGCZB.Tables[0].Rows[0]["XLXSJGBCLQD_JGCZBID"].ToString().Trim(); + string tmpJGCZBBBID = dsJGCZB.Tables[0].Rows[0]["XLXSJGBCLQD_JGCZBBBID"].ToString().Trim(); + string tmpJJFPSJ = dsJGCZB.Tables[0].Rows[0]["XLXSJGBCLQD_JJFPSJ"].ToString().Trim(); + string sCLQDL = ""; + + SQL.Clear(); + SQL.Add("select XLXSJGBYLLM_CLQDL,XLXSJGBYLLM_BJCLID,isnull(XLXSBJCL_BJHQ,'1') as XLXSBJCL_BJHQ from XLXSJGBYLLM"); + SQL.Add(" left join XLXSBJCL on XLXSBJCL_BJCLID=XLXSJGBYLLM_BJCLID"); + SQL.Add(" where XLXSJGBYLLM_JGBID=:pJGBID1"); + SQL.Add(" and XLXSJGBYLLM_JJFPSJ=:pJJFPSJ"); + SQL.Add(" and XLXSJGBYLLM_JGCZBID=:pJGCZBID"); + SQL.Add(" and XLXSJGBYLLM_JGCZBBBID=:pJGCZBBBID"); + SQL.Add(" order by XLXSJGBYLLM_CLQDL"); + SQL.ParamByName("pJGBID1").Value = sJGBID1; + SQL.ParamByName("pJJFPSJ").Value = tmpJJFPSJ; + SQL.ParamByName("pJGCZBID").Value = tmpJGCZBID; + SQL.ParamByName("pJGCZBBBID").Value = tmpJGCZBBBID; + DataSet dsCLQDL = dberp.OpenDataSet(SQL); + + + SQL.Clear(); + SQL.Add("select XLXSJGBCLQD_XH,"); + SQL.Add(" ("); + if (sJSBLFS.Equals("C1"))//C1|进一法(材料价各分项进一) + { + for (int i = 0; i < dsCLQDL.Tables[0].Rows.Count; i++) + { + sCLQDL = dsCLQDL.Tables[0].Rows[i]["XLXSJGBYLLM_CLQDL"].ToString().Trim(); + SQL.Add(string.Format("CEILING(RoundFix(XLXSJGBCLQD_ZL{0}*CLJG{0}*{1},8))/{1}+", sCLQDL.Replace("第", "").Replace("列", ""), Math.Pow(10.0, iXSWS))); + } + } + else + { + for (int i = 0; i < dsCLQDL.Tables[0].Rows.Count; i++) + { + sCLQDL = dsCLQDL.Tables[0].Rows[i]["XLXSJGBYLLM_CLQDL"].ToString().Trim(); + SQL.Add(string.Format("XLXSJGBCLQD_ZL{0}*CLJG{0}+", sCLQDL.Replace("第", "").Replace("列", ""))); + } + } + SQL.Add("0.0) as CLCBC "); + SQL.Add("from XLXSJGBCLQD "); + SQL.Add("left join ("); + SQL.Add(" select XLXSJGBYLLM_JGBID as JGBID, XLXSJGBYLLM_JJFPSJ as JJFPSJ, XLXSJGBYLLM_JGCZBID as JGCZBID, XLXSJGBYLLM_JGCZBBBID as JGCZBBBID,"); + for (int i = 0; i < dsCLQDL.Tables[0].Rows.Count; i++) + { + sCLQDL = dsCLQDL.Tables[0].Rows[i]["XLXSJGBYLLM_CLQDL"].ToString().Trim(); + //这里之所以能涵盖1|材料行情、2|物料行情,是因为因素3价格表和因素1价格表的物料行情不能随意改、且即使它们能发生变化也是因为期货铜价引起的,所以物料之间的价格差与细分之前的报价材料之间的价格差等同 + SQL.Add(string.Format(" sum(case when XLXSJGBYLLM_CLQDL='{0}' then isnull(CLJG,0.0) else 0.0 end) as CLJG{1},", sCLQDL, sCLQDL.Replace("第", "").Replace("列", ""))); + } + SQL.Add(" ' ' as MJBZ "); + SQL.Add(" from XLXSJGBYLLM "); + if (bExistBJDHQ)//存在报价单行情 + { + SQL.Add(" left join ("); + SQL.Add(" select j3.XLXSCLHQ_BJCLID as XLXSCLHQ_BJCLID,"); + if (bHSBZ) + SQL.Add(" case when isnull(XLXSBJDCLHQ_BJCLID,' ')=' ' then (j3.XLXSCLHQ_HSJG-j1.XLXSCLHQ_HSJG) else (XLXSBJDCLHQ_HSJG-j1.XLXSCLHQ_HSJG) end as CLJG "); + else + SQL.Add(" case when isnull(XLXSBJDCLHQ_BJCLID,' ')=' ' then (j3.XLXSCLHQ_WSJG-j1.XLXSCLHQ_WSJG) else (XLXSBJDCLHQ_WSJG-j1.XLXSCLHQ_WSJG) end as CLJG "); + SQL.Add(" from XLXSCLHQ j1,XLXSCLHQ j3"); + SQL.Add(" left join XLXSBJDCLHQ on XLXSBJDCLHQ_BJDID=:pBJDID and XLXSBJDCLHQ_BJCLID=j3.XLXSCLHQ_BJCLID"); + SQL.Add(" where j1.XLXSCLHQ_JGBID=:pJGBID1 and j3.XLXSCLHQ_JGBID=:pJGBID3"); + SQL.Add(" and j1.XLXSCLHQ_BJCLID=j3.XLXSCLHQ_BJCLID"); + SQL.Add(" ) jj on XLXSCLHQ_BJCLID=XLXSJGBYLLM_BJCLID"); + SQL.ParamByName("pBJDID").Value = sBJDID; + } + else + { + SQL.Add(" left join "); + SQL.Add(" ("); + SQL.Add(" select j3.XLXSCLHQ_BJCLID as XLXSCLHQ_BJCLID,"); + if (bHSBZ) + { + SQL.Add(string.Format("case when isnull(j3.XLXSCLHQ_BJCLID,' ')<>' ' and j3.XLXSCLHQ_BJCLID='{0}' then {1}-j1.XLXSCLHQ_HSJG", sTBJCLID.Trim(), sTJ)); + SQL.Add(string.Format(" when isnull(j3.XLXSCLHQ_BJCLID,' ')<>' ' and j3.XLXSCLHQ_BJCLID='{0}' then {1}-j1.XLXSCLHQ_HSJG", sLBJCLID.Trim(), sLJ)); + SQL.Add(string.Format(" when isnull(j3.XLXSCLHQ_JGYBJCLID1,' ')<>' ' and j3.XLXSCLHQ_JGYBJCLID1='{0}' then {1}*j3.XLXSCLHQ_JGBL1+j3.XLXSCLHQ_HSJGF-j1.XLXSCLHQ_HSJG", sTBJCLID.Trim(), sTJ)); + SQL.Add(string.Format(" when isnull(j3.XLXSCLHQ_JGYBJCLID1,' ')<>' ' and j3.XLXSCLHQ_JGYBJCLID1='{0}' then {1}*j3.XLXSCLHQ_JGBL1+j3.XLXSCLHQ_HSJGF-j1.XLXSCLHQ_HSJG", sLBJCLID.Trim(), sLJ)); + SQL.Add(" else j3.XLXSCLHQ_HSJG-j1.XLXSCLHQ_HSJG end as CLJG "); + } + else + { + SQL.Add(string.Format("case when isnull(j3.XLXSCLHQ_BJCLID,' ')<>' ' and j3.XLXSCLHQ_BJCLID='{0}' then {1}-j1.XLXSCLHQ_WSJG", sTBJCLID.Trim(), sTJ)); + SQL.Add(string.Format(" when isnull(j3.XLXSCLHQ_BJCLID,' ')<>' ' and j3.XLXSCLHQ_BJCLID='{0}' then {1}-j1.XLXSCLHQ_WSJG", sLBJCLID.Trim(), sLJ)); + SQL.Add(string.Format(" when isnull(j3.XLXSCLHQ_JGYBJCLID1,' ')<>' ' and j3.XLXSCLHQ_JGYBJCLID1='{0}' then {1}*j3.XLXSCLHQ_JGBL1+j3.XLXSCLHQ_WSJGF-j1.XLXSCLHQ_WSJG", sTBJCLID.Trim(), sTJ)); + SQL.Add(string.Format(" when isnull(j3.XLXSCLHQ_JGYBJCLID1,' ')<>' ' and j3.XLXSCLHQ_JGYBJCLID1='{0}' then {1}*j3.XLXSCLHQ_JGBL1+j3.XLXSCLHQ_WSJGF-j1.XLXSCLHQ_WSJG", sLBJCLID.Trim(), sLJ)); + SQL.Add(" else j3.XLXSCLHQ_WSJG-j1.XLXSCLHQ_WSJG end as CLJG "); + } + SQL.Add(" from XLXSCLHQ j1,XLXSCLHQ j3"); + SQL.Add(" left join XLXSBJCL on XLXSBJCL_BJCLID=j3.XLXSCLHQ_BJCLID"); + SQL.Add(" where j1.XLXSCLHQ_JGBID=:pJGBID1 and j3.XLXSCLHQ_JGBID=:pJGBID3"); + SQL.Add(" and j1.XLXSCLHQ_BJCLID=j3.XLXSCLHQ_BJCLID"); + SQL.Add(" ) jj on XLXSCLHQ_BJCLID=XLXSJGBYLLM_BJCLID"); + } + SQL.Add(" where XLXSJGBYLLM_JGBID=:pJGBID1"); + SQL.Add(" and XLXSJGBYLLM_JJFPSJ=:pJJFPSJ"); + SQL.Add(" and XLXSJGBYLLM_JGCZBID=:pJGCZBID"); + SQL.Add(" and XLXSJGBYLLM_JGCZBBBID=:pJGCZBBBID"); + SQL.Add(" group by XLXSJGBYLLM_JGBID,XLXSJGBYLLM_JJFPSJ,XLXSJGBYLLM_JGCZBID,XLXSJGBYLLM_JGCZBBBID"); + SQL.Add(") JGCZBCLHQ on JGBID=XLXSJGBCLQD_JGBID and JJFPSJ=XLXSJGBCLQD_JJFPSJ and JGCZBID=XLXSJGBCLQD_JGCZBID and JGCZBBBID=XLXSJGBCLQD_JGCZBBBID "); + SQL.Add("where XLXSJGBCLQD_JGBID=:pJGBID1 and XLXSJGBCLQD_XH=:pJGBXH1"); + SQL.ParamByName("pJGBID1").Value = sJGBID1; + SQL.ParamByName("pJGBXH1").Value = sJGBXH1; + SQL.ParamByName("pJGBID3").Value = sJGBID3; + SQL.ParamByName("pJJFPSJ").Value = tmpJJFPSJ; + SQL.ParamByName("pJGCZBID").Value = tmpJGCZBID; + SQL.ParamByName("pJGCZBBBID").Value = tmpJGCZBBBID; + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + dCLCBC = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["CLCBC"].ToString()); + } + + } + + return dCLCBC; + } + + //记录报价单日行情时,补充后添加的材料行情 + public static void InsertXLXSBJDCLHQ_WLHQ(TDatabase dberp, TSQL SQL, string sBJDHQLY, string sBJDID,string sBJRQ, bool bHSBZ, string sTBJCLID, string sLBJCLID, double fTJ, double fLJ, string sWHR, string sWHRID) + { + if (sBJDHQLY.Equals("2"))//报价单行情来源:2|报价日行情 + { + string sDecimal = BJCLPriceDecimal.ToString().Trim(); + + SQL.Clear(); + SQL.Add(" merge into XLXSBJDCLHQ tag "); + SQL.Add(" using ( "); + if (bHSBZ) + { + SQL.Add(" select :pBJDID as BJDID, BJCLID,"); + SQL.Add(string.Format("RoundFix(case when isnull(BJCLID,' ')<>' ' and BJCLID='{0}' then {1}/(1+ZZSL/100.0)", sTBJCLID, fTJ)); + SQL.Add(string.Format(" when isnull(BJCLID,' ')<>' ' and BJCLID='{0}' then {1}/(1+ZZSL/100.0)", sLBJCLID, fLJ)); + SQL.Add(string.Format(" when isnull(JGYBJCLID1,' ')<>' ' and JGYBJCLID1='{0}' then {1}/(1+ZZSL/100.0)*XLXSCLHQ_JGBL1+XLXSCLHQ_WSJGF", sTBJCLID, fTJ)); + SQL.Add(string.Format(" when isnull(JGYBJCLID1,' ')<>' ' and JGYBJCLID1='{0}' then {1}/(1+ZZSL/100.0)*XLXSCLHQ_JGBL1+XLXSCLHQ_WSJGF", sLBJCLID, fLJ)); + SQL.Add(" else XLXSCLHQ_WSJG end," + sDecimal + ") as CLJG,"); + + SQL.Add(string.Format("RoundFix(case when isnull(BJCLID,' ')<>' ' and BJCLID='{0}' then {1}", sTBJCLID, fTJ)); + SQL.Add(string.Format(" when isnull(BJCLID,' ')<>' ' and BJCLID='{0}' then {1}", sLBJCLID, fLJ)); + SQL.Add(string.Format(" when isnull(JGYBJCLID1,' ')<>' ' and JGYBJCLID1='{0}' then {1}*XLXSCLHQ_JGBL1+XLXSCLHQ_HSJGF", sTBJCLID, fTJ)); + SQL.Add(string.Format(" when isnull(JGYBJCLID1,' ')<>' ' and JGYBJCLID1='{0}' then {1}*XLXSCLHQ_JGBL1+XLXSCLHQ_HSJGF", sLBJCLID, fLJ)); + SQL.Add(" else XLXSCLHQ_HSJG end," + sDecimal + ") as HSJG, "); + SQL.Add(" XLXSCLHQ_WSJGF,XLXSCLHQ_HSJGF,"); + SQL.Add(" XLXSCLHQ_JGYBJCLID1,XLXSCLHQ_WSJG1,XLXSCLHQ_HSJG1,XLXSCLHQ_JGBL1 "); + SQL.Add(" from XLXSCLHQ,"); + SQL.Add(" ("); + SQL.Add(" select XLXSCLHQ_BJCLID as BJCLID,XLXSCLHQ_JGYBJCLID1 as JGYBJCLID1,XLXSBJCL_ZZSL as ZZSL,"); + SQL.Add(" max(XLXSCLHQ_YXQS) as maxYXQS"); + SQL.Add(" from XLXSCLHQ"); + SQL.Add(" left join XLXSBJCL on XLXSBJCL_BJCLID=XLXSCLHQ_BJCLID"); + SQL.Add(" where XLXSCLHQ_JGBID='ZZZZZZZZ' and isnull(XLXSBJCL_TYBZ,'N') <> 'Y' "); + SQL.Add(" and XLXSCLHQ_YXQS<=:pBJRQ and(XLXSCLHQ_YXQZ>=:pBJRQ or XLXSCLHQ_YXQZ is null) "); + SQL.Add(" group by XLXSCLHQ_BJCLID,XLXSCLHQ_JGYBJCLID1,XLXSBJCL_ZZSL"); + SQL.Add(" ) a"); + SQL.Add(" where XLXSCLHQ_JGBID='ZZZZZZZZ'"); + SQL.Add(" and XLXSCLHQ_BJCLID=BJCLID"); + SQL.Add(" and XLXSCLHQ_YXQS=maxYXQS"); + } + else + { + SQL.Add(" select :pBJDID as BJDID, BJCLID,"); + SQL.Add(string.Format("RoundFix(case when isnull(BJCLID,' ')<>' ' and BJCLID='{0}' then {1}", sTBJCLID, fTJ)); + SQL.Add(string.Format(" when isnull(BJCLID,' ')<>' ' and BJCLID='{0}' then {1}", sLBJCLID, fLJ)); + SQL.Add(string.Format(" when isnull(JGYBJCLID1,' ')<>' ' and JGYBJCLID1='{0}' then {1}*XLXSCLHQ_JGBL1+XLXSCLHQ_WSJGF", sTBJCLID, fTJ)); + SQL.Add(string.Format(" when isnull(JGYBJCLID1,' ')<>' ' and JGYBJCLID1='{0}' then {1}*XLXSCLHQ_JGBL1+XLXSCLHQ_WSJGF", sLBJCLID, fLJ)); + SQL.Add(" else XLXSCLHQ_WSJG end," + sDecimal + ") as CLJG, "); + + SQL.Add(string.Format("RoundFix(case when isnull(BJCLID,' ')<>' ' and BJCLID='{0}' then {1}*(1+ZZSL/100.0)", sTBJCLID, fTJ)); + SQL.Add(string.Format(" when isnull(BJCLID,' ')<>' ' and BJCLID='{0}' then {1}*(1+ZZSL/100.0)", sLBJCLID, fLJ)); + SQL.Add(string.Format(" when isnull(JGYBJCLID1,' ')<>' ' and JGYBJCLID1='{0}' then {1}*(1+ZZSL/100.0)*XLXSCLHQ_JGBL1+XLXSCLHQ_HSJGF", sTBJCLID, fTJ)); + SQL.Add(string.Format(" when isnull(JGYBJCLID1,' ')<>' ' and JGYBJCLID1='{0}' then {1}*(1+ZZSL/100.0)*XLXSCLHQ_JGBL1+XLXSCLHQ_HSJGF", sLBJCLID, fLJ)); + SQL.Add(" else XLXSCLHQ_HSJG end," + sDecimal + ") as HSJG, "); + SQL.Add(" XLXSCLHQ_WSJGF,XLXSCLHQ_HSJGF,"); + SQL.Add(" XLXSCLHQ_JGYBJCLID1,XLXSCLHQ_WSJG1,XLXSCLHQ_HSJG1,XLXSCLHQ_JGBL1 "); + SQL.Add(" from XLXSCLHQ,"); + SQL.Add(" ("); + SQL.Add(" select XLXSCLHQ_BJCLID as BJCLID,XLXSCLHQ_JGYBJCLID1 as JGYBJCLID1,XLXSBJCL_ZZSL as ZZSL,"); + SQL.Add(" max(XLXSCLHQ_YXQS) as maxYXQS"); + SQL.Add(" from XLXSCLHQ"); + SQL.Add(" left join XLXSBJCL on XLXSBJCL_BJCLID=XLXSCLHQ_BJCLID"); + SQL.Add(" where XLXSCLHQ_JGBID='ZZZZZZZZ' and isnull(XLXSBJCL_TYBZ,'N') <> 'Y' "); + SQL.Add(" and XLXSCLHQ_YXQS<=:pBJRQ and(XLXSCLHQ_YXQZ>=:pBJRQ or XLXSCLHQ_YXQZ is null) "); + SQL.Add(" group by XLXSCLHQ_BJCLID,XLXSCLHQ_JGYBJCLID1,XLXSBJCL_ZZSL"); + SQL.Add(" ) a"); + SQL.Add(" where XLXSCLHQ_JGBID='ZZZZZZZZ'"); + SQL.Add(" and XLXSCLHQ_BJCLID=BJCLID"); + SQL.Add(" and XLXSCLHQ_YXQS=maxYXQS"); + } + SQL.Add(" ) sor "); + SQL.Add(" on ( tag.XLXSBJDCLHQ_BJDID = :pBJDID and tag.XLXSBJDCLHQ_BJCLID = sor.BJCLID ) "); + SQL.Add(" when not matched then "); + SQL.Add(" insert (XLXSBJDCLHQ_BJDID,XLXSBJDCLHQ_BJCLID,XLXSBJDCLHQ_WSJG,XLXSBJDCLHQ_HSJG,XLXSBJDCLHQ_WSJGF,XLXSBJDCLHQ_HSJGF,"); + SQL.Add(" XLXSBJDCLHQ_JGYBJCLID1,XLXSBJDCLHQ_WSJG1,XLXSBJDCLHQ_HSJG1,XLXSBJDCLHQ_JGBL1,XLXSBJDCLHQ_WHR,XLXSBJDCLHQ_WHRID,XLXSBJDCLHQ_WHSJ)"); + SQL.Add(" values (sor.BJDID,sor.BJCLID,sor.CLJG,sor.HSJG,sor.XLXSCLHQ_WSJGF,sor.XLXSCLHQ_HSJGF,"); + SQL.Add(" sor.XLXSCLHQ_JGYBJCLID1,sor.XLXSCLHQ_WSJG1,sor.XLXSCLHQ_HSJG1,sor.XLXSCLHQ_JGBL1,"); + SQL.Add(" :pWHR,:pWHRID,:pWHSJ) "); + SQL.ParamByName("pBJRQ").Value = sBJRQ; + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pWHR").Value = sWHR; + SQL.ParamByName("pWHRID").Value = sWHRID; + SQL.ParamByName("pWHSJ").Value = DateTime.Now; + dberp.ExecSQL(SQL); + + InsertXLXSBJDWLHQbyBJDCLHQ(dberp, SQL, sBJDID,sBJRQ, sWHR, sWHRID); + } + } + + //记录报价单日行情时,补充后添加的物料行情 + public static void InsertXLXSBJDWLHQbyBJDCLHQ(TDatabase dberp, TSQL SQL, string sBJDID,string sBJRQ, string sWHR, string sWHRID) + { + SQL.Clear(); + SQL.Add("merge into XLXSBJDWLHQ "); + SQL.Add("using "); + SQL.Add("( "); + SQL.Add("select :pBJDID as BJDID,XLXSBJCLWL_WLID as WLID, "); + SQL.Add("case when XLXSBJDCLHQ_BJCLID is null then isnull(XLXSWLHQ_WSJG,0) else isnull(XLXSBJDCLHQ_WSJG*XLXSWLHQ_JGBL1,0)+isnull(XLXSWLHQ_WSJGF,0) end as WSJG, "); + SQL.Add("case when XLXSBJDCLHQ_BJCLID is null then isnull(XLXSWLHQ_HSJG,0) else isnull(XLXSBJDCLHQ_HSJG*XLXSWLHQ_JGBL1,0)+isnull(XLXSWLHQ_HSJGF,0) end as HSJG, "); + SQL.Add("isnull(XLXSWLHQ_WSJGF,0) as WSJGF,isnull(XLXSWLHQ_HSJGF,0) as HSJGF, "); + SQL.Add("isnull(XLXSBJDCLHQ_WSJG,0) as WSJG1,isnull(XLXSBJDCLHQ_HSJG,0) as HSJG1,isnull(XLXSWLHQ_JGBL1,0) as JGBL1,isnull(XLXSWLHQ_JGYBJCLID1,' ') as JGYBJCLID1 "); + SQL.Add("from XLXSBJCLWL "); + SQL.Add("left join "); + SQL.Add(" (select XLXSWLHQ_WLID,XLXSWLHQ_WSJG,XLXSWLHQ_HSJG,XLXSWLHQ_WSJGF,XLXSWLHQ_HSJGF,"); + SQL.Add(" XLXSWLHQ_JGYBJCLID1,XLXSWLHQ_WSJG1,XLXSWLHQ_HSJG1,XLXSWLHQ_JGBL1 "); + SQL.Add(" from XLXSWLHQ,"); + SQL.Add(" ("); + SQL.Add(" select XLXSWLHQ_WLID as WLID,max(XLXSWLHQ_YXQS) as maxYXQS"); + SQL.Add(" from XLXSWLHQ"); + SQL.Add(" where XLXSWLHQ_JGBID=' '"); + SQL.Add(" and XLXSWLHQ_YXQS<=:pBJRQ and(XLXSWLHQ_YXQZ>=:pBJRQ or XLXSWLHQ_YXQZ is null)"); + SQL.Add(" group by XLXSWLHQ_WLID"); + SQL.Add(" ) a "); + SQL.Add(" where XLXSWLHQ_JGBID=' ' "); + SQL.Add(" and XLXSWLHQ_WLID=WLID "); + SQL.Add(" and XLXSWLHQ_YXQS=maxYXQS "); + SQL.Add(" ) c on XLXSWLHQ_WLID=XLXSBJCLWL_WLID "); + SQL.Add("left join XLXSBJCL on XLXSBJCL_BJCLID=XLXSBJCLWL_BJCLID "); + SQL.Add("left join XLXSBJDCLHQ on XLXSBJDCLHQ_BJDID=:pBJDID and XLXSBJDCLHQ_BJCLID=XLXSBJCL_JGYBJCLID "); + SQL.Add("where XLXSBJCL_BJHQ = '2' and isnull(XLXSBJCL_JGYBJCLID,' ') <> ' ' ");//只有存在加工原料的物料才记! + SQL.Add(") B on (XLXSBJDWLHQ_BJDID=B.BJDID and XLXSBJDWLHQ_WLID=B.WLID) "); + SQL.Add("when not matched then "); + SQL.Add("insert (XLXSBJDWLHQ_BJDID,XLXSBJDWLHQ_WLID,XLXSBJDWLHQ_WSJG,XLXSBJDWLHQ_HSJG,XLXSBJDWLHQ_WSJGF,XLXSBJDWLHQ_HSJGF,"); + SQL.Add("XLXSBJDWLHQ_JGYBJCLID1,XLXSBJDWLHQ_WSJG1,XLXSBJDWLHQ_HSJG1,XLXSBJDWLHQ_JGBL1,"); + SQL.Add("XLXSBJDWLHQ_WHR,XLXSBJDWLHQ_WHRID,XLXSBJDWLHQ_WHSJ) "); + SQL.Add("values (B.BJDID,B.WLID,B.WSJG,B.HSJG,B.WSJGF,B.HSJGF,"); + SQL.Add("B.JGYBJCLID1,B.WSJG1,B.HSJG1,B.JGBL1,"); + SQL.Add(":pWHR,:pWHRID,:pWHSJ) "); + SQL.ParamByName("pBJRQ").Value = sBJRQ; + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pWHR").Value = sWHR; + SQL.ParamByName("pWHRID").Value = sWHRID; + SQL.ParamByName("pWHSJ").Value = DateTime.Now; + dberp.ExecSQL(SQL); + } + public static void InsertXLXSBJDCLHQ_WLHQ(TDatabase dberp, TSQL SQL, string sBJDHQLY, string sBJDID, string sBJRQ, bool bHSBZ, string sTBJCLID, string sLBJCLID, double fTJ, double fLJ, string sWHR, string sWHRID, + string sJGBID) + { + string sDecimal = BJCLPriceDecimal.ToString().Trim(); + SQL.Clear(); + SQL.Add("delete from XLXSBJDCLHQ where XLXSBJDCLHQ_BJDID=:pBJDID"); + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + //SQL.Clear(); + //SQL.Add("delete from XLXSBJDWLHQ where XLXSBJDWLHQ_BJDID=:pBJDID"); + //SQL.ParamByName("pBJDID").Value = sBJDID; + //dberp.ExecSQL(SQL); + + if (sBJDHQLY.Equals("2"))//报价单行情来源:2|报价日行情 + { + SQL.Clear(); + SQL.Add("insert into XLXSBJDCLHQ(XLXSBJDCLHQ_BJDID,XLXSBJDCLHQ_BJCLID,XLXSBJDCLHQ_WSJG,XLXSBJDCLHQ_HSJG,XLXSBJDCLHQ_WSJGF,XLXSBJDCLHQ_HSJGF,"); + SQL.Add(" XLXSBJDCLHQ_JGYBJCLID1,XLXSBJDCLHQ_WSJG1,XLXSBJDCLHQ_HSJG1,XLXSBJDCLHQ_JGBL1, "); + SQL.Add(" XLXSBJDCLHQ_WHR,XLXSBJDCLHQ_WHRID,XLXSBJDCLHQ_WHSJ)"); + if (bHSBZ) + { + SQL.Add(" select :pBJDID, BJCLID,"); + SQL.Add(string.Format("RoundFix(case when isnull(BJCLID,' ')<>' ' and BJCLID='{0}' then {1}/(1+ZZSL/100.0)", sTBJCLID, fTJ)); + SQL.Add(string.Format(" when isnull(BJCLID,' ')<>' ' and BJCLID='{0}' then {1}/(1+ZZSL/100.0)", sLBJCLID, fLJ)); + SQL.Add(string.Format(" when isnull(JGYBJCLID1,' ')<>' ' and JGYBJCLID1='{0}' then {1}/(1+ZZSL/100.0)*XLXSCLHQ_JGBL1+XLXSCLHQ_WSJGF", sTBJCLID, fTJ)); + SQL.Add(string.Format(" when isnull(JGYBJCLID1,' ')<>' ' and JGYBJCLID1='{0}' then {1}/(1+ZZSL/100.0)*XLXSCLHQ_JGBL1+XLXSCLHQ_WSJGF", sLBJCLID, fLJ)); + SQL.Add(" else XLXSCLHQ_WSJG end," + sDecimal + ") as CLJG,"); + + SQL.Add(string.Format("RoundFix(case when isnull(BJCLID,' ')<>' ' and BJCLID='{0}' then {1}", sTBJCLID, fTJ)); + SQL.Add(string.Format(" when isnull(BJCLID,' ')<>' ' and BJCLID='{0}' then {1}", sLBJCLID, fLJ)); + SQL.Add(string.Format(" when isnull(JGYBJCLID1,' ')<>' ' and JGYBJCLID1='{0}' then {1}*XLXSCLHQ_JGBL1+XLXSCLHQ_HSJGF", sTBJCLID, fTJ)); + SQL.Add(string.Format(" when isnull(JGYBJCLID1,' ')<>' ' and JGYBJCLID1='{0}' then {1}*XLXSCLHQ_JGBL1+XLXSCLHQ_HSJGF", sLBJCLID, fLJ)); + SQL.Add(" else XLXSCLHQ_HSJG end," + sDecimal + ") as HSJG, "); + SQL.Add(" XLXSCLHQ_WSJGF,XLXSCLHQ_HSJGF,"); + SQL.Add(" XLXSCLHQ_JGYBJCLID1,XLXSCLHQ_WSJG1,XLXSCLHQ_HSJG1,XLXSCLHQ_JGBL1, "); + SQL.Add(" :pWHR,:pWHRID,:pWHSJ"); + SQL.Add(" from XLXSCLHQ,"); + SQL.Add(" ("); + SQL.Add(" select XLXSCLHQ_BJCLID as BJCLID,XLXSCLHQ_JGYBJCLID1 as JGYBJCLID1,XLXSBJCL_ZZSL as ZZSL,"); + SQL.Add(" max(XLXSCLHQ_YXQS) as maxYXQS"); + SQL.Add(" from XLXSCLHQ"); + SQL.Add(" left join XLXSBJCL on XLXSBJCL_BJCLID=XLXSCLHQ_BJCLID"); + SQL.Add(" where XLXSCLHQ_JGBID='ZZZZZZZZ'"); + SQL.Add(" and XLXSCLHQ_YXQS<=:pBJRQ and(XLXSCLHQ_YXQZ>=:pBJRQ or XLXSCLHQ_YXQZ is null) and isnull(XLXSBJCL_TYBZ,'N') <> 'Y' "); + SQL.Add(" group by XLXSCLHQ_BJCLID,XLXSCLHQ_JGYBJCLID1,XLXSBJCL_ZZSL"); + SQL.Add(" ) a"); + SQL.Add(" where XLXSCLHQ_JGBID='ZZZZZZZZ'"); + SQL.Add(" and XLXSCLHQ_BJCLID=BJCLID"); + SQL.Add(" and XLXSCLHQ_YXQS=maxYXQS"); + } + else + { + SQL.Add(" select :pBJDID, BJCLID,"); + SQL.Add(string.Format("RoundFix(case when isnull(BJCLID,' ')<>' ' and BJCLID='{0}' then {1}", sTBJCLID, fTJ)); + SQL.Add(string.Format(" when isnull(BJCLID,' ')<>' ' and BJCLID='{0}' then {1}", sLBJCLID, fLJ)); + SQL.Add(string.Format(" when isnull(JGYBJCLID1,' ')<>' ' and JGYBJCLID1='{0}' then {1}*XLXSCLHQ_JGBL1+XLXSCLHQ_WSJGF", sTBJCLID, fTJ)); + SQL.Add(string.Format(" when isnull(JGYBJCLID1,' ')<>' ' and JGYBJCLID1='{0}' then {1}*XLXSCLHQ_JGBL1+XLXSCLHQ_WSJGF", sLBJCLID, fLJ)); + SQL.Add(" else XLXSCLHQ_WSJG end," + sDecimal + ") as CLJG, "); + + SQL.Add(string.Format("RoundFix(case when isnull(BJCLID,' ')<>' ' and BJCLID='{0}' then {1}*(1+ZZSL/100.0)", sTBJCLID, fTJ)); + SQL.Add(string.Format(" when isnull(BJCLID,' ')<>' ' and BJCLID='{0}' then {1}*(1+ZZSL/100.0)", sLBJCLID, fLJ)); + SQL.Add(string.Format(" when isnull(JGYBJCLID1,' ')<>' ' and JGYBJCLID1='{0}' then {1}*(1+ZZSL/100.0)*XLXSCLHQ_JGBL1+XLXSCLHQ_HSJGF", sTBJCLID, fTJ)); + SQL.Add(string.Format(" when isnull(JGYBJCLID1,' ')<>' ' and JGYBJCLID1='{0}' then {1}*(1+ZZSL/100.0)*XLXSCLHQ_JGBL1+XLXSCLHQ_HSJGF", sLBJCLID, fLJ)); + SQL.Add(" else XLXSCLHQ_HSJG end," + sDecimal + ") as HSJG, "); + SQL.Add(" XLXSCLHQ_WSJGF,XLXSCLHQ_HSJGF,"); + SQL.Add(" XLXSCLHQ_JGYBJCLID1,XLXSCLHQ_WSJG1,XLXSCLHQ_HSJG1,XLXSCLHQ_JGBL1,"); + SQL.Add(" :pWHR,:pWHRID,:pWHSJ"); + SQL.Add(" from XLXSCLHQ,"); + SQL.Add(" ("); + SQL.Add(" select XLXSCLHQ_BJCLID as BJCLID,XLXSCLHQ_JGYBJCLID1 as JGYBJCLID1,XLXSBJCL_ZZSL as ZZSL,"); + SQL.Add(" max(XLXSCLHQ_YXQS) as maxYXQS"); + SQL.Add(" from XLXSCLHQ"); + SQL.Add(" left join XLXSBJCL on XLXSBJCL_BJCLID=XLXSCLHQ_BJCLID"); + SQL.Add(" where XLXSCLHQ_JGBID='ZZZZZZZZ'"); + SQL.Add(" and XLXSCLHQ_YXQS<=:pBJRQ and(XLXSCLHQ_YXQZ>=:pBJRQ or XLXSCLHQ_YXQZ is null) and isnull(XLXSBJCL_TYBZ,'N') <> 'Y' "); + SQL.Add(" group by XLXSCLHQ_BJCLID,XLXSCLHQ_JGYBJCLID1,XLXSBJCL_ZZSL"); + SQL.Add(" ) a"); + SQL.Add(" where XLXSCLHQ_JGBID='ZZZZZZZZ'"); + SQL.Add(" and XLXSCLHQ_BJCLID=BJCLID"); + SQL.Add(" and XLXSCLHQ_YXQS=maxYXQS"); + } + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pBJRQ").Value = sBJRQ; + SQL.ParamByName("pWHR").Value = sWHR; + SQL.ParamByName("pWHRID").Value = sWHRID; + SQL.ParamByName("pWHSJ").Value = DateTime.Now; + dberp.ExecSQL(SQL); + } + else//报价单行情来源:1|价格表行情 + { + SQL.Clear(); + SQL.Add("insert into XLXSBJDCLHQ(XLXSBJDCLHQ_BJDID,XLXSBJDCLHQ_BJCLID,XLXSBJDCLHQ_WSJG,XLXSBJDCLHQ_HSJG,XLXSBJDCLHQ_WSJGF,XLXSBJDCLHQ_HSJGF,"); + SQL.Add(" XLXSBJDCLHQ_JGYBJCLID1,XLXSBJDCLHQ_WSJG1,XLXSBJDCLHQ_HSJG1,XLXSBJDCLHQ_JGBL1, "); + SQL.Add(" XLXSBJDCLHQ_WHR,XLXSBJDCLHQ_WHRID,XLXSBJDCLHQ_WHSJ)"); + SQL.Add(" select :pBJDID,bjdclhq.BJCLID,RoundFix(bjdclhq.XLXSCLHQ_WSJG," + sDecimal + "),RoundFix(bjdclhq.XLXSCLHQ_HSJG," + sDecimal + "),bjdclhq.XLXSCLHQ_WSJGF,bjdclhq.XLXSCLHQ_HSJGF,"); + SQL.Add(" isnull(bjdclhq.XLXSCLHQ_JGYBJCLID1,' '),RoundFix(bjdclhq.XLXSCLHQ_WSJG1," + sDecimal + "),RoundFix(bjdclhq.XLXSCLHQ_HSJG1," + sDecimal + "),bjdclhq.XLXSCLHQ_JGBL1, "); + SQL.Add(" :pWHR,:pWHRID,:pWHSJ"); + SQL.Add(" from "); + SQL.Add(" ("); + //报价单报价日之材料行情 + SQL.Add("select BJCLID,XLXSCLHQ_WSJG,XLXSCLHQ_HSJG,XLXSCLHQ_WSJGF,XLXSCLHQ_HSJGF, "); + SQL.Add(" XLXSCLHQ_JGYBJCLID1,XLXSCLHQ_WSJG1,XLXSCLHQ_HSJG1,XLXSCLHQ_JGBL1 "); + SQL.Add(" from XLXSCLHQ,"); + SQL.Add(" ("); + SQL.Add(" select XLXSCLHQ_BJCLID as BJCLID,"); + SQL.Add(" max(XLXSCLHQ_YXQS)as maxYXQS"); + SQL.Add(" from XLXSCLHQ"); + SQL.Add(" left join XLXSBJCL on XLXSBJCL_BJCLID=XLXSCLHQ_BJCLID "); + SQL.Add(" where XLXSCLHQ_JGBID='ZZZZZZZZ'"); + SQL.Add(" and XLXSCLHQ_YXQS<=:pBJRQ"); + SQL.Add(" and (XLXSCLHQ_YXQZ>=:pBJRQ or XLXSCLHQ_YXQZ is null)"); + SQL.Add(" and isnull(XLXSBJCL_TYBZ,'N') <> 'Y' "); + //价格表行情分段材料、以及以价格表行情分段材料为加工原料的材料行情记录不插入 + SQL.Add(" and not exists (select 1 from XLXSJGBCLHQFD where XLXSJGBCLHQFD_BJCLID = XLXSCLHQ_BJCLID and XLXSJGBCLHQFD_MXBH =:pMXBH and XLXSJGBCLHQFD_JGBID = :pJGBID) "); + SQL.Add(" and not exists "); + SQL.Add("( "); + SQL.Add("select 1 from XLXSBJCL d where d.XLXSBJCL_BJCLID=XLXSCLHQ_BJCLID and d.XLXSBJCL_JGYBJCLID "); + SQL.Add(" in ( select XLXSJGBCLHQFD_BJCLID from XLXSJGBCLHQFD where XLXSJGBCLHQFD_MXBH=:pMXBH and XLXSJGBCLHQFD_JGBID=:pJGBID ) "); + SQL.Add(") "); + SQL.Add(" group by XLXSCLHQ_BJCLID"); + SQL.Add(" ) x"); + SQL.Add(" where XLXSCLHQ_JGBID='ZZZZZZZZ'"); + SQL.Add(" and XLXSCLHQ_BJCLID=BJCLID"); + SQL.Add(" and XLXSCLHQ_YXQS=maxYXQS"); + //插入价格表行情分段材料的行情 + SQL.Add(" union all "); + SQL.Add("select XLXSCLHQ_BJCLID as BJCLID,XLXSCLHQ_WSJG,XLXSCLHQ_HSJG,XLXSCLHQ_WSJGF,XLXSCLHQ_HSJGF, "); + SQL.Add(" XLXSCLHQ_JGYBJCLID1,XLXSCLHQ_WSJG1,XLXSCLHQ_HSJG1,XLXSCLHQ_JGBL1 "); + SQL.Add(" from XLXSCLHQ"); + SQL.Add(" left join XLXSBJCL on XLXSBJCL_BJCLID=XLXSCLHQ_BJCLID "); + SQL.Add(" where XLXSCLHQ_JGBID<>'ZZZZZZZZ'"); + SQL.Add(" and XLXSCLHQ_JGBID=:pJGBID"); + SQL.Add(" and isnull(XLXSBJCL_TYBZ,'N') <> 'Y' "); + SQL.Add(" and exists (select 1 from XLXSJGBCLHQFD where XLXSJGBCLHQFD_BJCLID = XLXSCLHQ_BJCLID and XLXSJGBCLHQFD_MXBH =:pMXBH and XLXSJGBCLHQFD_JGBID = :pJGBID) "); + SQL.Add(" ) bjdclhq "); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pBJRQ").Value = sBJRQ; + SQL.ParamByName("pWHR").Value = sWHR; + SQL.ParamByName("pWHRID").Value = sWHRID; + SQL.ParamByName("pWHSJ").Value = DateTime.Now; + SQL.ParamByName("pJGBID").Value = sJGBID; + SQL.ParamByName("pMXBH").Value = "JGB"; + dberp.ExecSQL(SQL); + + //插入以价格表行情分段材料为加工原料的材料加工费,并重算材料行情 + SQL.Clear(); + SQL.Add("insert into XLXSBJDCLHQ(XLXSBJDCLHQ_BJDID,XLXSBJDCLHQ_BJCLID,XLXSBJDCLHQ_HSJG,XLXSBJDCLHQ_WSJG,XLXSBJDCLHQ_HSJGF,XLXSBJDCLHQ_WSJGF,"); + SQL.Add(" XLXSBJDCLHQ_JGYBJCLID1,XLXSBJDCLHQ_WSJG1,XLXSBJDCLHQ_HSJG1,XLXSBJDCLHQ_JGBL1, "); + SQL.Add(" XLXSBJDCLHQ_WHR,XLXSBJDCLHQ_WHRID,XLXSBJDCLHQ_WHSJ)"); + SQL.Add(" select :pBJDID,XLXSBJCL_BJCLID as BJCLID,"); + SQL.Add(" RoundFix(isnull(XLXSCLHQ_HSJG,0.0)*isnull(JGBL1,0.0)+isnull(HSJGF,0.0)," + sDecimal + ") as HSJG,RoundFix(isnull(XLXSCLHQ_WSJG,0.0)*isnull(JGBL1,0.0)+isnull(WSJGF,0.0)," + sDecimal + ") as CLJG,"); + SQL.Add(" isnull(HSJGF,0.0) as HSJGF,isnull(WSJGF,0.0) as WSJGF,"); + SQL.Add(" isnull(XLXSBJCL_JGYBJCLID,' ') as JGYBJCLID1,RoundFix(isnull(XLXSCLHQ_WSJG,0.0)," + sDecimal + ") as WSJG1,RoundFix(isnull(XLXSCLHQ_HSJG,0.0)," + sDecimal + ") as HSJG1,isnull(JGBL1,0.0) as JGBL1,"); + SQL.Add(" :pWHR,:pWHRID,:pWHSJ"); + SQL.Add(" from XLXSBJCL"); + //取最新加工费 + SQL.Add(" left join "); + SQL.Add(" ("); + SQL.Add(" select XLXSCLHQ_BJCLID as BJCLID,XLXSCLHQ_HSJGF as HSJGF, XLXSCLHQ_WSJGF as WSJGF,XLXSCLHQ_JGBL1 as JGBL1 "); + SQL.Add(" from XLXSCLHQ, "); + SQL.Add(" ("); + SQL.Add(" select XLXSCLHQ_BJCLID as BJCLID,max(XLXSCLHQ_YXQS) as maxYXQS "); + SQL.Add(" from XLXSCLHQ "); + SQL.Add(" where XLXSCLHQ_JGBID='ZZZZZZZZ' "); + SQL.Add(" and XLXSCLHQ_YXQS<=:pRQ "); + SQL.Add(" and (XLXSCLHQ_YXQZ is null or XLXSCLHQ_YXQZ>=:pRQ) "); + SQL.Add(" group by XLXSCLHQ_BJCLID "); + SQL.Add(" ) a "); + SQL.Add(" where XLXSCLHQ_JGBID='ZZZZZZZZ' "); + SQL.Add(" and XLXSCLHQ_BJCLID=BJCLID "); + SQL.Add(" and XLXSCLHQ_YXQS=maxYXQS "); + SQL.Add(" ) b on BJCLID=XLXSBJCL_BJCLID "); + //取加工原料行情 + SQL.Add(" left join XLXSCLHQ on XLXSCLHQ_JGBID=:pJGBID and XLXSCLHQ_BJCLID=XLXSBJCL_JGYBJCLID "); + SQL.Add(" where isnull(XLXSBJCL_BJCLMC,' ')<>' ' and isnull(XLXSBJCL_TYBZ,'N') <> 'Y' "); + SQL.Add(" and XLXSBJCL_JGYBJCLID in ( select XLXSJGBCLHQFD_BJCLID from XLXSJGBCLHQFD where XLXSJGBCLHQFD_MXBH=:pMXBH and XLXSJGBCLHQFD_JGBID=:pJGBID) "); + + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pRQ").Value = sBJRQ; + SQL.ParamByName("pJGBID").Value = sJGBID; + SQL.ParamByName("pMXBH").Value = "JGB"; + SQL.ParamByName("pWHR").Value = sWHR; + SQL.ParamByName("pWHRID").Value = sWHRID; + SQL.ParamByName("pWHSJ").Value = DateTime.Now; + dberp.ExecSQL(SQL); + } + + //此处,直接利用上方插入的XLXSBJDCLHQ记录作为加工原料的价格 + InsertXLXSBJDWLHQbyBJDCLHQ(dberp, SQL, sBJDID, sJGBID, sBJRQ, sWHR, sWHRID); + } + + public static void InsertXLXSBJDCLHQ_WLHQ_WithJGBHQ(TDatabase dberp, TSQL SQL, string sBJDHQLY, string sBJDID, string sBJRQ, string sWHR, string sWHRID, string sJGBID) + { + string sDecimal = BJCLPriceDecimal.ToString().Trim(); + SQL.Clear(); + SQL.Add("delete from XLXSBJDCLHQ where XLXSBJDCLHQ_BJDID=:pBJDID"); + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + if (sBJDHQLY.Equals("2"))//报价单行情来源:2|报价日行情 + { + SQL.Clear(); + SQL.Add("insert into XLXSBJDCLHQ(XLXSBJDCLHQ_BJDID,XLXSBJDCLHQ_BJCLID,XLXSBJDCLHQ_WSJG,XLXSBJDCLHQ_HSJG,XLXSBJDCLHQ_WSJGF,XLXSBJDCLHQ_HSJGF,"); + SQL.Add(" XLXSBJDCLHQ_JGYBJCLID1,XLXSBJDCLHQ_WSJG1,XLXSBJDCLHQ_HSJG1,XLXSBJDCLHQ_JGBL1,"); + SQL.Add(" XLXSBJDCLHQ_WHR,XLXSBJDCLHQ_WHRID,XLXSBJDCLHQ_WHSJ)"); + SQL.Add(" select :pBJDID, BJCLID,RoundFix(XLXSCLHQ_WSJG," + sDecimal + ") as CLJG,RoundFix(XLXSCLHQ_HSJG," + sDecimal + ") as HSJG, "); + SQL.Add(" XLXSCLHQ_WSJGF,XLXSCLHQ_HSJGF,"); + SQL.Add(" XLXSCLHQ_JGYBJCLID1,RoundFix(XLXSCLHQ_WSJG1," + sDecimal + ") as WSJG1,RoundFix(XLXSCLHQ_HSJG1," + sDecimal + ") as HSJG1,XLXSCLHQ_JGBL1,"); + SQL.Add(" :pWHR,:pWHRID,:pWHSJ"); + SQL.Add(" from XLXSCLHQ,"); + SQL.Add(" ("); + SQL.Add(" select XLXSCLHQ_BJCLID as BJCLID,XLXSBJCL_JGYBJCLID as JGYBJCLID,XLXSBJCL_ZZSL as ZZSL,"); + SQL.Add(" max(XLXSCLHQ_YXQS) as maxYXQS"); + SQL.Add(" from XLXSCLHQ"); + SQL.Add(" left join XLXSBJCL on XLXSBJCL_BJCLID=XLXSCLHQ_BJCLID"); + SQL.Add(" where XLXSCLHQ_JGBID='ZZZZZZZZ'"); + SQL.Add(" and XLXSCLHQ_YXQS<=:pBJRQ and(XLXSCLHQ_YXQZ>=:pBJRQ or XLXSCLHQ_YXQZ is null)"); + SQL.Add(" group by XLXSCLHQ_BJCLID,XLXSBJCL_JGYBJCLID,XLXSBJCL_ZZSL"); + SQL.Add(" ) a"); + SQL.Add(" where XLXSCLHQ_JGBID='ZZZZZZZZ'"); + SQL.Add(" and XLXSCLHQ_BJCLID=BJCLID"); + SQL.Add(" and XLXSCLHQ_YXQS=maxYXQS"); + + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pBJRQ").Value = sBJRQ; + SQL.ParamByName("pWHR").Value = sWHR; + SQL.ParamByName("pWHRID").Value = sWHRID; + SQL.ParamByName("pWHSJ").Value = DateTime.Now; + dberp.ExecSQL(SQL); + } + else//报价单行情来源:1|价格表行情 + { + SQL.Clear(); + SQL.Add("insert into XLXSBJDCLHQ(XLXSBJDCLHQ_BJDID,XLXSBJDCLHQ_BJCLID,XLXSBJDCLHQ_WSJG,XLXSBJDCLHQ_HSJG,XLXSBJDCLHQ_WSJGF,XLXSBJDCLHQ_HSJGF,"); + SQL.Add(" XLXSBJDCLHQ_JGYBJCLID1,XLXSBJDCLHQ_WSJG1,XLXSBJDCLHQ_HSJG1,XLXSBJDCLHQ_JGBL1,"); + SQL.Add(" XLXSBJDCLHQ_WHR,XLXSBJDCLHQ_WHRID,XLXSBJDCLHQ_WHSJ)"); + SQL.Add(" select :pBJDID,bjdclhq.BJCLID,RoundFix(bjdclhq.XLXSCLHQ_WSJG," + sDecimal + "),RoundFix(bjdclhq.XLXSCLHQ_HSJG," + sDecimal + "),bjdclhq.XLXSCLHQ_WSJGF,bjdclhq.XLXSCLHQ_HSJGF,"); + SQL.Add(" bjdclhq.XLXSCLHQ_JGYBJCLID1,RoundFix(bjdclhq.XLXSCLHQ_WSJG1," + sDecimal + "),RoundFix(bjdclhq.XLXSCLHQ_HSJG1," + sDecimal + "),bjdclhq.XLXSCLHQ_JGBL1,"); + SQL.Add(" :pWHR,:pWHRID,:pWHSJ"); + SQL.Add(" from "); + SQL.Add(" ("); + SQL.Add("select XLXSCLHQ_BJCLID as BJCLID,XLXSCLHQ_WSJG,XLXSCLHQ_HSJG,XLXSCLHQ_WSJGF,XLXSCLHQ_HSJGF, "); + SQL.Add(" XLXSCLHQ_JGYBJCLID1,XLXSCLHQ_WSJG1,XLXSCLHQ_HSJG1,XLXSCLHQ_JGBL1"); + SQL.Add(" from XLXSCLHQ"); + SQL.Add(" where XLXSCLHQ_JGBID<>'ZZZZZZZZ'"); + SQL.Add(" and XLXSCLHQ_JGBID=:pJGBID"); + SQL.Add(" ) bjdclhq "); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pWHR").Value = sWHR; + SQL.ParamByName("pWHRID").Value = sWHRID; + SQL.ParamByName("pWHSJ").Value = DateTime.Now; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + } + + //此处,直接利用上方插入的XLXSBJDCLHQ记录作为加工原料的价格 + InsertXLXSBJDWLHQbyBJDCLHQ(dberp, SQL, sBJDID, sJGBID, sBJRQ, sWHR, sWHRID); + } + + //直接利用XLXSBJDCLHQ记录作为加工原料的价格,存储加工物料的价格 + public static void InsertXLXSBJDWLHQbyBJDCLHQ(TDatabase dberp, TSQL SQL, string sBJDID, string sJGBID, string sBJRQ, string sWHR, string sWHRID) + { + SQL.Clear(); + SQL.Add("merge into XLXSBJDWLHQ "); + SQL.Add("using "); + SQL.Add("( "); + SQL.Add("select :pBJDID as BJDID,XLXSBJCLWL_WLID as WLID, "); + //SQL.Add("case when XLXSBJDCLHQ_BJCLID is null then isnull(XLXSWLHQ_WSJG,0) else isnull(XLXSBJDCLHQ_WSJG1*XLXSBJDCLHQ_JGBL1,0)+isnull(XLXSWLHQ_WSJGF,0) end as WSJG, "); + SQL.Add("case when XLXSBJDCLHQ_BJCLID is null then isnull(XLXSWLHQ_WSJG,0) else isnull(XLXSBJDCLHQ_WSJG*XLXSWLHQ_JGBL1,0)+isnull(XLXSWLHQ_WSJGF,0) end as WSJG, "); + //SQL.Add("case when XLXSBJDCLHQ_BJCLID is null then isnull(XLXSWLHQ_HSJG,0) else isnull(XLXSBJDCLHQ_HSJG1*XLXSBJDCLHQ_JGBL1,0)+isnull(XLXSWLHQ_HSJGF,0) end as HSJG, "); + SQL.Add("case when XLXSBJDCLHQ_BJCLID is null then isnull(XLXSWLHQ_HSJG,0) else isnull(XLXSBJDCLHQ_HSJG*XLXSWLHQ_JGBL1,0)+isnull(XLXSWLHQ_HSJGF,0) end as HSJG, "); + SQL.Add("isnull(XLXSWLHQ_WSJGF,0) as WSJGF,isnull(XLXSWLHQ_HSJGF,0) as HSJGF, "); + // SQL.Add("isnull(XLXSWLHQ_WSJG1,0) as WSJG1,isnull(XLXSWLHQ_HSJG1,0) as HSJG1,isnull(XLXSWLHQ_JGBL1,0) as JGBL1,isnull(XLXSWLHQ_JGYBJCLID1,' ') as JGYBJCLID1 "); + SQL.Add("isnull(XLXSBJDCLHQ_WSJG,0) as WSJG1,isnull(XLXSBJDCLHQ_HSJG,0) as HSJG1,isnull(XLXSWLHQ_JGBL1,0) as JGBL1,isnull(XLXSWLHQ_JGYBJCLID1,' ') as JGYBJCLID1 "); + SQL.Add("from XLXSBJCLWL "); + SQL.Add("left join "); + SQL.Add(" (select XLXSWLHQ_WLID,XLXSWLHQ_WSJG,XLXSWLHQ_HSJG,XLXSWLHQ_WSJGF,XLXSWLHQ_HSJGF,"); + SQL.Add(" XLXSWLHQ_JGYBJCLID1,XLXSWLHQ_WSJG1,XLXSWLHQ_HSJG1,XLXSWLHQ_JGBL1 "); + if (HasJGBWLHQ(sJGBID)) + { + SQL.Add(" from XLXSWLHQ"); + SQL.Add(" where XLXSWLHQ_JGBID= :pJGBID "); + SQL.ParamByName("pJGBID").Value = sJGBID; + } + else + { + SQL.Add(" from XLXSWLHQ,"); + SQL.Add(" ("); + SQL.Add(" select XLXSWLHQ_WLID as WLID,max(XLXSWLHQ_YXQS) as maxYXQS"); + SQL.Add(" from XLXSWLHQ"); + SQL.Add(" where XLXSWLHQ_JGBID=' '"); + SQL.Add(" and XLXSWLHQ_YXQS<=:pBJRQ and(XLXSWLHQ_YXQZ>=:pBJRQ or XLXSWLHQ_YXQZ is null)"); + SQL.Add(" group by XLXSWLHQ_WLID"); + SQL.Add(" ) a "); + SQL.Add(" where XLXSWLHQ_JGBID=' ' "); + SQL.Add(" and XLXSWLHQ_WLID=WLID "); + SQL.Add(" and XLXSWLHQ_YXQS=maxYXQS "); + } + SQL.Add(" ) c on XLXSWLHQ_WLID=XLXSBJCLWL_WLID "); + SQL.Add("left join XLXSBJCL on XLXSBJCL_BJCLID=XLXSBJCLWL_BJCLID "); + SQL.Add("left join XLXSBJDCLHQ on XLXSBJDCLHQ_BJDID=:pBJDID and XLXSBJDCLHQ_BJCLID=XLXSBJCL_JGYBJCLID "); + SQL.Add("where XLXSBJCL_BJHQ = '2' and isnull(XLXSBJCL_JGYBJCLID,' ') <> ' ' ");//只有存在加工原料的物料才记! + SQL.Add(") B on (XLXSBJDWLHQ_BJDID=B.BJDID and XLXSBJDWLHQ_WLID=B.WLID) "); + SQL.Add("when matched then "); + SQL.Add("update set XLXSBJDWLHQ_WSJG=B.WSJG-B.WSJGF+XLXSBJDWLHQ_WSJGF,XLXSBJDWLHQ_HSJG=B.HSJG-B.HSJGF+XLXSBJDWLHQ_HSJGF, "); + SQL.Add(" XLXSBJDWLHQ_WSJG1=B.WSJG1,XLXSBJDWLHQ_HSJG1=B.HSJG1,XLXSBJDWLHQ_JGBL1=B.JGBL1,"); + SQL.Add(" XLXSBJDWLHQ_WHR=:pWHR,XLXSBJDWLHQ_WHRID=:pWHRID,XLXSBJDWLHQ_WHSJ=:pWHSJ,XLXSBJDWLHQ_JGYBJCLID1=B.JGYBJCLID1 "); + SQL.Add("when not matched then "); + SQL.Add("insert (XLXSBJDWLHQ_BJDID,XLXSBJDWLHQ_WLID,XLXSBJDWLHQ_WSJG,XLXSBJDWLHQ_HSJG,XLXSBJDWLHQ_WSJGF,XLXSBJDWLHQ_HSJGF,"); + SQL.Add("XLXSBJDWLHQ_JGYBJCLID1,XLXSBJDWLHQ_WSJG1,XLXSBJDWLHQ_HSJG1,XLXSBJDWLHQ_JGBL1,"); + SQL.Add("XLXSBJDWLHQ_WHR,XLXSBJDWLHQ_WHRID,XLXSBJDWLHQ_WHSJ) "); + SQL.Add("values (B.BJDID,B.WLID,B.WSJG,B.HSJG,B.WSJGF,B.HSJGF,"); + SQL.Add("B.JGYBJCLID1,B.WSJG1,B.HSJG1,B.JGBL1,"); + SQL.Add(":pWHR,:pWHRID,:pWHSJ) "); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pBJRQ").Value = sBJRQ; + SQL.ParamByName("pWHR").Value = sWHR; + SQL.ParamByName("pWHRID").Value = sWHRID; + SQL.ParamByName("pWHSJ").Value = DateTime.Now; + dberp.ExecSQL(SQL); + } + + //判断价格表是否记录物料行情 + public static bool HasJGBWLHQ(string sJGBID) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add("select XLXSJGB_JJLY from XLXSJGB where XLXSJGB_JGBID = :pJGBID "); + SQL.ParamByName("pJGBID").Value = sJGBID.Trim(); + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + if (XLJGB_CLJGTZList.NeedJGBJJFP() && ds.Tables[0].Rows[0]["XLXSJGB_JJLY"].ToString().Trim().Equals("A")) + return true; + } + return false; + } + + //------根据报价分类获取因子列 + //构建报价单因子字符串,供后续直接使用而不再查询,返回格式:BJ01|开票(JD),BJ02|ZR(阻燃)(JD),BJ10|其它() + public static Dictionary GetBJDYZ(string sBJFLID) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add("select XLXSTZYZ_YZID,XLXSTZYZ_YZMC,isnull(XLXSTZYZ_YZZBT,'N') as BTYZ,isnull(XLXSTZYZ_XSYZJE,'N') as XSJE,isnull(XLXSTZYZ_BJSDTZFSYZZ,'N') as FSYZ, ");//SQL语句自测:刘青棚 2025/04/01 23:30:00 + if (!sBJFLID.Trim().Equals("")) + SQL.Add(" case when XLXSBJFLYZ_YZID is null then 'N' else 'Y' end as SY,"); + else + SQL.Add(" 'Y' as SY,"); + SQL.Add(" XLXSTZYZ_JJFS,XLXSTZYZ_TJYS,XLXSTZYZ_BCYTJ,XLXSTZYZ_WPIDLIST,XLXSTZYZ_ZDWPIDLIST,XLXSTZYZ_HCBZ,XLXSTZYZ_YZZZD,XLXSTZYZ_TJMDID "); + SQL.Add(" from XLXSTZYZ "); + if (!sBJFLID.Trim().Equals("")) + SQL.Add(" left join XLXSBJFLYZ on XLXSBJFLYZ_BJFLID=:pBJFLID and XLXSBJFLYZ_YZID=XLXSTZYZ_YZID"); + SQL.Add(" where XLXSTZYZ_MXBH = 'BJD' "); + SQL.Add(" order by XLXSTZYZ_XSXH,XLXSTZYZ_YZID"); + if (!sBJFLID.Trim().Equals("")) + SQL.ParamByName("pBJFLID").Value = sBJFLID.Trim(); + DataSet ds = dberp.OpenDataSet(SQL); + string sBJDYZ = ""; + string sTJYSList = ""; + string sYZWPIDList = ""; + string sZDWPIDList = ""; + string sHCYZIDList = ""; + string sHCYZMCList = ""; + string sReadOnlyYZ = ""; + string sPFYZ = ""; + string sBZPFYZ = ""; + string sCPWJPF = ""; + string sBTYZ = ""; + string sXSJEYZ = ""; + string sFSYZID = ""; + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + string sJJFS = ""; + if (ds.Tables[0].Rows[i]["SY"].ToString().Trim().Equals("Y")) + { + if (!ds.Tables[0].Rows[i]["XLXSTZYZ_BCYTJ"].ToString().Trim().Equals("Y")) + { + sJJFS = ds.Tables[0].Rows[i]["XLXSTZYZ_JJFS"].ToString().Trim(); + } + else + { + sJJFS = "XX"; + } + } + sBJDYZ += ds.Tables[0].Rows[i]["XLXSTZYZ_YZID"].ToString().Trim() + "|" + ds.Tables[0].Rows[i]["XLXSTZYZ_YZMC"].ToString().Trim() + "(" + sJJFS + "),"; + + //构建 报价分类使用到的调价因素 + if (ds.Tables[0].Rows[i]["SY"].ToString().Trim().Equals("Y")) + { + string sTJYS = ds.Tables[0].Rows[i]["XLXSTZYZ_TJYS"].ToString().Trim(); + string sTJMDID = ds.Tables[0].Rows[i]["XLXSTZYZ_TJMDID"].ToString().Trim(); + if (sTJMDID.Equals("100860124")) + { + if (sTJYSList.Equals("")) + sTJYSList = ",BZPF,"; + else + { + if (!sTJYSList.Contains(",BZPF,")) + sTJYSList = sTJYSList + "BZPF,"; + } + } + else if (sTJMDID.Equals("100860162")) + { + if (sTJYSList.Equals("")) + sTJYSList = ",CPWJPF,"; + else + { + if (!sTJYSList.Contains(",CPWJPF,")) + sTJYSList = sTJYSList + "CPWJPF,"; + } + } + else + { + if (sTJYS.Equals("")) + sTJYS = "空"; + + if (sTJYSList.Equals("")) + sTJYSList = "," + sTJYS + ","; + else + { + if (!sTJYSList.Contains("," + sTJYS + ",")) + sTJYSList = sTJYSList + sTJYS + ","; + } + } + } + + //sYZWPIDList格式:BJ01|0010,0020;BJ02|0020 + if (!ds.Tables[0].Rows[i]["XLXSTZYZ_WPIDLIST"].ToString().Trim().Equals("")) + { + sYZWPIDList += ds.Tables[0].Rows[i]["XLXSTZYZ_YZID"].ToString().Trim() + "|" + ds.Tables[0].Rows[i]["XLXSTZYZ_WPIDLIST"].ToString().Trim() + ";"; + } + if (!ds.Tables[0].Rows[i]["XLXSTZYZ_ZDWPIDLIST"].ToString().Trim().Equals("")) + { + sZDWPIDList += ds.Tables[0].Rows[i]["XLXSTZYZ_YZID"].ToString().Trim() + "|" + ds.Tables[0].Rows[i]["XLXSTZYZ_ZDWPIDLIST"].ToString().Trim() + ";"; + } + //只存 互斥 且 使用 且 参与调价 + if (ds.Tables[0].Rows[i]["SY"].ToString().Trim().Equals("Y") + && ds.Tables[0].Rows[i]["XLXSTZYZ_HCBZ"].ToString().Trim().Equals("Y") + && ds.Tables[0].Rows[i]["XLXSTZYZ_BCYTJ"].ToString().Trim().Equals("N")) + { + sHCYZIDList += ds.Tables[0].Rows[i]["XLXSTZYZ_YZID"].ToString().Trim() + ";"; + sHCYZMCList += ds.Tables[0].Rows[i]["XLXSTZYZ_YZMC"].ToString().Trim() + "、"; + } + sReadOnlyYZ += ds.Tables[0].Rows[i]["XLXSTZYZ_YZID"].ToString().Trim() + "|" + ds.Tables[0].Rows[i]["XLXSTZYZ_YZZZD"].ToString().Trim() + ","; + + //盘费因子 + if (ds.Tables[0].Rows[i]["XLXSTZYZ_TJMDID"].ToString().Trim().Equals("100860080")) + { + sPFYZ += ds.Tables[0].Rows[i]["XLXSTZYZ_YZID"].ToString().Trim() + ","; + } + //包装方式 + if (ds.Tables[0].Rows[i]["XLXSTZYZ_TJMDID"].ToString().Trim().Equals("100860124")) + { + sBZPFYZ += ds.Tables[0].Rows[i]["XLXSTZYZ_YZID"].ToString().Trim() + ","; + } + //产品外径盘费 + if (ds.Tables[0].Rows[i]["XLXSTZYZ_TJMDID"].ToString().Trim().Equals("100860162")) + { + sCPWJPF += ds.Tables[0].Rows[i]["XLXSTZYZ_YZID"].ToString().Trim() + ","; + } + //必填因子 + if (ds.Tables[0].Rows[i]["BTYZ"].ToString().Trim().Equals("Y") && ds.Tables[0].Rows[i]["SY"].ToString().Trim().Equals("Y")) + { + sBTYZ += ds.Tables[0].Rows[i]["XLXSTZYZ_YZID"].ToString().Trim() + ","; + } + //显示金额因子 + if (ds.Tables[0].Rows[i]["XSJE"].ToString().Trim().Equals("Y")) + { + sXSJEYZ += ds.Tables[0].Rows[i]["XLXSTZYZ_YZID"].ToString().Trim() + ","; + } + //反算因子因子 + if (ds.Tables[0].Rows[i]["FSYZ"].ToString().Trim().Equals("Y") && ds.Tables[0].Rows[i]["SY"].ToString().Trim().Equals("Y")) + { + sFSYZID = ds.Tables[0].Rows[i]["XLXSTZYZ_YZID"].ToString().Trim(); + } + } + Dictionary dicBJDYZ = new Dictionary(); + dicBJDYZ.Add("BJDYZ", sBJDYZ.TrimEnd(',')); + dicBJDYZ.Add("TJYSList", sTJYSList); + dicBJDYZ.Add("YZWPIDList", sYZWPIDList.TrimEnd(';')); + dicBJDYZ.Add("ZDWPIDList", sZDWPIDList.TrimEnd(';')); + dicBJDYZ.Add("HCYZIDList", sHCYZIDList.TrimEnd(';')); + dicBJDYZ.Add("HCYZMCList", sHCYZMCList.TrimEnd('、')); + dicBJDYZ.Add("ReadOnlyYZ", sReadOnlyYZ.TrimEnd(',')); + dicBJDYZ.Add("PFYZ", sPFYZ.TrimEnd(',')); + dicBJDYZ.Add("BZPFYZ", sBZPFYZ.TrimEnd(',')); + dicBJDYZ.Add("CPWJPF", sCPWJPF.TrimEnd(',')); + dicBJDYZ.Add("BTYZ", sBTYZ.TrimEnd(',')); + dicBJDYZ.Add("XSJEYZ", sXSJEYZ.TrimEnd(',')); + dicBJDYZ.Add("FSYZ", sFSYZID); + return dicBJDYZ; + } + + /// + /// 根据角色获取隐藏栏目 + /// + /// + /// + /// + public static string GetHidJSLMList(string sBJFLID, bool bXJY, bool bSJY, bool bHJY) + { + string sResult = ""; + List bjfljslm_list = GetBJFLJSLMXX(sBJFLID); + foreach (BJFLJSLMXX jslmxx in bjfljslm_list) + { + if (("," + sResult).Contains("," + jslmxx.XLXSBJFLJSLM_LMID)) + continue; + if (jslmxx.XLXSBJFLJSLM_YCBZ == "Y") + { + if (bXJY || bSJY || bHJY) + { + if (bXJY && jslmxx.XLXSBJFLJSLM_JSLX == "X") + { + sResult += jslmxx.XLXSBJFLJSLM_LMID + ","; + } + if (bSJY && jslmxx.XLXSBJFLJSLM_JSLX == "S") + { + sResult += jslmxx.XLXSBJFLJSLM_LMID + ","; + } + if (bHJY && jslmxx.XLXSBJFLJSLM_JSLX == "H") + { + sResult += jslmxx.XLXSBJFLJSLM_LMID + ","; + } + } + else if (jslmxx.XLXSBJFLJSLM_JSLX == "Q") + { + sResult += jslmxx.XLXSBJFLJSLM_LMID + ","; + } + } + } + sResult = sResult.TrimEnd(','); + return sResult; + } + + //构建报价分类对应产品目录的行情分段材料、及其报价日行情 + public static Dictionary GetCPMLBJCL_BJRCLHQ(string sBJFLID, string sBJRQ) + { + Dictionary dicCPML_BJRCLHQ = new Dictionary(); + + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add("select XLXSJGBPZ_BJCLIDS"); + SQL.Add(" from XLXSJGBPZ"); + SQL.Add(" left join XLXSBJFL on XLXSBJFL_CPMLID=XLXSJGBPZ_CPMLID"); + SQL.Add(" where XLXSBJFL_BJFLID=:pBJFLID"); + SQL.Add(" and isnull(XLXSBJFL_SDJGBCLHQFW,' ')='Y'");//锁定价格表材料行情范围 + SQL.ParamByName("pBJFLID").Value = sBJFLID.Trim(); + DataSet dsML = dberp.OpenDataSet(SQL); + if (dsML.Tables[0].Rows.Count > 0) + { + string sBJCLIDS = dsML.Tables[0].Rows[0]["XLXSJGBPZ_BJCLIDS"].ToString().Trim(); + if (!sBJCLIDS.Equals("")) + { + SQL.Clear(); + SQL.Add("select XLXSCLHQ_BJCLID,XLXSCLHQ_HSJG,XLXSCLHQ_WSJG"); + SQL.Add(" from XLXSCLHQ,"); + SQL.Add(" (select XLXSCLHQ_BJCLID as BJCLID,max(XLXSCLHQ_YXQS) as maxYXQS"); + SQL.Add(" from XLXSCLHQ"); + SQL.Add(" where XLXSCLHQ_JGBID='ZZZZZZZZ'"); + SQL.Add(" and XLXSCLHQ_YXQS<=:pRQ and (XLXSCLHQ_YXQZ is null or XLXSCLHQ_YXQZ>=:pRQ)"); + SQL.Add(" group by XLXSCLHQ_BJCLID"); + SQL.Add(" ) a"); + SQL.Add(" where XLXSCLHQ_JGBID='ZZZZZZZZ' and XLXSCLHQ_BJCLID=BJCLID and XLXSCLHQ_YXQS=maxYXQS"); + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSCLHQ_BJCLID", sBJCLIDS)); + SQL.Add(" order by XLXSCLHQ_BJCLID"); + SQL.ParamByName("pRQ").Value = sBJRQ; + DataSet ds = dberp.OpenDataSet(SQL); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + //这里仅去含税价格取与价格表行情范围比较 + dicCPML_BJRCLHQ.Add(ds.Tables[0].Rows[i]["XLXSCLHQ_BJCLID"].ToString().Trim(), CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSCLHQ_HSJG"].ToString().Trim())); + } + } + } + + return dicCPML_BJRCLHQ; + } + + //获取报价分类对应产品目录的材料 + public static string GetCPMLBJCL(string sBJFLID) + { + string ReStr = ""; + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add("select XLXSJGBPZ_BJCLIDS"); + SQL.Add(" from XLXSJGBPZ"); + SQL.Add(" left join XLXSBJFL on XLXSBJFL_CPMLID=XLXSJGBPZ_CPMLID"); + SQL.Add(" where XLXSBJFL_BJFLID=:pBJFLID"); + SQL.ParamByName("pBJFLID").Value = sBJFLID.Trim(); + DataSet dsML = dberp.OpenDataSet(SQL); + if (dsML.Tables[0].Rows.Count > 0) + { + ReStr = dsML.Tables[0].Rows[0]["XLXSJGBPZ_BJCLIDS"].ToString().Trim(); + } + return ReStr; + } + + public static void UpdateZDXJGS(string sBJDID, string sBJFLID, string sBJU002) + { + UpdateZDXJGS(sBJDID, sBJFLID, sBJU002, "", 0); + } + + //根据报价分类的最低限价公式批量再逐行计算XLXSBJDMX_ZDXJ(最低限价)字段 + public static void UpdateZDXJGS(string sBJDID, string sBJFLID, string sBJU002, string sBJDXHList, int minBJDXH) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + UpdateZDXJGS(dberp, SQL, sBJDID, sBJFLID, sBJU002, sBJDXHList, minBJDXH); + } + public static void UpdateZDXJGS(TDatabase dberp, TSQL SQL, string sBJDID, string sBJFLID, string sBJU002, string sBJDXHList, int minBJDXH) + { + UpdateZDXJGS(dberp, SQL, sBJDID, sBJFLID, sBJU002, sBJDXHList, minBJDXH, false, false, false, false, ""); + } + public static void UpdateZDXJGS(TDatabase dberp, TSQL SQL, string sBJDID, string sBJFLID, string sBJU002, string sBJDXHList, int minBJDXH, bool bYBJ, bool bWBJ, bool bWG, bool bFWG, string sTLcpList) + { + UpdateZDXJGS(dberp, SQL, sBJDID, sBJFLID, sBJU002, sBJDXHList, minBJDXH, bYBJ, bWBJ, bWG, bFWG, sTLcpList, DateTime.MinValue); + } + public static void UpdateZDXJGS(TDatabase dberp, TSQL SQL, string sBJDID, string sBJFLID, string sBJU002, string sBJDXHList, int minBJDXH, bool bYBJ, bool bWBJ, bool bWG, bool bFWG, string sTLcpList, DateTime tWHSJCondition) + { + int iXSWS = string.IsNullOrEmpty(sBJU002) ? 5 : CMISproConvert.StrToInt(sBJU002); + if (iXSWS < 0) + { + iXSWS = 0; + } + else if (iXSWS > 8) + { + iXSWS = 8; + } + + string sZDXJGS = ""; + string sZDXJJCLLX = ""; + string sMXBH = ""; + SQL.Clear(); + SQL.Add(" SELECT XLXSBJFL_ZDXJGS,XLXSBJFL_BJDHQLY,XLXSBJFL_ZDXJJCLLX,XLXSBJFL_MXBH FROM XLXSBJFL where XLXSBJFL_BJFLID = :pXLXSBJFL_BJFLID"); + SQL.ParamByName("pXLXSBJFL_BJFLID").Value = sBJFLID; + DataSet dsBJFLID = dberp.OpenDataSet(SQL); + if (dsBJFLID.Tables[0].Rows.Count > 0) + { + sZDXJGS = dsBJFLID.Tables[0].Rows[0]["XLXSBJFL_ZDXJGS"].ToString().Trim(); + sZDXJJCLLX = dsBJFLID.Tables[0].Rows[0]["XLXSBJFL_ZDXJJCLLX"].ToString().Trim(); + sMXBH = dsBJFLID.Tables[0].Rows[0]["XLXSBJFL_MXBH"].ToString().Trim(); + //将数据都处理为0-防止编辑存在部分计算公式出错 + SQL.Clear(); + SQL.Add(" update XLXSBJDMX set XLXSBJDMX_ZDXJ = 0.0 where XLXSBJDMX_BJDID=:pBJDID and isnull(XLXSBJDMX_ZDXJBJDID,' ') = ' ' "); + if (!sBJDXHList.Equals("")) + { + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDMX_XH >= :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + if (bYBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + if (bWBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ=0.0"); + if (bWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y'"); + //if (!sTLcpList.Equals("")) + // SQL.Add(" and exists(select 1 from XLXHB where XLXHB_XLXHID=UPPER(XLXSBJDMX_XLXHID) and " + CMISproDataBase.GetWhereEqual("XLXHB_DTCLID", sTLcpList) + ") "); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + SQL.ParamByName("pBJDID").Value = sBJDID.Trim(); + dberp.ExecSQL(SQL); + if (!sZDXJGS.Equals("")) + { + sZDXJGS = sZDXJGS.Replace("CLCB", "XXX01").Replace("JGBJJ", "XXX02").Replace("JGBBJ", "XXX03").Replace("CPBJ", "XXX04").Replace("BJDHQCB", "XXX05"); + sZDXJGS = sZDXJGS.Replace("BJ", "tar.XLXSBJDYZZ0_YZZ"); + if (sMXBH.Equals("JGE")) + { + sZDXJGS = sZDXJGS.Replace("JZ", "tar.XLXSBJDJJYZ_YZZ"); + } + if (dsBJFLID.Tables[0].Rows[0]["XLXSBJFL_BJDHQLY"].ToString().Trim().Equals("1")) + { + sZDXJGS = sZDXJGS.Replace("XXX01", "sor.XLXSBJDMX_CLCB"); + } + else + { + sZDXJGS = sZDXJGS.Replace("XXX01", "sor.XLXSBJDMX_BJDHQCLCB"); + } + sZDXJGS = sZDXJGS.Replace("XXX02", "sor.XLXSBJDMX_JGBJJ"); + sZDXJGS = sZDXJGS.Replace("XXX03", "sor.XLXSBJDMX_JGBBJ"); + sZDXJGS = sZDXJGS.Replace("XXX04", "sor.XLXSBJDMX_CPBJ"); + sZDXJGS = sZDXJGS.Replace("XXX05", "sor.XLXSBJDMX_BJDHQCLCB"); + sZDXJGS = sZDXJGS.Replace(" ", "").Replace("×", "*").Replace("100", "100.00"); + sZDXJGS = sZDXJGS.Replace("round", "roundFix"); + SQL.Clear(); + SQL.Add(" merge into XLXSBJDMX sor "); + SQL.Add(" using ("); + SQL.Add(" select XLXSBJDMX_BJDID,XLXSBJDMX_XH,XLXSBJDMX_BJDHQCLCB,XLXSBJDMX_CLCB, XLXSBJDMX_JGBJJ, XLXSBJDMX_JGBBJ, "); + SQL.Add(" XLXSBJDYZZ0_YZZ01,XLXSBJDYZZ0_YZZ02,XLXSBJDYZZ0_YZZ03,XLXSBJDYZZ0_YZZ04,XLXSBJDYZZ0_YZZ05, "); + SQL.Add(" XLXSBJDYZZ0_YZZ06,XLXSBJDYZZ0_YZZ07,XLXSBJDYZZ0_YZZ08,XLXSBJDYZZ0_YZZ09,XLXSBJDYZZ0_YZZ10, "); + SQL.Add(" XLXSBJDYZZ0_YZZ11,XLXSBJDYZZ0_YZZ12,XLXSBJDYZZ0_YZZ13,XLXSBJDYZZ0_YZZ14,XLXSBJDYZZ0_YZZ15, "); + SQL.Add(" XLXSBJDYZZ0_YZZ16,XLXSBJDYZZ0_YZZ17,XLXSBJDYZZ0_YZZ18,XLXSBJDYZZ0_YZZ19,XLXSBJDYZZ0_YZZ20 "); + if (sMXBH.Equals("JGE")) + { + SQL.Add(" ,XLXSBJDJJYZ_YZZ01,XLXSBJDJJYZ_YZZ02,XLXSBJDJJYZ_YZZ03,XLXSBJDJJYZ_YZZ04,XLXSBJDJJYZ_YZZ05, "); + SQL.Add(" XLXSBJDJJYZ_YZZ06,XLXSBJDJJYZ_YZZ07,XLXSBJDJJYZ_YZZ08,XLXSBJDJJYZ_YZZ09,XLXSBJDJJYZ_YZZ10"); + } + + SQL.Add(" from XLXSBJDMX "); + SQL.Add(" left join XLXSBJDYZZ0 on XLXSBJDYZZ0_BJDID = XLXSBJDMX_BJDID and XLXSBJDYZZ0_XH = XLXSBJDMX_XH "); + if (sMXBH.Equals("JGE")) + SQL.Add(" left join XLXSBJDJJYZ on XLXSBJDJJYZ_BJDID = XLXSBJDMX_BJDID and XLXSBJDJJYZ_XH = XLXSBJDMX_XH "); + SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID "); + if (!sBJDXHList.Equals("")) + { + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDMX_XH >= :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + if (bYBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + if (bWBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ=0.0"); + if (bWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y'"); + //if (!sTLcpList.Equals("")) + // SQL.Add(" and exists(select 1 from XLXHB where XLXHB_XLXHID=UPPER(XLXSBJDMX_XLXHID) and " + CMISproDataBase.GetWhereEqual("XLXHB_DTCLID", sTLcpList) + ") "); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + SQL.Add(" ) tar "); + SQL.Add(" on ( "); + SQL.Add(" tar.XLXSBJDMX_BJDID = sor.XLXSBJDMX_BJDID "); + SQL.Add(" and tar.XLXSBJDMX_XH = sor.XLXSBJDMX_XH "); + SQL.Add(" and sor.XLXSBJDMX_BJDID=:pBJDID "); + SQL.Add(" and isnull(sor.XLXSBJDMX_ZDXJBJDID,' ') = ' ' "); + if (!sBJDXHList.Equals("")) + { + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("sor.XLXSBJDMX_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and sor.XLXSBJDMX_XH >= :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + if (bYBJ) + SQL.Add(" and sor.XLXSBJDMX_JGBBJ<>0.0"); + if (bWBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ=0.0"); + if (bWG) + SQL.Add(" and isnull(sor.XLXSBJDMX_WGCPBZ,' ')='Y'"); + if (bFWG) + SQL.Add(" and isnull(sor.XLXSBJDMX_WGCPBZ,' ')<>'Y'"); + //if (!sTLcpList.Equals("")) + // SQL.Add(" and exists(select 1 from XLXHB where XLXHB_XLXHID=UPPER(sor.XLXSBJDMX_XLXHID) and " + CMISproDataBase.GetWhereEqual("XLXHB_DTCLID", sTLcpList) + ") "); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + SQL.Add(" ) "); + SQL.Add(" when matched then update set XLXSBJDMX_TZQZDXJ = RoundFix( "); + SQL.Add(sZDXJGS); + SQL.Add(" , 8)"); + SQL.Add(" ,XLXSBJDMX_ZDXJ=RoundFix(RoundFix("); + SQL.Add(sZDXJGS); + SQL.Add(",8) *(1+XLXSBJDMX_TZZDXJ/100)," + iXSWS + ")"); + SQL.ParamByName("pBJDID").Value = sBJDID.Trim(); + string SS = SQL.Text; + try + { + CMISproSession tSession = CMISproSessionManager.GetCurrentSession(); + int iZDXJXSWS = CMISproConvert.StrToInt(tSession.GetOption(100860000, "BJU054")); + dberp.ExecSQL(SQL); + SQL.Clear(); + SQL.Add(" merge into XLXSBJDMX sor "); + SQL.Add(" using ("); + SQL.Add(" select XLXSBJDMX_BJDID,XLXSBJDMX_XH, "); + if (sZDXJJCLLX.Equals("1")) + SQL.Add(string.Format(" case XLXSBJDMX_BJJE when 0 then 0 else 100- RoundFix(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ/XLXSBJDMX_BJJE,{0}) *100 end as ZDXJJCL ", (iZDXJXSWS + 2).ToString())); + else if (sZDXJJCLLX.Equals("2")) + SQL.Add(string.Format(" case (XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ) when 0 then 0 else RoundFix(XLXSBJDMX_BJJE/(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ),{0}) *100 -100 end as ZDXJJCL ", (iZDXJXSWS + 2).ToString())); + else if (sZDXJJCLLX.Equals("3"))//SQL语句自测:刘青棚 2025/03/31 11:00:00 + SQL.Add(string.Format(" case XLXSBJDMX_BJJE when 0 then 0 else RoundFix(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ/XLXSBJDMX_BJJE,{0}) *100 end as ZDXJJCL ", (iZDXJXSWS + 2).ToString())); + else if (sZDXJJCLLX.Equals("4")) + SQL.Add(string.Format(" case (XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ) when 0 then 0 else 100 - RoundFix(XLXSBJDMX_BJDHQCLCB/XLXSBJDMX_ZDXJ,{0}) *100 end as ZDXJJCL ", (iZDXJXSWS + 2).ToString())); + else if (sZDXJJCLLX.Equals("5")) + SQL.Add(string.Format(" case (XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ*" + sCJXS.ToString() + ") when 0 then 0 else RoundFix(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ/(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ*" + sCJXS.ToString() + "),{0}) *100 end as ZDXJJCL ", (iZDXJXSWS + 2).ToString())); + else + SQL.Add(" 0 as ZDXJJCL "); + SQL.Add(" from XLXSBJDMX "); + SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID "); + if (!sBJDXHList.Equals("")) + { + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDMX_XH >= :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + if (bYBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + if (bWBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ=0.0"); + if (bWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y'"); + //if (!sTLcpList.Equals("")) + // SQL.Add(" and exists(select 1 from XLXHB where XLXHB_XLXHID=UPPER(XLXSBJDMX_XLXHID) and " + CMISproDataBase.GetWhereEqual("XLXHB_DTCLID", sTLcpList) + ") "); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + SQL.Add(" ) tar "); + SQL.Add(" on ( "); + SQL.Add(" tar.XLXSBJDMX_BJDID = sor.XLXSBJDMX_BJDID "); + SQL.Add(" and tar.XLXSBJDMX_XH = sor.XLXSBJDMX_XH "); + SQL.Add(" and sor.XLXSBJDMX_BJDID=:pBJDID "); + if (!sBJDXHList.Equals("")) + { + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("sor.XLXSBJDMX_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and sor.XLXSBJDMX_XH >= :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + if (bYBJ) + SQL.Add(" and sor.XLXSBJDMX_JGBBJ<>0.0"); + if (bWBJ) + SQL.Add(" and sor.XLXSBJDMX_JGBBJ=0.0"); + if (bWG) + SQL.Add(" and isnull(sor.XLXSBJDMX_WGCPBZ,' ')='Y'"); + if (bFWG) + SQL.Add(" and isnull(sor.XLXSBJDMX_WGCPBZ,' ')<>'Y'"); + //if (!sTLcpList.Equals("")) + // SQL.Add(" and exists(select 1 from XLXHB where XLXHB_XLXHID=UPPER(sor.XLXSBJDMX_XLXHID) and " + CMISproDataBase.GetWhereEqual("XLXHB_DTCLID", sTLcpList) + ") "); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + SQL.Add(" ) "); + SQL.Add(" when matched then update set XLXSBJDMX_ZDXJJCL = tar.ZDXJJCL "); + SQL.ParamByName("pBJDID").Value = sBJDID.Trim(); + dberp.ExecSQL(SQL); + } + catch + { + string sXH = ""; + SQL.Clear(); + SQL.Add(" select XLXSBJDMX_BJDID, XLXSBJDMX_XH from XLXSBJDMX where XLXSBJDMX_BJDID=:pBJDID "); + if (!sBJDXHList.Equals("")) + { + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDMX_XH >= :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + if (bYBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + if (bWBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ=0.0"); + if (bWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y'"); + //if (!sTLcpList.Equals("")) + // SQL.Add(" and exists(select 1 from XLXHB where XLXHB_XLXHID=UPPER(XLXSBJDMX_XLXHID) and " + CMISproDataBase.GetWhereEqual("XLXHB_DTCLID", sTLcpList) + ") "); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + SQL.Add(" order by XLXSBJDMX_XH "); + SQL.ParamByName("pBJDID").Value = sBJDID.Trim(); + DataSet dsCalByLine = dberp.OpenDataSet(SQL); + if (dsCalByLine.Tables[0].Rows.Count > 0) + { + for (int i = 0; i < dsCalByLine.Tables[0].Rows.Count; i++) + { + sXH = dsCalByLine.Tables[0].Rows[i]["XLXSBJDMX_XH"].ToString().Trim(); + + try + { + UpdateZDXJGSByLine(dberp, SQL, sBJDID, sZDXJGS, sZDXJJCLLX, iXSWS, sXH, sMXBH); + } + catch + { + } + } + } + } + } + UpdateYXJJCL(dberp, SQL, sBJDID, sBJFLID, sBJDXHList, minBJDXH, bYBJ, bWBJ, bWG, bFWG, sTLcpList, tWHSJCondition); + + } + UpdateXLXSBJDJCXJ4(dberp, SQL, sBJDID); + } + + //根据报价分类的最低限价公式逐行计算XLXSBJDMX_ZDXJ(最低限价)字段 + private static void UpdateZDXJGSByLine(TDatabase dberp, TSQL SQL, string sBJDID, string sZDXJGS, string sZDXJJCLLX, int iXSWS, string sXHList, string sMXBH) + { + SQL.Clear(); + SQL.Add(" merge into XLXSBJDMX sor "); + SQL.Add(" using ("); + SQL.Add(" select XLXSBJDMX_BJDID,XLXSBJDMX_XH,XLXSBJDMX_BJDHQCLCB,XLXSBJDMX_CLCB, XLXSBJDMX_JGBJJ, XLXSBJDMX_JGBBJ, "); + SQL.Add(" XLXSBJDYZZ0_YZZ01,XLXSBJDYZZ0_YZZ02,XLXSBJDYZZ0_YZZ03,XLXSBJDYZZ0_YZZ04,XLXSBJDYZZ0_YZZ05, "); + SQL.Add(" XLXSBJDYZZ0_YZZ06,XLXSBJDYZZ0_YZZ07,XLXSBJDYZZ0_YZZ08,XLXSBJDYZZ0_YZZ09,XLXSBJDYZZ0_YZZ10, "); + SQL.Add(" XLXSBJDYZZ0_YZZ11,XLXSBJDYZZ0_YZZ12,XLXSBJDYZZ0_YZZ13,XLXSBJDYZZ0_YZZ14,XLXSBJDYZZ0_YZZ15, "); + SQL.Add(" XLXSBJDYZZ0_YZZ16,XLXSBJDYZZ0_YZZ17,XLXSBJDYZZ0_YZZ18,XLXSBJDYZZ0_YZZ19,XLXSBJDYZZ0_YZZ20 "); + if (sMXBH.Equals("JGE")) + { + SQL.Add(" ,XLXSBJDJJYZ_YZZ01,XLXSBJDJJYZ_YZZ02,XLXSBJDJJYZ_YZZ03,XLXSBJDJJYZ_YZZ04,XLXSBJDJJYZ_YZZ05, "); + SQL.Add(" XLXSBJDJJYZ_YZZ06,XLXSBJDJJYZ_YZZ07,XLXSBJDJJYZ_YZZ08,XLXSBJDJJYZ_YZZ09,XLXSBJDJJYZ_YZZ10"); + } + + SQL.Add(" from XLXSBJDMX "); + SQL.Add(" left join XLXSBJDYZZ0 on XLXSBJDYZZ0_BJDID = XLXSBJDMX_BJDID and XLXSBJDYZZ0_XH = XLXSBJDMX_XH "); + if (sMXBH.Equals("JGE")) + SQL.Add(" left join XLXSBJDJJYZ on XLXSBJDJJYZ_BJDID = XLXSBJDMX_BJDID and XLXSBJDJJYZ_XH = XLXSBJDMX_XH "); + SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sXHList)); + SQL.Add(" ) tar "); + SQL.Add(" on ( "); + SQL.Add(" tar.XLXSBJDMX_BJDID = sor.XLXSBJDMX_BJDID "); + SQL.Add(" and tar.XLXSBJDMX_XH = sor.XLXSBJDMX_XH "); + SQL.Add(" and sor.XLXSBJDMX_BJDID=:pBJDID "); + SQL.Add(" and isnull(sor.XLXSBJDMX_ZDXJBJDID,' ')=' ' "); + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("sor.XLXSBJDMX_XH", sXHList)); + SQL.Add(" ) "); + SQL.Add(" when matched then update set XLXSBJDMX_TZQZDXJ = RoundFix( "); + SQL.Add(sZDXJGS); + SQL.Add(" , 8)"); + SQL.Add(" ,XLXSBJDMX_ZDXJ=RoundFix(RoundFix("); + SQL.Add(sZDXJGS); + SQL.Add(",8) *(1+XLXSBJDMX_TZZDXJ/100)," + iXSWS + ")"); + SQL.ParamByName("pBJDID").Value = sBJDID.Trim(); + dberp.ExecSQL(SQL); + + CMISproSession tSession = CMISproSessionManager.GetCurrentSession(); + int iZDXJXSWS = CMISproConvert.StrToInt(tSession.GetOption(100860000, "BJU054")); + SQL.Clear(); + SQL.Add(" merge into XLXSBJDMX sor "); + SQL.Add(" using ("); + SQL.Add(" select XLXSBJDMX_BJDID,XLXSBJDMX_XH, "); + if (sZDXJJCLLX.Equals("1")) + SQL.Add(string.Format(" case XLXSBJDMX_BJJE when 0 then 0 else 100- RoundFix(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ/XLXSBJDMX_BJJE,{0}) *100 end as ZDXJJCL ", (iZDXJXSWS + 2).ToString())); + else if (sZDXJJCLLX.Equals("2")) + SQL.Add(string.Format(" case (XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ) when 0 then 0 else RoundFix(XLXSBJDMX_BJJE/(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ),{0}) *100 -100 end as ZDXJJCL ", (iZDXJXSWS + 2).ToString())); + else if (sZDXJJCLLX.Equals("3"))//SQL语句自测:刘青棚 2025/03/11 11:00:00 + SQL.Add(string.Format(" case XLXSBJDMX_BJJE when 0 then 0 else RoundFix(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ/XLXSBJDMX_BJJE,{0}) *100 end as ZDXJJCL ", (iZDXJXSWS + 2).ToString())); + else if (sZDXJJCLLX.Equals("4")) + SQL.Add(string.Format(" case (XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ) when 0 then 0 else 100 - RoundFix(XLXSBJDMX_BJDHQCLCB/XLXSBJDMX_ZDXJ,{0}) *100 end as ZDXJJCL ", (iZDXJXSWS + 2).ToString())); + else if (sZDXJJCLLX.Equals("5")) + SQL.Add(string.Format(" case (XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ*" + sCJXS.ToString() + ") when 0 then 0 else RoundFix(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ/(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ*" + sCJXS.ToString() + "),{0}) *100 end as ZDXJJCL ", (iZDXJXSWS + 2).ToString())); + else + SQL.Add(" 0 as ZDXJJCL "); + SQL.Add(" from XLXSBJDMX "); + SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sXHList)); + SQL.Add(" ) tar "); + SQL.Add(" on ( "); + SQL.Add(" tar.XLXSBJDMX_BJDID = sor.XLXSBJDMX_BJDID "); + SQL.Add(" and tar.XLXSBJDMX_XH = sor.XLXSBJDMX_XH "); + SQL.Add(" and sor.XLXSBJDMX_BJDID=:pBJDID "); + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("sor.XLXSBJDMX_XH", sXHList)); + SQL.Add(" ) "); + SQL.Add(" when matched then update set XLXSBJDMX_ZDXJJCL = tar.ZDXJJCL "); + SQL.ParamByName("pBJDID").Value = sBJDID.Trim(); + dberp.ExecSQL(SQL); + } + + + public static void UpdateXLXSBJDJCXJ4(TDatabase dberp, TSQL SQL, string sBJDID) + { + if (GetXLXSBJPZXX(100860008).XLXSBJPZ_JLXJXXHZFS != "4") + return; + + //获取配置信息 + SQL.Clear(); + SQL.Add("select XLXSBJD_BJFLID from XLXSBJD where XLXSBJD_BJDID=:pBJDID "); + SQL.ParamByName("pBJDID").Value = sBJDID; + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count <= 0) + return; + string sBJFLID = ds.Tables[0].Rows[0][0].ToString().Trim(); + BJFLXX flxx = GetBJFLXX(sBJFLID); + string sZDXJJCLLX = flxx.XLXSBJFL_ZDXJJCLLX; + //先删除XLXSBJDJCXJ4记录 + SQL.Clear(); + SQL.Add("delete from XLXSBJDJCXJ4 where XLXSBJDJCXJ4_BJDID=:pBJDID "); + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + + //查询小计信息插入 + StringBuilder strSQL = new StringBuilder(); + strSQL.AppendLine(" select 0 as px2,"); + strSQL.AppendLine(" rtrim(isnull(a.XLXSCPML_CPMLID,' '))||'|'||rtrim(isnull(a.XLXSCPML_CPMLMC,' '))||'非外购(小计)' as HZFS, "); + strSQL.AppendLine(" sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ) as XLXSBJDMX_ZDXJZJE, "); + if (sZDXJJCLLX.Equals("1")) + { + strSQL.AppendLine(" (select case sum(XLXSBJDMX_BJJE) when 0 then 0 else 100-RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ)/sum(XLXSBJDMX_BJJE),4) *100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX "); + strSQL.AppendLine(" left join XLXSBJXHML XHMLCA on XHMLCA.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLCA.XLXSBJXHML_DYDJID = isnull(XLXSBJDMX_DYDJID, ' ') "); + strSQL.AppendLine(" left join XLXSBJXHML XHMLCB on XHMLCB.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLCB.XLXSBJXHML_DYDJID = ' ' "); + strSQL.AppendLine(" left join XLXSCPML c on XLXSCPML_CPMLID = case when ISNULL(XHMLCA.XLXSBJXHML_CPMLID,' ') = ' ' then ISNULL(XHMLCB.XLXSBJXHML_CPMLID,' ') else ISNULL(XHMLCA.XLXSBJXHML_CPMLID,' ') end "); + strSQL.AppendLine(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 and ISNULL(a.XLXSCPML_CPMLID,' ') = ISNULL(c.XLXSCPML_CPMLID,' ') "); + strSQL.AppendLine(" and XLXSBJDMX_WGCPBZ<>'Y' "); + strSQL.AppendLine(" ) as XLXSBJDMX_ZDXJJCL "); + } + else if (sZDXJJCLLX.Equals("2")) + { + strSQL.AppendLine(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ) when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJJE)/sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ),4) *100 -100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX "); + strSQL.AppendLine(" left join XLXSBJXHML XHMLCA on XHMLCA.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLCA.XLXSBJXHML_DYDJID = isnull(XLXSBJDMX_DYDJID, ' ') "); + strSQL.AppendLine(" left join XLXSBJXHML XHMLCB on XHMLCB.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLCB.XLXSBJXHML_DYDJID = ' ' "); + strSQL.AppendLine(" left join XLXSCPML c on XLXSCPML_CPMLID = case when ISNULL(XHMLCA.XLXSBJXHML_CPMLID,' ') = ' ' then ISNULL(XHMLCB.XLXSBJXHML_CPMLID,' ') else ISNULL(XHMLCA.XLXSBJXHML_CPMLID,' ') end "); + strSQL.AppendLine(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 and ISNULL(a.XLXSCPML_CPMLID,' ') = ISNULL(c.XLXSCPML_CPMLID,' ') "); + strSQL.AppendLine(" and XLXSBJDMX_WGCPBZ<>'Y' "); + strSQL.AppendLine(" ) as XLXSBJDMX_ZDXJJCL "); + } + else if (sZDXJJCLLX.Equals("3"))//SQL语句自测:刘青棚 2025/03/11 11:00:00 + { + strSQL.AppendLine(" (select case sum(XLXSBJDMX_BJJE) when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ)/sum(XLXSBJDMX_BJJE),4) *100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX "); + strSQL.AppendLine(" left join XLXSBJXHML XHMLCA on XHMLCA.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLCA.XLXSBJXHML_DYDJID = isnull(XLXSBJDMX_DYDJID, ' ') "); + strSQL.AppendLine(" left join XLXSBJXHML XHMLCB on XHMLCB.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLCB.XLXSBJXHML_DYDJID = ' ' "); + strSQL.AppendLine(" left join XLXSCPML c on XLXSCPML_CPMLID = case when ISNULL(XHMLCA.XLXSBJXHML_CPMLID,' ') = ' ' then ISNULL(XHMLCB.XLXSBJXHML_CPMLID,' ') else ISNULL(XHMLCA.XLXSBJXHML_CPMLID,' ') end "); + strSQL.AppendLine(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 and ISNULL(a.XLXSCPML_CPMLID,' ') = ISNULL(c.XLXSCPML_CPMLID,' ') "); + strSQL.AppendLine(" and XLXSBJDMX_WGCPBZ<>'Y' "); + strSQL.AppendLine(" ) as XLXSBJDMX_ZDXJJCL "); + } + else if (sZDXJJCLLX.Equals("4")) + { + strSQL.AppendLine(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ) when 0 then 0 else 100 - RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB)/sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ),4) *100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX "); + strSQL.AppendLine(" left join XLXSBJXHML XHMLCA on XHMLCA.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLCA.XLXSBJXHML_DYDJID = isnull(XLXSBJDMX_DYDJID, ' ') "); + strSQL.AppendLine(" left join XLXSBJXHML XHMLCB on XHMLCB.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLCB.XLXSBJXHML_DYDJID = ' ' "); + strSQL.AppendLine(" left join XLXSCPML c on XLXSCPML_CPMLID = case when ISNULL(XHMLCA.XLXSBJXHML_CPMLID,' ') = ' ' then ISNULL(XHMLCB.XLXSBJXHML_CPMLID,' ') else ISNULL(XHMLCA.XLXSBJXHML_CPMLID,' ') end "); + strSQL.AppendLine(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 and ISNULL(a.XLXSCPML_CPMLID,' ') = ISNULL(c.XLXSCPML_CPMLID,' ') "); + strSQL.AppendLine(" and XLXSBJDMX_WGCPBZ<>'Y' "); + strSQL.AppendLine(" ) as XLXSBJDMX_ZDXJJCL "); + } + else if (sZDXJJCLLX.Equals("5")) + { + strSQL.AppendLine(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ*" + sCJXS.ToString() + ") when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ)/(sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ*" + sCJXS.ToString() + ")),4) *100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX "); + strSQL.AppendLine(" left join XLXSBJXHML XHMLCA on XHMLCA.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLCA.XLXSBJXHML_DYDJID = isnull(XLXSBJDMX_DYDJID, ' ') "); + strSQL.AppendLine(" left join XLXSBJXHML XHMLCB on XHMLCB.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLCB.XLXSBJXHML_DYDJID = ' ' "); + strSQL.AppendLine(" left join XLXSCPML c on XLXSCPML_CPMLID = case when ISNULL(XHMLCA.XLXSBJXHML_CPMLID,' ') = ' ' then ISNULL(XHMLCB.XLXSBJXHML_CPMLID,' ') else ISNULL(XHMLCA.XLXSBJXHML_CPMLID,' ') end "); + strSQL.AppendLine(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 and ISNULL(a.XLXSCPML_CPMLID,' ') = ISNULL(c.XLXSCPML_CPMLID,' ') "); + strSQL.AppendLine(" and XLXSBJDMX_WGCPBZ<>'Y' "); + strSQL.AppendLine(" ) as XLXSBJDMX_ZDXJJCL "); + } + else + strSQL.AppendLine(" 0 as XLXSBJDMX_ZDXJJCL "); + strSQL.AppendLine(" from XLXSBJDMX "); + strSQL.AppendLine(" left join XLXSBJXHML XHMLAA on XHMLAA.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLAA.XLXSBJXHML_DYDJID = isnull(XLXSBJDMX_DYDJID, ' ') "); + strSQL.AppendLine(" left join XLXSBJXHML XHMLAB on XHMLAB.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and XHMLAB.XLXSBJXHML_DYDJID = ' ' "); + strSQL.AppendLine(" left join XLXSCPML a on XLXSCPML_CPMLID = case when ISNULL(XHMLAA.XLXSBJXHML_CPMLID,' ') = ' ' then ISNULL(XHMLAB.XLXSBJXHML_CPMLID,' ') else ISNULL(XHMLAA.XLXSBJXHML_CPMLID,' ') end "); + strSQL.AppendLine(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID "); + strSQL.AppendLine(" and XLXSBJDMX_WGCPBZ<>'Y' "); + strSQL.AppendLine(" group by a.XLXSCPML_CPMLID,a.XLXSCPML_CPMLMC "); + + strSQL.AppendLine(" union all "); + + strSQL.AppendLine(" select 1 as px2,'外购(小计)' as HZFS, "); + + strSQL.AppendLine(" sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ) as XLXSBJDMX_ZDXJZJE, "); + if (sZDXJJCLLX.Equals("1")) + { + strSQL.AppendLine(" (select case sum(XLXSBJDMX_BJJE) when 0 then 0 else 100-RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ)/sum(XLXSBJDMX_BJJE),4) *100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX "); + strSQL.AppendLine(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 "); + strSQL.AppendLine(" and XLXSBJDMX_WGCPBZ='Y' "); + strSQL.AppendLine(" ) as XLXSBJDMX_ZDXJJCL "); + } + else if (sZDXJJCLLX.Equals("2")) + { + strSQL.AppendLine(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ) when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJJE)/sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ),4) *100 -100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX "); + strSQL.AppendLine(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 "); + strSQL.AppendLine(" and XLXSBJDMX_WGCPBZ='Y' "); + strSQL.AppendLine(" ) as XLXSBJDMX_ZDXJJCL "); + } + else if (sZDXJJCLLX.Equals("3"))//SQL语句自测:刘青棚 2025/03/31 11:00:00 + { + strSQL.AppendLine(" (select case sum(XLXSBJDMX_BJJE) when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ)/sum(XLXSBJDMX_BJJE),4) *100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX "); + strSQL.AppendLine(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 "); + strSQL.AppendLine(" and XLXSBJDMX_WGCPBZ='Y' "); + strSQL.AppendLine(" ) as XLXSBJDMX_ZDXJJCL "); + } + else if (sZDXJJCLLX.Equals("4")) + { + strSQL.AppendLine(" (selec case sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ) when 0 then 0 else 100 - RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_BJDHQCLCB)/sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ),4) *100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX "); + strSQL.AppendLine(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 "); + strSQL.AppendLine(" and XLXSBJDMX_WGCPBZ='Y' "); + strSQL.AppendLine(" ) as XLXSBJDMX_ZDXJJCL "); + } + else if (sZDXJJCLLX.Equals("5")) + { + strSQL.AppendLine(" (select case sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ*" + sCJXS.ToString() + ") when 0 then 0 else RoundFix(sum(XLXSBJDMX_BJSL*XLXSBJDMX_ZDXJ)/(sum(XLXSBJDMX_BJSL*XLXSBJDMX_JGBBJ*" + sCJXS.ToString() + ")),4) *100 end as XLXSBJDMX_ZDXJJCL from XLXSBJDMX "); + strSQL.AppendLine(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_BJJE <> 0 "); + strSQL.AppendLine(" and XLXSBJDMX_WGCPBZ='Y' "); + strSQL.AppendLine(" ) as XLXSBJDMX_ZDXJJCL "); + } + else + strSQL.AppendLine(" 0 as XLXSBJDMX_ZDXJJCL "); + strSQL.AppendLine(" from XLXSBJDMX "); + strSQL.AppendLine(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID "); + strSQL.AppendLine(" and XLXSBJDMX_WGCPBZ='Y' "); + strSQL.AppendLine(" group by XLXSBJDMX_BJDID"); + strSQL.AppendLine(" order by px2,HZFS "); + + SQL.Clear(); + SQL.Add(strSQL.ToString()); + SQL.ParamByName("XLXSBJDMX_BJDID").Value = sBJDID; + ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + string sZDXJJEHZ = "''"; + string sZDXJJCLHZ = "''"; + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + string sHZFS = ds.Tables[0].Rows[i]["HZFS"].ToString().Trim(); + string sZDXJJE = NumberUtils.RoundX(CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSBJDMX_ZDXJZJE"].ToString().Trim()), 2).ToString(); + string sZDXJJCL = NumberUtils.RoundX(CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSBJDMX_ZDXJJCL"].ToString().Trim()), 2).ToString(); + sZDXJJEHZ += "||'" + sHZFS + ":" + sZDXJJE + "元'||char(13)||char(10)"; + sZDXJJCLHZ += "||'" + sHZFS + ":" + sZDXJJCL + "%'||char(13)||char(10)"; + } + SQL.Clear(); + SQL.Add("insert into XLXSBJDJCXJ4(XLXSBJDJCXJ4_BJDID,XLXSBJDJCXJ4_ZDXJJEXJ,XLXSBJDJCXJ4_ZDXJJCLXJ) "); + SQL.Add(" values(:pBJDID," + sZDXJJEHZ + "," + sZDXJJCLHZ + ")"); + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + } + + + + } + + + public static void UpdateJSJGS(string sBJDID, string sBJFLID, string sBJU002) + { + UpdateJSJGS(sBJDID, sBJFLID, sBJU002, "", 0); + } + public static void UpdateJSJGS(string sBJDID, string sBJFLID, string sBJU002, string sBJDXHList, int minBJDXH) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + UpdateJSJGS(dberp, SQL, sBJDID, sBJFLID, sBJU002, sBJDXHList, minBJDXH); + } + public static void UpdateJSJGS(TDatabase dberp, TSQL SQL, string sBJDID, string sBJFLID, string sBJU002, string sBJDXHList, int minBJDXH) + { + UpdateJSJGS(dberp, SQL, sBJDID, sBJFLID, sBJU002, sBJDXHList, minBJDXH, false, false, false, false, ""); + } + public static void UpdateJSJGS(TDatabase dberp, TSQL SQL, string sBJDID, string sBJFLID, string sBJU002, string sBJDXHList, int minBJDXH, bool bYBJ, bool bWBJ, bool bWG, bool bFWG, string sTLcpList) + { + UpdateJSJGS(dberp, SQL, sBJDID, sBJFLID, sBJU002, sBJDXHList, minBJDXH, bYBJ, bWBJ, bWG, bFWG, sTLcpList, DateTime.MinValue); + } + public static void UpdateJSJGS(TDatabase dberp, TSQL SQL, string sBJDID, string sBJFLID, string sBJU002, string sBJDXHList, int minBJDXH, bool bYBJ, bool bWBJ, bool bWG, bool bFWG, string sTLcpList, DateTime tWHSJCondition) + { + int iXSWS = string.IsNullOrEmpty(sBJU002) ? 5 : CMISproConvert.StrToInt(sBJU002); + if (iXSWS < 0) + { + iXSWS = 0; + } + else if (iXSWS > 8) + { + iXSWS = 8; + } + + string sJSJGS = ""; + string sMXBH = ""; + SQL.Clear(); + SQL.Add(" SELECT XLXSBJFL_JSJGS,XLXSBJFL_BJDHQLY,XLXSBJFL_MXBH,XLXSBJFL_JSJXSWS FROM XLXSBJFL where XLXSBJFL_BJFLID = :pXLXSBJFL_BJFLID"); + SQL.ParamByName("pXLXSBJFL_BJFLID").Value = sBJFLID; + DataSet dsBJFLID = dberp.OpenDataSet(SQL); + if (dsBJFLID.Tables[0].Rows.Count > 0) + { + int iJSJXSWS = CMISproConvert.StrToInt(dsBJFLID.Tables[0].Rows[0]["XLXSBJFL_JSJXSWS"].ToString().Trim()); + if (iJSJXSWS != 0) + iXSWS = iJSJXSWS; + sJSJGS = dsBJFLID.Tables[0].Rows[0]["XLXSBJFL_JSJGS"].ToString().Trim(); + sMXBH = dsBJFLID.Tables[0].Rows[0]["XLXSBJFL_MXBH"].ToString().Trim(); + //将数据都处理为0-防止编辑存在部分计算公式出错 + SQL.Clear(); + SQL.Add(" update XLXSBJDMX set XLXSBJDMX_JSJG = 0.0 where XLXSBJDMX_BJDID=:pBJDID "); + if (!sBJDXHList.Equals("")) + { + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDMX_XH >= :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + if (bYBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + if (bWBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ=0.0"); + if (bWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y'"); + //if (!sTLcpList.Equals("")) + // SQL.Add(" and exists(select 1 from XLXHB where XLXHB_XLXHID=UPPER(XLXSBJDMX_XLXHID) and " + CMISproDataBase.GetWhereEqual("XLXHB_DTCLID", sTLcpList) + ") "); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + SQL.ParamByName("pBJDID").Value = sBJDID.Trim(); + dberp.ExecSQL(SQL); + if (!sJSJGS.Equals("")) + { + sJSJGS = sJSJGS.Replace("CLCB", "XXX01").Replace("JGBJJ", "XXX02").Replace("JGBBJ", "XXX03").Replace("CPBJ", "XXX04").Replace("ZDXJ", "XXX05").Replace("BJDHQCB", "XXX06"); + sJSJGS = sJSJGS.Replace("BJ", "tar.XLXSBJDYZZ0_YZZ"); + if (sMXBH.Equals("JGE")) + { + sJSJGS = sJSJGS.Replace("JZ", "tar.XLXSBJDJJYZ_YZZ"); + } + if (dsBJFLID.Tables[0].Rows[0]["XLXSBJFL_BJDHQLY"].ToString().Trim().Equals("1")) + { + sJSJGS = sJSJGS.Replace("XXX01", "sor.XLXSBJDMX_CLCB"); + } + else + { + sJSJGS = sJSJGS.Replace("XXX01", "sor.XLXSBJDMX_BJDHQCLCB"); + } + sJSJGS = sJSJGS.Replace("XXX02", "sor.XLXSBJDMX_JGBJJ"); + sJSJGS = sJSJGS.Replace("XXX03", "sor.XLXSBJDMX_JGBBJ"); + sJSJGS = sJSJGS.Replace("XXX04", "sor.XLXSBJDMX_CPBJ"); + sJSJGS = sJSJGS.Replace("XXX05", "sor.XLXSBJDMX_ZDXJ"); + sJSJGS = sJSJGS.Replace("XXX06", "sor.XLXSBJDMX_BJDHQCLCB"); + sJSJGS = sJSJGS.Replace(" ", "").Replace("×", "*").Replace("100", "100.00"); + sJSJGS = sJSJGS.Replace("round", "roundFix"); + SQL.Clear(); + SQL.Add(" merge into XLXSBJDMX sor "); + SQL.Add(" using ("); + SQL.Add(" select XLXSBJDMX_BJDID,XLXSBJDMX_XH,XLXSBJDMX_BJDHQCLCB,XLXSBJDMX_CLCB, XLXSBJDMX_JGBJJ, XLXSBJDMX_JGBBJ, "); + SQL.Add(" XLXSBJDYZZ0_YZZ01,XLXSBJDYZZ0_YZZ02,XLXSBJDYZZ0_YZZ03,XLXSBJDYZZ0_YZZ04,XLXSBJDYZZ0_YZZ05, "); + SQL.Add(" XLXSBJDYZZ0_YZZ06,XLXSBJDYZZ0_YZZ07,XLXSBJDYZZ0_YZZ08,XLXSBJDYZZ0_YZZ09,XLXSBJDYZZ0_YZZ10, "); + SQL.Add(" XLXSBJDYZZ0_YZZ11,XLXSBJDYZZ0_YZZ12,XLXSBJDYZZ0_YZZ13,XLXSBJDYZZ0_YZZ14,XLXSBJDYZZ0_YZZ15, "); + SQL.Add(" XLXSBJDYZZ0_YZZ16,XLXSBJDYZZ0_YZZ17,XLXSBJDYZZ0_YZZ18,XLXSBJDYZZ0_YZZ19,XLXSBJDYZZ0_YZZ20 "); + if (sMXBH.Equals("JGE")) + { + SQL.Add(" ,XLXSBJDJJYZ_YZZ01,XLXSBJDJJYZ_YZZ02,XLXSBJDJJYZ_YZZ03,XLXSBJDJJYZ_YZZ04,XLXSBJDJJYZ_YZZ05, "); + SQL.Add(" XLXSBJDJJYZ_YZZ06,XLXSBJDJJYZ_YZZ07,XLXSBJDJJYZ_YZZ08,XLXSBJDJJYZ_YZZ09,XLXSBJDJJYZ_YZZ10"); + } + + SQL.Add(" from XLXSBJDMX "); + SQL.Add(" left join XLXSBJDYZZ0 on XLXSBJDYZZ0_BJDID = XLXSBJDMX_BJDID and XLXSBJDYZZ0_XH = XLXSBJDMX_XH "); + if (sMXBH.Equals("JGE")) + SQL.Add(" left join XLXSBJDJJYZ on XLXSBJDJJYZ_BJDID = XLXSBJDMX_BJDID and XLXSBJDJJYZ_XH = XLXSBJDMX_XH "); + SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID "); + if (!sBJDXHList.Equals("")) + { + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDMX_XH >= :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + if (bYBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + if (bWBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ=0.0"); + if (bWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y'"); + //if (!sTLcpList.Equals("")) + // SQL.Add(" and exists(select 1 from XLXHB where XLXHB_XLXHID=UPPER(XLXSBJDMX_XLXHID) and " + CMISproDataBase.GetWhereEqual("XLXHB_DTCLID", sTLcpList) + ") "); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + SQL.Add(" ) tar "); + SQL.Add(" on ( "); + SQL.Add(" tar.XLXSBJDMX_BJDID = sor.XLXSBJDMX_BJDID "); + SQL.Add(" and tar.XLXSBJDMX_XH = sor.XLXSBJDMX_XH "); + SQL.Add(" and sor.XLXSBJDMX_BJDID=:pBJDID "); + SQL.Add(" and isnull(sor.XLXSBJDMX_ZDXJBJDID,' ') = ' ' "); + if (!sBJDXHList.Equals("")) + { + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("sor.XLXSBJDMX_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and sor.XLXSBJDMX_XH >= :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + if (bYBJ) + SQL.Add(" and sor.XLXSBJDMX_JGBBJ<>0.0"); + if (bWBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ=0.0"); + if (bWG) + SQL.Add(" and isnull(sor.XLXSBJDMX_WGCPBZ,' ')='Y'"); + if (bFWG) + SQL.Add(" and isnull(sor.XLXSBJDMX_WGCPBZ,' ')<>'Y'"); + //if (!sTLcpList.Equals("")) + // SQL.Add(" and exists(select 1 from XLXHB where XLXHB_XLXHID=UPPER(sor.XLXSBJDMX_XLXHID) and " + CMISproDataBase.GetWhereEqual("XLXHB_DTCLID", sTLcpList) + ") "); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + SQL.Add(" ) "); + SQL.Add(" when matched then update set XLXSBJDMX_JSJG= RoundFix( "); + SQL.Add(sJSJGS); + SQL.Add(" ,"+iXSWS.ToString()+" )"); + string sJSJJE = "RoundFix( RoundFix(" + sJSJGS + "," + iXSWS.ToString() + ")*XLXSBJDMX_BJSL , 2)"; + SQL.Add(" , XLXSBJDMX_JSJJE="+sJSJJE ); + string sJSJJCLLX=GetBJFLXX(sBJFLID).XLXSBJFL_JSJJCLLX; + + if (sJSJJCLLX.Equals("1")) + { + + SQL.Add(string.Format(" , XLXSBJDMX_JSJJCL=case when XLXSBJDMX_BJJE=0 then 0 else RoundFix(100*(XLXSBJDMX_BJJE-{0})/XLXSBJDMX_BJJE,2) end ", sJSJJE)); + + } + else if (sJSJJCLLX.Equals("2")) + { + SQL.Add(string.Format(" , XLXSBJDMX_JSJJCL=case when {0}=0 then 0 else RoundFix(100*(XLXSBJDMX_BJJE-{0})/{0},2) end ", sJSJJE)); + + } + else if (sJSJJCLLX.Equals("3")) + { + SQL.Add(string.Format(" , XLXSBJDMX_JSJJCL=case when XLXSBJDMX_BJJE=0 then 0 else RoundFix(100*({0})/XLXSBJDMX_BJJE,2) end ", sJSJJE)); + + } + + + SQL.ParamByName("pBJDID").Value = sBJDID.Trim(); + string SS = SQL.Text; + try + { + dberp.ExecSQL(SQL); + } + catch + { + string sXH = ""; + SQL.Clear(); + SQL.Add(" select XLXSBJDMX_BJDID, XLXSBJDMX_XH from XLXSBJDMX where XLXSBJDMX_BJDID=:pBJDID "); + if (!sBJDXHList.Equals("")) + { + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDMX_XH >= :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + if (bYBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + if (bWBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ=0.0"); + if (bWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y'"); + //if (!sTLcpList.Equals("")) + // SQL.Add(" and exists(select 1 from XLXHB where XLXHB_XLXHID=UPPER(XLXSBJDMX_XLXHID) and " + CMISproDataBase.GetWhereEqual("XLXHB_DTCLID", sTLcpList) + ") "); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + SQL.Add(" order by XLXSBJDMX_XH "); + SQL.ParamByName("pBJDID").Value = sBJDID.Trim(); + DataSet dsCalByLine = dberp.OpenDataSet(SQL); + if (dsCalByLine.Tables[0].Rows.Count > 0) + { + for (int i = 0; i < dsCalByLine.Tables[0].Rows.Count; i++) + { + sXH = dsCalByLine.Tables[0].Rows[i]["XLXSBJDMX_XH"].ToString().Trim(); + + try + { + UpdateJSJGSByLine(dberp, SQL, sBJDID,sBJFLID, sJSJGS, iXSWS, sXH, sMXBH); + } + catch + { + } + } + } + } + } + } + } + + //根据最低限价计算公式计算线缆销售报价单明细最低限价 + public static string GetJSJ(string sCLCB, string sBJDHQCLCB, string sJGBJJ, string sJGBBJ, string sCPBJ, string sZDXJ, + string sYZZ01, string sYZZ02, string sYZZ03, string sYZZ04, string sYZZ05, + string sYZZ06, string sYZZ07, string sYZZ08, string sYZZ09, string sYZZ10, + string sYZZ11, string sYZZ12, string sYZZ13, string sYZZ14, string sYZZ15, + string sYZZ16, string sYZZ17, string sYZZ18, string sYZZ19, string sYZZ20, + Dictionary dicChanedField, string sJSJ, string sBJFLID, int tmpXSWS, string sUpdJJYZList) + { + bool NeedChang = false; + //最低限价公式目前支持的选项字段 + string sField = "XLXSBJDMX_CLCB,XLXSBJDMX_BJDHQCLCB,XLXSBJDMX_JGBJJ,XLXSBJDMX_JGBBJ,XLXSBJDMX_CPBJ,XLXSBJDMX_ZDXJ,TZYZ_BJ01,TZYZ_BJ02,TZYZ_BJ03,TZYZ_BJ04,TZYZ_BJ05,TZYZ_BJ06,TZYZ_BJ07,TZYZ_BJ08,TZYZ_BJ09,TZYZ_BJ10,TZYZ_BJ11,TZYZ_BJ12,TZYZ_BJ13,TZYZ_BJ14,TZYZ_BJ15,TZYZ_BJ16,TZYZ_BJ17,TZYZ_BJ18,TZYZ_BJ19,TZYZ_BJ20"; + foreach (string tmpField in sField.Split(',')) + { + if (dicChanedField.ContainsKey(tmpField)) + { + NeedChang = true; + break; + } + } + + if (NeedChang) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add(" SELECT XLXSBJFL_JSJGS,XLXSBJFL_BJDHQLY,XLXSBJFL_MXBH,XLXSBJFL_JSJXSWS FROM XLXSBJFL where XLXSBJFL_BJFLID = :pXLXSBJFL_BJFLID"); + SQL.ParamByName("pXLXSBJFL_BJFLID").Value = sBJFLID; + DataSet dsBJFLID = dberp.OpenDataSet(SQL); + if (dsBJFLID.Tables[0].Rows.Count > 0) + { + int iJSJXSWS = CMISproConvert.StrToInt(dsBJFLID.Tables[0].Rows[0]["XLXSBJFL_JSJXSWS"].ToString().Trim()); + if (iJSJXSWS != 0) + tmpXSWS = iJSJXSWS; + if (!dsBJFLID.Tables[0].Rows[0]["XLXSBJFL_JSJGS"].ToString().Trim().Equals("")) + { + sYZZ01 = sYZZ01.Trim().Equals("") ? "0" : sYZZ01.Trim(); sYZZ02 = sYZZ02.Trim().Equals("") ? "0" : sYZZ02.Trim(); + sYZZ03 = sYZZ03.Trim().Equals("") ? "0" : sYZZ03.Trim(); sYZZ04 = sYZZ04.Trim().Equals("") ? "0" : sYZZ04.Trim(); + sYZZ05 = sYZZ05.Trim().Equals("") ? "0" : sYZZ05.Trim(); sYZZ06 = sYZZ06.Trim().Equals("") ? "0" : sYZZ06.Trim(); + sYZZ07 = sYZZ07.Trim().Equals("") ? "0" : sYZZ07.Trim(); sYZZ08 = sYZZ08.Trim().Equals("") ? "0" : sYZZ08.Trim(); + sYZZ09 = sYZZ09.Trim().Equals("") ? "0" : sYZZ09.Trim(); sYZZ10 = sYZZ10.Trim().Equals("") ? "0" : sYZZ10.Trim(); + sYZZ11 = sYZZ11.Trim().Equals("") ? "0" : sYZZ11.Trim(); sYZZ12 = sYZZ12.Trim().Equals("") ? "0" : sYZZ12.Trim(); + sYZZ13 = sYZZ13.Trim().Equals("") ? "0" : sYZZ13.Trim(); sYZZ14 = sYZZ14.Trim().Equals("") ? "0" : sYZZ14.Trim(); + sYZZ15 = sYZZ15.Trim().Equals("") ? "0" : sYZZ15.Trim(); sYZZ16 = sYZZ16.Trim().Equals("") ? "0" : sYZZ16.Trim(); + sYZZ17 = sYZZ17.Trim().Equals("") ? "0" : sYZZ17.Trim(); sYZZ18 = sYZZ18.Trim().Equals("") ? "0" : sYZZ18.Trim(); + sYZZ19 = sYZZ19.Trim().Equals("") ? "0" : sYZZ19.Trim(); sYZZ20 = sYZZ20.Trim().Equals("") ? "0" : sYZZ20.Trim(); + string sJSJGS = dsBJFLID.Tables[0].Rows[0]["XLXSBJFL_JSJGS"].ToString().Trim(); + if (dsBJFLID.Tables[0].Rows[0]["XLXSBJFL_BJDHQLY"].ToString().Trim().Equals("1")) + { + sJSJGS = sJSJGS.Replace("CLCB", sCLCB); + } + else + { + sJSJGS = sJSJGS.Replace("CLCB", sBJDHQCLCB); + } + sJSJGS = sJSJGS.Replace("JGBJJ", sJGBJJ).Replace("JGBBJ", sJGBBJ).Replace("CPBJ", sCPBJ).Replace("ZDXJ", sZDXJ).Replace("BJDHQCB", sBJDHQCLCB); + sJSJGS = sJSJGS.Replace(" ", "").Replace("×", "*");//Replace("100", "100.00")是因为数据库计算时1/100的结果是0需转换为1/100.00结果才是0.01,此处直接计算无需处理 + sJSJGS = sJSJGS.Replace("BJ01", sYZZ01).Replace("BJ02", sYZZ02).Replace("BJ03", sYZZ03).Replace("BJ04", sYZZ04).Replace("BJ05", sYZZ05); + sJSJGS = sJSJGS.Replace("BJ06", sYZZ06).Replace("BJ07", sYZZ07).Replace("BJ08", sYZZ08).Replace("BJ09", sYZZ09).Replace("BJ10", sYZZ10); + sJSJGS = sJSJGS.Replace("BJ11", sYZZ11).Replace("BJ12", sYZZ12).Replace("BJ13", sYZZ13).Replace("BJ14", sYZZ14).Replace("BJ15", sYZZ15); + sJSJGS = sJSJGS.Replace("BJ16", sYZZ16).Replace("BJ17", sYZZ17).Replace("BJ18", sYZZ18).Replace("BJ19", sYZZ19).Replace("BJ20", sYZZ20); + if (dsBJFLID.Tables[0].Rows[0]["XLXSBJFL_MXBH"].ToString().Trim().Equals("JGE")) + { + string[] strJJYZZ = sUpdJJYZList.ToString().Trim().Split('|'); + sJSJGS = sJSJGS.Replace("JZ01", strJJYZZ[0]).Replace("JZ02", strJJYZZ[1]).Replace("JZ03", strJJYZZ[2]).Replace("JZ04", strJJYZZ[3]).Replace("JZ05", strJJYZZ[4]); + sJSJGS = sJSJGS.Replace("JZ06", strJJYZZ[5]).Replace("JZ07", strJJYZZ[6]).Replace("JZ08", strJJYZZ[7]).Replace("JZ09", strJJYZZ[8]).Replace("JZ10", strJJYZZ[9]); + } + double dJSJ = 0; + gtExpression exp = new gtExpression(); + try + { + dJSJ = NumberUtils.RoundX(exp.Evaluate(sJSJGS), tmpXSWS); + } + catch + { + dJSJ = 0; + } + sJSJ = dJSJ.ToString().Trim(); + } + } + } + return sJSJ; + } + + //根据报价分类的最低限价公式逐行计算XLXSBJDMX_ZDXJ(最低限价)字段 + private static void UpdateJSJGSByLine(TDatabase dberp, TSQL SQL, string sBJDID,string sBJFLID, string sJSJGS, int iXSWS, string sXHList, string sMXBH) + { + + SQL.Clear(); + SQL.Add(" merge into XLXSBJDMX sor "); + SQL.Add(" using ("); + SQL.Add(" select XLXSBJDMX_BJDID,XLXSBJDMX_XH,XLXSBJDMX_BJDHQCLCB,XLXSBJDMX_CLCB, XLXSBJDMX_JGBJJ, XLXSBJDMX_JGBBJ, "); + SQL.Add(" XLXSBJDYZZ0_YZZ01,XLXSBJDYZZ0_YZZ02,XLXSBJDYZZ0_YZZ03,XLXSBJDYZZ0_YZZ04,XLXSBJDYZZ0_YZZ05, "); + SQL.Add(" XLXSBJDYZZ0_YZZ06,XLXSBJDYZZ0_YZZ07,XLXSBJDYZZ0_YZZ08,XLXSBJDYZZ0_YZZ09,XLXSBJDYZZ0_YZZ10, "); + SQL.Add(" XLXSBJDYZZ0_YZZ11,XLXSBJDYZZ0_YZZ12,XLXSBJDYZZ0_YZZ13,XLXSBJDYZZ0_YZZ14,XLXSBJDYZZ0_YZZ15, "); + SQL.Add(" XLXSBJDYZZ0_YZZ16,XLXSBJDYZZ0_YZZ17,XLXSBJDYZZ0_YZZ18,XLXSBJDYZZ0_YZZ19,XLXSBJDYZZ0_YZZ20 "); + if (sMXBH.Equals("JGE")) + { + SQL.Add(" ,XLXSBJDJJYZ_YZZ01,XLXSBJDJJYZ_YZZ02,XLXSBJDJJYZ_YZZ03,XLXSBJDJJYZ_YZZ04,XLXSBJDJJYZ_YZZ05, "); + SQL.Add(" XLXSBJDJJYZ_YZZ06,XLXSBJDJJYZ_YZZ07,XLXSBJDJJYZ_YZZ08,XLXSBJDJJYZ_YZZ09,XLXSBJDJJYZ_YZZ10"); + } + + SQL.Add(" from XLXSBJDMX "); + SQL.Add(" left join XLXSBJDYZZ0 on XLXSBJDYZZ0_BJDID = XLXSBJDMX_BJDID and XLXSBJDYZZ0_XH = XLXSBJDMX_XH "); + if (sMXBH.Equals("JGE")) + SQL.Add(" left join XLXSBJDJJYZ on XLXSBJDJJYZ_BJDID = XLXSBJDMX_BJDID and XLXSBJDJJYZ_XH = XLXSBJDMX_XH "); + SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sXHList)); + SQL.Add(" ) tar "); + SQL.Add(" on ( "); + SQL.Add(" tar.XLXSBJDMX_BJDID = sor.XLXSBJDMX_BJDID "); + SQL.Add(" and tar.XLXSBJDMX_XH = sor.XLXSBJDMX_XH "); + SQL.Add(" and sor.XLXSBJDMX_BJDID=:pBJDID "); + SQL.Add(" and isnull(sor.XLXSBJDMX_ZDXJBJDID,' ')=' ' "); + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("sor.XLXSBJDMX_XH", sXHList)); + SQL.Add(" ) "); + SQL.Add(" when matched then update set XLXSBJDMX_JSJG = RoundFix( "); + SQL.Add(sJSJGS); + SQL.Add(" ," + iXSWS.ToString() + " )"); + string sJSJJE = "RoundFix( RoundFix(" + sJSJGS + "," + iXSWS.ToString() + ")*XLXSBJDMX_BJSL , 2)"; + SQL.Add(" , XLXSBJDMX_JSJJE=" + sJSJJE); + string sJSJJCLLX = GetBJFLXX(sBJFLID).XLXSBJFL_JSJJCLLX; + + if (sJSJJCLLX.Equals("1")) + { + + SQL.Add(string.Format(" , XLXSBJDMX_JSJJCL=case when XLXSBJDMX_BJJE=0 then 0 else RoundFix(100*(XLXSBJDMX_BJJE-{0})/XLXSBJDMX_BJJE,2) end ", sJSJJE)); + + } + else if (sJSJJCLLX.Equals("2")) + { + SQL.Add(string.Format(" , XLXSBJDMX_JSJJCL=case when {0}=0 then 0 else RoundFix(100*(XLXSBJDMX_BJJE-{0})/{0},2) end ", sJSJJE)); + + } + else if (sJSJJCLLX.Equals("3")) + { + SQL.Add(string.Format(" , XLXSBJDMX_JSJJCL=case when XLXSBJDMX_BJJE=0 then 0 else RoundFix(100*({0})/XLXSBJDMX_BJJE,2) end ", sJSJJE)); + + } + SQL.ParamByName("pBJDID").Value = sBJDID.Trim(); + dberp.ExecSQL(SQL); + } + + + + + + public static void UpdateYXJJCL(TDatabase dberp, TSQL SQL, string sBJDID, string sBJFLID, string sBJDXHList, int minBJDXH, bool bYBJ, bool bWBJ, bool bWG, bool bFWG, string sTLcpList, DateTime tWHSJCondition) + { + string sYXJJCLLX = GetBJFLXX(sBJFLID).XLXSBJFL_YXJJCLLX; + if (sYXJJCLLX.Equals("")) + return; + SQL.Clear(); + SQL.Add(" update XLXSBJDMX set XLXSBJDMX_YXJJCL = (case when XLXSBJDMX_YXJG=0 then 0 else round((1-XLXSBJDMX_ZDXJ/XLXSBJDMX_YXJG),4)*100 end) where XLXSBJDMX_BJDID=:pBJDID and isnull(XLXSBJDMX_ZDXJBJDID,' ') = ' ' "); + if (!sBJDXHList.Equals("")) + { + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDMX_XH >= :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + if (bYBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + if (bWBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ=0.0"); + if (bWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y'"); + //if (!sTLcpList.Equals("")) + // SQL.Add(" and exists(select 1 from XLXHB where XLXHB_XLXHID=UPPER(XLXSBJDMX_XLXHID) and " + CMISproDataBase.GetWhereEqual("XLXHB_DTCLID", sTLcpList) + ") "); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + SQL.ParamByName("pBJDID").Value = sBJDID.Trim(); + dberp.ExecSQL(SQL); + + } + + + + + /// + /// 明细变化更新后台字段后同步更新主表总金额等,解决直接刷新网址或者关闭浏览器,就不会触发报价总金额、材料总重量汇总计算问题 + /// + /// + /// 表价价差率公式 + /// 计运费 + /// 运输节点ID + /// 运输单位ID + /// 运费物料 + /// 报价含运费 + public static void UpdateXLXSBJD(TDatabase dberp, TSQL SQL, string sBJDID, string sJCLLX, string sLJJCLLX, string sZDXJJCLLX, string sJYF, string sYSJDID, string sGYSID, string sYFWLID, string sBJHYF) + { + double fZJE = 0; + double fLRE = 0; + double fZZL = 0; + double fCPJE = 0;//表价金额 + double fLRL = 0; + double fCLCB = 0;//材料成本 + double fBJDCLCB = 0;//报价单材料成本 + double fCLCBJCL = 0; + double fZDXJ = 0;//最低限价 + double fZDXJJCL = 0; + double fBJLJJJCL = 0; + double fLJF0ZJE = 0; + double fPFZJE = 0; + string sBJLJJCLLX = ""; + string sBJJCLBJRQDWCP = ""; + string sLJJCLBJRQDWCP = ""; + string sZDXJJCLBJRQDWCP = ""; + double fZJEQDN = 0; + double fLREQDN = 0; + double fCPJEQDN = 0; + double fCLCBQDN = 0; + double fBJDCLCBQDN = 0; + double fZDXJQDN = 0; + double fLJF0ZJEQDN = 0; + + SQL.Clear(); + SQL.Add(" select XLXSBJFL_BJLJJCLLX,XLXSBJFL_BJJCLBJRQDWCP,XLXSBJFL_LJJCLBJRQDWCP,XLXSBJFL_ZDXJJCLBJRQDWCP "); + SQL.Add(" FROM XLXSBJFL LEFT JOIN XLXSBJD ON XLXSBJD_BJFLID = XLXSBJFL_BJFLID WHERE XLXSBJD_BJDID = :pBJDID "); + SQL.ParamByName("pBJDID").Value = sBJDID; + DataSet Tmpds = dberp.OpenDataSet(SQL); + if (Tmpds.Tables[0].Rows.Count > 0) + { + sBJLJJCLLX = Tmpds.Tables[0].Rows[0]["XLXSBJFL_BJLJJCLLX"].ToString().Trim(); + sBJJCLBJRQDWCP = Tmpds.Tables[0].Rows[0]["XLXSBJFL_BJJCLBJRQDWCP"].ToString().Trim(); + sLJJCLBJRQDWCP = Tmpds.Tables[0].Rows[0]["XLXSBJFL_LJJCLBJRQDWCP"].ToString().Trim(); + sZDXJJCLBJRQDWCP = Tmpds.Tables[0].Rows[0]["XLXSBJFL_ZDXJJCLBJRQDWCP"].ToString().Trim(); + } + + SQL.Clear(); + SQL.Add("select sum(XLXSBJDMX_BJJE) as ZJE,sum(XLXSBJDMX_JGBBJJCE) as LRE,sum(XLXSBJDMX_PJJE) as PJZJE,"); + SQL.Add(" sum(XLXSBJDMX_CLZL) as ZZL,sum(XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL) as CPJE,"); + SQL.Add(" sum(XLXSBJDMX_CLCB*XLXSBJDMX_BJSL) as CLCB,sum(XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL) as BJDCLCB,"); + SQL.Add(" sum(XLXSBJDMX_ZDXJ*XLXSBJDMX_BJSL) as ZDXJ "); + if (sLJJCLLX.Equals("1")) + { + SQL.Add(" ,sum(case when XLXSBJDMX_CLCB = 0 then 0 else XLXSBJDMX_BJJE end) as LJF0ZJE "); + } + else + { + SQL.Add(" ,sum(case when XLXSBJDMX_BJDHQCLCB = 0 then 0 else XLXSBJDMX_BJJE end) as LJF0ZJE "); + } + if (sBJJCLBJRQDWCP.Equals("Y") || sLJJCLBJRQDWCP.Equals("Y") || sZDXJJCLBJRQDWCP.Equals("Y")) + { + SQL.Add(" ,sum(case when XLXSBJDMX_CLZL = 0 then 0 else 1 end * XLXSBJDMX_BJJE ) as ZJEQDN "); + SQL.Add(" ,sum(case when XLXSBJDMX_CLZL = 0 then 0 else 1 end * XLXSBJDMX_JGBBJJCE ) as LREQDN "); + SQL.Add(" ,sum(case when XLXSBJDMX_CLZL = 0 then 0 else 1 end * XLXSBJDMX_JGBBJ*XLXSBJDMX_BJSL ) as CPJEQDN "); + SQL.Add(" ,sum(case when XLXSBJDMX_CLZL = 0 then 0 else 1 end * XLXSBJDMX_CLCB*XLXSBJDMX_BJSL ) as CLCBQDN "); + SQL.Add(" ,sum(case when XLXSBJDMX_CLZL = 0 then 0 else 1 end * XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL ) as BJDCLCBQDN "); + SQL.Add(" ,sum(case when XLXSBJDMX_CLZL = 0 then 0 else 1 end * XLXSBJDMX_ZDXJ*XLXSBJDMX_BJSL ) as ZDXJQDN "); + if (sLJJCLLX.Equals("1")) + SQL.Add(" ,sum(case when XLXSBJDMX_CLZL = 0 then 0 else 1 end * case when XLXSBJDMX_CLCB = 0 then 0 else XLXSBJDMX_BJJE end ) as LJF0ZJEQDN "); + else + SQL.Add(" ,sum(case when XLXSBJDMX_CLZL = 0 then 0 else 1 end * case when XLXSBJDMX_BJDHQCLCB = 0 then 0 else XLXSBJDMX_BJJE end ) as LJF0ZJEQDN "); + } + SQL.Add(" from XLXSBJDMX"); + SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID"); + SQL.ParamByName("pBJDID").Value = sBJDID; + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + fZJE = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["ZJE"].ToString(), 0); + fLRE = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["LRE"].ToString(), 0); + fZZL = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["ZZL"].ToString(), 0); + fCPJE = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["CPJE"].ToString(), 0); + fCLCB = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["CLCB"].ToString(), 0); + fBJDCLCB = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["BJDCLCB"].ToString(), 0); + fZDXJ = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["ZDXJ"].ToString(), 0); + fLJF0ZJE = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["LJF0ZJE"].ToString(), 0); + fPFZJE = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["PJZJE"].ToString(), 0); + if (sBJJCLBJRQDWCP.Equals("Y") || sLJJCLBJRQDWCP.Equals("Y") || sZDXJJCLBJRQDWCP.Equals("Y")) + { + fZJEQDN = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["ZJEQDN"].ToString(), 0); + fLREQDN = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["LREQDN"].ToString(), 0); + fCPJEQDN = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["CPJEQDN"].ToString(), 0); + fCLCBQDN = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["CLCBQDN"].ToString(), 0); + fBJDCLCBQDN = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["BJDCLCBQDN"].ToString(), 0); + fZDXJQDN = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["ZDXJQDN"].ToString(), 0); + fLJF0ZJEQDN = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["LJF0ZJEQDN"].ToString(), 0); + } + } + + double ofZJE = fZJE; + + if (sBJJCLBJRQDWCP.Equals("Y")) + { + fZJE = fZJEQDN; + fLRE = fLREQDN; + fCPJE = fCPJEQDN; + } + if (sJCLLX.Equals("1")) + { + if (fZJE == 0) + fLRL = 0; + else + fLRL = NumberUtils.RoundX(fLRE / fZJE * 100, 2); + } + else if (sJCLLX.Equals("2")) + { + if (fCPJE == 0) + fLRL = 0; + else + fLRL = NumberUtils.RoundX(fLRE / fCPJE * 100, 2); + } + else if (sJCLLX.Equals("3")) + { + if (fZJE == 0) + fLRL = 0; + else + fLRL = NumberUtils.RoundX(fCPJE / fZJE * 100, 2); + } + else if (sJCLLX.Equals("4")) + { + if (fCPJE == 0) + fLRL = 0; + else + fLRL = NumberUtils.RoundX(fLRE / fCPJE * 100, 2); + } + + if (sLJJCLBJRQDWCP.Equals("Y")) + { + fLJF0ZJE = fLJF0ZJEQDN; + fCLCB = fCLCBQDN; + fBJDCLCB = fBJDCLCBQDN; + } + if (sLJJCLLX.Equals("1")) + { + if (fLJF0ZJE == 0) + fCLCBJCL = 0; + else + fCLCBJCL = 100 - NumberUtils.RoundX(fCLCB / fLJF0ZJE * 100, 2); + } + else if (sLJJCLLX.Equals("2")) + { + if (fLJF0ZJE == 0) + fCLCBJCL = 0; + else + fCLCBJCL = 100 - NumberUtils.RoundX(fBJDCLCB / fLJF0ZJE * 100, 2); + } + else if (sLJJCLLX.Equals("3")) + { + if (fBJDCLCB == 0) + fCLCBJCL = 0; + else + fCLCBJCL = NumberUtils.RoundX(fLJF0ZJE / fBJDCLCB * 100, 2) - 100; + } + else if (sLJJCLLX.Equals("4")) + { + if (fLJF0ZJE == 0) + fCLCBJCL = 0; + else + fCLCBJCL = NumberUtils.RoundX(fBJDCLCB / fLJF0ZJE * 100, 2); + } + + if (sBJJCLBJRQDWCP.Equals("Y") || sLJJCLBJRQDWCP.Equals("Y")) + { + fCPJE = fCPJEQDN; + fBJDCLCB = fBJDCLCBQDN; + } + + if (sBJLJJCLLX.Equals("1")) + { + if (fCPJE != 0) + fBJLJJJCL = NumberUtils.RoundX((fCPJE - fBJDCLCB) / fCPJE * 100, 2); + } + + + CMISproSession tSession = CMISproSessionManager.GetCurrentSession(); + int iXSWS = CMISproConvert.StrToInt(tSession.GetOption(100860000, "BJU054")); + + if (sZDXJJCLBJRQDWCP.Equals("Y")) + { + fZDXJ = fZDXJQDN; + fZJE = fZJEQDN; + fBJDCLCB = fBJDCLCBQDN; + + } + if (sZDXJJCLLX.Equals("1")) + { + if (fZJE == 0) + fZDXJJCL = 0; + else + fZDXJJCL = 100 - NumberUtils.RoundX(fZDXJ / fZJE * 100, iXSWS); + } + else if (sZDXJJCLLX.Equals("2")) + { + if (fZDXJ == 0) + fZDXJJCL = 0; + else + fZDXJJCL = NumberUtils.RoundX(fZJE / fZDXJ * 100, iXSWS) - 100; + } + else if (sZDXJJCLLX.Equals("3")) + { + if (fZJE == 0) + fZDXJJCL = 0; + else + fZDXJJCL = NumberUtils.RoundX(fZDXJ / fZJE * 100, iXSWS); + } + else if (sZDXJJCLLX.Equals("4")) + { + if (fZDXJ == 0) + fZDXJJCL = 0; + else + fZDXJJCL = 100 - NumberUtils.RoundX(fBJDCLCB / fZDXJ * 100, iXSWS); + } + else if (sZDXJJCLLX.Equals("5")) + { + if (fCPJE == 0) + fZDXJJCL = 0; + else + fZDXJJCL = NumberUtils.RoundX(fZDXJ / (fCPJE * sCJXS) * 100, iXSWS); + } + + fZJE = ofZJE; + fZJE = NumberUtils.RoundX(fZJE, 2); + fZZL = NumberUtils.RoundX(fZZL, 3); + + double fYSFY = 0;//运输费用 + //计运费 + if (sJYF.Equals("Y")) + { + fYSFY = XLBJDInfo.GetYSFY(sYSJDID, sGYSID, sYFWLID, fZZL); + } + + SQL.Clear(); + SQL.Add("update XLXSBJD set XLXSBJD_ZJE=:pZJE,XLXSBJD_YSFY=:pYSFY,XLXSBJD_LRL=:pLRL,XLXSBJD_ZZL=:pZZL,XLXSBJD_CLCBJCL= :pCLCBJCL, "); + SQL.Add(" XLXSBJD_JGBBJLJJCL= :pJGBBJLJJCL,XLXSBJD_ZDXJJCL = :pZDXJJCL,XLXSBJD_PJZJE=:pPJZJE "); + SQL.Add(" where XLXSBJD_BJDID=:pBJDID "); + if (XLBJDUtils.GetXLXSBJPZXX(100860000).XLXSBJPZ_PFBJRBJ == "Y") + fZJE += fPFZJE; + if (sBJHYF.Equals("Y")) + SQL.ParamByName("pZJE").Value = fZJE + fYSFY * fZZL; + else + SQL.ParamByName("pZJE").Value = fZJE; + SQL.ParamByName("pYSFY").Value = fYSFY * fZZL; + SQL.ParamByName("pLRL").Value = fLRL; + SQL.ParamByName("pZZL").Value = fZZL; + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pCLCBJCL").Value = fCLCBJCL; + SQL.ParamByName("pJGBBJLJJCL").Value = fBJLJJJCL; + SQL.ParamByName("pZDXJJCL").Value = fZDXJJCL; + SQL.ParamByName("pPJZJE").Value = fPFZJE; + dberp.ExecSQL(SQL); + + UpdateXLXSBJDJCXJ4(dberp, SQL, sBJDID); + } + + //获取报价产品属于组合产品目录价格表的哪一张JGC价格表,返回价格表号 + private static string GetJGCID(string sJGCIDS, string sXLXHID, string sXLGGID, string sST, string sDYDJ) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + if (!sJGCIDS.Trim().Equals("")) + { + sql.Clear(); + sql.Add("select XLXSJGBMX_JGBID from XLXSJGBMX"); + sql.Add(" left join XLXSJGB on XLXSJGB_MXBH='JGC' and XLXSJGB_JGBID=XLXSJGBMX_JGBID"); + sql.Add(" where " + CMISproDataBase.GetWhereEqual("XLXSJGB_JGBID", sJGCIDS.Trim())); + sql.Add(" and XLXSJGBMX_XLXHID=:pXLXHID and XLXSJGBMX_XLGGID=:pXLGGID"); + sql.Add(" and XLXSJGBMX_XLBZID=:pXLBZID and isnull(XLXSJGBMX_DYDJID,' ')=:pDYDJID"); + sql.Add(" order by XLXSJGBMX_JGBID,XLXSJGBMX_XH"); + sql.ParamByName("pXLXHID").Value = sXLXHID; + sql.ParamByName("pXLGGID").Value = sXLGGID; + sql.ParamByName("pXLBZID").Value = sST; + sql.ParamByName("pDYDJID").Value = sDYDJ.Trim().Equals("") ? " " : sDYDJ.Trim(); + DataSet dsJGC = dberp.OpenDataSet(sql); + if (dsJGC.Tables[0].Rows.Count > 0) + { + return dsJGC.Tables[0].Rows[0]["XLXSJGBMX_JGBID"].ToString().Trim(); + } + else + return ""; + } + else + return ""; + } + + //获取YZID对应的TJYZID + public static Dictionary GetTJYZIDXX(string sMXBH) + { + Dictionary dicTJYZID = new Dictionary(); + + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + sql.Clear(); + sql.Add("select XLXSTZYZ_YZID,XLXSTZYZ_TJYZID"); + sql.Add(" from XLXSTZYZ"); + sql.Add(" where XLXSTZYZ_MXBH=:pMXBH"); + sql.Add(" order by XLXSTZYZ_YZID"); + sql.ParamByName("pMXBH").Value = sMXBH; + DataSet ds = dberp.OpenDataSet(sql); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + string sYZID = ds.Tables[0].Rows[i]["XLXSTZYZ_YZID"].ToString().Trim(); + string sTJYZID = ds.Tables[0].Rows[i]["XLXSTZYZ_TJYZID"].ToString().Trim(); + + dicTJYZID.Add(sYZID, sTJYZID); + } + return dicTJYZID; + } + + //获取YZID对应的TYZZYZID + public static Dictionary GetTYZZYZIDXX(string sMXBH) + { + Dictionary dicTYZZYZID = new Dictionary(); + + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + sql.Clear(); + sql.Add("select XLXSTZYZ_YZID,XLXSTZYZ_TYZZYZID"); + sql.Add(" from XLXSTZYZ"); + sql.Add(" where XLXSTZYZ_MXBH=:pMXBH"); + sql.Add(" order by XLXSTZYZ_YZID"); + sql.ParamByName("pMXBH").Value = sMXBH; + DataSet ds = dberp.OpenDataSet(sql); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + string sYZID = ds.Tables[0].Rows[i]["XLXSTZYZ_YZID"].ToString().Trim(); + string sTYZZYZID = ds.Tables[0].Rows[i]["XLXSTZYZ_TYZZYZID"].ToString().Trim(); + + dicTYZZYZID.Add(sYZID, sTYZZYZID); + } + return dicTYZZYZID; + } + + /// + /// 截断含中文的字符串 + /// + /// + /// + /// + public static string SubStringFunc(string Input, int Len) + { + byte[] b = System.Text.ASCIIEncoding.Default.GetBytes(Input); + if (b.Length <= Len) + return Input; + else + { + if (int.Parse(b[Len - 1].ToString()).Equals(63)) + return System.Text.ASCIIEncoding.Default.GetString(b, 0, Len); + else + return System.Text.ASCIIEncoding.Default.GetString(b, 0, Len).TrimEnd('?'); + } + } + + /// + /// 获取报价分类的调价因素----调用之前先判断必须是JGE + /// + /// + /// + public static string GetJGBTJYSSByBJFLID(string sBJFLID) + { + string sJGBTJYSS = ""; + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add("SELECT XLXSBJFL_JGBTJYSS FROM XLXSBJFL where XLXSBJFL_BJFLID =:pBJFLID "); + SQL.ParamByName("pBJFLID").Value = sBJFLID; + DataSet dsBJFLDID = dberp.OpenDataSet(SQL); + if (dsBJFLDID.Tables[0].Rows.Count > 0) + { + sJGBTJYSS = dsBJFLDID.Tables[0].Rows[0][0].ToString().Trim(); + } + return sJGBTJYSS; + } + + public static string GetJGBJSGS(string sJGBID) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add("select XLXSJGB_JSGS "); + SQL.Add(" from XLXSJGB"); + SQL.Add(" where XLXSJGB_JGBID=:pJGBID"); + SQL.ParamByName("pJGBID").Value = sJGBID; + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + return ds.Tables[0].Rows[0]["XLXSJGB_JSGS"].ToString().Trim(); + } + return ""; + } + + /// + /// 是否JGE价格表 + /// + /// + /// + public static bool IsJGEJGB(string sJGBID) + { + if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSJGB where XLXSJGB_JGBID='{0}' and XLXSJGB_MXBH='JGE'", sJGBID.Trim()))) + return true; + else + return false; + } + + + /// + /// 获取JGE价格表因子相关信息 + /// + /// + public static void GetdsJGBYZ_JGE(string sJGEJGBID, ref DataSet dsJGBYZ) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add("select XLXSJGBYZ_YZID,XLXSTZYZ_JJFS,XLXSTZYZ_TJYZID,XLXSTZYZ_TJYS"); + SQL.Add(" from XLXSJGBYZ"); + SQL.Add(" left join XLXSTZYZ on XLXSTZYZ_MXBH='JZJ' and XLXSTZYZ_YZID=XLXSJGBYZ_YZID"); + SQL.Add(" where XLXSJGBYZ_JGBID=:pJGEJGBID "); + SQL.Add(" order by XLXSTZYZ_TJYZID,XLXSTZYZ_XSXH,XLXSJGBYZ_YZID"); + SQL.ParamByName("pJGEJGBID").Value = sJGEJGBID; + dsJGBYZ = dberp.OpenDataSet(SQL); + } + + /// + /// 获取JGE类型的因子ID以及因子相关信息 + /// + /// + /// 通用计算,dicXLJBXX要求(必须):XLXHID-KVV, XLGGID-1*2.5, XLBZID-G,DYDJID-0.6/1kV,XSWS-5,XH-3,BJDID-BJ20210001、 + /// flag标志为0,表示从明细手动编辑调整需要调整计算公式 + public static Dictionary GetJGBTZYZ_JGE(string sJGEJGBID, string flag, DataSet dsJGBYZ, Dictionary dicXLJBXX) + { + //汇总因子,用于更新----总计10个最终赋值dicJGBTZYZGS进行输出 + Dictionary dicJGBYZZ = new Dictionary(); + //用于记录调整因子的值 + Dictionary dicTJYZIDValue = new Dictionary(); + //返回值-包括JD,KD,JJ公式,以及因子值,信息,计算公式 + Dictionary dicJGBTZYZGS = new Dictionary(); + string sJDSQL = "1"; + string sKDSQL = "1"; + string sJJSQL = "0"; + string sSXSQL = "1"; + string sTJYSList_ = "";//记录调价因素为空的因子id + string sTJYSList1 = "";//记录调价因素为'1'的因子id + string sTJYSList3 = "";//记录调价因素为'1'的因子id + string sTJYSList4 = "";//记录调价因素为'4'的因子id + string sTJYSList5 = "";//记录调价因素为'5'的因子id + string sTJYSList8 = "";//记录调价因素为'8'的因子id + string sTJYSList9 = "";//记录调价因素为'9'的因子id + if (dsJGBYZ.Tables[0].Rows.Count > 0) + { + for (int i = 0; i < dsJGBYZ.Tables[0].Rows.Count; i++) + { + if (dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYS"].ToString().Trim().Equals("")) + { + sTJYSList_ += dsJGBYZ.Tables[0].Rows[i]["XLXSJGBYZ_YZID"].ToString().Trim() + ","; + } + else if (dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYS"].ToString().Trim().Equals("1")) + { + sTJYSList1 += dsJGBYZ.Tables[0].Rows[i]["XLXSJGBYZ_YZID"].ToString().Trim() + ","; + } + else if (dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYS"].ToString().Trim().Equals("3")) + { + sTJYSList3 += dsJGBYZ.Tables[0].Rows[i]["XLXSJGBYZ_YZID"].ToString().Trim() + ","; + } + else if (dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYS"].ToString().Trim().Equals("4")) + { + sTJYSList4 += dsJGBYZ.Tables[0].Rows[i]["XLXSJGBYZ_YZID"].ToString().Trim() + ","; + } + else if (dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYS"].ToString().Trim().Equals("5")) + { + sTJYSList5 += dsJGBYZ.Tables[0].Rows[i]["XLXSJGBYZ_YZID"].ToString().Trim() + ","; + } + else if (dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYS"].ToString().Trim().Equals("8")) + { + sTJYSList8 += dsJGBYZ.Tables[0].Rows[i]["XLXSJGBYZ_YZID"].ToString().Trim() + ","; + } + else if (dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYS"].ToString().Trim().Equals("9")) + { + sTJYSList9 += dsJGBYZ.Tables[0].Rows[i]["XLXSJGBYZ_YZID"].ToString().Trim() + ","; + } + } + sTJYSList_ = sTJYSList_.TrimEnd(','); + sTJYSList1 = sTJYSList1.TrimEnd(','); + sTJYSList3 = sTJYSList3.TrimEnd(','); + sTJYSList4 = sTJYSList4.TrimEnd(','); + sTJYSList5 = sTJYSList5.TrimEnd(','); + sTJYSList8 = sTJYSList8.TrimEnd(','); + sTJYSList9 = sTJYSList9.TrimEnd(','); + + + string sTJYZID = dsJGBYZ.Tables[0].Rows[0]["XLXSTZYZ_TJYZID"].ToString().Trim(); + string sJJFS = dsJGBYZ.Tables[0].Rows[0]["XLXSTZYZ_JJFS"].ToString().Trim(); + if (!dicTJYZIDValue.ContainsKey(sTJYZID)) + { + dicTJYZIDValue.Add(sTJYZID, 0); + } + for (int i = 1; i < dsJGBYZ.Tables[0].Rows.Count; i++) + { + if (!sTJYZID.Equals(dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYZID"].ToString().Trim())) + { + if (sJJFS.Equals("JD")) + sJDSQL = sJDSQL + "*(1+JDYZZ_" + sTJYZID + "/100.0)"; + else if (sJJFS.Equals("KD")) + sKDSQL = sKDSQL + "/(1-KDYZZ_" + sTJYZID + "/100.0)"; + else if (sJJFS.Equals("JJ")) + sJJSQL += "+JJYZZ_" + sTJYZID; + else if (sJJFS.Equals("SX")) + { + sSXSQL = sSXSQL + "*(case when SXYZZ_" + sTJYZID + ">=0 then 1/(1-SXYZZ_" + sTJYZID + "/100.0) else (1+SXYZZ_" + sTJYZID + "/100.0) end)"; + } + + sTJYZID = dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYZID"].ToString().Trim(); + sJJFS = dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_JJFS"].ToString().Trim(); + } + if (!dicTJYZIDValue.ContainsKey(sTJYZID)) + { + dicTJYZIDValue.Add(sTJYZID, 0); + } + } + if (sJJFS.Equals("JD")) + { + sJDSQL = sJDSQL + "*(1+JDYZZ_" + sTJYZID + "/100.0)"; + } + else if (sJJFS.Equals("KD")) + { + sKDSQL = sKDSQL + "/(1-KDYZZ_" + sTJYZID + "/100.0)"; + } + else if (sJJFS.Equals("JJ")) + { + sJJSQL += "+JJYZZ_" + sTJYZID; + } + else if (sJJFS.Equals("SX")) + { + sSXSQL = sSXSQL + "*SXYZZ_" + sTJYZID; + } + + //逐行获取因子值-根据型号规格标准电压等级等 + Dictionary dicXLGGB = XLBJDUtils.GetXXJGIDByXLGGID(dicXLJBXX["XLGGID"], dicXLJBXX["XLXHID"]); + string fZXJM = dicXLGGB["ZXJM"]; + string fXXJGID = dicXLGGB["XXJGID"]; + string fGGZXS = dicXLGGB["GGZXS"]; + + //获取0,1,4,5值 + Dictionary dicYZZ0 = new Dictionary(); + if (!sTJYSList_.Equals("")) + { + dicYZZ0 = XLBJDUtils.GetJGBYZZ0(sJGEJGBID); + } + Dictionary dicYZZ1 = new Dictionary(); + if (!sTJYSList1.Equals("")) + { + dicYZZ1 = XLBJDUtils.GetJGBYZZ1(sJGEJGBID, dicXLJBXX["XLXHID"], dicXLJBXX["XLGGID"], dicXLJBXX["XLBZID"], dicXLJBXX["DYDJID"]); + } + Dictionary dicYZZ3 = new Dictionary(); + if (!sTJYSList3.Equals("")) + { + dicYZZ3 = XLBJDUtils.GetJGBYZZ3(sJGEJGBID, "", dicXLJBXX["XLXHID"], fZXJM); + } + Dictionary dicYZZ4 = new Dictionary(); + if (!sTJYSList4.Equals("")) + { + dicYZZ4 = XLBJDUtils.GetJGBYZZ4(sJGEJGBID, dicXLJBXX["XLXHID"], dicXLJBXX["DYDJID"], fXXJGID, fZXJM); + } + Dictionary dicYZZ5 = new Dictionary(); + if (!sTJYSList5.Equals("")) + { + dicYZZ5 = XLBJDUtils.GetJGBYZZ5(sJGEJGBID, dicXLJBXX["XLXHID"], dicXLJBXX["DYDJID"], fZXJM, fGGZXS); + } + + Dictionary dicYZZ8 = new Dictionary(); + if (!sTJYSList8.Equals("")) + { + dicYZZ8 = XLBJDUtils.GetJGBYZZ8(sJGEJGBID, dicXLJBXX["XLXHID"], dicXLJBXX["XLGGID"], dicXLJBXX["XLBZID"], dicXLJBXX["DYDJID"]); + } + Dictionary dicYZZ9 = new Dictionary(); + if (!sTJYSList9.Equals("")) + { + dicYZZ9 = XLBJDUtils.GetJGBYZZ9(sJGEJGBID, dicXLJBXX["XLXHID"], dicXLJBXX["XLGGID"], dicXLJBXX["DYDJID"]); + } + + foreach (string sYZID in dicYZZ0.Keys) + { + if (!dicJGBYZZ.ContainsKey(sYZID)) + { + dicJGBYZZ.Add(sYZID, dicYZZ0[sYZID]); + } + } + foreach (string sYZID in dicYZZ1.Keys) + { + if (!dicJGBYZZ.ContainsKey(sYZID)) + { + dicJGBYZZ.Add(sYZID, dicYZZ1[sYZID]); + } + } + foreach (string sYZID in dicYZZ3.Keys) + { + if (!dicJGBYZZ.ContainsKey(sYZID)) + { + dicJGBYZZ.Add(sYZID, dicYZZ3[sYZID]); + } + } + foreach (string sYZID in dicYZZ4.Keys) + { + if (!dicJGBYZZ.ContainsKey(sYZID)) + { + dicJGBYZZ.Add(sYZID, dicYZZ4[sYZID]); + } + } + foreach (string sYZID in dicYZZ5.Keys) + { + if (!dicJGBYZZ.ContainsKey(sYZID)) + { + dicJGBYZZ.Add(sYZID, dicYZZ5[sYZID]); + } + } + foreach (string sYZID in dicYZZ8.Keys) + { + if (!dicJGBYZZ.ContainsKey(sYZID)) + { + dicJGBYZZ.Add(sYZID, dicYZZ8[sYZID]); + } + } + foreach (string sYZID in dicYZZ9.Keys) + { + if (!dicJGBYZZ.ContainsKey(sYZID)) + { + dicJGBYZZ.Add(sYZID, dicYZZ9[sYZID]); + } + } + + } + Dictionary dicJGBFGQCPYZ = XLBJDInfo.GetJGBFGQCPYZ(sJGEJGBID); + for (int j = 1; j <= 10; j++) + { + if (!dicJGBYZZ.ContainsKey("JZ" + j.ToString().PadLeft(2, '0'))) + { + if (dicJGBFGQCPYZ.Count > 0 && dicJGBFGQCPYZ.ContainsKey("JZ" + j.ToString().PadLeft(2, '0'))) + dicJGBYZZ.Add("JZ" + j.ToString().PadLeft(2, '0'), -9999); + else + dicJGBYZZ.Add("JZ" + j.ToString().PadLeft(2, '0'), 0); + } + } + string iYZID = ""; + string iTZYZID = ""; + string sJSGS = XLBJDUtils.GetJGBJSGS(sJGEJGBID); + if (flag.Trim().Equals("0"))//LF2022-08-06:flag为0代表sJDSQL、sKDSQL、sJJSQL、sSXSQL都由字段简称替换为因子值,由服务端计算引擎直接计算;不为0代表它们可以拼接到sql语句中执行 + { + //将dicJGBYZZ中待计算分调价因子的因子值补齐 + for (int i = 0; i < dsJGBYZ.Tables[0].Rows.Count; i++) + { + iYZID = dsJGBYZ.Tables[0].Rows[i]["XLXSJGBYZ_YZID"].ToString().Trim(); + iTZYZID = dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYZID"].ToString().Trim(); + if (dicJGBYZZ.ContainsKey(iYZID)) + { + dicTJYZIDValue[iTZYZID] += dicJGBYZZ[iYZID]; + } + + } + foreach (KeyValuePair kvp in dicTJYZIDValue) + { + sJDSQL = sJDSQL.Replace("JDYZZ_" + kvp.Key, kvp.Value.ToString().Trim()); + sKDSQL = sKDSQL.Replace("KDYZZ_" + kvp.Key, kvp.Value.ToString().Trim()); + sJJSQL = sJJSQL.Replace("JJYZZ_" + kvp.Key, kvp.Value.ToString().Trim()); + if (kvp.Value >= 0) + sSXSQL = sSXSQL.Replace("SXYZZ_" + kvp.Key, "(1/(1-" + kvp.Value.ToString().Trim() + "/100.0))"); + else + sSXSQL = sSXSQL.Replace("SXYZZ_" + kvp.Key, "(1+" + kvp.Value.ToString().Trim() + "/100.0)"); + } + } + else if (flag.Trim().Equals("1")) + { + + } + + dicJGBTZYZGS.Add("JD", sJDSQL); + dicJGBTZYZGS.Add("KD", sKDSQL); + dicJGBTZYZGS.Add("JJ", sJJSQL); + dicJGBTZYZGS.Add("SX", sSXSQL); + foreach (KeyValuePair kvp in dicJGBYZZ) + { + dicJGBTZYZGS.Add(kvp.Key, kvp.Value.ToString().Trim()); + sJSGS = sJSGS.Replace(kvp.Key, kvp.Value.ToString().Trim()); + } + if (JJFirst_JGBYZ(sJGEJGBID)) + { + dicJGBTZYZGS.Add("JJFirst", "1"); + } + else + { + dicJGBTZYZGS.Add("JJFirst", "0"); + } + //增加计算公式 + dicJGBTZYZGS.Add("JSGS", sJSGS); + //返回值-包括JD,KD,JJ公式,以及10个因子值,以及先加价还是后加价 + return dicJGBTZYZGS; + } + + //计量单位的转化支持1个参数,如果小数位数传入大于等于0,则需要进行小数位数处理 + public static void ChangeJLDW_1(string sSource, string sTarget, int iXSWS, ref string sValueA) + { + double dHSBL = GetJLDWHSBL_JG(sSource, sTarget); + if (iXSWS >= 0) + { + sValueA = (NumberUtils.RoundX(CMISproConvert.StrToFloat(sValueA) * dHSBL, iXSWS)).ToString().Trim(); + } + else + { + sValueA = (CMISproConvert.StrToFloat(sValueA) * dHSBL).ToString().Trim(); + } + } + + //计量单位的转化支持1个参数,如果小数位数传入大于等于0,则需要进行小数位数处理 + public static void ChangeJLDW_1(string sSource, string sTarget, int iXSWS, string sBJU003, string sXLXHID, string sXLGGID, string sXLBZID, string sDYDJID, ref string sValueA) + { + double dHSBL = GetJLDWHSBL_JG(sSource, sTarget, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID); + if (iXSWS >= 0) + { + sValueA = (NumberUtils.RoundX(CMISproConvert.StrToFloat(sValueA) * dHSBL, iXSWS)).ToString().Trim(); + } + else + { + sValueA = (CMISproConvert.StrToFloat(sValueA) * dHSBL).ToString().Trim(); + } + } + + /// + /// 将计量单位转化为用于计算的计算单位,只会返回Km、M、非长度 + /// + /// + /// + /// + public static string GetsJSDW(string sJLDW, string sBJU003) + { + string sJSDW = sJLDW; + if (sJLDW.Trim().ToUpper().Equals("M") || sJLDW.Trim().Equals("米")) + { + sJSDW = "M"; + } + else if (sJLDW.Trim().ToUpper().Equals("KM") || sJLDW.Trim().Equals("千米")) + { + sJSDW = "Km"; + } + else if (sJLDW.Trim().ToUpper().Equals("T") || sJLDW.Trim().Equals("吨")) + { + sJSDW = "T"; + } + else if (sJLDW.Trim().ToUpper().Equals("KG") || sJLDW.Trim().Equals("千克") || sJLDW.Trim().Equals("公斤")) + { + sJSDW = "Kg"; + } + else if (sJLDW.Trim().Equals("")) + { + if (sBJU003.Equals("米")) + sJSDW = "M"; + else if (sBJU003.Equals("千米")) + sJSDW = "Km"; + else + sJSDW = sBJU003; + } + return sJSDW; + } + + //获取XLXSJGBMX_JLDW + public static string GetJGBJLDW(string sJGBID, string sXLXHID, string sXLGGID, string sXLBZID, string sDYDJID, string sBJU003, string sBJU018) + { + string sJLDW = sBJU003; + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + sql.Clear(); + sql.Add("select XLXSJGBMX_JLDW from XLXSJGBMX where XLXSJGBMX_JGBID=:pJGBID and XLXSJGBMX_XLXHID=:pXLXHID and XLXSJGBMX_XLGGID=:pXLGGID and XLXSJGBMX_XLBZID=:pXLBZID and isnull(XLXSJGBMX_DYDJID,' ')=:pDYDJID "); + sql.ParamByName("pJGBID").Value = sJGBID; + sql.ParamByName("pXLXHID").Value = sXLXHID; + sql.ParamByName("pXLGGID").Value = sXLGGID; + sql.ParamByName("pXLBZID").Value = sXLBZID; + sql.ParamByName("pDYDJID").Value = sDYDJID.Trim().Equals("") ? " " : sDYDJID.Trim(); + DataSet ds = dberp.OpenDataSet(sql); + if (ds.Tables[0].Rows.Count > 0) + { + sJLDW = ds.Tables[0].Rows[0]["XLXSJGBMX_JLDW"].ToString().Trim(); + if (sBJU018.Equals("Y") && XLBJDUtils.sJQCDJLDWList.Contains(sJLDW.ToUpper())) + { + sJLDW = "M"; + } + } + return sJLDW; + } + + /// + /// 获取原计量单位数量换算为目标计量单位数量、所需乘的倍率 + /// + public static double GetJLDWHSBL_SL(string sSource, string sBJU003) + { + double dHSBL = 1; + string sSourceJSDW = GetsJSDW(sSource, sBJU003); + string sBJU003JSDW = GetsJSDW(sBJU003, sBJU003); + Dictionary dicLenJLDWTD = XLBJDUtils.GetLenJLDWTD(); + if (sSourceJSDW.ToUpper().Equals("KM") && sBJU003JSDW.ToUpper().Equals("M")) + { + dHSBL = 1000; + } + else if (sSourceJSDW.ToUpper().Equals("M") && sBJU003JSDW.ToUpper().Equals("KM")) + { + dHSBL = 0.001; + } + if (dicLenJLDWTD.ContainsKey(sSourceJSDW) && sBJU003JSDW.ToUpper().Equals("M")) + { + dHSBL = dicLenJLDWTD[sSourceJSDW]; + } + else if (dicLenJLDWTD.ContainsKey(sSourceJSDW) && sBJU003JSDW.ToUpper().Equals("KM")) + { + dHSBL = 0.001 * dicLenJLDWTD[sSourceJSDW]; + } + return dHSBL; + } + + /// + /// 根据四要素进行计量单位的互相转换----相对于两个参数的方法,支持计量单位和非计量单位的互相以及各自的转换 + /// + /// 原始计量单位 + /// 目标计量单位 + /// 型号 + /// 规格 + /// 标准 + /// 电压等级 + /// + public static double GetJLDWHSBL_JG(string sSource, string sTarget, string sBJU003, string sXLXHID, string sXLGGID, string sXLBZID, string sDYDJID) + { + double dHSBL = 0; + string sSourceJSDW = GetsJSDW(sSource, sTarget); + string sTargetJSDW = GetsJSDW(sTarget, sTarget); + + double fCLZL = 0; + if (sJCJLDWList_Weg.IndexOf(sSourceJSDW.ToUpper()) >= 0 || sJCJLDWList_Weg.IndexOf(sTargetJSDW.ToUpper()) >= 0) + { + fCLZL = GetCLZL(sXLXHID, sXLGGID, sXLBZID, sDYDJID, false); + } + //sBJU003值域:千米:Km;米:M;千米:千米;米:米 + if (sBJU003.ToUpper().Equals("KM") || sBJU003.ToUpper().Equals("千米")) + { + if (fCLZL != 0) + { + if (sSourceJSDW.ToUpper().Equals("KM")) + { + if (sTargetJSDW.ToUpper().Equals("KG")) + { + dHSBL = 1.0 / fCLZL; + } + } + if (sSourceJSDW.ToUpper().Equals("M")) + { + if (sTargetJSDW.ToUpper().Equals("KG")) + { + dHSBL = (1.0 / fCLZL) * 1000; + } + } + if (sSourceJSDW.ToUpper().Equals("KG")) + { + if (sTargetJSDW.ToUpper().Equals("KM")) + { + dHSBL = fCLZL; + } + } + if (sSourceJSDW.ToUpper().Equals("KM")) + { + if (sTargetJSDW.ToUpper().Equals("T")) + { + dHSBL = (1.0 / fCLZL) * 1000; + } + } + if (sSourceJSDW.ToUpper().Equals("M")) + { + if (sTargetJSDW.ToUpper().Equals("T")) + { + dHSBL = (1.0 / fCLZL) * 1000 * 1000; + } + } + if (sSourceJSDW.ToUpper().Equals("KG")) + { + if (sTargetJSDW.ToUpper().Equals("KM")) + { + dHSBL = fCLZL; + } + } + if (sSourceJSDW.ToUpper().Equals("T")) + { + if (sTargetJSDW.ToUpper().Equals("KM")) + { + dHSBL = fCLZL / 1000.0; + } + } + if (sSourceJSDW.ToUpper().Equals("KG")) + { + if (sTargetJSDW.ToUpper().Equals("M")) + { + dHSBL = fCLZL / 1000; + } + } + if (sSourceJSDW.ToUpper().Equals("T")) + { + if (sTargetJSDW.ToUpper().Equals("M")) + { + dHSBL = fCLZL / 1000 / 1000; + } + } + } + } + else if (sBJU003.ToUpper().Equals("米") || sBJU003.ToUpper().Equals("M")) + { + if (fCLZL != 0) + { + if (sSourceJSDW.ToUpper().Equals("KM")) + { + if (sTargetJSDW.ToUpper().Equals("KG")) + { + dHSBL = (1.0 / fCLZL) * (1 / 1000.0); + } + } + if (sSourceJSDW.ToUpper().Equals("M")) + { + if (sTargetJSDW.ToUpper().Equals("KG")) + { + dHSBL = 1.0 / fCLZL; + } + } + if (sSourceJSDW.ToUpper().Equals("KG")) + { + if (sTargetJSDW.ToUpper().Equals("KM")) + { + dHSBL = fCLZL * 1000.0; + } + } + if (sSourceJSDW.ToUpper().Equals("KM")) + { + if (sTargetJSDW.ToUpper().Equals("T")) + { + dHSBL = 1.0 / fCLZL; + } + } + if (sSourceJSDW.ToUpper().Equals("M")) + { + if (sTargetJSDW.ToUpper().Equals("T")) + { + dHSBL = (1.0 / fCLZL) * 1000; + } + } + if (sSourceJSDW.ToUpper().Equals("KG")) + { + if (sTargetJSDW.ToUpper().Equals("KM")) + { + dHSBL = fCLZL * 1000.0; + } + } + if (sSourceJSDW.ToUpper().Equals("T")) + { + if (sTargetJSDW.ToUpper().Equals("KM")) + { + dHSBL = fCLZL; + } + } + if (sSourceJSDW.ToUpper().Equals("KG")) + { + if (sTargetJSDW.ToUpper().Equals("M")) + { + dHSBL = fCLZL; + } + } + if (sSourceJSDW.ToUpper().Equals("T")) + { + if (sTargetJSDW.ToUpper().Equals("M")) + { + dHSBL = fCLZL / 1000.0; + } + } + } + } + + if (sSourceJSDW.ToUpper().Equals("KM")) + { + if (sTargetJSDW.ToUpper().Equals("M")) + { + dHSBL = 0.001; + } + } + if (sSourceJSDW.ToUpper().Equals("M")) + { + if (sTargetJSDW.ToUpper().Equals("KM")) + { + dHSBL = 1000; + } + } + if (sSourceJSDW.ToUpper().Equals("M")) + { + if (sTargetJSDW.ToUpper().Equals("M")) + { + dHSBL = 1.0; + } + } + if (sSourceJSDW.ToUpper().Equals("KM")) + { + if (sTargetJSDW.ToUpper().Equals("KM")) + { + dHSBL = 1.0; + } + } + if (sSourceJSDW.ToUpper().Equals("T")) + { + if (sTargetJSDW.ToUpper().Equals("KG")) + { + dHSBL = 0.001; + } + } + if (sSourceJSDW.ToUpper().Equals("KG")) + { + if (sTargetJSDW.ToUpper().Equals("T")) + { + dHSBL = 1000; + } + } + if (sSourceJSDW.ToUpper().Equals("KG")) + { + if (sTargetJSDW.ToUpper().Equals("KG")) + { + dHSBL = 1; + } + } + if (sSourceJSDW.ToUpper().Equals("T")) + { + if (sTargetJSDW.ToUpper().Equals("T")) + { + dHSBL = 1.0; + } + } + + //保留到最大精度 + dHSBL = NumberUtils.RoundX(dHSBL, 15); + return dHSBL; + } + + /// + /// 获取原计量单位价格换算为目标计量单位价格、所需乘的倍率 + /// + public static double GetJLDWHSBL_JG(string sSource, string sTarget) + { + Dictionary dicLenJLDWTD = XLBJDUtils.GetLenJLDWTD(); + + double dHSBL = 1; + string sSourceJSDW = GetsJSDW(sSource, sTarget); + string sTargetJSDW = GetsJSDW(sTarget, sTarget); + + if (!sTargetJSDW.Equals("Km") && !sTargetJSDW.Equals("M") && !dicLenJLDWTD.ContainsKey(sTargetJSDW)) + { + if (sSourceJSDW.Equals("Km") || sSourceJSDW.Equals("M") || dicLenJLDWTD.ContainsKey(sSourceJSDW)) + { + dHSBL = 0; + } + else + { + if (!sTargetJSDW.Equals(sSourceJSDW))//两个非长度单位不等,也置为0 + { + dHSBL = 0; + } + } + } + else + { + if (!sSourceJSDW.Equals("Km") && !sSourceJSDW.Equals("M") && !dicLenJLDWTD.ContainsKey(sSourceJSDW)) + { + dHSBL = 0; + } + else//两个长度单位,才允许正常换算 + { + if (sSourceJSDW.ToUpper().Equals("KM") && sTargetJSDW.ToUpper().Equals("M")) + { + dHSBL = 0.001; + } + else if (sSourceJSDW.ToUpper().Equals("M") && sTargetJSDW.ToUpper().Equals("KM")) + { + dHSBL = 1000; + } + else if (sSourceJSDW.ToUpper().Equals("KM") && dicLenJLDWTD.ContainsKey(sTargetJSDW)) + { + dHSBL = 0.001 * dicLenJLDWTD[sTargetJSDW]; + } + else if (sSourceJSDW.ToUpper().Equals("M") && dicLenJLDWTD.ContainsKey(sTargetJSDW)) + { + dHSBL = dicLenJLDWTD[sTargetJSDW]; + } + else if (dicLenJLDWTD.ContainsKey(sSourceJSDW) && sTargetJSDW.ToUpper().Equals("M")) + { + dHSBL = 1 / dicLenJLDWTD[sSourceJSDW]; + } + else if (dicLenJLDWTD.ContainsKey(sSourceJSDW) && sTargetJSDW.ToUpper().Equals("KM")) + { + dHSBL = 1 / dicLenJLDWTD[sSourceJSDW] * 1000; + } + } + } + return dHSBL; + } + + public static double GetCLZL_BJDJLDW(string sBJDJLDW) + { + string sJCJLDWList_Weg1 = "KG、千克、公斤"; + string sJCJLDWList_Weg2 = "T、吨"; + double dHSBL = 1.0; + if (sJCJLDWList_Weg1.IndexOf(sBJDJLDW.ToUpper()) >= 0) + { + dHSBL = 1.0; + } + else if (sJCJLDWList_Weg2.IndexOf(sBJDJLDW.ToUpper()) >= 0) + { + dHSBL = 1000.0; + } + return dHSBL; + } + + /// + /// 根据报价分类,报价日期,销售区域获取价格表,如果是JGE,仅返回JGE价格表。如果是一般的价格表,则正常返回对应记录数 + /// + /// 手机端价格表报价:表示手机端100860033|销售报价价格表查询安卓手机服务调用 + /// + /// + /// + /// + public static Dictionary GetJGBIDByXSQYID(string flag, string sBJFLID, string sBJRQ, string sXSQYID) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + Dictionary dic = new Dictionary(); + dic.Clear(); + DataSet ds = new DataSet(); + CMISproSession tSession = CMISproSessionManager.GetCurrentSession(); + + //报价分类对应产品目录的行情分段材料、及其报价日行情,用于限制价格表加载项 + Dictionary dicCPML_BJRCLHQ = XLBJDUtils.GetCPMLBJCL_BJRCLHQ(sBJFLID, sBJRQ); + string sBJCLIDS = XLBJDUtils.GetCPMLBJCL(sBJFLID); ;//报价分类对应产品目录的材料 + //表价实时计算价格表 + if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSBJFL where XLXSBJFL_BJFLID='{0}' and XLXSBJFL_MXBH='JGE'", sBJFLID))) + { + sql.Clear(); + sql.Add("select XLXSJGB_JGBID,XLXSJGB_JGBMC from XLXSJGB "); + sql.Add(" where XLXSJGB_MXBH='JGE' "); + sql.Add(" and exists(select 1 from XLXSBJFL where XLXSBJFL_BJFLID=:pBJFLID"); + sql.Add(" and (isnull(XLXSBJFL_JGBIDS,' ')=' ' or ','||rtrim(XLXSBJFL_JGBIDS)||',' like '%,'||rtrim(XLXSJGB_JGBID)||',%'))"); + sql.Add(" order by XLXSJGB_JGBID "); + sql.ParamByName("pBJFLID").Value = sBJFLID; + ds = dberp.OpenDataSet(sql); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + string sJGBID = ds.Tables[0].Rows[i]["XLXSJGB_JGBID"].ToString().Trim(); + string sJGBMC = ds.Tables[0].Rows[i]["XLXSJGB_JGBMC"].ToString().Trim(); + dic.Add(sJGBID, sJGBID + "|" + sJGBMC); + } + } + else + { + sql.Clear(); + sql.Add("select XLXSJGB_JGBID,XLXSJGB_YXQS,XLXSJGB_YXQZ,XLXSJGB_JGBMC,XLXSJGB_TJYS, XLXSJGB_JGBIDS from XLXSJGB "); + if (!sBJCLIDS.Equals("")) + { + int cIndex = 0; + foreach (string stmpBJCLID in sBJCLIDS.Split(',')) + { + string sCLHQBMC = "A" + cIndex.ToString().Trim(); + sql.Add("left join XLXSJGBCLHQFD " + sCLHQBMC); + sql.Add(" on " + sCLHQBMC + ".XLXSJGBCLHQFD_MXBH=XLXSJGB_MXBH "); + sql.Add(" and " + sCLHQBMC + ".XLXSJGBCLHQFD_JGBID=XLXSJGB_JGBID "); + sql.Add(" and " + sCLHQBMC + ".XLXSJGBCLHQFD_BJCLID='" + stmpBJCLID + "' "); + cIndex++; + } + } + sql.Add(" where XLXSJGB_MXBH='JGB' and isnull(XLXSJGB_YXQS, convert(datetime, '1900-01-01')) <= '" + sBJRQ + "' "); + if (!tSession.GetOption(100860018,"BJU016").Equals("")) + { + sql.Add(" and (isnull(XLXSJGB_CPMLID,' ')=' ' or " + CMISproDataBase.GetWhereEqual("XLXSJGB_CPMLID", tSession.GetOption(100860018, "BJU016")) + ") "); + } + + sql.Add(" and exists(select 1 from XLXSBJFL where XLXSBJFL_BJFLID=:pBJFLID and XLXSBJFL_JGBTJYSS like '%'||rtrim(XLXSJGB_TJYS)||'%'"); + sql.Add(" and (isnull(XLXSBJFL_JGBIDS,' ')=' ' or ','||rtrim(XLXSBJFL_JGBIDS)||',' like '%,'||rtrim(XLXSJGB_JGBID)||',%' "); + sql.Add(" or (','||rtrim(XLXSBJFL_JGBIDS)||',' like '%,CUR,%' and isnull(XLXSJGB_YXQZ, convert(datetime, '9999-12-31')) >= '" + DateTime.Now.ToShortDateString() + "') "); + sql.Add(" )"); + sql.Add(" and (isnull(XLXSBJFL_CPMLID,' ')=' ' or XLXSBJFL_CPMLID=XLXSJGB_CPMLID)"); + sql.Add(" )"); + foreach (string tmpBJCLID in dicCPML_BJRCLHQ.Keys) + { + sql.Add(" and exists(select 1 from XLXSJGBCLHQFD where XLXSJGBCLHQFD_MXBH=XLXSJGB_MXBH and XLXSJGBCLHQFD_JGBID=XLXSJGB_JGBID"); + sql.Add(string.Format(" and XLXSJGBCLHQFD_BJCLID='{0}' and XLXSJGBCLHQFD_HSJGS<={1} and (XLXSJGBCLHQFD_HSJGZ=0 or XLXSJGBCLHQFD_HSJGZ>={1})", + tmpBJCLID, dicCPML_BJRCLHQ[tmpBJCLID])); + sql.Add(" ) "); + } + + //添加参数 + sql.ParamByName("pBJFLID").Value = sBJFLID; + + if (flag.ToUpper().Equals("手机端价格表报价")) + { + //由于手机端暂未设置销售区域查询条件,暂时去除此条件 + //sql.Add(" and (XLXSJGB_TJYS='0' or XLXSJGB_TJYS='1') "); + sql.Add(" order by XLXSJGB_TJYS, "); + if (!sBJCLIDS.Equals("")) + { + int cIndex = 0; + foreach (string stmpBJCLID in sBJCLIDS.Split(',')) + { + string sCLHQBMC = "A" + cIndex.ToString().Trim(); + sql.Add(sCLHQBMC + ".XLXSJGBCLHQFD_HSJGS desc,"); + cIndex++; + } + } + sql.Add(" XLXSJGB_YXQS desc, XLXSJGB_JGBID"); + ds = dberp.OpenDataSet(sql); + if (ds.Tables[0].Rows.Count > 0) + { + Boolean HasTJYS_1 = false;//是否查询出了XLXSJGB_TJYS为1的价格表 + //先排XLXSJGB_TJYS为0的价格表 + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + if (ds.Tables[0].Rows[i]["XLXSJGB_TJYS"].ToString().Trim().Equals("0")) + { + string sJGBID = ds.Tables[0].Rows[i]["XLXSJGB_JGBID"].ToString().Trim(); + string sJGBMC = ds.Tables[0].Rows[i]["XLXSJGB_JGBMC"].ToString().Trim(); + dic.Add(sJGBID, sJGBMC); + } + } + //再排XLXSJGB_TJYS为1的价格表 + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + if (ds.Tables[0].Rows[i]["XLXSJGB_TJYS"].ToString().Trim().Equals("1")) + { + string sJGBID = ds.Tables[0].Rows[i]["XLXSJGB_JGBID"].ToString().Trim(); + string sJGBMC = ds.Tables[0].Rows[i]["XLXSJGB_JGBMC"].ToString().Trim(); + dic.Add(sJGBID, sJGBMC); + HasTJYS_1 = true; + + //排以XLXSJGB_TJYS为1的价格表作为基价的区域价价格表(XLXSJGB_TJYS为2) + for (int j = 0; j < ds.Tables[0].Rows.Count; j++) + { + if (ds.Tables[0].Rows[j]["XLXSJGB_TJYS"].ToString().Trim().Equals("2")) + { + if (("," + ds.Tables[0].Rows[j]["XLXSJGB_JGBIDS"].ToString().Trim() + ",").IndexOf("," + ds.Tables[0].Rows[i]["XLXSJGB_JGBID"].ToString().Trim() + ",") >= 0) + { + dic.Add(ds.Tables[0].Rows[j]["XLXSJGB_JGBID"].ToString().Trim(), ds.Tables[0].Rows[j]["XLXSJGB_JGBMC"].ToString().Trim()); + } + } + } + } + } + //若没有XLXSJGB_TJYS为1的价格表,直接单独排XLXSJGB_TJYS为2的价格表 + if (!HasTJYS_1) + { + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + if (ds.Tables[0].Rows[i]["XLXSJGB_TJYS"].ToString().Trim().Equals("2")) + { + dic.Add(ds.Tables[0].Rows[i]["XLXSJGB_JGBID"].ToString().Trim(), ds.Tables[0].Rows[i]["XLXSJGB_JGBMC"].ToString().Trim()); + } + } + } + + } + } + else + { + if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSBJFL where XLXSBJFL_BJFLID='{0}' and XLXSBJFL_MXBH='JGB' " + + "and ',' || rtrim(XLXSBJFL_JGBTJYSS) || ',' like '%,2,%'", sBJFLID))) + { + if (!sXSQYID.Equals("")) + { + sql.Add(" and ','|| rtrim(XLXSJGB_XSQYIDS) ||',' like :pXSQYID and XLXSJGB_TJYS='2' "); + sql.ParamByName("pXSQYID").Value = "%," + sXSQYID + ",%"; + } + } + sql.Add(" order by "); + if (!sBJCLIDS.Equals("")) + { + int cIndex = 0; + foreach (string stmpBJCLID in sBJCLIDS.Split(',')) + { + string sCLHQBMC = "A" + cIndex.ToString().Trim(); + sql.Add(sCLHQBMC + ".XLXSJGBCLHQFD_HSJGS desc,"); + cIndex++; + } + } + sql.Add(" XLXSJGB_YXQS desc,ISNULL(XLXSJGB_YXQZ,'9999-12-31') desc, XLXSJGB_JGBID desc"); + ds = dberp.OpenDataSet(sql); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + string sJGBID = ds.Tables[0].Rows[i]["XLXSJGB_JGBID"].ToString().Trim(); + string sYXQS = ds.Tables[0].Rows[i]["XLXSJGB_YXQS"].ToString().Trim(); + string sYXQZ = ds.Tables[0].Rows[i]["XLXSJGB_YXQZ"].ToString().Trim(); + string sJGBMC = ds.Tables[0].Rows[i]["XLXSJGB_JGBMC"].ToString().Trim(); + if (sYXQS.Equals("")) + sYXQS = "--"; + else + sYXQS = CMISproConvert.ConvertDate(sYXQS); + if (sYXQZ.Equals("")) + sYXQZ = "--"; + else + sYXQZ = CMISproConvert.ConvertDate(sYXQZ); + if (sJGBMC.Equals("")) + { + dic.Add(sJGBID, sJGBID + "|" + sYXQS + "至" + sYXQZ); + } + else + { + dic.Add(sJGBID, sJGBID + "|" + sYXQS + "至" + sYXQZ + "|" + sJGBMC); + } + } + } + } + return dic; + } + + /// + /// 字符型数值固定小数位数 + /// + /// 待调整的数值 + /// 小数位数 + /// + public static string strPadRight(string s, int x) + { + string str = s; + if (str.Split('.').Length == 2) + { + str = str.Split('.')[0] + "." + str.Split('.')[1].PadRight(x, '0'); + } + else + { + string tmp = "0"; + if (x > 0) + { + tmp = tmp.PadRight(x, '0'); + str = str + "." + tmp; + } + } + return str; + } + + /// + /// 传入四要素,如果是因素3型号加点拓展产品,则返回因素3型号加点拓展产品四要素以及加点因子,否则dicTmpBJCP为空 + /// + /// + /// + /// + /// + /// + /// + /// + /// + public static void GetXLXSJGBMX_YS3(TDatabase dberp, TSQL SQL, string sJGBID, string sXLXHID, string sXLGGID, string sXLBZID, string sDYDJID, + ref Dictionary dicTmpBJCP) + { + dicTmpBJCP.Clear(); + SQL.Clear(); + SQL.Add("select XLXSJGBMX_XH,XLXSJGBMX_HSJJ,XLXSJGBMX_WSJJ,XLXSJGBMX_HSBJ,XLXSJGBMX_WSBJ,XLXSJGBMX_HSJJM,XLXSJGBMX_WSJJM,XLXSJGBMX_HSBJM,XLXSJGBMX_WSBJM, "); + SQL.Add(" case when XLXSJGBMX_SYXH=0 then XLXSJGBMX_XH else XLXSJGBMX_SYXH end as SYJGBXH,XLXSJGBMX_YSJDZ,XLXSJGBMX_CLCBYSJDZ "); + SQL.Add("from XLXSJGBMX "); + SQL.Add("where XLXSJGBMX_JGBID = :pJGBID"); + SQL.Add(" and XLXSJGBMX_XLXHID=:pXLXHID and XLXSJGBMX_XLGGID=:pXLGGID and XLXSJGBMX_XLBZID=:pXLBZID and XLXSJGBMX_DYDJID=:pDYDJID"); + SQL.Add(" order by XLXSJGBMX_XH"); + SQL.ParamByName("pJGBID").Value = sJGBID; + SQL.ParamByName("pXLXHID").Value = sXLXHID; + SQL.ParamByName("pXLGGID").Value = sXLGGID; + SQL.ParamByName("pXLBZID").Value = sXLBZID; + SQL.ParamByName("pDYDJID").Value = sDYDJID; + DataSet dsJGBMX_YS3 = dberp.OpenDataSet(SQL); + if (dsJGBMX_YS3.Tables[0].Rows.Count > 0) + { + dicTmpBJCP.Add("JGBXH3", dsJGBMX_YS3.Tables[0].Rows[0]["XLXSJGBMX_XH"].ToString().Trim()); + dicTmpBJCP.Add("JGBXH1", dsJGBMX_YS3.Tables[0].Rows[0]["SYJGBXH"].ToString().Trim()); + dicTmpBJCP.Add("YSJDZ", dsJGBMX_YS3.Tables[0].Rows[0]["XLXSJGBMX_YSJDZ"].ToString().Trim()); + dicTmpBJCP.Add("CLCBYSJDZ", dsJGBMX_YS3.Tables[0].Rows[0]["XLXSJGBMX_CLCBYSJDZ"].ToString().Trim()); + dicTmpBJCP.Add("HSJJ", dsJGBMX_YS3.Tables[0].Rows[0]["XLXSJGBMX_HSJJ"].ToString().Trim()); + dicTmpBJCP.Add("WSJJ", dsJGBMX_YS3.Tables[0].Rows[0]["XLXSJGBMX_WSJJ"].ToString().Trim()); + dicTmpBJCP.Add("HSBJ", dsJGBMX_YS3.Tables[0].Rows[0]["XLXSJGBMX_HSBJ"].ToString().Trim()); + dicTmpBJCP.Add("WSBJ", dsJGBMX_YS3.Tables[0].Rows[0]["XLXSJGBMX_WSBJ"].ToString().Trim()); + dicTmpBJCP.Add("HSJJM", dsJGBMX_YS3.Tables[0].Rows[0]["XLXSJGBMX_HSJJM"].ToString().Trim()); + dicTmpBJCP.Add("WSJJM", dsJGBMX_YS3.Tables[0].Rows[0]["XLXSJGBMX_WSJJM"].ToString().Trim()); + dicTmpBJCP.Add("HSBJM", dsJGBMX_YS3.Tables[0].Rows[0]["XLXSJGBMX_HSBJM"].ToString().Trim()); + dicTmpBJCP.Add("WSBJM", dsJGBMX_YS3.Tables[0].Rows[0]["XLXSJGBMX_WSBJM"].ToString().Trim()); + } + } + + //返回以报价单计量单位为主的价格 + public static void GetFromJGB_BJDHQ_JGBTJYS3(string sXLXHID, string sXLGGID, string sXLBZID, string sDYDJID, + string sBJDID, string sBJRQ, bool bHSBZ, int tmpXSWS, string sJGBID, string sJGBIDS, string sJLDW, string sBJU003, string sBJU018, string sJSBLFS, + string sTBJCLID, string sLBJCLID, string sTJ, string sLJ, bool bExistBJDHQ, + ref string sJGBBJ, ref string sJGBJJ, ref string sBJDHQCLCB, ref string sCLCB, ref Dictionary dicJJYZList) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + //明细的报价产品可能是 因素3型号加点拓展产品 + string sJGBXH1 = "0"; + string sJGBXH3 = "0"; + string sYSJDZ = "0"; + string sCLCBYSJDZ = "0"; + string sJGBHSJJ3 = "0"; + string sJGBWSJJ3 = "0"; + string sJGBHSBJ3 = "0"; + string sJGBWSBJ3 = "0"; + string sJGBHSJJM3 = "0"; + string sJGBWSJJM3 = "0"; + string sJGBHSBJM3 = "0"; + string sJGBWSBJM3 = "0"; + Dictionary dicTmp = new Dictionary(); + GetXLXSJGBMX_YS3(dberp, SQL, sJGBID, sXLXHID, sXLGGID, sXLBZID, sDYDJID, ref dicTmp); + if (dicTmp.Count > 0) + { + sJGBXH1 = dicTmp["JGBXH1"]; + sJGBXH3 = dicTmp["JGBXH3"]; + sYSJDZ = dicTmp["YSJDZ"]; + sCLCBYSJDZ = dicTmp["CLCBYSJDZ"]; + sJGBHSJJ3 = dicTmp["HSJJ"]; + sJGBWSJJ3 = dicTmp["WSJJ"]; + sJGBHSBJ3 = dicTmp["HSBJ"]; + sJGBWSBJ3 = dicTmp["WSBJ"]; + sJGBHSJJM3 = dicTmp["HSJJM"]; + sJGBWSJJM3 = dicTmp["WSJJM"]; + sJGBHSBJM3 = dicTmp["HSBJM"]; + sJGBWSBJM3 = dicTmp["WSBJM"]; + } + double dCLCBC = GetCLCBC_JGBID3(sJGBID, sJGBIDS, sJGBXH1, sBJDID, sTBJCLID, sLBJCLID, sTJ, sLJ, bHSBZ, bExistBJDHQ, sJSBLFS, tmpXSWS); + + if (sJSBLFS.Equals("C1") || sJSBLFS.Equals("C2") || sJSBLFS.Equals("C3"))//C1|进一法(材料价各分项进一)、C2|进一法(材料价汇总进一)、C3|材料价汇总进一+表价进一到十位 + { + dCLCBC = Math.Ceiling(dCLCBC * Math.Pow(10.0, tmpXSWS)) / Math.Pow(10.0, tmpXSWS); + } + else + { + dCLCBC = NumberUtils.RoundX(dCLCBC, tmpXSWS); + } + + //查询因素1 的报价产品 + SQL.Clear(); + SQL.Add("select XLXSJGBMX_WSJJ,XLXSJGBMX_HSJJ,XLXSJGBMX_WSBJ,XLXSJGBMX_HSBJ,XLXSJGBMX_JLDW,XLXSJGBMX_WSJJM,XLXSJGBMX_HSJJM,XLXSJGBMX_WSBJM,XLXSJGBMX_HSBJM, "); + SQL.Add(" XLXSJGBMX_XLXHID,XLXSJGBMX_XLGGID,XLXSJGBMX_XLBZID,XLXSJGBMX_DYDJID "); + SQL.Add("from XLXSJGBMX "); + SQL.Add("where XLXSJGBMX_JGBID=:pJGBID1"); + SQL.Add(" and XLXSJGBMX_XH=:pJGBXH1"); + SQL.ParamByName("pJGBID1").Value = sJGBIDS; + SQL.ParamByName("pJGBXH1").Value = sJGBXH1; + DataSet dsJGBMX = dberp.OpenDataSet(SQL); + if (dsJGBMX.Tables[0].Rows.Count > 0) + { + string sXLXHID1 = dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_XLXHID"].ToString().Trim(); + string sXLGGID1 = dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_XLGGID"].ToString().Trim(); + string sXLBZID1 = dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_XLBZID"].ToString().Trim(); + string sDYDJID1 = dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_DYDJID"].ToString().Trim(); + string sJGBJLDW = dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_JLDW"].ToString().Trim(); + + bool bJQJG = false;//是否启用精确单位计算 + if (sBJU018.Equals("Y") && XLBJDUtils.sJQCDJLDWList.Contains(sJGBJLDW.ToUpper())) + { + sJGBJLDW = "M"; + bJQJG = true; + tmpXSWS = JQJSXSWS; + } + double dBJU003HSBL = GetJLDWHSBL_JG(sJGBJLDW, sBJU003);//获取原计量单位数据转换为BJU003计量单位的数据、所需乘的倍率 + if (bHSBZ) + { + if (bJQJG) + sJGBJJ = Convert.ToString(CMISproConvert.StrToFloat(dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_HSBJM"].ToString().Trim()) * dBJU003HSBL + dCLCBC); + else + sJGBJJ = Convert.ToString(CMISproConvert.StrToFloat(dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_HSBJ"].ToString().Trim()) * dBJU003HSBL + dCLCBC); + } + else + { + if (bJQJG) + sJGBJJ = Convert.ToString(CMISproConvert.StrToFloat(dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_WSBJM"].ToString().Trim()) * dBJU003HSBL + dCLCBC); + else + sJGBJJ = Convert.ToString(CMISproConvert.StrToFloat(dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_WSBJ"].ToString().Trim()) * dBJU003HSBL + dCLCBC); + } + + double dJGBBJ = GetCPJJbyCLCB(CMISproConvert.StrToFloat(sJGBJJ), sJGBID, "", sXLXHID1, sXLGGID1, sXLBZID1, sDYDJID1); + + if (sJSBLFS.Equals("C1") || sJSBLFS.Equals("C2"))//C1|进一法(材料价各分项进一)、C2|进一法(材料价汇总进一) + { + dJGBBJ = Math.Ceiling(dJGBBJ * Math.Pow(10.0, tmpXSWS)) / Math.Pow(10.0, tmpXSWS); + } + else if (sJSBLFS.Equals("C3"))//C3|材料价汇总进一+表价进一到十位 + { + dJGBBJ = Math.Ceiling(NumberUtils.RoundX(dJGBBJ, tmpXSWS) / 10) * 10; + } + else + { + dJGBBJ = NumberUtils.RoundX(dJGBBJ, tmpXSWS); + } + sJGBBJ = dJGBBJ.ToString(); + + //因素3型号加点拓展产品 + if (CMISproConvert.StrToFloat(sYSJDZ) > 0) + { + //sJGBJJ = sJGBBJ; + if (sJSBLFS.Equals("C1") || sJSBLFS.Equals("C2"))//C1|进一法(材料价各分项进一)、C2|进一法(材料价汇总进一) + { + sJGBBJ = Convert.ToString(Math.Ceiling((CMISproConvert.StrToFloat(sJGBBJ, 0) * CMISproConvert.StrToFloat(sYSJDZ)) * Math.Pow(10.0, tmpXSWS)) / Math.Pow(10.0, tmpXSWS)); + } + else if (sJSBLFS.Equals("C3"))//C3|材料价汇总进一+表价进一到十位 + { + sJGBBJ = Convert.ToString(Math.Ceiling(NumberUtils.RoundX(CMISproConvert.StrToFloat(sJGBBJ, 0) * CMISproConvert.StrToFloat(sYSJDZ), tmpXSWS) / 10) * 10); + + } + else + { + sJGBBJ = NumberUtils.RoundX(CMISproConvert.StrToFloat(sJGBBJ, 0) * CMISproConvert.StrToFloat(sYSJDZ), tmpXSWS).ToString(); + } + } + //为较少影响,因素3暂未添加XLBJDUtils.GetCPLJGS() == "3"的情况 + if (XLBJDUtils.GetCPLJGS() == "2" && CMISproConvert.StrToFloat(sYSJDZ) > 0) + { + if (bHSBZ) + { + if (bJQJG) + { + sBJDHQCLCB = Convert.ToString(CMISproConvert.StrToFloat(sYSJDZ) * (CMISproConvert.StrToFloat(dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_HSJJM"].ToString().Trim()) * dBJU003HSBL + dCLCBC)); + sCLCB = Convert.ToString((CMISproConvert.StrToFloat(dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_HSJJM"].ToString().Trim()) + CMISproConvert.StrToFloat(sJGBHSJJM3) - CMISproConvert.StrToFloat(dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_HSBJM"].ToString().Trim())) * dBJU003HSBL); + } + else + { + sBJDHQCLCB = Convert.ToString(CMISproConvert.StrToFloat(sYSJDZ) * (CMISproConvert.StrToFloat(dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_HSJJ"].ToString().Trim()) * dBJU003HSBL + dCLCBC)); + sCLCB = Convert.ToString((CMISproConvert.StrToFloat(dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_HSJJ"].ToString().Trim()) + CMISproConvert.StrToFloat(sJGBHSJJ3) - CMISproConvert.StrToFloat(dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_HSBJ"].ToString().Trim())) * dBJU003HSBL); + } + } + else + { + if (bJQJG) + { + sBJDHQCLCB = Convert.ToString(CMISproConvert.StrToFloat(sYSJDZ) * (CMISproConvert.StrToFloat(dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_WSJJM"].ToString().Trim()) * dBJU003HSBL + dCLCBC)); + sCLCB = Convert.ToString((CMISproConvert.StrToFloat(dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_WSJJM"].ToString().Trim()) + CMISproConvert.StrToFloat(sJGBWSJJM3) - CMISproConvert.StrToFloat(dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_WSBJM"].ToString().Trim())) * dBJU003HSBL); + } + else + { + sBJDHQCLCB = Convert.ToString(CMISproConvert.StrToFloat(sYSJDZ) * (CMISproConvert.StrToFloat(dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_WSJJ"].ToString().Trim()) * dBJU003HSBL + dCLCBC)); + sCLCB = Convert.ToString((CMISproConvert.StrToFloat(dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_WSJJ"].ToString().Trim()) + CMISproConvert.StrToFloat(sJGBWSJJ3) - CMISproConvert.StrToFloat(dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_WSBJ"].ToString().Trim())) * dBJU003HSBL); + } + } + } + else if (XLBJDUtils.GetCPLJGS() == "4" && CMISproConvert.StrToFloat(sCLCBYSJDZ) > 0) + { + if (bHSBZ) + { + if (bJQJG) + { + sBJDHQCLCB = Convert.ToString(CMISproConvert.StrToFloat(sCLCBYSJDZ) * (CMISproConvert.StrToFloat(dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_HSJJM"].ToString().Trim()) * dBJU003HSBL + dCLCBC)); + sCLCB = Convert.ToString((CMISproConvert.StrToFloat(dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_HSJJM"].ToString().Trim()) + CMISproConvert.StrToFloat(sJGBHSJJM3) - CMISproConvert.StrToFloat(dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_HSBJM"].ToString().Trim())) * dBJU003HSBL); + } + else + { + sBJDHQCLCB = Convert.ToString(CMISproConvert.StrToFloat(sCLCBYSJDZ) * (CMISproConvert.StrToFloat(dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_HSJJ"].ToString().Trim()) * dBJU003HSBL + dCLCBC)); + sCLCB = Convert.ToString((CMISproConvert.StrToFloat(dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_HSJJ"].ToString().Trim()) + CMISproConvert.StrToFloat(sJGBHSJJ3) - CMISproConvert.StrToFloat(dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_HSBJ"].ToString().Trim())) * dBJU003HSBL); + } + } + else + { + if (bJQJG) + { + sBJDHQCLCB = Convert.ToString(CMISproConvert.StrToFloat(sCLCBYSJDZ) * (CMISproConvert.StrToFloat(dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_WSJJM"].ToString().Trim()) * dBJU003HSBL + dCLCBC)); + sCLCB = Convert.ToString((CMISproConvert.StrToFloat(dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_WSJJM"].ToString().Trim()) + CMISproConvert.StrToFloat(sJGBWSJJM3) - CMISproConvert.StrToFloat(dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_WSBJM"].ToString().Trim())) * dBJU003HSBL); + } + else + { + sBJDHQCLCB = Convert.ToString(CMISproConvert.StrToFloat(sCLCBYSJDZ) * (CMISproConvert.StrToFloat(dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_WSJJ"].ToString().Trim()) * dBJU003HSBL + dCLCBC)); + sCLCB = Convert.ToString((CMISproConvert.StrToFloat(dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_WSJJ"].ToString().Trim()) + CMISproConvert.StrToFloat(sJGBWSJJ3) - CMISproConvert.StrToFloat(dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_WSBJ"].ToString().Trim())) * dBJU003HSBL); + } + } + } + else + { + if (bHSBZ) + { + if (bJQJG) + { + sBJDHQCLCB = Convert.ToString(CMISproConvert.StrToFloat(dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_HSJJM"].ToString().Trim()) * dBJU003HSBL + dCLCBC); + sCLCB = Convert.ToString((CMISproConvert.StrToFloat(dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_HSJJM"].ToString().Trim()) + CMISproConvert.StrToFloat(sJGBHSJJM3) - CMISproConvert.StrToFloat(dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_HSBJM"].ToString().Trim())) * dBJU003HSBL); + } + else + { + sBJDHQCLCB = Convert.ToString(CMISproConvert.StrToFloat(dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_HSJJ"].ToString().Trim()) * dBJU003HSBL + dCLCBC); + sCLCB = Convert.ToString((CMISproConvert.StrToFloat(dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_HSJJ"].ToString().Trim()) + CMISproConvert.StrToFloat(sJGBHSJJ3) - CMISproConvert.StrToFloat(dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_HSBJ"].ToString().Trim())) * dBJU003HSBL); + } + } + else + { + if (bJQJG) + { + sBJDHQCLCB = Convert.ToString(CMISproConvert.StrToFloat(dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_WSJJM"].ToString().Trim()) * dBJU003HSBL + dCLCBC); + sCLCB = Convert.ToString((CMISproConvert.StrToFloat(dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_WSJJM"].ToString().Trim()) + CMISproConvert.StrToFloat(sJGBWSJJM3) - CMISproConvert.StrToFloat(dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_WSBJM"].ToString().Trim())) * dBJU003HSBL); + } + else + { + sBJDHQCLCB = Convert.ToString(CMISproConvert.StrToFloat(dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_WSJJ"].ToString().Trim()) * dBJU003HSBL + dCLCBC); + sCLCB = Convert.ToString((CMISproConvert.StrToFloat(dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_WSJJ"].ToString().Trim()) + CMISproConvert.StrToFloat(sJGBWSJJ3) - CMISproConvert.StrToFloat(dsJGBMX.Tables[0].Rows[0]["XLXSJGBMX_WSBJ"].ToString().Trim())) * dBJU003HSBL); + } + } + } + + //返回以报价单计量单位为主的价格 + XLBJDUtils.ChangeJLDW_1(sBJU003, sJLDW, tmpXSWS, ref sBJDHQCLCB); + XLBJDUtils.ChangeJLDW_1(sBJU003, sJLDW, tmpXSWS, ref sJGBJJ); + XLBJDUtils.ChangeJLDW_1(sBJU003, sJLDW, tmpXSWS, ref sJGBBJ); + + //重算报价的过程在for循环外层 + } + else + { + //因素3失去因素1的依存 + sBJDHQCLCB = "0"; + sJGBJJ = "0"; + sJGBBJ = "0"; + } + + //取价格表因子值,后续用于更新报价单明细UpdJJYZList栏目 + SQL.Clear(); + SQL.Add("select XLXSJGBYZZ0_YZZ01,XLXSJGBYZZ0_YZZ02,XLXSJGBYZZ0_YZZ03,XLXSJGBYZZ0_YZZ04,XLXSJGBYZZ0_YZZ05,XLXSJGBYZZ0_YZZ06,XLXSJGBYZZ0_YZZ07,XLXSJGBYZZ0_YZZ08,XLXSJGBYZZ0_YZZ09,XLXSJGBYZZ0_YZZ10"); + SQL.Add(" from XLXSJGBYZZ0"); + SQL.Add(" where XLXSJGBYZZ0_JGBID=:pJGBID3 and XLXSJGBYZZ0_XH=:pJGBXH1"); + SQL.ParamByName("pJGBID3").Value = sJGBID; + SQL.ParamByName("pJGBXH1").Value = sJGBXH1; + DataSet dsJJYZ = dberp.OpenDataSet(SQL); + if (dsJJYZ.Tables[0].Rows.Count > 0) + { + dicJJYZList.Add("JZ01", CMISproConvert.StrToFloat(dsJJYZ.Tables[0].Rows[0]["XLXSJGBYZZ0_YZZ01"].ToString(), 0)); + dicJJYZList.Add("JZ02", CMISproConvert.StrToFloat(dsJJYZ.Tables[0].Rows[0]["XLXSJGBYZZ0_YZZ02"].ToString(), 0)); + dicJJYZList.Add("JZ03", CMISproConvert.StrToFloat(dsJJYZ.Tables[0].Rows[0]["XLXSJGBYZZ0_YZZ03"].ToString(), 0)); + dicJJYZList.Add("JZ04", CMISproConvert.StrToFloat(dsJJYZ.Tables[0].Rows[0]["XLXSJGBYZZ0_YZZ04"].ToString(), 0)); + dicJJYZList.Add("JZ05", CMISproConvert.StrToFloat(dsJJYZ.Tables[0].Rows[0]["XLXSJGBYZZ0_YZZ05"].ToString(), 0)); + dicJJYZList.Add("JZ06", CMISproConvert.StrToFloat(dsJJYZ.Tables[0].Rows[0]["XLXSJGBYZZ0_YZZ06"].ToString(), 0)); + dicJJYZList.Add("JZ07", CMISproConvert.StrToFloat(dsJJYZ.Tables[0].Rows[0]["XLXSJGBYZZ0_YZZ07"].ToString(), 0)); + dicJJYZList.Add("JZ08", CMISproConvert.StrToFloat(dsJJYZ.Tables[0].Rows[0]["XLXSJGBYZZ0_YZZ08"].ToString(), 0)); + dicJJYZList.Add("JZ09", CMISproConvert.StrToFloat(dsJJYZ.Tables[0].Rows[0]["XLXSJGBYZZ0_YZZ09"].ToString(), 0)); + dicJJYZList.Add("JZ10", CMISproConvert.StrToFloat(dsJJYZ.Tables[0].Rows[0]["XLXSJGBYZZ0_YZZ10"].ToString(), 0)); + dicJJYZList.Add("YSJDZ", CMISproConvert.StrToFloat(sYSJDZ, 0)); + } + else + { + dicJJYZList.Add("JZ01", 0); + dicJJYZList.Add("JZ02", 0); + dicJJYZList.Add("JZ03", 0); + dicJJYZList.Add("JZ04", 0); + dicJJYZList.Add("JZ05", 0); + dicJJYZList.Add("JZ06", 0); + dicJJYZList.Add("JZ07", 0); + dicJJYZList.Add("JZ08", 0); + dicJJYZList.Add("JZ09", 0); + dicJJYZList.Add("JZ10", 0); + dicJJYZList.Add("YSJDZ", CMISproConvert.StrToFloat(sYSJDZ, 0)); + } + } + + //四要素-》表价-》数量-》因子-》报价-》价差率 + //调四要素 -> 获取表价之前的数据 + + public static void UpdateXLXSBJDMX_JGBBJ(TDatabase dberp, TSQL SQL, string sBJDID, string sXLXHID, string sXLGGID, string sXLBZID, string sDYDJID, Dictionary dic, + ref double dCPJJ, ref double dJJ, ref double dCLCB, ref double dBJDHQCLCB, ref double fCLZL, ref Dictionary dicJJYZList_JGE, ref string sWGCPBZ, ref string sJGFBZ) + { + + + dCPJJ = 0; + dJJ = 0; + dCLCB = 0; + dBJDHQCLCB = 0; + fCLZL = 0; + + bool JgIsZero = false;//是否存在有材料用量、无材料价格的情况 + + string sXH = ""; + dic.TryGetValue("sXH", out sXH); + + string fBJSL = "0"; + dic.TryGetValue("fBJSL", out fBJSL); + + string sJLDW = ""; + dic.TryGetValue("sJLDW", out sJLDW); + + string sXSWS = "5"; + dic.TryGetValue("iXSWS", out sXSWS); + int iXSWS = CMISproConvert.StrToInt(sXSWS); + if (iXSWS < 0) + { + iXSWS = 0; + } + else if (iXSWS > 8) + { + iXSWS = 8; + } + string sXSQYID = ""; + dic.TryGetValue("sXSQYID", out sXSQYID); + + string sBJFLID = ""; + dic.TryGetValue("sBJFLID", out sBJFLID); + + string sJGBID = ""; + dic.TryGetValue("sJGBID", out sJGBID); + + string sBJDHQLY = "1"; + dic.TryGetValue("sBJDHQLY", out sBJDHQLY); + + string sBJRQ = ""; + dic.TryGetValue("sBJRQ", out sBJRQ); + + string sJGBIDS = ""; + dic.TryGetValue("sJGBIDS", out sJGBIDS); + + string fJZBJHS = "Y"; + dic.TryGetValue("fJZBJHS", out fJZBJHS); + bool bHSBZ = fJZBJHS.Equals("Y"); + + string sLJJCLLX = ""; + dic.TryGetValue("sLJJCLLX", out sLJJCLLX); + + string sJCLLX = ""; + dic.TryGetValue("sJCLLX", out sJCLLX); + + string sBJLY = ""; + dic.TryGetValue("sBJLY", out sBJLY); + + string sTZCLHQ = ""; + dic.TryGetValue("sTZCLHQ", out sTZCLHQ); + + string sJGCIDS = ""; + dic.TryGetValue("sJGCIDS", out sJGCIDS); + + string sJGBTJYS = ""; + dic.TryGetValue("sJGBTJYS", out sJGBTJYS); + + string sTBJCLID = ""; + dic.TryGetValue("sTBJCLID", out sTBJCLID); + + string sLBJCLID = ""; + dic.TryGetValue("sLBJCLID", out sLBJCLID); + + string sTJ = "0"; + dic.TryGetValue("sTJ", out sTJ); + if (sTJ.Equals("")) + { + sTJ = "0"; + } + + string sLJ = "0"; + dic.TryGetValue("sLJ", out sLJ); + if (sLJ.Equals("")) + { + sLJ = "0"; + } + + string sBJU003 = ""; + dic.TryGetValue("sBJU003", out sBJU003); + + string sBJU018 = ""; + dic.TryGetValue("sBJU018", out sBJU018); + + + bool IsJGEJGB = XLBJDUtils.IsJGEJGB(sJGBID.Trim()); + if (IsJGEJGB) + { + dicJJYZList_JGE.Add("JZ01", 0); + dicJJYZList_JGE.Add("JZ02", 0); + dicJJYZList_JGE.Add("JZ03", 0); + dicJJYZList_JGE.Add("JZ04", 0); + dicJJYZList_JGE.Add("JZ05", 0); + dicJJYZList_JGE.Add("JZ06", 0); + dicJJYZList_JGE.Add("JZ07", 0); + dicJJYZList_JGE.Add("JZ08", 0); + dicJJYZList_JGE.Add("JZ09", 0); + dicJJYZList_JGE.Add("JZ10", 0); + } + + string sCPJJ = ""; + string sJJ = ""; + string sCLCB = ""; + string sBJDHQCLCB = ""; + double dBJDJLDWHSBL = 1; + string sJGBJLDW = GetJGBJLDW(sJGBID, sXLXHID, sXLGGID, sXLBZID, sDYDJID, sBJU003, sBJU018); + string sJGBJSDW = XLBJDUtils.GetsJSDW(sJGBJLDW, sBJU003); + BJFLXX bjflxx = GetBJFLXX(sBJFLID); + string sJGBJJLY = GetXLXSJGBXXByJGBID(sJGBID).XLXSJGB_JJLY; + + if (XLBJDUtils.IsJGFJGBMX(sBJRQ, sXLXHID, sXLGGID, sXLBZID, sDYDJID)) + { + sJGFBZ = "Y"; + double dJGFJJ = 0; + double dJGFBJ = 0; + string sJGFJLDW = ""; + XLBJDUtils.GetJGBJJ_JGF(sBJRQ, sXLXHID, sXLGGID, sXLBZID, sDYDJID, bHSBZ, sBJU018, ref dJGFJJ, ref dJGFBJ, ref sJGFJLDW); + //M、KM、米、千米、KG、T、千克、公斤、吨 + if (sJCJLDWList.IndexOf(sJGFJLDW.ToUpper()) >= 0 + && sJCJLDWList.IndexOf(sJLDW.ToUpper()) >= 0) + { + dBJDJLDWHSBL = XLBJDUtils.GetJLDWHSBL_JG(sJGFJLDW, sJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID); + } + else + { + dBJDJLDWHSBL = XLBJDUtils.GetJLDWHSBL_JG(sJGFJLDW, sJLDW); + } + sCPJJ = dJGFBJ.ToString().Trim(); + sJJ = dJGFJJ.ToString().Trim(); + sCLCB = dJGFJJ.ToString().Trim(); + sBJDHQCLCB = dJGFJJ.ToString().Trim(); + } + else if (XLBJDUtils.IsWGCP(sXLXHID, sXLGGID, sXLBZID, sDYDJID)) + { + sWGCPBZ = "Y"; + dBJDJLDWHSBL = 1; + sCPJJ = "0"; + sJJ = "0"; + sCLCB = "0"; + sBJDHQCLCB = "0"; + } + else + { + if (!IsJGEJGB)//是否表价实时计算价格表 + { + //M、KM、米、千米、KG、T、千克、公斤、吨 + if (sJCJLDWList.IndexOf(sJGBJSDW.ToUpper()) >= 0 + && sJCJLDWList.IndexOf(sJLDW.ToUpper()) >= 0) + { + dBJDJLDWHSBL = XLBJDUtils.GetJLDWHSBL_JG(sJGBJSDW, sJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID); + } + else + { + dBJDJLDWHSBL = XLBJDUtils.GetJLDWHSBL_JG(sJGBJLDW, sJLDW); + } + + if (sJGBTJYS.Trim().Equals("3"))//3|表价(现行价)=基价(出厂价+材料价价差)&调价 + { + XLBJDInfo.GetFromJGB(sXLXHID, sXLGGID, sXLBZID, sDYDJID, sJGBID, sJGCIDS, bHSBZ, sBJU018, ref sCPJJ, ref sJJ, ref sCLCB); + //因素3的“报价单行情来源”始终为“1|价格表行情” + sBJDHQCLCB = sCLCB; + + bool bExistBJDHQ = false; + if (sTZCLHQ.Equals("Y"))//是否允许调整材料行情 + { + if (!sBJDID.Trim().Equals("")) + { + if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select top 1 XLXSBJDCLHQ_BJCLID from XLXSBJDCLHQ where XLXSBJDCLHQ_BJDID='{0}'", sBJDID))) + { + bExistBJDHQ = true; + } + } + } + if (bExistBJDHQ) + { + if (sJCJLDWList.IndexOf(sJGBJSDW.ToUpper()) >= 0) + { + Dictionary dicJJYZList = new Dictionary(); + XLBJDUtils.GetFromJGB_BJDHQ_JGBTJYS3(sXLXHID, sXLGGID, sXLBZID, sDYDJID, + sBJDID, sBJRQ, bHSBZ, iXSWS, + sJGBID, sJGBIDS, sJLDW, sBJU003, sBJU018, dic["sJSBLFS"], + sTBJCLID, sLBJCLID, sTJ, sLJ, bExistBJDHQ, + ref sCPJJ, ref sJJ, ref sBJDHQCLCB, ref sCLCB, ref dicJJYZList); + } + } + } + else + { + //记录衍生产品原四要素 + string tmpXLXHID = sXLXHID; + string tmpXLGGID = sXLGGID; + string tmpXLBZID = sXLBZID; + string tmpDYDJID = sDYDJID; + int iSYXH = 0; + double dYSJDZ = 1; + double dCLCBYSJDZ = 1; + bool bExistedSYJGBMX = false; + if (sJGBTJYS.Trim().Equals("1")) + { + //因素1先将衍生产品四要素替换成所依四要素 + bExistedSYJGBMX = XLBJDUtils.ExistedSYJGBMX(sXLXHID, sXLGGID, sXLBZID, sDYDJID, sJGBID, ref iSYXH, ref dYSJDZ, ref dCLCBYSJDZ); + } + if (sBJLY.Equals("D") || sBJLY.Equals("C")) + { + XLBJDInfo.GetFromJGB(sXLXHID, sXLGGID, sXLBZID, sDYDJID, sJGBID, sJGCIDS, bHSBZ, sBJU018, ref sCPJJ, ref sJJ, ref sCLCB); + if (sJCJLDWList.IndexOf(sJGBJSDW.ToUpper()) >= 0) + { + if (bExistedSYJGBMX) + XLBJDUtils.GetJGBMXBySYXH(sJGBID, iSYXH, ref sXLXHID, ref sXLGGID, ref sXLBZID, ref sDYDJID); + Dictionary aryBJHQ = XLBJDUtils.GetCLCB_BJHQ(sBJFLID, sJGBID, sBJRQ, sXLXHID, sXLGGID, sXLBZID, sDYDJID, sJGBJLDW, sBJU003); + + if (bExistedSYJGBMX) + { + sXLXHID = tmpXLXHID; + sXLGGID = tmpXLGGID; + sXLBZID = tmpXLBZID; + sDYDJID = tmpDYDJID; + } + JgIsZero = aryBJHQ["JgIsZero"] == 1 ? true : false; + + if (bHSBZ) + { + sCLCB = aryBJHQ["CLCB"].ToString(); + } + else + { + sCLCB = aryBJHQ["WSCLCB"].ToString(); + } + } + } + else + { + if (sJCJLDWList.IndexOf(sJGBJSDW.ToUpper()) >= 0) + { + 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, sXLBZID, sDYDJID, + sJGBID, sJGCIDS, sBJRQ, bHSBZ, XLBJDUtils.JQJSXSWS.ToString(), + sBJFLID, sJGBJLDW, sBJU003, ref sCPJJ, ref sJJ, ref sCLCB, ref JgIsZero); + } + else + { + XLBJDUtils.GetFromJGB_BJRHQ(sXLXHID, sXLGGID, sXLBZID, sDYDJID, + sJGBID, sJGCIDS, sBJRQ, bHSBZ, iXSWS.ToString(), + sBJFLID, sJGBJLDW, sBJU003, ref sCPJJ, ref sJJ, ref sCLCB, ref JgIsZero); + } + } + else + { + XLBJDInfo.GetFromJGB(sXLXHID, sXLGGID, sXLBZID, sDYDJID, sJGBID, sJGCIDS, bHSBZ, sBJU018, ref sCPJJ, ref sJJ, ref sCLCB); + } + } + else + { + XLBJDInfo.GetFromJGB(sXLXHID, sXLGGID, sXLBZID, sDYDJID, sJGBID, sJGCIDS, bHSBZ, sBJU018, ref sCPJJ, ref sJJ, ref sCLCB); + } + } + + string sHasCLQD = "N"; + if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSCLQD where XLXSCLQD_XLXHID='{0}' and XLXSCLQD_XLGGID='{1}' and XLXSCLQD_XLBZID='{2}' and XLXSCLQD_DYDJID='{3}' and XLXSCLQD_WPID='ZZZZ' ", sXLXHID, sXLGGID, sXLBZID, sDYDJID))) + sHasCLQD = "Y"; + if (bExistedSYJGBMX && sHasCLQD.Equals("N")) + { + //记录衍生产品原四要素 + tmpXLXHID = sXLXHID; + tmpXLGGID = sXLGGID; + tmpXLBZID = sXLBZID; + tmpDYDJID = sDYDJID; + XLBJDUtils.GetJGBMXBySYXH(sJGBID, iSYXH, ref sXLXHID, ref sXLGGID, ref sXLBZID, ref sDYDJID); + } + + + + if (sBJDHQLY.Trim().Equals("1")) + { + if (JgIsZero)//若存在有材料用量、无材料价格的情况,则算出的报价单行情料价改为负数显示 + { + sBJDHQCLCB = Convert.ToString(CMISproConvert.StrToFloat(sCLCB) * -1); + } + else + { + sBJDHQCLCB = sCLCB; + } + } + else + { + Dictionary aryBJRHQ = XLBJDUtils.GetCLCB_BJRHQ(sBJRQ, sXLXHID, sXLGGID, sXLBZID, sDYDJID); + JgIsZero = aryBJRHQ["JgIsZero"] == 1 ? true : false; + + if (JgIsZero)//若存在有材料用量、无材料价格的情况,则算出的报价单行情料价改为负数显示 + { + if (bHSBZ) + { + sBJDHQCLCB = Convert.ToString(aryBJRHQ["CLCB"] * -1); + } + else + { + sBJDHQCLCB = Convert.ToString(aryBJRHQ["WSCLCB"] * -1); + } + } + else + { + if (bHSBZ) + { + sBJDHQCLCB = aryBJRHQ["CLCB"].ToString(); + + } + else + { + sBJDHQCLCB = aryBJRHQ["WSCLCB"].ToString(); + } + } + //统一为价格表计量单位的价格 + double dBJU003_JGB_JLDWHSBL = XLBJDUtils.GetJLDWHSBL_JG(sBJU003, sJGBJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID); + sBJDHQCLCB = Convert.ToString(CMISproConvert.StrToFloat(sBJDHQCLCB) * dBJU003_JGB_JLDWHSBL); + } + + if (sTZCLHQ.Equals("Y"))//是否允许调整材料行情 + { + if (!sBJDID.Equals("")) + { + if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select top 1 XLXSBJDCLHQ_BJCLID from XLXSBJDCLHQ where XLXSBJDCLHQ_BJDID='{0}'", sBJDID))) + { + Dictionary aryBJDHQCLCB = XLBJDUtils.GetCLCB_BJDHQ(sBJDID, sBJRQ, sXLXHID, sXLGGID, sXLBZID, sDYDJID); + if (bHSBZ) + { + sBJDHQCLCB = aryBJDHQCLCB["CLCB"].ToString(); + } + else + { + sBJDHQCLCB = aryBJDHQCLCB["WSCLCB"].ToString(); + } + + //统一为价格表计量单位的价格 + double dBJU003_JGB_JLDWHSBL = XLBJDUtils.GetJLDWHSBL_JG(sBJU003, sJGBJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID); + if (bjflxx.XLXSBJFL_ABJDHQJSBJ == "Y" && sJGBJJLY == "A") + { + if (ISExistJGBMX(sJGBID, sJGCIDS, sXLXHID, sXLGGID, sXLBZID, sDYDJID) || bjflxx.XLXSBJFL_FJGBCPBJSBJ == "N") + { + sJJ = sBJDHQCLCB; + sCPJJ = Convert.ToString(NumberUtils.RoundX(XLBJDUtils.GetCPJJbyCLCB(NumberUtils.RoundX(CMISproConvert.StrToFloat(sJJ), iXSWS), sJGBID, sJGCIDS, sXLXHID, sXLGGID, sXLBZID, sDYDJID), iXSWS) * dYSJDZ); + sJJ = Convert.ToString(CMISproConvert.StrToFloat(sJJ) * dBJU003_JGB_JLDWHSBL); + sCPJJ = Convert.ToString(CMISproConvert.StrToFloat(sCPJJ) * dBJU003_JGB_JLDWHSBL); + } + } + sBJDHQCLCB = Convert.ToString(CMISproConvert.StrToFloat(sBJDHQCLCB) * dBJU003_JGB_JLDWHSBL); + } + } + } + string sCPLJGS = XLBJDUtils.GetCPLJGS(); + //还原四要素 + if (bExistedSYJGBMX && sHasCLQD.Equals("N")) + { + sXLXHID = tmpXLXHID; + sXLGGID = tmpXLGGID; + sXLBZID = tmpXLBZID; + sDYDJID = tmpDYDJID; + if (sCPLJGS == "2") + { + sBJDHQCLCB = Convert.ToString(CMISproConvert.StrToFloat(sBJDHQCLCB) * dYSJDZ); + sCLCB = Convert.ToString(CMISproConvert.StrToFloat(sCLCB) * dYSJDZ); + } + if (sCPLJGS == "4") + { + sBJDHQCLCB = Convert.ToString(CMISproConvert.StrToFloat(sBJDHQCLCB) * dCLCBYSJDZ); + sCLCB = Convert.ToString(CMISproConvert.StrToFloat(sCLCB) * dCLCBYSJDZ); + } + } + + //无材料清单且料价计算方式为3|按报价单料价加点对照表计算 + if (sHasCLQD.Equals("N") && (sCPLJGS == "3")) + { + double dCLQDJDCLCHQ = XLBJDUtils.GetCLQDJDCLCHQ(sBJDID, sBJRQ, sXLXHID, sXLGGID, sXLBZID, sDYDJID, bHSBZ, sJGBJLDW, sBJU003); + sBJDHQCLCB = Convert.ToString(dCLQDJDCLCHQ); + } + } + } + else//表价实时计算价格表 + { + //M、KM、米、千米、KG、T、千克、公斤、吨 + if (sJCJLDWList.IndexOf(sJGBJSDW.ToUpper()) >= 0 + && sJCJLDWList.IndexOf(sJLDW.ToUpper()) >= 0) + { + dBJDJLDWHSBL = XLBJDUtils.GetJLDWHSBL_JG(sBJU003, sJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID); + } + else + { + dBJDJLDWHSBL = XLBJDUtils.GetJLDWHSBL_JG(sBJU003, sJLDW); + } + + + bool bExistBJDHQ = false; + if (sTZCLHQ.Equals("Y"))//是否允许调整材料行情 + { + if (!sBJDID.Equals("")) + { + if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select top 1 XLXSBJDCLHQ_BJCLID from XLXSBJDCLHQ where XLXSBJDCLHQ_BJDID='{0}'", sBJDID))) + { + bExistBJDHQ = true; + } + } + } + Dictionary dicJGE = XLBJDUtils.GetCLCB_JGE(sBJRQ, sXLXHID, sXLGGID, sXLBZID, sDYDJID, sTBJCLID, sLBJCLID, sTJ, sLJ, bHSBZ, bExistBJDHQ, sBJDID); + JgIsZero = dicJGE["JgIsZero"] == 1 ? true : false; + sCLCB = dicJGE["CLCB"].ToString(); + sCPJJ = sCLCB; + sJJ = sCLCB; + if (JgIsZero)//若存在有材料用量、无材料价格的情况,则算出的表价、报价单行情料价改为负数显示 + { + sBJDHQCLCB = Convert.ToString(dicJGE["CLCB"] * (-1)); + } + else + { + sBJDHQCLCB = sCLCB; + } + + DataSet dsJGBYZ = new DataSet(); + string sJGBTJYSS = ""; + //计算公式以及因子的输出 + Dictionary dicJGBTZYZGS_JGE = new Dictionary(); + //记录价格表调价因素相关信息-线缆基本信息 + Dictionary dicXLJBXX_JGE = new Dictionary(); + XLBJDUtils.GetdsJGBYZ_JGE(sJGBID.Trim(), 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", dBJDJLDWHSBL.ToString().Trim()); + dicJGBTZYZGS_JGE = XLBJDUtils.GetJGBTZYZ_JGE(sJGBID.Trim(), "0", dsJGBYZ, dicXLJBXX_JGE); + //sCLCB = NumberUtils.RoundX(CMISproConvert.StrToFloat(sCLCB), iXSWS).ToString().Trim(); + string sTempCLCB = NumberUtils.RoundX(CMISproConvert.StrToFloat(sCLCB), iXSWS).ToString().Trim(); + double dZBZ = NumberUtils.RoundX(CMISproConvert.StrToFloat(sTempCLCB), iXSWS); + if (sJGBTJYSS.Equals("1")) + { + + string sTmpGS = ""; + string sJSGS = dicJGBTZYZGS_JGE["JSGS"].Trim(); + if (sJSGS.Equals("")) + { + if (dicJGBTZYZGS_JGE["JJFirst"].Equals("1")) + { + sTmpGS = "(" + sTempCLCB + "+" + dicJGBTZYZGS_JGE["JJ"] + ")*(" + dicJGBTZYZGS_JGE["JD"] + ")*(" + dicJGBTZYZGS_JGE["KD"] + ")*(" + dicJGBTZYZGS_JGE["SX"] + ")"; + } + else + { + sTmpGS = sTempCLCB + "*(" + dicJGBTZYZGS_JGE["JD"] + ")*(" + dicJGBTZYZGS_JGE["KD"] + ")*(" + dicJGBTZYZGS_JGE["SX"] + ")+(" + dicJGBTZYZGS_JGE["JJ"] + ")"; + + } + } + else + { + sTmpGS = sJSGS.Replace("JGBJJ", sTempCLCB); + } + gtExpression exp = new gtExpression(); + try + { + dZBZ = NumberUtils.RoundX(exp.Evaluate(sTmpGS), 15); + } + catch + { + dZBZ = 0; + } + Dictionary dicJDYZXS = new Dictionary(); + for (int i = 0; i < dsJGBYZ.Tables[0].Rows.Count; i++) + { + string sYZID = dsJGBYZ.Tables[0].Rows[i]["XLXSJGBYZ_YZID"].ToString().Trim(); + string sJJFS = dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_JJFS"].ToString().Trim(); + if (sJJFS.Equals("JJ") && (!dicJDYZXS.ContainsKey(sYZID))) + dicJDYZXS.Add(sYZID, dBJDJLDWHSBL); + else + dicJDYZXS.Add(sYZID, 1); + } + + for (int i = 1; i <= 10; i++) + { + string sYZID = "JZ" + i.ToString().PadLeft(2, '0'); + if (dicJGBTZYZGS_JGE.ContainsKey(sYZID) && dicJDYZXS.ContainsKey(sYZID)) + { + double sYZZ = CMISproConvert.StrToFloat(dicJGBTZYZGS_JGE[sYZID].Trim(), 0) * dicJDYZXS[sYZID]; + dicJGBTZYZGS_JGE[sYZID] = sYZZ.ToString(); + } + + } + + dicJJYZList_JGE["JZ01"] = CMISproConvert.StrToFloat(dicJGBTZYZGS_JGE["JZ01"], 0); + dicJJYZList_JGE["JZ02"] = CMISproConvert.StrToFloat(dicJGBTZYZGS_JGE["JZ02"], 0); + dicJJYZList_JGE["JZ03"] = CMISproConvert.StrToFloat(dicJGBTZYZGS_JGE["JZ03"], 0); + dicJJYZList_JGE["JZ04"] = CMISproConvert.StrToFloat(dicJGBTZYZGS_JGE["JZ04"], 0); + dicJJYZList_JGE["JZ05"] = CMISproConvert.StrToFloat(dicJGBTZYZGS_JGE["JZ05"], 0); + dicJJYZList_JGE["JZ06"] = CMISproConvert.StrToFloat(dicJGBTZYZGS_JGE["JZ06"], 0); + dicJJYZList_JGE["JZ07"] = CMISproConvert.StrToFloat(dicJGBTZYZGS_JGE["JZ07"], 0); + dicJJYZList_JGE["JZ08"] = CMISproConvert.StrToFloat(dicJGBTZYZGS_JGE["JZ08"], 0); + dicJJYZList_JGE["JZ09"] = CMISproConvert.StrToFloat(dicJGBTZYZGS_JGE["JZ09"], 0); + dicJJYZList_JGE["JZ10"] = CMISproConvert.StrToFloat(dicJGBTZYZGS_JGE["JZ10"], 0); + } + + if (JgIsZero)//若存在有材料用量、无材料价格的情况,则算出的表价、报价单行情料价改为负数显示 + { + sCPJJ = Convert.ToString(dZBZ * (-1)); + sCLCB = Convert.ToString(CMISproConvert.StrToFloat(sCLCB) * (-1)); + sJJ = Convert.ToString(CMISproConvert.StrToFloat(sJJ) * (-1)); + } + else + { + sCPJJ = dZBZ.ToString().Trim(); + } + } + } + + dCPJJ = CMISproConvert.StrToFloat(sCPJJ, 0); + dJJ = CMISproConvert.StrToFloat(sJJ, 0); + dCLCB = CMISproConvert.StrToFloat(sCLCB, 0); + dBJDHQCLCB = CMISproConvert.StrToFloat(sBJDHQCLCB, 0); + + if (sBJU018.Equals("Y") && XLBJDUtils.sJQCDJLDWList.Contains(sJGBJLDW.ToUpper()))//若BJU018参数值为Y,且为价格表单位为长度单位,则先换算倍率后再保留小数位数。 + { + dCPJJ = dCPJJ * dBJDJLDWHSBL; + dJJ = dJJ * dBJDJLDWHSBL; + dCLCB = dCLCB * dBJDJLDWHSBL; + dBJDHQCLCB = dBJDHQCLCB * dBJDJLDWHSBL; + + + dCPJJ = NumberUtils.RoundX(dCPJJ, iXSWS); + dJJ = NumberUtils.RoundX(dJJ, iXSWS); + dCLCB = NumberUtils.RoundX(dCLCB, iXSWS); + dBJDHQCLCB = NumberUtils.RoundX(dBJDHQCLCB, iXSWS); + } + else + { + dCPJJ = NumberUtils.RoundX(dCPJJ, iXSWS); + dJJ = NumberUtils.RoundX(dJJ, iXSWS); + dCLCB = NumberUtils.RoundX(dCLCB, iXSWS); + dBJDHQCLCB = NumberUtils.RoundX(dBJDHQCLCB, iXSWS); + + dCPJJ = dCPJJ * dBJDJLDWHSBL; + dJJ = dJJ * dBJDJLDWHSBL; + dCLCB = dCLCB * dBJDJLDWHSBL; + dBJDHQCLCB = dBJDHQCLCB * dBJDJLDWHSBL; + } + + if (CMISproConvert.StrToFloat(fBJSL) != 0) + { //研发自测:王威2025/5/21 15:46:16 + + fCLZL = XLBJDUtils.GetCLZL(sXLXHID, sXLGGID, sXLBZID, sDYDJID,sJGBID); + double dBJU003_BJD_JLDWHSBL = 1; + if (sJCJLDWList_Weg.IndexOf(sJLDW.ToUpper()) >= 0) + { + dBJU003_BJD_JLDWHSBL = XLBJDUtils.GetCLZL_BJDJLDW(sJLDW); + fCLZL = CMISproConvert.StrToFloat(fBJSL) * dBJU003_BJD_JLDWHSBL; + } + else + { + dBJU003_BJD_JLDWHSBL = XLBJDUtils.GetJLDWHSBL_JG(sBJU003, sJLDW); + fCLZL = fCLZL * CMISproConvert.StrToFloat(fBJSL); + fCLZL = fCLZL * dBJU003_BJD_JLDWHSBL; + } + } + else + { + fCLZL = 0; + } + fCLZL = NumberUtils.RoundX(fCLZL, 6); + } + + //先加价则返回true-报价单处使用,传入报价分类 + public static bool JJFirst_BJDYZ(string sBJFLID) + { + bool bFirst_BJDYZ = false; + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add("select XLXSTZYZ_JJFS from XLXSBJFLYZ "); + SQL.Add("left join XLXSTZYZ on XLXSTZYZ_YZID = XLXSBJFLYZ_YZID "); + SQL.Add("where XLXSBJFLYZ_BJFLID =:pBJFLID "); + SQL.Add("and isnull(XLXSTZYZ_BCYTJ,'N') <> 'Y' "); + SQL.Add("order by XLXSTZYZ_XSXH "); + SQL.ParamByName("pBJFLID").Value = sBJFLID; + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + if (ds.Tables[0].Rows[0][0].ToString().Trim().Equals("JJ")) + { + bFirst_BJDYZ = true; + } + else + { + bFirst_BJDYZ = false; + } + } + return bFirst_BJDYZ; + } + + //先加价则返回true-价格表处使用,传入价格表ID + public static bool JJFirst_JGBYZ(string sJGBID) + { + bool bFirst_JGBYZ = false; + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add("select XLXSTZYZ_JJFS from XLXSJGBYZ "); + SQL.Add("left join XLXSTZYZ on XLXSTZYZ_YZID = XLXSJGBYZ_YZID "); + SQL.Add("where XLXSJGBYZ_JGBID =:pJGBID "); + SQL.Add("and isnull(XLXSTZYZ_BCYTJ,'N') <> 'Y' "); + SQL.Add("order by XLXSTZYZ_XSXH "); + SQL.ParamByName("pJGBID").Value = sJGBID; + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + if (ds.Tables[0].Rows[0][0].ToString().Trim().Equals("JJ")) + { + bFirst_JGBYZ = true; + } + else + { + bFirst_JGBYZ = false; + } + } + return bFirst_JGBYZ; + } + + public static string GetWhereEqual(string p_FieldName, string p_Values) + { + p_Values = p_Values.Replace(",", "' or " + p_FieldName + "='"); + p_Values = p_FieldName + "='" + p_Values + "'"; + p_Values = "(" + p_Values + ")"; + return p_Values; + } + + public static string GetTZQCPBJGS(string sBJFLID) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add("select XLXSBJFL_TZQCPBJGS from XLXSBJFL where XLXSBJFL_BJFLID=:pBJFLID"); + SQL.ParamByName("pBJFLID").Value = sBJFLID; + DataSet dsFL = dberp.OpenDataSet(SQL); + string sTZQCPBJGS = ""; + if (dsFL.Tables[0].Rows.Count > 0) + { + sTZQCPBJGS = dsFL.Tables[0].Rows[0]["XLXSBJFL_TZQCPBJGS"].ToString().Trim(); + } + return sTZQCPBJGS; + } + + //根据报价计算公式计算线缆销售报价单明细调整前产品报价 + public static double GetTZQCPBJ(string sJGBBJ, string sorYZZ01, string sorYZZ02, string sorYZZ03, string sorYZZ04, string sorYZZ05, + string sorYZZ06, string sorYZZ07, string sorYZZ08, string sorYZZ09, string sorYZZ10, string sorYZZ11, string sorYZZ12, string sorYZZ13, string sorYZZ14, string sorYZZ15, + string sorYZZ16, string sorYZZ17, string sorYZZ18, string sorYZZ19, string sorYZZ20, Dictionary dicChangedField, string sTZQCPBJGS, string sorTZZDXJ) + { + if (sJGBBJ.Trim().Equals("0") || sJGBBJ.Trim().Equals("")) + return 0; + string sYZZ01 = sorYZZ01; + string sYZZ02 = sorYZZ02; + string sYZZ03 = sorYZZ03; + string sYZZ04 = sorYZZ04; + string sYZZ05 = sorYZZ05; + string sYZZ06 = sorYZZ06; + string sYZZ07 = sorYZZ07; + string sYZZ08 = sorYZZ08; + string sYZZ09 = sorYZZ09; + string sYZZ10 = sorYZZ10; + string sYZZ11 = sorYZZ11; + string sYZZ12 = sorYZZ12; + string sYZZ13 = sorYZZ13; + string sYZZ14 = sorYZZ14; + string sYZZ15 = sorYZZ15; + string sYZZ16 = sorYZZ16; + string sYZZ17 = sorYZZ17; + string sYZZ18 = sorYZZ18; + string sYZZ19 = sorYZZ19; + string sYZZ20 = sorYZZ20; + string sTZZDXJ = sorTZZDXJ; + if (dicChangedField.ContainsKey("TZYZ_BJ01")) + sYZZ01 = dicChangedField["TZYZ_BJ01"]; + if (dicChangedField.ContainsKey("TZYZ_BJ02")) + sYZZ02 = dicChangedField["TZYZ_BJ02"]; + if (dicChangedField.ContainsKey("TZYZ_BJ03")) + sYZZ03 = dicChangedField["TZYZ_BJ03"]; + if (dicChangedField.ContainsKey("TZYZ_BJ04")) + sYZZ04 = dicChangedField["TZYZ_BJ04"]; + if (dicChangedField.ContainsKey("TZYZ_BJ05")) + sYZZ05 = dicChangedField["TZYZ_BJ05"]; + if (dicChangedField.ContainsKey("TZYZ_BJ06")) + sYZZ06 = dicChangedField["TZYZ_BJ06"]; + if (dicChangedField.ContainsKey("TZYZ_BJ07")) + sYZZ07 = dicChangedField["TZYZ_BJ07"]; + if (dicChangedField.ContainsKey("TZYZ_BJ08")) + sYZZ08 = dicChangedField["TZYZ_BJ08"]; + if (dicChangedField.ContainsKey("TZYZ_BJ09")) + sYZZ09 = dicChangedField["TZYZ_BJ09"]; + if (dicChangedField.ContainsKey("TZYZ_BJ10")) + sYZZ10 = dicChangedField["TZYZ_BJ10"]; + if (dicChangedField.ContainsKey("TZYZ_BJ11")) + sYZZ11 = dicChangedField["TZYZ_BJ11"]; + if (dicChangedField.ContainsKey("TZYZ_BJ12")) + sYZZ12 = dicChangedField["TZYZ_BJ12"]; + if (dicChangedField.ContainsKey("TZYZ_BJ13")) + sYZZ13 = dicChangedField["TZYZ_BJ13"]; + if (dicChangedField.ContainsKey("TZYZ_BJ14")) + sYZZ14 = dicChangedField["TZYZ_BJ14"]; + if (dicChangedField.ContainsKey("TZYZ_BJ15")) + sYZZ15 = dicChangedField["TZYZ_BJ15"]; + if (dicChangedField.ContainsKey("TZYZ_BJ16")) + sYZZ16 = dicChangedField["TZYZ_BJ16"]; + if (dicChangedField.ContainsKey("TZYZ_BJ17")) + sYZZ17 = dicChangedField["TZYZ_BJ17"]; + if (dicChangedField.ContainsKey("TZYZ_BJ18")) + sYZZ18 = dicChangedField["TZYZ_BJ18"]; + if (dicChangedField.ContainsKey("TZYZ_BJ19")) + sYZZ19 = dicChangedField["TZYZ_BJ19"]; + if (dicChangedField.ContainsKey("TZYZ_BJ20")) + sYZZ20 = dicChangedField["TZYZ_BJ20"]; + if (dicChangedField.ContainsKey("XLXSBJDMX_TZZDXJ")) + sTZZDXJ = dicChangedField["XLXSBJDMX_TZZDXJ"]; + + sYZZ01 = sYZZ01.Trim().Equals("") ? "0" : sYZZ01.Trim(); sYZZ02 = sYZZ02.Trim().Equals("") ? "0" : sYZZ02.Trim(); + sYZZ03 = sYZZ03.Trim().Equals("") ? "0" : sYZZ03.Trim(); sYZZ04 = sYZZ04.Trim().Equals("") ? "0" : sYZZ04.Trim(); + sYZZ05 = sYZZ05.Trim().Equals("") ? "0" : sYZZ05.Trim(); sYZZ06 = sYZZ06.Trim().Equals("") ? "0" : sYZZ06.Trim(); + sYZZ07 = sYZZ07.Trim().Equals("") ? "0" : sYZZ07.Trim(); sYZZ08 = sYZZ08.Trim().Equals("") ? "0" : sYZZ08.Trim(); + sYZZ09 = sYZZ09.Trim().Equals("") ? "0" : sYZZ09.Trim(); sYZZ10 = sYZZ10.Trim().Equals("") ? "0" : sYZZ10.Trim(); + sYZZ11 = sYZZ11.Trim().Equals("") ? "0" : sYZZ11.Trim(); sYZZ12 = sYZZ12.Trim().Equals("") ? "0" : sYZZ12.Trim(); + sYZZ13 = sYZZ13.Trim().Equals("") ? "0" : sYZZ13.Trim(); sYZZ14 = sYZZ14.Trim().Equals("") ? "0" : sYZZ14.Trim(); + sYZZ15 = sYZZ15.Trim().Equals("") ? "0" : sYZZ15.Trim(); sYZZ16 = sYZZ16.Trim().Equals("") ? "0" : sYZZ16.Trim(); + sYZZ17 = sYZZ17.Trim().Equals("") ? "0" : sYZZ17.Trim(); sYZZ18 = sYZZ18.Trim().Equals("") ? "0" : sYZZ18.Trim(); + sYZZ19 = sYZZ19.Trim().Equals("") ? "0" : sYZZ19.Trim(); sYZZ20 = sYZZ20.Trim().Equals("") ? "0" : sYZZ20.Trim(); + sTZZDXJ = sTZZDXJ.Trim().Equals("") ? "0" : sTZZDXJ.Trim(); + + sTZQCPBJGS = sTZQCPBJGS.Replace("JGBBJ", sJGBBJ); + sTZQCPBJGS = sTZQCPBJGS.Replace(" ", "").Replace("×", "*");//Replace("100", "100.00")是因为数据库计算时1/100的结果是0需转换为1/100.00结果才是0.01,此处直接计算无需处理 + sTZQCPBJGS = sTZQCPBJGS.Replace("BJ01", sYZZ01).Replace("BJ02", sYZZ02).Replace("BJ03", sYZZ03).Replace("BJ04", sYZZ04).Replace("BJ05", sYZZ05); + sTZQCPBJGS = sTZQCPBJGS.Replace("BJ06", sYZZ06).Replace("BJ07", sYZZ07).Replace("BJ08", sYZZ08).Replace("BJ09", sYZZ09).Replace("BJ10", sYZZ10); + sTZQCPBJGS = sTZQCPBJGS.Replace("BJ11", sYZZ11).Replace("BJ12", sYZZ12).Replace("BJ13", sYZZ13).Replace("BJ14", sYZZ14).Replace("BJ15", sYZZ15); + sTZQCPBJGS = sTZQCPBJGS.Replace("BJ16", sYZZ16).Replace("BJ17", sYZZ17).Replace("BJ18", sYZZ18).Replace("BJ19", sYZZ19).Replace("BJ20", sYZZ20); + sTZQCPBJGS = sTZQCPBJGS.Replace("TZZDXJ", sTZZDXJ); + double dTZQCPBJ = 0; + gtExpression exp = new gtExpression(); + try + { + dTZQCPBJ = NumberUtils.RoundX(exp.Evaluate(sTZQCPBJGS), 15); + } + catch + { + dTZQCPBJ = 0; + } + + return dTZQCPBJ; + } + + //根据最低限价计算公式计算线缆销售报价单明细最低限价 + public static string GetZDXJ(string sCLCB, string sBJDHQCLCB, string sJGBJJ, string sJGBBJ, string sCPBJ, + string sYZZ01, string sYZZ02, string sYZZ03, string sYZZ04, string sYZZ05, + string sYZZ06, string sYZZ07, string sYZZ08, string sYZZ09, string sYZZ10, + string sYZZ11, string sYZZ12, string sYZZ13, string sYZZ14, string sYZZ15, + string sYZZ16, string sYZZ17, string sYZZ18, string sYZZ19, string sYZZ20, + Dictionary dicChanedField, string sZDXJ, string sBJFLID, int tmpXSWS, string sZDXJBJDID, string sUpdJJYZList) + { + if (!sZDXJBJDID.Trim().Equals("")) + return sZDXJ; + bool NeedChang = false; + //最低限价公式目前支持的选项字段 + string sField = "XLXSBJDMX_CLCB,XLXSBJDMX_BJDHQCLCB,XLXSBJDMX_JGBJJ,XLXSBJDMX_JGBBJ,XLXSBJDMX_CPBJ,TZYZ_BJ01,TZYZ_BJ02,TZYZ_BJ03,TZYZ_BJ04,TZYZ_BJ05,TZYZ_BJ06,TZYZ_BJ07,TZYZ_BJ08,TZYZ_BJ09,TZYZ_BJ10,TZYZ_BJ11,TZYZ_BJ12,TZYZ_BJ13,TZYZ_BJ14,TZYZ_BJ15,TZYZ_BJ16,TZYZ_BJ17,TZYZ_BJ18,TZYZ_BJ19,TZYZ_BJ20"; + foreach (string tmpField in sField.Split(',')) + { + if (dicChanedField.ContainsKey(tmpField)) + { + NeedChang = true; + break; + } + } + + if (NeedChang) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add(" SELECT XLXSBJFL_ZDXJGS,XLXSBJFL_BJDHQLY,XLXSBJFL_MXBH FROM XLXSBJFL where XLXSBJFL_BJFLID = :pXLXSBJFL_BJFLID"); + SQL.ParamByName("pXLXSBJFL_BJFLID").Value = sBJFLID; + DataSet dsBJFLID = dberp.OpenDataSet(SQL); + if (dsBJFLID.Tables[0].Rows.Count > 0) + { + if (!dsBJFLID.Tables[0].Rows[0]["XLXSBJFL_ZDXJGS"].ToString().Trim().Equals("")) + { + sYZZ01 = sYZZ01.Trim().Equals("") ? "0" : sYZZ01.Trim(); sYZZ02 = sYZZ02.Trim().Equals("") ? "0" : sYZZ02.Trim(); + sYZZ03 = sYZZ03.Trim().Equals("") ? "0" : sYZZ03.Trim(); sYZZ04 = sYZZ04.Trim().Equals("") ? "0" : sYZZ04.Trim(); + sYZZ05 = sYZZ05.Trim().Equals("") ? "0" : sYZZ05.Trim(); sYZZ06 = sYZZ06.Trim().Equals("") ? "0" : sYZZ06.Trim(); + sYZZ07 = sYZZ07.Trim().Equals("") ? "0" : sYZZ07.Trim(); sYZZ08 = sYZZ08.Trim().Equals("") ? "0" : sYZZ08.Trim(); + sYZZ09 = sYZZ09.Trim().Equals("") ? "0" : sYZZ09.Trim(); sYZZ10 = sYZZ10.Trim().Equals("") ? "0" : sYZZ10.Trim(); + sYZZ11 = sYZZ11.Trim().Equals("") ? "0" : sYZZ11.Trim(); sYZZ12 = sYZZ12.Trim().Equals("") ? "0" : sYZZ12.Trim(); + sYZZ13 = sYZZ13.Trim().Equals("") ? "0" : sYZZ13.Trim(); sYZZ14 = sYZZ14.Trim().Equals("") ? "0" : sYZZ14.Trim(); + sYZZ15 = sYZZ15.Trim().Equals("") ? "0" : sYZZ15.Trim(); sYZZ16 = sYZZ16.Trim().Equals("") ? "0" : sYZZ16.Trim(); + sYZZ17 = sYZZ17.Trim().Equals("") ? "0" : sYZZ17.Trim(); sYZZ18 = sYZZ18.Trim().Equals("") ? "0" : sYZZ18.Trim(); + sYZZ19 = sYZZ19.Trim().Equals("") ? "0" : sYZZ19.Trim(); sYZZ20 = sYZZ20.Trim().Equals("") ? "0" : sYZZ20.Trim(); + string sZDXJGS = dsBJFLID.Tables[0].Rows[0]["XLXSBJFL_ZDXJGS"].ToString().Trim(); + if (dsBJFLID.Tables[0].Rows[0]["XLXSBJFL_BJDHQLY"].ToString().Trim().Equals("1")) + { + sZDXJGS = sZDXJGS.Replace("CLCB", sCLCB); + } + else + { + sZDXJGS = sZDXJGS.Replace("CLCB", sBJDHQCLCB); + } + sZDXJGS = sZDXJGS.Replace("JGBJJ", sJGBJJ).Replace("JGBBJ", sJGBBJ).Replace("CPBJ", sCPBJ).Replace("BJDHQCB", sBJDHQCLCB); + sZDXJGS = sZDXJGS.Replace(" ", "").Replace("×", "*");//Replace("100", "100.00")是因为数据库计算时1/100的结果是0需转换为1/100.00结果才是0.01,此处直接计算无需处理 + sZDXJGS = sZDXJGS.Replace("BJ01", sYZZ01).Replace("BJ02", sYZZ02).Replace("BJ03", sYZZ03).Replace("BJ04", sYZZ04).Replace("BJ05", sYZZ05); + sZDXJGS = sZDXJGS.Replace("BJ06", sYZZ06).Replace("BJ07", sYZZ07).Replace("BJ08", sYZZ08).Replace("BJ09", sYZZ09).Replace("BJ10", sYZZ10); + sZDXJGS = sZDXJGS.Replace("BJ11", sYZZ11).Replace("BJ12", sYZZ12).Replace("BJ13", sYZZ13).Replace("BJ14", sYZZ14).Replace("BJ15", sYZZ15); + sZDXJGS = sZDXJGS.Replace("BJ16", sYZZ16).Replace("BJ17", sYZZ17).Replace("BJ18", sYZZ18).Replace("BJ19", sYZZ19).Replace("BJ20", sYZZ20); + if (dsBJFLID.Tables[0].Rows[0]["XLXSBJFL_MXBH"].ToString().Trim().Equals("JGE")) + { + string[] strJJYZZ = sUpdJJYZList.ToString().Trim().Split('|'); + sZDXJGS = sZDXJGS.Replace("JZ01", strJJYZZ[0]).Replace("JZ02", strJJYZZ[1]).Replace("JZ03", strJJYZZ[2]).Replace("JZ04", strJJYZZ[3]).Replace("JZ05", strJJYZZ[4]); + sZDXJGS = sZDXJGS.Replace("JZ06", strJJYZZ[5]).Replace("JZ07", strJJYZZ[6]).Replace("JZ08", strJJYZZ[7]).Replace("JZ09", strJJYZZ[8]).Replace("JZ10", strJJYZZ[9]); + } + double dZDXJ = 0; + gtExpression exp = new gtExpression(); + try + { + dZDXJ = NumberUtils.RoundX(exp.Evaluate(sZDXJGS), tmpXSWS); + } + catch + { + dZDXJ = 0; + } + sZDXJ = dZDXJ.ToString().Trim(); + } + } + } + return sZDXJ; + } + //计算线缆销售报价单明细最低限价价差率 + public static string GetZDXJJCL(string sZDXJJCLLX, string sZDXJ, string sBJSL, string sBJJE, string stBJDHQCLCB, string sJGBBJ) + { + N_MISPRO.CMISproSession tSession = CMISproSessionManager.GetCurrentSession(); + int iXSWS = CMISproConvert.StrToInt(tSession.GetOption(100860000,"BJU054")) + 2; + string sZDXJJCL = "0"; + if (sZDXJJCLLX.Equals("1")) + { + if (!sBJJE.Equals("0") && !sBJJE.Equals("0.00")) + { + string sJSGS = sZDXJ + "*" + sBJSL + "/" + sBJJE; + double dZDXJJCL = 0; + gtExpression exp = new gtExpression(); + try + { + dZDXJJCL = NumberUtils.RoundX(exp.Evaluate(sJSGS), iXSWS); + } + catch + { + dZDXJJCL = 0; + } + dZDXJJCL = 100 - dZDXJJCL * 100; + sZDXJJCL = dZDXJJCL.ToString().Trim(); + } + } + else if (sZDXJJCLLX.Equals("2")) + { + if (!sZDXJ.Equals("0") && !sBJSL.Equals("0.00") && !sZDXJ.Equals("0") && !sBJSL.Equals("0.00")) + { + string sJSGS = sBJJE + "/(" + sZDXJ + "*" + sBJSL + ")"; + double dZDXJJCL = 0; + gtExpression exp = new gtExpression(); + try + { + dZDXJJCL = NumberUtils.RoundX(exp.Evaluate(sJSGS), iXSWS); + } + catch + { + dZDXJJCL = 0; + } + dZDXJJCL = dZDXJJCL * 100 - 100; + sZDXJJCL = dZDXJJCL.ToString().Trim(); + } + } + else if (sZDXJJCLLX.Equals("3")) + { + if (!sZDXJ.Equals("0") && !sBJSL.Equals("0.00") && !sZDXJ.Equals("0") && !sBJSL.Equals("0.00") && !sBJJE.Equals("0") && !sBJJE.Equals("0.00")) + { + string sJSGS = "(" + sZDXJ + "*" + sBJSL + ")/(" + sBJJE + ")"; + double dZDXJJCL = 0; + gtExpression exp = new gtExpression(); + try + { + dZDXJJCL = NumberUtils.RoundX(exp.Evaluate(sJSGS), iXSWS); + } + catch + { + dZDXJJCL = 0; + } + dZDXJJCL = dZDXJJCL * 100; + sZDXJJCL = dZDXJJCL.ToString().Trim(); + } + } + else if (sZDXJJCLLX.Equals("4")) + { + if (!sZDXJ.Equals("0") && !sBJSL.Equals("0.00") && !sZDXJ.Equals("0") && !sBJSL.Equals("0.00")) + { + string sJSGS = "(" + sBJSL + "*" + stBJDHQCLCB + ")/(" + sZDXJ + "*" + sBJSL + ")"; + double dZDXJJCL = 0; + gtExpression exp = new gtExpression(); + try + { + dZDXJJCL = NumberUtils.RoundX(exp.Evaluate(sJSGS), iXSWS); + } + catch + { + dZDXJJCL = 0; + } + dZDXJJCL = 100 - dZDXJJCL * 100; + sZDXJJCL = dZDXJJCL.ToString().Trim(); + } + } + else if (sZDXJJCLLX.Equals("5")) + { + if (!sZDXJ.Equals("0") && !sBJSL.Equals("0.00") && !sZDXJ.Equals("0") && !sBJSL.Equals("0.00") && !sJGBBJ.Equals("0") && !sJGBBJ.Equals("0.00")) + { + string sJSGS = "(" + sZDXJ + ")/(" + sJGBBJ + "*" + sCJXS.ToString() + ")"; + double dZDXJJCL = 0; + gtExpression exp = new gtExpression(); + try + { + dZDXJJCL = NumberUtils.RoundX(exp.Evaluate(sJSGS), iXSWS); + } + catch + { + dZDXJJCL = 0; + } + dZDXJJCL = dZDXJJCL * 100; + sZDXJJCL = dZDXJJCL.ToString().Trim(); + } + } + return sZDXJJCL; + } + + public static string GetYXJJCL(string sYXJJCLLX, string sZDXJ, string sYXJ) + { + string sYXJJCL = "0"; + if (sYXJJCLLX.Equals("1")) + { + if (CMISproConvert.StrToFloat(sYXJ, 0) != 0) + { + string sJSGS = string.Format("(1-{0}/{1})*100", sZDXJ, sYXJ); + double dYXJJCL = 0; + gtExpression exp = new gtExpression(); + try + { + dYXJJCL = NumberUtils.RoundX(exp.Evaluate(sJSGS), 4); + } + catch + { + dYXJJCL = 0; + } + + sYXJJCL = dYXJJCL.ToString().Trim(); + } + } + return sYXJJCL; + } + + public static string GetJSJJCL(string sJSJJCLLX, string sJSJJE, string sBJJE) + { + + string sJSJJCL = "0"; + if (sJSJJCLLX.Equals("1") || sJSJJCLLX.Equals("3")) + { + if (CMISproConvert.StrToFloat(sBJJE, 0) != 0) + { + string sJSGS = string.Format("(1-{0}/{1})*100", sJSJJE, sBJJE); + if (sJSJJCLLX.Equals("3")) + { + sJSGS = string.Format("({0}/{1})*100", sJSJJE, sBJJE); + } + double dJSJJCL = 0; + gtExpression exp = new gtExpression(); + try + { + dJSJJCL = NumberUtils.RoundX(exp.Evaluate(sJSGS), 4); + } + catch + { + dJSJJCL = 0; + } + + sJSJJCL = dJSJJCL.ToString().Trim(); + } + } + else + { + if (CMISproConvert.StrToFloat(sJSJJE, 0) != 0) + { + string sJSGS = string.Format("({0}/{1}-1)*100", sBJJE, sJSJJE); + double dJSJJCL = 0; + gtExpression exp = new gtExpression(); + try + { + dJSJJCL = NumberUtils.RoundX(exp.Evaluate(sJSGS), 4); + } + catch + { + dJSJJCL = 0; + } + + sJSJJCL = dJSJJCL.ToString().Trim(); + } + } + return sJSJJCL; + } + + /// + /// 形成dicTJYZList(sTJYSList_, BJ01),dicTJYZList(sTJYSList1, BJ02),dicTJYZList(sTJYSListA, BJ03) + /// + /// + /// + /// + /// + /// + /// + public static void GetDicTJYZList(TDatabase dberp, TSQL SQL, string sBJFLID, string sJMBGSYZID, ref Dictionary dicTJYZList) + { + dicTJYZList.Clear(); + SQL.Clear(); + SQL.Add(" SELECT XLXSBJFLYZ_YZID,XLXSTZYZ_TJYS FROM XLXSBJFLYZ "); + SQL.Add(" LEFT JOIN XLXSTZYZ on XLXSTZYZ_YZID = XLXSBJFLYZ_YZID and XLXSTZYZ_MXBH = 'BJD' "); + SQL.Add(" where 1=1 and XLXSBJFLYZ_BJFLID = :pBJFLID "); + if (!sJMBGSYZID.Equals("")) + { + SQL.Add(" and XLXSBJFLYZ_YZID <> :pJMBGSYZID "); + SQL.ParamByName("pJMBGSYZID").Value = sJMBGSYZID.Trim(); ; + } + SQL.ParamByName("pBJFLID").Value = sBJFLID; + DataSet dsBJDYZ = dberp.OpenDataSet(SQL); + if (dsBJDYZ.Tables[0].Rows.Count > 0) + { + string sBZPFYZID = XLBJDUtils.GetBJFLSYBZPFYZID(sBJFLID); + string sCPWJPFYZID = XLBJDUtils.GetBJFLSYCPWJPFYZID(sBJFLID); + string chr = ""; + for (int i = 0; i < dsBJDYZ.Tables[0].Rows.Count; i++) + { + for (int j = 0; j <= 35; j++) + { + + chr = XLXSBJCL_HQFDKRInfo.int10Convert36(j); + if (dsBJDYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYS"].ToString().Trim().Equals("")) + { + if (dicTJYZList.ContainsKey("sTJYSList_")) + { + if (!sBZPFYZID.Equals("")) + { + if (sBZPFYZID.Split('|')[0].Trim().Equals(dsBJDYZ.Tables[0].Rows[i]["XLXSBJFLYZ_YZID"].ToString().Trim())) + continue; + } + else if (!sCPWJPFYZID.Equals("")) + { + if (sCPWJPFYZID.Split('|')[0].Trim().Equals(dsBJDYZ.Tables[0].Rows[i]["XLXSBJFLYZ_YZID"].ToString().Trim())) + continue; + } + dicTJYZList["sTJYSList_"] = dicTJYZList["sTJYSList_"] + "," + dsBJDYZ.Tables[0].Rows[i]["XLXSBJFLYZ_YZID"].ToString().Trim(); + } + else + { + if (!sBZPFYZID.Equals("")) + { + if (sBZPFYZID.Split('|')[0].Trim().Equals(dsBJDYZ.Tables[0].Rows[i]["XLXSBJFLYZ_YZID"].ToString().Trim())) + continue; + } + else if (!sCPWJPFYZID.Equals("")) + { + if (sCPWJPFYZID.Split('|')[0].Trim().Equals(dsBJDYZ.Tables[0].Rows[i]["XLXSBJFLYZ_YZID"].ToString().Trim())) + continue; + } + dicTJYZList.Add("sTJYSList_", dsBJDYZ.Tables[0].Rows[i]["XLXSBJFLYZ_YZID"].ToString().Trim()); + } + break; + } + else if (dsBJDYZ.Tables[0].Rows[i]["XLXSTZYZ_TJYS"].ToString().Trim().Equals(chr)) + { + if (dicTJYZList.ContainsKey("sTJYSList" + chr)) + { + dicTJYZList["sTJYSList" + chr] = dicTJYZList["sTJYSList" + chr] + "," + dsBJDYZ.Tables[0].Rows[i]["XLXSBJFLYZ_YZID"].ToString().Trim(); + } + else + { + dicTJYZList.Add("sTJYSList" + chr, dsBJDYZ.Tables[0].Rows[i]["XLXSBJFLYZ_YZID"].ToString().Trim()); + } + break; + } + } + } + + if (!sBZPFYZID.Equals("")) + { + dicTJYZList.Add("sTJYSListPFBZ", sBZPFYZID.Split('|')[0]); + } + if (!sCPWJPFYZID.Equals("")) + { + dicTJYZList.Add("sTJYSListPFCPWJ", sCPWJPFYZID.Split('|')[0]); + } + } + + } + + /// + /// 形成dicTJYZList(sTJYSList_, BJ01),dicTJYZList(sTJYSList1, BJ02),dicTJYZList(sTJYSListA, BJ03) + /// + /// + /// + /// + /// + /// + /// + public static void GetDicTJYZList(TDatabase dberp, TSQL SQL, string sBJFLID, ref Dictionary dicTJYZList) + { + GetDicTJYZList(dberp, SQL, sBJFLID,"", ref dicTJYZList); + + } + + + /// + /// dic.TryGetValue("sTJYSList2", out sTJYSList2); + /// + /// + /// + /// + /// + /// + /// + public static void AddXLXSBJDYZZ0(TDatabase dberp, string sBJDID, string sBJFLID, string sBJU003, Dictionary dicTJYZList, bool bInsertXLXSBJDYZZ0, string sBJDXHList, double minBJDXH, ref string sErrorNum) + { + AddXLXSBJDYZZ0(dberp, sBJDID, sBJFLID, sBJU003, dicTJYZList, bInsertXLXSBJDYZZ0, sBJDXHList, minBJDXH, false, false, false, ref sErrorNum); + } + public static void AddXLXSBJDYZZ0(TDatabase dberp, string sBJDID, string sBJFLID, string sBJU003, Dictionary dicTJYZList, bool bInsertXLXSBJDYZZ0, string sBJDXHList, double minBJDXH, bool bYBJ, bool bWG, bool bFWG, ref string sErrorNum) + { + AddXLXSBJDYZZ0(dberp, sBJDID, sBJFLID, sBJU003, dicTJYZList, bInsertXLXSBJDYZZ0, sBJDXHList, minBJDXH, 0, bYBJ, bWG, bFWG, DateTime.MinValue, ref sErrorNum); + } + public static void AddXLXSBJDYZZ0(TDatabase dberp, string sBJDID, string sBJFLID, string sBJU003, Dictionary dicTJYZList, bool bInsertXLXSBJDYZZ0, string sBJDXHList, double minBJDXH, int VnewID, bool bYBJ, bool bWG, bool bFWG, ref string sErrorNum) + { + AddXLXSBJDYZZ0(dberp, sBJDID, sBJFLID, sBJU003, dicTJYZList, bInsertXLXSBJDYZZ0, sBJDXHList, minBJDXH, VnewID, bYBJ, bWG, bFWG, DateTime.MinValue, ref sErrorNum); + } + public static void AddXLXSBJDYZZ0(TDatabase dberp, string sBJDID, string sBJFLID, string sBJU003, Dictionary dicTJYZList, bool bInsertXLXSBJDYZZ0, string sBJDXHList, double minBJDXH, bool bYBJ, bool bWG, bool bFWG, DateTime tWHSJCondition, ref string sErrorNum) + { + AddXLXSBJDYZZ0(dberp, sBJDID, sBJFLID, sBJU003, dicTJYZList, bInsertXLXSBJDYZZ0, sBJDXHList, minBJDXH, 0, bYBJ, bWG, bFWG, tWHSJCondition, ref sErrorNum); + } + public static void AddXLXSBJDYZZ0(TDatabase dberp, string sBJDID, string sBJFLID, string sBJU003, Dictionary dicTJYZList, bool bInsertXLXSBJDYZZ0, string sBJDXHList, double minBJDXH, int VnewID, bool bYBJ, bool bWG, bool bFWG, DateTime tWHSJCondition, ref string sErrorNum) + { + string sBJU003JSDW = GetsJSDW(sBJU003, sBJU003); + string sJJYZIDList = string.Empty; + Dictionary dicLenJLDWTD = XLBJDUtils.GetLenJLDWTD(); + sErrorNum = "ErrorStr"; + TSQL SQL = new TSQL(dberp); + //string sTJYSList2 = ""; + //string sTJYSList3 = ""; + //string sTJYSList6 = ""; + //dicTJYZList.TryGetValue("sTJYSList_", out sTJYSList2); + //dicTJYZList.TryGetValue("sTJYSList2", out sTJYSList2); + //dicTJYZList.TryGetValue("sTJYSList3", out sTJYSList3); + //dicTJYZList.TryGetValue("sTJYSList6", out sTJYSList6); + try + { + if (bInsertXLXSBJDYZZ0) + { + SQL.Clear(); + SQL.Add("insert into XLXSBJDYZZ0(XLXSBJDYZZ0_BJDID,XLXSBJDYZZ0_XH) "); + SQL.Add("select XLXSBJDMX_BJDID as BJDID,XLXSBJDMX_XH as XH "); + SQL.Add(" from XLXSBJDMX "); + SQL.Add("where XLXSBJDMX_BJDID=:pBJDID "); + SQL.Add("and not exists "); + SQL.Add("( "); + SQL.Add("select 1 "); + SQL.Add("from XLXSBJDYZZ0 "); + SQL.Add("where XLXSBJDYZZ0_BJDID=:pBJDID "); + SQL.Add("and XLXSBJDYZZ0_XH=XLXSBJDMX_XH "); + SQL.Add(") "); + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + + } + + sErrorNum = "ErrorVie"; + string[] sTJYZ; + if (dicTJYZList.Count > 0) + { + SQL.Clear(); + SQL.Add("update XLXSBJDYZZ0 set XLXSBJDYZZ0_XH = XLXSBJDYZZ0_XH "); + foreach (KeyValuePair kvp in dicTJYZList) + { + sTJYZ = kvp.Value.Trim().Split(new Char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); + for (int m = 0; m < sTJYZ.Length; m++) + { + SQL.Add(string.Format(",XLXSBJDYZZ0_YZZ{0}=0 ", sTJYZ[m].Trim().Replace("BJ", ""))); + } + + } + SQL.Add(" where XLXSBJDYZZ0_BJDID=:pBJDID "); + if (!sBJDXHList.Equals("")) + { + SQL.Add("and " + CMISproDataBase.GetWhereEqual("XLXSBJDYZZ0_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDYZZ0_XH > :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + if (VnewID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pVID and V_BJDXH_BJDID = XLXSBJDYZZ0_BJDID and V_BJDXH_BJDXH = XLXSBJDYZZ0_XH) "); + SQL.ParamByName("pVID").Value = VnewID; + } + if (bYBJ) + SQL.Add(" and exists(select 1 from XLXSBJDMX where XLXSBJDMX_BJDID=XLXSBJDYZZ0_BJDID and XLXSBJDMX_XH=XLXSBJDYZZ0_XH and XLXSBJDMX_JGBBJ<>0.0)"); + if (bWG) + SQL.Add(" and exists(select 1 from XLXSBJDMX where XLXSBJDMX_BJDID=XLXSBJDYZZ0_BJDID and XLXSBJDMX_XH=XLXSBJDYZZ0_XH and XLXSBJDMX_WGCPBZ='Y')"); + if (bFWG) + SQL.Add(" and exists(select 1 from XLXSBJDMX where XLXSBJDMX_BJDID=XLXSBJDYZZ0_BJDID and XLXSBJDMX_XH=XLXSBJDYZZ0_XH and XLXSBJDMX_WGCPBZ<>'Y')"); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and exists(select 1 from XLXSBJDMX where XLXSBJDMX_BJDID=XLXSBJDYZZ0_BJDID and XLXSBJDMX_XH=XLXSBJDYZZ0_XH and XLXSBJDMX_WHSJ=:pWHSJ)"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + } + + Dictionary dicYZXX = new Dictionary(); + + List bjflyzlist=GetBJFLYZXXByBJFLID(sBJFLID); + foreach (XLXSBJFLYZXX yzxx in bjflyzlist) + { + if (!dicYZXX.ContainsKey(yzxx.XLXSBJFLYZ_YZID)) + { + dicYZXX.Add(yzxx.XLXSBJFLYZ_YZID, GetYZXXByYZID(yzxx.XLXSBJFLYZ_YZID).XLXSTZYZ_JGBID); + } + } + + sErrorNum = "Error0"; + //自动插入TJYS=' '的调价因子值 + if (dicTJYZList.ContainsKey("sTJYSList_")) + { + sTJYZ = dicTJYZList["sTJYSList_"].Trim().Split(new Char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); + for (int i = 0; i < sTJYZ.Length; i++) + { + if (!sTJYZ[i].Trim().Equals("")) + { + if (GetYZXXByYZID(sTJYZ[i].Trim()).XLXSTZYZ_JJFS == "JJ") + sJJYZIDList += sTJYZ[i].Trim() + ","; + /* + merge into 目标表 a + using 源表 b + on(a.条件字段1=b.条件字段1 and a.条件字段2=b.条件字段2 ……) + when matched then update set a.更新字段=b.字段 + when not matched then insert into a(字段1,字段2……)values(值1,值2……) + */ + string sJGBID = string.Empty; + if (dicYZXX.ContainsKey(sTJYZ[i].Trim())) + sJGBID = dicYZXX[sTJYZ[i].Trim()]; + + SQL.Clear(); + SQL.Add(" merge into XLXSBJDYZZ0 tar "); + SQL.Add(" using ( "); + SQL.Add("select YZID "); + SQL.Add(string.Format(",isnull(YZZ,0) as YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.Add(" from "); + SQL.Add(" ( "); + SQL.Add(" select XLXSBJDYZZ_YZID as YZID, "); + SQL.Add(" case when isnull(:pMRTJFW,' ') like '%2%' then 0 else XLXSBJDYZZ_YZZ end as YZZ");//外购因子的因子值取0 + SQL.Add(" from XLXSBJDYZZ "); + SQL.Add(" where XLXSBJDYZZ_JGBID=:pJGBID and XLXSBJDYZZ_YZID=:pYZID "); + SQL.Add(" ) a "); + SQL.Add(" where 1=1 and isnull(YZID,' ')<>' ' "); + SQL.Add(" ) sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSBJDYZZ0_BJDID=:pBJDID "); + SQL.Add(" and exists(select 1 from XLXSBJDMX where XLXSBJDMX_BJDID=XLXSBJDYZZ0_BJDID and XLXSBJDMX_XH=XLXSBJDYZZ0_XH "); + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y'");//非外购 + + SQL.Add(" ) "); + if (!sBJDXHList.Equals("")) + { + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDYZZ0_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDYZZ0_XH > :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + if (VnewID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pVID and V_BJDXH_BJDID = XLXSBJDYZZ0_BJDID and V_BJDXH_BJDXH = XLXSBJDYZZ0_XH) "); + SQL.ParamByName("pVID").Value = VnewID; + } + if (bYBJ) + SQL.Add(" and exists(select 1 from XLXSBJDMX where XLXSBJDMX_BJDID=XLXSBJDYZZ0_BJDID and XLXSBJDMX_XH=XLXSBJDYZZ0_XH and XLXSBJDMX_JGBBJ<>0.0)"); + if (bWG) + SQL.Add(" and exists(select 1 from XLXSBJDMX where XLXSBJDMX_BJDID=XLXSBJDYZZ0_BJDID and XLXSBJDMX_XH=XLXSBJDYZZ0_XH and XLXSBJDMX_WGCPBZ='Y')"); + if (bFWG) + SQL.Add(" and exists(select 1 from XLXSBJDMX where XLXSBJDMX_BJDID=XLXSBJDYZZ0_BJDID and XLXSBJDMX_XH=XLXSBJDYZZ0_XH and XLXSBJDMX_WGCPBZ<>'Y')"); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and exists(select 1 from XLXSBJDMX where XLXSBJDMX_BJDID=XLXSBJDYZZ0_BJDID and XLXSBJDMX_XH=XLXSBJDYZZ0_XH and XLXSBJDMX_WHSJ=:pWHSJ)"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSBJDYZZ0_YZZ{0}=YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pJGBID").Value = sJGBID; + SQL.ParamByName("pMRTJFW").Value = GetYZXXByYZID(sTJYZ[i].Trim()).XLXSTZYZ_MRTJFW; + dberp.ExecSQL(SQL); + + SQL.Clear(); + SQL.Add(" merge into XLXSBJDYZZ0 tar "); + SQL.Add(" using ( "); + SQL.Add("select YZID "); + SQL.Add(string.Format(",isnull(YZZ,0) as YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.Add(" from "); + SQL.Add(" ( "); + SQL.Add(" select XLXSBJDYZZ_YZID as YZID, "); + SQL.Add(" case when isnull(:pMRTJFW,' ') like '%3%' then 0 else XLXSBJDYZZ_YZZ end as YZZ");//非外购因子的因子值取0 + SQL.Add(" from XLXSBJDYZZ "); + SQL.Add(" where XLXSBJDYZZ_JGBID=:pJGBID and XLXSBJDYZZ_YZID=:pYZID "); + SQL.Add(" ) a "); + SQL.Add(" where 1=1 and isnull(YZID,' ')<>' ' "); + SQL.Add(" ) sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSBJDYZZ0_BJDID=:pBJDID "); + SQL.Add(" and exists(select 1 from XLXSBJDMX where XLXSBJDMX_BJDID=XLXSBJDYZZ0_BJDID and XLXSBJDMX_XH=XLXSBJDYZZ0_XH "); + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'");//外购 + //SQL.Add(" and (XLXSBJDMX_JLDW in ('Km','M','千米','米')"); + //foreach (string sKey in dicLenJLDWTD.Keys) + //{ + // SQL.Add(string.Format(" or XLXSBJDMX_JLDW='{0}'", sKey)); + //} + SQL.Add(" ) "); + if (!sBJDXHList.Equals("")) + { + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDYZZ0_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDYZZ0_XH > :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + if (VnewID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pVID and V_BJDXH_BJDID = XLXSBJDYZZ0_BJDID and V_BJDXH_BJDXH = XLXSBJDYZZ0_XH) "); + SQL.ParamByName("pVID").Value = VnewID; + } + if (bYBJ) + SQL.Add(" and exists(select 1 from XLXSBJDMX where XLXSBJDMX_BJDID=XLXSBJDYZZ0_BJDID and XLXSBJDMX_XH=XLXSBJDYZZ0_XH and XLXSBJDMX_JGBBJ<>0.0)"); + if (bWG) + SQL.Add(" and exists(select 1 from XLXSBJDMX where XLXSBJDMX_BJDID=XLXSBJDYZZ0_BJDID and XLXSBJDMX_XH=XLXSBJDYZZ0_XH and XLXSBJDMX_WGCPBZ='Y')"); + if (bFWG) + SQL.Add(" and exists(select 1 from XLXSBJDMX where XLXSBJDMX_BJDID=XLXSBJDYZZ0_BJDID and XLXSBJDMX_XH=XLXSBJDYZZ0_XH and XLXSBJDMX_WGCPBZ<>'Y')"); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and exists(select 1 from XLXSBJDMX where XLXSBJDMX_BJDID=XLXSBJDYZZ0_BJDID and XLXSBJDMX_XH=XLXSBJDYZZ0_XH and XLXSBJDMX_WHSJ=:pWHSJ)"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSBJDYZZ0_YZZ{0}=YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pJGBID").Value = sJGBID; + SQL.ParamByName("pMRTJFW").Value = GetYZXXByYZID(sTJYZ[i].Trim()).XLXSTZYZ_MRTJFW; + dberp.ExecSQL(SQL); + } + } + } + + sErrorNum = "Error1"; + //自动插入TJYS=1的调价因子值 + if (dicTJYZList.ContainsKey("sTJYSList1")) + { + sTJYZ = dicTJYZList["sTJYSList1"].Trim().Split(new Char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); + for (int i = 0; i < sTJYZ.Length; i++) + { + if (!sTJYZ[i].Trim().Equals("")) + { + if (GetYZXXByYZID(sTJYZ[i].Trim()).XLXSTZYZ_JJFS == "JJ") + sJJYZIDList += sTJYZ[i].Trim() + ","; + /* + merge into 目标表 a + using 源表 b + on(a.条件字段1=b.条件字段1 and a.条件字段2=b.条件字段2 ……) + when matched then update set a.更新字段=b.字段 + when not matched then insert into a(字段1,字段2……)values(值1,值2……) + */ + string sJGBID = string.Empty; + if (dicYZXX.ContainsKey(sTJYZ[i].Trim())) + sJGBID = dicYZXX[sTJYZ[i].Trim()]; + + SQL.Clear(); + SQL.Add(" merge into XLXSBJDYZZ0 tar "); + SQL.Add(" using ( "); + SQL.Add("select XLXSBJDMX_BJDID as BJDID,XLXSBJDMX_XH as XH "); + + SQL.Add(string.Format(",isnull(YZZ,0) as YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.Add(" from XLXSBJDMX "); + SQL.Add("left join XLXSBJD on XLXSBJD_BJDID=XLXSBJDMX_BJDID "); + SQL.Add("left join "); + SQL.Add("( "); + SQL.Add(" select XLXSBJDYZZ1_YZID as YZID,XLXSBJDYZZ1_YZZ as YZZ, "); + SQL.Add(" XLXSBJDYZZ1_PJLX as PJLX "); + SQL.Add(" from XLXSBJDYZZ1 "); + SQL.Add("where XLXSBJDYZZ1_JGBID=:pJGBID and XLXSBJDYZZ1_YZID=:pYZID "); + SQL.Add(" ) a on "); + SQL.Add(" a.PJLX = isnull(XLXSBJD_PJLX,' ') "); + SQL.Add("where XLXSBJDMX_BJDID=:pBJDID and isnull(YZID,' ')<>' ' "); + //SQL.Add(" and (XLXSBJDMX_JLDW in ('Km','M','千米','米') "); + //foreach (string sKey in dicLenJLDWTD.Keys) + //{ + // SQL.Add(string.Format(" or XLXSBJDMX_JLDW='{0}'", sKey)); + //} + //SQL.Add(" ) "); + if (!sBJDXHList.Equals("")) + { + SQL.Add("and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDMX_XH > :minBJDXH"); + } + if (VnewID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pVID and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "); + SQL.ParamByName("pVID").Value = VnewID; + } + if (bYBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + if (bWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y'"); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + SQL.Add(" ) sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSBJDYZZ0_BJDID=:pBJDID and XLXSBJDYZZ0_XH=XH "); + if (!sBJDXHList.Equals("")) + { + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDYZZ0_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDYZZ0_XH > :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSBJDYZZ0_YZZ{0}=YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + + } + } + } + + sErrorNum = "Error2"; + //自动插入TJYS=2的调价因子值 + if (dicTJYZList.ContainsKey("sTJYSList2")) + { + sTJYZ = dicTJYZList["sTJYSList2"].Trim().Split(new Char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); + for (int i = 0; i < sTJYZ.Length; i++) + { + if (!sTJYZ[i].Trim().Equals("")) + { + + /* + merge into 目标表 a + using 源表 b + on(a.条件字段1=b.条件字段1 and a.条件字段2=b.条件字段2 ……) + when matched then update set a.更新字段=b.字段 + when not matched then insert into a(字段1,字段2……)values(值1,值2……) + */ + + string sJGBID = string.Empty; + if (dicYZXX.ContainsKey(sTJYZ[i].Trim())) + sJGBID = dicYZXX[sTJYZ[i].Trim()]; + SQL.Clear(); + SQL.Add(" merge into XLXSBJDYZZ0 tar "); + SQL.Add(" using ( "); + SQL.Add("select XLXSBJDMX_BJDID as BJDID,XLXSBJDMX_XH as XH "); + SQL.Add(string.Format(",isnull(YZZ,0) as YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.Add(" from XLXSBJDMX "); + SQL.Add("left join XLXHB on XLXHB_XLXHID=XLXSBJDMX_XLXHID "); + SQL.Add("left join XLXSBJDYZZ2BSY1 on XLXSBJDYZZ2BSY1_CPYT=XLXHB_CPYT "); + SQL.Add("left join "); + SQL.Add("( "); + SQL.Add(" select XLXSBJDYZZ2_DTCLID as DTCLID,XLXSBJDYZZ2_YZID as YZID,XLXSBJDYZZ2_YZZ as YZZ,DYDJB.XLDYDJB_DYDJID, "); + SQL.Add(" XLXSBJDYZZ2_BJSLXX,XLXSBJDYZZ2_BJSLSX "); + SQL.Add(" from XLXSBJDYZZ2, "); + SQL.Add("("); + SQL.Add("select (case when XLDYDJB_XXLXDY>XLDYDJB_XXXXDY then XLDYDJB_XXLXDY else XLDYDJB_XXXXDY end)"); + SQL.Add(" *(case XLDYDJB_DYJLDW when 'V' then 1 else 1000 end) as DY,XLDYDJB_DYDJID "); + SQL.Add(" from XLDYDJB"); + SQL.Add(") DYDJB "); + SQL.Add("where XLXSBJDYZZ2_JGBID=:pJGBID "); + SQL.Add(" and XLXSBJDYZZ2_YZID=:pYZID"); + SQL.Add(" and XLXSBJDYZZ2_DYXX<=DY and ((XLXSBJDYZZ2_DYSX<>0 and XLXSBJDYZZ2_DYSX>DY) or XLXSBJDYZZ2_DYSX=0)"); + SQL.Add(" and XLXSBJDYZZ2_DTCLID=' ' "); + SQL.Add(" ) a on a.XLDYDJB_DYDJID = isnull(XLXSBJDMX_DYDJID,' ')"); + if (sBJU003JSDW.Equals("M")) + { + SQL.Add(" and a.XLXSBJDYZZ2_BJSLXX<=(case XLXSBJDMX_JLDW when 'Km' then 1000*XLXSBJDMX_BJSL when '千米' then 1000*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end) "); + SQL.Add(" and ((a.XLXSBJDYZZ2_BJSLSX<>0 and a.XLXSBJDYZZ2_BJSLSX>(case XLXSBJDMX_JLDW when 'Km' then 1000*XLXSBJDMX_BJSL when '千米' then 1000*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end)) or a.XLXSBJDYZZ2_BJSLSX=0) "); + } + else if (sBJU003JSDW.Equals("Km")) + { + SQL.Add(" and a.XLXSBJDYZZ2_BJSLXX<=(case XLXSBJDMX_JLDW when 'M' then 0.001*XLXSBJDMX_BJSL when '米' then 0.001*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*0.001*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end) "); + SQL.Add(" and ((a.XLXSBJDYZZ2_BJSLSX<>0 and a.XLXSBJDYZZ2_BJSLSX>(case XLXSBJDMX_JLDW when 'M' then 0.001*XLXSBJDMX_BJSL when '米' then 0.001*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*0.001*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end)) or a.XLXSBJDYZZ2_BJSLSX=0) "); + } + SQL.Add("where XLXSBJDMX_BJDID=:pBJDID and isnull(YZID,' ')<>' ' "); + SQL.Add(" and (XLXSBJDMX_JLDW in ('Km','M','千米','米') "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" or XLXSBJDMX_JLDW='{0}'", sKey)); + } + SQL.Add(" ) "); + if (!sBJDXHList.Equals("")) + { + SQL.Add("and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDMX_XH > :minBJDXH"); + } + if (VnewID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pVID and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "); + SQL.ParamByName("pVID").Value = VnewID; + } + if (bYBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + if (bWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y'"); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + + SQL.Add(" and isnull(XLXSBJDYZZ2BSY1_CPYT, ' ')=' ' "); + SQL.Add(" ) sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSBJDYZZ0_BJDID=:pBJDID and XLXSBJDYZZ0_XH=XH "); + if (!sBJDXHList.Equals("")) + { + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDYZZ0_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDYZZ0_XH > :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSBJDYZZ0_YZZ{0}=YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + sErrorNum = "Error2-1"; + SQL.Clear(); + SQL.Add(" merge into XLXSBJDYZZ0 tar "); + SQL.Add(" using ( "); + SQL.Add("select XLXSBJDMX_BJDID as BJDID,XLXSBJDMX_XH as XH "); + SQL.Add(string.Format(",isnull(YZZ,0) as YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.Add(" from XLXSBJDMX "); + SQL.Add("left join XLXHB on XLXHB_XLXHID=XLXSBJDMX_XLXHID "); + SQL.Add("left join XLXSBJDYZZ2BSY1 on XLXSBJDYZZ2BSY1_CPYT=XLXHB_CPYT "); + SQL.Add("left join "); + SQL.Add("( "); + SQL.Add(" select XLXSBJDYZZ2_DTCLID as DTCLID,XLXSBJDYZZ2_YZID as YZID,XLXSBJDYZZ2_YZZ as YZZ,DYDJB.XLDYDJB_DYDJID, "); + SQL.Add(" XLXSBJDYZZ2_BJSLXX,XLXSBJDYZZ2_BJSLSX "); + SQL.Add(" from XLXSBJDYZZ2,"); + SQL.Add("("); + SQL.Add("select (case when XLDYDJB_XXLXDY>XLDYDJB_XXXXDY then XLDYDJB_XXLXDY else XLDYDJB_XXXXDY end)"); + SQL.Add(" *(case XLDYDJB_DYJLDW when 'V' then 1 else 1000 end) as DY,XLDYDJB_DYDJID "); + SQL.Add(" from XLDYDJB"); + SQL.Add(") DYDJB "); + SQL.Add("where XLXSBJDYZZ2_JGBID=:pJGBID "); + SQL.Add(" and XLXSBJDYZZ2_YZID=:pYZID"); + SQL.Add(" and XLXSBJDYZZ2_DYXX<=DY and ((XLXSBJDYZZ2_DYSX<>0 and XLXSBJDYZZ2_DYSX>DY) or XLXSBJDYZZ2_DYSX=0)"); + SQL.Add(" and XLXSBJDYZZ2_DTCLID<>' ' "); + SQL.Add(" ) a on a.DTCLID=isnull(XLXHB_DTCLID,' ') and a.XLDYDJB_DYDJID = isnull(XLXSBJDMX_DYDJID,' ') "); + if (sBJU003JSDW.Equals("M")) + { + SQL.Add(" and a.XLXSBJDYZZ2_BJSLXX<=(case XLXSBJDMX_JLDW when 'Km' then 1000*XLXSBJDMX_BJSL when '千米' then 1000*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end) "); + SQL.Add(" and ((a.XLXSBJDYZZ2_BJSLSX<>0 and a.XLXSBJDYZZ2_BJSLSX>(case XLXSBJDMX_JLDW when 'Km' then 1000*XLXSBJDMX_BJSL when '千米' then 1000*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end)) or a.XLXSBJDYZZ2_BJSLSX=0) "); + } + else if (sBJU003JSDW.Equals("Km")) + { + SQL.Add(" and a.XLXSBJDYZZ2_BJSLXX<=(case XLXSBJDMX_JLDW when 'M' then 0.001*XLXSBJDMX_BJSL when '米' then 0.001*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*0.001*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end) "); + SQL.Add(" and ((a.XLXSBJDYZZ2_BJSLSX<>0 and a.XLXSBJDYZZ2_BJSLSX>(case XLXSBJDMX_JLDW when 'M' then 0.001*XLXSBJDMX_BJSL when '米' then 0.001*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*0.001*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end)) or a.XLXSBJDYZZ2_BJSLSX=0) "); + } + SQL.Add("where XLXSBJDMX_BJDID=:pBJDID and isnull(YZID,' ')<>' ' "); + SQL.Add(" and (XLXSBJDMX_JLDW in ('Km','M','千米','米') "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" or XLXSBJDMX_JLDW='{0}'", sKey)); + } + SQL.Add(" ) "); + if (!sBJDXHList.Equals("")) + { + SQL.Add("and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDMX_XH > :minBJDXH"); + } + if (VnewID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pVID and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "); + SQL.ParamByName("pVID").Value = VnewID; + } + if (bYBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + if (bWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y'"); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + SQL.Add(" and isnull(XLXSBJDYZZ2BSY1_CPYT, ' ')=' ' "); + SQL.Add(" ) sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSBJDYZZ0_BJDID=:pBJDID and XLXSBJDYZZ0_XH=XH "); + if (!sBJDXHList.Equals("")) + { + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDYZZ0_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDYZZ0_XH > :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSBJDYZZ0_YZZ{0}=YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + sErrorNum = "Error2-2"; + + } + } + } + + sErrorNum = "Error3"; + //自动插入TJYS=3的调价因子值 + if (dicTJYZList.ContainsKey("sTJYSList3")) + { + sTJYZ = dicTJYZList["sTJYSList3"].Trim().Split(new Char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); + for (int i = 0; i < sTJYZ.Length; i++) + { + if (!sTJYZ[i].Trim().Equals("")) + { + /* + merge into 目标表 a + using 源表 b + on(a.条件字段1=b.条件字段1 and a.条件字段2=b.条件字段2 ……) + when matched then update set a.更新字段=b.字段 + when not matched then insert into a(字段1,字段2……)values(值1,值2……) + */ + string sJGBID = string.Empty; + if (dicYZXX.ContainsKey(sTJYZ[i].Trim())) + sJGBID = dicYZXX[sTJYZ[i].Trim()]; + SQL.Clear(); + SQL.Add(" merge into XLXSBJDYZZ0 tar "); + SQL.Add(" using ( "); + SQL.Add("select XLXSBJDMX_BJDID as BJDID,XLXSBJDMX_XH as XH "); + SQL.Add(string.Format(",isnull(YZZ,0) as YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.Add(" from XLXSBJDMX "); + SQL.Add("left join XLXHB on XLXHB_XLXHID=XLXSBJDMX_XLXHID "); + SQL.Add("left join XLDYDJB on XLDYDJB_DYDJID = isnull(XLXSBJDMX_DYDJID,' ') "); + SQL.Add("left join XLXSBJDYZZ3BSY1 on XLXSBJDYZZ3BSY1_CPYT= isnull(XLXHB_CPYT,' ') "); + SQL.Add("left join XLXSBJDYZZ3BSY2 on XLXSBJDYZZ3BSY2_XLXHID= XLXSBJDMX_XLXHID and XLXSBJDYZZ3BSY2_XLGGID= XLXSBJDMX_XLGGID and XLXSBJDYZZ3BSY2_XLBZID= XLXSBJDMX_XLBZID and XLXSBJDYZZ3BSY2_DYDJID= XLXSBJDMX_DYDJID"); + SQL.Add("left join XLXSBJDYZZ3BSY3 on XLXSBJDYZZ3BSY3_XLJBXHID= isnull(XLXHB_XLJBXHID,' ') "); + SQL.Add("left join "); + SQL.Add("( "); + SQL.Add(" select XLXSBJDYZZ3_CPYT as CPYT, XLXSBJDYZZ3_DYDJFL as DYDJFL, XLXSBJDYZZ3_YZID as YZID,XLXSBJDYZZ3_YZZ as YZZ, "); + SQL.Add(" XLXSBJDYZZ3_BJSLXX,XLXSBJDYZZ3_BJSLSX "); + SQL.Add(" from XLXSBJDYZZ3 "); + SQL.Add("where XLXSBJDYZZ3_JGBID=:pJGBID "); + SQL.Add(" and XLXSBJDYZZ3_YZID=:pYZID"); + SQL.Add(" and XLXSBJDYZZ3_CPYT = ' ' and XLXSBJDYZZ3_DYDJFL = ' ' "); + SQL.Add(" ) a on "); + if (sBJU003JSDW.Equals("M")) + { + SQL.Add(" a.XLXSBJDYZZ3_BJSLXX<=(case XLXSBJDMX_JLDW when 'Km' then 1000*XLXSBJDMX_BJSL when '千米' then 1000*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end) "); + SQL.Add(" and ((a.XLXSBJDYZZ3_BJSLSX<>0 and a.XLXSBJDYZZ3_BJSLSX>(case XLXSBJDMX_JLDW when 'Km' then 1000*XLXSBJDMX_BJSL when '千米' then 1000*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end)) or a.XLXSBJDYZZ3_BJSLSX=0) "); + } + else if (sBJU003JSDW.Equals("Km")) + { + SQL.Add(" a.XLXSBJDYZZ3_BJSLXX<=(case XLXSBJDMX_JLDW when 'M' then 0.001*XLXSBJDMX_BJSL when '米' then 0.001*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*0.001*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end) "); + SQL.Add(" and ((a.XLXSBJDYZZ3_BJSLSX<>0 and a.XLXSBJDYZZ3_BJSLSX>(case XLXSBJDMX_JLDW when 'M' then 0.001*XLXSBJDMX_BJSL when '米' then 0.001*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*0.001*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end)) or a.XLXSBJDYZZ3_BJSLSX=0)"); + } + SQL.Add("where XLXSBJDMX_BJDID=:pBJDID and isnull(YZID,' ')<>' ' "); + SQL.Add(" and (XLXSBJDMX_JLDW in ('Km','M','千米','米') "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" or XLXSBJDMX_JLDW='{0}'", sKey)); + } + SQL.Add(" ) "); + if (!sBJDXHList.Equals("")) + { + SQL.Add("and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDMX_XH > :minBJDXH"); + } + if (VnewID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pVID and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "); + SQL.ParamByName("pVID").Value = VnewID; + } + if (bYBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + if (bWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y'"); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + SQL.Add(" and isnull(XLXSBJDYZZ3BSY1_CPYT, ' ')=' ' "); + SQL.Add(" and isnull(XLXSBJDYZZ3BSY2_XLXHID, ' ')=' ' "); + SQL.Add(" and isnull(XLXSBJDYZZ3BSY3_XLJBXHID, ' ')=' ' "); + SQL.Add(" ) sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSBJDYZZ0_BJDID=:pBJDID and XLXSBJDYZZ0_XH=XH "); + if (!sBJDXHList.Equals("")) + { + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDYZZ0_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDYZZ0_XH > :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSBJDYZZ0_YZZ{0}=YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + sErrorNum = "Error3-1"; + SQL.Clear(); + SQL.Add(" merge into XLXSBJDYZZ0 tar "); + SQL.Add(" using ( "); + SQL.Add("select XLXSBJDMX_BJDID as BJDID,XLXSBJDMX_XH as XH "); + SQL.Add(string.Format(",isnull(YZZ,0) as YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.Add(" from XLXSBJDMX "); + SQL.Add("left join XLXHB on XLXHB_XLXHID=XLXSBJDMX_XLXHID "); + SQL.Add("left join XLDYDJB on XLDYDJB_DYDJID = isnull(XLXSBJDMX_DYDJID,' ') "); + SQL.Add("left join XLXSBJDYZZ3BSY1 on XLXSBJDYZZ3BSY1_CPYT= isnull(XLXHB_CPYT,' ') "); + SQL.Add("left join XLXSBJDYZZ3BSY2 on XLXSBJDYZZ3BSY2_XLXHID= XLXSBJDMX_XLXHID and XLXSBJDYZZ3BSY2_XLGGID= XLXSBJDMX_XLGGID and XLXSBJDYZZ3BSY2_XLBZID= XLXSBJDMX_XLBZID and XLXSBJDYZZ3BSY2_DYDJID= XLXSBJDMX_DYDJID"); + SQL.Add("left join XLXSBJDYZZ3BSY3 on XLXSBJDYZZ3BSY3_XLJBXHID= isnull(XLXHB_XLJBXHID,' ') "); + SQL.Add("left join "); + SQL.Add("( "); + SQL.Add(" select XLXSBJDYZZ3_CPYT as CPYT, XLXSBJDYZZ3_DYDJFL as DYDJFL, XLXSBJDYZZ3_YZID as YZID,XLXSBJDYZZ3_YZZ as YZZ, "); + SQL.Add(" XLXSBJDYZZ3_BJSLXX,XLXSBJDYZZ3_BJSLSX "); + SQL.Add(" from XLXSBJDYZZ3 "); + SQL.Add("where XLXSBJDYZZ3_JGBID=:pJGBID "); + SQL.Add(" and XLXSBJDYZZ3_YZID=:pYZID"); + SQL.Add(" and XLXSBJDYZZ3_CPYT = ' ' and XLXSBJDYZZ3_DYDJFL<> ' ' "); + SQL.Add(" ) a on a.DYDJFL = XLDYDJB_DYDJFL "); + if (sBJU003JSDW.Equals("M")) + { + SQL.Add(" and a.XLXSBJDYZZ3_BJSLXX<=(case XLXSBJDMX_JLDW when 'Km' then 1000*XLXSBJDMX_BJSL when '千米' then 1000*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end) "); + SQL.Add(" and ((a.XLXSBJDYZZ3_BJSLSX<>0 and a.XLXSBJDYZZ3_BJSLSX>(case XLXSBJDMX_JLDW when 'Km' then 1000*XLXSBJDMX_BJSL when '千米' then 1000*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end)) or a.XLXSBJDYZZ3_BJSLSX=0)"); + } + else if (sBJU003JSDW.Equals("Km")) + { + SQL.Add(" and a.XLXSBJDYZZ3_BJSLXX<=(case XLXSBJDMX_JLDW when 'M' then 0.001*XLXSBJDMX_BJSL when '米' then 0.001*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*0.001*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end) "); + SQL.Add(" and ((a.XLXSBJDYZZ3_BJSLSX<>0 and a.XLXSBJDYZZ3_BJSLSX>(case XLXSBJDMX_JLDW when 'M' then 0.001*XLXSBJDMX_BJSL when '米' then 0.001*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*0.001*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end)) or a.XLXSBJDYZZ3_BJSLSX=0)"); + } + SQL.Add("where XLXSBJDMX_BJDID=:pBJDID and isnull(YZID,' ')<>' ' "); + SQL.Add(" and (XLXSBJDMX_JLDW in ('Km','M','千米','米') "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" or XLXSBJDMX_JLDW='{0}'", sKey)); + } + SQL.Add(" ) "); + if (!sBJDXHList.Equals("")) + { + SQL.Add("and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDMX_XH > :minBJDXH"); + } + if (VnewID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pVID and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "); + SQL.ParamByName("pVID").Value = VnewID; + } + if (bYBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + if (bWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y'"); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + SQL.Add(" and isnull(XLXSBJDYZZ3BSY1_CPYT, ' ')=' ' "); + SQL.Add(" and isnull(XLXSBJDYZZ3BSY2_XLXHID, ' ')=' '"); + SQL.Add(" and isnull(XLXSBJDYZZ3BSY3_XLJBXHID, ' ')=' ' "); + SQL.Add(" ) sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSBJDYZZ0_BJDID=:pBJDID and XLXSBJDYZZ0_XH=XH "); + if (!sBJDXHList.Equals("")) + { + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDYZZ0_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDYZZ0_XH > :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSBJDYZZ0_YZZ{0}=YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + sErrorNum = "Error3-2"; + SQL.Clear(); + SQL.Add(" merge into XLXSBJDYZZ0 tar "); + SQL.Add(" using ( "); + SQL.Add("select XLXSBJDMX_BJDID as BJDID,XLXSBJDMX_XH as XH "); + SQL.Add(string.Format(",isnull(YZZ,0) as YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.Add(" from XLXSBJDMX "); + SQL.Add("left join XLXHB on XLXHB_XLXHID=XLXSBJDMX_XLXHID "); + SQL.Add("left join XLDYDJB on XLDYDJB_DYDJID = isnull(XLXSBJDMX_DYDJID,' ') "); + SQL.Add("left join XLXSBJDYZZ3BSY1 on XLXSBJDYZZ3BSY1_CPYT= isnull(XLXHB_CPYT,' ') "); + SQL.Add("left join XLXSBJDYZZ3BSY2 on XLXSBJDYZZ3BSY2_XLXHID= XLXSBJDMX_XLXHID and XLXSBJDYZZ3BSY2_XLGGID= XLXSBJDMX_XLGGID and XLXSBJDYZZ3BSY2_XLBZID= XLXSBJDMX_XLBZID and XLXSBJDYZZ3BSY2_DYDJID= XLXSBJDMX_DYDJID"); + SQL.Add("left join XLXSBJDYZZ3BSY3 on XLXSBJDYZZ3BSY3_XLJBXHID= isnull(XLXHB_XLJBXHID,' ') "); + SQL.Add("left join "); + SQL.Add("( "); + SQL.Add(" select XLXSBJDYZZ3_CPYT as CPYT, XLXSBJDYZZ3_DYDJFL as DYDJFL, XLXSBJDYZZ3_YZID as YZID,XLXSBJDYZZ3_YZZ as YZZ, "); + SQL.Add(" XLXSBJDYZZ3_BJSLXX,XLXSBJDYZZ3_BJSLSX "); + SQL.Add(" from XLXSBJDYZZ3 "); + SQL.Add("where XLXSBJDYZZ3_JGBID=:pJGBID "); + SQL.Add(" and XLXSBJDYZZ3_YZID=:pYZID"); + SQL.Add(" and XLXSBJDYZZ3_CPYT<>' ' and XLXSBJDYZZ3_DYDJFL= ' ' "); + SQL.Add(" ) a on a.CPYT=XLXHB_CPYT "); + if (sBJU003JSDW.Equals("M")) + { + SQL.Add(" and a.XLXSBJDYZZ3_BJSLXX<=(case XLXSBJDMX_JLDW when 'Km' then 1000*XLXSBJDMX_BJSL when '千米' then 1000*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end) "); + SQL.Add(" and ((a.XLXSBJDYZZ3_BJSLSX<>0 and a.XLXSBJDYZZ3_BJSLSX>(case XLXSBJDMX_JLDW when 'Km' then 1000*XLXSBJDMX_BJSL when '千米' then 1000*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end)) or a.XLXSBJDYZZ3_BJSLSX=0)"); + } + else if (sBJU003JSDW.Equals("Km")) + { + SQL.Add(" and a.XLXSBJDYZZ3_BJSLXX<=(case XLXSBJDMX_JLDW when 'M' then 0.001*XLXSBJDMX_BJSL when '米' then 0.001*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*0.001*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end) "); + SQL.Add(" and ((a.XLXSBJDYZZ3_BJSLSX<>0 and a.XLXSBJDYZZ3_BJSLSX>(case XLXSBJDMX_JLDW when 'M' then 0.001*XLXSBJDMX_BJSL when '米' then 0.001*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*0.001*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end)) or a.XLXSBJDYZZ3_BJSLSX=0)"); + } + SQL.Add("where XLXSBJDMX_BJDID=:pBJDID and isnull(YZID,' ')<>' ' "); + SQL.Add(" and (XLXSBJDMX_JLDW in ('Km','M','千米','米') "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" or XLXSBJDMX_JLDW='{0}'", sKey)); + } + SQL.Add(" ) "); + if (!sBJDXHList.Equals("")) + { + SQL.Add("and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDMX_XH > :minBJDXH"); + } + if (VnewID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pVID and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "); + SQL.ParamByName("pVID").Value = VnewID; + } + if (bYBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + if (bWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y'"); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + SQL.Add(" and isnull(XLXSBJDYZZ3BSY1_CPYT, ' ')=' ' "); + SQL.Add(" and isnull(XLXSBJDYZZ3BSY2_XLXHID, ' ')=' ' "); + SQL.Add(" and isnull(XLXSBJDYZZ3BSY3_XLJBXHID, ' ')=' ' "); + SQL.Add(" ) sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSBJDYZZ0_BJDID=:pBJDID and XLXSBJDYZZ0_XH=XH "); + if (!sBJDXHList.Equals("")) + { + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDYZZ0_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDYZZ0_XH > :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSBJDYZZ0_YZZ{0}=YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + sErrorNum = "Error3-3"; + SQL.Clear(); + SQL.Add(" merge into XLXSBJDYZZ0 tar "); + SQL.Add(" using ( "); + SQL.Add("select XLXSBJDMX_BJDID as BJDID,XLXSBJDMX_XH as XH "); + SQL.Add(string.Format(",isnull(YZZ,0) as YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.Add(" from XLXSBJDMX "); + SQL.Add("left join XLXHB on XLXHB_XLXHID=XLXSBJDMX_XLXHID "); + SQL.Add("left join XLDYDJB on XLDYDJB_DYDJID = isnull(XLXSBJDMX_DYDJID,' ') "); + SQL.Add("left join XLXSBJDYZZ3BSY1 on XLXSBJDYZZ3BSY1_CPYT= isnull(XLXHB_CPYT,' ') "); + SQL.Add("left join XLXSBJDYZZ3BSY2 on XLXSBJDYZZ3BSY2_XLXHID= XLXSBJDMX_XLXHID and XLXSBJDYZZ3BSY2_XLGGID= XLXSBJDMX_XLGGID and XLXSBJDYZZ3BSY2_XLBZID= XLXSBJDMX_XLBZID and XLXSBJDYZZ3BSY2_DYDJID= XLXSBJDMX_DYDJID"); + SQL.Add("left join XLXSBJDYZZ3BSY3 on XLXSBJDYZZ3BSY3_XLJBXHID= isnull(XLXHB_XLJBXHID,' ') "); + SQL.Add("left join "); + SQL.Add("( "); + SQL.Add(" select XLXSBJDYZZ3_CPYT as CPYT, XLXSBJDYZZ3_DYDJFL as DYDJFL, XLXSBJDYZZ3_YZID as YZID,XLXSBJDYZZ3_YZZ as YZZ, "); + SQL.Add(" XLXSBJDYZZ3_BJSLXX,XLXSBJDYZZ3_BJSLSX "); + SQL.Add(" from XLXSBJDYZZ3 "); + SQL.Add("where XLXSBJDYZZ3_JGBID=:pJGBID "); + SQL.Add(" and XLXSBJDYZZ3_YZID=:pYZID"); + SQL.Add(" and XLXSBJDYZZ3_CPYT<>' ' and XLXSBJDYZZ3_DYDJFL<>' ' "); + SQL.Add(" ) a on a.CPYT=XLXHB_CPYT and a.DYDJFL = XLDYDJB_DYDJFL"); + if (sBJU003JSDW.Equals("M")) + { + SQL.Add(" and a.XLXSBJDYZZ3_BJSLXX<=(case XLXSBJDMX_JLDW when 'Km' then 1000*XLXSBJDMX_BJSL when '千米' then 1000*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end) "); + SQL.Add(" and ((a.XLXSBJDYZZ3_BJSLSX<>0 and a.XLXSBJDYZZ3_BJSLSX>(case XLXSBJDMX_JLDW when 'Km' then 1000*XLXSBJDMX_BJSL when '千米' then 1000*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end)) or a.XLXSBJDYZZ3_BJSLSX=0)"); + } + else if (sBJU003JSDW.Equals("Km")) + { + SQL.Add(" and a.XLXSBJDYZZ3_BJSLXX<=(case XLXSBJDMX_JLDW when 'M' then 0.001*XLXSBJDMX_BJSL when '米' then 0.001*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*0.001*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end) "); + SQL.Add(" and ((a.XLXSBJDYZZ3_BJSLSX<>0 and a.XLXSBJDYZZ3_BJSLSX>(case XLXSBJDMX_JLDW when 'M' then 0.001*XLXSBJDMX_BJSL when '米' then 0.001*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*0.001*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end)) or a.XLXSBJDYZZ3_BJSLSX=0)"); + } + SQL.Add("where XLXSBJDMX_BJDID=:pBJDID and isnull(YZID,' ')<>' ' "); + SQL.Add(" and (XLXSBJDMX_JLDW in ('Km','M','千米','米') "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" or XLXSBJDMX_JLDW='{0}'", sKey)); + } + SQL.Add(" ) "); + if (!sBJDXHList.Equals("")) + { + SQL.Add("and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDMX_XH > :minBJDXH"); + } + if (VnewID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pVID and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "); + SQL.ParamByName("pVID").Value = VnewID; + } + if (bYBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + if (bWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y'"); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + SQL.Add(" and isnull(XLXSBJDYZZ3BSY1_CPYT, ' ')=' ' "); + SQL.Add(" and isnull(XLXSBJDYZZ3BSY2_XLXHID, ' ')=' ' "); + SQL.Add(" and isnull(XLXSBJDYZZ3BSY3_XLJBXHID, ' ')=' ' "); + SQL.Add(" ) sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSBJDYZZ0_BJDID=:pBJDID and XLXSBJDYZZ0_XH=XH "); + if (!sBJDXHList.Equals("")) + { + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDYZZ0_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDYZZ0_XH > :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSBJDYZZ0_YZZ{0}=YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + sErrorNum = "Error3-4"; + } + } + } + + sErrorNum = "ErrorE"; + //自动插入TJYS=E的调价因子值 + if (dicTJYZList.ContainsKey("sTJYSListE")) + { + sTJYZ = dicTJYZList["sTJYSListE"].Trim().Split(new Char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); + for (int i = 0; i < sTJYZ.Length; i++) + { + if (!sTJYZ[i].Trim().Equals("")) + { + string sJGBID = string.Empty; + if (dicYZXX.ContainsKey(sTJYZ[i].Trim())) + sJGBID = dicYZXX[sTJYZ[i].Trim()]; + SQL.Clear(); + SQL.Add(" merge into XLXSBJDYZZ0 tar "); + SQL.Add(" using ( "); + SQL.Add("select XLXSBJDMX_BJDID as BJDID,XLXSBJDMX_XH as XH "); + SQL.Add(string.Format(",isnull(YZZ,0) as YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.Add(" from XLXSBJDMX "); + SQL.Add("left join XLXHB on XLXHB_XLXHID=XLXSBJDMX_XLXHID "); + SQL.Add("left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSBJDMX_XLGGID "); + SQL.Add("left join XLXSBJDYZZEBSY1 on XLXSBJDYZZEBSY1_CPYT= isnull(XLXHB_CPYT,' ') "); + SQL.Add("left join XLXSBJDYZZEBSY2 on XLXSBJDYZZEBSY2_XLJBXHID= isnull(XLXHB_XLJBXHID,' ') "); + SQL.Add("left join XLGGB on XLGGB_XLGGID = XLXSBJXLGGTHB_XLGGIDCH and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); + SQL.Add("left join XLDTJMZHB on XLDTJMZHB_DTJMZHID=XLGGB_DTJMZHID "); + SQL.Add("left join "); + SQL.Add("( "); + SQL.Add(" select XLXSBJDYZZE_XLXHID as XLXHID, XLXSBJDYZZE_DYDJID as DYDJID, "); + SQL.Add(" XLXSBJDYZZE_YZID as YZID,XLXSBJDYZZE_YZZ as YZZ, "); + SQL.Add(" XLXSBJDYZZE_ZXJMSX as ZXJMSX, XLXSBJDYZZE_ZXJMXX as ZXJMXX, "); + SQL.Add(" XLXSBJDYZZE_BJSLXX,XLXSBJDYZZE_BJSLSX "); + SQL.Add(" from XLXSBJDYZZE "); + SQL.Add("where XLXSBJDYZZE_JGBID=:pJGBID "); + SQL.Add(" and XLXSBJDYZZE_YZID=:pYZID"); + SQL.Add(" and XLXSBJDYZZE_XLXHID=' ' and XLXSBJDYZZE_DYDJID=' ' "); + SQL.Add(" ) a on "); + SQL.Add(" a.ZXJMXX<=isnull(XLDTJMZHB_DTJM1,0) and ((a.ZXJMSX<>0 and a.ZXJMSX>=isnull(XLDTJMZHB_DTJM1,0)) or a.ZXJMSX=0) "); + if (sBJU003JSDW.Equals("M")) + { + SQL.Add(" and a.XLXSBJDYZZE_BJSLXX<=(case XLXSBJDMX_JLDW when 'Km' then 1000*XLXSBJDMX_BJSL when '千米' then 1000*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end) "); + SQL.Add(" and ((a.XLXSBJDYZZE_BJSLSX<>0 and a.XLXSBJDYZZE_BJSLSX>(case XLXSBJDMX_JLDW when 'Km' then 1000*XLXSBJDMX_BJSL when '千米' then 1000*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end)) or a.XLXSBJDYZZE_BJSLSX=0) "); + } + else if (sBJU003JSDW.Equals("Km")) + { + SQL.Add(" and a.XLXSBJDYZZE_BJSLXX<=(case XLXSBJDMX_JLDW when 'M' then 0.001*XLXSBJDMX_BJSL when '米' then 0.001*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*0.001*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end) "); + SQL.Add(" and ((a.XLXSBJDYZZE_BJSLSX<>0 and a.XLXSBJDYZZE_BJSLSX>(case XLXSBJDMX_JLDW when 'M' then 0.001*XLXSBJDMX_BJSL when '米' then 0.001*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*0.001*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end)) or a.XLXSBJDYZZE_BJSLSX=0) "); + } + SQL.Add("where XLXSBJDMX_BJDID=:pBJDID and isnull(YZID,' ')<>' ' "); + SQL.Add(" and (XLXSBJDMX_JLDW in ('Km','M','千米','米') "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" or XLXSBJDMX_JLDW='{0}'", sKey)); + } + SQL.Add(" ) "); + if (!sBJDXHList.Equals("")) + { + SQL.Add("and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDMX_XH > :minBJDXH"); + } + if (VnewID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pVID and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "); + SQL.ParamByName("pVID").Value = VnewID; + } + if (bYBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + if (bWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y'"); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + SQL.Add(" and isnull(XLXSBJDYZZEBSY1_CPYT, ' ')=' ' "); + SQL.Add(" and isnull(XLXSBJDYZZEBSY2_XLJBXHID, ' ')=' ' "); + SQL.Add(" ) sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSBJDYZZ0_BJDID=:pBJDID and XLXSBJDYZZ0_XH=XH "); + if (!sBJDXHList.Equals("")) + { + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDYZZ0_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDYZZ0_XH > :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSBJDYZZ0_YZZ{0}=YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + sErrorNum = "ErrorE-1"; + SQL.Clear(); + SQL.Add(" merge into XLXSBJDYZZ0 tar "); + SQL.Add(" using ( "); + SQL.Add("select XLXSBJDMX_BJDID as BJDID,XLXSBJDMX_XH as XH "); + SQL.Add(string.Format(",isnull(YZZ,0) as YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.Add(" from XLXSBJDMX "); + SQL.Add("left join XLXHB on XLXHB_XLXHID=XLXSBJDMX_XLXHID "); + SQL.Add("left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSBJDMX_XLGGID "); + SQL.Add("left join XLXSBJDYZZEBSY1 on XLXSBJDYZZEBSY1_CPYT= isnull(XLXHB_CPYT,' ') "); + SQL.Add("left join XLXSBJDYZZEBSY2 on XLXSBJDYZZEBSY2_XLJBXHID= isnull(XLXHB_XLJBXHID,' ') "); + SQL.Add("left join XLGGB on XLGGB_XLGGID = XLXSBJXLGGTHB_XLGGIDCH and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); + SQL.Add("left join XLDTJMZHB on XLDTJMZHB_DTJMZHID=XLGGB_DTJMZHID "); + SQL.Add("left join "); + SQL.Add("( "); + SQL.Add(" select XLXSBJDYZZE_XLXHID as XLXHID, XLXSBJDYZZE_DYDJID as DYDJID, "); + SQL.Add(" XLXSBJDYZZE_YZID as YZID,XLXSBJDYZZE_YZZ as YZZ, "); + SQL.Add(" XLXSBJDYZZE_ZXJMSX as ZXJMSX, XLXSBJDYZZE_ZXJMXX as ZXJMXX, "); + SQL.Add(" XLXSBJDYZZE_BJSLXX,XLXSBJDYZZE_BJSLSX "); + SQL.Add(" from XLXSBJDYZZE "); + SQL.Add("where XLXSBJDYZZE_JGBID=:pJGBID "); + SQL.Add(" and XLXSBJDYZZE_YZID=:pYZID"); + SQL.Add(" and XLXSBJDYZZE_XLXHID<>' ' and XLXSBJDYZZE_DYDJID=' ' "); + SQL.Add(" ) a on a.XLXHID=XLXSBJDMX_XLXHID "); + SQL.Add(" and a.ZXJMXX<=isnull(XLDTJMZHB_DTJM1,0) and ((a.ZXJMSX<>0 and a.ZXJMSX>=isnull(XLDTJMZHB_DTJM1,0)) or a.ZXJMSX=0) "); + if (sBJU003JSDW.Equals("M")) + { + SQL.Add(" and a.XLXSBJDYZZE_BJSLXX<=(case XLXSBJDMX_JLDW when 'Km' then 1000*XLXSBJDMX_BJSL when '千米' then 1000*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end) "); + SQL.Add(" and ((a.XLXSBJDYZZE_BJSLSX<>0 and a.XLXSBJDYZZE_BJSLSX>(case XLXSBJDMX_JLDW when 'Km' then 1000*XLXSBJDMX_BJSL when '千米' then 1000*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end)) or a.XLXSBJDYZZE_BJSLSX=0) "); + } + else if (sBJU003JSDW.Equals("Km")) + { + SQL.Add(" and a.XLXSBJDYZZE_BJSLXX<=(case XLXSBJDMX_JLDW when 'M' then 0.001*XLXSBJDMX_BJSL when '米' then 0.001*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*0.001*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end) "); + SQL.Add(" and ((a.XLXSBJDYZZE_BJSLSX<>0 and a.XLXSBJDYZZE_BJSLSX>(case XLXSBJDMX_JLDW when 'M' then 0.001*XLXSBJDMX_BJSL when '米' then 0.001*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*0.001*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end)) or a.XLXSBJDYZZE_BJSLSX=0) "); + } + SQL.Add("where XLXSBJDMX_BJDID=:pBJDID and isnull(YZID,' ')<>' ' "); + SQL.Add(" and (XLXSBJDMX_JLDW in ('Km','M','千米','米') "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" or XLXSBJDMX_JLDW='{0}'", sKey)); + } + SQL.Add(" ) "); + if (!sBJDXHList.Equals("")) + { + SQL.Add("and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDMX_XH > :minBJDXH"); + } + if (VnewID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pVID and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "); + SQL.ParamByName("pVID").Value = VnewID; + } + if (bYBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + if (bWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y'"); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + SQL.Add(" and isnull(XLXSBJDYZZEBSY1_CPYT, ' ')=' ' "); + SQL.Add(" and isnull(XLXSBJDYZZEBSY2_XLJBXHID, ' ')=' ' "); + SQL.Add(" ) sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSBJDYZZ0_BJDID=:pBJDID and XLXSBJDYZZ0_XH=XH "); + if (!sBJDXHList.Equals("")) + { + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDYZZ0_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDYZZ0_XH > :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSBJDYZZ0_YZZ{0}=YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + sErrorNum = "ErrorE-2"; + SQL.Clear(); + SQL.Add(" merge into XLXSBJDYZZ0 tar "); + SQL.Add(" using ( "); + SQL.Add("select XLXSBJDMX_BJDID as BJDID,XLXSBJDMX_XH as XH "); + SQL.Add(string.Format(",isnull(YZZ,0) as YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.Add(" from XLXSBJDMX "); + SQL.Add("left join XLXHB on XLXHB_XLXHID=XLXSBJDMX_XLXHID "); + SQL.Add("left join XLXSBJDYZZEBSY1 on XLXSBJDYZZEBSY1_CPYT= isnull(XLXHB_CPYT,' ') "); + SQL.Add("left join XLXSBJDYZZEBSY2 on XLXSBJDYZZEBSY2_XLJBXHID= isnull(XLXHB_XLJBXHID,' ') "); + SQL.Add("left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSBJDMX_XLGGID "); + SQL.Add("left join XLGGB on XLGGB_XLGGID = XLXSBJXLGGTHB_XLGGIDCH and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); + SQL.Add("left join XLDTJMZHB on XLDTJMZHB_DTJMZHID=XLGGB_DTJMZHID "); + SQL.Add("left join "); + SQL.Add("( "); + SQL.Add(" select XLXSBJDYZZE_XLXHID as XLXHID, XLXSBJDYZZE_DYDJID as DYDJID, "); + SQL.Add(" XLXSBJDYZZE_YZID as YZID,XLXSBJDYZZE_YZZ as YZZ, "); + SQL.Add(" XLXSBJDYZZE_ZXJMSX as ZXJMSX, XLXSBJDYZZE_ZXJMXX as ZXJMXX, "); + SQL.Add(" XLXSBJDYZZE_BJSLXX,XLXSBJDYZZE_BJSLSX "); + SQL.Add(" from XLXSBJDYZZE "); + SQL.Add("where XLXSBJDYZZE_JGBID=:pJGBID "); + SQL.Add(" and XLXSBJDYZZE_YZID=:pYZID"); + SQL.Add(" and XLXSBJDYZZE_XLXHID<>' ' and XLXSBJDYZZE_DYDJID<>' ' "); + SQL.Add(" ) a on a.XLXHID=XLXSBJDMX_XLXHID"); + SQL.Add(" and a.DYDJID = XLXSBJDMX_DYDJID "); + SQL.Add(" and a.ZXJMXX<=isnull(XLDTJMZHB_DTJM1,0) and ((a.ZXJMSX<>0 and a.ZXJMSX>=isnull(XLDTJMZHB_DTJM1,0)) or a.ZXJMSX=0) "); + if (sBJU003JSDW.Equals("M")) + { + SQL.Add(" and a.XLXSBJDYZZE_BJSLXX<=(case XLXSBJDMX_JLDW when 'Km' then 1000*XLXSBJDMX_BJSL when '千米' then 1000*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end) "); + SQL.Add(" and ((a.XLXSBJDYZZE_BJSLSX<>0 and a.XLXSBJDYZZE_BJSLSX>(case XLXSBJDMX_JLDW when 'Km' then 1000*XLXSBJDMX_BJSL when '千米' then 1000*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end)) or a.XLXSBJDYZZE_BJSLSX=0) "); + } + else if (sBJU003JSDW.Equals("Km")) + { + SQL.Add(" and a.XLXSBJDYZZE_BJSLXX<=(case XLXSBJDMX_JLDW when 'M' then 0.001*XLXSBJDMX_BJSL when '米' then 0.001*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*0.001*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end) "); + SQL.Add(" and ((a.XLXSBJDYZZE_BJSLSX<>0 and a.XLXSBJDYZZE_BJSLSX>(case XLXSBJDMX_JLDW when 'M' then 0.001*XLXSBJDMX_BJSL when '米' then 0.001*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*0.001*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end)) or a.XLXSBJDYZZE_BJSLSX=0) "); + } + SQL.Add("where XLXSBJDMX_BJDID=:pBJDID and isnull(YZID,' ')<>' ' "); + SQL.Add(" and (XLXSBJDMX_JLDW in ('Km','M','千米','米') "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" or XLXSBJDMX_JLDW='{0}'", sKey)); + } + SQL.Add(" ) "); + if (!sBJDXHList.Equals("")) + { + SQL.Add("and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDMX_XH > :minBJDXH"); + } + if (VnewID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pVID and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "); + SQL.ParamByName("pVID").Value = VnewID; + } + if (bYBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + if (bWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y'"); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + SQL.Add(" and isnull(XLXSBJDYZZEBSY1_CPYT, ' ')=' ' "); + SQL.Add(" and isnull(XLXSBJDYZZEBSY2_XLJBXHID, ' ')=' ' "); + SQL.Add(" ) sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSBJDYZZ0_BJDID=:pBJDID and XLXSBJDYZZ0_XH=XH "); + if (!sBJDXHList.Equals("")) + { + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDYZZ0_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDYZZ0_XH > :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSBJDYZZ0_YZZ{0}=YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + sErrorNum = "ErrorE-3"; + } + } + } + + sErrorNum = "ErrorG"; + //自动插入TJYS=G的调价因子值 + if (dicTJYZList.ContainsKey("sTJYSListG")) + { + sTJYZ = dicTJYZList["sTJYSListG"].Trim().Split(new Char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); + for (int i = 0; i < sTJYZ.Length; i++) + { + if (!sTJYZ[i].Trim().Equals("")) + { + string sJGBID = string.Empty; + if (dicYZXX.ContainsKey(sTJYZ[i].Trim())) + sJGBID = dicYZXX[sTJYZ[i].Trim()]; + SQL.Clear(); + SQL.Add(" merge into XLXSBJDYZZ0 tar "); + SQL.Add(" using ( "); + SQL.Add("select XLXSBJDMX_BJDID as BJDID,XLXSBJDMX_XH as XH "); + SQL.Add(string.Format(",isnull(YZZ,0) as YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.Add(" from XLXSBJDMX "); + SQL.Add("left join XLXHB on XLXHB_XLXHID=XLXSBJDMX_XLXHID "); + SQL.Add("left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSBJDMX_XLGGID "); + SQL.Add("left join XLGGB on XLGGB_XLGGID = XLXSBJXLGGTHB_XLGGIDCH and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); + SQL.Add("left join XLDTJMZHB on XLDTJMZHB_DTJMZHID=XLGGB_DTJMZHID "); + SQL.Add("left join "); + SQL.Add("( "); + SQL.Add(" select XLXSBJDYZZG_DTCLID as DTCLID, XLXSBJDYZZG_DYDJID as DYDJID,XLXSBJDYZZG_XXJGID as XXJGID, "); + SQL.Add(" XLXSBJDYZZG_YZID as YZID,XLXSBJDYZZG_YZZ as YZZ, "); + SQL.Add(" XLXSBJDYZZG_ZXJMSX as ZXJMSX, XLXSBJDYZZG_ZXJMXX as ZXJMXX, "); + SQL.Add(" XLXSBJDYZZG_BJSLXX,XLXSBJDYZZG_BJSLSX "); + SQL.Add(" from XLXSBJDYZZG "); + SQL.Add("where XLXSBJDYZZG_JGBID=:pJGBID "); + SQL.Add(" and XLXSBJDYZZG_YZID=:pYZID"); + SQL.Add(" and XLXSBJDYZZG_DTCLID=' ' "); + SQL.Add(" ) a on a.DYDJID=XLXSBJDMX_DYDJID and a.XXJGID=XLGGB_XXJGID and "); + SQL.Add(" a.ZXJMXX<=isnull(XLDTJMZHB_DTJM1,0) and ((a.ZXJMSX<>0 and a.ZXJMSX>=isnull(XLDTJMZHB_DTJM1,0)) or a.ZXJMSX=0) "); + if (sBJU003JSDW.Equals("M")) + { + SQL.Add(" and a.XLXSBJDYZZG_BJSLXX<=(case XLXSBJDMX_JLDW when 'Km' then 1000*XLXSBJDMX_BJSL when '千米' then 1000*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end) "); + SQL.Add(" and ((a.XLXSBJDYZZG_BJSLSX<>0 and a.XLXSBJDYZZG_BJSLSX>(case XLXSBJDMX_JLDW when 'Km' then 1000*XLXSBJDMX_BJSL when '千米' then 1000*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end)) or a.XLXSBJDYZZG_BJSLSX=0) "); + } + else if (sBJU003JSDW.Equals("Km")) + { + SQL.Add(" and a.XLXSBJDYZZG_BJSLXX<=(case XLXSBJDMX_JLDW when 'M' then 0.001*XLXSBJDMX_BJSL when '米' then 0.001*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*0.001*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end) "); + SQL.Add(" and ((a.XLXSBJDYZZG_BJSLSX<>0 and a.XLXSBJDYZZG_BJSLSX>(case XLXSBJDMX_JLDW when 'M' then 0.001*XLXSBJDMX_BJSL when '米' then 0.001*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*0.001*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end)) or a.XLXSBJDYZZG_BJSLSX=0) "); + } + SQL.Add("where XLXSBJDMX_BJDID=:pBJDID and isnull(YZID,' ')<>' ' "); + SQL.Add(" and (XLXSBJDMX_JLDW in ('Km','M','千米','米') "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" or XLXSBJDMX_JLDW='{0}'", sKey)); + } + SQL.Add(" ) "); + if (!sBJDXHList.Equals("")) + { + SQL.Add("and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDMX_XH > :minBJDXH"); + } + if (VnewID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pVID and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "); + SQL.ParamByName("pVID").Value = VnewID; + } + if (bYBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + if (bWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y'"); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + + SQL.Add(" ) sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSBJDYZZ0_BJDID=:pBJDID and XLXSBJDYZZ0_XH=XH "); + if (!sBJDXHList.Equals("")) + { + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDYZZ0_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDYZZ0_XH > :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSBJDYZZ0_YZZ{0}=YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + sErrorNum = "ErrorG-1"; + + + SQL.Clear(); + SQL.Add(" merge into XLXSBJDYZZ0 tar "); + SQL.Add(" using ( "); + SQL.Add("select XLXSBJDMX_BJDID as BJDID,XLXSBJDMX_XH as XH "); + SQL.Add(string.Format(",isnull(YZZ,0) as YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.Add(" from XLXSBJDMX "); + SQL.Add("left join XLXHB on XLXHB_XLXHID=XLXSBJDMX_XLXHID "); + SQL.Add("left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSBJDMX_XLGGID "); + SQL.Add("left join XLGGB on XLGGB_XLGGID = XLXSBJXLGGTHB_XLGGIDCH and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); + SQL.Add("left join XLDTJMZHB on XLDTJMZHB_DTJMZHID=XLGGB_DTJMZHID "); + SQL.Add("left join "); + SQL.Add("( "); + SQL.Add(" select XLXSBJDYZZG_DTCLID as DTCLID, XLXSBJDYZZG_DYDJID as DYDJID,XLXSBJDYZZG_XXJGID as XXJGID, "); + SQL.Add(" XLXSBJDYZZG_YZID as YZID,XLXSBJDYZZG_YZZ as YZZ, "); + SQL.Add(" XLXSBJDYZZG_ZXJMSX as ZXJMSX, XLXSBJDYZZG_ZXJMXX as ZXJMXX, "); + SQL.Add(" XLXSBJDYZZG_BJSLXX,XLXSBJDYZZG_BJSLSX "); + SQL.Add(" from XLXSBJDYZZG "); + SQL.Add("where XLXSBJDYZZG_JGBID=:pJGBID "); + SQL.Add(" and XLXSBJDYZZG_YZID=:pYZID"); + SQL.Add(" and XLXSBJDYZZG_DTCLID<>' ' "); + SQL.Add(" ) a on a.DYDJID=XLXSBJDMX_DYDJID and a.XXJGID=XLGGB_XXJGID and a.DTCLID=XLXHB_DTCLID and "); + SQL.Add(" a.ZXJMXX<=isnull(XLDTJMZHB_DTJM1,0) and ((a.ZXJMSX<>0 and a.ZXJMSX>=isnull(XLDTJMZHB_DTJM1,0)) or a.ZXJMSX=0) "); + if (sBJU003JSDW.Equals("M")) + { + SQL.Add(" and a.XLXSBJDYZZG_BJSLXX<=(case XLXSBJDMX_JLDW when 'Km' then 1000*XLXSBJDMX_BJSL when '千米' then 1000*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end) "); + SQL.Add(" and ((a.XLXSBJDYZZG_BJSLSX<>0 and a.XLXSBJDYZZG_BJSLSX>(case XLXSBJDMX_JLDW when 'Km' then 1000*XLXSBJDMX_BJSL when '千米' then 1000*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end)) or a.XLXSBJDYZZG_BJSLSX=0) "); + } + else if (sBJU003JSDW.Equals("Km")) + { + SQL.Add(" and a.XLXSBJDYZZG_BJSLXX<=(case XLXSBJDMX_JLDW when 'M' then 0.001*XLXSBJDMX_BJSL when '米' then 0.001*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*0.001*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end) "); + SQL.Add(" and ((a.XLXSBJDYZZG_BJSLSX<>0 and a.XLXSBJDYZZG_BJSLSX>(case XLXSBJDMX_JLDW when 'M' then 0.001*XLXSBJDMX_BJSL when '米' then 0.001*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*0.001*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end)) or a.XLXSBJDYZZG_BJSLSX=0) "); + } + SQL.Add("where XLXSBJDMX_BJDID=:pBJDID and isnull(YZID,' ')<>' ' "); + SQL.Add(" and (XLXSBJDMX_JLDW in ('Km','M','千米','米') "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" or XLXSBJDMX_JLDW='{0}'", sKey)); + } + SQL.Add(" ) "); + if (!sBJDXHList.Equals("")) + { + SQL.Add("and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDMX_XH > :minBJDXH"); + } + if (VnewID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pVID and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "); + SQL.ParamByName("pVID").Value = VnewID; + } + if (bYBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + if (bWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y'"); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + + SQL.Add(" ) sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSBJDYZZ0_BJDID=:pBJDID and XLXSBJDYZZ0_XH=XH "); + if (!sBJDXHList.Equals("")) + { + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDYZZ0_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDYZZ0_XH > :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSBJDYZZ0_YZZ{0}=YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + sErrorNum = "ErrorG-2"; + } + } + } + + sErrorNum = "ErrorF"; + //自动插入TJYS=F的调价因子值 + if (dicTJYZList.ContainsKey("sTJYSListF")) + { + sTJYZ = dicTJYZList["sTJYSListF"].Trim().Split(new Char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); + for (int i = 0; i < sTJYZ.Length; i++) + { + if (!sTJYZ[i].Trim().Equals("")) + { + string sJGBID = string.Empty; + if (dicYZXX.ContainsKey(sTJYZ[i].Trim())) + sJGBID = dicYZXX[sTJYZ[i].Trim()]; + SQL.Clear(); + SQL.Add(" merge into XLXSBJDYZZ0 tar "); + SQL.Add(" using ( "); + SQL.Add("select XLXSBJDMX_BJDID as BJDID,XLXSBJDMX_XH as XH,XLXSBJDMX_BJSL "); + SQL.Add(string.Format(",isnull(YZZ,0) as YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.Add(" from XLXSBJDMX "); + SQL.Add(" left join XLXHB on XLXHB_XLXHID=XLXSBJDMX_XLXHID "); + SQL.Add("left join "); + SQL.Add("( "); + SQL.Add(" select XLXSBJDYZZF_XXJGID as XXJGID, XLXSBJDYZZF_DYDJID as DYDJID,XLXSBJDYZZF_DTCLID as DTCLID, "); + SQL.Add(" XLXSBJDYZZF_YZID as YZID,XLXSBJDYZZF_YZZ as YZZ, "); + SQL.Add(" XLXSBJDYZZF_BJSLXX,XLXSBJDYZZF_BJSLSX "); + SQL.Add(" from XLXSBJDYZZF "); + SQL.Add("where XLXSBJDYZZF_JGBID=:pJGBID "); + SQL.Add(" and XLXSBJDYZZF_YZID=:pYZID"); + SQL.Add(" and XLXSBJDYZZF_XXJGID=' ' and XLXSBJDYZZF_DYDJID<>' ' "); + SQL.Add(" ) a on a.DYDJID = XLXSBJDMX_DYDJID and a.DTCLID = XLXHB_DTCLID "); + if (sBJU003JSDW.Equals("M")) + { + SQL.Add(" and a.XLXSBJDYZZF_BJSLXX<=(case XLXSBJDMX_JLDW when 'Km' then 1000*XLXSBJDMX_BJSL when '千米' then 1000*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end) "); + SQL.Add(" and ((a.XLXSBJDYZZF_BJSLSX<>0 and a.XLXSBJDYZZF_BJSLSX>(case XLXSBJDMX_JLDW when 'Km' then 1000*XLXSBJDMX_BJSL when '千米' then 1000*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end)) or a.XLXSBJDYZZF_BJSLSX=0) "); + } + else if (sBJU003JSDW.Equals("Km")) + { + SQL.Add(" and a.XLXSBJDYZZF_BJSLXX<=(case XLXSBJDMX_JLDW when 'M' then 0.001*XLXSBJDMX_BJSL when '米' then 0.001*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*0.001*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end) "); + SQL.Add(" and ((a.XLXSBJDYZZF_BJSLSX<>0 and a.XLXSBJDYZZF_BJSLSX>(case XLXSBJDMX_JLDW when 'M' then 0.001*XLXSBJDMX_BJSL when '米' then 0.001*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*0.001*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end)) or a.XLXSBJDYZZF_BJSLSX=0) "); + } + SQL.Add("where XLXSBJDMX_BJDID=:pBJDID and isnull(YZID,' ')<>' ' "); + SQL.Add(" and (XLXSBJDMX_JLDW in ('Km','M','千米','米') "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" or XLXSBJDMX_JLDW='{0}'", sKey)); + } + SQL.Add(" ) "); + if (!sBJDXHList.Equals("")) + { + SQL.Add("and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDMX_XH > :minBJDXH"); + } + if (VnewID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pVID and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "); + SQL.ParamByName("pVID").Value = VnewID; + } + if (bYBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + if (bWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y'"); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + SQL.Add(" ) sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSBJDYZZ0_BJDID=:pBJDID and XLXSBJDYZZ0_XH=XH "); + if (!sBJDXHList.Equals("")) + { + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDYZZ0_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDYZZ0_XH > :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSBJDYZZ0_YZZ{0}=(case when sor.XLXSBJDMX_BJSL = 0 then 0 else RoundFix(YZZ{0}/sor.XLXSBJDMX_BJSL,6) end)", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + sErrorNum = "ErrorF-1"; + SQL.Clear(); + SQL.Add(" merge into XLXSBJDYZZ0 tar "); + SQL.Add(" using ( "); + SQL.Add("select XLXSBJDMX_BJDID as BJDID,XLXSBJDMX_XH as XH,XLXSBJDMX_BJSL "); + SQL.Add(string.Format(",isnull(YZZ,0) as YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.Add(" from XLXSBJDMX "); + + SQL.Add("left join XLXHB on XLXHB_XLXHID=XLXSBJDMX_XLXHID "); + SQL.Add("left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSBJDMX_XLGGID "); + SQL.Add("left join XLGGB on XLGGB_XLGGID = XLXSBJXLGGTHB_XLGGIDCH and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); + SQL.Add("left join "); + SQL.Add("( "); + SQL.Add(" select XLXSBJDYZZF_XXJGID as XXJGID, XLXSBJDYZZF_DYDJID as DYDJID,XLXSBJDYZZF_DTCLID as DTCLID, "); + SQL.Add(" XLXSBJDYZZF_YZID as YZID,XLXSBJDYZZF_YZZ as YZZ, "); + SQL.Add(" XLXSBJDYZZF_BJSLXX,XLXSBJDYZZF_BJSLSX "); + SQL.Add(" from XLXSBJDYZZF "); + SQL.Add("where XLXSBJDYZZF_JGBID=:pJGBID "); + SQL.Add(" and XLXSBJDYZZF_YZID=:pYZID"); + SQL.Add(" and XLXSBJDYZZF_XXJGID<>' ' and XLXSBJDYZZF_DYDJID<>' ' "); + SQL.Add(" ) a on a.DYDJID = XLXSBJDMX_DYDJID AND a.XXJGID = XLGGB_XXJGID AND a.DTCLID = XLXHB_DTCLID "); + if (sBJU003JSDW.Equals("M")) + { + SQL.Add(" and a.XLXSBJDYZZF_BJSLXX<=(case XLXSBJDMX_JLDW when 'Km' then 1000*XLXSBJDMX_BJSL when '千米' then 1000*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end) "); + SQL.Add(" and ((a.XLXSBJDYZZF_BJSLSX<>0 and a.XLXSBJDYZZF_BJSLSX>(case XLXSBJDMX_JLDW when 'Km' then 1000*XLXSBJDMX_BJSL when '千米' then 1000*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end)) or a.XLXSBJDYZZF_BJSLSX=0) "); + } + else if (sBJU003JSDW.Equals("Km")) + { + SQL.Add(" and a.XLXSBJDYZZF_BJSLXX<=(case XLXSBJDMX_JLDW when 'M' then 0.001*XLXSBJDMX_BJSL when '米' then 0.001*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*0.001*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end) "); + SQL.Add(" and ((a.XLXSBJDYZZF_BJSLSX<>0 and a.XLXSBJDYZZF_BJSLSX>(case XLXSBJDMX_JLDW when 'M' then 0.001*XLXSBJDMX_BJSL when '米' then 0.001*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*0.001*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end)) or a.XLXSBJDYZZF_BJSLSX=0) "); + } + SQL.Add("where XLXSBJDMX_BJDID=:pBJDID and isnull(YZID,' ')<>' ' "); + SQL.Add(" and (XLXSBJDMX_JLDW in ('Km','M','千米','米') "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" or XLXSBJDMX_JLDW='{0}'", sKey)); + } + SQL.Add(" ) "); + if (!sBJDXHList.Equals("")) + { + SQL.Add("and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDMX_XH > :minBJDXH"); + } + if (VnewID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pVID and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "); + SQL.ParamByName("pVID").Value = VnewID; + } + if (bYBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + if (bWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y'"); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + SQL.Add(" ) sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSBJDYZZ0_BJDID=:pBJDID and XLXSBJDYZZ0_XH=XH "); + if (!sBJDXHList.Equals("")) + { + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDYZZ0_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDYZZ0_XH > :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSBJDYZZ0_YZZ{0}=(case when sor.XLXSBJDMX_BJSL = 0 then 0 else RoundFix(YZZ{0}/sor.XLXSBJDMX_BJSL,6) end)", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + sErrorNum = "ErrorF-2"; + } + } + } + + sErrorNum = "ErrorH"; + //自动插入TJYS=H的调价因子值 + if (dicTJYZList.ContainsKey("sTJYSListH")) + { + sTJYZ = dicTJYZList["sTJYSListH"].Trim().Split(new Char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); + for (int i = 0; i < sTJYZ.Length; i++) + { + if (!sTJYZ[i].Trim().Equals("")) + { + string sJGBID = string.Empty; + if (dicYZXX.ContainsKey(sTJYZ[i].Trim())) + sJGBID = dicYZXX[sTJYZ[i].Trim()]; + SQL.Clear(); + SQL.Add(" merge into XLXSBJDYZZ0 tar "); + SQL.Add(" using ( "); + SQL.Add("select XLXSBJDMX_BJDID as BJDID,XLXSBJDMX_XH as XH,XLXSBJDMX_BJSL "); + SQL.Add(string.Format(",isnull(YZZ,0) as YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.Add(" from XLXSBJDMX "); + SQL.Add("left join XLXHB on XLXHB_XLXHID=XLXSBJDMX_XLXHID "); + SQL.Add("left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSBJDMX_XLGGID "); + SQL.Add("left join XLGGB on XLGGB_XLGGID = XLXSBJXLGGTHB_XLGGIDCH and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); + SQL.Add("left join XLDTJMZHB on XLDTJMZHB_DTJMZHID=XLGGB_DTJMZHID "); + SQL.Add("left join "); + SQL.Add("( "); + SQL.Add(" select XLXSBJDYZZH_XLXHID as XLXHID, "); + SQL.Add(" XLXSBJDYZZH_YZID as YZID,XLXSBJDYZZH_YZZ as YZZ, "); + SQL.Add(" XLXSBJDYZZH_ZXJMXX as ZXJMXX,XLXSBJDYZZH_ZXJMSX as ZXJMSX, "); + SQL.Add(" XLXSBJDYZZH_BJSLXX,XLXSBJDYZZH_BJSLSX "); + SQL.Add(" from XLXSBJDYZZH "); + SQL.Add("where XLXSBJDYZZH_JGBID=:pJGBID "); + SQL.Add(" and XLXSBJDYZZH_YZID=:pYZID"); + SQL.Add(" and isnull(XLXSBJDYZZH_DYDJID,' ') = ' ' and isnull(XLXSBJDYZZH_XLYSID,' ') = ' ' "); + SQL.Add(" ) a on a.XLXHID = XLXSBJDMX_XLXHID"); + SQL.Add(" and a.ZXJMXX<=isnull(XLDTJMZHB_DTJM1,0) and ((a.ZXJMSX<>0 and a.ZXJMSX>=isnull(XLDTJMZHB_DTJM1,0)) or a.ZXJMSX=0) "); + if (sBJU003JSDW.Equals("M")) + { + SQL.Add(" and a.XLXSBJDYZZH_BJSLXX<=(case XLXSBJDMX_JLDW when 'Km' then 1000*XLXSBJDMX_BJSL when '千米' then 1000*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end) "); + SQL.Add(" and ((a.XLXSBJDYZZH_BJSLSX<>0 and a.XLXSBJDYZZH_BJSLSX>(case XLXSBJDMX_JLDW when 'Km' then 1000*XLXSBJDMX_BJSL when '千米' then 1000*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end)) or a.XLXSBJDYZZH_BJSLSX=0) "); + } + else if (sBJU003JSDW.Equals("Km")) + { + SQL.Add(" and a.XLXSBJDYZZH_BJSLXX<=(case XLXSBJDMX_JLDW when 'M' then 0.001*XLXSBJDMX_BJSL when '米' then 0.001*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*0.001*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end) "); + SQL.Add(" and ((a.XLXSBJDYZZH_BJSLSX<>0 and a.XLXSBJDYZZH_BJSLSX>(case XLXSBJDMX_JLDW when 'M' then 0.001*XLXSBJDMX_BJSL when '米' then 0.001*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*0.001*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end)) or a.XLXSBJDYZZH_BJSLSX=0) "); + } + SQL.Add("where XLXSBJDMX_BJDID=:pBJDID and isnull(YZID,' ')<>' ' "); + SQL.Add(" and (XLXSBJDMX_JLDW in ('Km','M','千米','米') "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" or XLXSBJDMX_JLDW='{0}'", sKey)); + } + SQL.Add(" ) "); + if (!sBJDXHList.Equals("")) + { + SQL.Add("and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDMX_XH > :minBJDXH"); + } + if (VnewID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pVID and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "); + SQL.ParamByName("pVID").Value = VnewID; + } + if (bYBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + if (bWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y'"); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + SQL.Add(" ) sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSBJDYZZ0_BJDID=:pBJDID and XLXSBJDYZZ0_XH=XH "); + if (!sBJDXHList.Equals("")) + { + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDYZZ0_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDYZZ0_XH > :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSBJDYZZ0_YZZ{0}=(case when sor.XLXSBJDMX_BJSL = 0 then 0 else RoundFix(YZZ{0}/sor.XLXSBJDMX_BJSL,6) end)", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + sErrorNum = "ErrorH"; + SQL.Clear(); + SQL.Add(" merge into XLXSBJDYZZ0 tar "); + SQL.Add(" using ( "); + SQL.Add("select XLXSBJDMX_BJDID as BJDID,XLXSBJDMX_XH as XH,XLXSBJDMX_BJSL "); + SQL.Add(string.Format(",isnull(YZZ,0) as YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.Add(" from XLXSBJDMX "); + SQL.Add("left join XLXHB on XLXHB_XLXHID=XLXSBJDMX_XLXHID "); + SQL.Add("left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSBJDMX_XLGGID "); + SQL.Add("left join XLGGB on XLGGB_XLGGID = XLXSBJXLGGTHB_XLGGIDCH and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); + SQL.Add("left join XLDTJMZHB on XLDTJMZHB_DTJMZHID=XLGGB_DTJMZHID "); + SQL.Add("left join "); + SQL.Add("( "); + SQL.Add(" select XLXSBJDYZZH_XLXHID as XLXHID,XLXSBJDYZZH_DYDJID as DYDJID, "); + SQL.Add(" XLXSBJDYZZH_YZID as YZID,XLXSBJDYZZH_YZZ as YZZ, "); + SQL.Add(" XLXSBJDYZZH_ZXJMXX as ZXJMXX,XLXSBJDYZZH_ZXJMSX as ZXJMSX, "); + SQL.Add(" XLXSBJDYZZH_BJSLXX,XLXSBJDYZZH_BJSLSX "); + SQL.Add(" from XLXSBJDYZZH "); + SQL.Add("where XLXSBJDYZZH_JGBID=:pJGBID "); + SQL.Add(" and XLXSBJDYZZH_YZID=:pYZID"); + SQL.Add(" and isnull(XLXSBJDYZZH_DYDJID,' ') <> ' ' and isnull(XLXSBJDYZZH_XLYSID,' ') = ' ' "); + SQL.Add(" ) a on a.XLXHID = XLXSBJDMX_XLXHID and a.DYDJID = XLXSBJDMX_DYDJID "); + SQL.Add(" and a.ZXJMXX<=isnull(XLDTJMZHB_DTJM1,0) and ((a.ZXJMSX<>0 and a.ZXJMSX>=isnull(XLDTJMZHB_DTJM1,0)) or a.ZXJMSX=0) "); + if (sBJU003JSDW.Equals("M")) + { + SQL.Add(" and a.XLXSBJDYZZH_BJSLXX<=(case XLXSBJDMX_JLDW when 'Km' then 1000*XLXSBJDMX_BJSL when '千米' then 1000*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end) "); + SQL.Add(" and ((a.XLXSBJDYZZH_BJSLSX<>0 and a.XLXSBJDYZZH_BJSLSX>(case XLXSBJDMX_JLDW when 'Km' then 1000*XLXSBJDMX_BJSL when '千米' then 1000*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end)) or a.XLXSBJDYZZH_BJSLSX=0) "); + } + else if (sBJU003JSDW.Equals("Km")) + { + SQL.Add(" and a.XLXSBJDYZZH_BJSLXX<=(case XLXSBJDMX_JLDW when 'M' then 0.001*XLXSBJDMX_BJSL when '米' then 0.001*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*0.001*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end) "); + SQL.Add(" and ((a.XLXSBJDYZZH_BJSLSX<>0 and a.XLXSBJDYZZH_BJSLSX>(case XLXSBJDMX_JLDW when 'M' then 0.001*XLXSBJDMX_BJSL when '米' then 0.001*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*0.001*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end)) or a.XLXSBJDYZZH_BJSLSX=0) "); + } + SQL.Add("where XLXSBJDMX_BJDID=:pBJDID and isnull(YZID,' ')<>' ' "); + SQL.Add(" and (XLXSBJDMX_JLDW in ('Km','M','千米','米') "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" or XLXSBJDMX_JLDW='{0}'", sKey)); + } + SQL.Add(" ) "); + if (!sBJDXHList.Equals("")) + { + SQL.Add("and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDMX_XH > :minBJDXH"); + } + if (VnewID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pVID and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "); + SQL.ParamByName("pVID").Value = VnewID; + } + if (bYBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + if (bWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y'"); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + SQL.Add(" ) sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSBJDYZZ0_BJDID=:pBJDID and XLXSBJDYZZ0_XH=XH "); + if (!sBJDXHList.Equals("")) + { + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDYZZ0_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDYZZ0_XH > :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSBJDYZZ0_YZZ{0}=(case when sor.XLXSBJDMX_BJSL = 0 then 0 else RoundFix(YZZ{0}/sor.XLXSBJDMX_BJSL,6) end)", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + sErrorNum = "ErrorH"; + SQL.Clear(); + SQL.Add(" merge into XLXSBJDYZZ0 tar "); + SQL.Add(" using ( "); + SQL.Add("select XLXSBJDMX_BJDID as BJDID,XLXSBJDMX_XH as XH,XLXSBJDMX_BJSL "); + SQL.Add(string.Format(",isnull(YZZ,0) as YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.Add(" from XLXSBJDMX "); + SQL.Add("left join XLXHB on XLXHB_XLXHID=XLXSBJDMX_XLXHID "); + SQL.Add("left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSBJDMX_XLGGID "); + SQL.Add("left join XLGGB on XLGGB_XLGGID = XLXSBJXLGGTHB_XLGGIDCH and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); + SQL.Add("left join XLDTJMZHB on XLDTJMZHB_DTJMZHID=XLGGB_DTJMZHID "); + SQL.Add("left join "); + SQL.Add("( "); + SQL.Add(" select XLXSBJDYZZH_XLXHID as XLXHID,XLXSBJDYZZH_XLYSID as XLYSID, "); + SQL.Add(" XLXSBJDYZZH_YZID as YZID,XLXSBJDYZZH_YZZ as YZZ, "); + SQL.Add(" XLXSBJDYZZH_ZXJMXX as ZXJMXX,XLXSBJDYZZH_ZXJMSX as ZXJMSX, "); + SQL.Add(" XLXSBJDYZZH_BJSLXX,XLXSBJDYZZH_BJSLSX "); + SQL.Add(" from XLXSBJDYZZH "); + SQL.Add("where XLXSBJDYZZH_JGBID=:pJGBID "); + SQL.Add(" and XLXSBJDYZZH_YZID=:pYZID"); + SQL.Add(" and isnull(XLXSBJDYZZH_DYDJID,' ') = ' ' and isnull(XLXSBJDYZZH_XLYSID,' ') <> ' ' "); + SQL.Add(" ) a on a.XLXHID = XLXSBJDMX_XLXHID and a.XLYSID = XLXSBJDMX_XLYSID "); + SQL.Add(" and a.ZXJMXX<=isnull(XLDTJMZHB_DTJM1,0) and ((a.ZXJMSX<>0 and a.ZXJMSX>=isnull(XLDTJMZHB_DTJM1,0)) or a.ZXJMSX=0) "); + if (sBJU003JSDW.Equals("M")) + { + SQL.Add(" and a.XLXSBJDYZZH_BJSLXX<=(case XLXSBJDMX_JLDW when 'Km' then 1000*XLXSBJDMX_BJSL when '千米' then 1000*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end) "); + SQL.Add(" and ((a.XLXSBJDYZZH_BJSLSX<>0 and a.XLXSBJDYZZH_BJSLSX>(case XLXSBJDMX_JLDW when 'Km' then 1000*XLXSBJDMX_BJSL when '千米' then 1000*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end)) or a.XLXSBJDYZZH_BJSLSX=0) "); + } + else if (sBJU003JSDW.Equals("Km")) + { + SQL.Add(" and a.XLXSBJDYZZH_BJSLXX<=(case XLXSBJDMX_JLDW when 'M' then 0.001*XLXSBJDMX_BJSL when '米' then 0.001*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*0.001*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end) "); + SQL.Add(" and ((a.XLXSBJDYZZH_BJSLSX<>0 and a.XLXSBJDYZZH_BJSLSX>(case XLXSBJDMX_JLDW when 'M' then 0.001*XLXSBJDMX_BJSL when '米' then 0.001*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*0.001*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end)) or a.XLXSBJDYZZH_BJSLSX=0) "); + } + SQL.Add("where XLXSBJDMX_BJDID=:pBJDID and isnull(YZID,' ')<>' ' "); + SQL.Add(" and (XLXSBJDMX_JLDW in ('Km','M','千米','米') "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" or XLXSBJDMX_JLDW='{0}'", sKey)); + } + SQL.Add(" ) "); + if (!sBJDXHList.Equals("")) + { + SQL.Add("and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDMX_XH > :minBJDXH"); + } + if (VnewID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pVID and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "); + SQL.ParamByName("pVID").Value = VnewID; + } + if (bYBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + if (bWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y'"); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + SQL.Add(" ) sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSBJDYZZ0_BJDID=:pBJDID and XLXSBJDYZZ0_XH=XH "); + if (!sBJDXHList.Equals("")) + { + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDYZZ0_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDYZZ0_XH > :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSBJDYZZ0_YZZ{0}=(case when sor.XLXSBJDMX_BJSL = 0 then 0 else RoundFix(YZZ{0}/sor.XLXSBJDMX_BJSL,6) end)", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + sErrorNum = "ErrorH"; + SQL.Clear(); + SQL.Add(" merge into XLXSBJDYZZ0 tar "); + SQL.Add(" using ( "); + SQL.Add("select XLXSBJDMX_BJDID as BJDID,XLXSBJDMX_XH as XH,XLXSBJDMX_BJSL "); + SQL.Add(string.Format(",isnull(YZZ,0) as YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.Add(" from XLXSBJDMX "); + SQL.Add("left join XLXHB on XLXHB_XLXHID=XLXSBJDMX_XLXHID "); + SQL.Add("left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSBJDMX_XLGGID "); + SQL.Add("left join XLGGB on XLGGB_XLGGID = XLXSBJXLGGTHB_XLGGIDCH and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); + SQL.Add("left join XLDTJMZHB on XLDTJMZHB_DTJMZHID=XLGGB_DTJMZHID "); + SQL.Add("left join "); + SQL.Add("( "); + SQL.Add(" select XLXSBJDYZZH_XLXHID as XLXHID,XLXSBJDYZZH_DYDJID as DYDJID,XLXSBJDYZZH_XLYSID as XLYSID, "); + SQL.Add(" XLXSBJDYZZH_YZID as YZID,XLXSBJDYZZH_YZZ as YZZ, "); + SQL.Add(" XLXSBJDYZZH_ZXJMXX as ZXJMXX,XLXSBJDYZZH_ZXJMSX as ZXJMSX, "); + SQL.Add(" XLXSBJDYZZH_BJSLXX,XLXSBJDYZZH_BJSLSX "); + SQL.Add(" from XLXSBJDYZZH "); + SQL.Add("where XLXSBJDYZZH_JGBID=:pJGBID "); + SQL.Add(" and XLXSBJDYZZH_YZID=:pYZID"); + SQL.Add(" and isnull(XLXSBJDYZZH_DYDJID,' ') <> ' ' and isnull(XLXSBJDYZZH_XLYSID,' ') <> ' ' "); + SQL.Add(" ) a on a.XLXHID = XLXSBJDMX_XLXHID and a.DYDJID = XLXSBJDMX_DYDJID and a.XLYSID = XLXSBJDMX_XLYSID "); + SQL.Add(" and a.ZXJMXX<=isnull(XLDTJMZHB_DTJM1,0) and ((a.ZXJMSX<>0 and a.ZXJMSX>=isnull(XLDTJMZHB_DTJM1,0)) or a.ZXJMSX=0) "); + if (sBJU003JSDW.Equals("M")) + { + SQL.Add(" and a.XLXSBJDYZZH_BJSLXX<=(case XLXSBJDMX_JLDW when 'Km' then 1000*XLXSBJDMX_BJSL when '千米' then 1000*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end) "); + SQL.Add(" and ((a.XLXSBJDYZZH_BJSLSX<>0 and a.XLXSBJDYZZH_BJSLSX>(case XLXSBJDMX_JLDW when 'Km' then 1000*XLXSBJDMX_BJSL when '千米' then 1000*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end)) or a.XLXSBJDYZZH_BJSLSX=0) "); + } + else if (sBJU003JSDW.Equals("Km")) + { + SQL.Add(" and a.XLXSBJDYZZH_BJSLXX<=(case XLXSBJDMX_JLDW when 'M' then 0.001*XLXSBJDMX_BJSL when '米' then 0.001*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*0.001*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end) "); + SQL.Add(" and ((a.XLXSBJDYZZH_BJSLSX<>0 and a.XLXSBJDYZZH_BJSLSX>(case XLXSBJDMX_JLDW when 'M' then 0.001*XLXSBJDMX_BJSL when '米' then 0.001*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*0.001*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end)) or a.XLXSBJDYZZH_BJSLSX=0) "); + } + SQL.Add("where XLXSBJDMX_BJDID=:pBJDID and isnull(YZID,' ')<>' ' "); + SQL.Add(" and (XLXSBJDMX_JLDW in ('Km','M','千米','米') "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" or XLXSBJDMX_JLDW='{0}'", sKey)); + } + SQL.Add(" ) "); + if (!sBJDXHList.Equals("")) + { + SQL.Add("and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDMX_XH > :minBJDXH"); + } + if (VnewID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pVID and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "); + SQL.ParamByName("pVID").Value = VnewID; + } + if (bYBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + if (bWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y'"); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + SQL.Add(" ) sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSBJDYZZ0_BJDID=:pBJDID and XLXSBJDYZZ0_XH=XH "); + if (!sBJDXHList.Equals("")) + { + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDYZZ0_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDYZZ0_XH > :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSBJDYZZ0_YZZ{0}=(case when sor.XLXSBJDMX_BJSL = 0 then 0 else RoundFix(YZZ{0}/sor.XLXSBJDMX_BJSL,6) end)", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + sErrorNum = "ErrorH"; + } + } + } + + sErrorNum = "Error4"; + //自动插入TJYS=4的调价因子值 + if (dicTJYZList.ContainsKey("sTJYSList4")) + { + sTJYZ = dicTJYZList["sTJYSList4"].Trim().Split(new Char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); + for (int i = 0; i < sTJYZ.Length; i++) + { + if (!sTJYZ[i].Trim().Equals("")) + { + if (GetYZXXByYZID(sTJYZ[i].Trim()).XLXSTZYZ_JJFS == "JJ") + sJJYZIDList += sTJYZ[i].Trim() + ","; + /* + merge into 目标表 a + using 源表 b + on(a.条件字段1=b.条件字段1 and a.条件字段2=b.条件字段2 ……) + when matched then update set a.更新字段=b.字段 + when not matched then insert into a(字段1,字段2……)values(值1,值2……) + */ + string sJGBID = string.Empty; + if (dicYZXX.ContainsKey(sTJYZ[i].Trim())) + sJGBID = dicYZXX[sTJYZ[i].Trim()]; + SQL.Clear(); + SQL.Add(" merge into XLXSBJDYZZ0 tar "); + SQL.Add(" using ( "); + SQL.Add("select XLXSBJDMX_BJDID as BJDID,XLXSBJDMX_XH as XH "); + SQL.Add(string.Format(",isnull(YZZ,0) as YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.Add(" from XLXSBJDMX "); + SQL.Add("left join "); + SQL.Add("( "); + SQL.Add(" select XLXSBJDYZZ4_YZID as YZID,XLXSBJDYZZ4_YZZ as YZZ, "); + SQL.Add(" XLXSBJDYZZ4_XLXHID as XLXHID "); + SQL.Add(" from XLXSBJDYZZ4 "); + SQL.Add("where XLXSBJDYZZ4_JGBID=:pJGBID "); + SQL.Add(" and XLXSBJDYZZ4_YZID=:pYZID"); + SQL.Add(" ) a on "); + SQL.Add(" a.XLXHID = isnull(XLXSBJDMX_XLXHID,' ') "); + SQL.Add("where XLXSBJDMX_BJDID=:pBJDID and isnull(YZID,' ')<>' ' "); + //SQL.Add(" and (XLXSBJDMX_JLDW in ('Km','M','千米','米') "); + //foreach (string sKey in dicLenJLDWTD.Keys) + //{ + // SQL.Add(string.Format(" or XLXSBJDMX_JLDW='{0}'", sKey)); + //} + //SQL.Add(" ) "); + if (!sBJDXHList.Equals("")) + { + SQL.Add("and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDMX_XH > :minBJDXH"); + } + if (VnewID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pVID and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "); + SQL.ParamByName("pVID").Value = VnewID; + } + if (bYBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + if (bWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y'"); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + SQL.Add(" ) sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSBJDYZZ0_BJDID=:pBJDID and XLXSBJDYZZ0_XH=XH "); + if (!sBJDXHList.Equals("")) + { + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDYZZ0_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDYZZ0_XH > :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSBJDYZZ0_YZZ{0}=YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + } + } + } + + sErrorNum = "Error5"; + //自动插入TJYS=5的调价因子值 + if (dicTJYZList.ContainsKey("sTJYSList5")) + { + sTJYZ = dicTJYZList["sTJYSList5"].Trim().Split(new Char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); + for (int i = 0; i < sTJYZ.Length; i++) + { + if (!sTJYZ[i].Trim().Equals("")) + { + if (GetYZXXByYZID(sTJYZ[i].Trim()).XLXSTZYZ_JJFS == "JJ") + sJJYZIDList += sTJYZ[i].Trim() + ","; + /* + merge into 目标表 a + using 源表 b + on(a.条件字段1=b.条件字段1 and a.条件字段2=b.条件字段2 ……) + when matched then update set a.更新字段=b.字段 + when not matched then insert into a(字段1,字段2……)values(值1,值2……) + */ + string sJGBID = string.Empty; + if (dicYZXX.ContainsKey(sTJYZ[i].Trim())) + sJGBID = dicYZXX[sTJYZ[i].Trim()]; + SQL.Clear(); + SQL.Add(" merge into XLXSBJDYZZ0 tar "); + SQL.Add(" using ( "); + SQL.Add("select XLXSBJDMX_BJDID as BJDID,XLXSBJDMX_XH as XH "); + SQL.Add(string.Format(",isnull(YZZ,0) as YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.Add(" from XLXSBJDMX "); + SQL.Add("left join XLXHB on XLXHB_XLXHID=XLXSBJDMX_XLXHID "); + SQL.Add("left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSBJDMX_XLGGID "); + SQL.Add("left join XLGGB on XLGGB_XLGGID = XLXSBJXLGGTHB_XLGGIDCH and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); + SQL.Add("left join XLDTJMZHB on XLDTJMZHB_DTJMZHID=XLGGB_DTJMZHID "); + SQL.Add("left join XLXSBJD on XLXSBJD_BJDID = XLXSBJDMX_BJDID "); + SQL.Add("left join "); + SQL.Add("( "); + SQL.Add(" select XLXSBJDYZZ5_XSQYID as XSQYID, XLXSBJDYZZ5_XLXHID as XLXHID, "); + SQL.Add(" XLXSBJDYZZ5_XLBZID as XLBZID, XLXSBJDYZZ5_DYDJID as DYDJID, "); + SQL.Add(" XLXSBJDYZZ5_YZID as YZID,XLXSBJDYZZ5_YZZ as YZZ, "); + SQL.Add(" XLXSBJDYZZ5_ZXJMSX as ZXJMSX, XLXSBJDYZZ5_ZXJMXX as ZXJMXX "); + SQL.Add(" from XLXSBJDYZZ5 "); + SQL.Add("where XLXSBJDYZZ5_JGBID=:pJGBID "); + SQL.Add(" and XLXSBJDYZZ5_YZID=:pYZID"); + SQL.Add(" and XLXSBJDYZZ5_XSQYID = ' ' and XLXSBJDYZZ5_XLBZID = ' ' "); + SQL.Add(" ) a on "); + SQL.Add(" a.XLXHID=XLXSBJDMX_XLXHID and a.DYDJID=isnull(XLXSBJDMX_DYDJID, ' ') "); + SQL.Add(" and a.ZXJMXX<=isnull(XLDTJMZHB_DTJM1,0) and ((a.ZXJMSX<>0 and a.ZXJMSX>=isnull(XLDTJMZHB_DTJM1,0)) or a.ZXJMSX=0) "); + SQL.Add("where XLXSBJDMX_BJDID=:pBJDID and isnull(YZID,' ')<>' ' "); + //SQL.Add(" and (XLXSBJDMX_JLDW in ('Km','M','千米','米') "); + //foreach (string sKey in dicLenJLDWTD.Keys) + //{ + // SQL.Add(string.Format(" or XLXSBJDMX_JLDW='{0}'", sKey)); + //} + //SQL.Add(" ) "); + if (!sBJDXHList.Equals("")) + { + SQL.Add("and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDMX_XH > :minBJDXH"); + } + if (VnewID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pVID and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "); + SQL.ParamByName("pVID").Value = VnewID; + } + if (bYBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + if (bWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y'"); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + SQL.Add(" ) sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSBJDYZZ0_BJDID=:pBJDID and XLXSBJDYZZ0_XH=XH "); + if (!sBJDXHList.Equals("")) + { + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDYZZ0_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDYZZ0_XH > :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSBJDYZZ0_YZZ{0}=YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + sErrorNum = "Error5-1"; + SQL.Clear(); + SQL.Add(" merge into XLXSBJDYZZ0 tar "); + SQL.Add(" using ( "); + SQL.Add("select XLXSBJDMX_BJDID as BJDID,XLXSBJDMX_XH as XH "); + SQL.Add(string.Format(",isnull(YZZ,0) as YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.Add(" from XLXSBJDMX "); + SQL.Add("left join XLXHB on XLXHB_XLXHID=XLXSBJDMX_XLXHID "); + SQL.Add("left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSBJDMX_XLGGID "); + SQL.Add("left join XLGGB on XLGGB_XLGGID = XLXSBJXLGGTHB_XLGGIDCH and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); + SQL.Add("left join XLDTJMZHB on XLDTJMZHB_DTJMZHID=XLGGB_DTJMZHID "); + SQL.Add("left join XLXSBJD on XLXSBJD_BJDID = XLXSBJDMX_BJDID "); + SQL.Add("left join "); + SQL.Add("( "); + SQL.Add(" select XLXSBJDYZZ5_XSQYID as XSQYID, XLXSBJDYZZ5_XLXHID as XLXHID, "); + SQL.Add(" XLXSBJDYZZ5_XLBZID as XLBZID, XLXSBJDYZZ5_DYDJID as DYDJID, "); + SQL.Add(" XLXSBJDYZZ5_YZID as YZID,XLXSBJDYZZ5_YZZ as YZZ, "); + SQL.Add(" XLXSBJDYZZ5_ZXJMSX as ZXJMSX, XLXSBJDYZZ5_ZXJMXX as ZXJMXX "); + SQL.Add(" from XLXSBJDYZZ5 "); + SQL.Add("where XLXSBJDYZZ5_JGBID=:pJGBID "); + SQL.Add(" and XLXSBJDYZZ5_YZID=:pYZID"); + SQL.Add(" and XLXSBJDYZZ5_XSQYID = ' ' and XLXSBJDYZZ5_XLBZID <> ' ' "); + SQL.Add(" ) a on a.XLBZID = isnull(XLXSBJDMX_XLBZID, ' ') "); + SQL.Add(" and a.XLXHID=XLXSBJDMX_XLXHID and a.DYDJID=isnull(XLXSBJDMX_DYDJID, ' ') "); + SQL.Add(" and a.ZXJMXX<=isnull(XLDTJMZHB_DTJM1,0) and ((a.ZXJMSX<>0 and a.ZXJMSX>=isnull(XLDTJMZHB_DTJM1,0)) or a.ZXJMSX=0) "); + SQL.Add("where XLXSBJDMX_BJDID=:pBJDID and isnull(YZID,' ')<>' ' "); + //SQL.Add(" and (XLXSBJDMX_JLDW in ('Km','M','千米','米') "); + //foreach (string sKey in dicLenJLDWTD.Keys) + //{ + // SQL.Add(string.Format(" or XLXSBJDMX_JLDW='{0}'", sKey)); + //} + //SQL.Add(" ) "); + if (!sBJDXHList.Equals("")) + { + SQL.Add("and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDMX_XH > :minBJDXH"); + } + if (VnewID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pVID and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "); + SQL.ParamByName("pVID").Value = VnewID; + } + if (bYBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + if (bWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y'"); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + SQL.Add(" ) sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSBJDYZZ0_BJDID=:pBJDID and XLXSBJDYZZ0_XH=XH "); + if (!sBJDXHList.Equals("")) + { + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDYZZ0_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDYZZ0_XH > :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSBJDYZZ0_YZZ{0}=YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + sErrorNum = "Error5-2"; + SQL.Clear(); + SQL.Add(" merge into XLXSBJDYZZ0 tar "); + SQL.Add(" using ( "); + SQL.Add("select XLXSBJDMX_BJDID as BJDID,XLXSBJDMX_XH as XH "); + SQL.Add(string.Format(",isnull(YZZ,0) as YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.Add(" from XLXSBJDMX "); + SQL.Add("left join XLXHB on XLXHB_XLXHID=XLXSBJDMX_XLXHID "); + SQL.Add("left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSBJDMX_XLGGID "); + SQL.Add("left join XLGGB on XLGGB_XLGGID = XLXSBJXLGGTHB_XLGGIDCH and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); + SQL.Add("left join XLDTJMZHB on XLDTJMZHB_DTJMZHID=XLGGB_DTJMZHID "); + SQL.Add("left join XLXSBJD on XLXSBJD_BJDID = XLXSBJDMX_BJDID "); + SQL.Add("left join "); + SQL.Add("( "); + SQL.Add(" select XLXSBJDYZZ5_XSQYID as XSQYID, XLXSBJDYZZ5_XLXHID as XLXHID, "); + SQL.Add(" XLXSBJDYZZ5_XLBZID as XLBZID, XLXSBJDYZZ5_DYDJID as DYDJID, "); + SQL.Add(" XLXSBJDYZZ5_YZID as YZID,XLXSBJDYZZ5_YZZ as YZZ, "); + SQL.Add(" XLXSBJDYZZ5_ZXJMSX as ZXJMSX, XLXSBJDYZZ5_ZXJMXX as ZXJMXX "); + SQL.Add(" from XLXSBJDYZZ5 "); + SQL.Add("where XLXSBJDYZZ5_JGBID=:pJGBID "); + SQL.Add(" and XLXSBJDYZZ5_YZID=:pYZID"); + SQL.Add(" and XLXSBJDYZZ5_XSQYID <> ' ' and XLXSBJDYZZ5_XLBZID = ' ' "); + SQL.Add(" ) a on a.XSQYID = isnull(XLXSBJD_XSQYID, ' ') "); + SQL.Add(" and a.XLXHID=XLXSBJDMX_XLXHID and a.DYDJID=isnull(XLXSBJDMX_DYDJID, ' ') "); + SQL.Add(" and a.ZXJMXX<=isnull(XLDTJMZHB_DTJM1,0) and ((a.ZXJMSX<>0 and a.ZXJMSX>=isnull(XLDTJMZHB_DTJM1,0)) or a.ZXJMSX=0) "); + SQL.Add("where XLXSBJDMX_BJDID=:pBJDID and isnull(YZID,' ')<>' ' "); + //SQL.Add(" and (XLXSBJDMX_JLDW in ('Km','M','千米','米') "); + //foreach (string sKey in dicLenJLDWTD.Keys) + //{ + // SQL.Add(string.Format(" or XLXSBJDMX_JLDW='{0}'", sKey)); + //} + //SQL.Add(" ) "); + if (!sBJDXHList.Equals("")) + { + SQL.Add("and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDMX_XH > :minBJDXH"); + } + if (VnewID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pVID and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "); + SQL.ParamByName("pVID").Value = VnewID; + } + if (bYBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + if (bWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y'"); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + SQL.Add(" ) sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSBJDYZZ0_BJDID=:pBJDID and XLXSBJDYZZ0_XH=XH "); + if (!sBJDXHList.Equals("")) + { + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDYZZ0_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDYZZ0_XH > :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSBJDYZZ0_YZZ{0}=YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + sErrorNum = "Error5-3"; + SQL.Clear(); + SQL.Add(" merge into XLXSBJDYZZ0 tar "); + SQL.Add(" using ( "); + SQL.Add("select XLXSBJDMX_BJDID as BJDID,XLXSBJDMX_XH as XH "); + SQL.Add(string.Format(",isnull(YZZ,0) as YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.Add(" from XLXSBJDMX "); + SQL.Add("left join XLXHB on XLXHB_XLXHID=XLXSBJDMX_XLXHID "); + SQL.Add("left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSBJDMX_XLGGID "); + SQL.Add("left join XLGGB on XLGGB_XLGGID = XLXSBJXLGGTHB_XLGGIDCH and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); + SQL.Add("left join XLDTJMZHB on XLDTJMZHB_DTJMZHID=XLGGB_DTJMZHID "); + SQL.Add("left join XLXSBJD on XLXSBJD_BJDID = XLXSBJDMX_BJDID "); + SQL.Add("left join "); + SQL.Add("( "); + SQL.Add(" select XLXSBJDYZZ5_XSQYID as XSQYID, XLXSBJDYZZ5_XLXHID as XLXHID, "); + SQL.Add(" XLXSBJDYZZ5_XLBZID as XLBZID, XLXSBJDYZZ5_DYDJID as DYDJID, "); + SQL.Add(" XLXSBJDYZZ5_YZID as YZID,XLXSBJDYZZ5_YZZ as YZZ, "); + SQL.Add(" XLXSBJDYZZ5_ZXJMSX as ZXJMSX, XLXSBJDYZZ5_ZXJMXX as ZXJMXX "); + SQL.Add(" from XLXSBJDYZZ5 "); + SQL.Add("where XLXSBJDYZZ5_JGBID=:pJGBID "); + SQL.Add(" and XLXSBJDYZZ5_YZID=:pYZID"); + SQL.Add(" and XLXSBJDYZZ5_XSQYID <> ' ' and XLXSBJDYZZ5_XLBZID <> ' ' "); + SQL.Add(" ) a on a.XSQYID = isnull(XLXSBJD_XSQYID, ' ') and a.XLBZID = isnull(XLXSBJDMX_XLBZID, ' ') "); + SQL.Add(" and a.XLXHID=XLXSBJDMX_XLXHID and a.DYDJID=isnull(XLXSBJDMX_DYDJID, ' ') "); + SQL.Add(" and a.ZXJMXX<=isnull(XLDTJMZHB_DTJM1,0) and ((a.ZXJMSX<>0 and a.ZXJMSX>=isnull(XLDTJMZHB_DTJM1,0)) or a.ZXJMSX=0) "); + SQL.Add("where XLXSBJDMX_BJDID=:pBJDID and isnull(YZID,' ')<>' ' "); + //SQL.Add(" and (XLXSBJDMX_JLDW in ('Km','M','千米','米') "); + //foreach (string sKey in dicLenJLDWTD.Keys) + //{ + // SQL.Add(string.Format(" or XLXSBJDMX_JLDW='{0}'", sKey)); + //} + //SQL.Add(" ) "); + if (!sBJDXHList.Equals("")) + { + SQL.Add("and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDMX_XH > :minBJDXH"); + } + if (VnewID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pVID and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "); + SQL.ParamByName("pVID").Value = VnewID; + } + if (bYBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + if (bWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y'"); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + SQL.Add(" ) sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSBJDYZZ0_BJDID=:pBJDID and XLXSBJDYZZ0_XH=XH "); + if (!sBJDXHList.Equals("")) + { + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDYZZ0_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDYZZ0_XH > :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSBJDYZZ0_YZZ{0}=YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + sErrorNum = "Error5-4"; + } + } + } + + sErrorNum = "Error6"; + //自动插入TJYS=6的调价因子值 + if (dicTJYZList.ContainsKey("sTJYSList6")) + { + sTJYZ = dicTJYZList["sTJYSList6"].Trim().Split(new Char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); + for (int i = 0; i < sTJYZ.Length; i++) + { + if (!sTJYZ[i].Trim().Equals("")) + { + /* + merge into 目标表 a + using 源表 b + on(a.条件字段1=b.条件字段1 and a.条件字段2=b.条件字段2 ……) + when matched then update set a.更新字段=b.字段 + when not matched then insert into a(字段1,字段2……)values(值1,值2……) + */ + string sJGBID = string.Empty; + if (dicYZXX.ContainsKey(sTJYZ[i].Trim())) + sJGBID = dicYZXX[sTJYZ[i].Trim()]; + SQL.Clear(); + SQL.Add(" merge into XLXSBJDYZZ0 tar "); + SQL.Add(" using ( "); + SQL.Add("select XLXSBJDMX_BJDID as BJDID,XLXSBJDMX_XH as XH, "); + SQL.Add(" XLXSBJDMX_BJSL as BJSL "); + SQL.Add(string.Format(",isnull(YZZ,0) as YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.Add(" from XLXSBJDMX "); + SQL.Add("left join "); + SQL.Add("( "); + SQL.Add(" select XLXSBJDYZZ6_YZID as YZID,XLXSBJDYZZ6_YZZ as YZZ, "); + SQL.Add(" XLXSBJDYZZ6_BJSLXX,XLXSBJDYZZ6_BJSLSX "); + SQL.Add(" from XLXSBJDYZZ6 "); + SQL.Add("where XLXSBJDYZZ6_JGBID=:pJGBID "); + SQL.Add(" and XLXSBJDYZZ6_YZID=:pYZID"); + SQL.Add(" ) a on "); + if (sBJU003JSDW.Equals("M")) + { + SQL.Add(" a.XLXSBJDYZZ6_BJSLXX<=(case XLXSBJDMX_JLDW when 'Km' then 1000*XLXSBJDMX_BJSL when '千米' then 1000*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end) "); + SQL.Add(" and ((a.XLXSBJDYZZ6_BJSLSX<>0 and a.XLXSBJDYZZ6_BJSLSX>(case XLXSBJDMX_JLDW when 'Km' then 1000*XLXSBJDMX_BJSL when '千米' then 1000*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end)) or a.XLXSBJDYZZ6_BJSLSX=0) "); + } + else if (sBJU003JSDW.Equals("Km")) + { + SQL.Add(" a.XLXSBJDYZZ6_BJSLXX<=(case XLXSBJDMX_JLDW when 'M' then 0.001*XLXSBJDMX_BJSL when '米' then 0.001*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*0.001*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end) "); + SQL.Add(" and ((a.XLXSBJDYZZ6_BJSLSX<>0 and a.XLXSBJDYZZ6_BJSLSX>(case XLXSBJDMX_JLDW when 'M' then 0.001*XLXSBJDMX_BJSL when '米' then 0.001*XLXSBJDMX_BJSL "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when '{0}' then {1}*0.001*XLXSBJDMX_BJSL ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else XLXSBJDMX_BJSL end)) or a.XLXSBJDYZZ6_BJSLSX=0) "); + } + SQL.Add("where XLXSBJDMX_BJDID=:pBJDID and isnull(YZID,' ')<>' ' "); + SQL.Add(" and (XLXSBJDMX_JLDW in ('Km','M','千米','米') "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" or XLXSBJDMX_JLDW='{0}'", sKey)); + } + SQL.Add(" ) "); + if (!sBJDXHList.Equals("")) + { + SQL.Add("and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDMX_XH > :minBJDXH"); + } + if (VnewID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pVID and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "); + SQL.ParamByName("pVID").Value = VnewID; + } + if (bYBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + if (bWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y'"); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + SQL.Add(" ) sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSBJDYZZ0_BJDID=:pBJDID and XLXSBJDYZZ0_XH=XH "); + if (!sBJDXHList.Equals("")) + { + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDYZZ0_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDYZZ0_XH > :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSBJDYZZ0_YZZ{0}=case when sor.BJSL = 0 then 0 else YZZ{0}*100.0/sor.BJSL end", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + } + } + } + + sErrorNum = "Error7"; + //自动插入TJYS=7的调价因子值 + if (dicTJYZList.ContainsKey("sTJYSList7")) + { + sTJYZ = dicTJYZList["sTJYSList7"].Trim().Split(new Char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); + for (int i = 0; i < sTJYZ.Length; i++) + { + if (!sTJYZ[i].Trim().Equals("")) + { + if (GetYZXXByYZID(sTJYZ[i].Trim()).XLXSTZYZ_JJFS == "JJ") + sJJYZIDList += sTJYZ[i].Trim() + ","; + /* + merge into 目标表 a + using 源表 b + on(a.条件字段1=b.条件字段1 and a.条件字段2=b.条件字段2 ……) + when matched then update set a.更新字段=b.字段 + when not matched then insert into a(字段1,字段2……)values(值1,值2……) + */ + string sJGBID = string.Empty; + if (dicYZXX.ContainsKey(sTJYZ[i].Trim())) + sJGBID = dicYZXX[sTJYZ[i].Trim()]; + SQL.Clear(); + SQL.Add(" merge into XLXSBJDYZZ0 tar "); + SQL.Add(" using ( "); + SQL.Add("select XLXSBJDMX_BJDID as BJDID,XLXSBJDMX_XH as XH "); + SQL.Add(string.Format(",isnull(YZZ,0) as YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.Add(" from XLXSBJDMX "); + SQL.Add("left join XLXHB on XLXHB_XLXHID=XLXSBJDMX_XLXHID "); + SQL.Add("left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSBJDMX_XLGGID "); + SQL.Add("left join XLGGB on XLGGB_XLGGID = XLXSBJXLGGTHB_XLGGIDCH and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); + SQL.Add("left join XLDTJMZHB on XLDTJMZHB_DTJMZHID=XLGGB_DTJMZHID "); + SQL.Add("left join XLXSBJD on XLXSBJD_BJDID = XLXSBJDMX_BJDID "); + SQL.Add("left join "); + SQL.Add("( "); + SQL.Add(" select XLXSBJDYZZ7_XLXHID as XLXHID, XLXSBJDYZZ7_DYDJID as DYDJID, "); + SQL.Add(" XLXSBJDYZZ7_XXJGID as XXJGID, "); + SQL.Add(" XLXSBJDYZZ7_YZID as YZID,XLXSBJDYZZ7_YZZ as YZZ, "); + SQL.Add(" XLXSBJDYZZ7_ZXJMSX as ZXJMSX, XLXSBJDYZZ7_ZXJMXX as ZXJMXX "); + SQL.Add(" from XLXSBJDYZZ7 "); + SQL.Add("where XLXSBJDYZZ7_JGBID=:pJGBID "); + SQL.Add(" and XLXSBJDYZZ7_YZID=:pYZID"); + SQL.Add(" and XLXSBJDYZZ7_DYDJID = ' ' and XLXSBJDYZZ7_XXJGID = ' ' "); + SQL.Add(" ) a on "); + SQL.Add(" a.XLXHID=XLXSBJDMX_XLXHID "); + SQL.Add(" and a.ZXJMXX<=isnull(XLDTJMZHB_DTJM1,0) and ((a.ZXJMSX<>0 and a.ZXJMSX>=isnull(XLDTJMZHB_DTJM1,0)) or a.ZXJMSX=0) "); + SQL.Add("where XLXSBJDMX_BJDID=:pBJDID and isnull(YZID,' ')<>' ' "); + //SQL.Add(" and (XLXSBJDMX_JLDW in ('Km','M','千米','米') "); + //foreach (string sKey in dicLenJLDWTD.Keys) + //{ + // SQL.Add(string.Format(" or XLXSBJDMX_JLDW='{0}'", sKey)); + //} + //SQL.Add(" ) "); + if (!sBJDXHList.Equals("")) + { + SQL.Add("and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDMX_XH > :minBJDXH"); + } + if (VnewID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pVID and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "); + SQL.ParamByName("pVID").Value = VnewID; + } + if (bYBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + if (bWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y'"); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + SQL.Add(" ) sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSBJDYZZ0_BJDID=:pBJDID and XLXSBJDYZZ0_XH=XH "); + if (!sBJDXHList.Equals("")) + { + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDYZZ0_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDYZZ0_XH > :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSBJDYZZ0_YZZ{0}=YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + sErrorNum = "Error7-1"; + SQL.Clear(); + SQL.Add(" merge into XLXSBJDYZZ0 tar "); + SQL.Add(" using ( "); + SQL.Add("select XLXSBJDMX_BJDID as BJDID,XLXSBJDMX_XH as XH "); + SQL.Add(string.Format(",isnull(YZZ,0) as YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.Add(" from XLXSBJDMX "); + SQL.Add(" left join XLXHB on XLXHB_XLXHID=XLXSBJDMX_XLXHID "); + SQL.Add(" left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSBJDMX_XLGGID "); + SQL.Add("left join XLGGB on XLGGB_XLGGID = XLXSBJXLGGTHB_XLGGIDCH and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); + SQL.Add("left join XLDTJMZHB on XLDTJMZHB_DTJMZHID=XLGGB_DTJMZHID "); + SQL.Add("left join XLXSBJD on XLXSBJD_BJDID = XLXSBJDMX_BJDID "); + SQL.Add("left join "); + SQL.Add("( "); + SQL.Add(" select XLXSBJDYZZ7_XLXHID as XLXHID, XLXSBJDYZZ7_DYDJID as DYDJID, "); + SQL.Add(" XLXSBJDYZZ7_XXJGID as XXJGID, "); + SQL.Add(" XLXSBJDYZZ7_YZID as YZID,XLXSBJDYZZ7_YZZ as YZZ, "); + SQL.Add(" XLXSBJDYZZ7_ZXJMSX as ZXJMSX, XLXSBJDYZZ7_ZXJMXX as ZXJMXX "); + SQL.Add(" from XLXSBJDYZZ7 "); + SQL.Add("where XLXSBJDYZZ7_JGBID=:pJGBID "); + SQL.Add(" and XLXSBJDYZZ7_YZID=:pYZID"); + SQL.Add(" and XLXSBJDYZZ7_DYDJID = ' ' and XLXSBJDYZZ7_XXJGID <> ' ' "); + SQL.Add(" ) a on a.XXJGID = XLGGB_XXJGID"); + SQL.Add(" and a.XLXHID=XLXSBJDMX_XLXHID "); + SQL.Add(" and a.ZXJMXX<=isnull(XLDTJMZHB_DTJM1,0) and ((a.ZXJMSX<>0 and a.ZXJMSX>=isnull(XLDTJMZHB_DTJM1,0)) or a.ZXJMSX=0) "); + SQL.Add("where XLXSBJDMX_BJDID=:pBJDID and isnull(YZID,' ')<>' ' "); + //SQL.Add(" and (XLXSBJDMX_JLDW in ('Km','M','千米','米') "); + //foreach (string sKey in dicLenJLDWTD.Keys) + //{ + // SQL.Add(string.Format(" or XLXSBJDMX_JLDW='{0}'", sKey)); + //} + //SQL.Add(" ) "); + if (!sBJDXHList.Equals("")) + { + SQL.Add("and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDMX_XH > :minBJDXH"); + } + if (VnewID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pVID and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "); + SQL.ParamByName("pVID").Value = VnewID; + } + if (bYBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + if (bWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y'"); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + SQL.Add(" ) sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSBJDYZZ0_BJDID=:pBJDID and XLXSBJDYZZ0_XH=XH "); + if (!sBJDXHList.Equals("")) + { + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDYZZ0_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDYZZ0_XH > :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSBJDYZZ0_YZZ{0}=YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + sErrorNum = "Error7-2"; + SQL.Clear(); + SQL.Add(" merge into XLXSBJDYZZ0 tar "); + SQL.Add(" using ( "); + SQL.Add("select XLXSBJDMX_BJDID as BJDID,XLXSBJDMX_XH as XH "); + SQL.Add(string.Format(",isnull(YZZ,0) as YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.Add(" from XLXSBJDMX "); + SQL.Add("left join XLXHB on XLXHB_XLXHID=XLXSBJDMX_XLXHID "); + SQL.Add("left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSBJDMX_XLGGID "); + SQL.Add("left join XLGGB on XLGGB_XLGGID = XLXSBJXLGGTHB_XLGGIDCH and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); + SQL.Add("left join XLDTJMZHB on XLDTJMZHB_DTJMZHID=XLGGB_DTJMZHID "); + SQL.Add("left join XLXSBJD on XLXSBJD_BJDID = XLXSBJDMX_BJDID "); + SQL.Add("left join "); + SQL.Add("( "); + SQL.Add(" select XLXSBJDYZZ7_XLXHID as XLXHID, XLXSBJDYZZ7_DYDJID as DYDJID, "); + SQL.Add(" XLXSBJDYZZ7_XXJGID as XXJGID, "); + SQL.Add(" XLXSBJDYZZ7_YZID as YZID,XLXSBJDYZZ7_YZZ as YZZ, "); + SQL.Add(" XLXSBJDYZZ7_ZXJMSX as ZXJMSX, XLXSBJDYZZ7_ZXJMXX as ZXJMXX "); + SQL.Add(" from XLXSBJDYZZ7 "); + SQL.Add("where XLXSBJDYZZ7_JGBID=:pJGBID "); + SQL.Add(" and XLXSBJDYZZ7_YZID=:pYZID"); + SQL.Add(" and XLXSBJDYZZ7_DYDJID <> ' ' and XLXSBJDYZZ7_XXJGID = ' ' "); + SQL.Add(" ) a on a.DYDJID = isnull(XLXSBJDMX_DYDJID, ' ')"); + SQL.Add(" and a.XLXHID=XLXSBJDMX_XLXHID "); + SQL.Add(" and a.ZXJMXX<=isnull(XLDTJMZHB_DTJM1,0) and ((a.ZXJMSX<>0 and a.ZXJMSX>=isnull(XLDTJMZHB_DTJM1,0)) or a.ZXJMSX=0) "); + SQL.Add("where XLXSBJDMX_BJDID=:pBJDID and isnull(YZID,' ')<>' ' "); + //SQL.Add(" and (XLXSBJDMX_JLDW in ('Km','M','千米','米') "); + //foreach (string sKey in dicLenJLDWTD.Keys) + //{ + // SQL.Add(string.Format(" or XLXSBJDMX_JLDW='{0}'", sKey)); + //} + //SQL.Add(" ) "); + if (!sBJDXHList.Equals("")) + { + SQL.Add("and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDMX_XH > :minBJDXH"); + } + if (VnewID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pVID and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "); + SQL.ParamByName("pVID").Value = VnewID; + } + if (bYBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + if (bWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y'"); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + SQL.Add(" ) sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSBJDYZZ0_BJDID=:pBJDID and XLXSBJDYZZ0_XH=XH "); + if (!sBJDXHList.Equals("")) + { + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDYZZ0_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDYZZ0_XH > :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSBJDYZZ0_YZZ{0}=YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + sErrorNum = "Error7-3"; + SQL.Clear(); + SQL.Add(" merge into XLXSBJDYZZ0 tar "); + SQL.Add(" using ( "); + SQL.Add("select XLXSBJDMX_BJDID as BJDID,XLXSBJDMX_XH as XH "); + SQL.Add(string.Format(",isnull(YZZ,0) as YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.Add(" from XLXSBJDMX "); + SQL.Add("left join XLXHB on XLXHB_XLXHID=XLXSBJDMX_XLXHID "); + SQL.Add("left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSBJDMX_XLGGID "); + SQL.Add("left join XLGGB on XLGGB_XLGGID = XLXSBJXLGGTHB_XLGGIDCH and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); + SQL.Add("left join XLDTJMZHB on XLDTJMZHB_DTJMZHID=XLGGB_DTJMZHID "); + SQL.Add("left join XLXSBJD on XLXSBJD_BJDID = XLXSBJDMX_BJDID "); + SQL.Add("left join "); + SQL.Add("( "); + SQL.Add(" select XLXSBJDYZZ7_XLXHID as XLXHID, XLXSBJDYZZ7_DYDJID as DYDJID, "); + SQL.Add(" XLXSBJDYZZ7_XXJGID as XXJGID, "); + SQL.Add(" XLXSBJDYZZ7_YZID as YZID,XLXSBJDYZZ7_YZZ as YZZ, "); + SQL.Add(" XLXSBJDYZZ7_ZXJMSX as ZXJMSX, XLXSBJDYZZ7_ZXJMXX as ZXJMXX "); + SQL.Add(" from XLXSBJDYZZ7 "); + SQL.Add("where XLXSBJDYZZ7_JGBID=:pJGBID "); + SQL.Add(" and XLXSBJDYZZ7_YZID=:pYZID"); + SQL.Add(" and XLXSBJDYZZ7_DYDJID <> ' ' and XLXSBJDYZZ7_XXJGID <> ' ' "); + SQL.Add(" ) a on a.DYDJID = isnull(XLXSBJDMX_DYDJID, ' ') and a.XXJGID = XLGGB_XXJGID "); + SQL.Add(" and a.XLXHID=XLXSBJDMX_XLXHID "); + SQL.Add(" and a.ZXJMXX<=isnull(XLDTJMZHB_DTJM1,0) and ((a.ZXJMSX<>0 and a.ZXJMSX>=isnull(XLDTJMZHB_DTJM1,0)) or a.ZXJMSX=0) "); + SQL.Add("where XLXSBJDMX_BJDID=:pBJDID and isnull(YZID,' ')<>' ' "); + //SQL.Add(" and (XLXSBJDMX_JLDW in ('Km','M','千米','米') "); + //foreach (string sKey in dicLenJLDWTD.Keys) + //{ + // SQL.Add(string.Format(" or XLXSBJDMX_JLDW='{0}'", sKey)); + //} + //SQL.Add(" ) "); + if (!sBJDXHList.Equals("")) + { + SQL.Add("and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDMX_XH > :minBJDXH"); + } + if (VnewID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pVID and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "); + SQL.ParamByName("pVID").Value = VnewID; + } + if (bYBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + if (bWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y'"); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + SQL.Add(" ) sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSBJDYZZ0_BJDID=:pBJDID and XLXSBJDYZZ0_XH=XH "); + if (!sBJDXHList.Equals("")) + { + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDYZZ0_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDYZZ0_XH > :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSBJDYZZ0_YZZ{0}=YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + sErrorNum = "Error7-4"; + } + } + } + + sErrorNum = "Error8"; + //自动插入TJYS=8的调价因子值 + if (dicTJYZList.ContainsKey("sTJYSList8")) + { + sTJYZ = dicTJYZList["sTJYSList8"].Trim().Split(new Char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); + for (int i = 0; i < sTJYZ.Length; i++) + { + if (!sTJYZ[i].Trim().Equals("")) + { + if (GetYZXXByYZID(sTJYZ[i].Trim()).XLXSTZYZ_JJFS == "JJ") + sJJYZIDList += sTJYZ[i].Trim() + ","; + /* + merge into 目标表 a + using 源表 b + on(a.条件字段1=b.条件字段1 and a.条件字段2=b.条件字段2 ……) + when matched then update set a.更新字段=b.字段 + when not matched then insert into a(字段1,字段2……)values(值1,值2……) + */ + string sJGBID = string.Empty; + if (dicYZXX.ContainsKey(sTJYZ[i].Trim())) + sJGBID = dicYZXX[sTJYZ[i].Trim()]; + SQL.Clear(); + SQL.Add(" merge into XLXSBJDYZZ0 tar "); + SQL.Add(" using ( "); + SQL.Add("select XLXSBJDMX_BJDID as BJDID,XLXSBJDMX_XH as XH "); + SQL.Add(string.Format(",isnull(YZZ,0) as YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.Add(" from XLXSBJDMX "); + SQL.Add("left join XLXSBJD on XLXSBJD_BJDID=XLXSBJDMX_BJDID "); + SQL.Add("left join "); + SQL.Add("( "); + SQL.Add(" select XLXSBJDYZZ8_YZID as YZID,XLXSBJDYZZ8_YZZ as YZZ, "); + SQL.Add(" XLXSBJDYZZ8_FKQXNR as FKQXNR "); + SQL.Add(" from XLXSBJDYZZ8 "); + SQL.Add("where XLXSBJDYZZ8_JGBID=:pJGBID "); + SQL.Add(" and XLXSBJDYZZ8_YZID=:pYZID"); + SQL.Add(" ) a on "); + SQL.Add(" a.FKQXNR = isnull(XLXSBJD_FKQXNR,' ') "); + SQL.Add("where XLXSBJDMX_BJDID=:pBJDID and isnull(YZID,' ')<>' ' "); + //SQL.Add(" and (XLXSBJDMX_JLDW in ('Km','M','千米','米') "); + //foreach (string sKey in dicLenJLDWTD.Keys) + //{ + // SQL.Add(string.Format(" or XLXSBJDMX_JLDW='{0}'", sKey)); + //} + //SQL.Add(" ) "); + if (!sBJDXHList.Equals("")) + { + SQL.Add("and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDMX_XH > :minBJDXH"); + } + if (VnewID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pVID and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "); + SQL.ParamByName("pVID").Value = VnewID; + } + if (bYBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + if (bWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y'"); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + SQL.Add(" ) sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSBJDYZZ0_BJDID=:pBJDID and XLXSBJDYZZ0_XH=XH "); + if (!sBJDXHList.Equals("")) + { + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDYZZ0_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDYZZ0_XH > :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSBJDYZZ0_YZZ{0}=YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + } + } + } + + sErrorNum = "Error9"; + //自动插入TJYS=9的调价因子值 + if (dicTJYZList.ContainsKey("sTJYSList9")) + { + sTJYZ = dicTJYZList["sTJYSList9"].Trim().Split(new Char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); + for (int i = 0; i < sTJYZ.Length; i++) + { + if (!sTJYZ[i].Trim().Equals("")) + { + if (GetYZXXByYZID(sTJYZ[i].Trim()).XLXSTZYZ_JJFS == "JJ") + sJJYZIDList += sTJYZ[i].Trim() + ","; + /* + merge into 目标表 a + using 源表 b + on(a.条件字段1=b.条件字段1 and a.条件字段2=b.条件字段2 ……) + when matched then update set a.更新字段=b.字段 + when not matched then insert into a(字段1,字段2……)values(值1,值2……) + */ + string sJGBID = string.Empty; + if (dicYZXX.ContainsKey(sTJYZ[i].Trim())) + sJGBID = dicYZXX[sTJYZ[i].Trim()]; + SQL.Clear(); + SQL.Add(" merge into XLXSBJDYZZ0 tar "); + SQL.Add(" using ( "); + SQL.Add("select XLXSBJDMX_BJDID as BJDID,XLXSBJDMX_XH as XH "); + SQL.Add(string.Format(",isnull(YZZ,0) as YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.Add(" from XLXSBJDMX "); + SQL.Add(" left join XLXHB on XLXHB_XLXHID=XLXSBJDMX_XLXHID "); + SQL.Add(" left join XLDYDJB on XLDYDJB_DYDJID = XLXSBJDMX_DYDJID "); + SQL.Add("left join XLXSBJD on XLXSBJD_BJDID = XLXSBJDMX_BJDID "); + SQL.Add("left join "); + SQL.Add("( "); + SQL.Add(" select XLXSBJDYZZ9_DTCLID as DTCLID, XLXSBJDYZZ9_CPYT as CPYT, "); + SQL.Add(" XLXSBJDYZZ9_DYDJFL as DYDJFL, XLXSBJDYZZ9_XLTXID as XLTXID, "); + SQL.Add(" XLXSBJDYZZ9_YZID as YZID,XLXSBJDYZZ9_YZZ as YZZ "); + SQL.Add(" from XLXSBJDYZZ9 "); + SQL.Add(" where XLXSBJDYZZ9_JGBID=:pJGBID "); + SQL.Add(" and XLXSBJDYZZ9_YZID=:pYZID"); + SQL.Add(" and XLXSBJDYZZ9_CPYT=' ' and XLXSBJDYZZ9_DYDJFL=' ' and XLXSBJDYZZ9_XLTXID = ' ' "); + SQL.Add(" ) a on "); + SQL.Add(" a.DTCLID = XLXHB_DTCLID "); + SQL.Add("where XLXSBJDMX_BJDID=:pBJDID and isnull(YZID,' ')<>' ' "); + //SQL.Add(" and (XLXSBJDMX_JLDW in ('Km','M','千米','米') "); + //foreach (string sKey in dicLenJLDWTD.Keys) + //{ + // SQL.Add(string.Format(" or XLXSBJDMX_JLDW='{0}'", sKey)); + //} + //SQL.Add(" ) "); + if (!sBJDXHList.Equals("")) + { + SQL.Add("and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDMX_XH > :minBJDXH"); + } + if (VnewID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pVID and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "); + SQL.ParamByName("pVID").Value = VnewID; + } + if (bYBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + if (bWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y'"); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + SQL.Add(" ) sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSBJDYZZ0_BJDID=:pBJDID and XLXSBJDYZZ0_XH=XH "); + if (!sBJDXHList.Equals("")) + { + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDYZZ0_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDYZZ0_XH > :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSBJDYZZ0_YZZ{0}=YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + sErrorNum = "Error9-1"; + SQL.Clear(); + SQL.Add(" merge into XLXSBJDYZZ0 tar "); + SQL.Add(" using ( "); + SQL.Add("select XLXSBJDMX_BJDID as BJDID,XLXSBJDMX_XH as XH "); + SQL.Add(string.Format(",isnull(YZZ,0) as YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.Add(" from XLXSBJDMX "); + SQL.Add(" left join XLXHB on XLXHB_XLXHID=XLXSBJDMX_XLXHID "); + SQL.Add(" left join XLDYDJB on XLDYDJB_DYDJID = XLXSBJDMX_DYDJID "); + SQL.Add("left join XLXSBJD on XLXSBJD_BJDID = XLXSBJDMX_BJDID "); + SQL.Add("left join "); + SQL.Add("( "); + SQL.Add("select XLXSBJDYZZ9_DTCLID as DTCLID, XLXSBJDYZZ9_CPYT as CPYT, "); + SQL.Add(" XLXSBJDYZZ9_DYDJFL as DYDJFL, XLXSBJDYZZ9_XLTXID as XLTXID, "); + SQL.Add(" XLXSBJDYZZ9_YZID as YZID,XLXSBJDYZZ9_YZZ as YZZ "); + SQL.Add(" from XLXSBJDYZZ9 "); + SQL.Add(" where XLXSBJDYZZ9_JGBID=:pJGBID "); + SQL.Add(" and XLXSBJDYZZ9_YZID=:pYZID"); + SQL.Add(" and ( "); + SQL.Add(" (XLXSBJDYZZ9_CPYT <>' ' and XLXSBJDYZZ9_DYDJFL=' ' and XLXSBJDYZZ9_XLTXID = ' ') "); + SQL.Add(" or (XLXSBJDYZZ9_CPYT = ' ' and XLXSBJDYZZ9_DYDJFL<>' ' and XLXSBJDYZZ9_XLTXID = ' ') "); + SQL.Add(" or (XLXSBJDYZZ9_CPYT = ' ' and XLXSBJDYZZ9_DYDJFL=' ' and XLXSBJDYZZ9_XLTXID <> ' ') "); + SQL.Add(" ) "); + SQL.Add(" ) a on ( "); + SQL.Add(" (a.CPYT = XLXHB_CPYT and isnull(a.CPYT,' ') <>' ') "); + SQL.Add(" or (a.DYDJFL = XLDYDJB_DYDJFL and isnull(a.DYDJFL,' ') <> ' ') "); + SQL.Add(" or (a.XLTXID = XLXHB_XLTXID and isnull(a.XLTXID , ' ') <> ' ' ) "); + SQL.Add(" ) "); + SQL.Add(" and a.DTCLID = XLXHB_DTCLID "); + SQL.Add("where XLXSBJDMX_BJDID=:pBJDID and isnull(YZID,' ')<>' ' "); + //SQL.Add(" and (XLXSBJDMX_JLDW in ('Km','M','千米','米') "); + //foreach (string sKey in dicLenJLDWTD.Keys) + //{ + // SQL.Add(string.Format(" or XLXSBJDMX_JLDW='{0}'", sKey)); + //} + //SQL.Add(" ) "); + if (!sBJDXHList.Equals("")) + { + SQL.Add("and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDMX_XH > :minBJDXH"); + } + if (VnewID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pVID and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "); + SQL.ParamByName("pVID").Value = VnewID; + } + if (bYBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + if (bWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y'"); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + SQL.Add(" ) sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSBJDYZZ0_BJDID=:pBJDID and XLXSBJDYZZ0_XH=XH "); + if (!sBJDXHList.Equals("")) + { + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDYZZ0_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDYZZ0_XH > :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSBJDYZZ0_YZZ{0}=YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + sErrorNum = "Error9-2"; + SQL.Clear(); + SQL.Add(" merge into XLXSBJDYZZ0 tar "); + SQL.Add(" using ( "); + SQL.Add("select XLXSBJDMX_BJDID as BJDID,XLXSBJDMX_XH as XH "); + SQL.Add(string.Format(",isnull(YZZ,0) as YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.Add(" from XLXSBJDMX "); + SQL.Add(" left join XLXHB on XLXHB_XLXHID=XLXSBJDMX_XLXHID "); + SQL.Add(" left join XLDYDJB on XLDYDJB_DYDJID = XLXSBJDMX_DYDJID "); + SQL.Add("left join XLXSBJD on XLXSBJD_BJDID = XLXSBJDMX_BJDID "); + SQL.Add("left join "); + SQL.Add("( "); + SQL.Add("select XLXSBJDYZZ9_DTCLID as DTCLID, XLXSBJDYZZ9_CPYT as CPYT, "); + SQL.Add(" XLXSBJDYZZ9_DYDJFL as DYDJFL, XLXSBJDYZZ9_XLTXID as XLTXID, "); + SQL.Add(" XLXSBJDYZZ9_YZID as YZID,XLXSBJDYZZ9_YZZ as YZZ "); + SQL.Add(" from XLXSBJDYZZ9 "); + SQL.Add(" where XLXSBJDYZZ9_JGBID=:pJGBID "); + SQL.Add(" and XLXSBJDYZZ9_YZID=:pYZID"); + SQL.Add(" and ( "); + SQL.Add(" (XLXSBJDYZZ9_CPYT <>' ' and XLXSBJDYZZ9_DYDJFL<>' ' and XLXSBJDYZZ9_XLTXID = ' ') "); + SQL.Add(" or (XLXSBJDYZZ9_CPYT = ' ' and XLXSBJDYZZ9_DYDJFL<>' ' and XLXSBJDYZZ9_XLTXID <> ' ') "); + SQL.Add(" or (XLXSBJDYZZ9_CPYT <> ' ' and XLXSBJDYZZ9_DYDJFL=' ' and XLXSBJDYZZ9_XLTXID <> ' ') "); + SQL.Add(" ) "); + SQL.Add(" ) a on ( "); + SQL.Add(" a.CPYT = XLXHB_CPYT or a.DYDJFL = XLDYDJB_DYDJFL or a.XLTXID = XLXHB_XLTXID "); + SQL.Add(" ) "); + SQL.Add(" and a.DTCLID = XLXHB_DTCLID "); + SQL.Add("where XLXSBJDMX_BJDID=:pBJDID and isnull(YZID,' ')<>' ' "); + //SQL.Add(" and (XLXSBJDMX_JLDW in ('Km','M','千米','米') "); + //foreach (string sKey in dicLenJLDWTD.Keys) + //{ + // SQL.Add(string.Format(" or XLXSBJDMX_JLDW='{0}'", sKey)); + //} + //SQL.Add(" ) "); + if (!sBJDXHList.Equals("")) + { + SQL.Add("and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDMX_XH > :minBJDXH"); + } + if (VnewID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pVID and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "); + SQL.ParamByName("pVID").Value = VnewID; + } + if (bYBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + if (bWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y'"); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + SQL.Add(" ) sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSBJDYZZ0_BJDID=:pBJDID and XLXSBJDYZZ0_XH=XH "); + if (!sBJDXHList.Equals("")) + { + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDYZZ0_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDYZZ0_XH > :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSBJDYZZ0_YZZ{0}=YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + sErrorNum = "Error9-3"; + SQL.Clear(); + SQL.Add(" merge into XLXSBJDYZZ0 tar "); + SQL.Add(" using ( "); + SQL.Add("select XLXSBJDMX_BJDID as BJDID,XLXSBJDMX_XH as XH "); + SQL.Add(string.Format(",isnull(YZZ,0) as YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.Add(" from XLXSBJDMX "); + SQL.Add(" left join XLXHB on XLXHB_XLXHID=XLXSBJDMX_XLXHID "); + SQL.Add(" left join XLDYDJB on XLDYDJB_DYDJID = XLXSBJDMX_DYDJID "); + SQL.Add("left join XLXSBJD on XLXSBJD_BJDID = XLXSBJDMX_BJDID "); + SQL.Add("left join "); + SQL.Add("( "); + SQL.Add("select XLXSBJDYZZ9_DTCLID as DTCLID, XLXSBJDYZZ9_CPYT as CPYT, "); + SQL.Add(" XLXSBJDYZZ9_DYDJFL as DYDJFL, XLXSBJDYZZ9_XLTXID as XLTXID, "); + SQL.Add(" XLXSBJDYZZ9_YZID as YZID,XLXSBJDYZZ9_YZZ as YZZ "); + SQL.Add(" from XLXSBJDYZZ9 "); + SQL.Add(" where XLXSBJDYZZ9_JGBID=:pJGBID "); + SQL.Add(" and XLXSBJDYZZ9_YZID=:pYZID"); + SQL.Add(" and XLXSBJDYZZ9_CPYT<>' ' and XLXSBJDYZZ9_DYDJFL<>' ' and XLXSBJDYZZ9_XLTXID <> ' ' "); + SQL.Add(" ) a on "); + SQL.Add(" (a.CPYT = XLXHB_CPYT and a.DYDJFL = XLDYDJB_DYDJFL and a.XLTXID = XLXHB_XLTXID) "); + SQL.Add(" and a.DTCLID = XLXHB_DTCLID "); + SQL.Add("where XLXSBJDMX_BJDID=:pBJDID and isnull(YZID,' ')<>' ' "); + //SQL.Add(" and (XLXSBJDMX_JLDW in ('Km','M','千米','米') "); + //foreach (string sKey in dicLenJLDWTD.Keys) + //{ + // SQL.Add(string.Format(" or XLXSBJDMX_JLDW='{0}'", sKey)); + //} + //SQL.Add(" ) "); + if (!sBJDXHList.Equals("")) + { + SQL.Add("and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDMX_XH > :minBJDXH"); + } + if (VnewID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pVID and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "); + SQL.ParamByName("pVID").Value = VnewID; + } + if (bYBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + if (bWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y'"); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + SQL.Add(" ) sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSBJDYZZ0_BJDID=:pBJDID and XLXSBJDYZZ0_XH=XH "); + if (!sBJDXHList.Equals("")) + { + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDYZZ0_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDYZZ0_XH > :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSBJDYZZ0_YZZ{0}=YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + sErrorNum = "Error9-4"; + } + } + } + + sErrorNum = "ErrorA"; + //自动插入TJYS=A的调价因子值 + if (dicTJYZList.ContainsKey("sTJYSListA")) + { + sTJYZ = dicTJYZList["sTJYSListA"].Trim().Split(new Char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); + for (int i = 0; i < sTJYZ.Length; i++) + { + if (!sTJYZ[i].Trim().Equals("")) + { + if (GetYZXXByYZID(sTJYZ[i].Trim()).XLXSTZYZ_JJFS == "JJ") + sJJYZIDList += sTJYZ[i].Trim() + ","; + /* + merge into 目标表 a + using 源表 b + on(a.条件字段1=b.条件字段1 and a.条件字段2=b.条件字段2 ……) + when matched then update set a.更新字段=b.字段 + when not matched then insert into a(字段1,字段2……)values(值1,值2……) + */ + string sJGBID = string.Empty; + if (dicYZXX.ContainsKey(sTJYZ[i].Trim())) + sJGBID = dicYZXX[sTJYZ[i].Trim()]; + bool bUseXLXSBJXLGGTHB = UseXLXSBJXLGGTHB(); + SQL.Clear(); + SQL.Add(" merge into XLXSBJDYZZ0 tar "); + SQL.Add(" using ( "); + SQL.Add("select XLXSBJDMX_BJDID as BJDID,XLXSBJDMX_XH as XH "); + SQL.Add(string.Format(",isnull(YZZ,0) as YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.Add(" from XLXSBJDMX "); + SQL.Add("left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSBJDMX_XLGGID "); + SQL.Add("left join "); + SQL.Add("( "); + SQL.Add(" select XLXSBJDYZZA_YZID as YZID,XLXSBJDYZZA_YZZ as YZZ, "); + if (bUseXLXSBJXLGGTHB) + { + SQL.Add(" XLXSBJDYZZA_XLXHID as XLXHID, XLXSBJXLGGTHB.XLXSBJXLGGTHB_XLGGIDCH as XLGGID, "); + SQL.Add(" XLXSBJDYZZA_XLBZID as XLBZID, XLXSBJDYZZA_DYDJID as DYDJID "); + SQL.Add(" from XLXSBJDYZZA "); + SQL.Add(" left join XLXSBJXLGGTHB on XLXSBJXLGGTHB.XLXSBJXLGGTHB_XLGGID = XLXSBJDYZZA_XLGGID"); + } + else + { + SQL.Add(" XLXSBJDYZZA_XLXHID as XLXHID, replace(XLXSBJDYZZA_XLGGID,'*','×') as XLGGID, "); + SQL.Add(" XLXSBJDYZZA_XLBZID as XLBZID, XLXSBJDYZZA_DYDJID as DYDJID "); + SQL.Add(" from XLXSBJDYZZA "); + } + SQL.Add(" where XLXSBJDYZZA_JGBID=:pJGBID "); + SQL.Add(" and XLXSBJDYZZA_YZID=:pYZID"); + SQL.Add(" ) a on "); + SQL.Add(" a.XLXHID = isnull(XLXSBJDMX_XLXHID,' ') "); + SQL.Add(" and a.XLGGID = isnull(XLXSBJXLGGTHB_XLGGIDCH ,' ') "); + SQL.Add(" and a.XLBZID = isnull(XLXSBJDMX_XLBZID,' ') "); + SQL.Add(" and a.DYDJID = isnull(XLXSBJDMX_DYDJID,' ') "); + SQL.Add("where XLXSBJDMX_BJDID=:pBJDID and isnull(YZID,' ')<>' ' "); + //SQL.Add(" and (XLXSBJDMX_JLDW in ('Km','M','千米','米') "); + //foreach (string sKey in dicLenJLDWTD.Keys) + //{ + // SQL.Add(string.Format(" or XLXSBJDMX_JLDW='{0}'", sKey)); + //} + //SQL.Add(" ) "); + if (!sBJDXHList.Equals("")) + { + SQL.Add("and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDMX_XH > :minBJDXH"); + } + if (VnewID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pVID and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "); + SQL.ParamByName("pVID").Value = VnewID; + } + if (bYBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + if (bWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y'"); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + SQL.Add(" ) sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSBJDYZZ0_BJDID=:pBJDID and XLXSBJDYZZ0_XH=XH "); + if (!sBJDXHList.Equals("")) + { + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDYZZ0_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDYZZ0_XH > :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSBJDYZZ0_YZZ{0}=YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + + } + } + } + + sErrorNum = "ErrorB"; + //自动插入TJYS=B的调价因子值 + if (dicTJYZList.ContainsKey("sTJYSListB")) + { + sTJYZ = dicTJYZList["sTJYSListB"].Trim().Split(new Char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); + for (int i = 0; i < sTJYZ.Length; i++) + { + if (!sTJYZ[i].Trim().Equals("")) + { + if (GetYZXXByYZID(sTJYZ[i].Trim()).XLXSTZYZ_JJFS == "JJ") + sJJYZIDList += sTJYZ[i].Trim() + ","; + /* + merge into 目标表 a + using 源表 b + on(a.条件字段1=b.条件字段1 and a.条件字段2=b.条件字段2 ……) + when matched then update set a.更新字段=b.字段 + when not matched then insert into a(字段1,字段2……)values(值1,值2……) + */ + string sJGBID = string.Empty; + if (dicYZXX.ContainsKey(sTJYZ[i].Trim())) + sJGBID = dicYZXX[sTJYZ[i].Trim()]; + SQL.Clear(); + SQL.Add(" merge into XLXSBJDYZZ0 tar "); + SQL.Add(" using ( "); + SQL.Add("select XLXSBJDMX_BJDID as BJDID,XLXSBJDMX_XH as XH "); + SQL.Add(string.Format(",isnull(YZZ,0) as YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.Add(" from XLXSBJDMX "); + SQL.Add("left join XLXSBJD on XLXSBJD_BJDID=XLXSBJDMX_BJDID "); + SQL.Add("left join "); + SQL.Add("( "); + SQL.Add(" select XLXSBJDYZZB_YZID as YZID,XLXSBJDYZZB_YZZ as YZZ, "); + SQL.Add(" XLXSBJDYZZB_SYDWID as SYDWID "); + SQL.Add(" from XLXSBJDYZZB "); + SQL.Add(" where XLXSBJDYZZB_JGBID=:pJGBID "); + SQL.Add(" and XLXSBJDYZZB_YZID=:pYZID"); + SQL.Add(" ) a on "); + SQL.Add(" a.SYDWID = isnull(XLXSBJD_SYDWID,' ') "); + SQL.Add("where XLXSBJDMX_BJDID=:pBJDID and isnull(YZID,' ')<>' ' "); + //SQL.Add(" and (XLXSBJDMX_JLDW in ('Km','M','千米','米') "); + //foreach (string sKey in dicLenJLDWTD.Keys) + //{ + // SQL.Add(string.Format(" or XLXSBJDMX_JLDW='{0}'", sKey)); + //} + //SQL.Add(" ) "); + if (!sBJDXHList.Equals("")) + { + SQL.Add("and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDMX_XH > :minBJDXH"); + } + if (VnewID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pVID and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "); + SQL.ParamByName("pVID").Value = VnewID; + } + if (bYBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + if (bWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y'"); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + SQL.Add(" ) sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSBJDYZZ0_BJDID=:pBJDID and XLXSBJDYZZ0_XH=XH "); + if (!sBJDXHList.Equals("")) + { + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDYZZ0_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDYZZ0_XH > :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSBJDYZZ0_YZZ{0}=YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + } + } + } + + sErrorNum = "ErrorC"; + //自动插入TJYS=C的调价因子值 + if (dicTJYZList.ContainsKey("sTJYSListC")) + { + sTJYZ = dicTJYZList["sTJYSListC"].Trim().Split(new Char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); + for (int i = 0; i < sTJYZ.Length; i++) + { + if (!sTJYZ[i].Trim().Equals("")) + { + if (GetYZXXByYZID(sTJYZ[i].Trim()).XLXSTZYZ_JJFS == "JJ") + sJJYZIDList += sTJYZ[i].Trim() + ","; + /* + merge into 目标表 a + using 源表 b + on(a.条件字段1=b.条件字段1 and a.条件字段2=b.条件字段2 ……) + when matched then update set a.更新字段=b.字段 + when not matched then insert into a(字段1,字段2……)values(值1,值2……) + */ + string sJGBID = string.Empty; + if (dicYZXX.ContainsKey(sTJYZ[i].Trim())) + sJGBID = dicYZXX[sTJYZ[i].Trim()]; + SQL.Clear(); + SQL.Add(" merge into XLXSBJDYZZ0 tar "); + SQL.Add(" using ( "); + SQL.Add("select XLXSBJDMX_BJDID as BJDID,XLXSBJDMX_XH as XH "); + SQL.Add(string.Format(",isnull(YZZ,0) as YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.Add(" from XLXSBJDMX "); + SQL.Add(" left join XLXHB on XLXHB_XLXHID=XLXSBJDMX_XLXHID "); + SQL.Add(" left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSBJDMX_XLGGID "); + SQL.Add("left join XLGGB on XLGGB_XLGGID = XLXSBJXLGGTHB_XLGGIDCH and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); + SQL.Add("left join XLDTJMZHB on XLDTJMZHB_DTJMZHID=XLGGB_DTJMZHID "); + SQL.Add("left join XLXSBJD on XLXSBJD_BJDID = XLXSBJDMX_BJDID "); + SQL.Add("left join "); + SQL.Add("( "); + SQL.Add(" select XLXSBJDYZZC_CPMLYZZ+(case when XLXHB_RDT='Y' then XLXSBJDYZZC_RDTYZZ else 0 end) "); + SQL.Add(" +(case when isnull(XLXHB_FPCLID,' ')<>' ' or isnull(XLXHB_PBCLID,' ')<>' ' then XLXSBJDYZZC_PBYZZ else 0 end) "); + SQL.Add(" +(case when XLXHB_NHTX='Y' then XLXSBJDYZZC_NHYZZ else 0 end) as YZZ,XLXSBJXHML_DYDJID,XLXSBJDYZZC_BJDID, "); + SQL.Add(" XLXHB_XLXHID as XLXHID, "); + SQL.Add(" XLXSBJDYZZC_YZID as YZID, "); + SQL.Add(" XLXSBJDYZZC_ZXJMSX as ZXJMSX, XLXSBJDYZZC_ZXJMXX as ZXJMXX "); + SQL.Add(" from XLXSBJDYZZC,XLXSBJXHML,XLXHB "); + SQL.Add(" where XLXSBJDYZZC_JGBID=:pJGBID "); + SQL.Add(" and XLXSBJXHML_CPMLID=XLXSBJDYZZC_CPMLID and XLXSBJXHML_XLXHID=XLXHB_XLXHID "); + SQL.Add(" and XLXSBJDYZZC_YZID=:pYZID"); + SQL.Add(" and XLXSBJXHML_DYDJID = ' ' and XLXSBJDYZZC_BJDID = ' ' "); + SQL.Add(" ) a on "); + SQL.Add(" a.XLXHID=XLXSBJDMX_XLXHID "); + SQL.Add(" and a.ZXJMXX<=isnull(XLDTJMZHB_DTJM1,0) and ((a.ZXJMSX<>0 and a.ZXJMSX>=isnull(XLDTJMZHB_DTJM1,0)) or a.ZXJMSX=0) "); + SQL.Add("where XLXSBJDMX_BJDID=:pBJDID and isnull(YZID,' ')<>' ' "); + //SQL.Add(" and (XLXSBJDMX_JLDW in ('Km','M','千米','米') "); + //foreach (string sKey in dicLenJLDWTD.Keys) + //{ + // SQL.Add(string.Format(" or XLXSBJDMX_JLDW='{0}'", sKey)); + //} + //SQL.Add(" ) "); + if (!sBJDXHList.Equals("")) + { + SQL.Add("and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDMX_XH > :minBJDXH"); + } + if (VnewID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pVID and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "); + SQL.ParamByName("pVID").Value = VnewID; + } + if (bYBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + if (bWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y'"); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + SQL.Add(" ) sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSBJDYZZ0_BJDID=:pBJDID and XLXSBJDYZZ0_XH=XH "); + if (!sBJDXHList.Equals("")) + { + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDYZZ0_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDYZZ0_XH > :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSBJDYZZ0_YZZ{0}=YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + sErrorNum = "ErrorC-1"; + SQL.Clear(); + SQL.Add(" merge into XLXSBJDYZZ0 tar "); + SQL.Add(" using ( "); + SQL.Add("select XLXSBJDMX_BJDID as BJDID,XLXSBJDMX_XH as XH "); + SQL.Add(string.Format(",isnull(YZZ,0) as YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.Add(" from XLXSBJDMX "); + SQL.Add(" left join XLXHB on XLXHB_XLXHID=XLXSBJDMX_XLXHID "); + SQL.Add(" left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSBJDMX_XLGGID "); + SQL.Add("left join XLGGB on XLGGB_XLGGID = XLXSBJXLGGTHB_XLGGIDCH and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); + SQL.Add("left join XLDTJMZHB on XLDTJMZHB_DTJMZHID=XLGGB_DTJMZHID "); + SQL.Add("left join XLXSBJD on XLXSBJD_BJDID = XLXSBJDMX_BJDID "); + SQL.Add("left join "); + SQL.Add("( "); + SQL.Add(" select XLXSBJDYZZC_CPMLYZZ+(case when XLXHB_RDT='Y' then XLXSBJDYZZC_RDTYZZ else 0 end) "); + SQL.Add(" +(case when isnull(XLXHB_FPCLID,' ')<>' ' or isnull(XLXHB_PBCLID,' ')<>' ' then XLXSBJDYZZC_PBYZZ else 0 end) "); + SQL.Add(" +(case when XLXHB_NHTX='Y' then XLXSBJDYZZC_NHYZZ else 0 end) as YZZ,XLXSBJXHML_DYDJID as DYDJID,XLXSBJDYZZC_BJDID as BJDID,"); + SQL.Add(" XLXHB_XLXHID as XLXHID, "); + SQL.Add(" XLXSBJDYZZC_YZID as YZID, "); + SQL.Add(" XLXSBJDYZZC_ZXJMSX as ZXJMSX, XLXSBJDYZZC_ZXJMXX as ZXJMXX "); + SQL.Add(" from XLXSBJDYZZC,XLXSBJXHML,XLXHB "); + SQL.Add(" where XLXSBJDYZZC_JGBID=:pJGBID "); + SQL.Add(" and XLXSBJXHML_CPMLID=XLXSBJDYZZC_CPMLID and XLXSBJXHML_XLXHID=XLXHB_XLXHID "); + SQL.Add(" and XLXSBJDYZZC_YZID=:pYZID"); + SQL.Add(" and XLXSBJXHML_DYDJID = ' ' and XLXSBJDYZZC_BJDID <> ' ' "); + SQL.Add(" ) a on a.BJDID = XLXSBJDMX_BJDID "); + SQL.Add(" and a.XLXHID=XLXSBJDMX_XLXHID "); + SQL.Add(" and a.ZXJMXX<=isnull(XLDTJMZHB_DTJM1,0) and ((a.ZXJMSX<>0 and a.ZXJMSX>=isnull(XLDTJMZHB_DTJM1,0)) or a.ZXJMSX=0) "); + SQL.Add("where XLXSBJDMX_BJDID=:pBJDID and isnull(YZID,' ')<>' ' "); + //SQL.Add(" and (XLXSBJDMX_JLDW in ('Km','M','千米','米') "); + //foreach (string sKey in dicLenJLDWTD.Keys) + //{ + // SQL.Add(string.Format(" or XLXSBJDMX_JLDW='{0}'", sKey)); + //} + //SQL.Add(" ) "); + if (!sBJDXHList.Equals("")) + { + SQL.Add("and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDMX_XH > :minBJDXH"); + } + if (VnewID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pVID and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "); + SQL.ParamByName("pVID").Value = VnewID; + } + if (bYBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + if (bWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y'"); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + SQL.Add(" ) sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSBJDYZZ0_BJDID=:pBJDID and XLXSBJDYZZ0_XH=XH "); + if (!sBJDXHList.Equals("")) + { + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDYZZ0_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDYZZ0_XH > :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSBJDYZZ0_YZZ{0}=YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + sErrorNum = "ErrorC-2"; + SQL.Clear(); + SQL.Add(" merge into XLXSBJDYZZ0 tar "); + SQL.Add(" using ( "); + SQL.Add("select XLXSBJDMX_BJDID as BJDID,XLXSBJDMX_XH as XH "); + SQL.Add(string.Format(",isnull(YZZ,0) as YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.Add(" from XLXSBJDMX "); + SQL.Add("left join XLXHB on XLXHB_XLXHID=XLXSBJDMX_XLXHID "); + SQL.Add("left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSBJDMX_XLGGID "); + SQL.Add("left join XLGGB on XLGGB_XLGGID = XLXSBJXLGGTHB_XLGGIDCH and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); + SQL.Add("left join XLDTJMZHB on XLDTJMZHB_DTJMZHID=XLGGB_DTJMZHID "); + SQL.Add("left join XLXSBJD on XLXSBJD_BJDID = XLXSBJDMX_BJDID "); + SQL.Add("left join "); + SQL.Add("( "); + SQL.Add(" select XLXSBJDYZZC_CPMLYZZ+(case when XLXHB_RDT='Y' then XLXSBJDYZZC_RDTYZZ else 0 end) "); + SQL.Add(" +(case when isnull(XLXHB_FPCLID,' ')<>' ' or isnull(XLXHB_PBCLID,' ')<>' ' then XLXSBJDYZZC_PBYZZ else 0 end) "); + SQL.Add(" +(case when XLXHB_NHTX='Y' then XLXSBJDYZZC_NHYZZ else 0 end) as YZZ,XLXSBJXHML_DYDJID as DYDJID,XLXSBJDYZZC_BJDID as BJDID,"); + SQL.Add(" XLXHB_XLXHID as XLXHID, "); + SQL.Add(" XLXSBJDYZZC_YZID as YZID, "); + SQL.Add(" XLXSBJDYZZC_ZXJMSX as ZXJMSX, XLXSBJDYZZC_ZXJMXX as ZXJMXX "); + SQL.Add(" from XLXSBJDYZZC,XLXSBJXHML,XLXHB "); + SQL.Add(" where XLXSBJDYZZC_JGBID=:pJGBID "); + SQL.Add(" and XLXSBJXHML_CPMLID=XLXSBJDYZZC_CPMLID and XLXSBJXHML_XLXHID=XLXHB_XLXHID "); + SQL.Add(" and XLXSBJDYZZC_YZID=:pYZID"); + SQL.Add(" and XLXSBJXHML_DYDJID <> ' ' and XLXSBJDYZZC_BJDID = ' ' "); + SQL.Add(" ) a on a.DYDJID = isnull(XLXSBJDMX_DYDJID, ' ') "); + SQL.Add(" and a.XLXHID=XLXSBJDMX_XLXHID "); + SQL.Add(" and a.ZXJMXX<=isnull(XLDTJMZHB_DTJM1,0) and ((a.ZXJMSX<>0 and a.ZXJMSX>=isnull(XLDTJMZHB_DTJM1,0)) or a.ZXJMSX=0) "); + SQL.Add("where XLXSBJDMX_BJDID=:pBJDID and isnull(YZID,' ')<>' ' "); + //SQL.Add(" and (XLXSBJDMX_JLDW in ('Km','M','千米','米') "); + //foreach (string sKey in dicLenJLDWTD.Keys) + //{ + // SQL.Add(string.Format(" or XLXSBJDMX_JLDW='{0}'", sKey)); + //} + //SQL.Add(" ) "); + if (!sBJDXHList.Equals("")) + { + SQL.Add("and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDMX_XH > :minBJDXH"); + } + if (VnewID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pVID and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "); + SQL.ParamByName("pVID").Value = VnewID; + } + if (bYBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + if (bWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y'"); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + SQL.Add(" ) sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSBJDYZZ0_BJDID=:pBJDID and XLXSBJDYZZ0_XH=XH "); + if (!sBJDXHList.Equals("")) + { + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDYZZ0_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDYZZ0_XH > :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSBJDYZZ0_YZZ{0}=YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + sErrorNum = "ErrorC-3"; + SQL.Clear(); + SQL.Add(" merge into XLXSBJDYZZ0 tar "); + SQL.Add(" using ( "); + SQL.Add("select XLXSBJDMX_BJDID as BJDID,XLXSBJDMX_XH as XH "); + SQL.Add(string.Format(",isnull(YZZ,0) as YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.Add(" from XLXSBJDMX "); + SQL.Add("left join XLXHB on XLXHB_XLXHID=XLXSBJDMX_XLXHID "); + SQL.Add("left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSBJDMX_XLGGID "); + SQL.Add("left join XLGGB on XLGGB_XLGGID = XLXSBJXLGGTHB_XLGGIDCH and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); + SQL.Add("left join XLDTJMZHB on XLDTJMZHB_DTJMZHID=XLGGB_DTJMZHID "); + SQL.Add("left join XLXSBJD on XLXSBJD_BJDID = XLXSBJDMX_BJDID "); + SQL.Add("left join "); + SQL.Add("( "); + SQL.Add(" select XLXSBJDYZZC_CPMLYZZ+(case when XLXHB_RDT='Y' then XLXSBJDYZZC_RDTYZZ else 0 end) "); + SQL.Add(" +(case when isnull(XLXHB_FPCLID,' ')<>' ' or isnull(XLXHB_PBCLID,' ')<>' ' then XLXSBJDYZZC_PBYZZ else 0 end) "); + SQL.Add(" +(case when XLXHB_NHTX='Y' then XLXSBJDYZZC_NHYZZ else 0 end) as YZZ,XLXSBJXHML_DYDJID as DYDJID,XLXSBJDYZZC_BJDID as BJDID,"); + SQL.Add(" XLXHB_XLXHID as XLXHID, "); + SQL.Add(" XLXSBJDYZZC_YZID as YZID, "); + SQL.Add(" XLXSBJDYZZC_ZXJMSX as ZXJMSX, XLXSBJDYZZC_ZXJMXX as ZXJMXX "); + SQL.Add(" from XLXSBJDYZZC,XLXSBJXHML,XLXHB "); + SQL.Add(" where XLXSBJDYZZC_JGBID=:pJGBID "); + SQL.Add(" and XLXSBJXHML_CPMLID=XLXSBJDYZZC_CPMLID and XLXSBJXHML_XLXHID=XLXHB_XLXHID "); + SQL.Add(" and XLXSBJDYZZC_YZID=:pYZID"); + SQL.Add(" and XLXSBJXHML_DYDJID <> ' ' and XLXSBJDYZZC_BJDID <> ' ' "); + SQL.Add(" ) a on a.BJDID = XLXSBJDMX_BJDID and a.DYDJID = isnull(XLXSBJDMX_DYDJID, ' ') "); + SQL.Add(" and a.XLXHID=XLXSBJDMX_XLXHID "); + SQL.Add(" and a.ZXJMXX<=isnull(XLDTJMZHB_DTJM1,0) and ((a.ZXJMSX<>0 and a.ZXJMSX>=isnull(XLDTJMZHB_DTJM1,0)) or a.ZXJMSX=0) "); + SQL.Add("where XLXSBJDMX_BJDID=:pBJDID and isnull(YZID,' ')<>' ' "); + //SQL.Add(" and (XLXSBJDMX_JLDW in ('Km','M','千米','米') "); + //foreach (string sKey in dicLenJLDWTD.Keys) + //{ + // SQL.Add(string.Format(" or XLXSBJDMX_JLDW='{0}'", sKey)); + //} + //SQL.Add(" ) "); + if (!sBJDXHList.Equals("")) + { + SQL.Add("and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDMX_XH > :minBJDXH"); + } + if (VnewID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pVID and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "); + SQL.ParamByName("pVID").Value = VnewID; + } + if (bYBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + if (bWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y'"); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + SQL.Add(" ) sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSBJDYZZ0_BJDID=:pBJDID and XLXSBJDYZZ0_XH=XH "); + if (!sBJDXHList.Equals("")) + { + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDYZZ0_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDYZZ0_XH > :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSBJDYZZ0_YZZ{0}=YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + sErrorNum = "ErrorC-4"; + } + } + } + + sErrorNum = "ErrorD"; + //自动插入TJYS=D的调价因子值 + if (dicTJYZList.ContainsKey("sTJYSListD")) + { + sTJYZ = dicTJYZList["sTJYSListD"].Trim().Split(new Char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); + for (int i = 0; i < sTJYZ.Length; i++) + { + if (!sTJYZ[i].Trim().Equals("")) + { + if (GetYZXXByYZID(sTJYZ[i].Trim()).XLXSTZYZ_JJFS == "JJ") + sJJYZIDList += sTJYZ[i].Trim() + ","; + /* + merge into 目标表 a + using 源表 b + on(a.条件字段1=b.条件字段1 and a.条件字段2=b.条件字段2 ……) + when matched then update set a.更新字段=b.字段 + when not matched then insert into a(字段1,字段2……)values(值1,值2……) + */ + string sJGBID = string.Empty; + if (dicYZXX.ContainsKey(sTJYZ[i].Trim())) + sJGBID = dicYZXX[sTJYZ[i].Trim()]; + SQL.Clear(); + SQL.Add(" merge into XLXSBJDYZZ0 tar "); + SQL.Add(" using ( "); + SQL.Add("select XLXSBJDMX_BJDID as BJDID,XLXSBJDMX_XH as XH "); + SQL.Add(string.Format(",isnull(YZZ,0) as YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.Add(" from XLXSBJDMX "); + SQL.Add(" left join XLXHB on XLXHB_XLXHID=XLXSBJDMX_XLXHID "); + SQL.Add(" left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSBJDMX_XLGGID "); + SQL.Add(" left join XLGGB on XLGGB_XLGGID = XLXSBJXLGGTHB_XLGGIDCH and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); + SQL.Add(" left join XLDTJMZHB on XLDTJMZHB_DTJMZHID=XLGGB_DTJMZHID "); + SQL.Add("left join "); + SQL.Add("( "); + SQL.Add(" select XLXSBJDYZZD_YZID as YZID,XLXSBJDYZZD_YZZ as YZZ, "); + SQL.Add(" XLXSBJDYZZD_XLYSID as XLYSID,XLXSBJDYZZD_ZXJMSX as ZXJMSX, XLXSBJDYZZD_ZXJMXX as ZXJMXX "); + SQL.Add(" from XLXSBJDYZZD "); + SQL.Add(" where XLXSBJDYZZD_JGBID=:pJGBID "); + SQL.Add(" and XLXSBJDYZZD_YZID=:pYZID"); + SQL.Add(" ) a on "); + SQL.Add(" a.XLYSID = isnull(XLXSBJDMX_XLYSID,' ') "); + SQL.Add(" and a.ZXJMXX<=isnull(XLDTJMZHB_DTJM1,0) and ((a.ZXJMSX<>0 and a.ZXJMSX>=isnull(XLDTJMZHB_DTJM1,0)) or a.ZXJMSX=0) "); + SQL.Add("where XLXSBJDMX_BJDID=:pBJDID and isnull(YZID,' ')<>' ' "); + //SQL.Add(" and (XLXSBJDMX_JLDW in ('Km','M','千米','米') "); + //foreach (string sKey in dicLenJLDWTD.Keys) + //{ + // SQL.Add(string.Format(" or XLXSBJDMX_JLDW='{0}'", sKey)); + //} + //SQL.Add(" ) "); + if (!sBJDXHList.Equals("")) + { + SQL.Add("and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDMX_XH > :minBJDXH"); + } + if (VnewID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pVID and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "); + SQL.ParamByName("pVID").Value = VnewID; + } + if (bYBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + if (bWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y'"); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + SQL.Add(" ) sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSBJDYZZ0_BJDID=:pBJDID and XLXSBJDYZZ0_XH=XH "); + if (!sBJDXHList.Equals("")) + { + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDYZZ0_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDYZZ0_XH > :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSBJDYZZ0_YZZ{0}=YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + } + } + } + + sErrorNum = "ErrorK"; + //自动插入TJYS=K的调价因子值 + if (dicTJYZList.ContainsKey("sTJYSListK")) + { + sTJYZ = dicTJYZList["sTJYSListK"].Trim().Split(new Char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); + for (int i = 0; i < sTJYZ.Length; i++) + { + if (!sTJYZ[i].Trim().Equals("")) + { + if (GetYZXXByYZID(sTJYZ[i].Trim()).XLXSTZYZ_JJFS == "JJ") + sJJYZIDList += sTJYZ[i].Trim() + ","; + /* + merge into 目标表 a + using 源表 b + on(a.条件字段1=b.条件字段1 and a.条件字段2=b.条件字段2 ……) + when matched then update set a.更新字段=b.字段 + when not matched then insert into a(字段1,字段2……)values(值1,值2……) + */ + string sJGBID = string.Empty; + if (dicYZXX.ContainsKey(sTJYZ[i].Trim())) + sJGBID = dicYZXX[sTJYZ[i].Trim()]; + SQL.Clear(); + SQL.Add(" merge into XLXSBJDYZZ0 tar "); + SQL.Add(" using ( "); + SQL.Add("select XLXSBJDMX_BJDID as BJDID,XLXSBJDMX_XH as XH,case when XLXSBJDMX_BJSL=0 then 0 else round(XLXSBJDMX_CLZL/XLXSBJDMX_BJSL,5) end as CLZL "); + SQL.Add(string.Format(",isnull(YZZ,0) as YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.Add(" from XLXSBJDMX "); + SQL.Add(" left join XLXHB on XLXHB_XLXHID=XLXSBJDMX_XLXHID "); + SQL.Add(" left join "); + SQL.Add("( "); + SQL.Add(" select XLXSBJDYZZK_YZID as YZID,XLXSBJDYZZK_YZZ as YZZ, "); + SQL.Add(" XLXSBJDYZZK_DTLX as DTLX,XLXSBJDYZZK_DYDJID as DYDJID "); + SQL.Add(" from XLXSBJDYZZK "); + SQL.Add(" where XLXSBJDYZZK_JGBID=:pJGBID "); + SQL.Add(" and XLXSBJDYZZK_YZID=:pYZID and XLXSBJDYZZK_DYDJID=' ' "); + SQL.Add(" ) a on "); + SQL.Add(" a.DTLX = isnull(XLXHB_DTCLID,' ') "); + SQL.Add("where XLXSBJDMX_BJDID=:pBJDID and isnull(YZID,' ')<>' ' "); + if (!sBJDXHList.Equals("")) + { + SQL.Add("and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDMX_XH > :minBJDXH"); + } + if (VnewID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pVID and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "); + SQL.ParamByName("pVID").Value = VnewID; + } + if (bYBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + if (bWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y'"); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + SQL.Add(" ) sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSBJDYZZ0_BJDID=:pBJDID and XLXSBJDYZZ0_XH=XH "); + if (!sBJDXHList.Equals("")) + { + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDYZZ0_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDYZZ0_XH > :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSBJDYZZ0_YZZ{0}=YZZ{0}*CLZL ", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + + SQL.Clear(); + SQL.Add(" merge into XLXSBJDYZZ0 tar "); + SQL.Add(" using ( "); + SQL.Add("select XLXSBJDMX_BJDID as BJDID,XLXSBJDMX_XH as XH,case when XLXSBJDMX_BJSL=0 then 0 else round(XLXSBJDMX_CLZL/XLXSBJDMX_BJSL,5) end as CLZL "); + SQL.Add(string.Format(",isnull(YZZ,0) as YZZ{0}", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.Add(" from XLXSBJDMX "); + SQL.Add(" left join XLXHB on XLXHB_XLXHID=XLXSBJDMX_XLXHID "); + SQL.Add(" left join "); + SQL.Add("( "); + SQL.Add(" select XLXSBJDYZZK_YZID as YZID,XLXSBJDYZZK_YZZ as YZZ, "); + SQL.Add(" XLXSBJDYZZK_DTLX as DTLX,XLXSBJDYZZK_DYDJID as DYDJID "); + SQL.Add(" from XLXSBJDYZZK "); + SQL.Add(" where XLXSBJDYZZK_JGBID=:pJGBID "); + SQL.Add(" and XLXSBJDYZZK_YZID=:pYZID and XLXSBJDYZZK_DYDJID<>' ' "); + SQL.Add(" ) a on "); + SQL.Add(" a.DTLX = isnull(XLXHB_DTCLID,' ') and a.DYDJID=XLXSBJDMX_DYDJID "); + SQL.Add("where XLXSBJDMX_BJDID=:pBJDID and isnull(YZID,' ')<>' ' "); + if (!sBJDXHList.Equals("")) + { + SQL.Add("and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDMX_XH > :minBJDXH"); + } + if (VnewID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pVID and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "); + SQL.ParamByName("pVID").Value = VnewID; + } + if (bYBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + if (bWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y'"); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + SQL.Add(" ) sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSBJDYZZ0_BJDID=:pBJDID and XLXSBJDYZZ0_XH=XH "); + if (!sBJDXHList.Equals("")) + { + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDYZZ0_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDYZZ0_XH > :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSBJDYZZ0_YZZ{0}=YZZ{0}*CLZL ", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pJGBID").Value = sJGBID; + dberp.ExecSQL(SQL); + } + } + } + + sErrorNum = "ErrorBZPF"; + //自动插入TJMK=包装盘费的调价因子值 + if (dicTJYZList.ContainsKey("sTJYSListPFBZ")) + { + sTJYZ = dicTJYZList["sTJYSListPFBZ"].Trim().Split(new Char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); + for (int i = 0; i < sTJYZ.Length; i++) + { + if (!sTJYZ[i].Trim().Equals("")) + { + string sTmpBJU003 = "M"; + //if (GetYZXXByYZID(sTJYZ[i].Trim()).XLXSTZYZ_JJFS == "JJ") + // sJJYZIDList += sTJYZ[i].Trim() + ","; + /* + merge into 目标表 a + using 源表 b + on(a.条件字段1=b.条件字段1 and a.条件字段2=b.条件字段2 ……) + when matched then update set a.更新字段=b.字段 + when not matched then insert into a(字段1,字段2……)values(值1,值2……) + */ + + SQL.Clear(); + SQL.Add(" merge into XLXSBJDYZZ0 tar "); + SQL.Add(" using ( "); + SQL.Add("select XLXSBJDMX_BJDID as BJDID,XLXSBJDMX_XH as XH,isnull(YZZ,0) as YZZ "); + SQL.Add(" from XLXSBJDMX "); + SQL.Add("left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSBJDMX_XLGGID "); + SQL.Add("left join "); + SQL.Add("( "); + SQL.Add(@" SELECT XLXSCLQD_XLXHID AS XLXHID,XLXSBJXLGGTHB_XLGGIDCH AS XLGGID,XLXSCLQD_XLBZID AS XLBZID,XLXSCLQD_DYDJID AS DYDJID, + isnull(MIN(ROUND(CASE WHEN ISNULL(CONVERT(FLOAT,ISNULL(XLBMYSMX_DHMC,'0')),0)=0 THEN 0 + ELSE PJJG/CONVERT(FLOAT,ISNULL(XLBMYSMX_DHMC,'0')) END,6)),0) AS YZZ + FROM XLXSCLQD + left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSCLQD_XLGGID + LEFT JOIN XLXHJGCZBNR ON XLXHJGCZBNR_JGCZBID=XLXSCLQD_JGCZBID AND XLXHJGCZBNR_JGCZBBBID=XLXSCLQD_JGCZBBBID + AND XLXHJGCZBNR_JGCZBXH=XLXSCLQD_JGCZBXH AND XLXHJGCZBNR_DRHH=XLXSCLQD_DRHH + LEFT JOIN XLBMYSMX ON XLBMYSMX_YSBM='DC' AND XLBMYSMX_YSID=XLXHJGCZBNR_DC + LEFT JOIN (SELECT XLZPPJFL_PJFLMC,MAX(XLZPPJJG_PJJG) AS PJJG FROM XLZPPJFL + LEFT JOIN XLZPPJJG ON XLZPPJJG_PJCZ=XLZPPJFL_PJFLID + WHERE 1=1 and XLZPPJJG_YXQS <= :pDtNow and (XLZPPJJG_YXQZ>=:pDtNow or XLZPPJJG_YXQZ is null) + GROUP BY XLZPPJFL_PJFLMC) PJ ON RTRIM(XLZPPJFL_PJFLMC)=RTRIM(XLXHJGCZBNR_BZFS) + where exists(select 1 from XLXSBJDMX WHERE XLXSBJDMX_BJDID=:pBJDID AND XLXSBJDMX_XLXHID=XLXSCLQD_XLXHID + AND XLXSBJDMX_XLGGID=XLXSCLQD_XLGGID AND XLXSBJDMX_XLBZID=XLXSCLQD_XLBZID AND XLXSBJDMX_DYDJID=XLXSCLQD_DYDJID) + GROUP BY XLXSCLQD_XLXHID,XLXSBJXLGGTHB_XLGGIDCH,XLXSCLQD_XLBZID,XLXSCLQD_DYDJID) a on "); + SQL.Add(" a.XLXHID = isnull(XLXSBJDMX_XLXHID,' ') "); + SQL.Add(" and a.XLGGID = isnull(XLXSBJXLGGTHB_XLGGIDCH,' ') "); + SQL.Add(" and a.XLBZID = isnull(XLXSBJDMX_XLBZID,' ') "); + SQL.Add(" and a.DYDJID = isnull(XLXSBJDMX_DYDJID,' ') "); + SQL.Add("where XLXSBJDMX_BJDID=:pBJDID "); + //SQL.Add(" and (XLXSBJDMX_JLDW in ('Km','M','千米','米') "); + //foreach (string sKey in dicLenJLDWTD.Keys) + //{ + // SQL.Add(string.Format(" or XLXSBJDMX_JLDW='{0}'", sKey)); + //} + //SQL.Add(" ) "); + if (!sBJDXHList.Equals("")) + { + SQL.Add("and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDMX_XH > :minBJDXH"); + } + if (VnewID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pVID and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "); + SQL.ParamByName("pVID").Value = VnewID; + } + if (bYBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + if (bWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y'"); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + SQL.Add(" ) sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSBJDYZZ0_BJDID=:pBJDID and XLXSBJDYZZ0_XH=XH "); + if (!sBJDXHList.Equals("")) + { + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDYZZ0_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDYZZ0_XH > :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format("XLXSBJDYZZ0_YZZ{0}=YZZ", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.ParamByName("pYZID").Value = sTJYZ[i].Trim(); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pDtNow").Value = DateTime.Now; + dberp.ExecSQL(SQL); + + + SQL.Clear(); + SQL.Add("merge into XLXSBJDYZZ0 using( "); + SQL.Add(" select XLXSBJDMX_XH as XH,("); + SQL.Add(" case when :pBJU003 in ('KM', '千米') and XLXSBJDMX_JLDW in ('M', '米') then 0.001"); + SQL.Add(" when :pBJU003 in ('M', '米') and XLXSBJDMX_JLDW in ('Km', '千米') then 1000.0"); + SQL.Add(" when :pBJU003 in ('M', '米') and XLXSBJDMX_JLDW in ('M', '米') then 1.0"); + SQL.Add(" when :pBJU003 in ('KM', '千米') and XLXSBJDMX_JLDW in ('Km', '千米') then 1.0"); + string sTDDWList = "("; + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when :pBJU003 in ('KM', '千米') and XLXSBJDMX_JLDW='{0}' then 0.001*{1} ", sKey, dicLenJLDWTD[sKey])); + SQL.Add(string.Format(" when :pBJU003 in ('M', '米') and XLXSBJDMX_JLDW='{0}' then {1} ", sKey, dicLenJLDWTD[sKey])); + SQL.Add(string.Format(" when :pBJU003 = '{0}' and XLXSBJDMX_JLDW in ('Km', '千米') then 1000.0/{1} ", sKey, dicLenJLDWTD[sKey])); + SQL.Add(string.Format(" when :pBJU003 = '{0}' and XLXSBJDMX_JLDW in ('M', '米') then 1.0/{1} ", sKey, dicLenJLDWTD[sKey])); + sTDDWList += "'" + sKey + "',"; + } + sTDDWList = sTDDWList.TrimEnd(','); + sTDDWList += ")"; + SQL.Add(" when :pBJU003 in " + sTDDWList + " and XLXSBJDMX_JLDW in " + sTDDWList + " then 1.0"); + SQL.Add(" when :pBJU003 in ('T', '吨') and XLXSBJDMX_JLDW in ('Kg', '千克', '公斤') then 0.001"); + SQL.Add(" when :pBJU003 in ('KG', '千克', '公斤') and XLXSBJDMX_JLDW in ('T', '吨') then 1000.0"); + SQL.Add(" when :pBJU003 in ('KG', '千克', '公斤') and XLXSBJDMX_JLDW in ('Kg', '千克', '公斤') then 1.0"); + SQL.Add(" when :pBJU003 in ('T', '吨') and XLXSBJDMX_JLDW in ('T', '吨') then 1.0"); + if (sTmpBJU003.ToUpper().Equals("KM") || sTmpBJU003.ToUpper().Equals("千米")) + { + SQL.Add(" when :pBJU003 in ('KM', '千米') and XLXSBJDMX_JLDW in ('Kg', '千克', '公斤') then (case when XLXSCLQD_CLZL = 0 then 0 else 1.0/XLXSCLQD_CLZL end)"); + SQL.Add(" when :pBJU003 in ('M', '米') and XLXSBJDMX_JLDW in ('Kg', '千克', '公斤') then (case when XLXSCLQD_CLZL = 0 then 0 else (1.0/XLXSCLQD_CLZL)*1000.0 end)"); + SQL.Add(" when :pBJU003 in ('KG', '千克', '公斤') and XLXSBJDMX_JLDW in ('Km', '千米') then XLXSCLQD_CLZL"); + SQL.Add(" when :pBJU003 in ('KM', '千米') and XLXSBJDMX_JLDW in ('T', '吨') then (case when XLXSCLQD_CLZL = 0 then 0 else (1.0/XLXSCLQD_CLZL)*1000.0 end)"); + SQL.Add(" when :pBJU003 in ('M', '米') and XLXSBJDMX_JLDW in ('T', '吨') then (case when XLXSCLQD_CLZL = 0 then 0 else (1.0/XLXSCLQD_CLZL)* 1000.0*1000.0 end)"); + SQL.Add(" when :pBJU003 in ('KG', '千克', '公斤') and XLXSBJDMX_JLDW in ('Km', '千米') then XLXSCLQD_CLZL"); + SQL.Add(" when :pBJU003 in ('T', '吨') and XLXSBJDMX_JLDW in ('Km', '千米') then XLXSCLQD_CLZL/1000.0"); + SQL.Add(" when :pBJU003 in ('KG', '千克', '公斤') and XLXSBJDMX_JLDW in ('M', '米') then XLXSCLQD_CLZL/1000.0"); + SQL.Add(" when :pBJU003 in ('T', '吨') and XLXSBJDMX_JLDW in ('M', '米') then XLXSCLQD_CLZL/1000.0/1000.0"); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when :pBJU003 in ('KG', '千克', '公斤') and XLXSBJDMX_JLDW='{0}' then {1}*XLXSCLQD_CLZL/1000.0 ", sKey, dicLenJLDWTD[sKey])); + SQL.Add(string.Format(" when :pBJU003 in ('T', '吨') and XLXSBJDMX_JLDW='{0}' then {1}*XLXSCLQD_CLZL/1000.0/1000.0 ", sKey, dicLenJLDWTD[sKey])); + SQL.Add(string.Format(" when :pBJU003 = '{0}' and XLXSBJDMX_JLDW in ('KG', '千克', '公斤') then 1000.0/XLXSCLQD_CLZL/{1} ", sKey, dicLenJLDWTD[sKey])); + SQL.Add(string.Format(" when :pBJU003 = '{0}' and XLXSBJDMX_JLDW in ('T', '吨') then 1000.0*1000.0/XLXSCLQD_CLZL/{1} ", sKey, dicLenJLDWTD[sKey])); + } + } + else if (sTmpBJU003.ToUpper().Equals("米") || sTmpBJU003.ToUpper().Equals("M")) + { + SQL.Add(" when :pBJU003 in ('KM', '千米') and XLXSBJDMX_JLDW in ('Kg', '千克', '公斤') then (case when XLXSCLQD_CLZL = 0 then 0 else (1.0/XLXSCLQD_CLZL)*(1/1000.0) end)"); + SQL.Add(" when :pBJU003 in ('M', '米') and XLXSBJDMX_JLDW in ('Kg', '千克', '公斤') then (case when XLXSCLQD_CLZL = 0 then 0 else 1.0/XLXSCLQD_CLZL end)"); + SQL.Add(" when :pBJU003 in ('KG', '千克', '公斤') and XLXSBJDMX_JLDW in ('Km', '千米') then XLXSCLQD_CLZL*1000.0"); + SQL.Add(" when :pBJU003 in ('KM', '千米') and XLXSBJDMX_JLDW in ('T', '吨') then (case when XLXSCLQD_CLZL = 0 then 0 else (1.0/XLXSCLQD_CLZL) end)"); + SQL.Add(" when :pBJU003 in ('M', '米') and XLXSBJDMX_JLDW in ('T', '吨') then (case when XLXSCLQD_CLZL = 0 then 0 else (1.0/XLXSCLQD_CLZL)*1000.0 end)"); + SQL.Add(" when :pBJU003 in ('KG', '千克', '公斤') and XLXSBJDMX_JLDW in ('Km', '千米') then XLXSCLQD_CLZL*1000.0"); + SQL.Add(" when :pBJU003 in ('T', '吨') and XLXSBJDMX_JLDW in ('Km', '千米') then XLXSCLQD_CLZL"); + SQL.Add(" when :pBJU003 in ('KG', '千克', '公斤') and XLXSBJDMX_JLDW in ('M', '米') then XLXSCLQD_CLZL"); + SQL.Add(" when :pBJU003 in ('T', '吨') and XLXSBJDMX_JLDW in ('M', '米') then XLXSCLQD_CLZL/1000.0"); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when :pBJU003 in ('KG', '千克', '公斤') and XLXSBJDMX_JLDW='{0}' then {1}*XLXSCLQD_CLZL ", sKey, dicLenJLDWTD[sKey])); + SQL.Add(string.Format(" when :pBJU003 in ('T', '吨') and XLXSBJDMX_JLDW='{0}' then {1}*XLXSCLQD_CLZL/1000.0 ", sKey, dicLenJLDWTD[sKey])); + SQL.Add(string.Format(" when :pBJU003 = '{0}' and XLXSBJDMX_JLDW in ('KG', '千克', '公斤') then 1/XLXSCLQD_CLZL/{1} ", sKey, dicLenJLDWTD[sKey])); + SQL.Add(string.Format(" when :pBJU003 = '{0}' and XLXSBJDMX_JLDW in ('T', '吨') then 1000.0/XLXSCLQD_CLZL/{1} ", sKey, dicLenJLDWTD[sKey])); + } + } + SQL.Add(" when :pBJU003=upper(XLXSBJDMX_JLDW) and :pBJU003 not in ('M','KM','米','千米','KG','T','千克','公斤','吨') "); + SQL.Add(" and XLXSBJDMX_JLDW not in ('M','Km','米','千米','Kg','T','千克','公斤','吨') "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format("and XLXSBJDMX_JLDW<>'{0}' ", sKey)); + } + SQL.Add(" then 1.0 else 1.0"); + SQL.Add(" end "); + SQL.Add(" ) as HSBL "); + + SQL.Add(" from XLXSBJDMX "); + SQL.Add(" left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSBJDMX_XLXHID and XLXSCLQD_XLGGID=XLXSBJDMX_XLGGID and XLXSCLQD_XLBZID=XLXSBJDMX_XLBZID and XLXSCLQD_DYDJID=XLXSBJDMX_DYDJID and XLXSCLQD_WPID='ZZZZ' "); + SQL.Add("where XLXSBJDMX_BJDID=:pBJDID and isnull(XLXSCLQD_CLZL,0)<>0 "); + if (!sBJDXHList.Equals("")) + { + SQL.Add("and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDMX_XH > :minBJDXH"); + } + if (VnewID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pVID and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "); + SQL.ParamByName("pVID").Value = VnewID; + } + if (bYBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + if (bWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y'"); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + SQL.Add(" ) sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSBJDYZZ0_BJDID=:pBJDID and XLXSBJDYZZ0_XH=XH "); + if (!sBJDXHList.Equals("")) + { + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDYZZ0_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDYZZ0_XH > :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(string.Format(" XLXSBJDYZZ0_YZZ{0}=XLXSBJDYZZ0_YZZ{0}*HSBL", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pBJU003").Value = sTmpBJU003; + dberp.ExecSQL(SQL); + + } + } + } + + sErrorNum = "ErrorCPWJPF"; + //自动插入TJMK=产品外径盘费的调价因子值 + if (dicTJYZList.ContainsKey("sTJYSListPFCPWJ")) + { + sTJYZ = dicTJYZList["sTJYSListPFCPWJ"].Trim().Split(new Char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); + for (int i = 0; i < sTJYZ.Length; i++) + { + if (!sTJYZ[i].Trim().Equals("")) + { + SQL.Clear(); + SQL.Add("merge into XLXSBJDYZZ0 tar "); + SQL.Add("using ( "); + SQL.Add(" select A.BJDID,A.XH, "); + SQL.Add(" isnull(case when isnull(A.BJSLM,0)=0 then 0 "); + SQL.Add(" when isnull(A.PJJG,0)=0 then 0 "); + SQL.Add(" when A.BJSLM > isnull(A.MAX_BJSLSX,0) and isnull(A.MAX_BJSLSX,0)>0 then (ceiling(A.BJSLM/A.MAX_BJSLSX)*A.PJJG)/A.BJSL "); + SQL.Add(" else A.PJJG/A.BJSL end,0) as YZZ "); + SQL.Add(" from ( "); + SQL.Add(" select M.XLXSBJDMX_BJDID as BJDID,M.XLXSBJDMX_XH as XH,M.XLXSBJDMX_BJSL as BJSL, "); + SQL.Add(" isnull(L.XLXLB_WJ,0) as CPWJ, "); + SQL.Add(" case when M.XLXSBJDMX_JLDW in ('M','米') then isnull(M.XLXSBJDMX_BJSL,0) "); + SQL.Add(" when M.XLXSBJDMX_JLDW in ('KM','Km','千米') then isnull(M.XLXSBJDMX_BJSL,0)*1000.0 "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when M.XLXSBJDMX_JLDW='{0}' then isnull(M.XLXSBJDMX_BJSL,0)*{1} ", sKey, dicLenJLDWTD[sKey])); + } + SQL.Add(" else isnull(M.XLXSBJDMX_BJSL,0) end as BJSLM, "); + SQL.Add(" (select min(Q2.XLXSBJPJWJSLQJ_BJSLXX) from XLXSBJPJWJSLQJ Q2 where isnull(L.XLXLB_WJ,0)>=Q2.XLXSBJPJWJSLQJ_CPWJXX and isnull(L.XLXLB_WJ,0)<=Q2.XLXSBJPJWJSLQJ_CPWJSX) as MIN_BJSLXX, "); + SQL.Add(" (select max(Q3.XLXSBJPJWJSLQJ_BJSLSX) from XLXSBJPJWJSLQJ Q3 where isnull(L.XLXLB_WJ,0)>=Q3.XLXSBJPJWJSLQJ_CPWJXX and isnull(L.XLXLB_WJ,0)<=Q3.XLXSBJPJWJSLQJ_CPWJSX) as MAX_BJSLSX, "); + SQL.Add(" (select top 1 Q4.XLXSBJPJWJSLQJ_PJWLID from XLXSBJPJWJSLQJ Q4 "); + SQL.Add(" where isnull(L.XLXLB_WJ,0)>=Q4.XLXSBJPJWJSLQJ_CPWJXX and isnull(L.XLXLB_WJ,0)<=Q4.XLXSBJPJWJSLQJ_CPWJSX "); + SQL.Add(" and ( "); + SQL.Add(" (case when M.XLXSBJDMX_JLDW in ('M','米') then isnull(M.XLXSBJDMX_BJSL,0) when M.XLXSBJDMX_JLDW in ('KM','Km','千米') then isnull(M.XLXSBJDMX_BJSL,0)*1000.0 else isnull(M.XLXSBJDMX_BJSL,0) end between Q4.XLXSBJPJWJSLQJ_BJSLXX and Q4.XLXSBJPJWJSLQJ_BJSLSX) "); + SQL.Add(" or ((case when M.XLXSBJDMX_JLDW in ('M','米') then isnull(M.XLXSBJDMX_BJSL,0) when M.XLXSBJDMX_JLDW in ('KM','Km','千米') then isnull(M.XLXSBJDMX_BJSL,0)*1000.0 else isnull(M.XLXSBJDMX_BJSL,0) end) < (select min(Q5.XLXSBJPJWJSLQJ_BJSLXX) from XLXSBJPJWJSLQJ Q5 where isnull(L.XLXLB_WJ,0)>=Q5.XLXSBJPJWJSLQJ_CPWJXX and isnull(L.XLXLB_WJ,0)<=Q5.XLXSBJPJWJSLQJ_CPWJSX) and Q4.XLXSBJPJWJSLQJ_BJSLXX=(select min(Q6.XLXSBJPJWJSLQJ_BJSLXX) from XLXSBJPJWJSLQJ Q6 where isnull(L.XLXLB_WJ,0)>=Q6.XLXSBJPJWJSLQJ_CPWJXX and isnull(L.XLXLB_WJ,0)<=Q6.XLXSBJPJWJSLQJ_CPWJSX)) "); + SQL.Add(" or ((case when M.XLXSBJDMX_JLDW in ('M','米') then isnull(M.XLXSBJDMX_BJSL,0) when M.XLXSBJDMX_JLDW in ('KM','Km','千米') then isnull(M.XLXSBJDMX_BJSL,0)*1000.0 else isnull(M.XLXSBJDMX_BJSL,0) end) > (select max(Q7.XLXSBJPJWJSLQJ_BJSLSX) from XLXSBJPJWJSLQJ Q7 where isnull(L.XLXLB_WJ,0)>=Q7.XLXSBJPJWJSLQJ_CPWJXX and isnull(L.XLXLB_WJ,0)<=Q7.XLXSBJPJWJSLQJ_CPWJSX) and Q4.XLXSBJPJWJSLQJ_BJSLSX=(select max(Q8.XLXSBJPJWJSLQJ_BJSLSX) from XLXSBJPJWJSLQJ Q8 where isnull(L.XLXLB_WJ,0)>=Q8.XLXSBJPJWJSLQJ_CPWJXX and isnull(L.XLXLB_WJ,0)<=Q8.XLXSBJPJWJSLQJ_CPWJSX)) "); + SQL.Add(" ) "); + SQL.Add(" order by Q4.XLXSBJPJWJSLQJ_BJSLXX,Q4.XLXSBJPJWJSLQJ_BJSLSX) as PJWLID, "); + SQL.Add(" (select top 1 isnull(JG.XLZPPJJG_PJJG,0) from XLZPPJ PJ left join XLZPPJJG JG on JG.XLZPPJJG_PJCZ=PJ.XLZPPJ_PJCZ and isnull(JG.XLZPPJJG_PJWJ,0)=isnull(PJ.XLZPPJ_PJWJ,0) and isnull(JG.XLZPPJJG_PJNJ,0)=isnull(PJ.XLZPPJ_PJNJ,0) and isnull(JG.XLZPPJJG_PJKD,0)=isnull(PJ.XLZPPJ_PJKD,0) "); + SQL.Add(" where PJ.XLZPPJ_PJWLID=(select top 1 Q9.XLXSBJPJWJSLQJ_PJWLID from XLXSBJPJWJSLQJ Q9 where isnull(L.XLXLB_WJ,0)>=Q9.XLXSBJPJWJSLQJ_CPWJXX and isnull(L.XLXLB_WJ,0)<=Q9.XLXSBJPJWJSLQJ_CPWJSX order by Q9.XLXSBJPJWJSLQJ_BJSLXX,Q9.XLXSBJPJWJSLQJ_BJSLSX) "); + SQL.Add(" and isnull(PJ.XLZPPJ_TYBZ,'N')<>'Y' and (PJ.XLZPPJ_QYRQ is null or PJ.XLZPPJ_QYRQ<=:pDtNow) and JG.XLZPPJJG_YXQS<=:pDtNow and (JG.XLZPPJJG_YXQZ>=:pDtNow or JG.XLZPPJJG_YXQZ is null) order by JG.XLZPPJJG_YXQS desc) as PJJG "); + SQL.Add(" from XLXSBJDMX M "); + SQL.Add(" LEFT JOIN XLXSBJXLGGTHB ON XLXSBJXLGGTHB_XLGGID=M.XLXSBJDMX_XLGGID "); + SQL.Add(" left join (select XLXLB_XLXHID,XLXLB_XLGGID,XLXLB_XLBZID,XLXLB_DYDJID,max(XLXLB_WJ) AS XLXLB_WJ FROM XLXLB WHERE 1=1 GROUP BY XLXLB_XLXHID,XLXLB_XLGGID,XLXLB_XLBZID,XLXLB_DYDJID) L on L.XLXLB_XLXHID=M.XLXSBJDMX_XLXHID and L.XLXLB_XLGGID=XLXSBJXLGGTHB_XLGGIDCH and L.XLXLB_XLBZID=M.XLXSBJDMX_XLBZID and L.XLXLB_DYDJID=M.XLXSBJDMX_DYDJID "); + SQL.Add(" where M.XLXSBJDMX_BJDID=:pBJDID "); + if (!sBJDXHList.Equals("")) + { + SQL.Add("and " + CMISproDataBase.GetWhereEqual("M.XLXSBJDMX_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and M.XLXSBJDMX_XH > :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + if (VnewID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pVID and V_BJDXH_BJDID = M.XLXSBJDMX_BJDID and V_BJDXH_BJDXH = M.XLXSBJDMX_XH) "); + SQL.ParamByName("pVID").Value = VnewID; + } + if (bYBJ) + SQL.Add(" and M.XLXSBJDMX_JGBBJ<>0.0"); + if (bWG) + SQL.Add(" and M.XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and M.XLXSBJDMX_WGCPBZ<>'Y'"); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and M.XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + SQL.Add(" ) A "); + SQL.Add(") sor "); + SQL.Add("on (tar.XLXSBJDYZZ0_BJDID=sor.BJDID and tar.XLXSBJDYZZ0_XH=sor.XH) "); + SQL.Add("when matched then update set "); + SQL.Add(string.Format("tar.XLXSBJDYZZ0_YZZ{0}=sor.YZZ", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pDtNow").Value = DateTime.Now; + dberp.ExecSQL(SQL); + } + } + } + + sErrorNum = "ErrorI"; + //自动插入TJYS=I的调价因子值 + if (dicTJYZList.ContainsKey("sTJYSListI")) + { + sTJYZ = dicTJYZList["sTJYSListI"].Trim().Split(new Char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); + for (int i = 0; i < sTJYZ.Length; i++) + { + if (!sTJYZ[i].Trim().Equals("")) + { + if (GetYZXXByYZID(sTJYZ[i].Trim()).XLXSTZYZ_JJFS == "JJ") + sJJYZIDList += sTJYZ[i].Trim() + ","; + /* + merge into 目标表 a + using 源表 b + on(a.条件字段1=b.条件字段1 and a.条件字段2=b.条件字段2 ……) + when matched then update set a.更新字段=b.字段 + when not matched then insert into a(字段1,字段2……)values(值1,值2……) + */ + string sJGBID = string.Empty; + if (dicYZXX.ContainsKey(sTJYZ[i].Trim())) + sJGBID = dicYZXX[sTJYZ[i].Trim()]; + + + List XLTZlist = new List(); + SQL.Clear(); + SQL.Add(" select XLXSBJDYZZJ_YZZ,XLXSBJDYZZJ_TZLX,XLXSBJDYZZJ_TZ,XLXSBJDYZZJ_GYFLBM,XLXSBJDYZZJ_XHBBH from XLXSBJDYZZJ order by XLXSBJDYZZJ_GYFLBM "); + DataSet ds = dberp.OpenDataSet(SQL); + for (int z = 0; z < ds.Tables[0].Rows.Count; z++) + { + XLTZ tz = new XLTZ(); + tz.TZLX = ds.Tables[0].Rows[z]["XLXSBJDYZZJ_TZLX"].ToString().Trim(); + tz.TZ = ds.Tables[0].Rows[z]["XLXSBJDYZZJ_TZ"].ToString().Trim(); + tz.GYFLBM = ds.Tables[0].Rows[z]["XLXSBJDYZZJ_GYFLBM"].ToString().Trim(); + tz.XHBBH = ds.Tables[0].Rows[z]["XLXSBJDYZZJ_XHBBH"].ToString().Trim(); + tz.YZZ = CMISproConvert.StrToFloat(ds.Tables[0].Rows[z]["XLXSBJDYZZJ_YZZ"].ToString().Trim()); + XLTZlist.Add(tz); + } + + SQL.Clear(); + SQL.Add("select XLXSBJDMX_BJDID,XLXSBJDMX_XH,XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID,XLXSBJDMX_XLBZID,XLXSBJDMX_DYDJID from XLXSBJDMX "); + SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID "); + SQL.ParamByName("pBJDID").Value = sBJDID; + if (!sBJDXHList.Equals("")) + { + SQL.Add("and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDMX_XH > :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + if (VnewID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pVID and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "); + SQL.ParamByName("pVID").Value = VnewID; + } + if (bYBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + if (bWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y'"); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + ds = dberp.OpenDataSet(SQL); + for (int z = 0; z < ds.Tables[0].Rows.Count; z++) + { + double dXH = CMISproConvert.StrToFloat(ds.Tables[0].Rows[z]["XLXSBJDMX_XH"].ToString().Trim()); + string sXLXHID = ds.Tables[0].Rows[z]["XLXSBJDMX_XLXHID"].ToString().Trim(); + string sXLGGID = ds.Tables[0].Rows[z]["XLXSBJDMX_XLGGID"].ToString().Trim(); + string sXLBZID = ds.Tables[0].Rows[z]["XLXSBJDMX_XLBZID"].ToString().Trim(); + string sDYDJID = ds.Tables[0].Rows[z]["XLXSBJDMX_DYDJID"].ToString().Trim(); + double dYZZ = GetCPFYL(sXLXHID, sXLGGID, sXLBZID, sDYDJID, XLTZlist); + SQL.Clear(); + SQL.Add("update XLXSBJDYZZ0 set "); + SQL.Add(string.Format(" XLXSBJDYZZ0_YZZ{0}=:pYZZ ", sTJYZ[i].Trim().Replace("BJ", ""))); + SQL.Add("where XLXSBJDYZZ0_BJDID=:pBJDID and XLXSBJDYZZ0_XH=:pXH "); + SQL.ParamByName("pYZZ").Value = dYZZ; + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pXH").Value = dXH; + dberp.ExecSQL(SQL); + + + } + } + } + } + + sJJYZIDList = sJJYZIDList.TrimEnd(','); + if (!string.IsNullOrEmpty(sJJYZIDList)) + { + SQL.Clear(); + SQL.Add("merge into XLXSBJDYZZ0 using( "); + SQL.Add(" select XLXSBJDMX_XH as XH,("); + SQL.Add(" case when :pBJU003 in ('KM', '千米') and XLXSBJDMX_JLDW in ('M', '米') then 0.001"); + SQL.Add(" when :pBJU003 in ('M', '米') and XLXSBJDMX_JLDW in ('Km', '千米') then 1000.0"); + SQL.Add(" when :pBJU003 in ('M', '米') and XLXSBJDMX_JLDW in ('M', '米') then 1.0"); + SQL.Add(" when :pBJU003 in ('KM', '千米') and XLXSBJDMX_JLDW in ('Km', '千米') then 1.0"); + string sTDDWList = "("; + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when :pBJU003 in ('KM', '千米') and XLXSBJDMX_JLDW='{0}' then 0.001*{1} ", sKey, dicLenJLDWTD[sKey])); + SQL.Add(string.Format(" when :pBJU003 in ('M', '米') and XLXSBJDMX_JLDW='{0}' then {1} ", sKey, dicLenJLDWTD[sKey])); + SQL.Add(string.Format(" when :pBJU003 = '{0}' and XLXSBJDMX_JLDW in ('Km', '千米') then 1000.0/{1} ", sKey, dicLenJLDWTD[sKey])); + SQL.Add(string.Format(" when :pBJU003 = '{0}' and XLXSBJDMX_JLDW in ('M', '米') then 1.0/{1} ", sKey, dicLenJLDWTD[sKey])); + sTDDWList += "'" + sKey + "',"; + } + sTDDWList = sTDDWList.TrimEnd(','); + sTDDWList += ")"; + SQL.Add(" when :pBJU003 in " + sTDDWList + " and XLXSBJDMX_JLDW in " + sTDDWList + " then 1.0"); + SQL.Add(" when :pBJU003 in ('T', '吨') and XLXSBJDMX_JLDW in ('Kg', '千克', '公斤') then 0.001"); + SQL.Add(" when :pBJU003 in ('KG', '千克', '公斤') and XLXSBJDMX_JLDW in ('T', '吨') then 1000.0"); + SQL.Add(" when :pBJU003 in ('KG', '千克', '公斤') and XLXSBJDMX_JLDW in ('Kg', '千克', '公斤') then 1.0"); + SQL.Add(" when :pBJU003 in ('T', '吨') and XLXSBJDMX_JLDW in ('T', '吨') then 1.0"); + if (sBJU003.ToUpper().Equals("KM") || sBJU003.ToUpper().Equals("千米")) + { + SQL.Add(" when :pBJU003 in ('KM', '千米') and XLXSBJDMX_JLDW in ('Kg', '千克', '公斤') then (case when XLXSCLQD_CLZL = 0 then 0 else 1.0/XLXSCLQD_CLZL end)"); + SQL.Add(" when :pBJU003 in ('M', '米') and XLXSBJDMX_JLDW in ('Kg', '千克', '公斤') then (case when XLXSCLQD_CLZL = 0 then 0 else (1.0/XLXSCLQD_CLZL)*1000.0 end)"); + SQL.Add(" when :pBJU003 in ('KG', '千克', '公斤') and XLXSBJDMX_JLDW in ('Km', '千米') then XLXSCLQD_CLZL"); + SQL.Add(" when :pBJU003 in ('KM', '千米') and XLXSBJDMX_JLDW in ('T', '吨') then (case when XLXSCLQD_CLZL = 0 then 0 else (1.0/XLXSCLQD_CLZL)*1000.0 end)"); + SQL.Add(" when :pBJU003 in ('M', '米') and XLXSBJDMX_JLDW in ('T', '吨') then (case when XLXSCLQD_CLZL = 0 then 0 else (1.0/XLXSCLQD_CLZL)* 1000.0*1000.0 end)"); + SQL.Add(" when :pBJU003 in ('KG', '千克', '公斤') and XLXSBJDMX_JLDW in ('Km', '千米') then XLXSCLQD_CLZL"); + SQL.Add(" when :pBJU003 in ('T', '吨') and XLXSBJDMX_JLDW in ('Km', '千米') then XLXSCLQD_CLZL/1000.0"); + SQL.Add(" when :pBJU003 in ('KG', '千克', '公斤') and XLXSBJDMX_JLDW in ('M', '米') then XLXSCLQD_CLZL/1000.0"); + SQL.Add(" when :pBJU003 in ('T', '吨') and XLXSBJDMX_JLDW in ('M', '米') then XLXSCLQD_CLZL/1000.0/1000.0"); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when :pBJU003 in ('KG', '千克', '公斤') and XLXSBJDMX_JLDW='{0}' then {1}*XLXSCLQD_CLZL/1000.0 ", sKey, dicLenJLDWTD[sKey])); + SQL.Add(string.Format(" when :pBJU003 in ('T', '吨') and XLXSBJDMX_JLDW='{0}' then {1}*XLXSCLQD_CLZL/1000.0/1000.0 ", sKey, dicLenJLDWTD[sKey])); + SQL.Add(string.Format(" when :pBJU003 = '{0}' and XLXSBJDMX_JLDW in ('KG', '千克', '公斤') then 1000.0/XLXSCLQD_CLZL/{1} ", sKey, dicLenJLDWTD[sKey])); + SQL.Add(string.Format(" when :pBJU003 = '{0}' and XLXSBJDMX_JLDW in ('T', '吨') then 1000.0*1000.0/XLXSCLQD_CLZL/{1} ", sKey, dicLenJLDWTD[sKey])); + } + } + else if (sBJU003.ToUpper().Equals("米") || sBJU003.ToUpper().Equals("M")) + { + SQL.Add(" when :pBJU003 in ('KM', '千米') and XLXSBJDMX_JLDW in ('Kg', '千克', '公斤') then (case when XLXSCLQD_CLZL = 0 then 0 else (1.0/XLXSCLQD_CLZL)*(1/1000.0) end)"); + SQL.Add(" when :pBJU003 in ('M', '米') and XLXSBJDMX_JLDW in ('Kg', '千克', '公斤') then (case when XLXSCLQD_CLZL = 0 then 0 else 1.0/XLXSCLQD_CLZL end)"); + SQL.Add(" when :pBJU003 in ('KG', '千克', '公斤') and XLXSBJDMX_JLDW in ('Km', '千米') then XLXSCLQD_CLZL*1000.0"); + SQL.Add(" when :pBJU003 in ('KM', '千米') and XLXSBJDMX_JLDW in ('T', '吨') then (case when XLXSCLQD_CLZL = 0 then 0 else (1.0/XLXSCLQD_CLZL) end)"); + SQL.Add(" when :pBJU003 in ('M', '米') and XLXSBJDMX_JLDW in ('T', '吨') then (case when XLXSCLQD_CLZL = 0 then 0 else (1.0/XLXSCLQD_CLZL)*1000.0 end)"); + SQL.Add(" when :pBJU003 in ('KG', '千克', '公斤') and XLXSBJDMX_JLDW in ('Km', '千米') then XLXSCLQD_CLZL*1000.0"); + SQL.Add(" when :pBJU003 in ('T', '吨') and XLXSBJDMX_JLDW in ('Km', '千米') then XLXSCLQD_CLZL"); + SQL.Add(" when :pBJU003 in ('KG', '千克', '公斤') and XLXSBJDMX_JLDW in ('M', '米') then XLXSCLQD_CLZL"); + SQL.Add(" when :pBJU003 in ('T', '吨') and XLXSBJDMX_JLDW in ('M', '米') then XLXSCLQD_CLZL/1000.0"); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format(" when :pBJU003 in ('KG', '千克', '公斤') and XLXSBJDMX_JLDW='{0}' then {1}*XLXSCLQD_CLZL ", sKey, dicLenJLDWTD[sKey])); + SQL.Add(string.Format(" when :pBJU003 in ('T', '吨') and XLXSBJDMX_JLDW='{0}' then {1}*XLXSCLQD_CLZL/1000.0 ", sKey, dicLenJLDWTD[sKey])); + SQL.Add(string.Format(" when :pBJU003 = '{0}' and XLXSBJDMX_JLDW in ('KG', '千克', '公斤') then 1/XLXSCLQD_CLZL/{1} ", sKey, dicLenJLDWTD[sKey])); + SQL.Add(string.Format(" when :pBJU003 = '{0}' and XLXSBJDMX_JLDW in ('T', '吨') then 1000.0/XLXSCLQD_CLZL/{1} ", sKey, dicLenJLDWTD[sKey])); + } + } + SQL.Add(" when :pBJU003=upper(XLXSBJDMX_JLDW) and :pBJU003 not in ('M','KM','米','千米','KG','T','千克','公斤','吨') "); + SQL.Add(" and XLXSBJDMX_JLDW not in ('M','Km','米','千米','Kg','T','千克','公斤','吨') "); + foreach (string sKey in dicLenJLDWTD.Keys) + { + SQL.Add(string.Format("and XLXSBJDMX_JLDW<>'{0}' ", sKey)); + } + SQL.Add(" then 1.0 else 1.0"); + SQL.Add(" end "); + SQL.Add(" ) as HSBL "); + + SQL.Add(" from XLXSBJDMX "); + SQL.Add(" left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSBJDMX_XLXHID and XLXSCLQD_XLGGID=XLXSBJDMX_XLGGID and XLXSCLQD_XLBZID=XLXSBJDMX_XLBZID and XLXSCLQD_DYDJID=XLXSBJDMX_DYDJID and XLXSCLQD_WPID='ZZZZ' "); + SQL.Add("where XLXSBJDMX_BJDID=:pBJDID and isnull(XLXSCLQD_CLZL,0)<>0 "); + if (!sBJDXHList.Equals("")) + { + SQL.Add("and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDMX_XH > :minBJDXH"); + } + if (VnewID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pVID and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "); + SQL.ParamByName("pVID").Value = VnewID; + } + if (bYBJ) + SQL.Add(" and XLXSBJDMX_JGBBJ<>0.0"); + if (bWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ='Y'"); + if (bFWG) + SQL.Add(" and XLXSBJDMX_WGCPBZ<>'Y'"); + if (tWHSJCondition != DateTime.MinValue) + { + SQL.Add(" and XLXSBJDMX_WHSJ=:pWHSJ"); + SQL.ParamByName("pWHSJ").Value = tWHSJCondition; + } + SQL.Add(" ) sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSBJDYZZ0_BJDID=:pBJDID and XLXSBJDYZZ0_XH=XH "); + if (!sBJDXHList.Equals("")) + { + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDYZZ0_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDYZZ0_XH > :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + CMISproSession tSession = CMISproSessionManager.GetCurrentSession(); + double dSL = string.IsNullOrEmpty((tSession.GetOption(100860000, "BJU055"))) ? 0 : (double.Parse((tSession.GetOption(100860000, "BJU055")))) / 100.0; ; + bool IsHSWL = (dSL == 0); + bool IsHS = GetBJDHSBZ(sBJDID); + string[] JJYZIDnum = sJJYZIDList.Split(','); + for (int j = 0; j < JJYZIDnum.Length; j++) + { + if (j == 0) + { + if ((!IsHS) && (!IsHSWL)) + { + SQL.Add(string.Format(" XLXSBJDYZZ0_YZZ{0}=XLXSBJDYZZ0_YZZ{0}*HSBL / (1+:pSL)", JJYZIDnum[j].Trim().Replace("BJ", ""))); + SQL.ParamByName("pSL").Value = dSL.ToString(); + } + else + { + SQL.Add(string.Format(" XLXSBJDYZZ0_YZZ{0}=XLXSBJDYZZ0_YZZ{0}*HSBL", JJYZIDnum[j].Trim().Replace("BJ", ""))); + } + } + else + { + if ((!IsHS) && (!IsHSWL)) + { + SQL.Add(string.Format(" ,XLXSBJDYZZ0_YZZ{0}=XLXSBJDYZZ0_YZZ{0}*HSBL / (1+:pSL)", JJYZIDnum[j].Trim().Replace("BJ", ""))); + SQL.ParamByName("pSL").Value = dSL.ToString(); + } + else + { + SQL.Add(string.Format(" ,XLXSBJDYZZ0_YZZ{0}=XLXSBJDYZZ0_YZZ{0}*HSBL", JJYZIDnum[j].Trim().Replace("BJ", ""))); + } + } + } + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pBJU003").Value = sBJU003; + + dberp.ExecSQL(SQL); + } + + + sErrorNum = ""; + + } + catch (Exception ex) + { + sErrorNum = sErrorNum + " " + ex.Message; + } + } + + //根据价格表获取JGBBJ、JGBJJ、CLCB、BJDHQCLCB + public static Dictionary GetBJDMXBaseJG( + string sBJDID, string sBJRQ, bool bJZBJHS, int iXSWS, string sTJ, string sLJ, string sBJU003, string sBJU018,//报价单相关要素 + string sJGBID, string sBJLY, string sJGCIDS,//价格表相关要素 + string sBJFLID, string sBJDHQLY, string sTZCLHQ, string sTBJCLID, string sLBJCLID,//报价分类相关要素 + string sXLXHID, string sXLGGID, string sXLBZID, string sDYDJID, string sJLDW, string sBJDBJLY, string sWGCPBZ, string sOldJGBBJ, string sOldJGBJJ, string sOldCLCB, string sOldBJDHQCLCB + ) + { + string sJGBJLDW = XLBJDUtils.GetJGBJLDW(sJGBID, sXLXHID, sXLGGID, sXLBZID, sDYDJID, sBJU003, sBJU018); + string sJGBJSDW = XLBJDUtils.GetsJSDW(sJGBJLDW, sBJU003); + + string sCPJJ = ""; + string sJJ = ""; + string sCLCB = ""; + string sBJDHQCLCB = ""; + double dBJDJLDWHSBL = 1; + string sJGBIDS = GetXLXSJGBXXByJGBID(sJGBID).XLXSJGB_JGBIDS; + string sJSBLFS = GetXLXSJGBXXByJGBID(sJGBID).XLXSJGB_JSBLFS; + string sJGBTJYS = GetXLXSJGBXXByJGBID(sJGBID).XLXSJGB_TJYS; + BJFLXX bjflxx = GetBJFLXX(sBJFLID); + string sJGBJJLY = GetXLXSJGBXXByJGBID(sJGBID).XLXSJGB_JJLY; + bool ExistsXLXSBJFLBJRHQCL = CMISproDataBase.ExistsRecord("DBERP", + string.Format("select top 1 XLXSBJFLBJRHQCL_BJCLID from XLXSBJFLBJRHQCL where XLXSBJFLBJRHQCL_BJFLID='{0}'", sBJFLID)); + + bool JgIsZero = false;//是否存在有材料用量、无材料价格的情况 + bool IsJGEJGB = XLBJDUtils.IsJGEJGB(sJGBID.Trim()); + Dictionary Result = new Dictionary(); + + if (IsJGEJGB) + { + Result.Add("JZ01", 0); + Result.Add("JZ02", 0); + Result.Add("JZ03", 0); + Result.Add("JZ04", 0); + Result.Add("JZ05", 0); + Result.Add("JZ06", 0); + Result.Add("JZ07", 0); + Result.Add("JZ08", 0); + Result.Add("JZ09", 0); + Result.Add("JZ10", 0); + } + + if (XLBJDUtils.IsJGFJGBMX(sBJRQ, sXLXHID, sXLGGID, sXLBZID, sDYDJID)) + { + double dJGFJJ = 0; + double dJGFBJ = 0; + string sJGFJLDW = ""; + XLBJDUtils.GetJGBJJ_JGF(sBJRQ, sXLXHID, sXLGGID, sXLBZID, sDYDJID, bJZBJHS, sBJU018, ref dJGFJJ, ref dJGFBJ, ref sJGFJLDW); + //M、KM、米、千米、KG、T、千克、公斤、吨 + if (sJCJLDWList.IndexOf(sJGFJLDW.ToUpper()) >= 0 + && sJCJLDWList.IndexOf(sJLDW.ToUpper()) >= 0) + { + dBJDJLDWHSBL = XLBJDUtils.GetJLDWHSBL_JG(sJGFJLDW, sJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID); + } + else + { + dBJDJLDWHSBL = XLBJDUtils.GetJLDWHSBL_JG(sJGFJLDW, sJLDW); + } + sCPJJ = dJGFBJ.ToString().Trim(); + sJJ = dJGFJJ.ToString().Trim(); + sCLCB = dJGFJJ.ToString().Trim(); + sBJDHQCLCB = dJGFJJ.ToString().Trim(); + } + else + { + if (!IsJGEJGB)//是否表价实时计算价格表 + { + //M、KM、米、千米、KG、T、千克、公斤、吨 + if (sJCJLDWList.IndexOf(sJGBJSDW.ToUpper()) >= 0 + && sJCJLDWList.IndexOf(sJLDW.ToUpper()) >= 0) + { + dBJDJLDWHSBL = XLBJDUtils.GetJLDWHSBL_JG(sJGBJLDW, sJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID); + } + else + { + dBJDJLDWHSBL = XLBJDUtils.GetJLDWHSBL_JG(sJGBJLDW, sJLDW); + + } + + + if (sJGBTJYS.Equals("3"))//3|表价(现行价)=基价(出厂价+材料价价差)&调价 + { + + bool bExistBJDHQ = false; + if (sTZCLHQ.Equals("Y"))//是否允许调整材料行情 + { + if (!sBJDID.Trim().Equals("")) + { + if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select top 1 XLXSBJDCLHQ_BJCLID from XLXSBJDCLHQ where XLXSBJDCLHQ_BJDID='{0}'", sBJDID))) + { + bExistBJDHQ = true; + } + } + } + + Dictionary dicJJYZList = new Dictionary(); + XLBJDUtils.GetFromJGB_BJDHQ_JGBTJYS3(sXLXHID, sXLGGID, sXLBZID, sDYDJID, + sBJDID, sBJRQ, bJZBJHS, iXSWS, + sJGBID, sJGBIDS, sJLDW, sBJU003, sBJU018, sJSBLFS, + sTBJCLID, sLBJCLID, sTJ, sLJ, bExistBJDHQ, + ref sCPJJ, ref sJJ, ref sBJDHQCLCB, ref sCLCB, ref dicJJYZList); + + double dBJD_JGB_JLDWHSBL = XLBJDUtils.GetJLDWHSBL_JG(sJLDW, sJGBJLDW); + sCPJJ = Convert.ToString(CMISproConvert.StrToFloat(sCPJJ, 0) * dBJD_JGB_JLDWHSBL); + sJJ = Convert.ToString(CMISproConvert.StrToFloat(sJJ, 0) * dBJD_JGB_JLDWHSBL); + sBJDHQCLCB = Convert.ToString(CMISproConvert.StrToFloat(sBJDHQCLCB, 0) * dBJD_JGB_JLDWHSBL); + sCLCB = Convert.ToString(CMISproConvert.StrToFloat(sCLCB, 0) * dBJD_JGB_JLDWHSBL); + + } + else + { + //记录衍生产品原四要素 + string tmpXLXHID = sXLXHID; + string tmpXLGGID = sXLGGID; + string tmpXLBZID = sXLBZID; + string tmpDYDJID = sDYDJID; + int iSYXH = 0; + double dYSJDZ = 1; + double dCLCBYSJDZ = 1; + bool bExistedSYJGBMX = false; + if (sJGBTJYS.Equals("1")) + { + //因素1先将衍生产品四要素替换成所依四要素 + bExistedSYJGBMX = ExistedSYJGBMX(sXLXHID, sXLGGID, sXLBZID, sDYDJID, sJGBID, ref iSYXH, ref dYSJDZ, ref dCLCBYSJDZ); + } + if (sBJLY.Trim().Equals("D") || sBJLY.Trim().Equals("C")) + { + XLBJDInfo.GetFromJGB(sXLXHID, sXLGGID, sXLBZID, sDYDJID, sJGBID, sJGCIDS, bJZBJHS, sBJU018, ref sCPJJ, ref sJJ, ref sCLCB); + if (sJCJLDWList.IndexOf(sJGBJSDW.ToUpper()) >= 0) + { + if (bExistedSYJGBMX) + GetJGBMXBySYXH(sJGBID, iSYXH, ref sXLXHID, ref sXLGGID, ref sXLBZID, ref sDYDJID); + + Dictionary aryBJHQ = XLBJDUtils.GetCLCB_BJHQ(sBJFLID, sJGBID, sBJRQ, sXLXHID, sXLGGID, sXLBZID, sDYDJID, sJGBJLDW, sBJU003); + JgIsZero = aryBJHQ["JgIsZero"] == 1 ? true : false; + if (bExistedSYJGBMX) + { + sXLXHID = tmpXLXHID; + sXLGGID = tmpXLGGID; + sXLBZID = tmpXLBZID; + sDYDJID = tmpDYDJID; + } + + if (bJZBJHS) + sCLCB = aryBJHQ["CLCB"].ToString(); + else + sCLCB = aryBJHQ["WSCLCB"].ToString(); + } + } + else + { + if (sJCJLDWList.IndexOf(sJGBJSDW.ToUpper()) >= 0) + { + if (ExistsXLXSBJFLBJRHQCL) + { + if (sBJU018.Equals("Y") && XLBJDUtils.sJQCDJLDWList.Contains(sJGBJLDW.ToUpper()))//若BJU018参数值为Y,且为价格表单位为长度单位,则重新计算成本时,成本的小数位数为XLBJDUtils.JQJSXSWS + { + XLBJDUtils.GetFromJGB_BJRHQ(sXLXHID, sXLGGID, sXLBZID, sDYDJID, + sJGBID, sJGCIDS, sBJRQ, bJZBJHS, XLBJDUtils.JQJSXSWS.ToString(), + sBJFLID, sJGBJLDW, sBJU003, ref sCPJJ, ref sJJ, ref sCLCB, ref JgIsZero); + } + else + { + XLBJDUtils.GetFromJGB_BJRHQ(sXLXHID, sXLGGID, sXLBZID, sDYDJID, + sJGBID, sJGCIDS, sBJRQ, bJZBJHS, iXSWS.ToString(), + sBJFLID, sJGBJLDW, sBJU003, ref sCPJJ, ref sJJ, ref sCLCB, ref JgIsZero); + } + } + else + { + XLBJDInfo.GetFromJGB(sXLXHID, sXLGGID, sXLBZID, sDYDJID, sJGBID, sJGCIDS, bJZBJHS, sBJU018, ref sCPJJ, ref sJJ, ref sCLCB); + } + } + else + { + XLBJDInfo.GetFromJGB(sXLXHID, sXLGGID, sXLBZID, sDYDJID, sJGBID, sJGCIDS, bJZBJHS, sBJU018, ref sCPJJ, ref sJJ, ref sCLCB); + } + } + string sHasCLQD = "N"; + + if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSCLQD where XLXSCLQD_WPID='ZZZZ' and XLXSCLQD_XLXHID='{0}' and XLXSCLQD_XLGGID='{1}' and XLXSCLQD_XLBZID='{2}' and XLXSCLQD_DYDJID='{3}'", + sXLXHID, sXLGGID, sXLBZID, sDYDJID.Equals("") ? " " : sDYDJID))) + { + sHasCLQD = "Y"; + } + if (bExistedSYJGBMX && sHasCLQD.Equals("N")) + { + //记录衍生产品原四要素 + tmpXLXHID = sXLXHID; + tmpXLGGID = sXLGGID; + tmpXLBZID = sXLBZID; + tmpDYDJID = sDYDJID; + XLBJDUtils.GetJGBMXBySYXH(sJGBID, iSYXH, ref sXLXHID, ref sXLGGID, ref sXLBZID, ref sDYDJID); + } + + + if (sBJDHQLY.Trim().Equals("1")) + { + if (JgIsZero)//若存在有材料用量、无材料价格的情况,则算出的报价单行情料价改为负数显示 + sBJDHQCLCB = Convert.ToString(CMISproConvert.StrToFloat(sCLCB) * -1); + else + sBJDHQCLCB = sCLCB; + } + else + { + Dictionary aryBJRHQ = XLBJDUtils.GetCLCB_BJRHQ(sBJRQ, sXLXHID, sXLGGID, sXLBZID, sDYDJID); + JgIsZero = aryBJRHQ["JgIsZero"] == 1 ? true : false; + if (JgIsZero)//若存在有材料用量、无材料价格的情况,则算出的报价单行情料价改为负数显示 + { + if (bJZBJHS) + sBJDHQCLCB = Convert.ToString(aryBJRHQ["CLCB"] * -1); + else + sBJDHQCLCB = Convert.ToString(aryBJRHQ["WSCLCB"] * -1); + } + else + { + if (bJZBJHS) + sBJDHQCLCB = aryBJRHQ["CLCB"].ToString(); + else + sBJDHQCLCB = aryBJRHQ["WSCLCB"].ToString(); + } + + //统一为价格表计量单位的价格 + double dBJU003_JGB_JLDWHSBL = XLBJDUtils.GetJLDWHSBL_JG(sBJU003, sJGBJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID); + sBJDHQCLCB = Convert.ToString(CMISproConvert.StrToFloat(sBJDHQCLCB) * dBJU003_JGB_JLDWHSBL); + } + if (sTZCLHQ.Trim().Equals("Y"))//是否允许调整材料行情 + { + if (!sBJDID.Equals("")) + { + if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select top 1 XLXSBJDCLHQ_BJCLID from XLXSBJDCLHQ where XLXSBJDCLHQ_BJDID='{0}'", sBJDID))) + { + Dictionary aryBJDHQCLCB = XLBJDUtils.GetCLCB_BJDHQ(sBJDID, sBJRQ, + sXLXHID, sXLGGID, + sXLBZID, sDYDJID); + if (bJZBJHS) + { + sBJDHQCLCB = aryBJDHQCLCB["CLCB"].ToString(); + } + else + { + sBJDHQCLCB = aryBJDHQCLCB["WSCLCB"].ToString(); + } + + //统一为价格表计量单位的价格 + double dBJU003_JGB_JLDWHSBL = XLBJDUtils.GetJLDWHSBL_JG(sBJU003, sJGBJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID); + + if (bjflxx.XLXSBJFL_ABJDHQJSBJ == "Y" && sJGBJJLY == "A") + { + if (ISExistJGBMX(sJGBID, sJGCIDS, sXLXHID, sXLGGID, sXLBZID, sDYDJID) || bjflxx.XLXSBJFL_FJGBCPBJSBJ == "N") + { + sJJ = sBJDHQCLCB; + sCPJJ = Convert.ToString(NumberUtils.RoundX(XLBJDUtils.GetCPJJbyCLCB(NumberUtils.RoundX(CMISproConvert.StrToFloat(sJJ), iXSWS), sJGBID, sJGCIDS, sXLXHID, sXLGGID, sXLBZID, sDYDJID), iXSWS) * dYSJDZ); + sJJ = Convert.ToString(CMISproConvert.StrToFloat(sJJ) * dBJU003_JGB_JLDWHSBL); + sCPJJ = Convert.ToString(CMISproConvert.StrToFloat(sCPJJ) * dBJU003_JGB_JLDWHSBL); + } + } + + + sBJDHQCLCB = Convert.ToString(CMISproConvert.StrToFloat(sBJDHQCLCB) * dBJU003_JGB_JLDWHSBL); + } + } + } + string sCPLJGS = GetCPLJGS(); + //还原四要素 + if (bExistedSYJGBMX && sHasCLQD.Equals("N")) + { + sXLXHID = tmpXLXHID; + sXLGGID = tmpXLGGID; + sXLBZID = tmpXLBZID; + sDYDJID = tmpDYDJID; + if (sCPLJGS == "2") + { + sBJDHQCLCB = Convert.ToString(CMISproConvert.StrToFloat(sBJDHQCLCB) * dYSJDZ); + sCLCB = Convert.ToString(CMISproConvert.StrToFloat(sCLCB) * dYSJDZ); + } + if (sCPLJGS == "4") + { + sBJDHQCLCB = Convert.ToString(CMISproConvert.StrToFloat(sBJDHQCLCB) * dCLCBYSJDZ); + sCLCB = Convert.ToString(CMISproConvert.StrToFloat(sCLCB) * dCLCBYSJDZ); + } + } + //无材料清单且料价计算方式为3|按报价单料价加点对照表计算 + if (sHasCLQD.Equals("N") && (sCPLJGS == "3")) + { + double dCLQDJDCLCHQ = XLBJDUtils.GetCLQDJDCLCHQ(sBJDID, sBJRQ, sXLXHID, sXLGGID, sXLBZID, sDYDJID, bJZBJHS, sJGBJLDW, sBJU003); + sBJDHQCLCB = Convert.ToString(dCLQDJDCLCHQ); + } + + } + + } + else//表价实时计算价格表 + { + //M、KM、米、千米、KG、T、千克、公斤、吨 + if (sJCJLDWList.IndexOf(sJGBJSDW.ToUpper()) >= 0 + && sJCJLDWList.IndexOf(sJLDW.ToUpper()) >= 0) + { + dBJDJLDWHSBL = XLBJDUtils.GetJLDWHSBL_JG(sBJU003, sJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID); + } + else + { + dBJDJLDWHSBL = XLBJDUtils.GetJLDWHSBL_JG(sBJU003, sJLDW); + } + + //报价来源手输表价的产品不重算表价,以免冲掉手动维护的表价 + if (sBJDBJLY.Equals("SSJGBBJ") || sWGCPBZ.Equals("Y")) + { + sCPJJ = sOldJGBBJ; + sJJ = sOldJGBJJ; + sCLCB = sOldCLCB; + sBJDHQCLCB = sOldBJDHQCLCB; + } + else + { + sTJ = CMISproConvert.StrToFloat(sTJ).ToString(); + sLJ = CMISproConvert.StrToFloat(sLJ).ToString(); + + bool bExistBJDHQ = false; + if (sTZCLHQ.Equals("Y"))//是否允许调整材料行情 + { + if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select top 1 XLXSBJDCLHQ_BJCLID from XLXSBJDCLHQ where XLXSBJDCLHQ_BJDID='{0}'", sBJDID))) + bExistBJDHQ = true; + } + + //不存在报价单行情,报价单ID以空传入 + Dictionary dicJGE = XLBJDUtils.GetCLCB_JGE(sBJRQ, sXLXHID, sXLGGID, sXLBZID, sDYDJID, sTBJCLID, sLBJCLID, sTJ, sLJ, bJZBJHS, bExistBJDHQ, sBJDID); + JgIsZero = dicJGE["JgIsZero"] == 1 ? true : false; + + sCLCB = dicJGE["CLCB"].ToString(); + sJJ = sCLCB; + if (JgIsZero)//若存在有材料用量、无材料价格的情况,则算出的表价、报价单行情料价改为负数显示 + { + sBJDHQCLCB = Convert.ToString(dicJGE["CLCB"] * (-1)); + } + else + { + sBJDHQCLCB = sCLCB; + } + + DataSet dsJGBYZ = new DataSet(); + string sJGBTJYSS = ""; + //计算公式以及因子的输出 + Dictionary dicJGBTZYZGS_JGE = new Dictionary(); + //记录价格表调价因素相关信息-线缆基本信息 + Dictionary dicXLJBXX_JGE = new Dictionary(); + XLBJDUtils.GetdsJGBYZ_JGE(sJGBID.Trim(), 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", dBJDJLDWHSBL.ToString().Trim()); + dicJGBTZYZGS_JGE = XLBJDUtils.GetJGBTZYZ_JGE(sJGBID.Trim(), "0", dsJGBYZ, dicXLJBXX_JGE); + //sCLCB = NumberUtils.RoundX(CMISproConvert.StrToFloat(sCLCB), iXSWS).ToString().Trim(); + string sTempCLCB = NumberUtils.RoundX(CMISproConvert.StrToFloat(sCLCB), iXSWS).ToString().Trim(); + double dZBZ = NumberUtils.RoundX(CMISproConvert.StrToFloat(sTempCLCB), iXSWS); + if (sJGBTJYSS.Equals("1")) + { + + string sTmpGS = ""; + string sJSGS = dicJGBTZYZGS_JGE["JSGS"].Trim(); + if (sJSGS.Equals("")) + { + if (dicJGBTZYZGS_JGE["JJFirst"].Equals("1")) + { + sTmpGS = "(" + sTempCLCB + "+" + dicJGBTZYZGS_JGE["JJ"] + ")*(" + dicJGBTZYZGS_JGE["JD"] + ")*(" + dicJGBTZYZGS_JGE["KD"] + ")*(" + dicJGBTZYZGS_JGE["SX"] + ")"; + } + else + { + sTmpGS = sTempCLCB + "*(" + dicJGBTZYZGS_JGE["JD"] + ")*(" + dicJGBTZYZGS_JGE["KD"] + ")*(" + dicJGBTZYZGS_JGE["SX"] + ")+(" + dicJGBTZYZGS_JGE["JJ"] + ")"; + + } + } + else + { + sTmpGS = sJSGS.Replace("JGBJJ", sTempCLCB); + } + gtExpression exp = new gtExpression(); + try + { + dZBZ = NumberUtils.RoundX(exp.Evaluate(sTmpGS), 15); + } + catch + { + dZBZ = 0; + } + + Dictionary dicJDYZXS = new Dictionary(); + for (int i = 0; i < dsJGBYZ.Tables[0].Rows.Count; i++) + { + string sYZID = dsJGBYZ.Tables[0].Rows[i]["XLXSJGBYZ_YZID"].ToString().Trim(); + string sJJFS = dsJGBYZ.Tables[0].Rows[i]["XLXSTZYZ_JJFS"].ToString().Trim(); + if (sJJFS.Equals("JJ") && (!dicJDYZXS.ContainsKey(sYZID))) + dicJDYZXS.Add(sYZID, dBJDJLDWHSBL); + else + dicJDYZXS.Add(sYZID, 1); + } + + for (int i = 1; i <= 10; i++) + { + string sYZID = "JZ" + i.ToString().PadLeft(2, '0'); + if (dicJGBTZYZGS_JGE.ContainsKey(sYZID) && dicJDYZXS.ContainsKey(sYZID)) + { + double sYZZ = CMISproConvert.StrToFloat(dicJGBTZYZGS_JGE[sYZID].Trim(), 0) * dicJDYZXS[sYZID]; + dicJGBTZYZGS_JGE[sYZID] = sYZZ.ToString(); + } + + } + + Result["JZ01"] = CMISproConvert.StrToFloat(dicJGBTZYZGS_JGE["JZ01"], 0); + Result["JZ02"] = CMISproConvert.StrToFloat(dicJGBTZYZGS_JGE["JZ02"], 0); + Result["JZ03"] = CMISproConvert.StrToFloat(dicJGBTZYZGS_JGE["JZ03"], 0); + Result["JZ04"] = CMISproConvert.StrToFloat(dicJGBTZYZGS_JGE["JZ04"], 0); + Result["JZ05"] = CMISproConvert.StrToFloat(dicJGBTZYZGS_JGE["JZ05"], 0); + Result["JZ06"] = CMISproConvert.StrToFloat(dicJGBTZYZGS_JGE["JZ06"], 0); + Result["JZ07"] = CMISproConvert.StrToFloat(dicJGBTZYZGS_JGE["JZ07"], 0); + Result["JZ08"] = CMISproConvert.StrToFloat(dicJGBTZYZGS_JGE["JZ08"], 0); + Result["JZ09"] = CMISproConvert.StrToFloat(dicJGBTZYZGS_JGE["JZ09"], 0); + Result["JZ10"] = CMISproConvert.StrToFloat(dicJGBTZYZGS_JGE["JZ10"], 0); + } + + if (JgIsZero)//若存在有材料用量、无材料价格的情况,则算出的表价、报价单行情料价改为负数显示 + { + sCPJJ = Convert.ToString(dZBZ * (-1)); + } + else + { + sCPJJ = dZBZ.ToString().Trim(); + } + } + } + } + + double dCPJJ = CMISproConvert.StrToFloat(sCPJJ, 0); + double dJJ = CMISproConvert.StrToFloat(sJJ, 0); + double dCLCB = CMISproConvert.StrToFloat(sCLCB, 0); + double dBJDHQCLCB = CMISproConvert.StrToFloat(sBJDHQCLCB, 0); + + if (sBJU018.Equals("Y") && XLBJDUtils.sJQCDJLDWList.Contains(sJGBJLDW.ToUpper()))//若BJU018参数值为Y,且为价格表单位为长度单位,则先换算倍率后再保留小数位数。 + { + dCPJJ = dCPJJ * dBJDJLDWHSBL; + dJJ = dJJ * dBJDJLDWHSBL; + dCLCB = dCLCB * dBJDJLDWHSBL; + dBJDHQCLCB = dBJDHQCLCB * dBJDJLDWHSBL; + + + dCPJJ = NumberUtils.RoundX(dCPJJ, iXSWS); + dJJ = NumberUtils.RoundX(dJJ, iXSWS); + dCLCB = NumberUtils.RoundX(dCLCB, iXSWS); + dBJDHQCLCB = NumberUtils.RoundX(dBJDHQCLCB, iXSWS); + } + else + { + dCPJJ = NumberUtils.RoundX(dCPJJ, iXSWS); + dJJ = NumberUtils.RoundX(dJJ, iXSWS); + dCLCB = NumberUtils.RoundX(dCLCB, iXSWS); + dBJDHQCLCB = NumberUtils.RoundX(dBJDHQCLCB, iXSWS); + + dCPJJ = dCPJJ * dBJDJLDWHSBL; + dJJ = dJJ * dBJDJLDWHSBL; + dCLCB = dCLCB * dBJDJLDWHSBL; + dBJDHQCLCB = dBJDHQCLCB * dBJDJLDWHSBL; + } + + Result.Add("XLXSBJDMX_JGBBJ", dCPJJ); + Result.Add("XLXSBJDMX_JGBJJ", dJJ); + Result.Add("XLXSBJDMX_CLCB", dCLCB); + Result.Add("XLXSBJDMX_BJDHQCLCB", dBJDHQCLCB); + return Result; + } + + /// + /// 获取XLXSBJXHML已经设置的产品目录对应关系,如果型号电压为空,则返回所有 + /// + /// + /// + /// + public static void GetDefaultCPMLDic(string sXLXHID, string sDYDJID, ref Dictionary dicCPML) + { + dicCPML.Clear(); + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add(" select XLXSBJXHML_XLXHID,XLXSBJXHML_DYDJID,XLXSBJXHML_CPMLID,XLXSCPML_CPMLMC from XLXSBJXHML "); + SQL.Add(" left join XLXSCPML on XLXSCPML_CPMLID = isnull(XLXSBJXHML_CPMLID,' ') "); + SQL.Add(" where 1=1 "); + if (!sXLXHID.Equals("")) + { + SQL.Add(" and UPPER(XLXSBJXHML_XLXHID) =:pXLXHID "); + SQL.ParamByName("pXLXHID").Value = sXLXHID.ToUpper(); + + if (!sDYDJID.Equals("")) + { + SQL.Add(" and (XLXSBJXHML_DYDJID =:pDYDJID or XLXSBJXHML_DYDJID = ' ') "); + SQL.ParamByName("pDYDJID").Value = sDYDJID; + } + } + SQL.Add(" order by XLXSBJXHML_XLXHID,XLXSBJXHML_DYDJID "); + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + string str1 = ""; + string str2 = ""; + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + str1 = ds.Tables[0].Rows[i]["XLXSBJXHML_XLXHID"].ToString().Trim() + "|" + ds.Tables[0].Rows[i]["XLXSBJXHML_DYDJID"].ToString().Trim(); + str2 = ds.Tables[0].Rows[i]["XLXSBJXHML_CPMLID"].ToString().Trim() + "|" + ds.Tables[0].Rows[i]["XLXSCPML_CPMLMC"].ToString().Trim(); + if (!dicCPML.ContainsKey(str1)) + { + dicCPML.Add(str1, str2); + } + } + } + } + + + public static string GetZHCPMLMC(string sCPMLID) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add("select XLXSCPML_CPMLMC from XLXSCPML where ','||rtrim(XLXSCPML_CPMLIDS)||',' like :pCPMLID "); + SQL.ParamByName("pCPMLID").Value = "%," + sCPMLID.Trim() + ",%"; + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + return ds.Tables[0].Rows[0][0].ToString().Trim(); + } + return ""; + } + + + /// + /// 支持更新明细报价单明细的产品目录 + /// + /// + /// + /// + /// 为true表示只更新无值的 + /// + public static void UpdateBJDMX_CPMLMC(string sBJDID, string sBJDXHList, double minBJDXH, bool CPMLMCisNULL, ref string sErrorNum) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add(" merge into XLXSBJDMX tar "); + SQL.Add(" using ( "); + SQL.Add(" SELECT XLXSBJDMX_BJDID, XLXSBJDMX_XH,"); + SQL.Add(" isnull(CPMLMC,' ') as CPMLMC,isnull(ZHCPMLMC,' ') as ZHCPMLMC "); + SQL.Add(" from XLXSBJDMX "); + SQL.Add(" left join XLXSBJXHML A on A.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and A.XLXSBJXHML_DYDJID = isnull(XLXSBJDMX_DYDJID, ' ') "); + SQL.Add(" left join XLXSBJXHML B on B.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and B.XLXSBJXHML_DYDJID = ' ' "); + //SQL.Add(" left join XLXSCPML on XLXSCPML_CPMLID = case when ISNULL(A.XLXSBJXHML_CPMLID,' ') = ' ' then ISNULL(B.XLXSBJXHML_CPMLID,' ') else ISNULL(A.XLXSBJXHML_CPMLID,' ') end "); + 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 XLXSBJDMX_BJDID = :pBJDID "); + if (!sBJDXHList.Equals("")) + { + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add(" and XLXSBJDMX_XH > :minBJDXH"); + } + SQL.Add(" ) sor "); + SQL.Add(" on( "); + SQL.Add(" 1=1 "); + SQL.Add(" and sor.XLXSBJDMX_BJDID = tar.XLXSBJDMX_BJDID "); + SQL.Add(" and sor.XLXSBJDMX_XH = tar.XLXSBJDMX_XH "); + if (CPMLMCisNULL) + { + SQL.Add(" and (isnull(tar.XLXSBJDMX_CPMLMC, ' ')= ' ' and isnull(tar.XLXSBJDMX_ZHCPMLMC, ' ')= ' ' ) "); + } + if (!sBJDXHList.Equals("")) + { + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("tar.XLXSBJDMX_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + SQL.Add("and tar.XLXSBJDMX_XH > :minBJDXH"); + } + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(" XLXSBJDMX_CPMLMC = sor.CPMLMC, "); + SQL.Add(" XLXSBJDMX_ZHCPMLMC = sor.ZHCPMLMC "); + if (minBJDXH != 0) + { + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + SQL.ParamByName("pBJDID").Value = sBJDID; + try + { + string ss = SQL.Text; + dberp.ExecSQL(SQL); + + } + catch + { + sErrorNum = "UpdateBJDMX_CPMLMC_Error_1-1"; + } + } + + public static void UpdateXDXLBZID(TDatabase dberp, TSQL SQL, string sBJDID, string sBJDXHList, int minBJDXH, ref string sErrorNum) + { + UpdateXDXLBZID( dberp, SQL, sBJDID, sBJDXHList, minBJDXH,0,ref sErrorNum); + } + + + public static void UpdateXDXLBZID(TDatabase dberp, TSQL SQL, string sBJDID, string sBJDXHList, int minBJDXH,int VBJDID,ref string sErrorNum) + { + if (ExistGYKH()) + { + SQL.Clear(); + SQL.Add(" merge into XLXSBJDMX tar "); + SQL.Add(" using ( "); + SQL.Add(" select XLXSBJDMX_BJDID as BJDID,XLXSBJDMX_XH as XH, XLBZGYKHDZB_GYKH as GYKH "); + SQL.Add(" from XLXSBJDMX "); + SQL.Add(" left join ( select XLBZGYKHDZB_XLBZID,min(XLBZGYKHDZB_GYKH) as XLBZGYKHDZB_GYKH from XLBZGYKHDZB group by XLBZGYKHDZB_XLBZID ) a on XLBZGYKHDZB_XLBZID=XLXSBJDMX_XLBZID "); + SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID and isnull(XLXSBJDMX_XLBZID,' ')<>' ' "); + + if (minBJDXH != 0) + { + SQL.Add(" and XLXSBJDMX_XH > :minBJDXH"); + } + if (VBJDID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pID and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "); + SQL.ParamByName("pID").Value = VBJDID; + } + else + { + if (!sBJDXHList.Equals("")) + { + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + } + } + + SQL.Add(" ) sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSBJDMX_BJDID=:pBJDID and XLXSBJDMX_XH=XH "); + + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDMX_XH > :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + if (VBJDID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pID and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "); + SQL.ParamByName("pID").Value = VBJDID; + } + else + { + if (!sBJDXHList.Equals("")) + { + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + } + } + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(" XLXSBJDMX_GYKH= GYKH "); + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + } + + if (!CMISproDataBase.ExistsRecord("DBERP", "select top 1 XLXSBJXDBZ1_XLXHID from XLXSBJXDBZ1 where 1=1 ")) + return; + + SQL.Clear(); + SQL.Add(" merge into XLXSBJDMX tar "); + SQL.Add(" using ( "); + SQL.Add("select XLXSBJDMX_BJDID as BJDID,XLXSBJDMX_XH as XH, XDXLBZID"); + SQL.Add(" from XLXSBJDMX "); + SQL.Add("left join XLXHB on XLXHB_XLXHID=XLXSBJDMX_XLXHID "); + SQL.Add("left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSBJDMX_XLGGID "); + SQL.Add("left join XLGGB on XLGGB_XLGGID = XLXSBJXLGGTHB_XLGGIDCH and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); + SQL.Add("left join XLDTJMZHB on XLDTJMZHB_DTJMZHID=XLGGB_DTJMZHID "); + SQL.Add("left join XLXSBJD on XLXSBJD_BJDID = XLXSBJDMX_BJDID "); + SQL.Add("left join "); + SQL.Add("( "); + SQL.Add(" select XLXSBJXDBZ1_XLXHID as XLXHID, XLXSBJXDBZ1_DYDJID as DYDJID, "); + SQL.Add(" XLXSBJXDBZ1_XXJGID as XXJGID, "); + SQL.Add(" XLXSBJXDBZ1_XLBZID as XLBZID,XLXSBJXDBZ1_XDXLBZID as XDXLBZID, "); + SQL.Add(" XLXSBJXDBZ1_ZXJMSX as ZXJMSX, XLXSBJXDBZ1_ZXJMXX as ZXJMXX "); + SQL.Add(" from XLXSBJXDBZ1 "); + SQL.Add("where 1=1 "); + SQL.Add(" and XLXSBJXDBZ1_DYDJID <> ' ' and XLXSBJXDBZ1_XXJGID = ' ' "); + SQL.Add(" ) a on "); + SQL.Add(" a.XLXHID=XLXSBJDMX_XLXHID and a.XLBZID=XLXSBJDMX_XLBZID and a.DYDJID = isnull(XLXSBJDMX_DYDJID, ' ') "); + SQL.Add(" and a.ZXJMXX<=isnull(XLDTJMZHB_DTJM1,0) and ((a.ZXJMSX<>0 and a.ZXJMSX>=isnull(XLDTJMZHB_DTJM1,0)) or a.ZXJMSX=0) "); + SQL.Add("where XLXSBJDMX_BJDID=:pBJDID and isnull(XDXLBZID,' ')<>' ' "); + + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDMX_XH > :minBJDXH"); + } + if (VBJDID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pID and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "); + SQL.ParamByName("pID").Value = VBJDID; + } + else + { + if (!sBJDXHList.Equals("")) + { + SQL.Add("and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + } + } + SQL.Add(" ) sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSBJDMX_BJDID=:pBJDID and XLXSBJDMX_XH=XH "); + + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDMX_XH > :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + if (VBJDID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pID and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "); + SQL.ParamByName("pID").Value = VBJDID; + } + else + { + if (!sBJDXHList.Equals("")) + { + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + } + } + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(" XLXSBJDMX_XDXLBZID=XDXLBZID"); + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + SQL.Clear(); + SQL.Add(" merge into XLXSBJDMX tar "); + SQL.Add(" using ( "); + SQL.Add("select XLXSBJDMX_BJDID as BJDID,XLXSBJDMX_XH as XH, XDXLBZID"); + SQL.Add(" from XLXSBJDMX "); + SQL.Add("left join XLXHB on XLXHB_XLXHID=XLXSBJDMX_XLXHID "); + SQL.Add("left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSBJDMX_XLGGID "); + SQL.Add("left join XLGGB on XLGGB_XLGGID = XLXSBJXLGGTHB_XLGGIDCH and XLGGB_XLGGJDGZ = isnull(XLXHB_XLGGJDGZ,'0') "); + SQL.Add("left join XLDTJMZHB on XLDTJMZHB_DTJMZHID=XLGGB_DTJMZHID "); + SQL.Add("left join XLXSBJD on XLXSBJD_BJDID = XLXSBJDMX_BJDID "); + SQL.Add("left join "); + SQL.Add("( "); + SQL.Add(" select XLXSBJXDBZ1_XLXHID as XLXHID, XLXSBJXDBZ1_DYDJID as DYDJID, "); + SQL.Add(" XLXSBJXDBZ1_XXJGID as XXJGID, "); + SQL.Add(" XLXSBJXDBZ1_XLBZID as XLBZID,XLXSBJXDBZ1_XDXLBZID as XDXLBZID, "); + SQL.Add(" XLXSBJXDBZ1_ZXJMSX as ZXJMSX, XLXSBJXDBZ1_ZXJMXX as ZXJMXX "); + SQL.Add(" from XLXSBJXDBZ1 "); + SQL.Add("where 1=1 "); + SQL.Add(" and XLXSBJXDBZ1_DYDJID <> ' ' and XLXSBJXDBZ1_XXJGID <> ' ' "); + SQL.Add(" ) a on "); + SQL.Add(" a.XLXHID=XLXSBJDMX_XLXHID and a.XLBZID=XLXSBJDMX_XLBZID and a.DYDJID = isnull(XLXSBJDMX_DYDJID, ' ') and a.XXJGID = XLGGB_XXJGID "); + SQL.Add(" and a.ZXJMXX<=isnull(XLDTJMZHB_DTJM1,0) and ((a.ZXJMSX<>0 and a.ZXJMSX>=isnull(XLDTJMZHB_DTJM1,0)) or a.ZXJMSX=0) "); + SQL.Add("where XLXSBJDMX_BJDID=:pBJDID and isnull(XDXLBZID,' ')<>' ' "); + + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDMX_XH > :minBJDXH"); + } + if (VBJDID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pID and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "); + SQL.ParamByName("pID").Value = VBJDID; + } + else + { + if (!sBJDXHList.Equals("")) + { + SQL.Add("and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + } + } + SQL.Add(" ) sor "); + SQL.Add(" on( "); + SQL.Add(" XLXSBJDMX_BJDID=:pBJDID and XLXSBJDMX_XH=XH "); + + if (minBJDXH != 0) + { + SQL.Add("and XLXSBJDMX_XH > :minBJDXH"); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + if (VBJDID > 0) + { + SQL.Add(" and exists(select 1 from V_BJDXH where V_BJDXH_ID = :pID and V_BJDXH_BJDID = XLXSBJDMX_BJDID and V_BJDXH_BJDXH = XLXSBJDMX_XH) "); + SQL.ParamByName("pID").Value = VBJDID; + } + else + { + if (!sBJDXHList.Equals("")) + { + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + } + } + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(" XLXSBJDMX_XDXLBZID=XDXLBZID"); + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + SQL.Clear(); + SQL.Add(" merge into XLXSBJDMX tar "); + SQL.Add(" using ( "); + SQL.Add(" select XLXSBJDMX_BJDID as BJDID, "); + SQL.Add(" XLXSBJDMX_XH as XH, "); + SQL.Add(" a.XDXLBZID "); + SQL.Add(" from XLXSBJDMX "); + SQL.Add(" left join XLXSBJD on XLXSBJD_BJDID = XLXSBJDMX_BJDID "); + SQL.Add(" left join ( "); + SQL.Add(" select XLXSBJXDBZ1_XLBZID as XLBZID, "); + SQL.Add(" XLXSBJXDBZ1_XDXLBZID as XDXLBZID "); + SQL.Add(" from XLXSBJXDBZ1 "); + SQL.Add(" where XLXSBJXDBZ1_PPLX = 'B' "); + SQL.Add(" ) a on a.XLBZID = XLXSBJDMX_XLBZID "); + SQL.Add(" where XLXSBJDMX_BJDID = :pBJDID "); + SQL.Add(" and isnull(a.XDXLBZID,' ') <> ' ' "); + if (minBJDXH != 0) + { + SQL.Add(" and XLXSBJDMX_XH > :minBJDXH "); + } + if (VBJDID > 0) + { + SQL.Add(" and exists ( "); + SQL.Add(" select 1 from V_BJDXH "); + SQL.Add(" where V_BJDXH_ID = :pID "); + SQL.Add(" and V_BJDXH_BJDID = XLXSBJDMX_BJDID "); + SQL.Add(" and V_BJDXH_BJDXH = XLXSBJDMX_XH "); + SQL.Add(" ) "); + SQL.ParamByName("pID").Value = VBJDID; + } + else + { + if (!sBJDXHList.Equals("")) + { + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + } + } + SQL.Add(" ) sor "); + SQL.Add(" on ( "); + SQL.Add(" XLXSBJDMX_BJDID = :pBJDID "); + SQL.Add(" and XLXSBJDMX_XH = XH "); + if (minBJDXH != 0) + { + SQL.Add(" and XLXSBJDMX_XH > :minBJDXH "); + SQL.ParamByName("minBJDXH").Value = minBJDXH; + } + + if (VBJDID > 0) + { + SQL.Add(" and exists ( "); + SQL.Add(" select 1 from V_BJDXH "); + SQL.Add(" where V_BJDXH_ID = :pID "); + SQL.Add(" and V_BJDXH_BJDID = XLXSBJDMX_BJDID "); + SQL.Add(" and V_BJDXH_BJDXH = XLXSBJDMX_XH "); + SQL.Add(" ) "); + } + else + { + if (!sBJDXHList.Equals("")) + { + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + } + } + SQL.Add(" ) "); + SQL.Add(" when matched then update set "); + SQL.Add(" XLXSBJDMX_XDXLBZID = XDXLBZID "); + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + } + + //铜铝价变动,更新报价单行情 + public static void UpdateBJDHQByTLJ(TDatabase dberp, TSQL SQL, string sBJDID, string sTBJCLID, string sLBJCLID, double fTJ, double fLJ, bool bHSBZ, string sWHRID, string sWHR) + { + string sDecimal = XLBJDUtils.BJCLPriceDecimal.ToString(); + if (bHSBZ) + { + //更新铜价 + SQL.Clear(); + SQL.Add(" MERGE INTO XLXSBJDCLHQ t1"); + SQL.Add(" USING (SELECT XLXSBJCL_BJCLID AS BJCLID, XLXSBJCL_ZZSL FROM XLXSBJCL WHERE XLXSBJCL_BJCLID = :pBJCLID) t2"); + SQL.Add(" ON (t1.XLXSBJDCLHQ_BJCLID = t2.BJCLID AND t1.XLXSBJDCLHQ_BJDID = :pBJDID)"); + SQL.Add(" WHEN MATCHED THEN"); + SQL.Add(" UPDATE SET t1.XLXSBJDCLHQ_HSJG = RoundFix(:pJG, " + sDecimal + "),"); + SQL.Add(" t1.XLXSBJDCLHQ_WSJG = RoundFix(:pJG/(1+t2.XLXSBJCL_ZZSL/100.0), " + sDecimal + "),"); + SQL.Add(" t1.XLXSBJDCLHQ_WHRID = :pWHRID,"); + SQL.Add(" t1.XLXSBJDCLHQ_WHR = :pWHR, "); + SQL.Add(" t1.XLXSBJDCLHQ_WHSJ = :pWHSJ "); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pJG").Value = fTJ; + SQL.ParamByName("pBJCLID").Value = sTBJCLID; + SQL.ParamByName("pWHR").Value = sWHR; + SQL.ParamByName("pWHRID").Value = sWHRID; + SQL.ParamByName("pWHSJ").Value = DateTime.Now; + dberp.ExecSQL(SQL); + + //更新铝价 + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pJG").Value = fLJ; + SQL.ParamByName("pBJCLID").Value = sLBJCLID; + SQL.ParamByName("pWHR").Value = sWHR; + SQL.ParamByName("pWHRID").Value = sWHRID; + SQL.ParamByName("pWHSJ").Value = DateTime.Now; + dberp.ExecSQL(SQL); + } + else + { + //更新铜价 + SQL.Clear(); + SQL.Add(" MERGE INTO XLXSBJDCLHQ t1"); + SQL.Add(" USING (SELECT XLXSBJCL_BJCLID AS BJCLID, XLXSBJCL_ZZSL FROM XLXSBJCL WHERE XLXSBJCL_BJCLID = :pBJCLID) t2"); + SQL.Add(" ON (t1.XLXSBJDCLHQ_BJCLID = t2.BJCLID AND t1.XLXSBJDCLHQ_BJDID = :pBJDID)"); + SQL.Add(" WHEN MATCHED THEN"); + SQL.Add(" UPDATE SET t1.XLXSBJDCLHQ_HSJG = RoundFix(:pJG*(1+XLXSBJCL_ZZSL/100.0)," + sDecimal + "), "); + SQL.Add(" t1.XLXSBJDCLHQ_WSJG = RoundFix(:pJG," + sDecimal + "), "); + SQL.Add(" t1.XLXSBJDCLHQ_WHRID = :pWHRID,"); + SQL.Add(" t1.XLXSBJDCLHQ_WHR = :pWHR, "); + SQL.Add(" t1.XLXSBJDCLHQ_WHSJ = :pWHSJ "); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pJG").Value = fTJ; + SQL.ParamByName("pBJCLID").Value = sTBJCLID; + SQL.ParamByName("pWHR").Value = sWHR; + SQL.ParamByName("pWHRID").Value = sWHRID; + SQL.ParamByName("pWHSJ").Value = DateTime.Now; + dberp.ExecSQL(SQL); + + //更新铝价 + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pJG").Value = fLJ; + SQL.ParamByName("pBJCLID").Value = sLBJCLID; + SQL.ParamByName("pWHR").Value = sWHR; + SQL.ParamByName("pWHRID").Value = sWHRID; + SQL.ParamByName("pWHSJ").Value = DateTime.Now; + dberp.ExecSQL(SQL); + + } + SQL.Clear(); + SQL.Add(@"MERGE INTO XLXSBJDCLHQ target + USING ( + SELECT XLXSBJDCLHQ_WSJG as WSJG, XLXSBJDCLHQ_HSJG as HSJG + FROM XLXSBJDCLHQ + WHERE XLXSBJDCLHQ_BJDID = :pBJDID AND XLXSBJDCLHQ_BJCLID = :pBJCLID + ) source + ON (target.XLXSBJDCLHQ_BJDID = :pBJDID AND target.XLXSBJDCLHQ_JGYBJCLID1 = :pBJCLID) + WHEN MATCHED THEN + UPDATE SET "); + SQL.Add(" XLXSBJDCLHQ_WSJG1 = RoundFix(source.WSJG," + sDecimal + "),"); + SQL.Add(" XLXSBJDCLHQ_HSJG1 = RoundFix(source.HSJG," + sDecimal + "),"); + SQL.Add(" XLXSBJDCLHQ_JGBL1=1.0, "); + SQL.Add(" XLXSBJDCLHQ_WHRID = :pWHRID, "); + SQL.Add(" XLXSBJDCLHQ_WHR = :pWHR, "); + SQL.Add(" XLXSBJDCLHQ_WHSJ = :pWHSJ "); + + + //更新以铜、铝为原材料的加工材料行情 + if (!sTBJCLID.Trim().Equals("")) + { + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pBJCLID").Value = sTBJCLID; + SQL.ParamByName("pWHR").Value = sWHR; + SQL.ParamByName("pWHRID").Value = sWHRID; + SQL.ParamByName("pWHSJ").Value = DateTime.Now; + dberp.ExecSQL(SQL); + } + + if (!sLBJCLID.Trim().Equals("")) + { + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pBJCLID").Value = sLBJCLID; + SQL.ParamByName("pWHR").Value = sWHR; + SQL.ParamByName("pWHRID").Value = sWHRID; + SQL.ParamByName("pWHSJ").Value = DateTime.Now; + dberp.ExecSQL(SQL); + + } + + if (!sTBJCLID.Trim().Equals("")) + { + SQL.Clear(); + SQL.Add("update XLXSBJDCLHQ set XLXSBJDCLHQ_WSJG=RoundFix(XLXSBJDCLHQ_WSJG1*XLXSBJDCLHQ_JGBL1+XLXSBJDCLHQ_WSJGF," + sDecimal + "),"); + SQL.Add(" XLXSBJDCLHQ_HSJG=RoundFix(XLXSBJDCLHQ_HSJG1*XLXSBJDCLHQ_JGBL1+XLXSBJDCLHQ_HSJGF," + sDecimal + ") "); + SQL.Add(" where XLXSBJDCLHQ_BJDID=:pBJDID"); + SQL.Add(" and XLXSBJDCLHQ_JGYBJCLID1=:pTBJCLID"); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pTBJCLID").Value = sTBJCLID; + dberp.ExecSQL(SQL); + } + + if (!sLBJCLID.Trim().Equals("")) + { + SQL.Clear(); + SQL.Add("update XLXSBJDCLHQ set XLXSBJDCLHQ_WSJG=RoundFix(XLXSBJDCLHQ_WSJG1*XLXSBJDCLHQ_JGBL1+XLXSBJDCLHQ_WSJGF," + sDecimal + "),"); + SQL.Add(" XLXSBJDCLHQ_HSJG=RoundFix(XLXSBJDCLHQ_HSJG1*XLXSBJDCLHQ_JGBL1+XLXSBJDCLHQ_HSJGF," + sDecimal + ") "); + SQL.Add(" where XLXSBJDCLHQ_BJDID=:pBJDID"); + SQL.Add(" and XLXSBJDCLHQ_JGYBJCLID1=:pLBJCLID"); + SQL.ParamByName("pBJDID").Value = sBJDID; + SQL.ParamByName("pLBJCLID").Value = sLBJCLID; + dberp.ExecSQL(SQL); + } + + //更新以铜、铝为原材料的加工物料行情 + SQL.Clear(); + SQL.Add(@" merge into XLXSBJDWLHQ tar + using + ( + select XLXSBJDWLHQ_WLID as WLID,XLXSBJDCLHQ_WSJG as WSJG,XLXSBJDCLHQ_HSJG as HSJG + from XLXSBJDWLHQ + left join XLXSBJDCLHQ on XLXSBJDCLHQ_BJDID=:pBJDID and XLXSBJDCLHQ_BJCLID=XLXSBJDWLHQ_JGYBJCLID1 + where XLXSBJDWLHQ_BJDID=:pBJDID "); + if (!sTBJCLID.Equals("") && sLBJCLID.Equals("")) + { + SQL.Add(" and XLXSBJDCLHQ_BJCLID=:pTBJCLID"); + SQL.ParamByName("pTBJCLID").Value = sTBJCLID; + } + else if (sTBJCLID.Equals("") && !sLBJCLID.Equals("")) + { + SQL.Add(" and XLXSBJDCLHQ_BJCLID=:pLBJCLID"); + SQL.ParamByName("pLBJCLID").Value = sLBJCLID; + } + else if (!sTBJCLID.Equals("") && !sLBJCLID.Equals("")) + { + SQL.Add(" and (XLXSBJDCLHQ_BJCLID=:pTBJCLID or XLXSBJDCLHQ_BJCLID=:pLBJCLID)"); + SQL.ParamByName("pTBJCLID").Value = sTBJCLID; + SQL.ParamByName("pLBJCLID").Value = sLBJCLID; + } + else + { + SQL.Add(" and 1<>1 "); + } + SQL.Add(@") sor ON (XLXSBJDWLHQ_BJDID=:pBJDID and XLXSBJDWLHQ_WLID=WLID ) + when matched then update set XLXSBJDWLHQ_WSJG1=RoundFix(WSJG," + sDecimal + "),XLXSBJDWLHQ_HSJG1=RoundFix(HSJG," + sDecimal + ") , XLXSBJDWLHQ_JGBL1=1.0 "); + + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + SQL.Clear(); + SQL.Add(@" merge into XLXSBJDWLHQ tar + using + ( + select XLXSBJDWLHQ_WLID as WLID,XLXSBJDCLHQ_WSJG as WSJG,XLXSBJDCLHQ_HSJG as HSJG + from XLXSBJDWLHQ + left join XLXSBJDCLHQ on XLXSBJDCLHQ_BJDID=:pBJDID and XLXSBJDCLHQ_BJCLID=XLXSBJDWLHQ_JGYBJCLID1 + where XLXSBJDWLHQ_BJDID=:pBJDID "); + if (!sTBJCLID.Equals("") && sLBJCLID.Equals("")) + { + SQL.Add(" and XLXSBJDCLHQ_BJCLID=:pTBJCLID"); + SQL.ParamByName("pTBJCLID").Value = sTBJCLID; + } + else if (sTBJCLID.Equals("") && !sLBJCLID.Equals("")) + { + SQL.Add(" and XLXSBJDCLHQ_BJCLID=:pLBJCLID"); + SQL.ParamByName("pLBJCLID").Value = sLBJCLID; + } + else if (!sTBJCLID.Equals("") && !sLBJCLID.Equals("")) + { + SQL.Add(" and (XLXSBJDCLHQ_BJCLID=:pTBJCLID or XLXSBJDCLHQ_BJCLID=:pLBJCLID)"); + SQL.ParamByName("pTBJCLID").Value = sTBJCLID; + SQL.ParamByName("pLBJCLID").Value = sLBJCLID; + } + else + { + SQL.Add(" and 1<>1 "); + } + SQL.Add(@") sor ON (XLXSBJDWLHQ_BJDID=:pBJDID and XLXSBJDWLHQ_WLID=WLID ) + when matched then update set XLXSBJDWLHQ_WSJG=RoundFix(XLXSBJDWLHQ_WSJG1*XLXSBJDWLHQ_JGBL1+XLXSBJDWLHQ_WSJGF," + sDecimal + "), "); + SQL.Add(" XLXSBJDWLHQ_HSJG=RoundFix(XLXSBJDWLHQ_HSJG1*XLXSBJDWLHQ_JGBL1+XLXSBJDWLHQ_HSJGF," + sDecimal + ") "); + + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + } + + public static void UpdateTJBZ(string sBJDID, string sViewState) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + UpdateTJBZ(dberp, sBJDID, sViewState); + } + + public static void UpdateTJBZ(TDatabase dberp, string sBJDID, string sViewState) + { + TSQL SQL = new TSQL(dberp); + UpdateTJBZ(dberp, SQL, sBJDID, sViewState); + } + + public static void UpdateTJBZ(TDatabase dberp, TSQL SQL, string sBJDID, string sViewState) + { + string sYBJDID = GetYBJDID(sBJDID); + SQL.Clear(); + SQL.Add(" select XLXSBJD_BJDID,XLXSBJD_ZT,ISNULL(XLXSBJD_TJBZ,'N') as TJBZ,"); + SQL.Add(" case when isnull(BJD_BJDID, ' ')<>' ' then 'Y' else 'N' end as FKBZ ");//是否已经反馈至CS平台 + SQL.Add(" from XLXSBJD "); + SQL.Add(" left join BJD on BJD_BJDID=XLXSBJD_BJDID "); + SQL.Add(" where XLXSBJD_BJDID = :pYBJDID or XLXSBJD_YBJDIDS = :pYBJDID or XLXSBJD_BJDID =:pBJDID order by XLXSBJD_BJDID "); + SQL.ParamByName("pYBJDID").Value = sYBJDID; + SQL.ParamByName("pBJDID").Value = sBJDID; + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + if (sViewState.Equals("Insert") || sViewState.Equals("Delete")) + { + bool HasFKJL = false;//是否存在反馈记录 + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + if (ds.Tables[0].Rows[i]["FKBZ"].ToString().Trim().Equals("Y")) + HasFKJL = true; + } + int Lastindex = ds.Tables[0].Rows.Count - 1; + string sLastBJDID = ds.Tables[0].Rows[Lastindex]["XLXSBJD_BJDID"].ToString().Trim(); + if (sLastBJDID.Equals(sBJDID)) + { + if (Lastindex != 0) + { + int Preindex = Lastindex - 1; + string sPreBJDID = ds.Tables[0].Rows[Preindex]["XLXSBJD_BJDID"].ToString().Trim(); + string sPreFKBZ = ds.Tables[0].Rows[Preindex]["FKBZ"].ToString().Trim(); + if (sViewState.Equals("Insert")) + { + if (sPreFKBZ.Equals("N"))//未反馈的才允许重置TJBZ + { + SQL.Clear(); + SQL.Add(" update XLXSBJD set "); + SQL.Add(" XLXSBJD_TJBZ = 'N' "); + SQL.Add(" where XLXSBJD_BJDID = :pBJDID "); + SQL.ParamByName("pBJDID").Value = sPreBJDID; + dberp.ExecSQL(SQL); + } + if (HasFKJL)//若存在反馈记录,则新增的报价单默认不参与统计 + { + SQL.Clear(); + SQL.Add(" update XLXSBJD set "); + SQL.Add(" XLXSBJD_TJBZ = 'N' "); + SQL.Add(" where XLXSBJD_BJDID = :pBJDID "); + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + } + } + else if (sViewState.Equals("Delete")) + { + if (!HasFKJL)//不存在反馈记录,则将前一份报价单纳入统计 + { + + SQL.Clear(); + SQL.Add(" update XLXSBJD set "); + SQL.Add(" XLXSBJD_TJBZ = 'Y' "); + SQL.Add(" where XLXSBJD_BJDID = :pBJDID "); + SQL.ParamByName("pBJDID").Value = sPreBJDID; + dberp.ExecSQL(SQL); + } + } + + } + } + } + else if (sViewState.Equals("DoBJFK"))//报价反馈操作 + { + //反馈过的报价单应参与统计 + SQL.Clear(); + SQL.Add(" update XLXSBJD set "); + SQL.Add(" XLXSBJD_TJBZ = 'Y' "); + SQL.Add(" where XLXSBJD_BJDID = :pBJDID "); + SQL.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(SQL); + + //其他未反馈的报价单不参与统计 + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + if (!ds.Tables[0].Rows[i]["XLXSBJD_BJDID"].ToString().Trim().Equals(sBJDID) + && ds.Tables[0].Rows[i]["FKBZ"].ToString().Trim().Equals("N")) + { + SQL.Clear(); + SQL.Add(" update XLXSBJD set "); + SQL.Add(" XLXSBJD_TJBZ = 'N' "); + SQL.Add(" where XLXSBJD_BJDID = :pBJDID "); + SQL.Add(" and XLXSBJD_TJBZ = 'Y'"); + SQL.ParamByName("pBJDID").Value = ds.Tables[0].Rows[i]["XLXSBJD_BJDID"].ToString().Trim(); + dberp.ExecSQL(SQL); + } + } + } + } + } + + public static string GetYBJDID(string sBJDID) + { + string sYBJDID = sBJDID; + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add(" select XLXSBJD_ZT,XLXSBJD_YBJDIDS from XLXSBJD where XLXSBJD_BJDID = :pBJDID "); + SQL.ParamByName("pBJDID").Value = sBJDID; + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + if (ds.Tables[0].Rows[0]["XLXSBJD_ZT"].ToString().Trim().Equals("Z")) + { + sYBJDID = ds.Tables[0].Rows[0]["XLXSBJD_YBJDIDS"].ToString().Trim(); + } + } + return sYBJDID; + } + + public static void GetBJDID(string sXZQHID, string sBJFLID, string sSYDWID, ref string sBJDID, ref string sError) + { + GetBJDID(sXZQHID, sBJFLID, sBJFLID, 100860000, ref sBJDID, ref sError); + } + public static void GetBJDID(string sXZQHID, string sBJFLID, string sSYDWID, int iPZMDID, double dTJ, ref string sBJDID, ref string sError) + { + GetBJDID(sXZQHID, sBJFLID, sBJFLID, iPZMDID, ref sBJDID, ref sError); + string sBMYSLIST = GetBMYSLIST(iPZMDID); + if (sBMYSLIST.Contains("TJ")) + { + dTJ = NumberUtils.RoundX(dTJ, 1) * 10; + sBJDID += getTJTZM(dTJ); + if (sBJDID.Length > 20) + sBJDID = sBJDID.Substring(0, 20); + } + } + + public static string getTJTZM(double dTJ) + { + if (dTJ == 0) + return "000"; + int iTJ = (int)dTJ; + int iWS1 = 0; + string sWS1 = "0"; + iWS1 = iTJ / 100; + sWS1 = iWS1.ToString().Trim(); + iTJ = iTJ - 100 * iWS1; + + int iWS2 = 0; + string sWS2 = "0"; + iWS2 = iTJ / 10; + sWS2 = iWS2.ToString().Trim(); + iTJ = iTJ - 10 * iWS2; + + int iWS3 = 0; + string sWS3 = "0"; + iWS3 = iTJ / 1; + sWS3 = iWS3.ToString().Trim(); + + return sWS1 + sWS2 + sWS3; + } + + public static void GetBJDID(string sXZQHID, string sBJFLID, string sSYDWID, int iPZMDID,ref string sBJDID, ref string sError) + { + string sXMDJC = ""; + Dictionary sParamList = new Dictionary(); + sParamList.Clear(); + string sBMYSLIST = GetBMYSLIST(iPZMDID); + if (sBMYSLIST.Contains("XZQHID")) + { + string sKHSZDPRO = string.Empty; + string sKHSZDCITY = string.Empty; + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add("select a.XZQH_XZQHID,a.XZQH_FID,a.XZQH_PROVINCE,a.XZQH_CITY,a.XZQH_SSJC as CITYJC,b.XZQH_SSJC as PROJC from XZQH a "); + SQL.Add(" left join XZQH b on b.XZQH_XZQHID = a.XZQH_FID "); + SQL.Add(" where a.XZQH_XZQHID = :pXZQHID "); + SQL.Add(" and a.XZQH_XZQHID <> '86' "); + SQL.ParamByName("pXZQHID").Value = sXZQHID; + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + sXMDJC = ds.Tables[0].Rows[0]["PROJC"].ToString().Trim() + ds.Tables[0].Rows[0]["CITYJC"].ToString().Trim(); + sKHSZDPRO = ds.Tables[0].Rows[0]["XZQH_PROVINCE"].ToString().Trim(); + sKHSZDCITY = ds.Tables[0].Rows[0]["XZQH_CITY"].ToString().Trim(); + } + if (sKHSZDPRO.Trim().Equals("") || sKHSZDCITY.Trim().Equals("")) + { + sError = "销售报价业务配置已经配置报价单号生成规则,项目所在地不允许为空!"; + return; + } + sParamList.Add("XMD", sXMDJC); + } + if (sBMYSLIST.Contains("BJFLTZM")) + { + string sBJFLTZM = getBJFLTZM(sBJFLID); + if (sBJFLTZM.Equals("")) + { + sError = "销售报价业务配置已经配置报价单号生成规则,报价分类特征码不允许为空!"; + return; + } + sParamList.Add("BJFL", sBJFLTZM); + } + if (sBMYSLIST.Contains("SYDWID")) + { + if (sSYDWID.Equals("")) + { + sError = "销售报价业务配置已经配置报价单号生成规则,销售单位不允许为空!"; + return; + } + sParamList.Add("SYDW", sSYDWID); + } + sBJDID = CMISproDataBase.NewDH("XLXSBJD_BJDID", DateTime.Now.Date, sParamList); + } + + //获取报价分类编号特征码 + public static string getBJFLTZM(string sBJFLID) + { + string sResult = string.Empty; + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + DataSet ds = dberp.OpenDataSet(string.Format("select XLXSBJFL_BJFLTZM from XLXSBJFL where XLXSBJFL_BJFLID = '{0}'", sBJFLID)); + if (ds.Tables[0].Rows.Count > 0) + { + sResult = ds.Tables[0].Rows[0][0].ToString().Trim(); + } + return sResult; + } + + //报价产品的组织形式 + public static string GroupBJCPXX(string sXLXHID, string sXLGGID, string sDYDJID) + { + string sBJCPXX = ""; + sXLXHID = sXLXHID.Trim(); + sXLGGID = sXLGGID.Trim(); + sDYDJID = sDYDJID.Trim(); + if (sDYDJID.Equals("")) + { + if (!sXLXHID.Equals("") && !sXLGGID.Equals("")) + { + sBJCPXX = sXLXHID + " " + sXLGGID; + } + } + else + { + if (!sXLXHID.Equals("") && !sXLGGID.Equals("")) + { + if (!sDYDJID.Equals("--")) + { + sBJCPXX = sXLXHID + "-" + sDYDJID + " " + sXLGGID; + } + else + { + sBJCPXX = sXLXHID + " " + sXLGGID; + } + } + } + return sBJCPXX; + } + + //是否存在有效的JGF价格表明细 + public static bool IsJGFJGBMX(string sBJRQ, string sXLXHID, string sXLGGID, string sXLBZID, string sDYDJID) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add(string.Format("select XLXSJGB_JGBID from XLXSJGB where XLXSJGB_MXBH='JGF' and XLXSJGB_YXQS<='{0}' and (XLXSJGB_YXQZ is null or XLXSJGB_YXQZ>='{0}')", sBJRQ)); + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + string sJGBID = ds.Tables[0].Rows[0]["XLXSJGB_JGBID"].ToString().Trim(); + if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSJGBMX " + + "left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSJGBMX_XLGGID " + + "where XLXSJGBMX_JGBID='{0}' and XLXSJGBMX_XLXHID = '{1}' and XLXSBJXLGGTHB_XLGGIDCH = '{2}' and XLXSJGBMX_XLBZID = '{3}'and XLXSJGBMX_DYDJID = '{4}'", + sJGBID, sXLXHID, sXLGGID.Replace('*', '×'), sXLBZID, sDYDJID.Equals("") ? " " : sDYDJID))) + { + return true; + } + else + return false; + } + else + return false; + } + + //是否为外购产品 + public static bool IsWGCP(string sXLXHID, string sXLGGID, string sXLBZID, string sDYDJID) + { + if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLWGCP where XLWGCP_XLXHID='{0}' and XLWGCP_XLGGID='{1}' and XLWGCP_XLBZID ='{2}' and XLWGCP_DYDJID='{3}' ", sXLXHID, sXLGGID, sXLBZID, sDYDJID))) + return true; + return false; + } + + + //获取JGF价格表基价何计量单位 + public static void GetJGBJJ_JGF(string sBJRQ, string sXLXHID, string sXLGGID, string sXLBZID, string sDYDJID, bool bHSBZ, string sBJU018, ref double dJGFJJ, ref double dJGFBJ, ref string sJGFJLDW) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add(string.Format("select XLXSJGB_JGBID from XLXSJGB where XLXSJGB_MXBH='JGF' and XLXSJGB_YXQS<='{0}' and (XLXSJGB_YXQZ is null or XLXSJGB_YXQZ>='{0}')", sBJRQ)); + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + string sJGBID = ds.Tables[0].Rows[0]["XLXSJGB_JGBID"].ToString().Trim(); + SQL.Clear(); + SQL.Add("select XLXSJGBMX_HSJJ,XLXSJGBMX_WSJJ,XLXSJGBMX_HSJJM,XLXSJGBMX_WSJJM,XLXSJGBMX_HSBJ,XLXSJGBMX_WSBJ,XLXSJGBMX_HSBJM,XLXSJGBMX_WSBJM,XLXSJGBMX_JLDW from XLXSJGBMX "); + SQL.Add(" left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSJGBMX_XLGGID "); + SQL.Add(" where XLXSJGBMX_JGBID = :pJGBID "); + SQL.Add(" and XLXSJGBMX_XLXHID = :pXLXHID "); + SQL.Add(" and XLXSBJXLGGTHB_XLGGIDCH = :pXLGGID "); + SQL.Add(" and XLXSJGBMX_XLBZID = :pXLBZID "); + SQL.Add(" and XLXSJGBMX_DYDJID = :pDYDJID "); + SQL.ParamByName("pJGBID").Value = sJGBID; + SQL.ParamByName("pXLXHID").Value = sXLXHID; + SQL.ParamByName("pXLGGID").Value = sXLGGID.Replace('*', '×'); + SQL.ParamByName("pXLBZID").Value = sXLBZID; + SQL.ParamByName("pDYDJID").Value = sDYDJID.Equals("") ? " " : sDYDJID; + ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + double dHSJJ = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSJGBMX_HSJJ"].ToString().Trim()); + double dWSJJ = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSJGBMX_WSJJ"].ToString().Trim()); + double dHSJJM = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSJGBMX_HSJJM"].ToString().Trim()); + double dWSJJM = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSJGBMX_WSJJM"].ToString().Trim()); + double dHSBJ = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSJGBMX_HSBJ"].ToString().Trim()); + double dWSBJ = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSJGBMX_WSBJ"].ToString().Trim()); + double dHSBJM = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSJGBMX_HSBJM"].ToString().Trim()); + double dWSBJM = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSJGBMX_WSBJM"].ToString().Trim()); + sJGFJLDW = ds.Tables[0].Rows[0]["XLXSJGBMX_JLDW"].ToString().Trim(); + if (sBJU018.Equals("Y") && XLBJDUtils.sJQCDJLDWList.Contains(sJGFJLDW.ToUpper())) + { + if (bHSBZ) + { + dJGFJJ = dHSJJM; + dJGFBJ = dHSBJM; + } + else + { + dJGFJJ = dWSJJM; + dJGFBJ = dWSBJM; + } + sJGFJLDW = "M"; + } + else + { + if (bHSBZ) + { + dJGFJJ = dHSJJ; + dJGFBJ = dHSBJ; + } + else + { + dJGFJJ = dWSJJ; + dJGFBJ = dWSBJ; + } + } + } + + } + } + + //获取有效的JGF价格表ID + public static string GetJGFID(string sBJRQ) + { + string sJGBID = ""; + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add(string.Format("select XLXSJGB_JGBID from XLXSJGB where XLXSJGB_MXBH='JGF' and XLXSJGB_YXQS<='{0}' and (XLXSJGB_YXQZ is null or XLXSJGB_YXQZ>='{0}')", sBJRQ)); + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + sJGBID = ds.Tables[0].Rows[0]["XLXSJGB_JGBID"].ToString().Trim(); + } + return sJGBID; + } + + /// + /// 根据按钮名称,返回按钮宽度 + /// + /// 按钮名称 + /// 是否是下拉框,true为下拉框 + /// + public static int GetBtnLength(ref string sText, bool bDropDown) + { + int length = 0; + if (bDropDown) + { + length = 70; + } + else + { + length = 58; + } + + List lst = new List(); + byte[] byteArray = System.Text.ASCIIEncoding.Default.GetBytes(sText); + int byteCount = 0; + for (int i = 0; i < sText.Length; i++) + { + string ss = sText.ToCharArray()[i].ToString().Trim(); + lst.Add(ss); + bool bb1 = IsChinese(ss); + if (!bb1) + { + byteCount++; + } + } + if (bDropDown) + { + if (byteCount == 0) + { + if (byteArray.Length <= 4) + { + length = 58; + if (lst.Count >= 2) + { + sText = lst[0] + lst[1]; + } + } + else if (byteArray.Length >= 6) + { + length = (byteArray.Length - 6) * 6 + 70; + + } + else + { + length = 70; + } + + } + else + { + if (byteArray.Length >= 6) + { + length = (byteArray.Length - 6) * 6 + 70; + + } + else + { + length = 70; + } + } + } + else + { + if (byteCount == 0) + { + if (byteArray.Length <= 4) + { + length = 58; + if (lst.Count >= 2) + { + sText = lst[0] + " " + lst[1]; + } + } + else if (byteArray.Length >= 6) + { + length = (byteArray.Length - 6) * 6 + 58; + + } + else + { + length = 58; + } + } + else + { + if (byteArray.Length >= 6) + { + length = (byteArray.Length - 6) * 6 + 58; + + } + else + { + length = 58; + } + + } + } + return length; + } + + /// + /// 给定一个字符串,判断其是否只包含有汉字,汉字的 UNICODE 编码范围 + /// + /// + /// + public static bool IsChinese(string str) + { + Regex rx = new Regex("^[\u4e00-\u9fa5]$"); + if (rx.IsMatch(str)) + { + return true; + } + return false; + } + + //用户是否是销售员 + public static bool IsXSY(string sGH) + { + return CMISproDataBase.ExistsRecord("DBERP", string.Format("select XSY_TXY from XSY where XSY_GH ='{0}' and isnull(XSY_TYBZ,'N') <> 'Y' ", sGH)); + } + + //用户是否是经销商 + public static bool IsJXS(string sGH) + { + return CMISproDataBase.ExistsRecord("DBERP", string.Format(" select JXSXX_KHID from JXSXX where JXSXX_GH='{0}' and isnull(JXSXX_TYBZ,'N') <> 'Y' ", sGH)); + } + + public static double GetCPBJ(string sBJDID, string sXLXHID, string sXLGGID, string sXLBZID, string sDYDJID) + { + double fResult = 0.0; + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL Sql = new TSQL(dberp); + Sql.Add("select distinct XLXSBJDMX_CPBJ from XLXSBJDMX "); + Sql.Add("where XLXSBJDMX_BJDID= :pBJDID and XLXSBJDMX_XLXHID = :pXLXHID and XLXSBJDMX_XLGGID = :pXLGGID and XLXSBJDMX_XLBZID= :pXLBZID and XLXSBJDMX_DYDJID = :pDYDJID"); + Sql.ParamByName("pBJDID").Value = sBJDID; + Sql.ParamByName("pXLXHID").Value = sXLXHID; + Sql.ParamByName("pXLGGID").Value = sXLGGID; + Sql.ParamByName("pXLBZID").Value = sXLBZID; + Sql.ParamByName("pDYDJID").Value = sDYDJID; + DataSet ds = dberp.OpenDataSet(Sql); + if (ds.Tables[0].Rows.Count == 1) + fResult = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0][0].ToString().Trim(), 0); + return fResult; + } + + public static string GetGYKH(string sXLBZID) + { + string sGYKH = ""; + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add(" select XLBZGYKHDZB_GYKH from XLBZGYKHDZB where XLBZGYKHDZB_XLBZID = :pXLBZID "); + SQL.ParamByName("pXLBZID").Value = sXLBZID; + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + sGYKH = ds.Tables[0].Rows[0]["XLBZGYKHDZB_GYKH"].ToString().Trim(); + } + return sGYKH; + } + + public static bool ISDZBZ(string sXLBZID) + { + if (CMISproDataBase.ExistsRecord("DBERP", string.Format(" select 1 from XLBZ where XLBZ_DZSC='Y' and XLBZ_XLBZID = '{0}'", sXLBZID.Trim()))) + return true; + return false; + } + + //下单型号匹配 + //按XLXSBJXDBZ1设置的规则获取标准 + public static string GetXDXLBZID(string sXLXHID, string sDYDJID, string sXLGGID, string sXLBZID) + { + string sResult = sXLBZID; + Dictionary dicXLGGB = XLBJDUtils.GetXXJGIDByXLGGID(sXLGGID, sXLXHID); + double fZXJM = CMISproConvert.StrToFloat(dicXLGGB["ZXJM"]); + string sXXJGID = dicXLGGB["XXJGID"]; + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + sql.Add(" select XLXSBJXDBZ1_XDXLBZID from XLXSBJXDBZ1 "); + sql.Add(" where XLXSBJXDBZ1_PPLX='B' and XLXSBJXDBZ1_XLBZID=:pXLBZID "); + sql.ParamByName("pXLBZID").Value = sXLBZID; + DataSet ds = dberp.OpenDataSet(sql); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + sResult = ds.Tables[0].Rows[i]["XLXSBJXDBZ1_XDXLBZID"].ToString().Trim(); + } + sql.Clear(); + sql.Add("select XLXSBJXDBZ1_XDXLBZID,XLXSBJXDBZ1_DYDJID,XLXSBJXDBZ1_XXJGID, "); + sql.Add(" case WHEN isnull(XLXSBJXDBZ1_DYDJID,' ')<>' ' and isnull(XLXSBJXDBZ1_XXJGID,' ')<>' ' then 1 "); + sql.Add(" WHEN isnull(XLXSBJXDBZ1_DYDJID,' ')<>' ' and isnull(XLXSBJXDBZ1_XXJGID,' ')=' ' then 2 "); + sql.Add(" END AS PX "); + sql.Add(" from XLXSBJXDBZ1 "); + sql.Add(" where XLXSBJXDBZ1_XLXHID=:pXLXHID "); + sql.Add(" and XLXSBJXDBZ1_XLBZID=:pXLBZID "); + sql.Add(" and XLXSBJXDBZ1_ZXJMXX<=:pZXJM and ((XLXSBJXDBZ1_ZXJMSX<>0 and XLXSBJXDBZ1_ZXJMSX>=:pZXJM) or XLXSBJXDBZ1_ZXJMSX=0)"); + sql.Add(" order by PX,XLXSBJXDBZ1_XLBZID "); + sql.ParamByName("pXLXHID").Value = sXLXHID; + sql.ParamByName("pXLBZID").Value = sXLBZID; + sql.ParamByName("pZXJM").Value = fZXJM; + ds = dberp.OpenDataSet(sql); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + string sPX = ds.Tables[0].Rows[i]["PX"].ToString().Trim(); + string tmpDYDJID = ds.Tables[0].Rows[i]["XLXSBJXDBZ1_DYDJID"].ToString().Trim(); + string tmpXXJGID = ds.Tables[0].Rows[i]["XLXSBJXDBZ1_XXJGID"].ToString().Trim(); + //先匹配电压、芯线结构不为空的记录 + if (sPX.Equals("1") && sDYDJID.Equals(tmpDYDJID) && sXXJGID.Equals(tmpXXJGID)) + { + sResult = ds.Tables[0].Rows[i]["XLXSBJXDBZ1_XDXLBZID"].ToString().Trim(); + break; + } + //匹配电压不为空、芯线结构为空的记录 + else if (sPX.Equals("2") && sDYDJID.Equals(tmpDYDJID)) + { + sResult = ds.Tables[0].Rows[i]["XLXSBJXDBZ1_XDXLBZID"].ToString().Trim(); + break; + } + + } + return sResult; + } + + + private static BJFLJSLMXX GetBJFLJSLMObject(DataRow row) + { + BJFLJSLMXX jslmxx = new BJFLJSLMXX(); + + jslmxx.XLXSBJFLJSLM_BJFLID = row["XLXSBJFLJSLM_BJFLID"].ToString().Trim(); + jslmxx.XLXSBJFLJSLM_JSLX = row["XLXSBJFLJSLM_JSLX"].ToString().Trim(); + jslmxx.XLXSBJFLJSLM_LMID = row["XLXSBJFLJSLM_LMID"].ToString().Trim(); + jslmxx.XLXSBJFLJSLM_LMLX = row["XLXSBJFLJSLM_LMLX"].ToString().Trim(); + jslmxx.XLXSBJFLJSLM_YCBZ = row["XLXSBJFLJSLM_YCBZ"].ToString().Trim(); + + return jslmxx; + } + + public static List GetBJFLJSLMXX(string sBJFLID) + { + List jslmxxList = new List(); + BJFLJSLMCache jslmxxCache = new BJFLJSLMCache(); + if (jslmxxCache.CacheEnabled) + { + jslmxxCache = (BJFLJSLMCache)jslmxxCache.GetData(null); + foreach (DataRowView row in jslmxxCache.dvXLXSBJFLJSLMLBy_BJFLID.FindRows(sBJFLID)) + { + BJFLJSLMXX jslmxx = GetBJFLJSLMObject(row.Row); + jslmxxList.Add(jslmxx); + } + } + return jslmxxList; + } + + private static BJFLXX GetBJFLObject(DataRow row) + { + BJFLXX flxx = new BJFLXX(); + + flxx.XLXSBJFL_BABZFGDY = row["XLXSBJFL_BABZFGDY"].ToString().Trim(); + flxx.XLXSBJFL_BJBM = row["XLXSBJFL_BJBM"].ToString().Trim(); + flxx.XLXSBJFL_BJCPFZJS = row["XLXSBJFL_BJCPFZJS"].ToString().Trim(); + flxx.XLXSBJFL_BJDHQLJBM = row["XLXSBJFL_BJDHQLJBM"].ToString().Trim(); + flxx.XLXSBJFL_BJDHQLY = row["XLXSBJFL_BJDHQLY"].ToString().Trim(); + flxx.XLXSBJFL_BJDYBJTXS = row["XLXSBJFL_BJDYBJTXS"].ToString().Trim(); + flxx.XLXSBJFL_BJFLID = row["XLXSBJFL_BJFLID"].ToString().Trim(); + flxx.XLXSBJFL_BJFLMC = row["XLXSBJFL_BJFLMC"].ToString().Trim(); + flxx.XLXSBJFL_BJFLTZM = row["XLXSBJFL_BJFLTZM"].ToString().Trim(); + flxx.XLXSBJFL_BJHYF = row["XLXSBJFL_BJHYF"].ToString().Trim(); + flxx.XLXSBJFL_BJJCLLX = row["XLXSBJFL_BJJCLLX"].ToString().Trim(); + flxx.XLXSBJFL_BJLJJCLLX = row["XLXSBJFL_BJLJJCLLX"].ToString().Trim(); + flxx.XLXSBJFL_BJQSTXS = row["XLXSBJFL_BJQSTXS"].ToString().Trim(); + flxx.XLXSBJFL_XJDYBJTXS = row["XLXSBJFL_XJDYBJTXS"].ToString().Trim(); + flxx.XLXSBJFL_BZ = row["XLXSBJFL_BZ"].ToString().Trim(); + flxx.XLXSBJFL_CPBJMRXSWS = row["XLXSBJFL_CPBJMRXSWS"].ToString().Trim(); + flxx.XLXSBJFL_CPMLID = row["XLXSBJFL_CPMLID"].ToString().Trim(); + flxx.XLXSBJFL_JGBBJBM = row["XLXSBJFL_JGBBJBM"].ToString().Trim(); + flxx.XLXSBJFL_JGBIDS = row["XLXSBJFL_JGBIDS"].ToString().Trim(); + flxx.XLXSBJFL_JGBTJYSS = row["XLXSBJFL_JGBTJYSS"].ToString().Trim(); + flxx.XLXSBJFL_JGMBGRPID = row["XLXSBJFL_JGMBGRPID"].ToString().Trim(); + flxx.XLXSBJFL_JJZJGBXH = row["XLXSBJFL_JJZJGBXH"].ToString().Trim(); + flxx.XLXSBJFL_JLBJDHQ = row["XLXSBJFL_JLBJDHQ"].ToString().Trim(); + flxx.XLXSBJFL_JLRBJCP = row["XLXSBJFL_JLRBJCP"].ToString().Trim(); + flxx.XLXSBJFL_JMBGSYZID = row["XLXSBJFL_JMBGSYZID"].ToString().Trim(); + flxx.XLXSBJFL_JSJGS = row["XLXSBJFL_JSJGS"].ToString().Trim(); + flxx.XLXSBJFL_JYF = row["XLXSBJFL_JYF"].ToString().Trim(); + flxx.XLXSBJFL_LBJCLID = row["XLXSBJFL_LBJCLID"].ToString().Trim(); + flxx.XLXSBJFL_LJJCLLX = row["XLXSBJFL_LJJCLLX"].ToString().Trim(); + flxx.XLXSBJFL_LJJCLPLTJFW = row["XLXSBJFL_LJJCLPLTJFW"].ToString().Trim(); + flxx.XLXSBJFL_MRCKC = row["XLXSBJFL_MRCKC"].ToString().Trim(); + flxx.XLXSBJFL_MXBH = row["XLXSBJFL_MXBH"].ToString().Trim(); + flxx.XLXSBJFL_QYRQ = row["XLXSBJFL_QYRQ"].ToString().Trim(); + flxx.XLXSBJFL_SDJGBCLHQFW = row["XLXSBJFL_SDJGBCLHQFW"].ToString().Trim(); + flxx.XLXSBJFL_TBJCLID = row["XLXSBJFL_TBJCLID"].ToString().Trim(); + flxx.XLXSBJFL_TLJTZGXQTCL = row["XLXSBJFL_TLJTZGXQTCL"].ToString().Trim(); + flxx.XLXSBJFL_TYBZ = row["XLXSBJFL_TYBZ"].ToString().Trim(); + flxx.XLXSBJFL_TYRQ = row["XLXSBJFL_TYRQ"].ToString().Trim(); + flxx.XLXSBJFL_TZBJ = row["XLXSBJFL_TZBJ"].ToString().Trim(); + flxx.XLXSBJFL_CPBJZDWPID = row["XLXSBJFL_CPBJZDWPID"].ToString().Trim(); + flxx.XLXSBJFL_LRBJCPWPID = row["XLXSBJFL_LRBJCPWPID"].ToString().Trim(); + flxx.XLXSBJFL_TZBJDHQLJ = row["XLXSBJFL_TZBJDHQLJ"].ToString().Trim(); + flxx.XLXSBJFL_TZCLHQ = row["XLXSBJFL_TZCLHQ"].ToString().Trim(); + flxx.XLXSBJFL_TZJGBBJ = row["XLXSBJFL_TZJGBBJ"].ToString().Trim(); + flxx.XLXSBJFL_TZBJBJBB = row["XLXSBJFL_TZBJBJBB"].ToString().Trim(); + flxx.XLXSBJFL_JGBBJZDWPID = row["XLXSBJFL_JGBBJZDWPID"].ToString().Trim(); + flxx.XLXSBJFL_TZQCPBJGS = row["XLXSBJFL_TZQCPBJGS"].ToString().Trim(); + flxx.XLXSBJFL_TZWLHQ = row["XLXSBJFL_TZWLHQ"].ToString().Trim(); + flxx.XLXSBJFL_WHR = row["XLXSBJFL_WHR"].ToString().Trim(); + flxx.XLXSBJFL_WHRID = row["XLXSBJFL_WHRID"].ToString().Trim(); + flxx.XLXSBJFL_WHSJ = row["XLXSBJFL_WHSJ"].ToString().Trim(); + flxx.XLXSBJFL_XHABJCSDP = row["XLXSBJFL_XHABJCSDP"].ToString().Trim(); + flxx.XLXSBJFL_XHGGYMHJS = row["XLXSBJFL_XHGGYMHJS"].ToString().Trim(); + flxx.XLXSBJFL_XSJGBBJJCE = row["XLXSBJFL_XSJGBBJJCE"].ToString().Trim(); + flxx.XLXSBJFL_XSJGBJJ = row["XLXSBJFL_XSJGBJJ"].ToString().Trim(); + flxx.XLXSBJFL_XSQYIDS = row["XLXSBJFL_XSQYIDS"].ToString().Trim(); + flxx.XLXSBJFL_XSTZBJJE = row["XLXSBJFL_XSTZBJJE"].ToString().Trim(); + flxx.XLXSBJFL_XSTZCPBJ = row["XLXSBJFL_XSTZCPBJ"].ToString().Trim(); + flxx.XLXSBJFL_XSTZZDXJ = row["XLXSBJFL_XSTZZDXJ"].ToString().Trim(); + flxx.XLXSBJFL_XSXH = row["XLXSBJFL_XSXH"].ToString().Trim(); + flxx.XLXSBJFL_XSYSCP = row["XLXSBJFL_XSYSCP"].ToString().Trim(); + flxx.XLXSBJFL_XSYXJ = row["XLXSBJFL_XSYXJ"].ToString().Trim(); + flxx.XLXSBJFL_XSXLBZMS = row["XLXSBJFL_XSXLBZMS"].ToString().Trim(); + flxx.XLXSBJFL_XSYZ = row["XLXSBJFL_XSYZ"].ToString().Trim(); + flxx.XLXSBJFL_XSZDXJ = row["XLXSBJFL_XSZDXJ"].ToString().Trim(); + flxx.XLXSBJFL_XTCPBJYZ = row["XLXSBJFL_XTCPBJYZ"].ToString().Trim(); + flxx.XLXSBJFL_YFWLID = row["XLXSBJFL_YFWLID"].ToString().Trim(); + flxx.XLXSBJFL_ZDXJGS = row["XLXSBJFL_ZDXJGS"].ToString().Trim(); + flxx.XLXSBJFL_ZDXJJCLLX = row["XLXSBJFL_ZDXJJCLLX"].ToString().Trim(); + flxx.XLXSBJFL_ZDXJJCLTXS = row["XLXSBJFL_ZDXJJCLTXS"].ToString().Trim(); + flxx.XLXSBJFL_ZDXJJCLXX = row["XLXSBJFL_ZDXJJCLXX"].ToString().Trim(); + flxx.XLXSBJFL_ZDXJQZBJDFL = row["XLXSBJFL_ZDXJQZBJDFL"].ToString().Trim(); + flxx.XLXSBJFL_ZLGZCLS = row["XLXSBJFL_ZLGZCLS"].ToString().Trim(); + flxx.XLXSBJFL_YXJJCLLX = row["XLXSBJFL_YXJJCLLX"].ToString().Trim(); + flxx.XLXSBJFL_XSFBH = row["XLXSBJFL_XSFBH"].ToString().Trim(); + flxx.XLXSBJFL_XSYLRYZID = row["XLXSBJFL_XSYLRYZID"].ToString().Trim(); + flxx.XLXSBJFL_XSYKJJGHJ = row["XLXSBJFL_XSYKJJGHJ"].ToString().Trim(); + flxx.XLXSBJFL_XSYKJJGLM = row["XLXSBJFL_XSYKJJGLM"].ToString().Trim(); + flxx.XLXSBJFL_ABJDHQJSBJ = row["XLXSBJFL_ABJDHQJSBJ"].ToString().Trim(); + flxx.XLXSBJFL_FJGBCPBJSBJ = row["XLXSBJFL_FJGBCPBJSBJ"].ToString().Trim(); + flxx.XLXSBJFL_XSCPBJXJ = row["XLXSBJFL_XSCPBJXJ"].ToString().Trim(); + flxx.XLXSBJFL_TZYLBL = row["XLXSBJFL_TZYLBL"].ToString().Trim(); + flxx.XLXSBJFL_JSJBM = row["XLXSBJFL_JSJBM"].ToString().Trim(); + flxx.XLXSBJFL_JSJXSWS = row["XLXSBJFL_JSJXSWS"].ToString().Trim(); + flxx.XLXSBJFL_JSJJCLLX = row["XLXSBJFL_JSJJCLLX"].ToString().Trim(); + flxx.XLXSBJFL_MYHSSX = row["XLXSBJFL_MYHSSX"].ToString().Trim(); + flxx.XLXSBJFL_BJJCLBJRQDWCP = row["XLXSBJFL_BJJCLBJRQDWCP"].ToString().Trim(); + flxx.XLXSBJFL_LJJCLBJRQDWCP = row["XLXSBJFL_LJJCLBJRQDWCP"].ToString().Trim(); + flxx.XLXSBJFL_ZDXJJCLBJRQDWCP = row["XLXSBJFL_ZDXJJCLBJRQDWCP"].ToString().Trim(); + flxx.XLXSBJFL_JMBGSBM = row["XLXSBJFL_JMBGSBM"].ToString().Trim(); + flxx.XLXSBJFL_XSLSBJ = row["XLXSBJFL_XSLSBJ"].ToString().Trim(); + flxx.XLXSBJFL_ST = row["XLXSBJFL_ST"].ToString().Trim(); + + return flxx; + } + + public static BJFLXX GetBJFLXX(string sBJFLID) + { + BJFLXX flxx = new BJFLXX(); + BJFLCache flxxCache = new BJFLCache(); + if (flxxCache.CacheEnabled) + { + flxxCache = (BJFLCache)flxxCache.GetData(null); + foreach (DataRowView row in flxxCache.dvXLXSBJFLBy_BJFLID.FindRows(sBJFLID)) + { + flxx = GetBJFLObject(row.Row); + } + } + return flxx; + } + + + + private static XLXSBJPZXX GetObject(DataRow row) + { + XLXSBJPZXX pzxx = new XLXSBJPZXX(); + + pzxx.XLXSBJPZ_ALMXZBJCL = row["XLXSBJPZ_ALMXZBJCL"].ToString().Trim(); + pzxx.XLXSBJPZ_APPCJSXFS = row["XLXSBJPZ_APPCJSXFS"].ToString().Trim(); + pzxx.XLXSBJPZ_BAXMKHMCCF = row["XLXSBJPZ_BAXMKHMCCF"].ToString().Trim(); + pzxx.XLXSBJPZ_BAXMMCCF = row["XLXSBJPZ_BAXMMCCF"].ToString().Trim(); + pzxx.XLXSBJPZ_BAXMMCTXYCF = row["XLXSBJPZ_BAXMMCTXYCF"].ToString().Trim(); + pzxx.XLXSBJPZ_BBYSXH = row["XLXSBJPZ_BBYSXH"].ToString().Trim(); + pzxx.XLXSBJPZ_BJFLIDS = row["XLXSBJPZ_BJFLIDS"].ToString().Trim(); + pzxx.XLXSBJPZ_BJSFTJFS = row["XLXSBJPZ_BJSFTJFS"].ToString().Trim(); + pzxx.XLXSBJPZ_BJXFTJFS = row["XLXSBJPZ_BJXFTJFS"].ToString().Trim(); + pzxx.XLXSBJPZ_BMYSLIST = row["XLXSBJPZ_BMYSLIST"].ToString().Trim(); + pzxx.XLXSBJPZ_CLYLZJFS = row["XLXSBJPZ_CLYLZJFS"].ToString().Trim(); + pzxx.XLXSBJPZ_CPCF = row["XLXSBJPZ_CPCF"].ToString().Trim(); + pzxx.XLXSBJPZ_CPCFBL = row["XLXSBJPZ_CPCFBL"].ToString().Trim(); + pzxx.XLXSBJPZ_CPCFGS = row["XLXSBJPZ_CPCFGS"].ToString().Trim(); + pzxx.XLXSBJPZ_CPMLIDS = row["XLXSBJPZ_CPMLIDS"].ToString().Trim(); + pzxx.XLXSBJPZ_CPSLCF = row["XLXSBJPZ_CPSLCF"].ToString().Trim(); + pzxx.XLXSBJPZ_CPSLCFGS = row["XLXSBJPZ_CPSLCFGS"].ToString().Trim(); + pzxx.XLXSBJPZ_CPCFXLBZ = row["XLXSBJPZ_CPCFXLBZ"].ToString().Trim(); + pzxx.XLXSBJPZ_FJSCGS = row["XLXSBJPZ_FJSCGS"].ToString().Trim(); + pzxx.XLXSBJPZ_FKSZDSCGCXM = row["XLXSBJPZ_FKSZDSCGCXM"].ToString().Trim(); + pzxx.XLXSBJPZ_FZCHYZZ = row["XLXSBJPZ_FZCHYZZ"].ToString().Trim(); + pzxx.XLXSBJPZ_BJDWQFZ = row["XLXSBJPZ_BJDWQFZ"].ToString().Trim(); + pzxx.XLXSBJPZ_GGJQSX = row["XLXSBJPZ_GGJQSX"].ToString().Trim(); + pzxx.XLXSBJPZ_HJYROLEID = row["XLXSBJPZ_HJYROLEID"].ToString().Trim(); + pzxx.XLXSBJPZ_JGBID = row["XLXSBJPZ_JGBID"].ToString().Trim(); + pzxx.XLXSBJPZ_JGBJJFP = row["XLXSBJPZ_JGBJJFP"].ToString().Trim(); + pzxx.XLXSBJPZ_JLTZHCP = row["XLXSBJPZ_JLTZHCP"].ToString().Trim(); + pzxx.XLXSBJPZ_JGBMRBSX = row["XLXSBJPZ_JGBMRBSX"].ToString().Trim(); + pzxx.XLXSBJPZ_JLDWS = row["XLXSBJPZ_JLDWS"].ToString().Trim(); + pzxx.XLXSBJPZ_KHBT = row["XLXSBJPZ_KHBT"].ToString().Trim(); + pzxx.XLXSBJPZ_KHJSLY = row["XLXSBJPZ_KHJSLY"].ToString().Trim(); + pzxx.XLXSBJPZ_KHMCCF = row["XLXSBJPZ_KHMCCF"].ToString().Trim(); + pzxx.XLXSBJPZ_KHTXYXZ = row["XLXSBJPZ_KHTXYXZ"].ToString().Trim(); + pzxx.XLXSBJPZ_KSDREJCD = row["XLXSBJPZ_KSDREJCD"].ToString().Trim(); + pzxx.XLXSBJPZ_KSDYZID = row["XLXSBJPZ_KSDYZID"].ToString().Trim(); + pzxx.XLXSBJPZ_KSDYZZLX = row["XLXSBJPZ_KSDYZZLX"].ToString().Trim(); + pzxx.XLXSBJPZ_LBJCLID = row["XLXSBJPZ_LBJCLID"].ToString().Trim(); + pzxx.XLXSBJPZ_LHJBJCLID = row["XLXSBJPZ_LHJBJCLID"].ToString().Trim(); + pzxx.XLXSBJPZ_LDTGSCLID = row["XLXSBJPZ_LDTGSCLID"].ToString().Trim(); + pzxx.XLXSBJPZ_MDID = row["XLXSBJPZ_MDID"].ToString().Trim(); + pzxx.XLXSBJPZ_MRDYDJ = row["XLXSBJPZ_MRDYDJ"].ToString().Trim(); + pzxx.XLXSBJPZ_MRGXLR = row["XLXSBJPZ_MRGXLR"].ToString().Trim(); + pzxx.XLXSBJPZ_MRJSFS = row["XLXSBJPZ_MRJSFS"].ToString().Trim(); + pzxx.XLXSBJPZ_MRXLBZID = row["XLXSBJPZ_MRXLBZID"].ToString().Trim(); + pzxx.XLXSBJPZ_PLTJKXX = row["XLXSBJPZ_PLTJKXX"].ToString().Trim(); + pzxx.XLXSBJPZ_QYBJCPFZJS = row["XLXSBJPZ_QYBJCPFZJS"].ToString().Trim(); + pzxx.XLXSBJPZ_SJJLYBJCP = row["XLXSBJPZ_SJJLYBJCP"].ToString().Trim(); + pzxx.XLXSBJPZ_SJYROLEID = row["XLXSBJPZ_SJYROLEID"].ToString().Trim(); + pzxx.XLXSBJPZ_SQXMBAGL = row["XLXSBJPZ_SQXMBAGL"].ToString().Trim(); + pzxx.XLXSBJPZ_TBFKZ3BB = row["XLXSBJPZ_TBFKZ3BB"].ToString().Trim(); + pzxx.XLXSBJPZ_TBJCLID = row["XLXSBJPZ_TBJCLID"].ToString().Trim(); + pzxx.XLXSBJPZ_TDTGSCLID = row["XLXSBJPZ_TDTGSCLID"].ToString().Trim(); + pzxx.XLXSBJPZ_ZBLRGS = row["XLXSBJPZ_ZBLRGS"].ToString().Trim(); + pzxx.XLXSBJPZ_THSFTGKBXH = row["XLXSBJPZ_THSFTGKBXH"].ToString().Trim(); + pzxx.XLXSBJPZ_TJBXYGHJGML = row["XLXSBJPZ_TJBXYGHJGML"].ToString().Trim(); + pzxx.XLXSBJPZ_TZBLYZID = row["XLXSBJPZ_TZBLYZID"].ToString().Trim(); + pzxx.XLXSBJPZ_TZBLYZZLX = row["XLXSBJPZ_TZBLYZZLX"].ToString().Trim(); + pzxx.XLXSBJPZ_WBPPZXSX = row["XLXSBJPZ_WBPPZXSX"].ToString().Trim(); + pzxx.XLXSBJPZ_WHR = row["XLXSBJPZ_WHR"].ToString().Trim(); + pzxx.XLXSBJPZ_WHRID = row["XLXSBJPZ_WHRID"].ToString().Trim(); + pzxx.XLXSBJPZ_WHSJ = row["XLXSBJPZ_WHSJ"].ToString().Trim(); + pzxx.XLXSBJPZ_WXHYJGBID = row["XLXSBJPZ_WXHYJGBID"].ToString().Trim(); + pzxx.XLXSBJPZ_XHGGCF = row["XLXSBJPZ_XHGGCF"].ToString().Trim(); + pzxx.XLXSBJPZ_XHGGCFBL = row["XLXSBJPZ_XHGGCFBL"].ToString().Trim(); + pzxx.XLXSBJPZ_XHJQSX = row["XLXSBJPZ_XHJQSX"].ToString().Trim(); + pzxx.XLXSBJPZ_XJYROLEID = row["XLXSBJPZ_XJYROLEID"].ToString().Trim(); + pzxx.XLXSBJPZ_XMBT = row["XLXSBJPZ_XMBT"].ToString().Trim(); + pzxx.XLXSBJPZ_XMJSLY = row["XLXSBJPZ_XMJSLY"].ToString().Trim(); + pzxx.XLXSBJPZ_XMKHMCXZ = row["XLXSBJPZ_XMKHMCXZ"].ToString().Trim(); + pzxx.XLXSBJPZ_XMMCCF = row["XLXSBJPZ_XMMCCF"].ToString().Trim(); + pzxx.XLXSBJPZ_XMMCCZCF = row["XLXSBJPZ_XMMCCZCF"].ToString().Trim(); + pzxx.XLXSBJPZ_XMMCCZCFGS = row["XLXSBJPZ_XMMCCZCFGS"].ToString().Trim(); + pzxx.XLXSBJPZ_XMMCTSCZ = row["XLXSBJPZ_XMMCTSCZ"].ToString().Trim(); + pzxx.XLXSBJPZ_XSCPML = row["XLXSBJPZ_XSCPML"].ToString().Trim(); + pzxx.XLXSBJPZ_XZKHYQ = row["XLXSBJPZ_XZKHYQ"].ToString().Trim(); + pzxx.XLXSBJPZ_XZMXKXX = row["XLXSBJPZ_XZMXKXX"].ToString().Trim(); + pzxx.XLXSBJPZ_XZXMYQ = row["XLXSBJPZ_XZXMYQ"].ToString().Trim(); + pzxx.XLXSBJPZ_YJTZRYLIST = row["XLXSBJPZ_YJTZRYLIST"].ToString().Trim(); + pzxx.XLXSBJPZ_YSCPCLCBGS1 = row["XLXSBJPZ_YSCPCLCBGS1"].ToString().Trim(); + pzxx.XLXSBJPZ_YXFCDJLDW = row["XLXSBJPZ_YXFCDJLDW"].ToString().Trim(); + pzxx.XLXSBJPZ_ZDBMIDS = row["XLXSBJPZ_ZDBMIDS"].ToString().Trim(); + pzxx.XLXSBJPZ_ZDRGHS = row["XLXSBJPZ_ZDRGHS"].ToString().Trim(); + pzxx.XLXSBJPZ_ZDYJLDWS = row["XLXSBJPZ_ZDYJLDWS"].ToString().Trim(); + pzxx.XLXSBJPZ_ZDZD = row["XLXSBJPZ_ZDZD"].ToString().Trim(); + pzxx.XLXSBJPZ_WLQSTZBMIDS = row["XLXSBJPZ_WLQSTZBMIDS"].ToString().Trim(); + pzxx.XLXSBJPZ_WLQSTZRGHS = row["XLXSBJPZ_WLQSTZRGHS"].ToString().Trim(); + pzxx.XLXSBJPZ_JGPSTZBMIDS = row["XLXSBJPZ_JGPSTZBMIDS"].ToString().Trim(); + pzxx.XLXSBJPZ_JGPSTZRGHS = row["XLXSBJPZ_JGPSTZRGHS"].ToString().Trim(); + pzxx.XLXSBJPZ_BQKTZZDXJ = row["XLXSBJPZ_BQKTZZDXJ"].ToString().Trim(); + pzxx.XLXSBJPZ_BQKTZBJ = row["XLXSBJPZ_BQKTZBJ"].ToString().Trim(); + pzxx.XLXSBJPZ_KHLXRCF = row["XLXSBJPZ_KHLXRCF"].ToString().Trim(); + pzxx.XLXSBJPZ_LXDHCF = row["XLXSBJPZ_LXDHCF"].ToString().Trim(); + pzxx.XLXSBJPZ_YCJGXGLM = row["XLXSBJPZ_YCJGXGLM"].ToString().Trim(); + pzxx.XLXSBJPZ_CPFDCF = row["XLXSBJPZ_CPFDCF"].ToString().Trim(); + pzxx.XLXSBJPZ_MXTMCBL = row["XLXSBJPZ_MXTMCBL"].ToString().Trim(); + pzxx.XLXSBJPZ_MXFDS = row["XLXSBJPZ_MXFDS"].ToString().Trim(); + pzxx.XLXSBJPZ_XYFDSCFBL = row["XLXSBJPZ_XYFDSCFBL"].ToString().Trim(); + pzxx.XLXSBJPZ_DYFDSCFBL = row["XLXSBJPZ_DYFDSCFBL"].ToString().Trim(); + pzxx.XLXSBJPZ_YXTZCZBFZR = row["XLXSBJPZ_YXTZCZBFZR"].ToString().Trim(); + pzxx.XLXSBJPZ_MRZDR = row["XLXSBJPZ_MRZDR"].ToString().Trim(); + pzxx.XLXSBJPZ_ZDZDYF = row["XLXSBJPZ_ZDZDYF"].ToString().Trim(); + pzxx.XLXSBJPZ_ZDZDLX = row["XLXSBJPZ_ZDZDLX"].ToString().Trim(); + pzxx.XLXSBJPZ_ZDQRWPID = row["XLXSBJPZ_ZDQRWPID"].ToString().Trim(); + pzxx.XLXSBJPZ_BJY = row["XLXSBJPZ_BJY"].ToString().Trim(); + pzxx.XLXSBJPZ_KHMCXMMCCF = row["XLXSBJPZ_KHMCXMMCCF"].ToString().Trim(); + pzxx.XLXSBJPZ_CPSLCFBL = row["XLXSBJPZ_CPSLCFBL"].ToString().Trim(); + pzxx.XLXSBJPZ_JLXJXXHZFS = row["XLXSBJPZ_JLXJXXHZFS"].ToString().Trim(); + pzxx.XLXSBJPZ_YLZDMXTZ = row["XLXSBJPZ_YLZDMXTZ"].ToString().Trim(); + pzxx.XLXSBJPZ_BJSLMRYZ = row["XLXSBJPZ_BJSLMRYZ"].ToString().Trim(); + pzxx.XLXSBJPZ_PFBJRBJ = row["XLXSBJPZ_PFBJRBJ"].ToString().Trim(); + pzxx.XLXSBJPZ_FKWLPPTX = row["XLXSBJPZ_FKWLPPTX"].ToString().Trim(); + pzxx.XLXSBJPZ_BZDPPDY = row["XLXSBJPZ_BZDPPDY"].ToString().Trim(); + pzxx.XLXSBJPZ_XSGYKH = row["XLXSBJPZ_XSGYKH"].ToString().Trim(); + pzxx.XLXSBJPZ_JLBJWCSJ = row["XLXSBJPZ_JLBJWCSJ"].ToString().Trim(); + pzxx.XLXSBJPZ_XSZBXX = row["XLXSBJPZ_XSZBXX"].ToString().Trim(); + pzxx.XLXSBJPZ_JGFKZD = row["XLXSBJPZ_JGFKZD"].ToString().Trim(); + pzxx.XLXSBJPZ_KHJFKZD = row["XLXSBJPZ_KHJFKZD"].ToString().Trim(); + pzxx.XLXSBJPZ_JGBJGFKZD = row["XLXSBJPZ_JGBJGFKZD"].ToString().Trim(); + pzxx.XLXSBJPZ_MRCPYT = row["XLXSBJPZ_MRCPYT"].ToString().Trim(); + pzxx.XLXSBJPZ_XSPWQD = row["XLXSBJPZ_XSPWQD"].ToString().Trim(); + pzxx.XLXSBJPZ_WBBJDJXYS = row["XLXSBJPZ_WBBJDJXYS"].ToString().Trim(); + pzxx.XLXSBJPZ_QYBJDXTH = row["XLXSBJPZ_QYBJDXTH"].ToString().Trim(); + pzxx.XLXSBJPZ_WBBJDDRYZ = row["XLXSBJPZ_WBBJDDRYZ"].ToString().Trim(); + pzxx.XLXSBJPZ_YXQCPWL = row["XLXSBJPZ_YXQCPWL"].ToString().Trim(); + pzxx.XLXSBJPZ_TCPBSYS = row["XLXSBJPZ_TCPBSYS"].ToString().Trim(); + pzxx.XLXSBJPZ_LCPBSYS = row["XLXSBJPZ_LCPBSYS"].ToString().Trim(); + pzxx.XLXSBJPZ_KHMCXSBL = row["XLXSBJPZ_KHMCXSBL"].ToString().Trim(); + pzxx.XLXSBJPZ_GXXSBJXDWL = row["XLXSBJPZ_GXXSBJXDWL"].ToString().Trim(); + pzxx.XLXSBJPZ_XHZJSR = row["XLXSBJPZ_XHZJSR"].ToString().Trim(); + pzxx.XLXSBJPZ_FZNRDRLM = row["XLXSBJPZ_FZNRDRLM"].ToString().Trim(); + pzxx.XLXSBJPZ_TJGBFZBLBJ = row["XLXSBJPZ_TJGBFZBLBJ"].ToString().Trim(); + pzxx.XLXSBJPZ_ZCCF = row["XLXSBJPZ_ZCCF"].ToString().Trim(); + pzxx.XLXSBJPZ_YFJSGS = row["XLXSBJPZ_YFJSGS"].ToString().Trim(); + pzxx.XLXSBJPZ_PJZLSFJRYZ = row["XLXSBJPZ_PJZLSFJRYZ"].ToString().Trim(); + pzxx.XLXSBJPZ_CFCPBQFBZ = row["XLXSBJPZ_CFCPBQFBZ"].ToString().Trim(); + pzxx.XLXSBJPZ_BCYZDKH = row["XLXSBJPZ_BCYZDKH"].ToString().Trim(); + pzxx.XLXSBJPZ_BCYZDXM = row["XLXSBJPZ_BCYZDXM"].ToString().Trim(); + pzxx.XLXSBJPZ_CLJGXSWS = row["XLXSBJPZ_CLJGXSWS"].ToString().Trim(); + return pzxx; + + } + + public static XLXSBJPZXX GetXLXSBJPZXX(int iMDID) + { + XLXSBJPZXX pzxx = new XLXSBJPZXX(); + XLXSBJPZCache pzxxCache = new XLXSBJPZCache(); + if (pzxxCache.CacheEnabled) + { + pzxxCache = (XLXSBJPZCache)pzxxCache.GetData(null); + foreach (DataRowView row in pzxxCache.dvXLXSBJPZBy_MDID.FindRows(iMDID)) + { + pzxx = GetObject(row.Row); + } + } + return pzxx; + } + + + /// + /// 获取基础计量单位和自定义计量单位 + /// + /// + public static string GetJLDWS() + { + return GetXLXSBJPZXX(100860000).GetJLDWS(); + } + + /// + /// 判断是否显示产品目录 + /// + /// + public static bool ExistXSCPML() + { + return GetXLXSBJPZXX(100860000).ExistXSCPML(); + } + + /// + /// 判断是否显示工艺卡号 + /// + /// + public static bool ExistGYKH() + { + return GetXLXSBJPZXX(100860000).ExistGYKH(); + } + + /// + /// 获取销售员报价申请模块附件上传格式 + /// + /// + public static string GetAttDocFilter() + { + return GetXLXSBJPZXX(100860061).GetAttDocFilter(); + } + + /// + /// 获取线缆销售报价单报价上浮调价方式 + /// + /// + public static string GetBJSFTJFS() + { + return GetXLXSBJPZXX(100860000).GetBJSFTJFS(); + } + + /// + /// 获取线缆销售报价单报价下浮调价方式 + /// + /// + public static string GetBJXFTJFS() + { + return GetXLXSBJPZXX(100860000).GetBJXFTJFS(); + } + + public static string GetBMYSLIST(int iPZMDID) + { + return GetXLXSBJPZXX(iPZMDID).GetBMYSLIST(); + } + + public static string GetDefaultXLBZID() + { + return GetXLXSBJPZXX(100860000).GetDefaultXLBZID(); + } + + public static string GetPLTJKXX() + { + return GetXLXSBJPZXX(100860000).GetPLTJKXX(); + } + + /// + /// 判断价格表是否调价不需要更换价格目录 + /// + /// + public static bool IFTJBXYBGJGML(string sJGBID) + { + bool bTJBXYBGJGML = false; + string sTJBXYGHJGMLTJYS = ""; + string sTJYS = ""; + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add(" select XLXSJGB_TJYS from XLXSJGB where XLXSJGB_JGBID =:pJGBID and XLXSJGB_MXBH = 'JGB' "); + SQL.ParamByName("pJGBID").Value = sJGBID; + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + sTJYS = ds.Tables[0].Rows[0]["XLXSJGB_TJYS"].ToString().Trim(); + } + XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860018); + if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_TJBXYGHJGML)) + sTJBXYGHJGMLTJYS = pzxx.XLXSBJPZ_TJBXYGHJGML; + + + if (!sTJBXYGHJGMLTJYS.Equals("") && sTJBXYGHJGMLTJYS.Contains(sTJYS)) + { + bTJBXYBGJGML = true; + } + + return bTJBXYBGJGML; + } + + public static string GetCPLJGS() + { + //出厂价价格表扩充产品料价公式 + string sCPLJGS = "1"; + XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860018); + if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_YSCPCLCBGS1)) + sCPLJGS = pzxx.XLXSBJPZ_YSCPCLCBGS1; + + return sCPLJGS; + } + + public static bool ExistedSYJGBMX(string sXLXHID, string sXLGGID, string sXLBZID, string sDYDJID, string sJGBID, ref int iSYXH, ref double dYSJDZ, ref double dCLCBYSJDZ) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + sql.Add("select XLXSJGBMX_SYXH,XLXSJGBMX_YSJDZ,XLXSJGBMX_CLCBYSJDZ "); + sql.Add("from XLXSJGBMX "); + sql.Add("where XLXSJGBMX_XLXHID=:pXLXHID and XLXSJGBMX_XLGGID=:pXLGGID and XLXSJGBMX_XLBZID=:pXLBZID and XLXSJGBMX_DYDJID=:pDYDJID and XLXSJGBMX_JGBID=:pJGBID "); + sql.ParamByName("pXLXHID").Value = sXLXHID; + sql.ParamByName("pXLGGID").Value = sXLGGID; + sql.ParamByName("pXLBZID").Value = sXLBZID; + sql.ParamByName("pDYDJID").Value = sDYDJID; + sql.ParamByName("pJGBID").Value = sJGBID; + + DataSet ds = dberp.OpenDataSet(sql); + if (ds.Tables[0].Rows.Count > 0) + { + iSYXH = CMISproConvert.StrToInt(ds.Tables[0].Rows[0]["XLXSJGBMX_SYXH"].ToString().Trim()); + dYSJDZ = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSJGBMX_YSJDZ"].ToString().Trim()); + dCLCBYSJDZ = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSJGBMX_CLCBYSJDZ"].ToString().Trim()); + if (dYSJDZ == 0) + dYSJDZ = 1; + if (dCLCBYSJDZ == 0) + dCLCBYSJDZ = 1; + } + if (iSYXH == 0) + return false; + return true; + + } + + public static void GetJGBMXBySYXH(string sJGBID, int iSYXH, ref string sXLXHID, ref string sXLGGID, ref string sXLBZID, ref string sDYDJID) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + sql.Add("select XLXSJGBMX_XLXHID,XLXSJGBMX_XLGGID,XLXSJGBMX_XLBZID,XLXSJGBMX_DYDJID "); + sql.Add("from XLXSJGBMX "); + sql.Add("where XLXSJGBMX_JGBID=:pJGBID and XLXSJGBMX_XH=:pXH "); + sql.ParamByName("pXH").Value = iSYXH; + sql.ParamByName("pJGBID").Value = sJGBID; + DataSet ds = dberp.OpenDataSet(sql); + if (ds.Tables[0].Rows.Count > 0) + { + sXLXHID = ds.Tables[0].Rows[0]["XLXSJGBMX_XLXHID"].ToString().Trim(); + sXLGGID = ds.Tables[0].Rows[0]["XLXSJGBMX_XLGGID"].ToString().Trim(); + sXLBZID = ds.Tables[0].Rows[0]["XLXSJGBMX_XLBZID"].ToString().Trim(); + sDYDJID = ds.Tables[0].Rows[0]["XLXSJGBMX_DYDJID"].ToString().Trim(); + + } + } + + + + private static TZYZXX GetYZXXObject(DataRow row) + { + TZYZXX yzxx = new TZYZXX(); + + yzxx.XLXSTZYZ_ABJCPJYYZZ = row["XLXSTZYZ_ABJCPJYYZZ"].ToString().Trim(); + yzxx.XLXSTZYZ_BCYTJ = row["XLXSTZYZ_BCYTJ"].ToString().Trim(); + yzxx.XLXSTZYZ_BJCLID = row["XLXSTZYZ_BJCLID"].ToString().Trim(); + yzxx.XLXSTZYZ_FGQCP = row["XLXSTZYZ_FGQCP"].ToString().Trim(); + yzxx.XLXSTZYZ_HCBZ = row["XLXSTZYZ_HCBZ"].ToString().Trim(); + yzxx.XLXSTZYZ_JGBID = row["XLXSTZYZ_JGBID"].ToString().Trim(); + yzxx.XLXSTZYZ_JJFS = row["XLXSTZYZ_JJFS"].ToString().Trim(); + yzxx.XLXSTZYZ_MINC = row["XLXSTZYZ_MINC"].ToString().Trim(); + yzxx.XLXSTZYZ_MRTJFW = row["XLXSTZYZ_MRTJFW"].ToString().Trim(); + yzxx.XLXSTZYZ_MRZ = row["XLXSTZYZ_MRZ"].ToString().Trim(); + yzxx.XLXSTZYZ_MXBH = row["XLXSTZYZ_MXBH"].ToString().Trim(); + yzxx.XLXSTZYZ_TJLX = row["XLXSTZYZ_TJLX"].ToString().Trim(); + yzxx.XLXSTZYZ_TJMDID = row["XLXSTZYZ_TJMDID"].ToString().Trim(); + yzxx.XLXSTZYZ_TJYS = row["XLXSTZYZ_TJYS"].ToString().Trim(); + yzxx.XLXSTZYZ_TJYZID = row["XLXSTZYZ_TJYZID"].ToString().Trim(); + yzxx.XLXSTZYZ_TYZZYZID = row["XLXSTZYZ_TYZZYZID"].ToString().Trim(); + yzxx.XLXSTZYZ_WPIDLIST = row["XLXSTZYZ_WPIDLIST"].ToString().Trim(); + yzxx.XLXSTZYZ_XSXH = row["XLXSTZYZ_XSXH"].ToString().Trim(); + yzxx.XLXSTZYZ_YZID = row["XLXSTZYZ_YZID"].ToString().Trim(); + yzxx.XLXSTZYZ_YZMC = row["XLXSTZYZ_YZMC"].ToString().Trim(); + yzxx.XLXSTZYZ_YZZBT = row["XLXSTZYZ_YZZBT"].ToString().Trim(); + yzxx.XLXSTZYZ_YZZZD = row["XLXSTZYZ_YZZZD"].ToString().Trim(); + yzxx.XLXSTZYZ_ZDWPIDLIST = row["XLXSTZYZ_ZDWPIDLIST"].ToString().Trim(); + return yzxx; + } + + public static TZYZXX GetYZXXByYZID(string sYZID) + { + TZYZXX yzxx = new TZYZXX(); + TZYZCache yzxxCache = new TZYZCache(); + if (yzxxCache.CacheEnabled) + { + yzxxCache = (TZYZCache)yzxxCache.GetData(null); + foreach (DataRowView row in yzxxCache.dvXLXSTZYZBy_YZID.FindRows(sYZID)) + { + yzxx = GetYZXXObject(row.Row); + } + } + return yzxx; + } + + + + private static JGBYZXX GetJGBYZXXObject(DataRow row) + { + JGBYZXX jgbyzxx = new JGBYZXX(); + + jgbyzxx.XLXSJGBYZ_JGBID = row["XLXSJGBYZ_JGBID"].ToString().Trim(); + jgbyzxx.XLXSJGBYZ_YZID = row["XLXSJGBYZ_YZID"].ToString().Trim(); + + return jgbyzxx; + } + + public static List GetJGBYZXXByJGBID(string sJGBID) + { + List jgbyzxx_List = new List(); + JGBYZCache jgbyzxxCache = new JGBYZCache(); + if (jgbyzxxCache.CacheEnabled) + { + jgbyzxxCache = (JGBYZCache)jgbyzxxCache.GetData(null); + foreach (DataRowView row in jgbyzxxCache.dvXLXSJGBYZBy_JGBID.FindRows(sJGBID)) + { + JGBYZXX jgbyzxx = GetJGBYZXXObject(row.Row); + jgbyzxx_List.Add(jgbyzxx); + } + } + return jgbyzxx_List; + } + + public static List GetJGBYZOrderByXSXH(string sJGBID) + { + List JGBYZXX_List = new List(); + List jgbYZ = GetJGBYZXXByJGBID(sJGBID); + if (jgbYZ.Count > 0) + { + foreach (JGBYZXX sYZ in jgbYZ) + { + TZYZXX yzxx = GetYZXXByYZID(sYZ.XLXSJGBYZ_YZID); + JGBYZXX_List.Add(yzxx); + } + + } + JGBYZXX_List.Sort(new TZYZXXComparer()); + return JGBYZXX_List; + } + + + + private static XLXSBJFLYZXX GetBJFLYZXXObject(DataRow row) + { + XLXSBJFLYZXX bjflyzxx = new XLXSBJFLYZXX(); + + bjflyzxx.XLXSBJFLYZ_BJFLID = row["XLXSBJFLYZ_BJFLID"].ToString().Trim(); + bjflyzxx.XLXSBJFLYZ_YZID = row["XLXSBJFLYZ_YZID"].ToString().Trim(); + + return bjflyzxx; + } + + public static List GetBJFLYZXXByBJFLID(string sBJFLID) + { + List bjflyzxx_List = new List(); + BJFLYZCache bjflyzxxCache = new BJFLYZCache(); + if (bjflyzxxCache.CacheEnabled) + { + bjflyzxxCache = (BJFLYZCache)bjflyzxxCache.GetData(null); + foreach (DataRowView row in bjflyzxxCache.dvXLXSBJFLYZBy_BJFLID.FindRows(sBJFLID)) + { + XLXSBJFLYZXX bjflyzxx = GetBJFLYZXXObject(row.Row); + bjflyzxx_List.Add(bjflyzxx); + } + } + return bjflyzxx_List; + } + + public static List GetBJFLYZOrderByXSXH(string sBJFLID) + { + List BJFLYZXX_List = new List(); + List bjflYZ = GetBJFLYZXXByBJFLID(sBJFLID); + if (bjflYZ.Count > 0) + { + foreach (XLXSBJFLYZXX sYZ in bjflYZ) + { + TZYZXX yzxx = GetYZXXByYZID(sYZ.XLXSBJFLYZ_YZID); + BJFLYZXX_List.Add(yzxx); + } + + } + BJFLYZXX_List.Sort(new TZYZXXComparer()); + return BJFLYZXX_List; + } + + + + public static string GetBJFLSYBZPFYZID(string sBJFLID) + { + List BJFLYZXX_List = new List(); + List bjflYZ = GetBJFLYZXXByBJFLID(sBJFLID); + if (bjflYZ.Count > 0) + { + foreach (XLXSBJFLYZXX sYZ in bjflYZ) + { + TZYZXX yzxx = GetYZXXByYZID(sYZ.XLXSBJFLYZ_YZID); + //100860124|按包装长度包装方式调盘费 + if (yzxx.XLXSTZYZ_TJMDID.Equals("100860124")) + return yzxx.XLXSTZYZ_YZID.Trim() + "|" + yzxx.XLXSTZYZ_YZMC.Trim(); + } + + } + return ""; + } + + public static string GetBJFLSYCPWJPFYZID(string sBJFLID) + { + List BJFLYZXX_List = new List(); + List bjflYZ = GetBJFLYZXXByBJFLID(sBJFLID); + if (bjflYZ.Count > 0) + { + foreach (XLXSBJFLYZXX sYZ in bjflYZ) + { + TZYZXX yzxx = GetYZXXByYZID(sYZ.XLXSBJFLYZ_YZID); + //100860162|按产品外径报价数量区间调盘费 + if (yzxx.XLXSTZYZ_TJMDID.Equals("100860162")) + return yzxx.XLXSTZYZ_YZID.Trim() + "|" + yzxx.XLXSTZYZ_YZMC.Trim(); + } + + } + return ""; + } + + + + private static JGBMLXX GetJGBMLObject(DataRow row) + { + JGBMLXX jgbxx = new JGBMLXX(); + + jgbxx.XLXSJGB_BJLY = row["XLXSJGB_BJLY"].ToString().Trim(); + jgbxx.XLXSJGB_BZ = row["XLXSJGB_BZ"].ToString().Trim(); + jgbxx.XLXSJGB_CPMLID = row["XLXSJGB_CPMLID"].ToString().Trim(); + jgbxx.XLXSJGB_JGBID = row["XLXSJGB_JGBID"].ToString().Trim(); + jgbxx.XLXSJGB_JGBIDS = row["XLXSJGB_JGBIDS"].ToString().Trim(); + jgbxx.XLXSJGB_JGBMC = row["XLXSJGB_JGBMC"].ToString().Trim(); + jgbxx.XLXSJGB_JGCIDS = row["XLXSJGB_JGCIDS"].ToString().Trim(); + jgbxx.XLXSJGB_JJLY = row["XLXSJGB_JJLY"].ToString().Trim(); + jgbxx.XLXSJGB_JSBLFS = row["XLXSJGB_JSBLFS"].ToString().Trim(); + jgbxx.XLXSJGB_JSGS = row["XLXSJGB_JSGS"].ToString().Trim(); + jgbxx.XLXSJGB_MXBH = row["XLXSJGB_MXBH"].ToString().Trim(); + jgbxx.XLXSJGB_TJKSSJ = row["XLXSJGB_TJKSSJ"].ToString().Trim(); + jgbxx.XLXSJGB_TJRGH = row["XLXSJGB_TJRGH"].ToString().Trim(); + jgbxx.XLXSJGB_TJWCSJ = row["XLXSJGB_TJWCSJ"].ToString().Trim(); + jgbxx.XLXSJGB_TJYS = row["XLXSJGB_TJYS"].ToString().Trim(); + jgbxx.XLXSJGB_TJZT = row["XLXSJGB_TJZT"].ToString().Trim(); + jgbxx.XLXSJGB_WHR = row["XLXSJGB_WHR"].ToString().Trim(); + jgbxx.XLXSJGB_WHRID = row["XLXSJGB_WHRID"].ToString().Trim(); + jgbxx.XLXSJGB_WHSJ = row["XLXSJGB_WHSJ"].ToString().Trim(); + jgbxx.XLXSJGB_XSQYIDS = row["XLXSJGB_XSQYIDS"].ToString().Trim(); + jgbxx.XLXSJGB_YXQS = row["XLXSJGB_YXQS"].ToString().Trim(); + jgbxx.XLXSJGB_YXQZ = row["XLXSJGB_YXQZ"].ToString().Trim(); + jgbxx.XLXSJGB_WSJGJSLY = row["XLXSJGB_WSJGJSLY"].ToString().Trim(); + jgbxx.XLXSJGB_ZZSL = row["XLXSJGB_ZZSL"].ToString().Trim(); + jgbxx.XLXSJGB_MXPXFS = row["XLXSJGB_MXPXFS"].ToString().Trim(); + + return jgbxx; + } + + public static JGBMLXX GetXLXSJGBXX(string sJGBID, string sMXBH) + { + JGBMLXX jgbxx = new JGBMLXX(); + JGBMLCache jgbxxCache = new JGBMLCache(); + if (jgbxxCache.CacheEnabled) + { + jgbxxCache = (JGBMLCache)jgbxxCache.GetData(null); + string sKey = sJGBID + "," + sMXBH; + foreach (DataRowView row in jgbxxCache.dvJGBMLBy_IDMX.FindRows(sKey.Split(','))) + { + jgbxx = GetJGBMLObject(row.Row); + } + } + return jgbxx; + } + + public static JGBMLXX GetXLXSJGBXXByJGBID(string sJGBID) + { + JGBMLXX jgbxx = new JGBMLXX(); + JGBMLCache jgbxxCache = new JGBMLCache(); + if (jgbxxCache.CacheEnabled) + { + jgbxxCache = (JGBMLCache)jgbxxCache.GetData(null); + foreach (DataRowView row in jgbxxCache.dvJGBMLBy_JGBID.FindRows(sJGBID)) + { + jgbxx = GetJGBMLObject(row.Row); + } + } + return jgbxx; + } + public static List GetXLXSJGBXXList(string sMXBH) + { + List jgbxx_List = new List(); + JGBMLCache jgbxxCache = new JGBMLCache(); + if (jgbxxCache.CacheEnabled) + { + jgbxxCache = (JGBMLCache)jgbxxCache.GetData(null); + foreach (DataRowView row in jgbxxCache.dvJGBMLBy_MXBH.FindRows(sMXBH)) + { + JGBMLXX jgbxx = GetJGBMLObject(row.Row); + jgbxx_List.Add(jgbxx); + } + } + jgbxx_List.Sort(new JGBIDComparer()); + return jgbxx_List; + } + + + + public static DataSet GetKZXX() + { + KZXXCache kzxxCache = new KZXXCache(); + if (kzxxCache.CacheEnabled) + { + kzxxCache = (KZXXCache)kzxxCache.GetData(null); + return kzxxCache.dsXLXSBJKZXXSZ; + } + return null; + } + + //按价单料价加点对照表计算 + public static double GetCLQDJDCLCHQ(string sBJDID, string sBJRQ, string sXLXHID, string sXLGGID, string sXLBZID, string sDYDJID, bool BJHS, string sJGBJLDW, string sBJU003) + { + double dBJDHQCLCB = 0; + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add(" select BJDLJXHDZB_CLQDXLXHID,BJDLJXHDZB_DYDJID,BJDLJXHDZB_LJJDZ from BJDLJXHDZB "); + SQL.Add(" where BJDLJXHDZB_BJDXLXHID = :pBJDXLXHID and (isnull(BJDLJXHDZB_DYDJID,' ') = ' ' or isnull(BJDLJXHDZB_DYDJID,' ') = :pDYDJID) order by isnull(BJDLJXHDZB_DYDJID,' ') desc "); + SQL.ParamByName("pBJDXLXHID").Value = sXLXHID; + SQL.ParamByName("pDYDJID").Value = sDYDJID; + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + string sCLQDXLXHID = ds.Tables[0].Rows[0]["BJDLJXHDZB_CLQDXLXHID"].ToString().Trim(); + double dLJJDZ = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["BJDLJXHDZB_LJJDZ"].ToString().Trim()); + Dictionary aryBJDHQCLCB = new Dictionary(); + double dJgIsZero = 1; + if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select top 1 XLXSBJDCLHQ_BJCLID from XLXSBJDCLHQ where XLXSBJDCLHQ_BJDID='{0}'", sBJDID))) + { + aryBJDHQCLCB = XLBJDUtils.GetCLCB_BJDHQ(sBJDID, sBJRQ, sCLQDXLXHID, sXLGGID, sXLBZID, sDYDJID); + } + else + { + aryBJDHQCLCB = XLBJDUtils.GetCLCB_BJRHQ(sBJRQ, sCLQDXLXHID, sXLGGID, sXLBZID, sDYDJID); + bool JgIsZero = aryBJDHQCLCB["JgIsZero"] == 1 ? true : false; + if (JgIsZero) + dJgIsZero = -1; + } + + if (BJHS) + { + dBJDHQCLCB = aryBJDHQCLCB["CLCB"] * dJgIsZero; + } + else + { + dBJDHQCLCB = aryBJDHQCLCB["WSCLCB"] * dJgIsZero; + } + double dBJU003_JGB_JLDWHSBL = XLBJDUtils.GetJLDWHSBL_JG(sBJU003, sJGBJLDW, sBJU003, sCLQDXLXHID, sXLGGID, sXLBZID, sDYDJID); + + dBJDHQCLCB = dBJDHQCLCB * dBJU003_JGB_JLDWHSBL * dLJJDZ; + } + + return dBJDHQCLCB; + } + + /// + /// 设置数据保留位数 + /// + /// + /// 保留位数,支持为负数 + /// + public static double RoundSZ(double dSZ, int dBLWS) + { + if (dBLWS >= 0) + { + return NumberUtils.RoundX(dSZ, dBLWS); + } + else + { + double BS = Math.Pow(10, -1 * dBLWS); + return NumberUtils.RoundX(dSZ / BS, 0) * BS; + } + } + + public static void InsertFKMX(CMISproSession tSession, string sBJDID) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + + dberp.BeginTrans(); + try + { + sql.Clear(); + sql.Add(" delete from XLXSBJDFKMX where XLXSBJDFKMX_BJDID=:pBJDID "); + sql.ParamByName("pBJDID").Value = sBJDID; + dberp.ExecSQL(sql); + + bool ExistsBJCPYS = false;//是否设置了报价产品颜色 + if (CMISproDataBase.ExistsRecord("DBERP", "select top 1 XLXSBJCPYS_CPYT from XLXSBJCPYS where 1=1")) + { + ExistsBJCPYS = true; + } + StringBuilder sSQL = new StringBuilder(); + sSQL.AppendLine("select XLXSBJDMX_BJDID,XLXSBJDMX_XH,"); + sSQL.AppendLine(" case when isnull(XLXSBJDMX_WLID,' ') <> ' ' then XLXSBJDMX_WLID when isnull(c.minWLID,' ') <> ' ' then c.minWLID else a.minWLID end as WLID, :pWHRID ,:pWHR, :pWHSJ "); + sSQL.AppendLine(" from XLXSBJDMX "); + sSQL.AppendLine(" left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSBJDMX_XLGGID "); + if (ExistsBJCPYS) + { + sSQL.AppendLine("left join (select XLXSBJXDWL_XLXHID as XLXHID,XLXSBJXDWL_XLGGID as XLGGID,XLXSBJXDWL_XLBZID as XLBZID,XLXSBJXDWL_DYDJID as DYDJID,XLXSBJXDWL_XLYSID as XLYSID,min(XLXSBJXDWL_WLID) as minWLID "); + sSQL.AppendLine(" from XLXSBJXDWL"); + sSQL.AppendLine(" where 1=1"); + //sSQL.AppendLine(" and isnull(XLXSBJXDWL_TYBZ,' ')<> 'Y' "); + sSQL.AppendLine(" and exists(select 1 from WL where WL_WLID=XLXSBJXDWL_WLID and isnull(WL_TYBZ,' ')<>'Y')"); + sSQL.AppendLine(" group by XLXSBJXDWL_XLXHID,XLXSBJXDWL_XLGGID,XLXSBJXDWL_XLBZID,XLXSBJXDWL_DYDJID,XLXSBJXDWL_XLYSID"); + sSQL.AppendLine(" ) c on c.XLXHID=XLXSBJDMX_XDXLXHID and c.XLGGID= XLXSBJXLGGTHB_XLGGIDCH and c.XLBZID=XLXSBJDMX_XDXLBZID and c.DYDJID=XLXSBJDMX_DYDJID and c.XLYSID=XLXSBJDMX_XLYSID "); + + sSQL.AppendLine("left join (select XSBJXHTH_BJXLXHID as XLXHID,XLXLB_XLGGID as XLGGID,XLXLB_XLBZID as XLBZID,XLXLB_DYDJID as DYDJID,XLXLB_XLYSID as XLYSID,minWLID "); + sSQL.AppendLine(" from ( "); + sSQL.AppendLine(" select XLXLB_XLXHID,XLXLB_XLGGID,XLXLB_XLBZID,XLXLB_DYDJID,XLXLB_XLYSID,min(XLXLB_WLID)as minWLID "); + sSQL.AppendLine(" from XLXLB "); + sSQL.AppendLine(" where 1=1 "); + sSQL.AppendLine(" and isnull(XLXLB_TYBZ,' ')<> 'Y' "); + sSQL.AppendLine(" and exists(select 1 from WL where WL_WLID=XLXLB_WLID and isnull(WL_TYBZ,' ')<>'Y')"); + sSQL.AppendLine(" and exists(select 1 from XSBJXHTH where XSBJXHTH_XLXHID = XLXLB_XLXHID)"); + sSQL.AppendLine(" group by XLXLB_XLXHID,XLXLB_XLGGID,XLXLB_XLBZID,XLXLB_DYDJID,XLXLB_XLYSID"); + sSQL.AppendLine(" ) tmpXL left join XSBJXHTH on XSBJXHTH_XLXHID=XLXLB_XLXHID "); + sSQL.AppendLine(" union all"); + sSQL.AppendLine(" select XLXLB_XLXHID as XLXHID,XLXLB_XLGGID as XLGGID,XLXLB_XLBZID as XLBZID,XLXLB_DYDJID as DYDJID,XLXLB_XLYSID as XLYSID,min(XLXLB_WLID)as minWLID "); + sSQL.AppendLine(" from XLXLB "); + sSQL.AppendLine(" where isnull(XLXLB_TYBZ,' ')<>'Y' "); + sSQL.AppendLine(" and exists(select 1 from WL where WL_WLID=XLXLB_WLID and isnull(WL_TYBZ,' ')<>'Y') "); + sSQL.AppendLine(" and not exists(select 1 from XSBJXHTH where XSBJXHTH_XLXHID = XLXLB_XLXHID ) "); + sSQL.AppendLine(" group by XLXLB_XLXHID,XLXLB_XLGGID,XLXLB_XLBZID,XLXLB_DYDJID,XLXLB_XLYSID "); + sSQL.AppendLine(" ) a on a.XLXHID=XLXSBJDMX_XDXLXHID and a.XLGGID= XLXSBJXLGGTHB_XLGGIDCH and a.XLBZID=XLXSBJDMX_XDXLBZID and a.DYDJID=XLXSBJDMX_DYDJID and a.XLYSID=XLXSBJDMX_XLYSID "); + } + else + { + sSQL.AppendLine("left join (select XLXSBJXDWL_XLXHID as XLXHID,XLXSBJXDWL_XLGGID as XLGGID,XLXSBJXDWL_XLBZID as XLBZID,XLXSBJXDWL_DYDJID as DYDJID,min(XLXSBJXDWL_WLID) as minWLID "); + sSQL.AppendLine(" from XLXSBJXDWL"); + sSQL.AppendLine(" where 1=1"); + //sSQL.AppendLine(" and isnull(XLXSBJXDWL_TYBZ,' ')<> 'Y' "); + sSQL.AppendLine(" and exists(select 1 from WL where WL_WLID=XLXSBJXDWL_WLID and isnull(WL_TYBZ,' ')<>'Y')"); + sSQL.AppendLine(" group by XLXSBJXDWL_XLXHID,XLXSBJXDWL_XLGGID,XLXSBJXDWL_XLBZID,XLXSBJXDWL_DYDJID"); + sSQL.AppendLine(" ) c on c.XLXHID=XLXSBJDMX_XDXLXHID and c.XLGGID= XLXSBJXLGGTHB_XLGGIDCH and c.XLBZID=XLXSBJDMX_XDXLBZID and c.DYDJID=XLXSBJDMX_DYDJID "); + + sSQL.AppendLine("left join (select XSBJXHTH_BJXLXHID as XLXHID,XLXLB_XLGGID as XLGGID,XLXLB_XLBZID as XLBZID,XLXLB_DYDJID as DYDJID, minWLID "); + sSQL.AppendLine(" from ( "); + sSQL.AppendLine(" select XLXLB_XLXHID,XLXLB_XLGGID,XLXLB_XLBZID,XLXLB_DYDJID,min(XLXLB_WLID)as minWLID "); + sSQL.AppendLine(" from XLXLB "); + sSQL.AppendLine(" where 1=1 "); + sSQL.AppendLine(" and isnull(XLXLB_TYBZ,' ')<> 'Y' "); + sSQL.AppendLine(" and exists(select 1 from WL where WL_WLID=XLXLB_WLID and isnull(WL_TYBZ,' ')<>'Y')"); + sSQL.AppendLine(" and exists(select 1 from XSBJXHTH where XSBJXHTH_XLXHID = XLXLB_XLXHID )"); + sSQL.AppendLine(" group by XLXLB_XLXHID,XLXLB_XLGGID,XLXLB_XLBZID,XLXLB_DYDJID "); + sSQL.AppendLine(" ) tmpXL left join XSBJXHTH on XSBJXHTH_XLXHID=XLXLB_XLXHID "); + sSQL.AppendLine(" union all "); + sSQL.AppendLine(" select XLXLB_XLXHID as XLXHID,XLXLB_XLGGID as XLGGID,XLXLB_XLBZID as XLBZID,XLXLB_DYDJID as DYDJID,min(XLXLB_WLID)as minWLID "); + sSQL.AppendLine(" from XLXLB "); + sSQL.AppendLine(" where isnull(XLXLB_TYBZ,' ')<>'Y' "); + sSQL.AppendLine(" and exists(select 1 from WL where WL_WLID=XLXLB_WLID and isnull(WL_TYBZ,' ')<>'Y') "); + sSQL.AppendLine(" and not exists(select 1 from XSBJXHTH where XSBJXHTH_XLXHID = XLXLB_XLXHID ) "); + sSQL.AppendLine(" group by XLXLB_XLXHID,XLXLB_XLGGID,XLXLB_XLBZID,XLXLB_DYDJID "); + sSQL.AppendLine(" ) a on a.XLXHID=XLXSBJDMX_XDXLXHID and a.XLGGID= XLXSBJXLGGTHB_XLGGIDCH and a.XLBZID=XLXSBJDMX_XDXLBZID and a.DYDJID=XLXSBJDMX_DYDJID "); + } + sSQL.AppendLine(" where XLXSBJDMX_BJDID=:pBJDID and isnull(XLXSBJDMX_WLID,' ') =' ' and (isnull(XLXSBJDMX_ZB,' ') = 'Y' or isnull(XLXSBJDMX_ZB,' ') = 'P') "); + + + sql.Clear(); + sql.Add("insert into XLXSBJDFKMX(XLXSBJDFKMX_BJDID,XLXSBJDFKMX_XH,XLXSBJDFKMX_WLID,XLXSBJDFKMX_WHRID,XLXSBJDFKMX_WHR,XLXSBJDFKMX_WHSJ)"); + sql.Add(sSQL.ToString()); + sql.ParamByName("pBJDID").Value = sBJDID; + sql.ParamByName("pWHRID").Value = tSession.UserId; + sql.ParamByName("pWHR").Value = tSession.UserName; + sql.ParamByName("pWHSJ").Value = DateTime.Now; + dberp.ExecSQL(sql); + dberp.CommitTrans(); + } + catch + { + dberp.RollbackTrans(); + } + + } + + public static string RemoveTrailingAsterisks(string input) + { + if (input.EndsWith("(**)")) + { + return input.Substring(0, input.Length - 4); + } + else if (input.EndsWith("(*)")) + { + return input.Substring(0, input.Length - 3); + } + return input; + } + + public static string GetXLBZByXLBZMS(string sXLBZMS) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + sql.Clear(); + sql.Add(" select XLBZ_XLBZID,XLBZ_XLBZLXMC FROM XLBZ WHERE XLBZ_XLBZMS=:pBZMS "); + sql.ParamByName("pBZMS").Value = RemoveTrailingAsterisks(sXLBZMS); + DataSet ds = dberp.OpenDataSet(sql); + if (ds.Tables[0].Rows.Count > 0) + { + return ds.Tables[0].Rows[0]["XLBZ_XLBZID"].ToString().Trim() + "|" + ds.Tables[0].Rows[0]["XLBZ_XLBZID"].ToString().Trim() + + "|" + ds.Tables[0].Rows[0]["XLBZ_XLBZLXMC"].ToString().Trim(); + } + return ""; + } + + //批量修改截面比公式 + public static void UpdateJMBGS(string sBJDID, string sBJDXHList,string sJMBGS) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + sql.Clear(); + sql.Add(" update XLXSBJDMX set XLXSBJDMX_JMBGS=:pJMBGS "); + sql.Add(" where XLXSBJDMX_BJDID=:pBJDID "); + if (!sBJDXHList.Equals("")) + { + sql.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + } + sql.ParamByName("pJMBGS").Value = sJMBGS.Trim(); + sql.ParamByName("pBJDID").Value = sBJDID.Trim(); + dberp.ExecSQL(sql); + } + + public static bool ISExistJGBMX(string sJGBID, string sJGCIDS, string sXLXHID, string sXLGGID, string sXLBZID, string sDYDJID) + { + bool bExist = false; + if (IsJGEJGB(sJGBID)) + return true; + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add(" select 1 from XLXSJGBMX "); + if (!sJGCIDS.Trim().Equals(""))//组合产品目录价格表报价 + SQL.Add(" left join XLXSJGB on XLXSJGB_MXBH='JGC' and XLXSJGB_JGBID=XLXSJGBMX_JGBID"); + else + { + SQL.Add(" left join XLXSJGB on XLXSJGB_MXBH='JGB' and XLXSJGB_JGBID=XLXSJGBMX_JGBID"); + } + SQL.Add(" where XLXSJGBMX_XLXHID=:pXLXHID and XLXSJGBMX_XLGGID=:pXLGGID and XLXSJGBMX_XLBZID=:pXLBZID and isnull(XLXSJGBMX_DYDJID,' ')=:pDYDJID "); + if (!sJGCIDS.Trim().Equals(""))//组合产品目录价格表报价 + SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSJGBMX_JGBID", sJGCIDS.Trim())); + else + { + SQL.Add(" and XLXSJGBMX_JGBID = :pJGBID "); + SQL.ParamByName("pJGBID").Value = sJGBID.Trim(); + } + SQL.ParamByName("pXLXHID").Value = sXLXHID.Trim(); + SQL.ParamByName("pXLGGID").Value = sXLGGID.Trim(); + SQL.ParamByName("pXLBZID").Value = sXLBZID.Trim(); + SQL.ParamByName("pDYDJID").Value = sDYDJID.Trim(); + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + bExist = true; + } + return bExist; + } + + private static bool ContainsAny(string input, string[] patterns) + { + foreach (string pattern in patterns) + { + if (input.Contains(pattern)) + { + return true; + } + } + return false; + } + public static double GetCPFYL(string sXLXHID, string sXLGGID, string sXLBZID, string sDYDJID, List XLTZList) + { + string sGYFLM = string.Empty; + string sDTLX = string.Empty; + string sXLTXID = string.Empty; + string sKZWH = string.Empty; + bool isTXFH = false; + bool isTXFL = false; + double fZXJM = 0; + bool ExistsNL = false; + Dictionary dicXLGGB = GetXXJGIDByXLGGID(sXLGGID, sXLXHID); + fZXJM = CMISproConvert.StrToFloat(dicXLGGB["ZXJM"]); + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + DataSet ds = null; + if (SystemInfoUtils.GetSystem().Id.Trim().Equals("0574000503") || SystemInfoUtils.GetSystem().Id.Trim().Equals("0574000504"))//0574000503|宁波东方正式系统,0574000504|宁波东方测试系统 + { + sql.Clear(); + sql.Add("select XLXSCPML_CPMLMC from XLXSBJXHML left join XLXSCPML on XLXSCPML_CPMLID=XLXSBJXHML_CPMLID where XLXSBJXHML_XLXHID=:XLXSBJXHML_XLXHID and XLXSBJXHML_DYDJID=:XLXSBJXHML_DYDJID "); + sql.ParamByName("XLXSBJXHML_XLXHID").Value = sXLXHID; + sql.ParamByName("XLXSBJXHML_DYDJID").Value = sDYDJID; + ds = dberp.OpenDataSet(sql); + if (ds.Tables[0].Rows.Count > 0) + { + if (CableCodeDict.ContainsKey(ds.Tables[0].Rows[0]["XLXSCPML_CPMLMC"].ToString().Trim())) + sGYFLM = CableCodeDict[ds.Tables[0].Rows[0]["XLXSCPML_CPMLMC"].ToString().Trim()]; + } + else + { + sql.Clear(); + sql.Add("select XLXSCPML_CPMLMC from XLXSBJXHML left join XLXSCPML on XLXSCPML_CPMLID=XLXSBJXHML_CPMLID where XLXSBJXHML_XLXHID=:XLXSBJXHML_XLXHID and XLXSBJXHML_DYDJID=:XLXSBJXHML_DYDJID "); + sql.ParamByName("XLXSBJXHML_XLXHID").Value = "--"; + sql.ParamByName("XLXSBJXHML_DYDJID").Value = sDYDJID; + ds = dberp.OpenDataSet(sql); + if (ds.Tables[0].Rows.Count > 0) + { + if (CableCodeDict.ContainsKey(ds.Tables[0].Rows[0]["XLXSCPML_CPMLMC"].ToString().Trim())) + sGYFLM = CableCodeDict[ds.Tables[0].Rows[0]["XLXSCPML_CPMLMC"].ToString().Trim()]; + } + } + } + else + { + sql.Clear(); + sql.Add("select XLGYFL_XTGYFLBM from XLJGCZBML left join XLGYFL on XLJGCZBML_GYFLBM=XLGYFL_GYFLBM where exists(select 1 from XLXSCLQD where XLXSCLQD_XLXHID=:pXLXHID and XLXSCLQD_XLGGID=:pXLGGID and XLXSCLQD_XLBZID=:pXLBZID and XLXSCLQD_DYDJID=:pDYDJID and XLXSCLQD_JGCZBID=XLJGCZBML_JGCZBID and XLXSCLQD_JGCZBBBID=XLJGCZBML_JGCZBBBID )"); + sql.ParamByName("pXLXHID").Value = sXLXHID; + sql.ParamByName("pXLGGID").Value = sXLGGID; + sql.ParamByName("pXLBZID").Value = sXLBZID; + sql.ParamByName("pDYDJID").Value = sDYDJID; + ds = dberp.OpenDataSet(sql); + if (ds.Tables[0].Rows.Count > 0) + { + sGYFLM = ds.Tables[0].Rows[0]["XLGYFL_XTGYFLBM"].ToString().Trim(); + } + + } + + if (string.IsNullOrEmpty(sGYFLM)) + { + return 0; + } + + sql.Clear(); + sql.Add("select XLXHB_DTCLID,XLXHB_XLTXID,rtrim(XLXHB_KZCLID)||XLXHB_WHCLID as KZWH from XLXHB where XLXHB_XLXHID=:pXLXHID "); + sql.ParamByName("pXLXHID").Value = sXLXHID; + + ds = dberp.OpenDataSet(sql); + if (ds.Tables[0].Rows.Count > 0) + { + sDTLX = ds.Tables[0].Rows[0]["XLXHB_DTCLID"].ToString().Trim(); + if (sDTLX == "LH") + sDTLX = "L"; + sXLTXID = ds.Tables[0].Rows[0]["XLXHB_XLTXID"].ToString().Trim(); + sKZWH = ds.Tables[0].Rows[0]["KZWH"].ToString().Trim(); + } + + if (sDTLX != "T" && sDTLX != "L") + { + return 0; + } + sql.Clear(); + sql.Add("select 1 from XLXSCLQD where XLXSCLQD_XLXHID=:pXLXHID and XLXSCLQD_XLGGID=:pXLGGID and XLXSCLQD_XLBZID=:pXLBZID and XLXSCLQD_DYDJID=:pDYDJID "); + sql.Add(" and exists(select 1 from XLJGCZBLM where XLJGCZBLM_JGCZBID=XLXSCLQD_JGCZBID and XLJGCZBLM_JGCZBBBID=XLXSCLQD_JGCZBBBID and XLJGCZBLM_BJCLID='N-2' ) "); + sql.ParamByName("pXLXHID").Value = sXLXHID; + sql.ParamByName("pXLGGID").Value = sXLGGID; + sql.ParamByName("pXLBZID").Value = sXLBZID; + sql.ParamByName("pDYDJID").Value = sDYDJID; + ds = dberp.OpenDataSet(sql); + if (ds.Tables[0].Rows.Count > 0) + ExistsNL = true; + sql.Clear(); + sql.Add("select 1 from XLXSCLQD where XLXSCLQD_XLXHID=:pXLXHID and XLXSCLQD_XLGGID=:pXLGGID and XLXSCLQD_XLBZID=:pXLBZID and XLXSCLQD_DYDJID=:pDYDJID "); + sql.Add(" and exists(select 1 from XLXHGGGXB where XLXHGGGXB_JGCZBID=XLXSCLQD_JGCZBID and XLXHGGGXB_JGCZBBBID=XLXSCLQD_JGCZBBBID and XLXHGGGXB_JGCZBXH=XLXSCLQD_JGCZBXH and XLXHGGGXB_DRHH=XLXSCLQD_DRHH and XLXHGGGXB_BZGXID='3-50-03' ) "); + sql.ParamByName("pXLXHID").Value = sXLXHID; + sql.ParamByName("pXLGGID").Value = sXLGGID; + sql.ParamByName("pXLBZID").Value = sXLBZID; + sql.ParamByName("pDYDJID").Value = sDYDJID; + ds = dberp.OpenDataSet(sql); + if (ds.Tables[0].Rows.Count > 0) + isTXFH = true; + + sql.Clear(); + sql.Add("select 1 from XLXSCLQD where XLXSCLQD_XLXHID=:pXLXHID and XLXSCLQD_XLGGID=:pXLGGID and XLXSCLQD_XLBZID=:pXLBZID and XLXSCLQD_DYDJID=:pDYDJID "); + sql.Add(" and exists(select 1 from XLXHGGGXB where XLXHGGGXB_JGCZBID=XLXSCLQD_JGCZBID and XLXHGGGXB_JGCZBBBID=XLXSCLQD_JGCZBBBID and XLXHGGGXB_JGCZBXH=XLXSCLQD_JGCZBXH and XLXHGGGXB_DRHH=XLXSCLQD_DRHH and XLXHGGGXB_BZGXID='3-50-04' ) "); + sql.ParamByName("pXLXHID").Value = sXLXHID; + sql.ParamByName("pXLGGID").Value = sXLGGID; + sql.ParamByName("pXLBZID").Value = sXLBZID; + sql.ParamByName("pDYDJID").Value = sDYDJID; + ds = dberp.OpenDataSet(sql); + if (ds.Tables[0].Rows.Count > 0) + isTXFL = true; + + + sql.Clear(); + sql.Add("select XLXSBJDYZZI_YZZ,XLXSBJDYZZI_YZID,XLXSTZYZ_JJFS,XLXSBJDYZZI_XHBHZF1,XLXSBJDYZZI_XHBHZF2,XLXSBJDYZZI_XHBBHZF from XLXSBJDYZZI,XLXSTZYZ"); + sql.Add(" where XLXSTZYZ_JGBID=XLXSBJDYZZI_JGBID and XLXSTZYZ_YZID=XLXSBJDYZZI_YZID and XLXSTZYZ_MXBH='BJD'"); + sql.Add(" and XLXSBJDYZZI_GYFLBM =:pGYFLBM "); + sql.Add(" and XLXSBJDYZZI_DTLX =:pDTLX "); + sql.Add(" and XLXSBJDYZZI_DYDJID =:pDYDJID "); + sql.Add(" and XLXSBJDYZZI_ZXJMXX<=:pZXJM and ((XLXSBJDYZZI_ZXJMSX<>0 and XLXSBJDYZZI_ZXJMSX>=:pZXJM) or XLXSBJDYZZI_ZXJMSX=0)"); + sql.Add(" order by XLXSBJDYZZI_YZID"); + sql.ParamByName("pGYFLBM").Value = sGYFLM; + sql.ParamByName("pDTLX").Value = sDTLX; + sql.ParamByName("pDYDJID").Value = sDYDJID; + sql.ParamByName("pZXJM").Value = fZXJM; + ds = dberp.OpenDataSet(sql); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + string sXHBHZF1 = ds.Tables[0].Rows[i]["XLXSBJDYZZI_XHBHZF1"].ToString(); + string sXHBHZF2 = ds.Tables[0].Rows[i]["XLXSBJDYZZI_XHBHZF2"].ToString(); + string sXHBBHZF = ds.Tables[0].Rows[i]["XLXSBJDYZZI_XHBBHZF"].ToString(); + + if (!string.IsNullOrEmpty(sXHBHZF1)) + { + if (!ContainsAny(sXLXHID, sXHBHZF1.Split(','))) + { + continue; + } + } + + if (!string.IsNullOrEmpty(sXHBHZF2)) + { + if (!ContainsAny(sXLXHID, sXHBHZF2.Split(','))) + { + continue; + } + } + + if (!string.IsNullOrEmpty(sXHBBHZF)) + { + if (ContainsAny(sXLXHID, sXHBBHZF.Split(','))) + { + continue; + } + } + + double dYZZ = CMISproConvert.StrToFloat(ds.Tables[0].Rows[i]["XLXSBJDYZZI_YZZ"].ToString()); + double dYZZ_or = dYZZ; + foreach (XLTZ tz in XLTZList) + { + if (!string.IsNullOrEmpty(tz.XHBBH)) + { + if (ContainsAny(sXLXHID, tz.XHBBH.Split(','))) + { + continue; + } + } + if (tz.GYFLBM.Equals(sGYFLM)) + { + if (tz.TZLX == "线缆特性") + { + if ((sXLTXID + "-").Contains(tz.TZ)) + dYZZ += tz.YZZ; + } + else if (tz.TZLX == "铠装外护") + { + if (tz.TZ == sKZWH) + dYZZ += tz.YZZ; + } + else if (tz.TZLX == "标准工序") + { + if (tz.TZ == "3-50-03" && isTXFH) + dYZZ += tz.YZZ; + if (tz.TZ == "3-50-04" && isTXFL) + dYZZ += tz.YZZ; + + } + else if (tz.TZLX == "报价材料") + { + if (tz.TZ == "N-2" && ExistsNL) + dYZZ += tz.YZZ; + + + } + } + + } + if (dYZZ == dYZZ_or) + { + foreach (XLTZ tz in XLTZList) + { + if (!string.IsNullOrEmpty(tz.XHBBH)) + { + if (ContainsAny(sXLXHID, tz.XHBBH.Split(','))) + { + continue; + } + } + if (tz.GYFLBM.Equals("")) + { + if (tz.TZLX == "线缆特性") + { + if ((sXLTXID + "-").Contains(tz.TZ )) + dYZZ += tz.YZZ; + } + else if (tz.TZLX == "铠装外护") + { + if (tz.TZ == sKZWH) + dYZZ += tz.YZZ; + } + else if (tz.TZLX == "标准工序") + { + if (tz.TZ == "3-50-03" && isTXFH) + dYZZ += tz.YZZ; + if (tz.TZ == "3-50-04" && isTXFL) + dYZZ += tz.YZZ; + + } + else if (tz.TZLX == "报价材料") + { + if (tz.TZ == "N-2" && ExistsNL) + dYZZ += tz.YZZ; + + + } + } + + } + } + + + + + + return dYZZ; + } + return 0; + } + + /// + /// 检查是否使用XLXSBJXLGGTHB表 + /// + /// 如果配置项UseXLXSBJXLGGTHB为Y则返回true,否则返回false + public static bool UseXLXSBJXLGGTHB() + { + bool bUseXLXSBJXLGGTHB = false; + if (ConfigurationManager.AppSettings["UseXLXSBJXLGGTHB"] != null) + { + bUseXLXSBJXLGGTHB = ConfigurationManager.AppSettings["UseXLXSBJXLGGTHB"].ToString().ToUpper() == "Y"; + } + return bUseXLXSBJXLGGTHB; + } + + /// + /// 按XLXSJGBMX表同步XLXSBJXLGGTHB表(批量) + /// 使用merge语句进行批量同步 + /// + /// 数据库对象 + /// 会话对象 + public static void SyncXLXSBJXLGGTHB_ByXLXSJGBMX_Batch(TDatabase dberp, CMISproSession tSession, string sJGBID) + { + TSQL sql = new TSQL(dberp); + + // 同步数据 + sql.Clear(); + sql.Add("merge into XLXSBJXLGGTHB tag"); + sql.Add("using("); + sql.Add("select distinct XLXSJGBMX_XLGGID as XLGGID from XLXSJGBMX"); + sql.Add("where XLXSJGBMX_JGBID=:pJGBID and isnull(XLXSJGBMX_XLGGID, ' ') <> ' '"); + sql.Add(") sor"); + sql.Add("on(sor.XLGGID = tag.XLXSBJXLGGTHB_XLGGID)"); + sql.Add("when not matched then"); + sql.Add("insert(XLXSBJXLGGTHB_XLGGID,XLXSBJXLGGTHB_WHR,XLXSBJXLGGTHB_WHRID,XLXSBJXLGGTHB_WHSJ)"); + sql.Add("values(sor.XLGGID,:XLXSBJXLGGTHB_WHR,:XLXSBJXLGGTHB_WHRID,:XLXSBJXLGGTHB_WHSJ)"); + sql.ParamByName("pJGBID").Value = sJGBID; + sql.ParamByName("XLXSBJXLGGTHB_WHR").Value = tSession != null ? tSession.UserName : ""; + sql.ParamByName("XLXSBJXLGGTHB_WHRID").Value = tSession != null ? tSession.UserId : ""; + sql.ParamByName("XLXSBJXLGGTHB_WHSJ").Value = DateTime.Now; + dberp.ExecSQL(sql); + + // 更新XLXSBJXLGGTHB_XLGGIDCH和XLXSBJXLGGTHB_XLGGIDXH + sql.Clear(); + sql.Add("update XLXSBJXLGGTHB"); + sql.Add("set XLXSBJXLGGTHB_XLGGIDCH = replace(XLXSBJXLGGTHB_XLGGID, '*', '×'),"); + sql.Add(" XLXSBJXLGGTHB_XLGGIDXH = replace(XLXSBJXLGGTHB_XLGGID, '×', '*')"); + sql.Add("where isnull(XLXSBJXLGGTHB_XLGGIDCH, ' ') = ' '"); + dberp.ExecSQL(sql); + } + + public static void SyncXLXSBJXLGGTHB_ByXLXSBJDMX_Batch(TDatabase dberp, CMISproSession tSession, string sBJDID) + { + SyncXLXSBJXLGGTHB_ByXLXSBJDMX_Batch(dberp, tSession, sBJDID, "", 0); + } + + public static void SyncXLXSBJXLGGTHB_ByXLXSBJDMX_Batch(TDatabase dberp, CMISproSession tSession, string sBJDID, string sBJDXHList,int minBJDXH) + { + TSQL sql = new TSQL(dberp); + + // 同步数据 + sql.Clear(); + sql.Add("merge into XLXSBJXLGGTHB tag"); + sql.Add("using("); + sql.Add("select distinct XLXSBJDMX_XLGGID as XLGGID from XLXSBJDMX"); + sql.Add("where XLXSBJDMX_BJDID=:pBJDID and isnull(XLXSBJDMX_XLGGID, ' ') <> ' '"); + if (!sBJDXHList.Equals("")) + { + sql.Add(" and " + CMISproDataBase.GetWhereEqual("XLXSBJDMX_XH", sBJDXHList)); + } + if (minBJDXH != 0) + { + sql.Add("and XLXSBJDMX_XH >= :minBJDXH"); + sql.ParamByName("minBJDXH").Value = minBJDXH; + } + sql.Add(") sor"); + sql.Add("on(sor.XLGGID = tag.XLXSBJXLGGTHB_XLGGID)"); + sql.Add("when not matched then"); + sql.Add("insert(XLXSBJXLGGTHB_XLGGID,XLXSBJXLGGTHB_WHR,XLXSBJXLGGTHB_WHRID,XLXSBJXLGGTHB_WHSJ)"); + sql.Add("values(sor.XLGGID,:XLXSBJXLGGTHB_WHR,:XLXSBJXLGGTHB_WHRID,:XLXSBJXLGGTHB_WHSJ)"); + sql.ParamByName("pBJDID").Value = sBJDID; + sql.ParamByName("XLXSBJXLGGTHB_WHR").Value = tSession != null ? tSession.UserName : ""; + sql.ParamByName("XLXSBJXLGGTHB_WHRID").Value = tSession != null ? tSession.UserId : ""; + sql.ParamByName("XLXSBJXLGGTHB_WHSJ").Value = DateTime.Now; + dberp.ExecSQL(sql); + + // 更新XLXSBJXLGGTHB_XLGGIDCH和XLXSBJXLGGTHB_XLGGIDXH + sql.Clear(); + sql.Add("update XLXSBJXLGGTHB"); + sql.Add("set XLXSBJXLGGTHB_XLGGIDCH = replace(XLXSBJXLGGTHB_XLGGID, '*', '×'),"); + sql.Add(" XLXSBJXLGGTHB_XLGGIDXH = replace(XLXSBJXLGGTHB_XLGGID, '×', '*')"); + sql.Add("where isnull(XLXSBJXLGGTHB_XLGGIDCH, ' ') = ' '"); + dberp.ExecSQL(sql); + } + + public static bool GetBJDHSBZ(string sBJDID) + { + if (sBJDID.Equals("")) + { + return true; + } + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add("select XLXSBJD_JZBJHS from XLXSBJD where XLXSBJD_BJDID = :pBJDID"); + SQL.ParamByName("pBJDID").Value = sBJDID.Trim(); + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + return ds.Tables[0].Rows[0]["XLXSBJD_JZBJHS"].ToString().Trim().Equals("Y"); + } + return false; + } + + + //获取调价因素为" "的报价因子值 + public static Dictionary GetBJDYZZ0(string sBJFLID, bool bWGCP, bool bWGCPBZChanged, string sBJDJLDW, string sBJU003, string sXLXHID, string sXLGGID, string sXLBZID, string sDYDJID) + { + return GetBJDYZZ0(sBJFLID, bWGCP, bWGCPBZChanged, sBJDJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID, ""); + } + + //获取调价因素为“1|付款方式”的报价因子值 + public static Dictionary GetBJDYZZ1(string sBJFLID, string sPJLX, string sBJDJLDW, string sBJU003, string sXLXHID, string sXLGGID, string sXLBZID, string sDYDJID) + { + return GetBJDYZZ1( sBJFLID, sPJLX, sBJDJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID,""); + } + + //获取调价因素为“2|导体材料&电压区间&报价数量区间”的报价因子值 + public static Dictionary GetBJDYZZ2(string sBJFLID, string sDYDJID, double fBJSL, string sXLXHID, string sBJDJLDW, string sBJU003, string sXLGGID, string sXLBZID) + { + return GetBJDYZZ2( sBJFLID, sDYDJID, fBJSL, sXLXHID, sBJDJLDW, sBJU003, sXLGGID, sXLBZID,""); + } + + //获取调价因素为“3|产品用途&电压等级分类&报价数量区间”的报价因子值 + public static Dictionary GetBJDYZZ3(string sBJFLID, double fBJSL, string sXLXHID, string sXLGGID, string sXLBZID, string sDYDJID, string sBJDJLDW, string sBJU003) + { + return GetBJDYZZ3( sBJFLID, fBJSL, sXLXHID, sXLGGID, sXLBZID, sDYDJID, sBJDJLDW, sBJU003,""); + } + + //获取调价因素为“E|型号&电压等级&主芯截面范围&报价数量区间”的报价因子值 + public static Dictionary GetBJDYZZE(string sBJFLID, string sXLXHID, string sDYDJID, double fZXJM, double fBJSL, string sBJDJLDW, string sBJU003, string sXLGGID, string sXLBZID) + { + return GetBJDYZZE(sBJFLID, sXLXHID, sDYDJID, fZXJM, fBJSL, sBJDJLDW, sBJU003, sXLGGID, sXLBZID, ""); + } + //获取调价因素为“G|按电压芯线结构导体材料主芯截面报价数量”的报价因子值 + public static Dictionary GetBJDYZZG(string sBJFLID, string sXLXHID, string sDYDJID, string sXXJGID, double fZXJM, double fBJSL, string sBJDJLDW, string sBJU003) + { + return GetBJDYZZG( sBJFLID, sXLXHID, sDYDJID, sXXJGID, fZXJM, fBJSL, sBJDJLDW, sBJU003,""); + } + + + //获取调价因素为“F|电压等级&芯线结构&报价数量区间加价/报价数量”的报价因子值 + public static Dictionary GetBJDYZZF(string sBJFLID, string sDYDJID, string sXXJGID, double fBJSL, string sBJDJLDW, string sBJU003) + { + return GetBJDYZZF(sBJFLID, " ", sDYDJID, sXXJGID, fBJSL, sBJDJLDW, sBJU003); + } + + //获取调价因素为“F|导体材料&电压等级&芯线结构&报价数量区间加价/报价数量”的报价因子值 + public static Dictionary GetBJDYZZF(string sBJFLID, string sXLXHID, string sDYDJID, string sXXJGID, double fBJSL, string sBJDJLDW, string sBJU003) + { + return GetBJDYZZF( sBJFLID, sXLXHID, sDYDJID, sXXJGID, fBJSL, sBJDJLDW, sBJU003,""); + } + + //获取调价因素为“H|型号&主芯截面范围&报价数量区间加价/报价数量”的报价因子值 + public static Dictionary GetBJDYZZH(string sBJFLID, string sXLXHID, string sDYDJID, string sXLYSID, double fZXJM, double fBJSL, string sBJDJLDW, string sBJU003) + { + return GetBJDYZZH( sBJFLID, sXLXHID, sDYDJID, sXLYSID, fZXJM, fBJSL, sBJDJLDW, sBJU003,""); + } + + //获取调价因素为“4|型号”的报价因子值 + public static Dictionary GetBJDYZZ4(string sBJFLID, string sXLXHID, string sBJDJLDW, string sBJU003, string sXLGGID, string sXLBZID, string sDYDJID) + { + return GetBJDYZZ4( sBJFLID, sXLXHID, sBJDJLDW, sBJU003, sXLGGID, sXLBZID, sDYDJID,""); + } + + //获取调价因素为“5|销售区域&型号&标准&电压等级&主芯截面范围”的报价因子值 + public static Dictionary GetBJDYZZ5(string sBJFLID, string sXSQYID, string sXLXHID, string sXLBZID, string sDYDJID, double fZXJM, string sBJDJLDW, string sBJU003, string sXLGGID) + { + return GetBJDYZZ5( sBJFLID, sXSQYID, sXLXHID, sXLBZID, sDYDJID, fZXJM, sBJDJLDW, sBJU003, sXLGGID,""); + } + + //获取调价因素为“6|报价数量区间调价米数/报价数量”的报价因子值 + public static Dictionary GetBJDYZZ6(string sBJFLID, double fBJSL, string sBJDJLDW, string sBJU003) + { + return GetBJDYZZ6( sBJFLID, fBJSL, sBJDJLDW, sBJU003,""); + } + + //获取调价因素为“7|型号&电压等级&芯线结构&主芯截面范围”的报价因子值 + public static Dictionary GetBJDYZZ7(string sBJFLID, string sXLXHID, string sDYDJID, string sXXJGID, double fZXJM, string sBJDJLDW, string sBJU003, string sXLGGID, string sXLBZID) + { + return GetBJDYZZ7( sBJFLID, sXLXHID, sDYDJID, sXXJGID, fZXJM, sBJDJLDW, sBJU003, sXLGGID, sXLBZID,""); + } + + //获取调价因素为“8|付款期限”的报价因子值 + public static Dictionary GetBJDYZZ8(string sBJFLID, string sFKQXNR, string sBJDJLDW, string sBJU003, string sXLXHID, string sXLGGID, string sXLBZID, string sDYDJID) + { + return GetBJDYZZ8( sBJFLID, sFKQXNR, sBJDJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID,""); + } + + //获取调价因素为“9|导体材料&产品用途&电压等级分类&产品特性”的报价因子值 + public static Dictionary GetBJDYZZ9(string sBJFLID, string sXLXHID, string sDYDJID, string sBJDJLDW, string sBJU003, string sXLGGID, string sXLBZID) + { + return GetBJDYZZ9( sBJFLID, sXLXHID, sDYDJID, sBJDJLDW, sBJU003, sXLGGID, sXLBZID,""); + } + + //获取调价因素为“A|型号&规格&电压&标准”的报价因子值 + public static Dictionary GetBJDYZZA(string sBJFLID, string sXLXHID, string sXLGGID, string sXLBZID, string sDYDJID, string sBJDJLDW, string sBJU003) + { + return GetBJDYZZA( sBJFLID, sXLXHID, sXLGGID, sXLBZID, sDYDJID, sBJDJLDW, sBJU003,""); + } + + //获取调价因素为“B|销售单位”的报价因子值 + public static Dictionary GetBJDYZZB(string sBJFLID, string sSYDWID, string sBJDJLDW, string sBJU003, string sXLXHID, string sXLGGID, string sXLBZID, string sDYDJID) + { + return GetBJDYZZB( sBJFLID, sSYDWID, sBJDJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID,""); + } + + //获取调价因素为“D|颜色&主芯截面范围”的报价因子值 + public static Dictionary GetBJDYZZD(string sBJFLID, string sXLYSID, string sBJDJLDW, string sBJU003, string sXLXHID, string sXLGGID, string sXLBZID, string sDYDJID) + { + return GetBJDYZZD( sBJFLID, sXLYSID, sBJDJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID,""); + } + + //获取调价因素为“K|导体类型电压等级/材料重量”的报价因子值 + public static Dictionary GetBJDYZZK(string sBJFLID, double fBJSL, string sBJDJLDW, string sBJU003, string sXLXHID, string sXLGGID, string sXLBZID, string sDYDJID) + { + return GetBJDYZZK( sBJFLID, fBJSL, sBJDJLDW, sBJU003, sXLXHID, sXLGGID, sXLBZID, sDYDJID,""); + } + + //获取调价因素为“L|按标准&报价数量区间调报价”的报价因子值 + public static Dictionary GetBJDYZZL(string sBJFLID, string sXLBZID, double fBJSL, string sBJDJLDW, string sBJU003, string sXLXHID, string sXLGGID, string sDYDJID) + { + return GetBJDYZZL(sBJFLID, sXLBZID, fBJSL, sBJDJLDW, sBJU003, sXLXHID, sXLGGID, sDYDJID, ""); + } + + //获取调价模块为“100860124|按包装长度包装方式调盘费”的报价因子值 + public static Dictionary GetBJDBZPFYZZ(string sBZPFYZID, string sXLXHID, string sXLGGID, string sXLBZID, string sDYDJID, string sBJDJLDW, string sBJU003) + { + return GetBJDBZPFYZZ( sBZPFYZID, sXLXHID, sXLGGID, sXLBZID, sDYDJID, sBJDJLDW, sBJU003, ""); + } + + //获取调价模块为“100860162|按产品外径报价数量区间调盘费”的报价因子值 + public static Dictionary GetBJDCPWJPFYZZ(string sCPWJPFYZID, string sXLXHID, string sXLGGID, string sXLBZID, string sDYDJID, string sBJDJLDW, string sBJU003,double fBJSL) + { + return GetBJDCPWJPFYZZ(sCPWJPFYZID, sXLXHID, sXLGGID, sXLBZID, sDYDJID, sBJDJLDW, sBJU003, "", fBJSL); + } + + + } + + public class CopyJGBID3Data + { + private bool _Success = true; + public bool Success + { + get { return _Success; } + set { _Success = value; } + } + + private string _NewJGBID = string.Empty; + public string NewJGBID + { + get { return _NewJGBID; } + set { _NewJGBID = value; } + } + + private string _ErrorMessage = string.Empty; + public string ErrorMessage + { + get { return _ErrorMessage; } + set { _ErrorMessage = value; } + } + } + + public class TZYZXXComparer : IComparer + { + public int Compare(TZYZXX x, TZYZXX y) + { + double xXH = CMISproConvert.StrToFloat(x.XLXSTZYZ_XSXH,0); + double yXH = CMISproConvert.StrToFloat(y.XLXSTZYZ_XSXH, 0); + if (xXH == yXH) + return x.XLXSTZYZ_YZID.CompareTo(y.XLXSTZYZ_YZID); + return xXH.CompareTo(yXH); + + } + } + + public class JGBIDComparer : IComparer + { + public int Compare(JGBMLXX x, JGBMLXX y) + { + + return x.XLXSJGB_JGBID.CompareTo(y.XLXSJGB_JGBID); + + } + } + public class XLTZ + { + private string _GYFLBM = string.Empty; + public string GYFLBM + { + get { return _GYFLBM; } + set { _GYFLBM = value; } + } + + private string _TZLX = string.Empty; + public string TZLX + { + get { return _TZLX; } + set { _TZLX = value; } + } + + private string _TZ = string.Empty; + public string TZ + { + get { return _TZ; } + set { _TZ = value; } + } + + private string _XHBBH = string.Empty; + public string XHBBH + { + get { return _XHBBH; } + set { _XHBBH = value; } + } + + private double _YZZ = 0; + public double YZZ + { + get { return _YZZ; } + set { _YZZ = value; } + } + } + +} diff --git a/XLBJD_BDOBill.cs b/XLBJD_BDOBill.cs new file mode 100644 index 0000000..40ae513 --- /dev/null +++ b/XLBJD_BDOBill.cs @@ -0,0 +1,4529 @@ +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_MODEL.Page; +using System.Web.Script.Serialization; +using GThinking.N_MISPRO.Data; +using GThinking.N_MISPRO.Utility; +using GThinking.N_WORKFLOW; +using GThinking.N_MISPRO; +using System.Collections.Generic; +using GThinking.N_PUBLIC; +using GThinking.N_PUBLIC2; +using System.Text; +using GThinking.N_MISPROAS; + +namespace GThinking.U20261363_N_XLXSBJ +{ + [EntityType(Db = "DBERP", Table = "XLXSBJD", IsWf = true, IsWhr = false, WhrPrefix = "XLXSBJD", IsAttach = true, DocFjs = "XLXSBJD_FJS", DocGrpId = "XLXSBJD_DOCGRPID")] + public class XLBJD_BDOBill : EntityObject + { + + private string _BJDID; + [ScriptIgnore] + public string BJDID + { + get { return _BJDID; } + set + { + _BJDID = value; + _XLBJDMX_BDOBill.BJDID = value; + } + } + + //是否进行过比对操作 + private bool _fCanE = true; + public bool fCanE + { + set + { + _fCanE = value; + } + get { return _fCanE; } + } + + //报价分类中进入提交判断的开关 + private string _fCanSubmit = string.Empty; + public string fCanSubmit + { + set + { + _fCanSubmit = value; + } + get { return _fCanSubmit; } + } + + //传入BJU003参数 + private string _sBJU003 = ""; + public string sBJU003 + { + set + { + _sBJU003 = value; + } + get { return _sBJU003; } + } + + public Dictionary sFJXXParams = new Dictionary(); + + private DataSet _dsFJXXSZ; + public DataSet dsFJXXSZ + { + get + { + if (_dsFJXXSZ == null) + { + TDatabase db = TContextDatabases.GetDatabase("DBERP"); + TSQL sSQL = new TSQL(db); + sSQL.Clear(); + sSQL.Add("select XLXSBJKZXXSZ_MC, XLXSBJKZXXSZ_SJLX, XLXSBJKZXXSZ_DYZD, isnull(XLXSBJKZXXSZ_BT,'N') as BT, XLXSBJKZXXSZ_SRFS, "); + sSQL.Add("XLXSBJKZXXSZ_MJLB,XLXSBJKZXXSZ_MJSQL,XLXSBJKZXXSZ_WIDTH, XLXSBJKZXXSZ_ROWS, XLXSBJKZXXSZ_JLDW,XLXSBJKZXXSZ_QSZ, "); + sSQL.Add("XLXSBJKZXXSZ_WHBZ,XLXSBJKZXXSZ_XSBZ,XLXSBJKZXXSZ_SYBJFLID "); + sSQL.Add("from XLXSBJKZXXSZ "); + sSQL.Add("where 1=1 "); + sSQL.Add("order by XLXSBJKZXXSZ_BJSX, XLXSBJKZXXSZ_BH "); + _dsFJXXSZ = db.OpenDataSet(sSQL); + } + return _dsFJXXSZ; + } + set { _dsFJXXSZ = value; } + } + + public string sYBJDID = ""; + private DataSet _dsFJXX; + public DataSet getXLXSBJKZXX(string sBJDID) + { + bool bReOpen = true; + if (sBJDID.Equals(sYBJDID)) + if (_dsFJXX != null) + bReOpen = false; + if (bReOpen) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sSQL = new TSQL(dberp); + sSQL.Clear(); + sSQL.Add("select XLXSBJKZXX_BJDID, "); + sSQL.Add(" XLXSBJKZXX_KZSZ01, XLXSBJKZXX_KZSZ02, XLXSBJKZXX_KZSZ03, XLXSBJKZXX_KZSZ04, XLXSBJKZXX_KZSZ05, "); + sSQL.Add(" XLXSBJKZXX_KZRQ01, XLXSBJKZXX_KZRQ02, XLXSBJKZXX_KZRQ03, XLXSBJKZXX_KZRQ04, XLXSBJKZXX_KZRQ05, "); + sSQL.Add(" XLXSBJKZXX_KZZF01, XLXSBJKZXX_KZZF02, XLXSBJKZXX_KZZF03, XLXSBJKZXX_KZZF04, XLXSBJKZXX_KZZF05, "); + sSQL.Add(" XLXSBJKZXX_KZZF06, XLXSBJKZXX_KZZF07, XLXSBJKZXX_KZZF08, XLXSBJKZXX_KZZF09, XLXSBJKZXX_KZZF10, "); + sSQL.Add(" XLXSBJKZXX_KZWB01, XLXSBJKZXX_KZWB02, XLXSBJKZXX_KZWB03, XLXSBJKZXX_KZWB04, XLXSBJKZXX_KZWB05, "); + sSQL.Add(" XLXSBJKZXX_WHR, XLXSBJKZXX_WHRID, XLXSBJKZXX_WHSJ "); + sSQL.Add("from XLXSBJKZXX "); + sSQL.Add("where XLXSBJKZXX_BJDID = :pBJDID "); + sSQL.ParamByName("pBJDID").Value = sBJDID; + _dsFJXX = dberp.OpenDataSet(sSQL); + } + sYBJDID = sBJDID; + return _dsFJXX; + } + + public string sYZBSPTJ = "N";//从预中标审批流程提交 + public string sYZBSPTH = "N";//退回到预中标审批流程 + + + + [DataMember(DbField = "XLXSBJD_BJDID", DbTitle = "报价单号", IsKey = true, DbType = TGtdbType.VarChar, + Len = 20, IsNullable = false, DefValue = "", CtlName = "txtBJDID", + CtlType = FieldType.C)] + public string XLXSBJD_BJDID + { + get { return GetField("XLXSBJD_BJDID").ToString().Trim(); } + set { SetField("XLXSBJD_BJDID", value); } + } + + [DataMember(DbField = "XLXSBJD_BJFLID", DbTitle = "报价分类", IsKey = false, DbType = TGtdbType.VarChar, + Len = 8, IsNullable = false, DefValue = "", CtlName = "cbxBJFLID", + CtlType = FieldType.CBX)] + public string XLXSBJD_BJFLID + { + get { return GetField("XLXSBJD_BJFLID").ToString().Trim(); } + set { SetField("XLXSBJD_BJFLID", value); } + } + + [DataMember(DbField = "XLXSBJD_KHID", DbTitle = "客户ID", IsKey = false, DbType = TGtdbType.VarChar, + Len = 8, IsNullable = true, DefValue = "", CtlName = "txtHidKHID", + CtlType = FieldType.HiddenField)] + public string XLXSBJD_KHID + { + get { return GetField("XLXSBJD_KHID").ToString().Trim(); } + set { SetField("XLXSBJD_KHID", value); } + } + + [DataMember(DbField = "XLXSBJD_XSQYID", DbTitle = "销售区域", IsKey = false, DbType = TGtdbType.VarChar, + Len = 20, IsNullable = true, DefValue = "", CtlName = "cbxXSQYID", + CtlType = FieldType.CBX)] + public string XLXSBJD_XSQYID + { + get { return GetField("XLXSBJD_XSQYID").ToString().Trim(); } + set { SetField("XLXSBJD_XSQYID", value); } + } + + [DataMember(DbField = "XLXSBJD_JGBID", DbTitle = "价格表", IsKey = false, DbType = TGtdbType.VarChar, + Len = 8, IsNullable = true, DefValue = "", CtlName = "cbxJGBID", + CtlType = FieldType.CBX)] + public string XLXSBJD_JGBID + { + get { return GetField("XLXSBJD_JGBID").ToString().Trim(); } + set { SetField("XLXSBJD_JGBID", value); } + } + + // + [DataMember(DbField = "XLXSBJD_CLHQJGBID", DbTitle = "材料行情价格表ID", IsKey = false, DbType = TGtdbType.VarChar, + Len = 8, IsNullable = true, DefValue = "", CtlName = "txtCLHQJGBID", + CtlType = FieldType.HiddenField)] + public string XLXSBJD_CLHQJGBID + { + get { return GetField("XLXSBJD_CLHQJGBID").ToString().Trim(); } + set { SetField("XLXSBJD_CLHQJGBID", value); } + } + + [DataMember(DbField = "XLXSBJD_WPID", DbTitle = "流程状态", IsKey = false, DbType = TGtdbType.VarChar, + Len = 4, IsNullable = true, DefValue = "", CtlName = "txtWPID", + CtlType = FieldType.HiddenField)] + public string XLXSBJD_WPID + { + get { return GetField("XLXSBJD_WPID").ToString().Trim(); } + set { SetField("XLXSBJD_WPID", value); } + } + + [DataMember(DbField = "XLXSBJD_SYDWID", DbTitle = "销售单位", IsKey = false, DbType = TGtdbType.VarChar, + Len = 4, IsNullable = true, DefValue = "", CtlName = "cbxSYDWID", + CtlType = FieldType.CBX)] + public string XLXSBJD_SYDWID + { + get { return GetField("XLXSBJD_SYDWID").ToString().Trim(); } + set { SetField("XLXSBJD_SYDWID", value); } + } + + [DataMember(DbField = "XLXSBJD_BJRQ", DbTitle = "报价日期", IsKey = false, DbType = TGtdbType.DateTime, + Len = 20, IsNullable = true, DefValue = "", CtlName = "datBJRQ", + CtlType = FieldType.D)] + public string XLXSBJD_BJRQ + { + get { return GetField("XLXSBJD_BJRQ").ToString().Trim(); } + set { SetField("XLXSBJD_BJRQ", value); } + } + + [DataMember(DbField = "XLXSBJD_XSJLMC", DbTitle = "销售经理", IsKey = false, DbType = TGtdbType.VarChar, + Len = 30, IsNullable = true, DefValue = "", CtlName = "cbxXSJLMC", + CtlType = FieldType.CBX)] + public string XLXSBJD_XSJLMC + { + get { return GetField("XLXSBJD_XSJLMC").ToString().Trim(); } + set { SetField("XLXSBJD_XSJLMC", value); } + } + + [DataMember(DbField = "XLXSBJD_TXY", DbTitle = "销售员", IsKey = false, DbType = TGtdbType.VarChar, + Len = 30, IsNullable = true, DefValue = "", CtlName = "cbxTXY", + CtlType = FieldType.CBX)] + public string XLXSBJD_TXY + { + get { return GetField("XLXSBJD_TXY").ToString().Trim(); } + set { SetField("XLXSBJD_TXY", value); } + } + //原 销售部 门 + [DataMember(DbField = "XLXSBJD_XSBMID", DbTitle = "销售部门", IsKey = false, DbType = TGtdbType.VarChar, + Len = 8, IsNullable = true, DefValue = "", CtlName = "cbxXSBMID", + CtlType = FieldType.CBX)] + public string XLXSBJD_XSBMID + { + get { return GetField("XLXSBJD_XSBMID").ToString().Trim(); } + set { SetField("XLXSBJD_XSBMID", value); } + } + + [DataMember(DbField = "XLXSBJD_KH", DbTitle = "客户", IsKey = false, DbType = TGtdbType.VarChar, + Len = 120, IsNullable = true, DefValue = "", CtlName = "txtKH", + CtlType = FieldType.C)] + public string XLXSBJD_KH + { + get { return GetField("XLXSBJD_KH").ToString().Trim(); } + set { SetField("XLXSBJD_KH", value); } + } + + [DataMember(DbField = "XLXSBJD_KHLXR", DbTitle = "客户联系人", IsKey = false, DbType = TGtdbType.VarChar, + Len = 60, IsNullable = true, DefValue = "", CtlName = "txtKHLXR", + CtlType = FieldType.C)] + public string XLXSBJD_KHLXR + { + get { return GetField("XLXSBJD_KHLXR").ToString().Trim(); } + set { SetField("XLXSBJD_KHLXR", value); } + } + + [DataMember(DbField = "XLXSBJD_YZB", DbTitle = "预中标", IsKey = false, DbType = TGtdbType.VarChar, + Len = 1, IsNullable = true, DefValue = "N", CtlName = "chkYZB", + CtlType = FieldType.Y)] + public string XLXSBJD_YZB + { + get { return GetField("XLXSBJD_YZB").ToString().Trim(); } + set { SetField("XLXSBJD_YZB", value); } + } + + + [DataMember(DbField = "XLXSBJD_YZBRQ", DbTitle = "预中标日期", IsKey = false, DbType = TGtdbType.DateTime, + Len = 20, IsNullable = true, DefValue = "", CtlName = "datYZBRQ", + CtlType = FieldType.D)] + public string XLXSBJD_YZBRQ + { + get { return GetField("XLXSBJD_YZBRQ").ToString().Trim(); } + set { SetField("XLXSBJD_YZBRQ", value); } + } + + [DataMember(DbField = "XLXSBJD_JHJHRQS", DbTitle = "计划交货日期始", IsKey = false, DbType = TGtdbType.DateTime, + Len = 20, IsNullable = true, DefValue = "", CtlName = "datJHJHRQS", + CtlType = FieldType.D)] + public string XLXSBJD_JHJHRQS + { + get { return GetField("XLXSBJD_JHJHRQS").ToString().Trim(); } + set { SetField("XLXSBJD_JHJHRQS", value); } + } + + [DataMember(DbField = "XLXSBJD_JHJHRQZ", DbTitle = "计划交货日期止", IsKey = false, DbType = TGtdbType.DateTime, + Len = 20, IsNullable = true, DefValue = "", CtlName = "datJHJHRQZ", + CtlType = FieldType.D)] + public string XLXSBJD_JHJHRQZ + { + get { return GetField("XLXSBJD_JHJHRQZ").ToString().Trim(); } + set { SetField("XLXSBJD_JHJHRQZ", value); } + } + + [DataMember(DbField = "XLXSBJD_YZBSL", DbTitle = "预中标数量", IsKey = false, DbType = TGtdbType.Float, + Len = 0, IsNullable = true, DefValue = "0", CtlName = "txtYZBSL", + CtlType = FieldType.F)] + public string XLXSBJD_YZBSL + { + get { return GetField("XLXSBJD_YZBSL").ToString().Trim(); } + set { SetField("XLXSBJD_YZBSL", value); } + } + + [DataMember(DbField = "XLXSBJD_YZBJE", DbTitle = "预中标金额", IsKey = false, DbType = TGtdbType.Float, + Len = 0, IsNullable = true, DefValue = "0", CtlName = "txtYZBJE", + CtlType = FieldType.F)] + public string XLXSBJD_YZBJE + { + get { return GetField("XLXSBJD_YZBJE").ToString().Trim(); } + set { SetField("XLXSBJD_YZBJE", value); } + } + + [DataMember(DbField = "XLXSBJD_LXDH", DbTitle = "客户联系电话", IsKey = false, DbType = TGtdbType.VarChar, + Len = 60, IsNullable = true, DefValue = "", CtlName = "txtLXDH", + CtlType = FieldType.C)] + public string XLXSBJD_LXDH + { + get { return GetField("XLXSBJD_LXDH").ToString().Trim(); } + set { SetField("XLXSBJD_LXDH", value); } + } + + [DataMember(DbField = "XLXSBJD_CZ", DbTitle = "客户传真", IsKey = false, DbType = TGtdbType.VarChar, + Len = 60, IsNullable = true, DefValue = "", CtlName = "txtCZ", + CtlType = FieldType.C)] + public string XLXSBJD_CZ + { + get { return GetField("XLXSBJD_CZ").ToString().Trim(); } + set { SetField("XLXSBJD_CZ", value); } + } + + [DataMember(DbField = "XLXSBJD_PJLX", DbTitle = "付款方式", IsKey = false, DbType = TGtdbType.VarChar, + Len = 2, IsNullable = true, DefValue = "", CtlName = "cbxPJLX", + CtlType = FieldType.CBX)] + public string XLXSBJD_PJLX + { + get { return GetField("XLXSBJD_PJLX").ToString().Trim(); } + set { SetField("XLXSBJD_PJLX", value); } + } + + //基准报价含税 + [DataMember(DbField = "XLXSBJD_JZBJHS", DbTitle = "表价含税", IsKey = false, DbType = TGtdbType.VarChar, + Len = 1, IsNullable = true, DefValue = "", CtlName = "chkJZBJHS", + CtlType = FieldType.Y)] + public string XLXSBJD_JZBJHS + { + get { return GetField("XLXSBJD_JZBJHS").ToString().Trim(); } + set { SetField("XLXSBJD_JZBJHS", value); } + } + + [DataMember(DbField = "XLXSBJD_XMMC", DbTitle = "项目", IsKey = false, DbType = TGtdbType.VarChar, + Len = 160, IsNullable = true, DefValue = "", CtlName = "txtXM", + CtlType = FieldType.C)] + public string XLXSBJD_XMMC + { + get { return GetField("XLXSBJD_XMMC").ToString().Trim(); } + set { SetField("XLXSBJD_XMMC", value); } + } + + [DataMember(DbField = "XLXSBJD_XXDZ", DbTitle = "详细地址", IsKey = false, DbType = TGtdbType.VarChar, + Len = 100, IsNullable = true, DefValue = "", CtlName = "txtXXDZ", + CtlType = FieldType.C)] + public string XLXSBJD_XXDZ + { + get { return GetField("XLXSBJD_XXDZ").ToString().Trim(); } + set { SetField("XLXSBJD_XXDZ", value); } + } + + [DataMember(DbField = "XLXSBJD_FKSM", DbTitle = "付款说明", IsKey = false, DbType = TGtdbType.VarChar, + Len = 1500, IsNullable = true, DefValue = "", CtlName = "txtFKSM", + CtlType = FieldType.C)] + public string XLXSBJD_FKSM + { + get { return GetField("XLXSBJD_FKSM").ToString().Trim(); } + set { SetField("XLXSBJD_FKSM", value); } + } + + [DataMember(DbField = "XLXSBJD_BZ", DbTitle = "报价备注", IsKey = false, DbType = TGtdbType.VarChar, + Len = 1500, IsNullable = true, DefValue = "", CtlName = "txtBZ", + CtlType = FieldType.C)] + public string XLXSBJD_BZ + { + get { return GetField("XLXSBJD_BZ").ToString().Trim(); } + set { SetField("XLXSBJD_BZ", value); } + } + + //总金额 + [DataMember(DbField = "XLXSBJD_ZJE", DbTitle = "报价总金额", IsKey = false, DbType = TGtdbType.Float, + Len = 0, IsNullable = true, DefValue = "0", CtlName = "txtZJE", + CtlType = FieldType.F)] + public string XLXSBJD_ZJE + { + get { return GetField("XLXSBJD_ZJE").ToString().Trim(); } + set { SetField("XLXSBJD_ZJE", value); } + } + + [DataMember(DbField = "XLXSBJD_ZZL", DbTitle = "材料总重量", IsKey = false, DbType = TGtdbType.Float, + Len = 0, IsNullable = true, DefValue = "0", CtlName = "txtZZL", + CtlType = FieldType.F)] + public string XLXSBJD_ZZL + { + get { return GetField("XLXSBJD_ZZL").ToString().Trim(); } + set { SetField("XLXSBJD_ZZL", value); } + } + + [DataMember(DbField = "XLXSBJD_LRL", DbTitle = "表价价差率(%)", IsKey = false, DbType = TGtdbType.Float, PrintVisible = false, + Len = 8, IsNullable = true, DefValue = "0", CtlName = "txtLRL", + CtlType = FieldType.F)] + public string XLXSBJD_LRL + { + get { return GetField("XLXSBJD_LRL").ToString().Trim(); } + set { SetField("XLXSBJD_LRL", value); } + } + + + [DataMember(DbField = "XLXSBJD_BJSM", DbTitle = "报价说明", IsKey = false, DbType = TGtdbType.Text, + Len = 4000, IsNullable = true, DefValue = "", CtlName = "txtBJSM", + CtlType = FieldType.T)] + public string XLXSBJD_BJSM + { + get { return GetField("XLXSBJD_BJSM").ToString().Trim(); } + set { SetField("XLXSBJD_BJSM", value); } + } + + //XLXSBJD_FKQXNR + [DataMember(DbField = "XLXSBJD_FKQXNR", DbTitle = "付款期限", IsKey = false, DbType = TGtdbType.VarChar, + Len = 250, IsNullable = true, DefValue = "", CtlName = "txtFKQXNR", + CtlType = FieldType.C)] + public string XLXSBJD_FKQXNR + { + get { return GetField("XLXSBJD_FKQXNR").ToString().Trim(); } + set { SetField("XLXSBJD_FKQXNR", value); } + } + + //运输节点-供应商 + [DataMember(DbField = "XLXSBJD_YSJDID", DbTitle = "运输地点", IsKey = false, DbType = TGtdbType.VarChar, + Len = 10, IsNullable = true, DefValue = "", CtlName = "cbxYSJDID", + CtlType = FieldType.CBX)] + public string XLXSBJD_YSJDID + { + get { return GetField("XLXSBJD_YSJDID").ToString().Trim(); } + set { SetField("XLXSBJD_YSJDID", value); } + } + + [DataMember(DbField = "XLXSBJD_GYSID", DbTitle = "送货单位", IsKey = false, DbType = TGtdbType.VarChar, + Len = 8, IsNullable = true, DefValue = "", CtlName = "cbxGYSID", + CtlType = FieldType.CBX)] + public string XLXSBJD_GYSID + { + get { return GetField("XLXSBJD_GYSID").ToString().Trim(); } + set { SetField("XLXSBJD_GYSID", value); } + } + + [DataMember(DbField = "XLXSBJD_YSFY", DbTitle = "运费", IsKey = false, DbType = TGtdbType.Float, + Len = 0, IsNullable = true, DefValue = "0", CtlName = "txtYSFY", + CtlType = FieldType.F)] + public string XLXSBJD_YSFY + { + get { return GetField("XLXSBJD_YSFY").ToString().Trim(); } + set { SetField("XLXSBJD_YSFY", value); } + } + + [DataMember(DbField = "XLXSBJD_TJ", DbTitle = "铜价", IsKey = false, DbType = TGtdbType.Float, + Len = 0, IsNullable = true, DefValue = "0", CtlName = "txtTJ", + CtlType = FieldType.F)] + public string XLXSBJD_TJ + { + get { return GetField("XLXSBJD_TJ").ToString().Trim(); } + set { SetField("XLXSBJD_TJ", value); } + } + + [DataMember(DbField = "XLXSBJD_LJ", DbTitle = "铝价", IsKey = false, DbType = TGtdbType.Float, + Len = 0, IsNullable = true, DefValue = "0", CtlName = "txtLJ", + CtlType = FieldType.F)] + public string XLXSBJD_LJ + { + get { return GetField("XLXSBJD_LJ").ToString().Trim(); } + set { SetField("XLXSBJD_LJ", value); } + } + + [DataMember(DbField = "XLXSBJD_CZJSXY", DbTitle = "有无技术协议", IsKey = false, DbType = TGtdbType.VarChar, + Len = 1, IsNullable = true, DefValue = "", CtlName = "cbxCZJSXY", + CtlType = FieldType.CBX)] + public string XLXSBJD_CZJSXY + { + get { return GetField("XLXSBJD_CZJSXY").ToString().Trim(); } + set { SetField("XLXSBJD_CZJSXY", value); } + } + + + [DataMember(DbField = "XLXSBJD_KHDH", DbTitle = "客户单号", IsKey = false, DbType = TGtdbType.VarChar, + Len = 30, IsNullable = true, DefValue = "", CtlName = "txtKHDH", + CtlType = FieldType.C)] + public string XLXSBJD_KHDH + { + get { return GetField("XLXSBJD_KHDH").ToString().Trim(); } + set { SetField("XLXSBJD_KHDH", value); } + } + + // + [DataMember(DbField = "XLXSBJD_XZQHID", DbTitle = "行政区划", IsKey = false, DbType = TGtdbType.VarChar, + Len = 10, IsNullable = true, DefValue = "", CtlName = "txtXZQHID", + CtlType = FieldType.HiddenField)] + public string XLXSBJD_XZQHID + { + get { return GetField("XLXSBJD_XZQHID").ToString().Trim(); } + set { SetField("XLXSBJD_XZQHID", value); } + } + + [DataMember(DbField = "XLXSBJD_XMID", DbTitle = "项目ID", IsKey = false, DbType = TGtdbType.VarChar, + Len = 10, IsNullable = true, DefValue = "", CtlName = "txtXMID", + CtlType = FieldType.HiddenField)] + public string XLXSBJD_XMID + { + get { return GetField("XLXSBJD_XMID").ToString().Trim(); } + set { SetField("XLXSBJD_XMID", value); } + } + + [DataMember(DbField = "XLXSBJD_SQR", DbTitle = "申请人", IsKey = false, DbType = TGtdbType.VarChar, + Len = 30, IsNullable = true, DefValue = "", CtlName = "txtSQR", + CtlType = FieldType.HiddenField)] + public string XLXSBJD_SQR + { + get { return GetField("XLXSBJD_SQR").ToString().Trim(); } + set { SetField("XLXSBJD_SQR", value); } + } + + + [DataMember(DbField = "XLXSBJD_ZDQRRGH", DbTitle = "撞单人工号", IsKey = false, DbType = TGtdbType.VarChar, + Len = 10, IsNullable = true, DefValue = "", CtlName = "txtZDQRRGH", + CtlType = FieldType.HiddenField)] + public string XLXSBJD_ZDQRRGH + { + get { return GetField("XLXSBJD_ZDQRRGH").ToString().Trim(); } + set { SetField("XLXSBJD_ZDQRRGH", value); } + } + + [DataMember(DbField = "XLXSBJD_SQRGH", DbTitle = "申请人工号", IsKey = false, DbType = TGtdbType.VarChar, + Len = 10, IsNullable = true, DefValue = "", CtlName = "txtSQRGH", + CtlType = FieldType.HiddenField)] + public string XLXSBJD_SQRGH + { + get { return GetField("XLXSBJD_SQRGH").ToString().Trim(); } + set { SetField("XLXSBJD_SQRGH", value); } + } + + [DataMember(DbField = "XLXSBJD_SQRID", DbTitle = "申请人ID", IsKey = false, DbType = TGtdbType.VarChar, + Len = 10, IsNullable = true, DefValue = "", CtlName = "txtSQRID", + CtlType = FieldType.HiddenField)] + public string XLXSBJD_SQRID + { + get { return GetField("XLXSBJD_SQRID").ToString().Trim(); } + set { SetField("XLXSBJD_SQRID", value); } + } + + [DataMember(DbField = "XLXSBJD_SQRQ", DbTitle = "申请日期", IsKey = false, DbType = TGtdbType.DateTime, + Len = 22, IsNullable = true, DefValue = "", CtlName = "txtSQRQ", + CtlType = FieldType.HiddenField)] + public string XLXSBJD_SQRQ + { + get { return GetField("XLXSBJD_SQRQ").ToString().Trim(); } + set { SetField("XLXSBJD_SQRQ", value); } + } + + [DataMember(DbField = "XLXSBJD_YBJDIDS", DbTitle = "原报价单号", IsKey = false, DbType = TGtdbType.VarChar, + Len = 250, IsNullable = true, DefValue = "", CtlName = "txtYBJDIDS", + CtlType = FieldType.HiddenField)] + public string XLXSBJD_YBJDIDS + { + get { return GetField("XLXSBJD_YBJDIDS").ToString().Trim(); } + set { SetField("XLXSBJD_YBJDIDS", value); } + } + + [DataMember(DbField = "XLXSBJD_ZDZDLX", DbTitle = "自动撞单类型", IsKey = false, DbType = TGtdbType.VarChar, + Len = 250, IsNullable = true, DefValue = "", CtlName = "txtZDZDLX", + CtlType = FieldType.HiddenField)] + public string XLXSBJD_ZDZDLX + { + get { return GetField("XLXSBJD_ZDZDLX").ToString().Trim(); } + set { SetField("XLXSBJD_ZDZDLX", value); } + } + + [DataMember(DbField = "XLXSBJD_ZT", DbTitle = "状态", IsKey = false, DbType = TGtdbType.VarChar, + Len = 1, IsNullable = true, DefValue = "", CtlName = "txtZT", + CtlType = FieldType.HiddenField)] + public string XLXSBJD_ZT + { + get { return GetField("XLXSBJD_ZT").ToString().Trim(); } + set { SetField("XLXSBJD_ZT", value); } + } + + [DataMember(DbField = "XLXSBJD_FZBZ", DbTitle = "复制标志", IsKey = false, DbType = TGtdbType.VarChar, + Len = 1, IsNullable = true, DefValue = "N", CtlName = "txtFZBZ", + CtlType = FieldType.HiddenField)] + public string XLXSBJD_FZBZ + { + get { return GetField("XLXSBJD_FZBZ").ToString().Trim(); } + set { SetField("XLXSBJD_FZBZ", value); } + } + + [DataMember(DbField = "XLXSBJD_BJSQDH", DbTitle = "报价申请单号", IsKey = false, DbType = TGtdbType.VarChar, + Len = 20, IsNullable = true, DefValue = "", CtlName = "txtBJSQDH", + CtlType = FieldType.HiddenField)] + public string XLXSBJD_BJSQDH + { + get { return GetField("XLXSBJD_BJSQDH").ToString().Trim(); } + set { SetField("XLXSBJD_BJSQDH", value); } + } + + [DataMember(DbField = "XLXSBJD_KQZYZDBS", DbTitle = "跨区专营撞单标识", IsKey = false, DbType = TGtdbType.VarChar, + Len = 1, IsNullable = true, DefValue = "", CtlName = "chkKQZYZDBS", + CtlType = FieldType.Y)] + public string XLXSBJD_KQZYZDBS + { + get { return GetField("XLXSBJD_KQZYZDBS").ToString().Trim(); } + set { SetField("XLXSBJD_KQZYZDBS", value); } + } + + [DataMember(DbField = "XLXSBJD_DOCGRPID", DbTitle = "文档分组号", IsKey = false, DbType = TGtdbType.Float, PrintVisible = false, + Len = 8, IsNullable = true, DefValue = "0", CtlName = "txtDOCGRPID", + CtlType = FieldType.HiddenField)] + public string XLXSBJD_DOCGRPID + { + get { return GetField("XLXSBJD_DOCGRPID").ToString().Trim(); } + set { SetField("XLXSBJD_DOCGRPID", value); } + } + + [DataMember(DbField = "XLXSBJD_FJS", DbTitle = "附件数", IsKey = false, DbType = TGtdbType.Float, + Len = 8, IsNullable = true, DefValue = "0", CtlName = "txtFJS", + CtlType = FieldType.F)] + public string XLXSBJD_FJS + { + get { return GetField("XLXSBJD_FJS").ToString().Trim(); } + set { SetField("XLXSBJD_FJS", value); } + } + + [DataMember(DbField = "XLXSBJD_WFID", DbTitle = "工作流号", IsKey = false, DbType = TGtdbType.VarChar, PrintVisible = false, + Len = 10, IsNullable = true, DefValue = "", CtlName = "txtWFID", + CtlType = FieldType.HiddenField)] + public string XLXSBJD_WFID + { + get { return GetField("XLXSBJD_WFID").ToString().Trim(); } + set { SetField("XLXSBJD_WFID", value); } + } + + [DataMember(DbField = "XLXSBJD_WFINST", DbTitle = "工作流实例号", IsKey = false, DbType = TGtdbType.Float, PrintVisible = false, + Len = 8, IsNullable = true, DefValue = "", CtlName = "txtWFINST", + CtlType = FieldType.HiddenField)] + public string XLXSBJD_WFINST + { + get { return GetField("XLXSBJD_WFINST").ToString().Trim(); } + set { SetField("XLXSBJD_WFINST", value); } + } + + [DataMember(DbField = "XLXSBJD_WFAWAITER", DbTitle = "待处理人", IsKey = false, DbType = TGtdbType.VarChar, PrintVisible = false, + Len = 250, IsNullable = true, DefValue = "", CtlName = "txtAWAITER", + CtlType = FieldType.HiddenField)] + public string XLXSBJD_WFAWAITER + { + get { return GetField("XLXSBJD_WFAWAITER").ToString().Trim(); } + set { SetField("XLXSBJD_WFAWAITER", value); } + } + + [DataMember(DbField = "XLXSBJD_WFHANDLER", DbTitle = "已处理人", IsKey = false, DbType = TGtdbType.VarChar, PrintVisible = false, + Len = 250, IsNullable = true, DefValue = "", CtlName = "txtHANDLER", + CtlType = FieldType.HiddenField)] + public string XLXSBJD_WFHANDLER + { + get { return GetField("XLXSBJD_WFHANDLER").ToString().Trim(); } + set { SetField("XLXSBJD_WFHANDLER", value); } + } + + [DataMember(DbField = "XLXSBJD_WHR", DbTitle = "维护人", IsKey = false, DbType = TGtdbType.VarChar, + Len = 30, IsNullable = true, DefValue = "", CtlName = "txtWHR", + CtlType = FieldType.C)] + public string XLXSBJD_WHR + { + get { return GetField("XLXSBJD_WHR").ToString().Trim(); } + set { SetField("XLXSBJD_WHR", value); } + } + + [DataMember(DbField = "XLXSBJD_WHRID", DbTitle = "维护人工号", IsKey = false, DbType = TGtdbType.VarChar, PrintVisible = false, + Len = 10, IsNullable = true, DefValue = "", CtlName = "txtWHRID", + CtlType = FieldType.HiddenField)] + public string XLXSBJD_WHRID + { + get { return GetField("XLXSBJD_WHRID").ToString().Trim(); } + set { SetField("XLXSBJD_WHRID", value); } + } + + [DataMember(DbField = "XLXSBJD_WHSJ", DbTitle = "维护时间", IsKey = false, DbType = TGtdbType.DateTime, + Len = 8, IsNullable = true, DefValue = "", CtlName = "datWHSJ", + CtlType = FieldType.DT)] + public string XLXSBJD_WHSJ + { + get { return GetField("XLXSBJD_WHSJ").ToString().Trim(); } + set { SetField("XLXSBJD_WHSJ", value); } + } + + + + public override TSQL SetDeleteSql() + { + TSQL SQL = base.SetDeleteSql(); + SQL.Add("delete from XLXSBJD where XLXSBJD_BJDID = :XLXSBJD_BJDID"); + return SQL; + } + + public override TSQL SetInsertSql() + { + TSQL SQL = base.SetInsertSql(); + SQL.Add("insert into XLXSBJD( "); + SQL.Add("XLXSBJD_BJDID,XLXSBJD_JGBID,XLXSBJD_CLHQJGBID,"); + SQL.Add("XLXSBJD_BJFLID,XLXSBJD_KHID,XLXSBJD_XSQYID,"); + SQL.Add("XLXSBJD_SYDWID,"); + SQL.Add("XLXSBJD_BJRQ,"); + SQL.Add("XLXSBJD_XSJLMC,"); + SQL.Add("XLXSBJD_TXY,XLXSBJD_XSBMID,"); + SQL.Add("XLXSBJD_KH,XLXSBJD_KHLXR,XLXSBJD_LXDH,XLXSBJD_CZ,XLXSBJD_PJLX,XLXSBJD_JZBJHS,"); + SQL.Add("XLXSBJD_XMMC,"); + SQL.Add("XLXSBJD_XXDZ,XLXSBJD_FKSM,"); + SQL.Add("XLXSBJD_BZ,"); + SQL.Add("XLXSBJD_ZJE,XLXSBJD_ZZL,"); + SQL.Add("XLXSBJD_LRL,"); + SQL.Add("XLXSBJD_FKQXNR,"); + SQL.Add("XLXSBJD_YSJDID,"); + SQL.Add("XLXSBJD_GYSID,"); + SQL.Add("XLXSBJD_YSFY,"); + SQL.Add("XLXSBJD_YZB,XLXSBJD_YZBRQ,XLXSBJD_JHJHRQS,XLXSBJD_JHJHRQZ,XLXSBJD_YZBSL,XLXSBJD_YZBJE,"); + SQL.Add("XLXSBJD_TJ,XLXSBJD_LJ,XLXSBJD_CZJSXY,XLXSBJD_KHDH,"); + SQL.Add("XLXSBJD_XZQHID,XLXSBJD_XMID,"); + SQL.Add("XLXSBJD_SQR,XLXSBJD_SQRGH,XLXSBJD_SQRID,XLXSBJD_SQRQ,"); + SQL.Add("XLXSBJD_YBJDIDS,XLXSBJD_ZT,XLXSBJD_FZBZ,XLXSBJD_KQZYZDBS,"); + SQL.Add("XLXSBJD_WHRID,"); + SQL.Add("XLXSBJD_WHR,"); + SQL.Add("XLXSBJD_WHSJ,"); + SQL.Add("XLXSBJD_DOCGRPID,"); + SQL.Add("XLXSBJD_FJS)"); + SQL.Add(" values("); + SQL.Add(":XLXSBJD_BJDID,:XLXSBJD_JGBID,:XLXSBJD_CLHQJGBID,"); + SQL.Add(":XLXSBJD_BJFLID,:XLXSBJD_KHID,:XLXSBJD_XSQYID,"); + SQL.Add(":XLXSBJD_SYDWID,"); + SQL.Add(":XLXSBJD_BJRQ,"); + SQL.Add(":XLXSBJD_XSJLMC,"); + SQL.Add(":XLXSBJD_TXY,:XLXSBJD_XSBMID,"); + SQL.Add(":XLXSBJD_KH,:XLXSBJD_KHLXR,:XLXSBJD_LXDH,:XLXSBJD_CZ,:XLXSBJD_PJLX,:XLXSBJD_JZBJHS,"); + SQL.Add(":XLXSBJD_XMMC,"); + SQL.Add(":XLXSBJD_XXDZ,:XLXSBJD_FKSM,"); + SQL.Add(":XLXSBJD_BZ,"); + SQL.Add(":XLXSBJD_ZJE,:XLXSBJD_ZZL,"); + SQL.Add(":XLXSBJD_LRL,"); + SQL.Add(":XLXSBJD_FKQXNR,"); + SQL.Add(":XLXSBJD_YSJDID,"); + SQL.Add(":XLXSBJD_GYSID,"); + SQL.Add(":XLXSBJD_YSFY,"); + SQL.Add(":XLXSBJD_YZB,:XLXSBJD_YZBRQ,:XLXSBJD_JHJHRQS,:XLXSBJD_JHJHRQZ,:XLXSBJD_YZBSL,:XLXSBJD_YZBJE,"); + SQL.Add(":XLXSBJD_TJ,:XLXSBJD_LJ,:XLXSBJD_CZJSXY,:XLXSBJD_KHDH,"); + SQL.Add(":XLXSBJD_XZQHID,:XLXSBJD_XMID,"); + SQL.Add(":XLXSBJD_SQR,:XLXSBJD_SQRGH,:XLXSBJD_SQRID,:XLXSBJD_SQRQ,"); + SQL.Add(":XLXSBJD_YBJDIDS,:XLXSBJD_ZT,:XLXSBJD_FZBZ,:XLXSBJD_KQZYZDBS,"); + SQL.Add(":XLXSBJD_WHRID,"); + SQL.Add(":XLXSBJD_WHR,"); + SQL.Add(":XLXSBJD_WHSJ,"); + SQL.Add(":XLXSBJD_DOCGRPID,"); + SQL.Add(":XLXSBJD_FJS)"); + return SQL; + } + + public override TSQL SetUpdateSql() + { + TSQL SQL = base.SetUpdateSql(); + SQL.Add("update XLXSBJD set "); + SQL.Add(" XLXSBJD_BJDID=:XLXSBJD_BJDID,XLXSBJD_JGBID=:XLXSBJD_JGBID,XLXSBJD_CLHQJGBID=:XLXSBJD_CLHQJGBID,"); + SQL.Add(" XLXSBJD_BJFLID=:XLXSBJD_BJFLID, XLXSBJD_KHID=:XLXSBJD_KHID, XLXSBJD_XSQYID=:XLXSBJD_XSQYID, XLXSBJD_SYDWID=:XLXSBJD_SYDWID,"); + SQL.Add(" XLXSBJD_BJRQ=:XLXSBJD_BJRQ,"); + SQL.Add(" XLXSBJD_XSJLMC=:XLXSBJD_XSJLMC,"); + SQL.Add(" XLXSBJD_TXY=:XLXSBJD_TXY, XLXSBJD_XSBMID =:XLXSBJD_XSBMID, "); + SQL.Add(" XLXSBJD_KH=:XLXSBJD_KH,XLXSBJD_KHLXR=:XLXSBJD_KHLXR,XLXSBJD_LXDH=:XLXSBJD_LXDH,XLXSBJD_CZ=:XLXSBJD_CZ,XLXSBJD_PJLX=:XLXSBJD_PJLX,XLXSBJD_JZBJHS=:XLXSBJD_JZBJHS,"); + SQL.Add(" XLXSBJD_XMMC=:XLXSBJD_XMMC,"); + SQL.Add(" XLXSBJD_XXDZ=:XLXSBJD_XXDZ, "); + SQL.Add(" XLXSBJD_FKSM=:XLXSBJD_FKSM,"); + SQL.Add(" XLXSBJD_BZ=:XLXSBJD_BZ, "); + SQL.Add(" XLXSBJD_ZJE=:XLXSBJD_ZJE,XLXSBJD_ZZL=:XLXSBJD_ZZL, "); + SQL.Add(" XLXSBJD_LRL=:XLXSBJD_LRL, "); + SQL.Add(" XLXSBJD_FKQXNR=:XLXSBJD_FKQXNR, "); + SQL.Add(" XLXSBJD_YSJDID=:XLXSBJD_YSJDID,XLXSBJD_GYSID=:XLXSBJD_GYSID,XLXSBJD_YSFY=:XLXSBJD_YSFY, "); + SQL.Add(" XLXSBJD_YZB=:XLXSBJD_YZB,XLXSBJD_YZBRQ=:XLXSBJD_YZBRQ,XLXSBJD_JHJHRQS=:XLXSBJD_JHJHRQS,XLXSBJD_JHJHRQZ=:XLXSBJD_JHJHRQZ,XLXSBJD_YZBSL=:XLXSBJD_YZBSL,XLXSBJD_YZBJE=:XLXSBJD_YZBJE,"); + SQL.Add(" XLXSBJD_TJ=:XLXSBJD_TJ,XLXSBJD_LJ=:XLXSBJD_LJ,XLXSBJD_CZJSXY=:XLXSBJD_CZJSXY,XLXSBJD_KHDH=:XLXSBJD_KHDH,"); + SQL.Add(" XLXSBJD_XZQHID=:XLXSBJD_XZQHID,XLXSBJD_XMID=:XLXSBJD_XMID,XLXSBJD_KQZYZDBS=:XLXSBJD_KQZYZDBS,"); + SQL.Add(" XLXSBJD_WHR=:XLXSBJD_WHR, "); + SQL.Add(" XLXSBJD_WHRID=:XLXSBJD_WHRID, "); + SQL.Add(" XLXSBJD_WHSJ=:XLXSBJD_WHSJ, "); + SQL.Add(" XLXSBJD_DOCGRPID=:XLXSBJD_DOCGRPID,"); + SQL.Add(" XLXSBJD_FJS=:XLXSBJD_FJS"); + SQL.Add(" where XLXSBJD_BJDID = :XLXSBJD_BJDID"); + return SQL; + } + + public override TSQL SetQuerySql() + { + TSQL SQL = base.SetQuerySql(); + SQL.Add(" select XLXSBJD_BJDID, XLXSBJD_JGBID,XLXSBJD_CLHQJGBID, XLXSBJD_BJFLID, XLXSBJD_KHID, XLXSBJD_XSQYID, XLXSBJD_SYDWID, XLXSBJD_BJRQ, XLXSBJD_XSJLMC, "); + SQL.Add(" XLXSBJD_TXY, XLXSBJD_XSBMID, XLXSBJD_KH, XLXSBJD_KHLXR,XLXSBJD_LXDH,XLXSBJD_CZ, XLXSBJD_PJLX, XLXSBJD_JZBJHS, XLXSBJD_XMMC, XLXSBJD_XXDZ, XLXSBJD_FKSM, XLXSBJD_BZ,"); + SQL.Add(" XLXSBJD_ZJE,XLXSBJD_ZZL,XLXSBJD_LRL,XLXSBJD_ZDZDLX, "); + SQL.Add(" XLXSBJD_FKQXNR,XLXSBJD_BJSM,XLXSBJD_TJ,XLXSBJD_LJ,XLXSBJD_CZJSXY,XLXSBJD_KHDH,"); + SQL.Add(" XLXSBJD_XZQHID,XLXSBJD_XMID,"); + SQL.Add(" XLXSBJD_YZB,XLXSBJD_YZBRQ,XLXSBJD_JHJHRQS,XLXSBJD_JHJHRQZ,XLXSBJD_YZBSL,XLXSBJD_YZBJE,"); + SQL.Add(" XLXSBJD_YBJDIDS,XLXSBJD_ZT,XLXSBJD_FZBZ,XLXSBJD_BJSQDH,"); + SQL.Add(" XLXSBJD_YSJDID,XLXSBJD_GYSID,XLXSBJD_YSFY,XLXSBJD_ZB,XLXSBJD_ZBJE,XLXSBJD_KQZYZDBS,"); + SQL.Add(" XLXSBJD_WHR, XLXSBJD_WHRID, XLXSBJD_WHSJ, XLXSBJD_DOCGRPID, XLXSBJD_FJS, XLXSBJD_WFID, XLXSBJD_WFINST, XLXSBJD_WPID, XLXSBJD_WFAWAITER, XLXSBJD_WFHANDLER, XLXSBJD_ACTNAME"); + SQL.Add(" from XLXSBJD "); + SQL.Add(" where 1 = 1 "); + //增加where条件以及参数的赋值 + return SQL; + } + + public override TSQL SetQuerySqlByKey() + { + TSQL SQL = base.SetQuerySqlByKey(); + SQL.Add(" select XLXSBJD_BJDID, XLXSBJD_JGBID,XLXSBJD_CLHQJGBID, XLXSBJD_BJFLID, XLXSBJD_KHID, XLXSBJD_XSQYID, XLXSBJD_SYDWID, XLXSBJD_BJRQ, XLXSBJD_XSJLMC, "); + SQL.Add(" XLXSBJD_TXY, XLXSBJD_XSBMID, XLXSBJD_KH, XLXSBJD_KHLXR,XLXSBJD_LXDH,XLXSBJD_CZ, XLXSBJD_PJLX, XLXSBJD_JZBJHS, XLXSBJD_XMMC, XLXSBJD_XXDZ, XLXSBJD_FKSM, XLXSBJD_BZ,"); + SQL.Add(" XLXSBJD_ZJE,XLXSBJD_ZZL,XLXSBJD_LRL,XLXSBJD_SQR,XLXSBJD_SQRGH,XLXSBJD_SQRID,XLXSBJD_ZDQRRGH, "); + SQL.Add(" XLXSBJD_FKQXNR,XLXSBJD_BJSM,XLXSBJD_TJ,XLXSBJD_LJ,XLXSBJD_CZJSXY,XLXSBJD_KHDH,"); + SQL.Add(" XLXSBJD_XZQHID,XLXSBJD_XMID,XLXSBJD_ZDZDLX,"); + SQL.Add(" XLXSBJD_YZB,XLXSBJD_YZBRQ,XLXSBJD_JHJHRQS,XLXSBJD_JHJHRQZ,XLXSBJD_YZBSL,XLXSBJD_YZBJE,"); + SQL.Add(" XLXSBJD_YBJDIDS,XLXSBJD_ZT,XLXSBJD_FZBZ,XLXSBJD_BJSQDH,"); + SQL.Add(" XLXSBJD_YSJDID,XLXSBJD_GYSID,XLXSBJD_YSFY,XLXSBJD_ZB,XLXSBJD_ZBJE,XLXSBJD_KQZYZDBS,"); + SQL.Add(" XLXSBJD_WHR, XLXSBJD_WHRID, XLXSBJD_WHSJ, XLXSBJD_DOCGRPID, XLXSBJD_FJS, XLXSBJD_WFID, XLXSBJD_WFINST, XLXSBJD_WPID, XLXSBJD_WFAWAITER, XLXSBJD_WFHANDLER, XLXSBJD_ACTNAME"); + SQL.Add(" from XLXSBJD "); + SQL.Add(" where XLXSBJD_BJDID = :XLXSBJD_BJDID"); + SQL.AddParam("XLXSBJD_BJDID", TGtdbType.VarChar, 20, _BJDID); + return SQL; + } + + public override bool Deleted(TSQL sql) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + XLBJDUtils.AfterDeleteBJD(dberp, sql, GetField("XLXSBJD_BJDID").ToString().Trim()); + return base.Deleted(sql); + } + + public override bool Deleting(TSQL sql) + { + _XLBJDMX_BDOBill.BJDID = GetField("XLXSBJD_BJDID").ToString().Trim(); + return base.Deleting(sql); + } + + public override void WFBeforeAction(TWorkflow Sender, TWFAction Action, ref bool CanAction) + { + base.WFBeforeAction(Sender, Action, ref CanAction); + string sOption = Sender.GetWPOption(Sender.WFID, Sender.WPID, "生成PDF附件").ToString().Trim(); + if (Action == TWFAction.wfaSubmit) + { + if (sOption.Equals("Y")) + XLBJDInfo.PDFDC(XLXSBJD_BJDID); + } + + } + + public override void WFAfterAction(GThinking.N_WORKFLOW.TWorkflow Sender, TWFAction Action, bool ActionIsDone) + { + base.WFAfterAction(Sender, Action, ActionIsDone); + + if (!ActionIsDone) + return; + string sWPID = ""; + string sBJSQDH = ""; + TSQL SQL = new TSQL(Sender.dbe); + SQL.Clear(); + SQL.Add("select XLXSBJD_WPID,XLXSBJD_BJSQDH,XLXSBJD_BJJSJD,XLXSBJD_ZB from XLXSBJD where XLXSBJD_BJDID=:pBJDID"); + SQL.ParamByName("pBJDID").Value = XLXSBJD_BJDID; + DataSet ds = Sender.dbe.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + sWPID = ds.Tables[0].Rows[0][0].ToString().Trim(); + sBJSQDH = ds.Tables[0].Rows[0][1].ToString().Trim(); + } + CMISproSession tSession = getSession(); + string sZDQRWPID = XLBJDUtils.GetXLXSBJPZXX(100860068).XLXSBJPZ_ZDQRWPID; + if (!sZDQRWPID.Equals("")) + { + if (Action == TWFAction.wfaSubmit) + { + if (sZDQRWPID.Contains(sWPID)) + { + SQL.Clear(); + SQL.Add("update XLXSBJD set XLXSBJD_ZDQRRGH=:pZDQRRGH ,XLXSBJD_ZDQRSJ=:pZDQRSJ WHERE XLXSBJD_BJDID=:pBJDID"); + SQL.ParamByName("pZDQRRGH").Value = tSession.UserId; + SQL.ParamByName("pZDQRSJ").Value = CMISproConvert.ConvertTime(DateTime.Now); + SQL.ParamByName("pBJDID").Value = XLXSBJD_BJDID; + Sender.dbe.ExecSQL(SQL); + } + } + } + + if (!sBJSQDH.Trim().Equals("") && XLBJDInfo.CheckXSYBJSQ_SS()) + { + string sBJJSJD = ds.Tables[0].Rows[0][2].ToString().Trim(); + string sWPNAME = Sender.GetWPName(Sender.WFID, sWPID); + string sJSJD = tSession.UserName + " " + Sender.WAend.ToString().Trim() + " " + sWPNAME + " " + Sender.GetWFActionName(Action); + if (!sBJJSJD.Equals("")) + sBJJSJD += "\r\n"; + sBJJSJD += sJSJD; + SQL.Clear(); + SQL.Add(" update XLXSBJD set XLXSBJD_BJJSJD = :pJSJD where XLXSBJD_BJDID = :pBJDID "); + SQL.ParamByName("pJSJD").Value = sBJJSJD; + SQL.ParamByName("pBJDID").Value = XLXSBJD_BJDID; + Sender.dbe.ExecSQL(SQL); + } + + + SQL.Clear(); + SQL.Add(" update XLXSBJD"); + SQL.Add(" set XLXSBJD_WFID = :XLXSBJD_WFID, "); + SQL.Add(" XLXSBJD_WPID = :XLXSBJD_WPID, "); + SQL.Add(" XLXSBJD_WFAWAITER = :XLXSBJD_WFAWAITER, "); + SQL.Add(" XLXSBJD_WFHANDLER = :XLXSBJD_WFHANDLER, "); + SQL.Add(" XLXSBJD_WFINST = :XLXSBJD_WFINST, "); + SQL.Add(" XLXSBJD_ACTNAME = :XLXSBJD_ACTNAME "); + SQL.Add(" where XLXSBJD_BJDID = :XLXSBJD_BJDID "); + SQL.ParamByName("XLXSBJD_WFID").Value = Sender.WFID; + SQL.ParamByName("XLXSBJD_WFINST").Value = Sender.WFInst; + SQL.ParamByName("XLXSBJD_WPID").Value = Sender.WPID; + SQL.ParamByName("XLXSBJD_WFAWAITER").Value = Sender.Awaiter; + SQL.ParamByName("XLXSBJD_WFHANDLER").Value = Sender.Handler; + SQL.ParamByName("XLXSBJD_ACTNAME").Value = Sender.GetWFActionName(Action); + SQL.ParamByName("XLXSBJD_BJDID").Value = XLXSBJD_BJDID; + Sender.dbe.ExecSQL(SQL); + + string sCurZT = TWorkflow.Utils.WFGetBZSWID(Sender.WFID, Sender.WPID); + + //若“100860062|销售报价业务配置”项目检索来源为“YXXM|售前项目”且XLXSBJD_XMMC不为空 + if (sCurZT == "ZZZZ") + { + + + string sPSDH = ""; + bool bINS = false; + InsBJPS(SQL, Sender.dbe, Sender, Action, XLXSBJD_BJDID, tSession, "100860000", ref sPSDH, ref bINS); + if (bINS) + { + DispatchtoZZZZ(sPSDH, tSession); + } + } + + if (!sZDQRWPID.Equals("")) + { + if (Action == TWFAction.wfaSubmit) + { + if (sZDQRWPID.Contains(Sender.WPID)) + { + SQL.Clear(); + SQL.Add("update XLXSBJD set XLXSBJD_ZDZDLX=:pZDZDLX WHERE XLXSBJD_BJDID=:pBJDID"); + SQL.ParamByName("pZDZDLX").Value = XLBJD_BDOBill.getZDZDLX(XLXSBJD_BJDID); + SQL.ParamByName("pBJDID").Value = XLXSBJD_BJDID; + Sender.dbe.ExecSQL(SQL); + } + } + } + + + + + if (sCurZT == "ZZZZ" && !sBJSQDH.Trim().Equals("") && XLBJDInfo.CheckXSYBJSQ_SS()) + { + string sZB = ds.Tables[0].Rows[0][3].ToString().Trim(); + if (sZB.Equals("Y")) + DispatchXLBJSQ(sBJSQDH, "ZZZZ", tSession); + else + DispatchXLBJSQ(sBJSQDH, "0060", tSession); + } + } + + private static CMISproSession getSession() + { + return CMISproSessionManager.GetCurrentSession(); + } + + public override bool CanEdit() + { + if (!_fCanE) + return false; + return base.CanEdit(); + } + + public override void WFOnGetParamName(ref System.Collections.Generic.List ParamList) + { + base.WFOnGetParamName(ref ParamList); + ParamList.Add("自动撞单"); + } + + public override void WFOnGetParam(TWorkflow Sender, string ParamName, ref string Value, ref bool Succeess) + { + base.WFOnGetParam(Sender, ParamName, ref Value, ref Succeess); + if (ParamName == "自动撞单") + { + if (getZDZDLX(XLXSBJD_BJDID).Equals("")) + { + + Value = "N"; + } + else + { + Value = "Y"; + } + Succeess = true; + } + } + + public override bool CanSubmit() + { + string sBJDID = GetField("XLXSBJD_BJDID").ToString().Trim(); + string sWarningMsg = ""; + if (fCanSubmit.Equals("Y") || fCanSubmit.Equals("5")) + { + JudgeDifBJCP(sBJDID, sBJU003, ref sWarningMsg, fCanSubmit); + if (!sWarningMsg.Equals("")) + { + WarningMsg = String.Format(("显示序号为【" + sWarningMsg + "】的相同报价产品的报价不同,不允许提交!")); + return false; + } + } + + JudgeDifBJZJE(sBJDID, ref sWarningMsg); + if (!sWarningMsg.Equals("")) + { + WarningMsg = sWarningMsg; + return false; + } + return base.CanSubmit(); + } + + + public static void InsBJPS(TSQL SQL, TDatabase dberp, GThinking.N_WORKFLOW.TWorkflow Sender, TWFAction Action, string sBJDID, CMISproSession tSession, string sMDID, ref string sPSDH, ref bool bINS) + { + if (!TWorkflow.Utils.QYWFByWFVID("SQXM_XMBJ")) + { + bINS = false; + return; + } + + SQL.Clear(); + SQL.Add("SELECT XLXSBJD_BJDID,XLXSBJD_BJFLID,XLXSBJD_XMMC,XLXSBJD_BJRQ,XLXSBJD_ZJE FROM XLXSBJD "); + SQL.Add(" where 1=1 and XLXSBJD_BJDID = :pXLXSBJD_BJDID "); + SQL.ParamByName("pXLXSBJD_BJDID").Value = sBJDID; + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + if (!ds.Tables[0].Rows[0]["XLXSBJD_XMMC"].ToString().Trim().Equals("") && IsYXXM(sBJDID, ds.Tables[0].Rows[0]["XLXSBJD_BJFLID"].ToString().Trim(), sMDID)) + { + + SQL.Clear(); + SQL.Add("select "); + SQL.Add(" BJPS_PSDH,BJPS_SQRRYID,BJPS_SQRGH,BJPS_SQRRYMC,"); + SQL.Add(" BJPS_SQRQ,BJPS_XMID,BJPS_DWBJ,BJPS_NCJJ,BJPS_PSSM, BJPS_BJDID,"); + SQL.Add(" BJPS_WHR,BJPS_WHRID,BJPS_WHSJ"); + SQL.Add(" from BJPS "); + SQL.Add(" where 1=1 and BJPS_BJDID = :pBJPS_BJDID "); + SQL.ParamByName("pBJPS_BJDID").Value = sBJDID; + DataSet dsBJPS = dberp.OpenDataSet(SQL); + if (dsBJPS.Tables[0].Rows.Count > 0) + { + sPSDH = dsBJPS.Tables[0].Rows[0]["BJPS_PSDH"].ToString().Trim(); + SQL.Clear(); + SQL.Add(" update BJPS set "); + SQL.Add(" BJPS_SQRRYID=:BJPS_SQRRYID,BJPS_SQRGH=:BJPS_SQRGH,BJPS_SQRRYMC=:BJPS_SQRRYMC,"); + SQL.Add(" BJPS_SQRQ=:BJPS_SQRQ,BJPS_XMID=:BJPS_XMID,BJPS_DWBJ=:BJPS_DWBJ,BJPS_NCJJ=:BJPS_NCJJ,BJPS_PSSM=:BJPS_PSSM, BJPS_BJDID=:BJPS_BJDID,"); + SQL.Add(" BJPS_WHR=:BJPS_WHR,BJPS_WHRID=:BJPS_WHRID,BJPS_WHSJ=:BJPS_WHSJ"); + SQL.Add(" where 1=1 and BJPS_PSDH =:BJPS_PSDH"); + + + SQL.ParamByName("BJPS_PSDH").Value = sPSDH; + SQL.ParamByName("BJPS_SQRRYID").Value = TRYXX.GetRYXXByGH(tSession.UserId).RYID; + SQL.ParamByName("BJPS_SQRGH").Value = tSession.UserId; + SQL.ParamByName("BJPS_SQRRYMC").Value = tSession.UserName; + + SQL.ParamByName("BJPS_SQRQ").Value = ds.Tables[0].Rows[0]["XLXSBJD_BJRQ"].ToString().Trim(); + SQL.ParamByName("BJPS_XMID").Value = GetYXXM(ds.Tables[0].Rows[0]["XLXSBJD_XMMC"].ToString().Trim()); + SQL.ParamByName("BJPS_DWBJ").Value = ds.Tables[0].Rows[0]["XLXSBJD_ZJE"].ToString().Trim(); + SQL.ParamByName("BJPS_NCJJ").Value = GetZDXJ(sBJDID); + SQL.ParamByName("BJPS_PSSM").Value = "【" + sBJDID + "】报价单自动生成"; + SQL.ParamByName("BJPS_BJDID").Value = sBJDID; + + SQL.ParamByName("BJPS_WHR").Value = tSession.UserName; + SQL.ParamByName("BJPS_WHRID").Value = tSession.UserId; + SQL.ParamByName("BJPS_WHSJ").Value = DateTime.Now; + dberp.ExecSQL(SQL); + + bINS = false; + } + else + { + + + sPSDH = GetPSDH(); + SQL.Clear(); + SQL.Add(" insert into BJPS("); + SQL.Add(" BJPS_PSDH,BJPS_SQRRYID,BJPS_SQRGH,BJPS_SQRRYMC,"); + SQL.Add(" BJPS_SQRQ,BJPS_XMID,BJPS_DWBJ,BJPS_NCJJ,BJPS_PSSM, BJPS_BJDID,"); + SQL.Add(" BJPS_WHR,BJPS_WHRID,BJPS_WHSJ"); + SQL.Add(" )"); + SQL.Add(" values ("); + SQL.Add(" :BJPS_PSDH,:BJPS_SQRRYID,:BJPS_SQRGH,:BJPS_SQRRYMC,"); + SQL.Add(" :BJPS_SQRQ,:BJPS_XMID,:BJPS_DWBJ,:BJPS_NCJJ,:BJPS_PSSM, :BJPS_BJDID,"); + SQL.Add(" :BJPS_WHR,:BJPS_WHRID,:BJPS_WHSJ"); + SQL.Add(" ) "); + + SQL.ParamByName("BJPS_PSDH").Value = sPSDH; + SQL.ParamByName("BJPS_SQRRYID").Value = TRYXX.GetRYXXByGH(tSession.UserId).RYID; + SQL.ParamByName("BJPS_SQRGH").Value = tSession.UserId; + SQL.ParamByName("BJPS_SQRRYMC").Value = tSession.UserName; + + SQL.ParamByName("BJPS_SQRQ").Value = ds.Tables[0].Rows[0]["XLXSBJD_BJRQ"].ToString().Trim(); + SQL.ParamByName("BJPS_XMID").Value = GetYXXM(ds.Tables[0].Rows[0]["XLXSBJD_XMMC"].ToString().Trim()); + SQL.ParamByName("BJPS_DWBJ").Value = ds.Tables[0].Rows[0]["XLXSBJD_ZJE"].ToString().Trim(); + SQL.ParamByName("BJPS_NCJJ").Value = GetZDXJ(sBJDID); + SQL.ParamByName("BJPS_PSSM").Value = "【" + sBJDID + "】报价单自动生成"; + SQL.ParamByName("BJPS_BJDID").Value = sBJDID; + + SQL.ParamByName("BJPS_WHR").Value = tSession.UserName; + SQL.ParamByName("BJPS_WHRID").Value = tSession.UserId; + SQL.ParamByName("BJPS_WHSJ").Value = DateTime.Now; + dberp.ExecSQL(SQL); + + //创建工作流//N_SQXM8-100958003|售前项目报价 + TWorkflow myWF = new TWorkflow(tSession, new System.Web.Caching.Cache()); + myWF.UMID = 100958003; + myWF.Enabled = true; + myWF.CurUserID = tSession.UserId; + myWF.WFNewInst(myWF.GetWFID("SQXM_XMBJ"), tSession.UserId); + dberp.ExecSQL(string.Format("update BJPS set BJPS_WFID = '{0}', BJPS_WPID = '{1}',BJPS_WFAWAITER= '{2}',BJPS_WFHANDLER = '{3}',BJPS_WFINST = {4},BJPS_ACTNAME = '{5}' where BJPS_PSDH='{6}' ", + myWF.WFID, myWF.WPID, myWF.Awaiter, myWF.Handler, myWF.WFInst, myWF.GetWFActionName(TWFAction.wfaNewInst), sPSDH)); + bINS = true; + } + } + else + { + bINS = false; + } + } + else + { + bINS = false; + } + } + + public static string GetPSDH() + { + return CMISproDataBase.GetYWBHByNY("DBERP", "BJPS", "BJPS_PSDH", 4); + } + + public static double GetZDXJ(string sBJDID) + { + double fZDXJ = 0; + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add("select sum(XLXSBJDMX_ZDXJ) AS ZDXJ from XLXSBJDMX where XLXSBJDMX_BJDID=:pBJDID "); + SQL.ParamByName("pBJDID").Value = sBJDID; + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + fZDXJ = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0][0].ToString().Trim()); + } + return fZDXJ; + } + + public static string GetYXXM(string sYXXMMC) + { + string sXMID = ""; + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add("select YXXM_XMID from YXXM where YXXM_MC=:pMC "); + SQL.ParamByName("pMC").Value = sYXXMMC; + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + sXMID = ds.Tables[0].Rows[0][0].ToString().Trim(); + } + return sXMID; + } + + public static bool IsYXXM(string sBJDID, string sBJFLID, string sMDID) + { + XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(CMISproConvert.StrToInt(sMDID)); + if (pzxx.XLXSBJPZ_XMJSLY == "YXXM") + return true; + return false; + } + + public static void DispatchtoZZZZ(string sPSDH, CMISproSession tSession) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Add("select BJPS_WFID,BJPS_WPID,BJPS_WFINST from BJPS where BJPS_PSDH=:BJPS_PSDH"); + SQL.ParamByName("BJPS_PSDH").Value = sPSDH; + DataSet dsRecord = dberp.OpenDataSet(SQL); + if (dsRecord.Tables[0].Rows.Count > 0) + { + TWorkflow myWF = new TWorkflow(tSession, new System.Web.Caching.Cache()); + string sWFID = dsRecord.Tables[0].Rows[0]["BJPS_WFID"].ToString().Trim(); + string sWPID = "ZZZZ"; //指定要调度到的事务,不允许为空 + double dWFINST = CMISproConvert.StrToFloat(dsRecord.Tables[0].Rows[0]["BJPS_WFINST"].ToString().Trim()); + + string sTitle = ""; //指定调度后待办事务主题,如果没有特别设置,可以为空或者取工作流名称awf.GetWFName(sWFID) ;title中还同时包含了调度意见,格式:主题__!__调度意见。(__!__共5个字符) + string sUser = tSession.UserId; + string sAwaiter = TWorkflow.Utils.WfGetAWAITER(sWFID, dWFINST); //指定调度后的待处理人,不允许为空,格式为”,***,***,” + string sHandler = TWorkflow.Utils.WfGetHandler(sWFID, dWFINST).Trim(); //指定调度后的已处理人,应该是根据WFID,WFINST获取工对应的_Handle + string sDispatcher = myWF.WFGetDispatcher(sWFID); //获取流程调度员返回结果为工号,或者工号列表,如0001,0002,0003,需要判断返回是否为空 + TWorkflow smyWF = new TWorkflow(tSession, new System.Web.Caching.Cache()); + if (sDispatcher != "") + smyWF.WFInfo(sWFID, dWFINST, sDispatcher); //sUser是指定调度执行人,不允许为空,应该取流程调度员之一sDispatcher,如果调度员为空,可以由业务模块考虑是否以当前用户调度或者中断操作 + else + smyWF.WFInfo(sWFID, dWFINST, sUser); + if (sHandler.Equals("")) + { + sHandler = "," + sDispatcher + ","; + } + else + { + if (!sHandler.Contains("," + sDispatcher + ",")) + { + sHandler = sHandler + sDispatcher + ","; + } + } + smyWF.CurUserID = sUser; + string sState = "9"; //如果调度到ZZZZ环节,sState = "9" + smyWF.WFDispatch(sWFID, dWFINST, sUser, sState, sTitle, sWPID, "", sAwaiter, sHandler); + TSQL WFSQL = new TSQL(dberp); + WFSQL.Clear(); + WFSQL.Add("update BJPS set BJPS_WFID=:pWFID, BJPS_WFINST=:pWFINST, BJPS_WPID=:pWPID, "); + WFSQL.Add(" BJPS_ACTNAME=:pACTNAME, BJPS_WFAWAITER=:pWFAWAITER, BJPS_WFHANDLER=:pWFHANDLER "); + WFSQL.Add(" where BJPS_PSDH=:pBJPS_PSDH "); + WFSQL.ParamByName("pWFID").Value = smyWF.WFID; + WFSQL.ParamByName("pWFINST").Value = smyWF.WFInst; + WFSQL.ParamByName("pWPID").Value = smyWF.WPID; + WFSQL.ParamByName("pACTNAME").Value = smyWF.GetWFActionName(TWFAction.wfaDispatch); + WFSQL.ParamByName("pWFAWAITER").Value = ""; + WFSQL.ParamByName("pWFHANDLER").Value = sHandler; + WFSQL.ParamByName("pBJPS_PSDH").Value = sPSDH; + dberp.ExecSQL(WFSQL); + } + } + + public static void DispatchXLBJSQ(string sBJSQDH,string sNextWPID, CMISproSession tSession) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Add(" select XLBJSQ_WFID,XLBJSQ_WFINST from XLBJSQ where XLBJSQ_SQDH = :pSQDH "); + SQL.ParamByName("pSQDH").Value = sBJSQDH; + DataSet dsRecord = dberp.OpenDataSet(SQL); + if (dsRecord.Tables[0].Rows.Count > 0) + { + TWorkflow myWF = new TWorkflow(tSession, new System.Web.Caching.Cache()); + string sWFID = dsRecord.Tables[0].Rows[0]["XLBJSQ_WFID"].ToString().Trim(); + string sWPID = sNextWPID; + double dWFINST = CMISproConvert.StrToFloat(dsRecord.Tables[0].Rows[0]["XLBJSQ_WFINST"].ToString().Trim()); + + string sTitle = ""; //指定调度后待办事务主题,如果没有特别设置,可以为空或者取工作流名称awf.GetWFName(sWFID) ;title中还同时包含了调度意见,格式:主题__!__调度意见。(__!__共5个字符) + string sOption = "报价单提交结束,自动调度"; + string sPbegin = AppRuntime.ServerNow.ToString(); + string sPend = AppRuntime.ServerNow.AddDays(1).ToString(); + string sUser = tSession.UserId; + string sAwaiter = TWorkflow.Utils.WfGetAWAITER(sWFID, dWFINST); //指定调度后的待处理人,不允许为空,格式为”,***,***,” + string sHandler = TWorkflow.Utils.WfGetHandler(sWFID, dWFINST).Trim(); //指定调度后的已处理人,应该是根据WFID,WFINST获取工对应的_Handle + string sDispatcher = myWF.WFGetDispatcher(sWFID); //获取流程调度员返回结果为工号,或者工号列表,如0001,0002,0003,需要判断返回是否为空 + if (sDispatcher != "") + myWF.WFInfo(sWFID, dWFINST, sDispatcher); //sUser是指定调度执行人,不允许为空,应该取流程调度员之一sDispatcher,如果调度员为空,可以由业务模块考虑是否以当前用户调度或者中断操作 + else + myWF.WFInfo(sWFID, dWFINST, sUser); + if (sHandler.Equals("")) + { + sHandler = "," + sDispatcher + ","; + } + else + { + if (!sHandler.Contains("," + sDispatcher + ",")) + { + sHandler = sHandler + sDispatcher + ","; + } + } + myWF.CurUserID = sUser; + string sState = "0"; + if (sWPID.Equals("ZZZZ")) + { + sAwaiter = ""; + sState = "9"; + } //如果调度到ZZZZ环节,sState = "9" + myWF.WFDispatch(sWFID, dWFINST, sUser, sState, sTitle, sWPID, "", sAwaiter, sHandler, sPbegin, sPend, sOption); + TSQL WFSQL = new TSQL(dberp); + WFSQL.Clear(); + WFSQL.Add("update XLBJSQ set XLBJSQ_WFID=:pWFID, XLBJSQ_WFINST=:pWFINST, XLBJSQ_WPID=:pWPID, "); + WFSQL.Add(" XLBJSQ_ACTNAME=:pACTNAME, XLBJSQ_WFAWAITER=:pWFAWAITER, XLBJSQ_WFHANDLER=:pWFHANDLER "); + WFSQL.Add(" where XLBJSQ_SQDH=:pXLBJSQ_SQDH "); + WFSQL.ParamByName("pWFID").Value = myWF.WFID; + WFSQL.ParamByName("pWFINST").Value = myWF.WFInst; + WFSQL.ParamByName("pWPID").Value = myWF.WPID; + WFSQL.ParamByName("pACTNAME").Value = myWF.GetWFActionName(TWFAction.wfaDispatch); + WFSQL.ParamByName("pWFAWAITER").Value = ""; + WFSQL.ParamByName("pWFHANDLER").Value = sHandler; + WFSQL.ParamByName("pXLBJSQ_SQDH").Value = sBJSQDH; + dberp.ExecSQL(WFSQL); + } + } + + + public static string getZDZDLX(string sBJDID) + { + if (XLBJDUtils.GetXLXSBJPZXX(100860068).XLXSBJPZ_ZDZDLX.Equals("")) + return ""; + string sZDLXList = string.Empty; + string sZDLX=XLBJDUtils.GetXLXSBJPZXX(100860068).XLXSBJPZ_ZDZDLX.Replace("A","10").Replace("B","11").Replace("C","12").Replace("D","13").Replace("E","14").Replace("F","15").Replace("G","16"); + int iYF=CMISproConvert.StrToInt(XLBJDUtils.GetXLXSBJPZXX(100860068).XLXSBJPZ_ZDZDYF,0); + if(iYF==0) + iYF=6; + string sSQL=GetZDSQL(sZDLX,sBJDID,iYF); + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + sql.Clear(); + sql.Add(sSQL); + sql.ParamByName("pBJDID").Value = sBJDID; + DataSet ds=dberp.OpenDataSet(sql); + Dictionary dicZDLX = new Dictionary(); + + dicZDLX.Add("1", "客户+销售员相撞"); + + dicZDLX.Add("2", "客户名称重复"); + + dicZDLX.Add("3", "项目名称重复"); + + dicZDLX.Add("4", "项目名称词组重复"); + + dicZDLX.Add("5", "产品重复"); + + dicZDLX.Add("6", "产品+数量重复"); + + dicZDLX.Add("G", "规格+数量重复"); + + dicZDLX.Add("7", "仅型号规格重复"); + + dicZDLX.Add("8", "备案项目客户名称重复"); + + dicZDLX.Add("9", "备案项目名称重复"); + + dicZDLX.Add("A", "备案项目名称+销售员重复"); + + dicZDLX.Add("B", "项目与客户名称相撞"); + + dicZDLX.Add("C", "客户联系人重复"); + + dicZDLX.Add("D", "客户电话重复"); + + dicZDLX.Add("E", "按产品个数区间+分段重复率查产品重复"); + + dicZDLX.Add("F", "客户名称、项目名称重复"); + + Dictionary dicYYZDLX = new Dictionary(); + for (int i = 0; i < ds.Tables[0].Rows.Count; i++) + { + + if(!ds.Tables[0].Rows[i][0].ToString().Trim().TrimEnd(',').Equals("")) + { + string []sZDLXNum = ds.Tables[0].Rows[i][0].ToString().Trim().TrimEnd(',').Split(','); + for (int j = 0; j < sZDLXNum.Length; j++) + { + if (!dicYYZDLX.ContainsKey(sZDLXNum[j])) + { + dicYYZDLX.Add(sZDLXNum[j], dicZDLX[sZDLXNum[j]]); + sZDLXList+=dicZDLX[sZDLXNum[j]]+";"; + } + + } + } + if (dicYYZDLX.Count == 16) + break; + } + sZDLXList = XLBJDUtils.SubStringFunc(sZDLXList.TrimEnd(';'),250); + return sZDLXList; + + } + + private static string GetZDSQL(string sZDLX, string sBJDID,int iYF) + { + string sZDYY = sZDLX + ","; + string sXMID = ""; + string sKH = ""; + string sKHLXR = ""; + string sLXDH = ""; + string sXM = ""; + string sTXY = ""; + bool bKHXSTZD = false; + + DateTime dBJRQ = CMISproConvert.StrToDateTime("1900-01-01"); + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL sql = new TSQL(dberp); + sql.Clear(); + sql.Add("select XLXSBJD_TXY,XLXSBJD_XMMC,XLXSBJD_XMID,XLXSBJD_BJRQ,XLXSBJD_KH,XLXSBJD_KHLXR,XLXSBJD_LXDH,KH_TXY,KH_KHID "); + sql.Add("from XLXSBJD left join KH on KH_MC=XLXSBJD_KH "); + sql.Add("where XLXSBJD_BJDID=:pBJDID "); + sql.Add(" and isnull(XLXSBJD_YWLX,' ') = ' ' "); + sql.ParamByName("pBJDID").Value = sBJDID; + + DataSet ds = dberp.OpenDataSet(sql); + if (ds.Tables[0].Rows.Count > 0) + { + sTXY = ds.Tables[0].Rows[0]["XLXSBJD_TXY"].ToString().Trim(); + sKH = ds.Tables[0].Rows[0]["XLXSBJD_KH"].ToString().Trim(); + sKHLXR = ds.Tables[0].Rows[0]["XLXSBJD_KHLXR"].ToString().Trim(); + sLXDH = ds.Tables[0].Rows[0]["XLXSBJD_LXDH"].ToString().Trim(); + sXM = ds.Tables[0].Rows[0]["XLXSBJD_XMMC"].ToString().Trim(); + sXMID = ds.Tables[0].Rows[0]["XLXSBJD_XMID"].ToString().Trim(); + string sZDYYLX = sZDLX + ","; + if ((!sTXY.Equals("")) && (!sTXY.Equals(ds.Tables[0].Rows[0]["KH_TXY"].ToString().Trim())) + && (!ds.Tables[0].Rows[0]["KH_KHID"].ToString().Trim().Equals("")) + && (!ds.Tables[0].Rows[0]["KH_TXY"].ToString().Trim().Equals("")) + && (sZDLX.Equals("") || sZDYYLX.Contains("1,"))) + bKHXSTZD = true; + dBJRQ = CMISproConvert.StrToDateTime(ds.Tables[0].Rows[0]["XLXSBJD_BJRQ"].ToString().Trim()); + } + XLXSBJPZXX pzxx = XLBJDUtils.GetXLXSBJPZXX(100860068); + double dMXTMCBL = CMISproConvert.StrToFloat(pzxx.XLXSBJPZ_MXTMCBL) / 100; + double dMXFDS = CMISproConvert.StrToFloat(pzxx.XLXSBJPZ_MXFDS); + double dXYFDSCFBL = CMISproConvert.StrToFloat(pzxx.XLXSBJPZ_XYFDSCFBL); + double dDYFDSCFBL = CMISproConvert.StrToFloat(pzxx.XLXSBJPZ_DYFDSCFBL); + double dCPSLCFBL = CMISproConvert.StrToFloat(pzxx.XLXSBJPZ_CPSLCFBL); + string sCFCPBQFBZ = pzxx.XLXSBJPZ_CFCPBQFBZ; + string sBJY = pzxx.XLXSBJPZ_BJY; + bool bBJY1 = sBJY.Contains("1") && !sKH.Equals("") && !sTXY.Equals(""); + bool bBJY2 = sBJY.Contains("2") && !sTXY.Equals(""); + + bool bZD1 = bKHXSTZD && !sKH.Equals("") && ("," + sZDLX + ",").Contains(",1,"); + bool bZD2 = (sZDLX.Equals("") || ("," + sZDLX + ",").Contains(",2,")) && !sKH.Equals("") && ("," + sZDYY + ",").Contains(",2,"); + bool bZD3 = (sZDLX.Equals("") || ("," + sZDLX + ",").Contains(",3,")) && !sXM.Equals("") && ("," + sZDYY + ",").Contains(",3,"); + bool bZD4 = (sZDLX.Equals("") || ("," + sZDLX + ",").Contains(",4,")) && ("," + sZDYY + ",").Contains(",4,"); + bool bZD5 = (sZDLX.Equals("") || ("," + sZDLX + ",").Contains(",5,")) && ("," + sZDYY + ",").Contains(",5,"); + bool bZD6 = (sZDLX.Equals("") || ("," + sZDLX + ",").Contains(",6,")) && ("," + sZDYY + ",").Contains(",6,"); + bool bZD16 = (sZDLX.Equals("") || ("," + sZDLX + ",").Contains(",16,")) && ("," + sZDYY + ",").Contains(",16,"); + bool bZD7 = (sZDLX.Equals("") || ("," + sZDLX + ",").Contains(",7,")) && ("," + sZDYY + ",").Contains(",7,"); + bool bZD8 = (sZDLX.Equals("") || ("," + sZDLX + ",").Contains(",8,")) && !sKH.Equals("") && ("," + sZDYY + ",").Contains(",8,"); + bool bZD9 = (sZDLX.Equals("") || ("," + sZDLX + ",").Contains(",9,")) && !sXMID.Equals("") && ("," + sZDYY + ",").Contains(",9,"); + bool bZD10 = (sZDLX.Equals("") || ("," + sZDLX + ",").Contains(",10,")) && !sTXY.Equals("") && ("," + sZDYY + ",").Contains(",10,"); + bool bZD11 = (sZDLX.Equals("") || ("," + sZDLX + ",").Contains(",11,")) && !sXM.Equals("") && ("," + sZDYY + ",").Contains(",11,"); + bool bZD12 = (sZDLX.Equals("") || ("," + sZDLX + ",").Contains(",12,")) && !sKHLXR.Equals("") && ("," + sZDYY + ",").Contains(",12,"); + bool bZD13 = (sZDLX.Equals("") || ("," + sZDLX + ",").Contains(",13,")) && !sLXDH.Equals("") && ("," + sZDYY + ",").Contains(",13,"); + bool bZD14 = (sZDLX.Equals("") || ("," + sZDLX + ",").Contains(",14,")) && ("," + sZDYY + ",").Contains(",14,"); + bool bZD15 = (sZDLX.Equals("") || ("," + sZDLX + ",").Contains(",15,")) && ("," + sZDYY + ",").Contains(",15,") && !sKH.Equals("") && !sXM.Equals(""); + + string sTSC = ""; + if (!string.IsNullOrEmpty(pzxx.XLXSBJPZ_XMMCTSCZ)) + sTSC = CMISproDataBase.GetWhereEqual("XLXSBJZDCZ_XMCZ", pzxx.XLXSBJPZ_XMMCTSCZ); + StringBuilder sSQL = new StringBuilder(); + sSQL.AppendLine("select "); + if (bZD1) + sSQL.AppendLine(" case when (XLXSBJD_KH='" + sKH + "' and XLXSBJD_TXY='" + sTXY + "') then '1,' else '' end || "); + if (bZD2) + sSQL.AppendLine(" case when XLXSBJD_KH='" + sKH + "' then '2,' else '' end || "); + if (bZD3) + sSQL.AppendLine(" case when (XLXSBJD_XMMC='" + sXM + "' and not exists(select 1 from XLXSBJZDBJYXX where XLXSBJZDBJYXX_XXLX='XM' and XLXSBJZDBJYXX_XXNR=XLXSBJD_XMMC) ) then '3,' else '' end || "); + if (bZD4) + sSQL.AppendLine(string.Format(" case when A.CZXTGS >={0} then '4,' else '' end || ", pzxx.XLXSBJPZ_XMMCCZCFGS)); + if (bZD5) + { + sSQL.AppendLine(string.Format(" case when sameCPBJD.sameBJCPS>={0} ", pzxx.XLXSBJPZ_CPCFGS)); + sSQL.AppendLine(" and GE((case when MX.SL>MXCount.MXCounts then round(100.0*sameCPBJD.sameBJCPS/MX.SL,2) "); + sSQL.AppendLine(string.Format(" else round(100.0*sameCPBJD.sameBJCPS/MXCount.MXCounts,2) end),{0}) then '5,' else '' end || ", pzxx.XLXSBJPZ_CPCFBL)); + } + if (bZD14) + { + sSQL.AppendLine(string.Format(" case when MX.SL>MXCount.MXCounts*(1- {0}) AND MX.SLMXCount.MXCounts then round(100.0*sameCPBJD.sameBJCPS/MX.SL,2) "); + sSQL.AppendLine(string.Format(" else round(100.0*sameCPBJD.sameBJCPS/MXCount.MXCounts,2) end),{0}) AND MXCount.MXCounts <= {1}) ", pzxx.XLXSBJPZ_XYFDSCFBL, pzxx.XLXSBJPZ_MXFDS)); + sSQL.AppendLine(" OR (GE((case when MX.SL>MXCount.MXCounts then round(100.0*sameCPBJD.sameBJCPS/MX.SL,2) "); + sSQL.AppendLine(string.Format(" else round(100.0*sameCPBJD.sameBJCPS/MXCount.MXCounts,2) end),{0}) AND MXCount.MXCounts > {1})) ", pzxx.XLXSBJPZ_DYFDSCFBL, pzxx.XLXSBJPZ_MXFDS)); + sSQL.AppendLine(" then 'E,' else '' end || "); + } + if (bZD6) + { + sSQL.AppendLine(string.Format(" case when sameCPSLBJD.sameBJCPSLS>={0} ", pzxx.XLXSBJPZ_CPSLCFGS)); + sSQL.AppendLine(" and GE((case when MX.SL>MXCount.MXCounts then round(100.0*sameCPSLBJD.sameBJCPSLS/MX.SL,2) "); + sSQL.AppendLine(string.Format(" else round(100.0*sameCPSLBJD.sameBJCPSLS/MXCount.MXCounts,2) end),{0}) ", pzxx.XLXSBJPZ_CPSLCFBL)); + sSQL.AppendLine(" then '6,' else '' end || "); + } + if (bZD16) + { + sSQL.AppendLine(string.Format(" case when sameGGSLBJD.sameGGSLs>={0} ", ZDFXPZHelper.GetGGSLCFGS())); + sSQL.AppendLine(" and GE((case when MX.SL>MXCount.MXCounts then round(100.0*sameGGSLBJD.sameGGSLs/MX.SL,2) "); + sSQL.AppendLine(string.Format(" else round(100.0*sameGGSLBJD.sameGGSLs/MXCount.MXCounts,2) end),{0}) ", ZDFXPZHelper.GetGGSLCFBL())); + sSQL.AppendLine(" then 'G,' else '' end || "); + } + if (bZD7) + { + sSQL.AppendLine(" case when GE((case when MX.SL>MXCount.MXCounts then round(100.0*sameXHGGBJD.sameXHGGS/MX.SL,2) "); + sSQL.AppendLine(string.Format(" else round(100.0*sameXHGGBJD.sameXHGGS/MXCount.MXCounts,2) end),{0}) then '7,' else '' end || ", pzxx.XLXSBJPZ_XHGGCFBL)); + } + if (bZD8) + sSQL.AppendLine(" case when (K1MC='" + sKH + "' or K2MC='" + sKH + "' or K3MC='" + sKH + "' or K4MC='" + sKH + "') and isNull(XM.XMID,' ')=XLXSBJD_XMID then '8,' else '' end || "); + if (bZD9) + sSQL.AppendLine(string.Format(" case when (isNull(XM.XMID,' ')=XLXSBJD_XMID and XLXSBJD_XMID='{0}') then '9,' else '' end || ", sXMID)); + if (bZD10) + sSQL.AppendLine(string.Format(" case when (isNull(XM.XMID,' ')=XLXSBJD_XMID and XLXSBJD_XMID='{0}' and YXXM_TXY='" + sTXY + "') then 'A,' else '' end || ", sXMID)); + if (bZD11) + { + sSQL.AppendLine(" case when ((XLXSBJD_KH like '%" + sXM + "%' or ('" + sXM + "' like '%' || rtrim(isnull(XLXSBJD_KH,' ')) || '%' and isnull(XLXSBJD_KH,' ') <> ' ')) "); + sSQL.AppendLine(" and not exists(select 1 from XLXSBJZDBJYXX where XLXSBJZDBJYXX_XXLX='XM' and XLXSBJZDBJYXX_XXNR=XLXSBJD_XMMC) ) then 'B,' else '' end || "); + } + if (bZD12) + sSQL.AppendLine(" case when XLXSBJD_KHLXR='" + sKHLXR + "' then 'C,' else '' end || "); + if (bZD13) + sSQL.AppendLine(" case when XLXSBJD_LXDH='" + sLXDH + "' then 'D,' else '' end || "); + if(bZD15) + sSQL.AppendLine(" case when (XLXSBJD_KH='" + sKH + "' and XLXSBJD_XMMC='" + sXM + "' ) then 'F,' else '' end || "); + sSQL.AppendLine(" ' ' as ZDLX "); + + sSQL.AppendLine(" from XLXSBJD"); + sSQL.AppendLine(" left join (select XLXSBJDMX_BJDID as BJDID,count(XLXSBJDMX_XH) as SL from XLXSBJDMX where 1=1 group by XLXSBJDMX_BJDID)MX on MX.BJDID=XLXSBJD_BJDID "); + //*项目名称词组重复*/ + + if (sZDYY.Contains("4")) + { + sSQL.AppendLine("left join (select XLXSBJZDCZ_BJDID as BJDID,count(1)as CZXTGS "); + sSQL.AppendLine(" from XLXSBJZDCZ GJCA "); + sSQL.AppendLine(" left join XLXSBJD BJDA on BJDA.XLXSBJD_BJDID=GJCA.XLXSBJZDCZ_BJDID "); + sSQL.AppendLine(" where GJCA.XLXSBJZDCZ_BJDID<>:pBJDID and isnull(XLXSBJD_YWLX,' ')= ' ' "); + sSQL.AppendLine(" and GJCA.XLXSBJZDCZ_XMCZ in "); + sSQL.AppendLine(" (select GJCB.XLXSBJZDCZ_XMCZ from XLXSBJZDCZ GJCB "); + sSQL.AppendLine(" left join XLXSBJD BJDB on BJDB.XLXSBJD_BJDID=GJCB.XLXSBJZDCZ_BJDID "); + sSQL.AppendLine(" where GJCB.XLXSBJZDCZ_BJDID=:pBJDID and abs(DATEDIFF(year,BJDA.XLXSBJD_BJRQ,BJDB.XLXSBJD_BJRQ))<2 "); + if (!sTSC.Equals("")) + sSQL.AppendLine(" and not " + sTSC); + sSQL.AppendLine(" )group by GJCA.XLXSBJZDCZ_BJDID)A ON A.BJDID=XLXSBJD_BJDID "); + } + //产品重复、按产品个数区间+分段重复率查产品重复--当前报价单明细记录数为0则不进行此判断*/ + if (sZDYY.Contains("5") || sZDYY.Contains("14")) + { + sSQL.AppendLine(" left join (select a.XLXSBJDMX_BJDID as BJDID,sum(case when isNull(ZCSL,0):pBJDID and isnull(XLXSBJDMX_YWLX,' ')= ' ' ");//--当前报价单号 + + sSQL.AppendLine(" ) tmpA "); + if (sCFCPBQFBZ.Equals("Y")) + { + sSQL.AppendLine(" group by XLXSBJDMX_BJDID,XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID,XLXSBJDMX_DYDJID)a,"); + } + else + { + sSQL.AppendLine(" group by XLXSBJDMX_BJDID,XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID,XLXSBJDMX_XLBZID,XLXSBJDMX_DYDJID)a,"); + } + sSQL.AppendLine(" (select XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID,"); + if (sCFCPBQFBZ.Equals("Y")) + { + sSQL.AppendLine(" XLXSBJDMX_DYDJID,count(XLXSBJDMX_XH)as BZSL "); + } + else + { + sSQL.AppendLine(" XLXSBJDMX_XLBZID,XLXSBJDMX_DYDJID,count(XLXSBJDMX_XH)as BZSL "); + } + sSQL.AppendLine(" from "); + sSQL.AppendLine(" (select XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID, "); + if (sCFCPBQFBZ.Equals("Y")) + { + sSQL.AppendLine(" XLXSBJDMX_DYDJID,XLXSBJDMX_XH "); + } + else + { + sSQL.AppendLine(" XLXSBJDMX_DYDJID,XLXSBJDMX_XH, "); + if (pzxx.XLXSBJPZ_CPCFXLBZ.Equals("")) + sSQL.AppendLine(" XLXSBJDMX_XLBZID "); + else + { + sSQL.AppendLine(" case XLXSBJDMX_XLBZID "); + for (int i = 0; i < pzxx.XLXSBJPZ_CPCFXLBZ.Split(',').Length; i++) + { + sSQL.AppendLine(string.Format(" when '{0}' then '{1}' ", pzxx.XLXSBJPZ_CPCFXLBZ.Split(',')[i], pzxx.XLXSBJPZ_CPCFXLBZ.Split(',')[0])); + } + sSQL.AppendLine(" else XLXSBJDMX_XLBZID end as XLXSBJDMX_XLBZID "); + } + } + sSQL.AppendLine(" from XLXSBJDMX "); + sSQL.AppendLine(" where XLXSBJDMX_BJDID=:pBJDID ");//--当前报价单号 + sSQL.AppendLine(" ) tmpB "); + if (sCFCPBQFBZ.Equals("Y")) + { + sSQL.AppendLine(" group by XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID,XLXSBJDMX_DYDJID)b "); + } + else + { + sSQL.AppendLine(" group by XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID,XLXSBJDMX_XLBZID,XLXSBJDMX_DYDJID)b "); + } + sSQL.AppendLine(" where a.XLXSBJDMX_XLXHID=b.XLXSBJDMX_XLXHID"); + sSQL.AppendLine(" and a.XLXSBJDMX_XLGGID=b.XLXSBJDMX_XLGGID"); + if (!sCFCPBQFBZ.Equals("Y")) + { + sSQL.AppendLine(" and a.XLXSBJDMX_XLBZID=b.XLXSBJDMX_XLBZID"); + } + sSQL.AppendLine(" and a.XLXSBJDMX_DYDJID=b.XLXSBJDMX_DYDJID"); + sSQL.AppendLine(" group by a.XLXSBJDMX_BJDID)sameCPBJD on sameCPBJD.BJDID=XLXSBJD_BJDID"); + } + //*产品+数量重复--当前报价单明细记录数为0则不进行此判断*/ + if (sZDYY.Contains("6")) + { + sSQL.AppendLine(" left join (select a.XLXSBJDMX_BJDID as BJDID,sum(case when isNull(ZCSL,0):pBJDID and isnull(XLXSBJDMX_YWLX,' ')= ' ' ");//--当前报价单号 + + sSQL.AppendLine(" ) tmpA "); + if (sCFCPBQFBZ.Equals("Y")) + { + sSQL.AppendLine(" group by XLXSBJDMX_BJDID,XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID,XLXSBJDMX_DYDJID,"); + } + else + { + sSQL.AppendLine(" group by XLXSBJDMX_BJDID,XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID,XLXSBJDMX_XLBZID,XLXSBJDMX_DYDJID,"); + } + sSQL.AppendLine(" ZCBJSL)a, "); + sSQL.AppendLine(" (select XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID, "); + if (sCFCPBQFBZ.Equals("Y")) + { + sSQL.AppendLine(" XLXSBJDMX_DYDJID,count(XLXSBJDMX_XH)as BZSL,BZBJSL "); + } + else + { + sSQL.AppendLine(" XLXSBJDMX_XLBZID,XLXSBJDMX_DYDJID,count(XLXSBJDMX_XH)as BZSL,BZBJSL "); + } + sSQL.AppendLine(" from "); + sSQL.AppendLine(" (select XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID, "); + sSQL.AppendLine(" XLXSBJDMX_DYDJID,XLXSBJDMX_XH,XLXSBJDMX_JLDW,XLXSBJDMX_BJSL, "); + if (sCFCPBQFBZ.Equals("Y")) + { + sSQL.AppendLine(" (case when XLXSBJDMX_JLDW ='Km' then XLXSBJDMX_BJSL*1000 else XLXSBJDMX_BJSL end) as BZBJSL "); + } + else + { + sSQL.AppendLine(" (case when XLXSBJDMX_JLDW ='Km' then XLXSBJDMX_BJSL*1000 else XLXSBJDMX_BJSL end) as BZBJSL, "); + if (pzxx.XLXSBJPZ_CPCFXLBZ.Equals("")) + sSQL.AppendLine(" XLXSBJDMX_XLBZID "); + else + { + sSQL.AppendLine(" case XLXSBJDMX_XLBZID "); + for (int i = 0; i < pzxx.XLXSBJPZ_CPCFXLBZ.Split(',').Length; i++) + { + sSQL.AppendLine(string.Format(" when '{0}' then '{1}' ", pzxx.XLXSBJPZ_CPCFXLBZ.Split(',')[i], pzxx.XLXSBJPZ_CPCFXLBZ.Split(',')[0])); + } + sSQL.AppendLine(" else XLXSBJDMX_XLBZID end as XLXSBJDMX_XLBZID "); + } + } + sSQL.AppendLine(" from XLXSBJDMX "); + sSQL.AppendLine(" where XLXSBJDMX_BJDID=:pBJDID ");//--当前报价单号 + sSQL.AppendLine(" ) tmpB "); + if (sCFCPBQFBZ.Equals("Y")) + { + sSQL.AppendLine(" group by XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID,XLXSBJDMX_DYDJID, "); + } + else + { + sSQL.AppendLine(" group by XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID,XLXSBJDMX_XLBZID,XLXSBJDMX_DYDJID, "); + } + sSQL.AppendLine(" BZBJSL)b "); + sSQL.AppendLine(" where a.XLXSBJDMX_XLXHID=b.XLXSBJDMX_XLXHID"); + sSQL.AppendLine(" and a.XLXSBJDMX_XLGGID=b.XLXSBJDMX_XLGGID"); + if (!sCFCPBQFBZ.Equals("Y")) + { + sSQL.AppendLine(" and a.XLXSBJDMX_XLBZID=b.XLXSBJDMX_XLBZID"); + } + sSQL.AppendLine(" and a.XLXSBJDMX_DYDJID=b.XLXSBJDMX_DYDJID"); + sSQL.AppendLine(" and a.ZCBJSL=b.BZBJSL "); + sSQL.AppendLine(" group by a.XLXSBJDMX_BJDID)sameCPSLBJD on sameCPSLBJD.BJDID=XLXSBJD_BJDID"); + } + //*规格+数量重复--当前报价单明细记录数为0则不进行此判断*/ + if (sZDYY.Contains("16")) + { + sSQL.AppendLine(" left join (select a.XLXSBJDMX_BJDID as BJDID,sum(case when isNull(ZCSL,0):pBJDID and isnull(XLXSBJDMX_YWLX,' ')= ' ' "); + sSQL.AppendLine(" ) tmpA "); + sSQL.AppendLine(" group by XLXSBJDMX_BJDID,XLXSBJDMX_XLGGID,ZCBJSL)a, "); + sSQL.AppendLine(" (select XLXSBJDMX_XLGGID,count(XLXSBJDMX_XH)as BZSL,BZBJSL "); + sSQL.AppendLine(" from "); + sSQL.AppendLine(" (select XLXSBJDMX_XLGGID,XLXSBJDMX_XH,XLXSBJDMX_JLDW,XLXSBJDMX_BJSL, "); + sSQL.AppendLine(" (case when XLXSBJDMX_JLDW ='Km' then XLXSBJDMX_BJSL*1000 else XLXSBJDMX_BJSL end) as BZBJSL "); + sSQL.AppendLine(" from XLXSBJDMX "); + sSQL.AppendLine(" where XLXSBJDMX_BJDID=:pBJDID "); + sSQL.AppendLine(" ) tmpB "); + sSQL.AppendLine(" group by XLXSBJDMX_XLGGID,BZBJSL)b "); + sSQL.AppendLine(" where a.XLXSBJDMX_XLGGID=b.XLXSBJDMX_XLGGID"); + sSQL.AppendLine(" and a.ZCBJSL=b.BZBJSL "); + sSQL.AppendLine(" group by a.XLXSBJDMX_BJDID)sameGGSLBJD on sameGGSLBJD.BJDID=XLXSBJD_BJDID"); + } + //*仅型号规格重复--当前报价单明细记录数为0则不进行此判断*/ + if (sZDYY.Contains("7")) + { + sSQL.AppendLine(" left join (select a.XLXSBJDMX_BJDID as BJDID,sum(case when isNull(ZCSL,0):pBJDID and isnull(XLXSBJDMX_YWLX,' ')= ' ' ");//--当前报价单号 + + sSQL.AppendLine(" group by XLXSBJDMX_BJDID,XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID)a,"); + sSQL.AppendLine(" (select XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID,count(XLXSBJDMX_XH)as BZSL "); + sSQL.AppendLine(" from XLXSBJDMX "); + sSQL.AppendLine(" where XLXSBJDMX_BJDID=:pBJDID ");//--当前报价单号 + sSQL.AppendLine(" group by XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID)b "); + sSQL.AppendLine(" where a.XLXSBJDMX_XLXHID=b.XLXSBJDMX_XLXHID"); + sSQL.AppendLine(" and a.XLXSBJDMX_XLGGID=b.XLXSBJDMX_XLGGID"); + sSQL.AppendLine(" group by a.XLXSBJDMX_BJDID)sameXHGGBJD on sameXHGGBJD.BJDID=XLXSBJD_BJDID"); + } + //*型号规格重复、产品重复共用被撞明细记录数量*/ + if (sZDYY.Contains("5") || sZDYY.Contains("6") || sZDYY.Contains("16") || sZDYY.Contains("7") || sZDYY.Contains("14")) + { + sSQL.AppendLine(" left join (select count(1) as MXCounts,XLXSBJDMX_BJDID from XLXSBJDMX where XLXSBJDMX_BJDID=:pBJDID group by XLXSBJDMX_BJDID)MXCount on MXCount.XLXSBJDMX_BJDID=:pBJDID "); + } + //备案项目 + if (sZDYY.Contains("8") || sZDYY.Contains("9") || sZDYY.Contains("10")) + { + sSQL.AppendLine(" left join (select YXXM_XMID as XMID,YXXM_TXY,YXXM_BARQS,YXXM_BARQZ,"); + sSQL.AppendLine(" K1.KHXX_MC as K1MC,K2.KHXX_MC as K2MC, K3.KHXX_MC as K3MC,K4.KHXX_MC as K4MC "); + sSQL.AppendLine(" from YXXM "); + sSQL.AppendLine(" left join KHXX K1 on K1.KHXX_CRMKHID=YXXM_CRMKHID"); + sSQL.AppendLine(" left join KHXX K2 on K2.KHXX_CRMKHID=YXXM_CRMKHID2"); + sSQL.AppendLine(" left join KHXX K3 on K3.KHXX_CRMKHID=YXXM_CRMKHID3"); + sSQL.AppendLine(" left join KHXX K4 on K4.KHXX_CRMKHID=YXXM_CRMKHID4"); + sSQL.AppendLine(" and YXXM_WPID not in ('ZZZZ','ZZZY')"); + sSQL.AppendLine(" )XM on XM.XMID=XLXSBJD_XMID"); + } + + sSQL.AppendLine(" where XLXSBJD_BJDID<>:pBJDID "); + sSQL.AppendLine(" and isnull(XLXSBJD_YWLX,' ') = ' ' "); + + + sSQL.AppendLine(" and XLXSBJD_BJRQ >= DATEADD(month,-" + iYF + ",getdate()) "); + + if (bBJY1) + { + sSQL.AppendLine(" and ( XLXSBJD_KH <> '" + sKH + "' or XLXSBJD_TXY <> '" + sTXY + "' ) "); + } + if (bBJY2) + { + sSQL.AppendLine(" and XLXSBJD_TXY <> '" + sTXY + "' "); + } + + + + sSQL.AppendLine(" and "); + sSQL.AppendLine(" (1<>1 "); + if (bZD5)//*产品重复*/ + { + sSQL.AppendLine(" or (sameCPBJD.sameBJCPS>= "+pzxx.XLXSBJPZ_CPCFGS);//*产品重复*/txtCPCFGS + sSQL.AppendLine(" and GE((case when MX.SL>MXCount.MXCounts then round(100.0*sameCPBJD.sameBJCPS/MX.SL,2) "); + sSQL.AppendLine(" else round(100.0*sameCPBJD.sameBJCPS/MXCount.MXCounts,2) end)," + pzxx.XLXSBJPZ_CPCFBL + ")) "); + + } + if (bZD14)//*按产品个数区间+分段重复率查产品重复*/ + { + sSQL.AppendLine(string.Format(" or (MX.SL>MXCount.MXCounts*(1- {0}) AND MX.SLMXCount.MXCounts then round(100.0*sameCPBJD.sameBJCPS/MX.SL,2) "); + sSQL.AppendLine(string.Format(" else round(100.0*sameCPBJD.sameBJCPS/MXCount.MXCounts,2) end),{0}) AND MXCount.MXCounts <= {1}) ", pzxx.XLXSBJPZ_XYFDSCFBL, pzxx.XLXSBJPZ_MXFDS)); + sSQL.AppendLine(" OR (GE((case when MX.SL>MXCount.MXCounts then round(100.0*sameCPBJD.sameBJCPS/MX.SL,2) "); + sSQL.AppendLine(string.Format(" else round(100.0*sameCPBJD.sameBJCPS/MXCount.MXCounts,2) end),{0}) AND MXCount.MXCounts > {1}))) ", pzxx.XLXSBJPZ_DYFDSCFBL, pzxx.XLXSBJPZ_MXFDS)); + + } + + if (bZD6)//*产品+数量重复*/ + { + sSQL.AppendLine(string.Format(" or (sameCPSLBJD.sameBJCPSLS>={0} ", pzxx.XLXSBJPZ_CPSLCFGS)); + sSQL.AppendLine(string.Format(" and GE((case when MX.SL>MXCount.MXCounts then round(100.0*sameCPSLBJD.sameBJCPSLS/MX.SL,2) ")); + sSQL.AppendLine(" else round(100.0*sameCPSLBJD.sameBJCPSLS/MXCount.MXCounts,2) end)," + pzxx.XLXSBJPZ_CPSLCFBL + ")) "); + + } + if (bZD16)//*规格+数量重复*/ + { + sSQL.AppendLine(string.Format(" or (sameGGSLBJD.sameGGSLs>={0} ", ZDFXPZHelper.GetGGSLCFGS())); + sSQL.AppendLine(string.Format(" and GE((case when MX.SL>MXCount.MXCounts then round(100.0*sameGGSLBJD.sameGGSLs/MX.SL,2) ")); + sSQL.AppendLine(" else round(100.0*sameGGSLBJD.sameGGSLs/MXCount.MXCounts,2) end)," + ZDFXPZHelper.GetGGSLCFBL() + ")) "); + + } + if (bZD7)//*仅型号规格重复*/ + { + //*仅型号规格重复*/txtCPSLCFGS + sSQL.AppendLine(" or GE((case when MX.SL>MXCount.MXCounts then round(100.0*sameXHGGBJD.sameXHGGS/MX.SL,2) "); + sSQL.AppendLine(string.Format(" else round(100.0*sameXHGGBJD.sameXHGGS/MXCount.MXCounts,2) end),{0}) ", pzxx.XLXSBJPZ_XHGGCFBL));//txtXHGGCFBL + + + } + if (bZD4)//*项目名称词组重复*/ + { + sSQL.AppendLine(string.Format(" or (A.CZXTGS >={0}) ", pzxx.XLXSBJPZ_XMMCCZCFGS));//*项目名称词组重复*/ + + + } + if (bZD3)//*项目名称重复*/ + { + sSQL.AppendLine(" or (XLXSBJD_XMMC='" + sXM + "' and not exists(select 1 from XLXSBJZDBJYXX where XLXSBJZDBJYXX_XXLX='XM' and XLXSBJZDBJYXX_XXNR=XLXSBJD_XMMC) ) ");//*项目名称重复*/ + + } + if (bZD2)//*客户名称重复*/ + { + sSQL.AppendLine(" or (XLXSBJD_KH='" + sKH + "') ");//*客户名称重复*/ + + } + if (bZD1)//*客户+销售员相撞*/ + { + sSQL.AppendLine(" or (XLXSBJD_KH='" + sKH + "' and XLXSBJD_TXY='" + sTXY + "') ");//*客户+销售员相撞*/ + + } + if (bZD12)//*客户联系人重复*/ + { + sSQL.AppendLine(" or (XLXSBJD_KHLXR='" + sKHLXR + "') ");//*客户联系人重复*/ + + } + if (bZD13)//*客户电话重复*/ + { + sSQL.AppendLine(" or (XLXSBJD_LXDH='" + sLXDH + "') ");//*客户电话重复*/ + + } + if (bZD8)//*备案项目客户名称重复*/ + { + sSQL.AppendLine(" or ((K1MC='" + sKH + "' or K2MC='" + sKH + "' or K3MC='" + sKH + "' or K4MC='" + sKH + "') and isNull(XM.XMID,' ')=XLXSBJD_XMID) ");//*备案项目客户名称重复*/ + } + + if (bZD9)//*备案项目名称重复*/ + { + sSQL.AppendLine(string.Format(" or (isNull(XM.XMID,' ')=XLXSBJD_XMID and XLXSBJD_XMID='{0}') ",sXMID));//*备案项目客户名称重复,:pXMID为当前报价单的XMID*/ + + } + + if (bZD10)//*备案项目名称+销售员重复*/ + { + sSQL.AppendLine(string.Format("or (isNull(XM.XMID,' ')=XLXSBJD_XMID and XLXSBJD_XMID='{0}' and YXXM_TXY='" + sTXY + "') ", sXMID));//*备案项目名称+销售员重复*/ + + } + if (bZD11)//*项目与客户名称相撞*/ + { + sSQL.AppendLine(" or (XLXSBJD_KH like '%" + sXM + "%' or ('" + sXM + "' like '%' || rtrim(isnull(XLXSBJD_KH,' ')) || '%' and isnull(XLXSBJD_KH,' ') <> ' ')) ");//*项目名称重复*/ + } + + if (bZD15)//客户名称、项目名称相撞 + sSQL.AppendLine(" or (XLXSBJD_KH='" + sKH + "' and XLXSBJD_XMMC='" + sXM + "' )" ); + + sSQL.AppendLine(" ) "); + + sSQL.AppendLine("order by "+ "XLXSBJD_BJRQ,XLXSBJD_BJDID "); + + return sSQL.ToString(); + } + + + + + public static void JudgeDifBJCP(string sBJDID, string sBJU003, ref string WarningMsg, string sXTCPBJYZ) + { + List lst = new List(); + lst.Clear(); + + Dictionary dicA = new Dictionary(); + Dictionary dicB = new Dictionary(); + Dictionary dicC = new Dictionary(); + dicA.Clear(); + dicB.Clear(); + dicC.Clear(); + + //型号,规格,标准, 电压等级拼接的组合 + string sBJCP = ""; + string sCPBJ = ""; + string iXSSX = ""; + + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add("select XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID,XLXSBJDMX_XLBZID,XLXSBJDMX_DYDJID,XLXSBJDMX_JLDW, "); + SQL.Add(" XLXSBJDMX_CPBJ,XLXSBJDMX_XSSX "); + if (sXTCPBJYZ.Equals("5") || sXTCPBJYZ.Equals("6")) + { + SQL.Add(",XLXSBJDMX_XLYSID"); + } + SQL.Add(" from XLXSBJDMX "); + SQL.Add("where XLXSBJDMX_BJDID = :pXLXSBJDMX_BJDID "); + SQL.Add(" order by XLXSBJDMX_XLXHID,XLXSBJDMX_XLGGID,XLXSBJDMX_XLBZID,XLXSBJDMX_DYDJID "); + SQL.ParamByName("pXLXSBJDMX_BJDID").Value = sBJDID; + DataSet dsBJDMX = dberp.OpenDataSet(SQL); + for (int i = 0; i < dsBJDMX.Tables[0].Rows.Count; i++) + { + iXSSX = dsBJDMX.Tables[0].Rows[i]["XLXSBJDMX_XSSX"].ToString().Trim(); + sBJCP = dsBJDMX.Tables[0].Rows[i]["XLXSBJDMX_XLXHID"].ToString().Trim().ToUpper() + + "|" + dsBJDMX.Tables[0].Rows[i]["XLXSBJDMX_XLGGID"].ToString().Trim() + + "|" + dsBJDMX.Tables[0].Rows[i]["XLXSBJDMX_XLBZID"].ToString().Trim() + + "|" + dsBJDMX.Tables[0].Rows[i]["XLXSBJDMX_DYDJID"].ToString().Trim() + + "|" + XLBJDUtils.GetsJSDW(dsBJDMX.Tables[0].Rows[i]["XLXSBJDMX_JLDW"].ToString().Trim(), sBJU003); + if (sXTCPBJYZ.Equals("5") || sXTCPBJYZ.Equals("6")) + { + sBJCP += "|" + dsBJDMX.Tables[0].Rows[i]["XLXSBJDMX_XLYSID"].ToString().Trim(); + } + sCPBJ = dsBJDMX.Tables[0].Rows[i]["XLXSBJDMX_CPBJ"].ToString().Trim(); + + if (!dicB.ContainsKey(sBJCP)) + { + dicB.Add(sBJCP, iXSSX); + } + else + { + string sXSSX = dicB[sBJCP]; + dicB[sBJCP] = sXSSX + "," + iXSSX; + } + + dicC.Add(iXSSX, sCPBJ); + } + foreach (string stBJCP in dicB.Keys) + { + string sXSSXS = dicB[stBJCP]; + if (sXSSXS.Contains(",")) + { + dicA.Clear(); + foreach (string stXSSX in sXSSXS.Split(',')) + { + string stCPBJ = dicC[stXSSX]; + + string sKeyA = stBJCP + "|" + stCPBJ; + if (!dicA.ContainsKey(sKeyA)) + { + dicA.Add(sKeyA, stXSSX); + } + else + { + string sXSSX = dicA[sKeyA]; + dicA[sKeyA] = sXSSX + "," + stXSSX; + } + } + if (dicA.Count > 1) + { + string sXHList = ""; + foreach (string sKeyA in dicA.Keys) + { + sXHList += "[" + dicA[sKeyA] + "] "; + } + lst.Add(sXHList); + } + } + } + string sXSSXList = ""; + if (lst.Count > 0) + { + for (int i = 0; i < lst.Count; i++) + { + if (!sXSSXList.Equals("")) + sXSSXList += "\n\r"; + sXSSXList = sXSSXList + "【 " + lst[i].ToString().Trim() + " 】"; + } + WarningMsg = sXSSXList; + } + } + + + + public static void JudgeDifBJZJE(string sBJDID, ref string WarningMsg) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + TSQL SQL = new TSQL(dberp); + SQL.Clear(); + SQL.Add(" select XLXSBJD_ZJE, "); + SQL.Add(" isnull((select sum(XLXSBJDMX_BJJE) from XLXSBJDMX where XLXSBJDMX_BJDID = XLXSBJD_BJDID),0) as MXZJE "); + SQL.Add(" from XLXSBJD where XLXSBJD_BJDID =:pBJDID "); + SQL.ParamByName("pBJDID").Value = sBJDID; + DataSet ds = dberp.OpenDataSet(SQL); + if (ds.Tables[0].Rows.Count > 0) + { + double BJDZJE = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["XLXSBJD_ZJE"].ToString().Trim()); + double MXZJE = CMISproConvert.StrToFloat(ds.Tables[0].Rows[0]["MXZJE"].ToString().Trim()); + double dCZ = NumberUtils.RoundX(BJDZJE - MXZJE, 2); + if (dCZ != 0) + { + WarningMsg = "当前记录报价总金额和明细总金额不一致,差值为:" + dCZ.ToString().Trim() + "!"; + } + } + } + + + + + private XLBJDMX_BDOBill _XLBJDMX_BDOBill = new XLBJDMX_BDOBill(); + + [Association(Name = "XLXSBJDMX", DeleteOnNull = false, Storage = "_XLBJDMX_BDOBill", OtherKey = "XLXSBJD_BJDID", ThisKey = "XLXSBJDMX_XH")] + public XLBJDMX_BDOBill XLXSBJDMX + { + get { return _XLBJDMX_BDOBill; } + set { _XLBJDMX_BDOBill = value; } + } + + } + + [EntityType(Db = "DBERP", Table = "XLXSBJDMX", IsWf = false, IsWhr = true, WhrPrefix = "XLXSBJDMX", IsAttach = false)] + public class XLBJDMX_BDOBill : EntityObject + { + + private string _BJDID; + [ScriptIgnore] + public string BJDID + { + get { return _BJDID; } + set + { + _BJDID = value; + } + } + + private string _XH; + + [ScriptIgnore] + public string XH + { + get { return _XH; } + set { _XH = value; } + } + + //翻页控件的当前显示页数 + private int _curPageIndex = 0; + public int curPageIndex + { + set + { + _curPageIndex = value; + } + get { return _curPageIndex; } + } + + //翻页控件的每页显示记录数 + private int _curPageSize = 0; + public int curPageSize + { + set + { + _curPageSize = value; + } + get { return _curPageSize; } + } + + //产品重复标准 + private string _sCPCFXLBZ = ""; + public string sCPCFXLBZ + { + set + { + _sCPCFXLBZ = value; + } + get { return _sCPCFXLBZ; } + } + + + private string _sXSSXFilter = ""; + public string sXSSXFilter + { + set + { + _sXSSXFilter = value; + } + get { return _sXSSXFilter; } + } + + private string _sXLXHIDFilter = ""; + public string sXLXHIDFilter + { + set + { + _sXLXHIDFilter = value; + } + get { return _sXLXHIDFilter; } + } + + private string _sXLGGIDFilter = ""; + public string sXLGGIDFilter + { + set + { + _sXLGGIDFilter = value; + } + get { return _sXLGGIDFilter; } + } + + private string _sXLBZIDFilter = ""; + public string sXLBZIDFilter + { + set + { + _sXLBZIDFilter = value; + } + get { return _sXLBZIDFilter; } + } + + private string _sDYDJIDFilter = ""; + public string sDYDJIDFilter + { + set + { + _sDYDJIDFilter = value; + } + get { return _sDYDJIDFilter; } + } + + private string _sXLYSIDFilter = ""; + public string sXLYSIDFilter + { + set + { + _sXLYSIDFilter = value; + } + get { return _sXLYSIDFilter; } + } + + private string _sBJCPFilter = ""; + public string sBJCPFilter + { + set + { + _sBJCPFilter = value; + } + get { return _sBJCPFilter; } + } + + private string _sJGBBJFilter = ""; + public string sJGBBJFilter + { + set + { + _sJGBBJFilter = value; + } + get { return _sJGBBJFilter; } + } + + private string _sBZBJDIDFilter = ""; + public string sBZBJDIDFilter + { + set + { + _sBZBJDIDFilter = value; + } + get { return _sBZBJDIDFilter; } + } + + private string _sZDXJJCLFilter = ""; + public string sZDXJJCLFilter + { + set + { + _sZDXJJCLFilter = value; + } + get { return _sZDXJJCLFilter; } + } + + private string _sCPMLFilter = ""; + public string sCPMLFilter + { + set + { + _sCPMLFilter = value; + } + get { return _sCPMLFilter; } + } + + private string _sZHCPMLFilter = ""; + public string sZHCPMLFilter + { + set + { + _sZHCPMLFilter = value; + } + get { return _sZHCPMLFilter; } + } + + private string _sXSYZJEFilter = ""; + public string sXSYZJEFilter + { + set + { + _sXSYZJEFilter = value; + } + get { return _sXSYZJEFilter; } + } + + private string _sBZFilter = ""; + public string sBZFilter + { + set + { + _sBZFilter = value; + } + get { return _sBZFilter; } + } + + public string sBJU002 = "5"; + + + + [DataMember(DbField = "XLXSBJDMX_BJDID", DbTitle = "报价单号", IsKey = true, DbType = TGtdbType.VarChar, + Len = 20, IsNullable = false, DefValue = "", CtlName = "txtXLXSBJDMX_BJDID", + CtlType = FieldType.C)] + public string XLXSBJDMX_BJDID + { + get { return GetField("XLXSBJDMX_BJDID").ToString().Trim(); } + set { SetField("XLXSBJDMX_BJDID", value); } + } + + [DataMember(DbField = "XLXSBJDMX_XH", DbTitle = "序号", IsKey = true, DbType = TGtdbType.Float, + Len = 8, IsNullable = false, DefValue = "0", CtlName = "txtXLXSBJDMX_XH", + CtlType = FieldType.F)] + public string XLXSBJDMX_XH + { + get { return GetField("XLXSBJDMX_XH").ToString().Trim(); } + set { SetField("XLXSBJDMX_XH", value); } + } + + [DataMember(DbField = "OLD_XLXSBJDMX_XH", DbTitle = "原序号", IsKey = false, DbType = TGtdbType.Float, + Len = 8, IsNullable = true, DefValue = "0", CtlName = "txtOLD_XH", PrintVisible = false, + CtlType = FieldType.F)] + public string OLD_XLXSBJDMX_XH + { + get { return GetField("OLD_XLXSBJDMX_XH").ToString().Trim(); } + set { SetField("OLD_XLXSBJDMX_XH", value); } + } + + [DataMember(DbField = "XLXSBJDMX_XSSX", DbTitle = "显示序号", IsKey = false, DbType = TGtdbType.Float, + Len = 8, IsNullable = false, DefValue = "0", CtlName = "txtXLXSBJDMX_XSSX", + CtlType = FieldType.F)] + public string XLXSBJDMX_XSSX + { + get { return GetField("XLXSBJDMX_XSSX").ToString().Trim(); } + set { SetField("XLXSBJDMX_XSSX", value); } + } + + [DataMember(DbField = "XLXSBJDMX_XLXHID", DbTitle = "型号", IsKey = false, DbType = TGtdbType.VarChar, + Len = 40, IsNullable = true, DefValue = "", CtlName = "txtXLXSBJDMX_XLXHID", + CtlType = FieldType.C)] + public string XLXSBJDMX_XLXHID + { + get { return GetField("XLXSBJDMX_XLXHID").ToString().Trim(); } + set { SetField("XLXSBJDMX_XLXHID", value); } + } + + [DataMember(DbField = "XLXSBJDMX_XLGGID", DbTitle = "规格", IsKey = false, DbType = TGtdbType.VarChar, + Len = 60, IsNullable = true, DefValue = "", CtlName = "txtXLXSBJDMX_XLGGID", + CtlType = FieldType.C)] + public string XLXSBJDMX_XLGGID + { + get { return GetField("XLXSBJDMX_XLGGID").ToString().Trim(); } + set { SetField("XLXSBJDMX_XLGGID", value); } + } + + [DataMember(DbField = "XLXSBJDMX_XLBZID", DbTitle = "标准", IsKey = false, DbType = TGtdbType.VarChar, + Len = 10, IsNullable = true, DefValue = "", CtlName = "cbxXLXSBJDMX_XLBZID", + CtlType = FieldType.CBX)] + public string XLXSBJDMX_XLBZID + { + get { return GetField("XLXSBJDMX_XLBZID").ToString().Trim(); } + set { SetField("XLXSBJDMX_XLBZID", value); } + } + + [DataMember(DbField = "XLBZ_XLBZMS", DbTitle = "线缆标准描述", IsKey = false, DbType = TGtdbType.VarChar, + Len = 250, IsNullable = true, DefValue = "", CtlName = "cbxXLBZ_XLBZMS", + CtlType = FieldType.CBX)] + public string XLBZ_XLBZMS + { + get { return GetField("XLBZ_XLBZMS").ToString().Trim(); } + set { SetField("XLBZ_XLBZMS", value); } + } + + [DataMember(DbField = "XLXSBJDMX_DYDJID", DbTitle = "电压等级", IsKey = false, DbType = TGtdbType.VarChar, + Len = 20, IsNullable = true, DefValue = "", CtlName = "txtXLXSBJDMX_DYDJID", + CtlType = FieldType.C)] + public string XLXSBJDMX_DYDJID + { + get { return GetField("XLXSBJDMX_DYDJID").ToString().Trim(); } + set { SetField("XLXSBJDMX_DYDJID", value); } + } + [DataMember(DbField = "XLXSBJDMX_XLYSID", DbTitle = "颜色", IsKey = false, DbType = TGtdbType.VarChar, + Len = 50, IsNullable = true, DefValue = "", CtlName = "cbxXLXSBJDMX_XLYSID", + CtlType = FieldType.C)] + public string XLXSBJDMX_XLYSID + { + get { return GetField("XLXSBJDMX_XLYSID").ToString().Trim(); } + set { SetField("XLXSBJDMX_XLYSID", value); } + } + + [DataMember(DbField = "XLXSBJDMX_WLID", DbTitle = "物料ID", IsKey = false, DbType = TGtdbType.VarChar, + Len = 20, IsNullable = true, DefValue = "", CtlName = "txtXLXSBJDMX_WLID", + CtlType = FieldType.C)] + public string XLXSBJDMX_WLID + { + get { return GetField("XLXSBJDMX_WLID").ToString().Trim(); } + set { SetField("XLXSBJDMX_WLID", value); } + } + + [DataMember(DbField = "XLXSBJDMX_ZHCPMLMC", DbTitle = "组合产品目录名称", IsKey = false, DbType = TGtdbType.VarChar, + Len = 100, IsNullable = true, DefValue = "", CtlName = "txtXLXSBJDMX_ZHCPMLMC", + CtlType = FieldType.CBX)] + public string XLXSBJDMX_ZHCPMLMC + { + get { return GetField("XLXSBJDMX_ZHCPMLMC").ToString().Trim(); } + set { SetField("XLXSBJDMX_ZHCPMLMC", value); } + } + + [DataMember(DbField = "XLXSBJDMX_CPMLMC", DbTitle = "产品目录名称", IsKey = false, DbType = TGtdbType.VarChar, + Len = 100, IsNullable = true, DefValue = "", CtlName = "txtXLXSBJDMX_CPMLMC", + CtlType = FieldType.CBX)] + public string XLXSBJDMX_CPMLMC + { + get { return GetField("XLXSBJDMX_CPMLMC").ToString().Trim(); } + set { SetField("XLXSBJDMX_CPMLMC", value); } + } + + + [DataMember(DbField = "XLXSBJDMX_BJCP", DbTitle = "报价产品", IsKey = false, DbType = TGtdbType.VarChar, + Len = 250, IsNullable = true, DefValue = "", CtlName = "txtXLXSBJDMX_BJCP", + CtlType = FieldType.C)] + public string XLXSBJDMX_BJCP + { + get { return GetField("XLXSBJDMX_BJCP").ToString().Trim(); } + set { SetField("XLXSBJDMX_BJCP", value); } + } + + [DataMember(DbField = "XLXSBJDMX_GYKH", DbTitle = "工艺卡号", IsKey = false, DbType = TGtdbType.VarChar, + Len = 50, IsNullable = true, DefValue = "", CtlName = "txtXLXSBJDMX_GYKH", + CtlType = FieldType.C)] + public string XLXSBJDMX_GYKH + { + get { return GetField("XLXSBJDMX_GYKH").ToString().Trim(); } + set { SetField("XLXSBJDMX_GYKH", value); } + } + + [DataMember(DbField = "XLXSBJDMX_PWQDID", DbTitle = "配网清单ID", IsKey = false, DbType = TGtdbType.VarChar, + Len = 50, IsNullable = true, DefValue = "", CtlName = "txtXLXSBJDMX_PWQDID", + CtlType = FieldType.C)] + public string XLXSBJDMX_PWQDID + { + get { return GetField("XLXSBJDMX_PWQDID").ToString().Trim(); } + set { SetField("XLXSBJDMX_PWQDID", value); } + } + + [DataMember(DbField = "XLXSBJDMX_PWQDWLMC", DbTitle = "物料名称", IsKey = false, DbType = TGtdbType.VarChar, + Len = 250, IsNullable = true, DefValue = "", CtlName = "txtXLXSBJDMX_PWQDWLMC", + CtlType = FieldType.C)] + public string XLXSBJDMX_PWQDWLMC + { + get { return GetField("XLXSBJDMX_PWQDWLMC").ToString().Trim(); } + set { SetField("XLXSBJDMX_PWQDWLMC", value); } + } + + [DataMember(DbField = "XLXSBJDMX_PWQDMS", DbTitle = "描述", IsKey = false, DbType = TGtdbType.VarChar, + Len = 250, IsNullable = true, DefValue = "", CtlName = "txtXLXSBJDMX_PWQDMS", + CtlType = FieldType.C)] + public string XLXSBJDMX_PWQDMS + { + get { return GetField("XLXSBJDMX_PWQDMS").ToString().Trim(); } + set { SetField("XLXSBJDMX_PWQDMS", value); } + } + + + /// + /// XLXSBJXHML对应产品目录 + /// + [DataMember(DbField = "HasCPMLID", DbTitle = "产品目录", IsKey = false, DbType = TGtdbType.VarChar, + Len = 250, IsNullable = true, DefValue = "", CtlName = "txtCPML", + CtlType = FieldType.C)] + public string HasCPMLID + { + get { return GetField("HasCPMLID").ToString().Trim(); } + set { SetField("HasCPMLID", value); } + } + + /// + /// ////// + /// + [DataMember(DbField = "XLWLXX", DbTitle = "报价产品", IsKey = false, DbType = TGtdbType.VarChar, + Len = 250, IsNullable = true, DefValue = "", CtlName = "txtXLWLXX", + CtlType = FieldType.C)] + public string XLWLXX + { + get { return GetField("XLWLXX").ToString().Trim(); } + set { SetField("XLWLXX", value); } + } + + [DataMember(DbField = "XLXSBJDMX_WGCPBZ", DbTitle = "外购产品", IsKey = false, DbType = TGtdbType.VarChar, + Len = 1, IsNullable = true, DefValue = "N", CtlName = "txtXLXSBJDMX_WGCPBZ", + CtlType = FieldType.Y)] + public string XLXSBJDMX_WGCPBZ + { + get { return GetField("XLXSBJDMX_WGCPBZ").ToString().Trim(); } + set { SetField("XLXSBJDMX_WGCPBZ", value); } + } + + [DataMember(DbField = "XLXSBJDMX_JLDW", DbTitle = "计量单位", IsKey = false, DbType = TGtdbType.VarChar, + Len = 8, IsNullable = true, DefValue = "", CtlName = "cbxXLXSBJDMX_JLDW", + CtlType = FieldType.CBX)] + public string XLXSBJDMX_JLDW + { + get { return GetField("XLXSBJDMX_JLDW").ToString().Trim(); } + set { SetField("XLXSBJDMX_JLDW", value); } + } + + [DataMember(DbField = "XLXSBJDMX_BJSL", DbTitle = "报价数量", IsKey = false, DbType = TGtdbType.Float, + Len = 8, IsNullable = true, DefValue = "0", CtlName = "txtXLXSBJDMX_BJSL", + CtlType = FieldType.F)] + public string XLXSBJDMX_BJSL + { + get { return GetField("XLXSBJDMX_BJSL").ToString().Trim(); } + set { SetField("XLXSBJDMX_BJSL", value); } + } + + [DataMember(DbField = "XLXSBJDMX_BJDHQCLCB", DbTitle = "报价单行情材料成本", IsKey = false, DbType = TGtdbType.Float, + Len = 8, IsNullable = true, DefValue = "0", CtlName = "txtXLXSBJDMX_BJDHQCLCB", + CtlType = FieldType.F)] + public string XLXSBJDMX_BJDHQCLCB + { + get { return GetField("XLXSBJDMX_BJDHQCLCB").ToString().Trim(); } + set { SetField("XLXSBJDMX_BJDHQCLCB", value); } + } + + [DataMember(DbField = "XLXSBJDMX_CLCB", DbTitle = "价格表行情材料成本", IsKey = false, DbType = TGtdbType.Float, + Len = 8, IsNullable = true, DefValue = "0", CtlName = "txtXLXSBJDMX_CLCB", + CtlType = FieldType.F)] + public string XLXSBJDMX_CLCB + { + get { return GetField("XLXSBJDMX_CLCB").ToString().Trim(); } + set { SetField("XLXSBJDMX_CLCB", value); } + } + + [DataMember(DbField = "XLXSBJDMX_JGBJJ", DbTitle = "基价", IsKey = false, DbType = TGtdbType.Float, + Len = 8, IsNullable = true, DefValue = "0", CtlName = "txtXLXSBJDMX_JGBJJ", + CtlType = FieldType.F)] + public string XLXSBJDMX_JGBJJ + { + get { return GetField("XLXSBJDMX_JGBJJ").ToString().Trim(); } + set { SetField("XLXSBJDMX_JGBJJ", value); } + } + + //含税基准报价 + [DataMember(DbField = "XLXSBJDMX_JGBBJ", DbTitle = "表价", IsKey = false, DbType = TGtdbType.Float, + Len = 8, IsNullable = true, DefValue = "0", CtlName = "txtXLXSBJDMX_JGBBJ", + CtlType = FieldType.F)] + public string XLXSBJDMX_JGBBJ + { + get { return GetField("XLXSBJDMX_JGBBJ").ToString().Trim(); } + set { SetField("XLXSBJDMX_JGBBJ", value); } + } + + //表价变更时间 + [DataMember(DbField = "XLXSBJDMX_JGBBJGXSJ", DbTitle = "表价变更时间", IsKey = false, DbType = TGtdbType.DateTime, + Len = 22, IsNullable = true, DefValue = "", CtlName = "datXLXSBJDMX_JGBBJGXSJ", + CtlType = FieldType.DT)] + public string XLXSBJDMX_JGBBJGXSJ + { + get { return GetField("XLXSBJDMX_JGBBJGXSJ").ToString().Trim(); } + set { SetField("XLXSBJDMX_JGBBJGXSJ", value); } + } + + + [DataMember(DbField = "XLXSBJDMX_LSJGBBJ", DbTitle = "l临时表价", IsKey = false, DbType = TGtdbType.Float, + Len = 8, IsNullable = true, DefValue = "0", CtlName = "txtXLXSBJDMX_LSJGBBJ", + CtlType = FieldType.F)] + public string XLXSBJDMX_LSJGBBJ + { + get { return GetField("XLXSBJDMX_LSJGBBJ").ToString().Trim(); } + set { SetField("XLXSBJDMX_LSJGBBJ", value); } + } + + + //截面比公式 + [DataMember(DbField = "XLXSBJDMX_JMBGS", DbTitle = "截面比公式", IsKey = false, DbType = TGtdbType.VarChar, + Len = 60, IsNullable = true, DefValue = "", CtlName = "txtXLXSBJDMX_JMBGS", + CtlType = FieldType.C)] + public string XLXSBJDMX_JMBGS + { + get { return GetField("XLXSBJDMX_JMBGS").ToString().Trim(); } + set { SetField("XLXSBJDMX_JMBGS", value); } + } + + /***************************************/ + //因子 + [DataMember(DbField = "TZYZ_BJ01", DbTitle = "TZYZ_BJ01", IsKey = false, DbType = TGtdbType.Float, + Len = 8, IsNullable = true, DefValue = "0", CtlName = "txtTZYZ_BJ01", + CtlType = FieldType.F)] + public string TZYZ_BJ01 + { + get { return GetField("TZYZ_BJ01").ToString().Trim(); } + set { SetField("TZYZ_BJ01", value); } + } + + [DataMember(DbField = "TZYZ_BJ02", DbTitle = "TZYZ_BJ02", IsKey = false, DbType = TGtdbType.Float, + Len = 8, IsNullable = true, DefValue = "0", CtlName = "txtTZYZ_BJ02", + CtlType = FieldType.F)] + public string TZYZ_BJ02 + { + get { return GetField("TZYZ_BJ02").ToString().Trim(); } + set { SetField("TZYZ_BJ02", value); } + } + + [DataMember(DbField = "TZYZ_BJ03", DbTitle = "TZYZ_BJ03", IsKey = false, DbType = TGtdbType.Float, + Len = 8, IsNullable = true, DefValue = "0", CtlName = "txtTZYZ_BJ03", + CtlType = FieldType.F)] + public string TZYZ_BJ03 + { + get { return GetField("TZYZ_BJ03").ToString().Trim(); } + set { SetField("TZYZ_BJ03", value); } + } + + [DataMember(DbField = "TZYZ_BJ04", DbTitle = "TZYZ_BJ04", IsKey = false, DbType = TGtdbType.Float, + Len = 8, IsNullable = true, DefValue = "0", CtlName = "txtTZYZ_BJ04", + CtlType = FieldType.F)] + public string TZYZ_BJ04 + { + get { return GetField("TZYZ_BJ04").ToString().Trim(); } + set { SetField("TZYZ_BJ04", value); } + } + + [DataMember(DbField = "TZYZ_BJ05", DbTitle = "TZYZ_BJ05", IsKey = false, DbType = TGtdbType.Float, + Len = 8, IsNullable = true, DefValue = "0", CtlName = "txtTZYZ_BJ05", + CtlType = FieldType.F)] + public string TZYZ_BJ05 + { + get { return GetField("TZYZ_BJ05").ToString().Trim(); } + set { SetField("TZYZ_BJ05", value); } + } + + [DataMember(DbField = "TZYZ_BJ06", DbTitle = "TZYZ_BJ06", IsKey = false, DbType = TGtdbType.Float, + Len = 8, IsNullable = true, DefValue = "0", CtlName = "txtTZYZ_BJ06", + CtlType = FieldType.F)] + public string TZYZ_BJ06 + { + get { return GetField("TZYZ_BJ06").ToString().Trim(); } + set { SetField("TZYZ_BJ06", value); } + } + + [DataMember(DbField = "TZYZ_BJ07", DbTitle = "TZYZ_BJ07", IsKey = false, DbType = TGtdbType.Float, + Len = 8, IsNullable = true, DefValue = "0", CtlName = "txtTZYZ_BJ07", + CtlType = FieldType.F)] + public string TZYZ_BJ07 + { + get { return GetField("TZYZ_BJ07").ToString().Trim(); } + set { SetField("TZYZ_BJ07", value); } + } + + [DataMember(DbField = "TZYZ_BJ08", DbTitle = "TZYZ_BJ08", IsKey = false, DbType = TGtdbType.Float, + Len = 8, IsNullable = true, DefValue = "0", CtlName = "txtTZYZ_BJ08", + CtlType = FieldType.F)] + public string TZYZ_BJ08 + { + get { return GetField("TZYZ_BJ08").ToString().Trim(); } + set { SetField("TZYZ_BJ08", value); } + } + + [DataMember(DbField = "TZYZ_BJ09", DbTitle = "TZYZ_BJ09", IsKey = false, DbType = TGtdbType.Float, + Len = 8, IsNullable = true, DefValue = "0", CtlName = "txtTZYZ_BJ09", + CtlType = FieldType.F)] + public string TZYZ_BJ09 + { + get { return GetField("TZYZ_BJ09").ToString().Trim(); } + set { SetField("TZYZ_BJ09", value); } + } + + [DataMember(DbField = "TZYZ_BJ10", DbTitle = "TZYZ_BJ10", IsKey = false, DbType = TGtdbType.Float, + Len = 8, IsNullable = true, DefValue = "0", CtlName = "txtTZYZ_BJ10", + CtlType = FieldType.F)] + public string TZYZ_BJ10 + { + get { return GetField("TZYZ_BJ10").ToString().Trim(); } + set { SetField("TZYZ_BJ10", value); } + } + + [DataMember(DbField = "TZYZ_BJ11", DbTitle = "TZYZ_BJ11", IsKey = false, DbType = TGtdbType.Float, + Len = 8, IsNullable = true, DefValue = "0", CtlName = "txtTZYZ_BJ11", + CtlType = FieldType.F)] + public string TZYZ_BJ11 + { + get { return GetField("TZYZ_BJ11").ToString().Trim(); } + set { SetField("TZYZ_BJ11", value); } + } + + [DataMember(DbField = "TZYZ_BJ12", DbTitle = "TZYZ_BJ12", IsKey = false, DbType = TGtdbType.Float, + Len = 8, IsNullable = true, DefValue = "0", CtlName = "txtTZYZ_BJ12", + CtlType = FieldType.F)] + public string TZYZ_BJ12 + { + get { return GetField("TZYZ_BJ12").ToString().Trim(); } + set { SetField("TZYZ_BJ12", value); } + } + + [DataMember(DbField = "TZYZ_BJ13", DbTitle = "TZYZ_BJ13", IsKey = false, DbType = TGtdbType.Float, + Len = 8, IsNullable = true, DefValue = "0", CtlName = "txtTZYZ_BJ13", + CtlType = FieldType.F)] + public string TZYZ_BJ13 + { + get { return GetField("TZYZ_BJ13").ToString().Trim(); } + set { SetField("TZYZ_BJ13", value); } + } + + [DataMember(DbField = "TZYZ_BJ14", DbTitle = "TZYZ_BJ14", IsKey = false, DbType = TGtdbType.Float, + Len = 8, IsNullable = true, DefValue = "0", CtlName = "txtTZYZ_BJ14", + CtlType = FieldType.F)] + public string TZYZ_BJ14 + { + get { return GetField("TZYZ_BJ14").ToString().Trim(); } + set { SetField("TZYZ_BJ14", value); } + } + + [DataMember(DbField = "TZYZ_BJ15", DbTitle = "TZYZ_BJ15", IsKey = false, DbType = TGtdbType.Float, + Len = 8, IsNullable = true, DefValue = "0", CtlName = "txtTZYZ_BJ15", + CtlType = FieldType.F)] + public string TZYZ_BJ15 + { + get { return GetField("TZYZ_BJ15").ToString().Trim(); } + set { SetField("TZYZ_BJ15", value); } + } + + [DataMember(DbField = "TZYZ_BJ16", DbTitle = "TZYZ_BJ16", IsKey = false, DbType = TGtdbType.Float, + Len = 8, IsNullable = true, DefValue = "0", CtlName = "txtTZYZ_BJ16", + CtlType = FieldType.F)] + public string TZYZ_BJ16 + { + get { return GetField("TZYZ_BJ16").ToString().Trim(); } + set { SetField("TZYZ_BJ16", value); } + } + + [DataMember(DbField = "TZYZ_BJ17", DbTitle = "TZYZ_BJ17", IsKey = false, DbType = TGtdbType.Float, + Len = 8, IsNullable = true, DefValue = "0", CtlName = "txtTZYZ_BJ17", + CtlType = FieldType.F)] + public string TZYZ_BJ17 + { + get { return GetField("TZYZ_BJ17").ToString().Trim(); } + set { SetField("TZYZ_BJ17", value); } + } + + [DataMember(DbField = "TZYZ_BJ18", DbTitle = "TZYZ_BJ18", IsKey = false, DbType = TGtdbType.Float, + Len = 8, IsNullable = true, DefValue = "0", CtlName = "txtTZYZ_BJ18", + CtlType = FieldType.F)] + public string TZYZ_BJ18 + { + get { return GetField("TZYZ_BJ18").ToString().Trim(); } + set { SetField("TZYZ_BJ18", value); } + } + + [DataMember(DbField = "TZYZ_BJ19", DbTitle = "TZYZ_BJ19", IsKey = false, DbType = TGtdbType.Float, + Len = 8, IsNullable = true, DefValue = "0", CtlName = "txtTZYZ_BJ19", + CtlType = FieldType.F)] + public string TZYZ_BJ19 + { + get { return GetField("TZYZ_BJ19").ToString().Trim(); } + set { SetField("TZYZ_BJ19", value); } + } + + [DataMember(DbField = "TZYZ_BJ20", DbTitle = "TZYZ_BJ20", IsKey = false, DbType = TGtdbType.Float, + Len = 8, IsNullable = true, DefValue = "0", CtlName = "txtTZYZ_BJ20", + CtlType = FieldType.F)] + public string TZYZ_BJ20 + { + get { return GetField("TZYZ_BJ20").ToString().Trim(); } + set { SetField("TZYZ_BJ20", value); } + } + + + + + /***************************************/ + + + [DataMember(DbField = "XLXSBJDMX_TZQCPBJ", DbTitle = "调整前报价", IsKey = false, DbType = TGtdbType.Float, + Len = 8, IsNullable = true, DefValue = "0", CtlName = "txtXLXSBJDMX_TZQCPBJ", + CtlType = FieldType.F)] + public string XLXSBJDMX_TZQCPBJ + { + get { return GetField("XLXSBJDMX_TZQCPBJ").ToString().Trim(); } + set { SetField("XLXSBJDMX_TZQCPBJ", value); } + } + + [DataMember(DbField = "XLXSBJDMX_TZCPBJ", DbTitle = "调整报价(%)", IsKey = false, DbType = TGtdbType.Float, + Len = 8, IsNullable = true, DefValue = "0", CtlName = "txtXLXSBJDMX_TZCPBJ", + CtlType = FieldType.F)] + public string XLXSBJDMX_TZCPBJ + { + get { return GetField("XLXSBJDMX_TZCPBJ").ToString().Trim(); } + set { SetField("XLXSBJDMX_TZCPBJ", value); } + } + + //线缆产品报价 + [DataMember(DbField = "XLXSBJDMX_CPBJ", DbTitle = "报价", IsKey = false, DbType = TGtdbType.Float, + Len = 8, IsNullable = true, DefValue = "0", CtlName = "txtXLXSBJDMX_CPBJ", + CtlType = FieldType.F)] + public string XLXSBJDMX_CPBJ + { + get { return GetField("XLXSBJDMX_CPBJ").ToString().Trim(); } + set { SetField("XLXSBJDMX_CPBJ", value); } + } + + + [DataMember(DbField = "XLXSBJDMX_TZQBJJE", DbTitle = "报价金额", IsKey = false, DbType = TGtdbType.Float, + Len = 8, IsNullable = true, DefValue = "0", CtlName = "txtXLXSBJDMX_TZQBJJE", + CtlType = FieldType.F)] + public string XLXSBJDMX_TZQBJJE + { + get { return GetField("XLXSBJDMX_TZQBJJE").ToString().Trim(); } + set { SetField("XLXSBJDMX_TZQBJJE", value); } + } + + [DataMember(DbField = "XLXSBJDMX_TZBJJE", DbTitle = "调整金额", IsKey = false, DbType = TGtdbType.Float, + Len = 8, IsNullable = true, DefValue = "0", CtlName = "txtXLXSBJDMX_TZBJJE", + CtlType = FieldType.F)] + public string XLXSBJDMX_TZBJJE + { + get { return GetField("XLXSBJDMX_TZBJJE").ToString().Trim(); } + set { SetField("XLXSBJDMX_TZBJJE", value); } + } + + [DataMember(DbField = "XLXSBJDMX_BJJE", DbTitle = "调整后报价金额", IsKey = false, DbType = TGtdbType.Float, + Len = 8, IsNullable = true, DefValue = "0", CtlName = "txtXLXSBJDMX_BJJE", + CtlType = FieldType.F)] + public string XLXSBJDMX_BJJE + { + get { return GetField("XLXSBJDMX_BJJE").ToString().Trim(); } + set { SetField("XLXSBJDMX_BJJE", value); } + } + + [DataMember(DbField = "XLXSBJDMX_PJJE", DbTitle = "盘具金额", IsKey = false, DbType = TGtdbType.Float, + Len = 8, IsNullable = true, DefValue = "0", CtlName = "txtXLXSBJDMX_PJJE", + CtlType = FieldType.F)] + public string XLXSBJDMX_PJJE + { + get { return GetField("XLXSBJDMX_PJJE").ToString().Trim(); } + set { SetField("XLXSBJDMX_PJJE", value); } + } + + /// + /// ////// + /// + [DataMember(DbField = "TZHDJ", DbTitle = "调整后单价", IsKey = false, DbType = TGtdbType.Float, + Len = 8, IsNullable = true, DefValue = "0", CtlName = "txtTZHDJ", + CtlType = FieldType.F)] + public string TZHDJ + { + get { return GetField("TZHDJ").ToString().Trim(); } + set { SetField("TZHDJ", value); } + } + + + //意向价 + [DataMember(DbField = "XLXSBJDMX_YXJG", DbTitle = "意向价", IsKey = false, DbType = TGtdbType.Float, + Len = 8, IsNullable = true, DefValue = "0", CtlName = "txtXLXSBJDMX_YXJG", + CtlType = FieldType.F)] + public string XLXSBJDMX_YXJG + { + get { return GetField("XLXSBJDMX_YXJG").ToString().Trim(); } + set { SetField("XLXSBJDMX_YXJG", value); } + } + + //定制生产 + [DataMember(DbField = "XLXSBJDMX_DZSC", DbTitle = "定制生产", IsKey = false, DbType = TGtdbType.VarChar, + Len = 1, IsNullable = true, DefValue = "N", CtlName = "txtXLXSBJDMX_DZSC", + CtlType = FieldType.C)] + public string XLXSBJDMX_DZSC + { + get { return GetField("XLXSBJDMX_DZSC").ToString().Trim(); } + set { SetField("XLXSBJDMX_DZSC", value); } + } + + [DataMember(DbField = "XLXSBJDMX_CLZL", DbTitle = "材料重量", IsKey = false, DbType = TGtdbType.Float, + Len = 0, IsNullable = true, DefValue = "0", CtlName = "txtXLXSBJDMX_CLZL", + CtlType = FieldType.F)] + public string XLXSBJDMX_CLZL + { + get { return GetField("XLXSBJDMX_CLZL").ToString().Trim(); } + set { SetField("XLXSBJDMX_CLZL", value); } + } + + [DataMember(DbField = "XLXSBJDMX_YXJJCL", DbTitle = "意向价价差率(%)", IsKey = false, DbType = TGtdbType.Float, + Len = 8, IsNullable = true, DefValue = "0", CtlName = "txtXLXSBJDMX_YXJJCL", + CtlType = FieldType.F)] + public string XLXSBJDMX_YXJJCL + { + get { return GetField("XLXSBJDMX_YXJJCL").ToString().Trim(); } + set { SetField("XLXSBJDMX_YXJJCL", value); } + } + + [DataMember(DbField = "XLXSBJDMX_CLCBJCL", DbTitle = "料价价差率(%)", IsKey = false, DbType = TGtdbType.Float, + Len = 8, IsNullable = true, DefValue = "0", CtlName = "txtXLXSBJDMX_CLCBJCL", + CtlType = FieldType.F)] + public string XLXSBJDMX_CLCBJCL + { + get { return GetField("XLXSBJDMX_CLCBJCL").ToString().Trim(); } + set { SetField("XLXSBJDMX_CLCBJCL", value); } + } + + [DataMember(DbField = "XLXSBJDMX_JGBBJJCL", DbTitle = "表价价差率(%)", IsKey = false, DbType = TGtdbType.Float, + Len = 8, IsNullable = true, DefValue = "0", CtlName = "txtXLXSBJDMX_JGBBJJCL", + CtlType = FieldType.F)] + public string XLXSBJDMX_JGBBJJCL + { + get { return GetField("XLXSBJDMX_JGBBJJCL").ToString().Trim(); } + set { SetField("XLXSBJDMX_JGBBJJCL", value); } + } + + [DataMember(DbField = "XLXSBJDMX_JGBBJLJJCL", DbTitle = "价格表表价料价价差率(%)", IsKey = false, DbType = TGtdbType.Float, + Len = 8, IsNullable = true, DefValue = "0", CtlName = "txtXLXSBJDMX_JGBBJLJJCL", + CtlType = FieldType.F)] + public string XLXSBJDMX_JGBBJLJJCL + { + get { return GetField("XLXSBJDMX_JGBBJLJJCL").ToString().Trim(); } + set { SetField("XLXSBJDMX_JGBBJLJJCL", value); } + } + + [DataMember(DbField = "XLXSBJDMX_JGBBJJCE", DbTitle = "利润额", IsKey = false, DbType = TGtdbType.Float, + Len = 8, IsNullable = true, DefValue = "0", CtlName = "txtXLXSBJDMX_JGBBJJCE", + CtlType = FieldType.F)] + public string XLXSBJDMX_JGBBJJCE + { + get { return GetField("XLXSBJDMX_JGBBJJCE").ToString().Trim(); } + set { SetField("XLXSBJDMX_JGBBJJCE", value); } + } + + [DataMember(DbField = "XLXSBJDMX_TZQZDXJ", DbTitle = "调整前最低限价", IsKey = false, DbType = TGtdbType.Float, + Len = 8, IsNullable = true, DefValue = "0", CtlName = "txtXLXSBJDMX_TZQZDXJ", + CtlType = FieldType.F)] + public string XLXSBJDMX_TZQZDXJ + { + get { return GetField("XLXSBJDMX_TZQZDXJ").ToString().Trim(); } + set { SetField("XLXSBJDMX_TZQZDXJ", value); } + } + + [DataMember(DbField = "XLXSBJDMX_TZZDXJ", DbTitle = "调整最低限价(%)", IsKey = false, DbType = TGtdbType.Float, + Len = 8, IsNullable = true, DefValue = "0", CtlName = "txtXLXSBJDMX_TZZDXJ", + CtlType = FieldType.F)] + public string XLXSBJDMX_TZZDXJ + { + get { return GetField("XLXSBJDMX_TZZDXJ").ToString().Trim(); } + set { SetField("XLXSBJDMX_TZZDXJ", value); } + } + + [DataMember(DbField = "XLXSBJDMX_ZDXJ", DbTitle = "最低限价", IsKey = false, DbType = TGtdbType.Float, + Len = 8, IsNullable = true, DefValue = "0", CtlName = "txtXLXSBJDMX_ZDXJ", + CtlType = FieldType.F)] + public string XLXSBJDMX_ZDXJ + { + get { return GetField("XLXSBJDMX_ZDXJ").ToString().Trim(); } + set { SetField("XLXSBJDMX_ZDXJ", value); } + } + + [DataMember(DbField = "XLXSBJDMX_ZDXJJE", DbTitle = "最低限价金额", IsKey = false, DbType = TGtdbType.Float, + Len = 8, IsNullable = true, DefValue = "0", CtlName = "txtXLXSBJDMX_ZDXJJE", + CtlType = FieldType.F)] + public string XLXSBJDMX_ZDXJJE + { + get { return GetField("XLXSBJDMX_ZDXJJE").ToString().Trim(); } + set { SetField("XLXSBJDMX_ZDXJJE", value); } + } + + [DataMember(DbField = "XLXSBJDMX_ZDXJJCL", DbTitle = "最低限价价差率", IsKey = false, DbType = TGtdbType.Float, + Len = 8, IsNullable = true, DefValue = "0", CtlName = "txtXLXSBJDMX_ZDXJJCL", + CtlType = FieldType.F)] + public string XLXSBJDMX_ZDXJJCL + { + get { return GetField("XLXSBJDMX_ZDXJJCL").ToString().Trim(); } + set { SetField("XLXSBJDMX_ZDXJJCL", value); } + } + + [DataMember(DbField = "XLXSBJDMX_JSJG", DbTitle = "结算价", IsKey = false, DbType = TGtdbType.Float, + Len = 8, IsNullable = true, DefValue = "0", CtlName = "txtXLXSBJDMX_JSJG", + CtlType = FieldType.F)] + public string XLXSBJDMX_JSJG + { + get { return GetField("XLXSBJDMX_JSJG").ToString().Trim(); } + set { SetField("XLXSBJDMX_JSJG", value); } + } + + + [DataMember(DbField = "XLXSBJDMX_JSJJE", DbTitle = "结算价金额", IsKey = false, DbType = TGtdbType.Float, + Len = 8, IsNullable = true, DefValue = "0", CtlName = "txtXLXSBJDMX_JSJJE", + CtlType = FieldType.F)] + public string XLXSBJDMX_JSJJE + { + get { return GetField("XLXSBJDMX_JSJJE").ToString().Trim(); } + set { SetField("XLXSBJDMX_JSJJE", value); } + } + + [DataMember(DbField = "XLXSBJDMX_JSJJCL", DbTitle = "结算价价差率", IsKey = false, DbType = TGtdbType.Float, + Len = 8, IsNullable = true, DefValue = "0", CtlName = "txtXLXSBJDMX_JSJJCL", + CtlType = FieldType.F)] + public string XLXSBJDMX_JSJJCL + { + get { return GetField("XLXSBJDMX_JSJJCL").ToString().Trim(); } + set { SetField("XLXSBJDMX_JSJJCL", value); } + } + + + [DataMember(DbField = "XLXSBJDMX_YSCP", DbTitle = "原始产品", IsKey = false, DbType = TGtdbType.VarChar, + Len = 250, IsNullable = true, DefValue = "", CtlName = "txtXLXSBJDMX_YSCP", + CtlType = FieldType.C)] + public string XLXSBJDMX_YSCP + { + get { return GetField("XLXSBJDMX_YSCP").ToString().Trim(); } + set { SetField("XLXSBJDMX_YSCP", value); } + } + + [DataMember(DbField = "XLXSBJDMX_KHWLID", DbTitle = "客户物料编码", IsKey = false, DbType = TGtdbType.VarChar, + Len = 50, IsNullable = true, DefValue = "", CtlName = "txtXLXSBJDMX_KHWLID", + CtlType = FieldType.C)] + public string XLXSBJDMX_KHWLID + { + get { return GetField("XLXSBJDMX_KHWLID").ToString().Trim(); } + set { SetField("XLXSBJDMX_KHWLID", value); } + } + + [DataMember(DbField = "XLXSBJDMX_YZ", DbTitle = "印字", IsKey = false, DbType = TGtdbType.VarChar, + Len = 250, IsNullable = true, DefValue = "", CtlName = "txtXLXSBJDMX_YZ", + CtlType = FieldType.C)] + public string XLXSBJDMX_YZ + { + get { return GetField("XLXSBJDMX_YZ").ToString().Trim(); } + set { SetField("XLXSBJDMX_YZ", value); } + } + + [DataMember(DbField = "XLXSBJDMX_FBH", DbTitle = "包号", IsKey = false, DbType = TGtdbType.VarChar, + Len = 30, IsNullable = true, DefValue = "", CtlName = "txtXLXSBJDMX_FBH", + CtlType = FieldType.C)] + public string XLXSBJDMX_FBH + { + get { return GetField("XLXSBJDMX_FBH").ToString().Trim(); } + set { SetField("XLXSBJDMX_FBH", value); } + } + + [DataMember(DbField = "XLXSBJDMX_CPBJXJ", DbTitle = "产品报价限价", IsKey = false, DbType = TGtdbType.Float, + Len = 8, IsNullable = true, DefValue = "0", CtlName = "txtXLXSBJDMX_CPBJXJ", + CtlType = FieldType.F)] + public string XLXSBJDMX_CPBJXJ + { + get { return GetField("XLXSBJDMX_CPBJXJ").ToString().Trim(); } + set { SetField("XLXSBJDMX_CPBJXJ", value); } + } + + [DataMember(DbField = "XLXSBJDMX_BJXJKD", DbTitle = "报价限价扣点", IsKey = false, DbType = TGtdbType.Float, + Len = 8, IsNullable = true, DefValue = "0", CtlName = "txtXLXSBJDMX_BJXJKD", + CtlType = FieldType.F)] + public string XLXSBJDMX_BJXJKD + { + get { return GetField("XLXSBJDMX_BJXJKD").ToString().Trim(); } + set { SetField("XLXSBJDMX_BJXJKD", value); } + } + + [DataMember(DbField = "XLXSBJDMX_BJXJJJ", DbTitle = "报价限价加价", IsKey = false, DbType = TGtdbType.Float, + Len = 8, IsNullable = true, DefValue = "0", CtlName = "txtXLXSBJDMX_BJXJJJ", + CtlType = FieldType.F)] + public string XLXSBJDMX_BJXJJJ + { + get { return GetField("XLXSBJDMX_BJXJJJ").ToString().Trim(); } + set { SetField("XLXSBJDMX_BJXJJJ", value); } + } + + [DataMember(DbField = "XJBJCE", DbTitle = "限价报价差额", IsKey = false, DbType = TGtdbType.Float, + Len = 8, IsNullable = true, DefValue = "0", CtlName = "txtXJBJCE", + CtlType = FieldType.F)] + public string XJBJCE + { + get { return GetField("XJBJCE").ToString().Trim(); } + set { SetField("XJBJCE", value); } + } + + [DataMember(DbField = "XLXSBJDMX_BJJEXJ", DbTitle = "报价金额限价", IsKey = false, DbType = TGtdbType.Float, + Len = 8, IsNullable = true, DefValue = "0", CtlName = "txtXLXSBJDMX_BJJEXJ", + CtlType = FieldType.F)] + public string XLXSBJDMX_BJJEXJ + { + get { return GetField("XLXSBJDMX_BJJEXJ").ToString().Trim(); } + set { SetField("XLXSBJDMX_BJJEXJ", value); } + } + + [DataMember(DbField = "XLXSBJDMX_BZ", DbTitle = "备注", IsKey = false, DbType = TGtdbType.VarChar, + Len = 250, IsNullable = true, DefValue = "", CtlName = "txtXLXSBJDMX_BZ", + CtlType = FieldType.C)] + public string XLXSBJDMX_BZ + { + get { return GetField("XLXSBJDMX_BZ").ToString().Trim(); } + set { SetField("XLXSBJDMX_BZ", value); } + } + + [DataMember(DbField = "XLXSBJDMX_BJCPSD", DbTitle = "报价锁定", IsKey = false, DbType = TGtdbType.VarChar, + Len = 1, IsNullable = true, DefValue = "N", CtlName = "txtXLXSBJDMX_BJCPSD", + CtlType = FieldType.Y)] + public string XLXSBJDMX_BJCPSD + { + get { return GetField("XLXSBJDMX_BJCPSD").ToString().Trim(); } + set { SetField("XLXSBJDMX_BJCPSD", value); } + } + + [DataMember(DbField = "XLXSBJDMX_BJSDBZ", DbTitle = "报价锁定", IsKey = false, DbType = TGtdbType.VarChar, + Len = 1, IsNullable = true, DefValue = "N", CtlName = "txtXLXSBJDMX_BJSDBZ", + CtlType = FieldType.Y)] + public string XLXSBJDMX_BJSDBZ + { + get { return GetField("XLXSBJDMX_BJSDBZ").ToString().Trim(); } + set { SetField("XLXSBJDMX_BJSDBZ", value); } + } + + + + [DataMember(DbField = "XLXSBJDMX_CLCBJCLSDBZ", DbTitle = "按料价价差率算报价", IsKey = false, DbType = TGtdbType.VarChar, + Len = 1, IsNullable = true, DefValue = "N", CtlName = "txtXLXSBJDMX_CLCBJCLSDBZ", + CtlType = FieldType.Y)] + public string XLXSBJDMX_CLCBJCLSDBZ + { + get { return GetField("XLXSBJDMX_CLCBJCLSDBZ").ToString().Trim(); } + set { SetField("XLXSBJDMX_CLCBJCLSDBZ", value); } + } + + [DataMember(DbField = "WLXX", DbTitle = "物料信息", IsKey = false, DbType = TGtdbType.VarChar, + Len = 120, IsNullable = true, DefValue = "", CtlName = "txtWLXX", + CtlType = FieldType.C)] + public string WLXX + { + get { return GetField("WLXX").ToString().Trim(); } + set { SetField("WLXX", value); } + } + + [DataMember(DbField = "XLXSBJDMX_ZB", DbTitle = "中标", IsKey = false, DbType = TGtdbType.VarChar, + Len = 1, IsNullable = true, DefValue = "", CtlName = "txtXLXSBJDMX_ZB", + CtlType = FieldType.C)] + public string XLXSBJDMX_ZB + { + get { return GetField("XLXSBJDMX_ZB").ToString().Trim(); } + set { SetField("XLXSBJDMX_ZB", value); } + } + + [DataMember(DbField = "XLXSBJDMX_ZBSL", DbTitle = "中标数量", IsKey = false, DbType = TGtdbType.Float, + Len = 8, IsNullable = true, DefValue = "0", CtlName = "txtXLXSBJDMX_ZBSL", + CtlType = FieldType.F)] + public string XLXSBJDMX_ZBSL + { + get { return GetField("XLXSBJDMX_ZBSL").ToString().Trim(); } + set { SetField("XLXSBJDMX_ZBSL", value); } + } + + [DataMember(DbField = "XLXSBJDMX_ZBJE", DbTitle = "中标金额", IsKey = false, DbType = TGtdbType.Float, + Len = 8, IsNullable = true, DefValue = "0", CtlName = "txtXLXSBJDMX_ZBJE", + CtlType = FieldType.F)] + public string XLXSBJDMX_ZBJE + { + get { return GetField("XLXSBJDMX_ZBJE").ToString().Trim(); } + set { SetField("XLXSBJDMX_ZBJE", value); } + } + + + [DataMember(DbField = "XLXSBJDMX_WHRID", DbTitle = "维护人工号", IsKey = false, DbType = TGtdbType.VarChar, + Len = 10, IsNullable = true, DefValue = "", CtlName = "txtXLXSBJDMX_WHRID", + CtlType = FieldType.HiddenField)] + public string XLXSBJDMX_WHRID + { + get { return GetField("XLXSBJDMX_WHRID").ToString().Trim(); } + set { SetField("XLXSBJDMX_WHRID", value); } + } + + [DataMember(DbField = "XLXSBJDMX_WHR", DbTitle = "维护人", IsKey = false, DbType = TGtdbType.VarChar, + Len = 30, IsNullable = true, DefValue = "", CtlName = "txtXLXSBJDMX_WHR", + CtlType = FieldType.C)] + public string XLXSBJDMX_WHR + { + get { return GetField("XLXSBJDMX_WHR").ToString().Trim(); } + set { SetField("XLXSBJDMX_WHR", value); } + } + + [DataMember(DbField = "XLXSBJDMX_WHSJ", DbTitle = "维护时间", IsKey = false, DbType = TGtdbType.DateTime, + Len = 8, IsNullable = true, DefValue = "", CtlName = "datXLXSBJDMX_WHSJ", + CtlType = FieldType.DT)] + public string XLXSBJDMX_WHSJ + { + get { return GetField("XLXSBJDMX_WHSJ").ToString().Trim(); } + set { SetField("XLXSBJDMX_WHSJ", value); } + } + + + [DataMember(DbField = "HasCLQD", DbTitle = "有无清单", IsKey = false, DbType = TGtdbType.VarChar, + Len = 1, IsNullable = true, DefValue = "", CtlName = "txtHasCLQD", + CtlType = FieldType.C)] + public string HasCLQD + { + get { return GetField("HasCLQD").ToString().Trim(); } + set { SetField("HasCLQD", value); } + } + + [DataMember(DbField = "HasYLDZSQ", DbTitle = "有无用量制定申请", IsKey = false, DbType = TGtdbType.VarChar, + Len = 1, IsNullable = true, DefValue = "", CtlName = "txtHasYLDZSQ", + CtlType = FieldType.C)] + public string HasYLDZSQ + { + get { return GetField("HasYLDZSQ").ToString().Trim(); } + set { SetField("HasYLDZSQ", value); } + } + + [DataMember(DbField = "UpdJJYZList", DbTitle = "更新基价因子值", IsKey = false, DbType = TGtdbType.VarChar, + Len = 250, IsNullable = true, DefValue = "", CtlName = "txtUpdJJYZList", + CtlType = FieldType.C)] + public string UpdJJYZList + { + get { return GetField("UpdJJYZList").ToString().Trim(); } + set { SetField("UpdJJYZList", value); } + } + + [DataMember(DbField = "XLXSBJDMX_BJLY", DbTitle = "报价来源", IsKey = false, DbType = TGtdbType.VarChar, + Len = 10, IsNullable = true, DefValue = "", CtlName = "txtBJLY", + CtlType = FieldType.C)] + public string XLXSBJDMX_BJLY + { + get { return GetField("XLXSBJDMX_BJLY").ToString().Trim(); } + set { SetField("XLXSBJDMX_BJLY", value); } + } + + [DataMember(DbField = "XLXSBJDMX_BJTJCZ", DbTitle = "报价调价操作", IsKey = false, DbType = TGtdbType.VarChar, + Len = 10, IsNullable = true, DefValue = "", CtlName = "txtBJTJCZ", + CtlType = FieldType.C)] + public string XLXSBJDMX_BJTJCZ + { + get { return GetField("XLXSBJDMX_BJTJCZ").ToString().Trim(); } + set { SetField("XLXSBJDMX_BJTJCZ", value); } + } + + [DataMember(DbField = "PFYSQKBZ", DbTitle = "盘费要素清空标志", IsKey = false, DbType = TGtdbType.VarChar, + Len = 1, IsNullable = true, DefValue = "", CtlName = "txtPFYSQKBZ", + CtlType = FieldType.C)] + public string PFYSQKBZ + { + get { return GetField("PFYSQKBZ").ToString().Trim(); } + set { SetField("PFYSQKBZ", value); } + } + + [DataMember(DbField = "HasFDJL", DbTitle = "有无分段记录", IsKey = false, DbType = TGtdbType.VarChar, + Len = 1, IsNullable = true, DefValue = "", CtlName = "txtHasFDJL", + CtlType = FieldType.C)] + public string HasFDJL + { + get { return GetField("HasFDJL").ToString().Trim(); } + set { SetField("HasFDJL", value); } + } + + [DataMember(DbField = "XLXSBJDMX_BJDHQCLCBTZ", DbTitle = "报价单行情材料成本调整", IsKey = false, DbType = TGtdbType.VarChar, + Len = 1, IsNullable = true, DefValue = "", CtlName = "txtBJDHQCLCBTZ", + CtlType = FieldType.C)] + public string XLXSBJDMX_BJDHQCLCBTZ + { + get { return GetField("XLXSBJDMX_BJDHQCLCBTZ").ToString().Trim(); } + set { SetField("XLXSBJDMX_BJDHQCLCBTZ", value); } + } + + [DataMember(DbField = "XLXSBJDMX_ZDXJBJDID", DbTitle = "最低限价报价单号", IsKey = false, DbType = TGtdbType.VarChar, + Len = 20, IsNullable = true, DefValue = "", CtlName = "txtXLXSBJDMX_ZDXJBJDID", + CtlType = FieldType.C)] + public string XLXSBJDMX_ZDXJBJDID + { + get { return GetField("XLXSBJDMX_ZDXJBJDID").ToString().Trim(); } + set { SetField("XLXSBJDMX_ZDXJBJDID", value); } + } + + [DataMember(DbField = "XLXSBJDMX_ZDXJBJDXH", DbTitle = "最低限价报价单序号", IsKey = false, DbType = TGtdbType.Float, + Len = 8, IsNullable = true, DefValue = "0", CtlName = "txtXLXSBJDMX_ZDXJBJDXH", + CtlType = FieldType.F)] + public string XLXSBJDMX_ZDXJBJDXH + { + get { return GetField("XLXSBJDMX_ZDXJBJDXH").ToString().Trim(); } + set { SetField("XLXSBJDMX_ZDXJBJDXH", value); } + } + + [DataMember(DbField = "XLXSBJDMX_XDXLBZID", DbTitle = "下单线缆标准", IsKey = false, DbType = TGtdbType.VarChar, + Len = 10, IsNullable = true, DefValue = "", CtlName = "txtXLXSBJDMX_XDXLBZID", + CtlType = FieldType.HiddenField)] + public string XLXSBJDMX_XDXLBZID + { + get { return GetField("XLXSBJDMX_XDXLBZID").ToString().Trim(); } + set { SetField("XLXSBJDMX_XDXLBZID", value); } + } + + [DataMember(DbField = "XLXSBJDMX_XDXLXHID", DbTitle = "下单线缆型号", IsKey = false, DbType = TGtdbType.VarChar, + Len = 40, IsNullable = true, DefValue = "", CtlName = "txtXLXSBJDMX_XDXLXHID", + CtlType = FieldType.HiddenField)] + public string XLXSBJDMX_XDXLXHID + { + get { return GetField("XLXSBJDMX_XDXLXHID").ToString().Trim(); } + set { SetField("XLXSBJDMX_XDXLXHID", value); } + } + + [DataMember(DbField = "XLXSBJDMX_JGBBJTZ", DbTitle = "价格表表价调整", IsKey = false, DbType = TGtdbType.VarChar, + Len = 1, IsNullable = true, DefValue = "N", CtlName = "txtXLXSBJDMX_JGBBJTZ", + CtlType = FieldType.C)] + public string XLXSBJDMX_JGBBJTZ + { + get { return GetField("XLXSBJDMX_JGBBJTZ").ToString().Trim(); } + set { SetField("XLXSBJDMX_JGBBJTZ", value); } + } + + [DataMember(DbField = "XLXSBJDMX_JGFBZ", DbTitle = "JGF标志", IsKey = false, DbType = TGtdbType.VarChar, + Len = 1, IsNullable = true, DefValue = "N", CtlName = "txtXLXSBJDMX_JGFBZ", + CtlType = FieldType.C)] + public string XLXSBJDMX_JGFBZ + { + get { return GetField("XLXSBJDMX_JGFBZ").ToString().Trim(); } + set { SetField("XLXSBJDMX_JGFBZ", value); } + } + + [DataMember(DbField = "BZTXYS", DbTitle = "标准提醒颜色", IsKey = false, DbType = TGtdbType.VarChar, + Len = 10, IsNullable = true, DefValue = "", CtlName = "txtBZTXYS", + CtlType = FieldType.C)] + public string BZTXYS + { + get { return GetField("BZTXYS").ToString().Trim(); } + set { SetField("BZTXYS", value); } + } + + [DataMember(DbField = "YLZDYXTZ", DbTitle = "用量制定明细调整", IsKey = false, DbType = TGtdbType.VarChar, + Len = 1, IsNullable = true, DefValue = "", CtlName = "txtYLZDYXTZ", + CtlType = FieldType.C)] + public string YLZDYXTZ + { + get { return GetField("YLZDYXTZ").ToString().Trim(); } + set { SetField("YLZDYXTZ", value); } + } + + [DataMember(DbField = "TCLYLBL", DbTitle = "铜材料用量比例", IsKey = false, DbType = TGtdbType.Float, + Len = 22, IsNullable = true, DefValue = "0", CtlName = "txtTCLYLBL", + CtlType = FieldType.F)] + public string TCLYLBL + { + get { return GetField("TCLYLBL").ToString().Trim(); } + set { SetField("TCLYLBL", value); } + } + + [DataMember(DbField = "LCLYLBL", DbTitle = "铝材料用量比例", IsKey = false, DbType = TGtdbType.Float, + Len = 22, IsNullable = true, DefValue = "0", CtlName = "txtLCLYLBL", + CtlType = FieldType.F)] + public string LCLYLBL + { + get { return GetField("LCLYLBL").ToString().Trim(); } + set { SetField("LCLYLBL", value); } + } + + [DataMember(DbField = "LHJCLYLBL", DbTitle = "铝合金材料用量比例", IsKey = false, DbType = TGtdbType.Float, + Len = 22, IsNullable = true, DefValue = "0", CtlName = "txtLHJCLYLBL", + CtlType = FieldType.F)] + public string LHJCLYLBL + { + get { return GetField("LHJCLYLBL").ToString().Trim(); } + set { SetField("LHJCLYLBL", value); } + } + + [DataMember(DbField = "XLGGB_XLGGDW", DbTitle = "线缆规格单位", IsKey = false, DbType = TGtdbType.VarChar, + Len = 10, IsNullable = true, DefValue = "", CtlName = "txtXLGGB_XLGGDW", + CtlType = FieldType.C)] + public string XLGGB_XLGGDW + { + get { return GetField("XLGGB_XLGGDW").ToString().Trim(); } + set { SetField("XLGGB_XLGGDW", value); } + } + + + + public override TSQL SetQuerySqlByKey() + { + TSQL SQL = base.SetQuerySqlByKey(); + + return SQL; + } + + public override TSQL SetQuerySql() + { + int iXSWS = string.IsNullOrEmpty(sBJU002) ? 5 : CMISproConvert.StrToInt(sBJU002); + if (iXSWS < 0) + iXSWS = 0; + else if (iXSWS > 8) + iXSWS = 8; + + + TSQL SQL = base.SetQuerySql(); + SQL.Add("select XLXSBJDMX_BJDID,XLXSBJDMX_XH, OLD_XLXSBJDMX_XH,XLXSBJDMX_XSSX, XLXSBJDMX_XLXHID, XLXSBJDMX_XLGGID, "); + SQL.Add(" XLXSBJDMX_XLBZID,XLBZ_XLBZMS,XLXSBJDMX_DYDJID,XLXSBJDMX_XLYSID,XLXSBJDMX_WLID,"); + SQL.Add(" XLXSBJDMX_ZHCPMLMC,XLXSBJDMX_CPMLMC,HasCPMLID,"); + SQL.Add(" XLXSBJDMX_BJCP,XLXSBJDMX_GYKH,XLXSBJDMX_PWQDID,XLXSBJDMX_PWQDWLMC,XLXSBJDMX_PWQDMS,XLWLXX,"); + SQL.Add(" XLXSBJDMX_WGCPBZ,XLXSBJDMX_JLDW,XLXSBJDMX_BJSL,XLXSBJDMX_BJDHQCLCB,XLXSBJDMX_CLCB,XLXSBJDMX_JGBJJ,XLXSBJDMX_JGBBJ,XLXSBJDMX_JGBBJGXSJ,XLXSBJDMX_LSJGBBJ,XLXSBJDMX_JMBGS,"); + SQL.Add(" TZYZ_BJ01,TZYZ_BJ02,TZYZ_BJ03,TZYZ_BJ04,TZYZ_BJ05,"); + SQL.Add(" TZYZ_BJ06,TZYZ_BJ07,TZYZ_BJ08,TZYZ_BJ09,TZYZ_BJ10,"); + SQL.Add(" TZYZ_BJ11,TZYZ_BJ12,TZYZ_BJ13,TZYZ_BJ14,TZYZ_BJ15,"); + SQL.Add(" TZYZ_BJ16,TZYZ_BJ17,TZYZ_BJ18,TZYZ_BJ19,TZYZ_BJ20,"); + if (!sXSYZJEFilter.Trim().Equals(""))//SQL语句自测:刘青棚 2025/03/27 18:00:00 + { + foreach (string sYZID in sXSYZJEFilter.Split(',')) + { + if (XLBJDUtils.GetYZXXByYZID(sYZID.Trim()).XLXSTZYZ_JJFS == "JJ") + { + SQL.Add(" RoundFix(TZYZ_" + sYZID + " * XLXSBJDMX_BJSL,2) as TZYZJE_" + sYZID + ","); + } + else + { + SQL.Add(" RoundFix(XLXSBJDMX_JGBBJ * " + XLBJDUtils.sCJXS + " * TZYZ_" + sYZID + "/100.0 * XLXSBJDMX_BJSL,2) as TZYZJE_" + sYZID + ","); + } + } + } + SQL.Add(" XLXSBJDMX_TZQCPBJ,XLXSBJDMX_TZCPBJ,XLXSBJDMX_CPBJ,XLXSBJDMX_TZQBJJE,XLXSBJDMX_TZBJJE,XLXSBJDMX_BJJE,XLXSBJDMX_PJJE,"); + SQL.Add(" TZHDJ, XLXSBJDMX_YXJG,XLXSBJDMX_CLZL,XLXSBJDMX_YXJJCL,XLXSBJDMX_JGBBJLJJCL,XLXSBJDMX_CLCBJCL,XLXSBJDMX_JGBBJJCL,XLXSBJDMX_JGBBJJCE,"); + SQL.Add(" XLXSBJDMX_TZQZDXJ,XLXSBJDMX_TZZDXJ,XLXSBJDMX_ZDXJ,RoundFix(XLXSBJDMX_ZDXJ*XLXSBJDMX_BJSL,2) as XLXSBJDMX_ZDXJJE,XLXSBJDMX_ZDXJJCL,XLXSBJDMX_JSJG,XLXSBJDMX_JSJJE,XLXSBJDMX_JSJJCL,XLXSBJDMX_YSCP,XLXSBJDMX_KHWLID,XLXSBJDMX_YZ,XLXSBJDMX_FBH,"); + SQL.Add(" XLXSBJDMX_CPBJXJ,XLXSBJDMX_BJXJKD,XLXSBJDMX_BJXJJJ,XJBJCE,XLXSBJDMX_BJJEXJ,XLXSBJDMX_BZ,XLXSBJDMX_BJCPSD,XLXSBJDMX_BJSDBZ,XLXSBJDMX_CLCBJCLSDBZ, "); + SQL.Add(" WLXX,XLXSBJDMX_ZB,XLXSBJDMX_ZBSL,XLXSBJDMX_ZBJE,XLXSBJDMX_WHRID,XLXSBJDMX_WHR,XLXSBJDMX_WHSJ, "); + SQL.Add(" HasCLQD,HasYLDZSQ,UpdJJYZList,XLXSBJDMX_BJLY,XLXSBJDMX_BJTJCZ,'N' as PFYSQKBZ,HasFDJL,XLXSBJDMX_DZSC,XLXSBJDMX_BJDHQCLCBTZ, "); + SQL.Add(" XLXSBJDMX_ZDXJBJDID,XLXSBJDMX_ZDXJBJDXH,XLXSBJDMX_XDXLBZID,XLXSBJDMX_XDXLXHID,XLXSBJDMX_JGBBJTZ,BZTXYS,CPCF,CPSLCF,GGSLCF,XLXSBJDMX_JGFBZ,YLZDYXTZ,TCLYLBL,LCLYLBL,LHJCLYLBL, "); + SQL.Add(" XLGGB_XLGGDW"); + SQL.Add(" from"); + SQL.Add(" ("); + + SQL.Add(" select ROW_NUMBER()over(order by XLXSBJDMX_XSSX,XLXSBJDMX_XH) as RNum,"); + SQL.Add(" XLXSBJDMX_BJDID,XLXSBJDMX_XH, XLXSBJDMX_XH as OLD_XLXSBJDMX_XH,XLXSBJDMX_XSSX, XLXSBJDMX_XLXHID, XLXSBJDMX_XLGGID, "); + SQL.Add(" rtrim(XLXSBJDMX_XLBZID)||'|'||rtrim(XLXSBJDMX_XLBZID)||'|'||rtrim(XLBZ_XLBZLXMC) as XLXSBJDMX_XLBZID,XLBZ_XLBZMS,XLXSBJDMX_DYDJID,"); + SQL.Add(" rtrim(XLXSBJDMX_XLYSID)||'|'||rtrim(XLYSB_XLYSMC) as XLXSBJDMX_XLYSID, "); + if (XLBJDUtils.GetXLXSBJPZXX(100860000).XLXSBJPZ_XSZBXX == "Y") + SQL.Add(" case when isnull(XLXSBJDMX_WLID,' ')=' ' then XLXSBJDFKMX_WLID else XLXSBJDMX_WLID end as XLXSBJDMX_WLID,"); + else + SQL.Add(" XLXSBJDMX_WLID,"); + SQL.Add(" XLXSBJDMX_ZHCPMLMC,XLXSBJDMX_CPMLMC,case "); + SQL.Add(" (case when ISNULL(A.XLXSBJXHML_CPMLID,' ') = ' ' then ISNULL(B.XLXSBJXHML_CPMLID,' ') else ISNULL(A.XLXSBJXHML_CPMLID,' ') end) "); + SQL.Add(" when ' ' then ' ' else "); + SQL.Add(" rtrim(case when ISNULL(A.XLXSBJXHML_CPMLID,' ') = ' ' then ISNULL(B.XLXSBJXHML_CPMLID,' ') else ISNULL(A.XLXSBJXHML_CPMLID,' ') end) || '|'|| rtrim(XLXSCPML_CPMLMC) end as HasCPMLID, "); + SQL.Add(" XLXSBJDMX_BJCP,XLXSBJDMX_GYKH,XLXSBJDMX_PWQDID,XLXSBJDMX_PWQDWLMC,XLXSBJDMX_PWQDMS,' ' as XLWLXX,"); + SQL.Add(" ISNULL(XLXSBJDMX_WGCPBZ,'N') as XLXSBJDMX_WGCPBZ,XLXSBJDMX_JLDW,XLXSBJDMX_BJSL,XLXSBJDMX_BJDHQCLCB,XLXSBJDMX_CLCB,XLXSBJDMX_JGBJJ,XLXSBJDMX_JGBBJ,XLXSBJDMX_JGBBJGXSJ,XLXSBJDMX_LSJGBBJ,XLXSBJDMX_JMBGS,"); + SQL.Add(" XLXSBJDYZZ0_YZZ01 as TZYZ_BJ01,XLXSBJDYZZ0_YZZ02 as TZYZ_BJ02,XLXSBJDYZZ0_YZZ03 as TZYZ_BJ03,XLXSBJDYZZ0_YZZ04 as TZYZ_BJ04,XLXSBJDYZZ0_YZZ05 as TZYZ_BJ05,"); + SQL.Add(" XLXSBJDYZZ0_YZZ06 as TZYZ_BJ06,XLXSBJDYZZ0_YZZ07 as TZYZ_BJ07,XLXSBJDYZZ0_YZZ08 as TZYZ_BJ08,XLXSBJDYZZ0_YZZ09 as TZYZ_BJ09,XLXSBJDYZZ0_YZZ10 as TZYZ_BJ10,"); + SQL.Add(" XLXSBJDYZZ0_YZZ11 as TZYZ_BJ11,XLXSBJDYZZ0_YZZ12 as TZYZ_BJ12,XLXSBJDYZZ0_YZZ13 as TZYZ_BJ13,XLXSBJDYZZ0_YZZ14 as TZYZ_BJ14,XLXSBJDYZZ0_YZZ15 as TZYZ_BJ15,"); + SQL.Add(" XLXSBJDYZZ0_YZZ16 as TZYZ_BJ16,XLXSBJDYZZ0_YZZ17 as TZYZ_BJ17,XLXSBJDYZZ0_YZZ18 as TZYZ_BJ18,XLXSBJDYZZ0_YZZ19 as TZYZ_BJ19,XLXSBJDYZZ0_YZZ20 as TZYZ_BJ20,"); + SQL.Add(" XLXSBJDMX_TZQCPBJ,XLXSBJDMX_TZCPBJ,XLXSBJDMX_CPBJ,XLXSBJDMX_TZQBJJE,XLXSBJDMX_TZBJJE,XLXSBJDMX_BJJE,"); + SQL.Add(string.Format(" case when XLXSBJDMX_BJSL=0 then 0 else RoundFix(XLXSBJDMX_BJJE/XLXSBJDMX_BJSL,{0}) end as TZHDJ, XLXSBJDMX_YXJG,XLXSBJDMX_CLZL,XLXSBJDMX_YXJJCL,XLXSBJDMX_JGBBJLJJCL,XLXSBJDMX_CLCBJCL,XLXSBJDMX_JGBBJJCL,XLXSBJDMX_JGBBJJCE,",iXSWS.ToString())); + SQL.Add(" XLXSBJDMX_TZQZDXJ,XLXSBJDMX_TZZDXJ,XLXSBJDMX_ZDXJ,XLXSBJDMX_ZDXJJCL,XLXSBJDMX_JSJG,XLXSBJDMX_JSJJE,XLXSBJDMX_JSJJCL,XLXSBJDMX_YSCP,XLXSBJDMX_KHWLID,XLXSBJDMX_YZ,XLXSBJDMX_FBH,"); + SQL.Add(" XLXSBJDMX_CPBJXJ,XLXSBJDMX_BJXJKD,XLXSBJDMX_BJXJJJ,RoundFix(XLXSBJDMX_CPBJXJ-XLXSBJDMX_CPBJ,8) as XJBJCE,XLXSBJDMX_BJJEXJ,XLXSBJDMX_BZ,XLXSBJDMX_BJCPSD,XLXSBJDMX_BJSDBZ,XLXSBJDMX_PJJE,XLXSBJDMX_CLCBJCLSDBZ, "); + if (XLBJDUtils.GetXLXSBJPZXX(100860000).XLXSBJPZ_XSZBXX == "Y") + SQL.Add("case when isnull(WL_WLID,' ') <> ' ' then rtrim(rtrim(rtrim(rtrim(isnull(WL_MC,' '))||' '||rtrim(isnull(WL_GG,' ')))||' '||rtrim(isnull(WL_TZ,' ')))||' '||rtrim(isnull(WL_CL,' '))) else ' ' end as WLXX,"); + else + SQL.Add(" ' ' as WLXX,"); + SQL.Add(" XLXSBJDMX_ZB,XLXSBJDMX_ZBSL,XLXSBJDMX_ZBJE,XLXSBJDMX_WHRID,XLXSBJDMX_WHR,XLXSBJDMX_WHSJ, "); + SQL.Add(" case when isnull(XLXSCLQD_WPID,' ')='ZZZZ' then 'Y' else 'N' end as HasCLQD, "); + SQL.Add(" case when ((ISNULL(XLXSBJYLZD_WPID,' ')= '0060' or ISNULL(XLXSBJYLZD_WPID,' ')= 'ZZZZ') and isnull(XLXSBJYLZDMX_BZDBZ,'N') ='Y' and isnull(XLXSBJYLZDMX_BJDXH,0) <> 0) then 'N' "); + SQL.Add(" when (ISNULL(XLXSBJYLZD_WPID,' ')<> ' ' and isnull(XLXSBJYLZDMX_BJDXH,0) <> 0) then 'Y' "); + SQL.Add(" else 'N' end as HasYLDZSQ, "); + SQL.Add(" case when isnull(XLXSJGB_MXBH,' ')='JGB' then ' ' else rtrim(convert(char,XLXSBJDJJYZ_YZZ01))||'|'||rtrim(convert(char,XLXSBJDJJYZ_YZZ02))||'|'||rtrim(convert(char,XLXSBJDJJYZ_YZZ03))"); + SQL.Add(" ||'|'||rtrim(convert(char,XLXSBJDJJYZ_YZZ04))||'|'||rtrim(convert(char,XLXSBJDJJYZ_YZZ05))||'|'||rtrim(convert(char,XLXSBJDJJYZ_YZZ06))"); + SQL.Add(" ||'|'||rtrim(convert(char,XLXSBJDJJYZ_YZZ07))||'|'||rtrim(convert(char,XLXSBJDJJYZ_YZZ08))||'|'||rtrim(convert(char,XLXSBJDJJYZ_YZZ09))"); + SQL.Add(" ||'|'||rtrim(convert(char,XLXSBJDJJYZ_YZZ10))||'|'||rtrim(convert(char,XLXSBJDJJYZ_YSJDZ)) end as UpdJJYZList,XLXSBJDMX_BJLY,XLXSBJDMX_BJTJCZ,case when isnull(XLXSBJDMXFD_BJDID,' ') = ' ' then 'N' else 'Y' end as HasFDJL,"); + SQL.Add(" XLXSBJDMX_DZSC,XLXSBJDMX_BJDHQCLCBTZ,XLXSBJDMX_ZDXJBJDID,XLXSBJDMX_ZDXJBJDXH,XLXSBJDMX_XDXLBZID,XLXSBJDMX_XDXLXHID,XLXSBJDMX_JGBBJTZ,isnull(XLXSBJBZTXS_TXS,' ') as BZTXYS,XLXSBJDMX_JGFBZ, "); + if (!_sBZBJDIDFilter.Equals("")) + { + SQL.Add(" case when isnull(BZCPB.XLXHID,' ') = ' ' then 'N' else 'Y' end as CPCF,case when isnull(BZCPSLB.XLXHID,' ') = ' ' then 'N' else 'Y' end as CPSLCF,case when isnull(BZGGSLB.XLGGID,' ') = ' ' then 'N' else 'Y' end as GGSLCF "); + } + else + { + SQL.Add(" 'N' AS CPCF,'N' AS CPSLCF,'N' AS GGSLCF "); + } + if (XLBJDUtils.GetXLXSBJPZXX(100860064).XLXSBJPZ_YLZDMXTZ == "Y") + { + SQL.Add(", case when ( ISNULL(XLXSBJYLZD_WPID,' ')= '0010' and ( "); + SQL.Add(" (XLXSBJYLZDMX_BJDXLXHID=XLXSBJYLZDMX_XLXHID and XLXSBJYLZDMX_BJDXLGGID=XLXSBJYLZDMX_XLGGID and XLXSBJYLZDMX_BJDXLBZID=XLXSBJYLZDMX_XLBZID and XLXSBJYLZDMX_BJDDYDJID=XLXSBJYLZDMX_DYDJID ) "); + SQL.Add(" or ( isnull(XLXSBJYLZDMX_XLXHID,' ')=' ' and isnull(XLXSBJYLZDMX_XLGGID,' ')= ' ' and isnull(XLXSBJYLZDMX_XLBZID,' ') =' ' and isnull(XLXSBJYLZDMX_DYDJID,' ')=' ' ) "); + SQL.Add(" ) ) then 'Y' else 'N' end as YLZDYXTZ "); + } + else + { + SQL.Add(" ,'N' as YLZDYXTZ "); + } + XLXSBJPZXX YLPZXX = XLBJDUtils.GetXLXSBJPZXX(100860014); + if (!YLPZXX.XLXSBJPZ_TDTGSCLID.Equals("")) + { + SQL.Add(" ,case "); + for (int i = 1; i <= 80; i++) + { + SQL.Add(" when '" + YLPZXX.XLXSBJPZ_TDTGSCLID.Trim() + ",' like '%' || rtrim(case when charindex('|',XLXSBJDCLCB_CLID" + i.ToString().PadLeft(2, '0') + ") > 0 then left(XLXSBJDCLCB_CLID" + i.ToString().PadLeft(2, '0') + ",charindex('|',XLXSBJDCLCB_CLID" + i.ToString().PadLeft(2, '0') + ")-1) else XLXSBJDCLCB_CLID" + i.ToString().PadLeft(2, '0') + " end) || ',%' then isnull(BJDCLYLBL_YLBL" + i.ToString().PadLeft(2, '0') + ",1) "); + } + SQL.Add(" else 1 end as TCLYLBL "); + } + else + { + SQL.Add(" ,1 as TCLYLBL "); + } + if (!YLPZXX.XLXSBJPZ_LBJCLID.Equals("")) + { + SQL.Add(" ,case "); + for (int i = 1; i <= 80; i++) + { + SQL.Add(" when XLXSBJDCLCB_CLID" + i.ToString().PadLeft(2, '0') + " like '" + YLPZXX.XLXSBJPZ_LBJCLID + "%' then isnull(BJDCLYLBL_YLBL" + i.ToString().PadLeft(2, '0') + ",1) "); + } + SQL.Add(" else 1 end as LCLYLBL "); + } + else + { + SQL.Add(" ,1 as LCLYLBL "); + } + if (!YLPZXX.XLXSBJPZ_LHJBJCLID.Equals("")) + { + SQL.Add(" ,case "); + for (int i = 1; i <= 80; i++) + { + SQL.Add(" when XLXSBJDCLCB_CLID" + i.ToString().PadLeft(2, '0') + " like '" + YLPZXX.XLXSBJPZ_LHJBJCLID + "%' then isnull(BJDCLYLBL_YLBL" + i.ToString().PadLeft(2, '0') + ",1) "); + } + SQL.Add(" else 1 end as LHJCLYLBL "); + } + else + { + SQL.Add(" ,1 as LHJCLYLBL "); + } + SQL.Add(" from XLXSBJDMX "); + SQL.Add(" left join XLBZ on XLBZ_XLBZID = XLXSBJDMX_XLBZID "); + if (XLBJDUtils.GetXLXSBJPZXX(100860000).XLXSBJPZ_XSZBXX == "Y") + { + SQL.Add(" left join XLXSBJDFKMX on XLXSBJDFKMX_BJDID = XLXSBJDMX_BJDID and XLXSBJDFKMX_XH=XLXSBJDMX_XH "); + SQL.Add(" left join WL on WL_WLID = case when isnull(XLXSBJDMX_WLID,' ')=' ' then XLXSBJDFKMX_WLID else XLXSBJDMX_WLID end "); + } + SQL.Add(" left join XLYSB on XLYSB_XLYSID = XLXSBJDMX_XLYSID "); + SQL.Add(" left join XLXSBJDYZZ0 on XLXSBJDYZZ0_BJDID=XLXSBJDMX_BJDID and XLXSBJDYZZ0_XH=XLXSBJDMX_XH "); + SQL.Add(" left join XLXSBJDJJYZ on XLXSBJDJJYZ_BJDID=XLXSBJDMX_BJDID and XLXSBJDJJYZ_XH=XLXSBJDMX_XH "); + SQL.Add(" left join XLXSBJD on XLXSBJD_BJDID=XLXSBJDMX_BJDID"); + SQL.Add(" left join XLXSJGB on XLXSJGB_JGBID=XLXSBJD_JGBID"); + SQL.Add(" left join XLXSCLQD on XLXSCLQD_XLXHID=XLXSBJDMX_XLXHID and XLXSCLQD_XLGGID=XLXSBJDMX_XLGGID and XLXSCLQD_XLBZID=XLXSBJDMX_XLBZID and XLXSCLQD_DYDJID=isnull(XLXSBJDMX_DYDJID,' ')"); + SQL.Add(" left join ( select XLXSBJYLZD_BJDID,XLXSBJYLZD_SQDH,XLXSBJYLZD_WPID,XLXSBJYLZD_WFAWAITER, "); + SQL.Add(" XLXSBJYLZDMX_BJDXH,XLXSBJYLZDMX_BZDBZ,XLXSBJYLZDMX_BJDXLXHID,XLXSBJYLZDMX_XLXHID,XLXSBJYLZDMX_BJDXLGGID,XLXSBJYLZDMX_XLGGID, "); + SQL.Add(" XLXSBJYLZDMX_BJDXLBZID,XLXSBJYLZDMX_XLBZID,XLXSBJYLZDMX_BJDDYDJID,XLXSBJYLZDMX_DYDJID "); + SQL.Add(" from XLXSBJYLZDMX "); + SQL.Add(" left join XLXSBJYLZD on XLXSBJYLZD_SQDH = XLXSBJYLZDMX_SQDH "); + SQL.Add(" where XLXSBJYLZD_BJDID = :XLXSBJDMX_BJDID ) YLZDMX on XLXSBJYLZD_BJDID = XLXSBJDMX_BJDID and XLXSBJYLZDMX_BJDXH = XLXSBJDMX_XH "); + SQL.Add(" left join XLXSBJXHML A on A.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and A.XLXSBJXHML_DYDJID = isnull(XLXSBJDMX_DYDJID, ' ') "); + SQL.Add(" left join XLXSBJXHML B on B.XLXSBJXHML_XLXHID = XLXSBJDMX_XLXHID and B.XLXSBJXHML_DYDJID = ' ' "); + SQL.Add(" left join XLXSCPML on XLXSCPML_CPMLID = case when ISNULL(A.XLXSBJXHML_CPMLID,' ') = ' ' then ISNULL(B.XLXSBJXHML_CPMLID,' ') else ISNULL(A.XLXSBJXHML_CPMLID,' ') end "); + SQL.Add(" left join XLXSBJDMXFD on XLXSBJDMXFD_BJDID = XLXSBJDMX_BJDID and XLXSBJDMXFD_BJDXH = XLXSBJDMX_XH "); + SQL.Add(" left join XLXSBJBZTXS on XLXSBJBZTXS_XLBZID = XLXSBJDMX_XLBZID "); + SQL.Add(" left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSBJDMX_XLGGID "); + if (!YLPZXX.XLXSBJPZ_TDTGSCLID.Equals("") || !YLPZXX.XLXSBJPZ_LBJCLID.Equals("") || !YLPZXX.XLXSBJPZ_LHJBJCLID.Equals("")) + { + SQL.Add(" left join XLXSBJDCLCB on XLXSBJDCLCB_BJDID = XLXSBJDMX_BJDID and XLXSBJDCLCB_XH = XLXSBJDMX_XH "); + SQL.Add(" left join BJDCLYLBL on BJDCLYLBL_BJDID = XLXSBJDMX_BJDID and BJDCLYLBL_XH = XLXSBJDMX_XH "); + } + if (!_sBZBJDIDFilter.Equals("")) + { + string sBZYJ = "XLXSBJDMX_XLBZID"; + SQL.Add(" left join (select XLXHID,XLGGID,DYDJID,XLBZID "); + SQL.Add(" from "); + SQL.Add(" (select XLXSBJDMX_XLXHID as XLXHID,XLXSBJDMX_XLGGID as XLGGID,XLXSBJDMX_DYDJID as DYDJID, "); + if (sCPCFXLBZ.Trim().Equals("")) + SQL.Add(" XLXSBJDMX_XLBZID as XLBZID "); + else + { + sBZYJ = " case XLXSBJDMX_XLBZID "; + for (int i = 0; i < sCPCFXLBZ.Split(',').Length; i++) + { + sBZYJ += string.Format(" when '{0}' then '{1}' ", sCPCFXLBZ.Split(',')[i], sCPCFXLBZ.Split(',')[0]); + } + sBZYJ += " else XLXSBJDMX_XLBZID end "; + SQL.Add(sBZYJ); + SQL.Add(" as XLBZID "); + } + SQL.Add(" from XLXSBJDMX where XLXSBJDMX_BJDID = :pBZBJDID )tmpA group by XLXHID,XLGGID,XLBZID,DYDJID ) BZCPB "); + SQL.Add(" on XLXSBJDMX_XLXHID = BZCPB.XLXHID and XLXSBJDMX_XLGGID = BZCPB.XLGGID and ("+sBZYJ+") = BZCPB.XLBZID and XLXSBJDMX_DYDJID = BZCPB.DYDJID "); + SQL.Add(" left join (select XLXHID,XLGGID,DYDJID,XLBZID,BJSL,JLDW "); + SQL.Add(" from "); + SQL.Add(" (select XLXSBJDMX_XLXHID as XLXHID,XLXSBJDMX_XLGGID as XLGGID," + sBZYJ + " as XLBZID,XLXSBJDMX_DYDJID as DYDJID, XLXSBJDMX_BJSL as BJSL, XLXSBJDMX_JLDW AS JLDW "); + SQL.Add(" from XLXSBJDMX where XLXSBJDMX_BJDID = :pBZBJDID) tmpB group by XLXHID,XLGGID,DYDJID,XLBZID,BJSL,JLDW ) BZCPSLB "); + SQL.Add(" on XLXSBJDMX_XLXHID = BZCPSLB.XLXHID and XLXSBJDMX_XLGGID = BZCPSLB.XLGGID and (" + sBZYJ + ") = BZCPSLB.XLBZID "); + SQL.Add(" and XLXSBJDMX_DYDJID = BZCPSLB.DYDJID and XLXSBJDMX_BJSL = BZCPSLB.BJSL and XLXSBJDMX_JLDW = BZCPSLB.JLDW "); + SQL.Add(" left join (select XLGGID,BZBJSL "); + SQL.Add(" from "); + SQL.Add(" (select XLXSBJDMX_XLGGID as XLGGID, (case when XLXSBJDMX_JLDW='Km' then XLXSBJDMX_BJSL*1000 else XLXSBJDMX_BJSL end) as BZBJSL "); + SQL.Add(" from XLXSBJDMX where XLXSBJDMX_BJDID = :pBZBJDID and isnull(XLXSBJDMX_YWLX,' ')= ' ') tmpC group by XLGGID,BZBJSL ) BZGGSLB "); + SQL.Add(" on XLXSBJDMX_XLGGID = BZGGSLB.XLGGID and (case when XLXSBJDMX_JLDW='Km' then XLXSBJDMX_BJSL*1000 else XLXSBJDMX_BJSL end) = BZGGSLB.BZBJSL "); + SQL.ParamByName("pBZBJDID").Value = _sBZBJDIDFilter.Trim(); + } + SQL.Add(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID "); + if (!_sXSSXFilter.Equals("")) + { + SQL.Add(" and XLXSBJDMX_XSSX=:pXSSX"); + SQL.AddParam("pXSSX", TGtdbType.Float, 0, CMISproConvert.StrToFloat(_sXSSXFilter, 0)); + } + if (!_sXLXHIDFilter.Equals("")) + { + string sQueryTag = "E"; + string sFirstC = _sXLXHIDFilter.Substring(0, 1); + string sLastC = _sXLXHIDFilter.Substring(_sXLXHIDFilter.Length - 1, 1); + if (sFirstC.Equals("%")) + { + sQueryTag = "L"; + if (sLastC.Equals("%")) + sQueryTag = "A"; + } + else + { + if (sLastC.Equals("%")) + sQueryTag = "R"; + } + if (sQueryTag.Equals("E")) + { + SQL.Add(" and XLXSBJDMX_XLXHID=:pXLXHID"); + } + else + { + SQL.Add(" and XLXSBJDMX_XLXHID like :pXLXHID"); + } + SQL.AddParam("pXLXHID", TGtdbType.VarChar, 40, _sXLXHIDFilter); + } + if (!_sXLGGIDFilter.Equals("")) + { + if (_sXLGGIDFilter.Split('-').Length > 1) + { + string sStartNum = _sXLGGIDFilter.Split('-')[0]; + string sEndNum = _sXLGGIDFilter.Split('-')[1]; + double dStartNum = CMISproConvert.StrToFloat(sStartNum, 0); + double dEndNum = CMISproConvert.StrToFloat(sEndNum, 0); + SQL.Add(@" and exists(select 1 from XLGGB + left join XLDTJMZHB on XLDTJMZHB_DTJMZHID=XLGGB_DTJMZHID + where XLGGB_XLGGID=XLXSBJXLGGTHB_XLGGIDCH + and XLDTJMZHB_DTJM1>=:pStartNum "); + if (dEndNum != 0) + { + SQL.Add(" and XLDTJMZHB_DTJM1<=:pEndNum "); + SQL.AddParam("pEndNum", TGtdbType.Float,0,dEndNum); + + } + + SQL.Add(")"); + SQL.AddParam("pStartNum", TGtdbType.Float,0, dStartNum); + } + else + { + string sQueryTag = "E"; + string sFirstC = _sXLGGIDFilter.Substring(0, 1); + string sLastC = _sXLGGIDFilter.Substring(_sXLGGIDFilter.Length - 1, 1); + if (sFirstC.Equals("%")) + { + sQueryTag = "L"; + if (sLastC.Equals("%")) + sQueryTag = "A"; + } + else + { + if (sLastC.Equals("%")) + sQueryTag = "R"; + } + if (sQueryTag.Equals("E")) + { + SQL.Add(" and XLXSBJDMX_XLGGID=:pXLGGID"); + } + else + { + SQL.Add(" and XLXSBJDMX_XLGGID like :pXLGGID"); + } + SQL.AddParam("pXLGGID", TGtdbType.VarChar, 60, _sXLGGIDFilter); + } + } + if (!_sXLBZIDFilter.Equals("")) + { + string sQueryTag = "E"; + string sFirstC = _sXLBZIDFilter.Substring(0, 1); + string sLastC = _sXLBZIDFilter.Substring(_sXLBZIDFilter.Length - 1, 1); + if (sFirstC.Equals("%")) + { + sQueryTag = "L"; + if (sLastC.Equals("%")) + sQueryTag = "A"; + } + else + { + if (sLastC.Equals("%")) + sQueryTag = "R"; + } + if (sQueryTag.Equals("E")) + { + SQL.Add(" and ( XLXSBJDMX_XLBZID=:pXLBZID or XLBZ_XLBZLXMC=:pXLBZMC )"); + + } + else + { + SQL.Add(" and ( XLXSBJDMX_XLBZID like :pXLBZID or XLBZ_XLBZLXMC like :pXLBZMC )"); + } + SQL.AddParam("pXLBZID", TGtdbType.VarChar, 10, _sXLBZIDFilter); + SQL.AddParam("pXLBZMC", TGtdbType.VarChar, 60, _sXLBZIDFilter); + } + if (!_sDYDJIDFilter.Equals("")) + { + string sQueryTag = "E"; + string sFirstC = _sDYDJIDFilter.Substring(0, 1); + string sLastC = _sDYDJIDFilter.Substring(_sDYDJIDFilter.Length - 1, 1); + if (sFirstC.Equals("%")) + { + sQueryTag = "L"; + if (sLastC.Equals("%")) + sQueryTag = "A"; + } + else + { + if (sLastC.Equals("%")) + sQueryTag = "R"; + } + if (sQueryTag.Equals("E")) + { + SQL.Add(" and XLXSBJDMX_DYDJID=:pDYDJID"); + } + else + { + SQL.Add(" and XLXSBJDMX_DYDJID like :pDYDJID"); + } + SQL.AddParam("pDYDJID", TGtdbType.VarChar, 20, _sDYDJIDFilter); + } + if (!_sXLYSIDFilter.Equals("")) + { + string sQueryTag = "E"; + string sFirstC = _sXLYSIDFilter.Substring(0, 1); + string sLastC = _sXLYSIDFilter.Substring(_sXLYSIDFilter.Length - 1, 1); + if (sFirstC.Equals("%")) + { + sQueryTag = "L"; + if (sLastC.Equals("%")) + sQueryTag = "A"; + } + else + { + if (sLastC.Equals("%")) + sQueryTag = "R"; + } + if (sQueryTag.Equals("E")) + { + SQL.Add(" and ( XLXSBJDMX_XLYSID=:pXLYSID or XLYSB_XLYSMC=:pXLYSMC )"); + } + else + { + SQL.Add(" and ( XLXSBJDMX_XLYSID like :pXLYSID or XLYSB_XLYSMC like :pXLYSMC )"); + } + SQL.AddParam("pXLYSID", TGtdbType.VarChar, 10, _sXLYSIDFilter); + SQL.AddParam("pXLYSMC", TGtdbType.VarChar, 40, _sXLYSIDFilter); + } + if (!_sBJCPFilter.Equals("")) + { + string sQueryTag = "E"; + string sFirstC = _sBJCPFilter.Substring(0, 1); + string sLastC = _sBJCPFilter.Substring(_sBJCPFilter.Length - 1, 1); + if (sFirstC.Equals("%")) + { + sQueryTag = "L"; + if (sLastC.Equals("%")) + sQueryTag = "A"; + } + else + { + if (sLastC.Equals("%")) + sQueryTag = "R"; + } + if (sQueryTag.Equals("E")) + { + SQL.Add(" and XLXSBJDMX_BJCP=:pBJCP"); + + } + else + { + SQL.Add(" and XLXSBJDMX_BJCP like :pBJCP"); + } + SQL.AddParam("pBJCP", TGtdbType.VarChar, 150, _sBJCPFilter); + } + + if (!_sJGBBJFilter.Equals("")) + { + SQL.Add(" and XLXSBJDMX_JGBBJ=:pJGBBJ"); + SQL.ParamByName("pJGBBJ").Value = CMISproConvert.StrToFloat(_sJGBBJFilter); + } + if (!_sZDXJJCLFilter.Equals("")) + { + + string tmpZDXJJCL = _sZDXJJCLFilter.Replace(">=","").Replace(">","").Replace("<=","").Replace("<","").Replace("=",""); + double dZDXJJCL = CMISproConvert.StrToFloat(tmpZDXJJCL, -999); + if (dZDXJJCL == -999) + { + SQL.Add(" and XLXSBJDMX_ZDXJJCL=:pZDXJJCL"); + SQL.ParamByName("pZDXJJCL").Value = dZDXJJCL; + } + else if (sZDXJJCLFilter.StartsWith(">=")) + { + SQL.Add(" and XLXSBJDMX_ZDXJJCL>=:pZDXJJCL"); + SQL.ParamByName("pZDXJJCL").Value = dZDXJJCL; + } + else if (sZDXJJCLFilter.StartsWith(">")) + { + SQL.Add(" and XLXSBJDMX_ZDXJJCL>:pZDXJJCL"); + SQL.ParamByName("pZDXJJCL").Value = dZDXJJCL; + } + else if (sZDXJJCLFilter.StartsWith("<=")) + { + SQL.Add(" and XLXSBJDMX_ZDXJJCL<=:pZDXJJCL"); + SQL.ParamByName("pZDXJJCL").Value = dZDXJJCL; + } + else if (sZDXJJCLFilter.StartsWith("<")) + { + SQL.Add(" and XLXSBJDMX_ZDXJJCL<:pZDXJJCL"); + SQL.ParamByName("pZDXJJCL").Value = dZDXJJCL; + } + else if (sZDXJJCLFilter.StartsWith("=")) + { + SQL.Add(" and XLXSBJDMX_ZDXJJCL=:pZDXJJCL"); + SQL.ParamByName("pZDXJJCL").Value = dZDXJJCL; + } + else + { + SQL.Add(" and XLXSBJDMX_ZDXJJCL=:pZDXJJCL"); + SQL.ParamByName("pZDXJJCL").Value = dZDXJJCL; + } + + } + + if (!_sCPMLFilter.Equals("")) + { + if (_sCPMLFilter.Equals("空")) + { + SQL.Add(" and isnull(XLXSBJDMX_CPMLMC,' ')=' '"); + } + else + { + string sQueryTag = "E"; + string sFirstC = _sCPMLFilter.Substring(0, 1); + string sLastC = _sCPMLFilter.Substring(_sCPMLFilter.Length - 1, 1); + if (sFirstC.Equals("%")) + { + sQueryTag = "L"; + if (sLastC.Equals("%")) + sQueryTag = "A"; + } + else + { + if (sLastC.Equals("%")) + sQueryTag = "R"; + } + if (sQueryTag.Equals("E")) + { + SQL.Add(" and XLXSBJDMX_CPMLMC=:pCPMLMC"); + } + else + { + SQL.Add(" and XLXSBJDMX_CPMLMC like :pCPMLMC"); + } + SQL.AddParam("pCPMLMC", TGtdbType.VarChar, 150, _sCPMLFilter); + } + + } + + if (!_sZHCPMLFilter.Equals("")) + { + if (_sZHCPMLFilter.Equals("空")) + { + SQL.Add(" and isnull(XLXSBJDMX_ZHCPMLMC,' ')=' '"); + } + else + { + string sQueryTag = "E"; + string sFirstC = _sZHCPMLFilter.Substring(0, 1); + string sLastC = _sZHCPMLFilter.Substring(_sZHCPMLFilter.Length - 1, 1); + if (sFirstC.Equals("%")) + { + sQueryTag = "L"; + if (sLastC.Equals("%")) + sQueryTag = "A"; + } + else + { + if (sLastC.Equals("%")) + sQueryTag = "R"; + } + if (sQueryTag.Equals("E")) + { + SQL.Add(" and XLXSBJDMX_ZHCPMLMC=:pZHCPMLMC"); + } + else + { + SQL.Add(" and XLXSBJDMX_ZHCPMLMC like :pZHCPMLMC"); + } + SQL.AddParam("pZHCPMLMC", TGtdbType.VarChar, 150, _sZHCPMLFilter); + } + + } + if (!_sBZFilter.Equals("")) + { + string sQueryTag = "E"; + string sFirstC = _sBZFilter.Substring(0, 1); + string sLastC = _sBZFilter.Substring(_sBZFilter.Length - 1, 1); + if (sFirstC.Equals("%")) + { + sQueryTag = "L"; + if (sLastC.Equals("%")) + sQueryTag = "A"; + } + else + { + if (sLastC.Equals("%")) + sQueryTag = "R"; + } + if (sQueryTag.Equals("E")) + { + SQL.Add(" and XLXSBJDMX_BZ=:pBZ"); + + } + else + { + SQL.Add(" and XLXSBJDMX_BZ like :pBZ"); + } + SQL.AddParam("pBZ", TGtdbType.VarChar, 250, _sBZFilter); + } + + SQL.Add(" ) BJD"); + SQL.Add(" left join XLXHB on XLXHB_XLXHID = XLXSBJDMX_XLXHID "); + SQL.Add(" left join XLXSBJXLGGTHB on XLXSBJXLGGTHB_XLGGID = XLXSBJDMX_XLGGID "); + SQL.Add(" left join XLGGB on XLGGB_XLGGID = XLXSBJXLGGTHB_XLGGIDCH and XLGGB_XLGGJDGZ = XLXHB_XLGGJDGZ "); + SQL.Add(" where 1=1"); + if (_curPageIndex > 0) + { + SQL.Add(" and RNum>=:pStartRow"); + SQL.Add(" and RNum<=:pEndRow"); + } + SQL.Add(" order by RNum "); + SQL.AddParam("XLXSBJDMX_BJDID", TGtdbType.VarChar, 20, _BJDID); + if (_curPageIndex > 0) + { + SQL.AddParam("pStartRow", TGtdbType.Float, 0, _curPageSize * (_curPageIndex - 1) + 1); + SQL.AddParam("pEndRow", TGtdbType.Float, 0, _curPageSize * _curPageIndex); + } + //增加where条件以及参数的赋值 + return SQL; + } + + public override TSQL SetInsertSql() + { + TSQL SQL = base.SetInsertSql(); + SQL.Add("insert into XLXSBJDMX(XLXSBJDMX_BJDID, XLXSBJDMX_XH, XLXSBJDMX_XSSX, XLXSBJDMX_XLXHID, XLXSBJDMX_XLGGID, XLXSBJDMX_XLBZID,XLXSBJDMX_DYDJID,XLXSBJDMX_XLYSID,XLXSBJDMX_WLID,"); + SQL.Add("XLXSBJDMX_ZHCPMLMC,XLXSBJDMX_CPMLMC,XLXSBJDMX_BJCP,XLXSBJDMX_GYKH,XLXSBJDMX_PWQDID,XLXSBJDMX_PWQDWLMC,XLXSBJDMX_PWQDMS,XLXSBJDMX_WGCPBZ,XLXSBJDMX_JLDW,XLXSBJDMX_BJSL,XLXSBJDMX_JGBBJ,XLXSBJDMX_JGBBJGXSJ,XLXSBJDMX_LSJGBBJ,XLXSBJDMX_JMBGS,XLXSBJDMX_TZQCPBJ,XLXSBJDMX_TZCPBJ,XLXSBJDMX_CPBJ,XLXSBJDMX_TZQBJJE,XLXSBJDMX_TZBJJE,"); + SQL.Add("XLXSBJDMX_BJJE,XLXSBJDMX_PJJE,XLXSBJDMX_JGBJJ,XLXSBJDMX_CLCB,XLXSBJDMX_JGBBJLJJCL,XLXSBJDMX_JGBBJJCL,XLXSBJDMX_JGBBJJCE,XLXSBJDMX_YXJG,XLXSBJDMX_CLZL,XLXSBJDMX_YXJJCL,XLXSBJDMX_BJDHQCLCB,XLXSBJDMX_CLCBJCL,XLXSBJDMX_BJCPSD,"); + SQL.Add("XLXSBJDMX_BJSDBZ,XLXSBJDMX_CLCBJCLSDBZ,XLXSBJDMX_TZQZDXJ,XLXSBJDMX_TZZDXJ,XLXSBJDMX_ZDXJ,XLXSBJDMX_ZDXJJCL,XLXSBJDMX_JSJG,XLXSBJDMX_JSJJE,XLXSBJDMX_JSJJCL,XLXSBJDMX_YSCP,XLXSBJDMX_KHWLID,XLXSBJDMX_YZ,XLXSBJDMX_FBH,XLXSBJDMX_CPBJXJ,XLXSBJDMX_BJXJKD,XLXSBJDMX_BJXJJJ,XLXSBJDMX_BJJEXJ,XLXSBJDMX_BZ,XLXSBJDMX_BJLY,XLXSBJDMX_BJTJCZ,XLXSBJDMX_DZSC,"); + SQL.Add("XLXSBJDMX_BJDHQCLCBTZ,XLXSBJDMX_ZDXJBJDID,XLXSBJDMX_ZDXJBJDXH,XLXSBJDMX_XDXLBZID,XLXSBJDMX_XDXLXHID,XLXSBJDMX_JGBBJTZ,XLXSBJDMX_JGFBZ,XLXSBJDMX_WHRID,XLXSBJDMX_WHR,XLXSBJDMX_WHSJ) "); + SQL.Add("values(:XLXSBJDMX_BJDID, :XLXSBJDMX_XH, :XLXSBJDMX_XSSX, :XLXSBJDMX_XLXHID,:XLXSBJDMX_XLGGID,:XLXSBJDMX_XLBZID,isnull(:XLXSBJDMX_DYDJID,' '),:XLXSBJDMX_XLYSID,:XLXSBJDMX_WLID,"); + SQL.Add(":XLXSBJDMX_ZHCPMLMC,:XLXSBJDMX_CPMLMC,:XLXSBJDMX_BJCP,:XLXSBJDMX_GYKH,:XLXSBJDMX_PWQDID,:XLXSBJDMX_PWQDWLMC,:XLXSBJDMX_PWQDMS,:XLXSBJDMX_WGCPBZ,:XLXSBJDMX_JLDW, isnull(:XLXSBJDMX_BJSL,0),isnull(:XLXSBJDMX_JGBBJ,0),:XLXSBJDMX_JGBBJGXSJ,isnull(:XLXSBJDMX_LSJGBBJ,0),:XLXSBJDMX_JMBGS,isnull(:XLXSBJDMX_TZQCPBJ,0),isnull(:XLXSBJDMX_TZCPBJ,0),"); + SQL.Add("isnull(:XLXSBJDMX_CPBJ,0),isnull(:XLXSBJDMX_TZQBJJE,0),isnull(:XLXSBJDMX_TZBJJE,0),isnull(:XLXSBJDMX_BJJE,0),isnull(:XLXSBJDMX_PJJE,0),isnull(:XLXSBJDMX_JGBJJ,0),isnull(:XLXSBJDMX_CLCB,0),isnull(:XLXSBJDMX_JGBBJLJJCL,0),isnull(:XLXSBJDMX_JGBBJJCL,0),"); + SQL.Add("isnull(:XLXSBJDMX_JGBBJJCE,0), isnull(:XLXSBJDMX_YXJG,0),isnull(:XLXSBJDMX_CLZL,0),isnull(:XLXSBJDMX_YXJJCL,0),isnull(:XLXSBJDMX_BJDHQCLCB,0),isnull(:XLXSBJDMX_CLCBJCL,0),ISNULL(:XLXSBJDMX_BJCPSD,'N'),"); + SQL.Add("ISNULL(:XLXSBJDMX_BJSDBZ,'N'),ISNULL(:XLXSBJDMX_CLCBJCLSDBZ,'N'),isnull(:XLXSBJDMX_TZQZDXJ,0),isnull(:XLXSBJDMX_TZZDXJ,0),isnull(:XLXSBJDMX_ZDXJ,0),isnull(:XLXSBJDMX_ZDXJJCL,0),isnull(:XLXSBJDMX_JSJG,0),isnull(:XLXSBJDMX_JSJJE,0),isnull(:XLXSBJDMX_JSJJCL,0),:XLXSBJDMX_YSCP,:XLXSBJDMX_KHWLID,:XLXSBJDMX_YZ,"); + SQL.Add(":XLXSBJDMX_FBH,:XLXSBJDMX_CPBJXJ,:XLXSBJDMX_BJXJKD,:XLXSBJDMX_BJXJJJ,:XLXSBJDMX_BJJEXJ,:XLXSBJDMX_BZ,:XLXSBJDMX_BJLY,:XLXSBJDMX_BJTJCZ,:XLXSBJDMX_DZSC,:XLXSBJDMX_BJDHQCLCBTZ,:XLXSBJDMX_ZDXJBJDID,:XLXSBJDMX_ZDXJBJDXH,:XLXSBJDMX_XDXLBZID,:XLXSBJDMX_XDXLXHID,isnull(:XLXSBJDMX_JGBBJTZ,0),:XLXSBJDMX_JGFBZ,:XLXSBJDMX_WHRID,:XLXSBJDMX_WHR,:XLXSBJDMX_WHSJ) "); + //SQL.ParamByName("XH").Value = CMISproDataBase.GetMaxXH("DBERP", "XLXSBJDMX", "XLXSBJDMX_XH", string.Format("XLXSBJDMX_BJDID='{0}'", BJDID)) + 1; + OLD_XLXSBJDMX_XH = XLXSBJDMX_XH; + return SQL; + } + + public override bool Inserting(TSQL sql) + { + SetNullToZero(); + + SetField("XLXSBJDMX_BJDID", _BJDID); + if (XLXSBJDMX_XSSX.Equals("0")) + { + XLXSBJDMX_XSSX = GetNewXSSX(_BJDID).ToString(); + } + + if (XLXSBJDMX_XH.Equals("0")) + { + XLXSBJDMX_XH = GetNewXH(_BJDID).ToString(); + } + + //if (GetField("XLXSBJDMX_XH").ToString().Trim().Equals("0")) + //{ + // WarningMsg = "明细数据序号不允许为空!"; + // return false; + //} + + if (GetField("XLXSBJDMX_XLXHID").ToString().Trim().Equals("")) + { + WarningMsg = "型号不允许为空!"; + return false; + } + + if (GetField("XLXSBJDMX_XLGGID").ToString().Trim().Equals("")) + { + WarningMsg = "规格不允许为空!"; + return false; + } + + if (GetField("XLXSBJDMX_XLBZID").ToString().Trim().Equals(" ")) + { + SetField("XLXSBJDMX_XLBZID", ""); + } + + if (GetField("XLXSBJDMX_DYDJID").ToString().Trim().Equals(" ")) + { + SetField("XLXSBJDMX_DYDJID", ""); + } + + if (GetField("XLXSBJDMX_XLYSID").ToString().Trim().Contains("|")) + { + SetField("XLXSBJDMX_XLYSID", GetField("XLXSBJDMX_XLYSID").ToString().Trim().Split('|')[0]); + } + + if (CMISproConvert.StrToFloat(GetField("XLXSBJDMX_BJSL").ToString().Trim(), 0) < 0) + { + WarningMsg = "报价数量不允许小于0!"; + return false; + } + + + return base.Inserting(sql); + } + + public override bool Inserted(TSQL sql) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + sql.Clear(); + sql.Add("insert into XLXSBJDYZZ0(XLXSBJDYZZ0_BJDID,XLXSBJDYZZ0_XH,XLXSBJDYZZ0_YZZ01,XLXSBJDYZZ0_YZZ02,XLXSBJDYZZ0_YZZ03,XLXSBJDYZZ0_YZZ04,"); + sql.Add(" XLXSBJDYZZ0_YZZ05,XLXSBJDYZZ0_YZZ06,XLXSBJDYZZ0_YZZ07,XLXSBJDYZZ0_YZZ08,XLXSBJDYZZ0_YZZ09,XLXSBJDYZZ0_YZZ10,"); + sql.Add(" XLXSBJDYZZ0_YZZ11,XLXSBJDYZZ0_YZZ12,XLXSBJDYZZ0_YZZ13,XLXSBJDYZZ0_YZZ14,"); + sql.Add(" XLXSBJDYZZ0_YZZ15,XLXSBJDYZZ0_YZZ16,XLXSBJDYZZ0_YZZ17,XLXSBJDYZZ0_YZZ18,XLXSBJDYZZ0_YZZ19,XLXSBJDYZZ0_YZZ20)"); + sql.Add(" values(:pBJDID,:pBJDXH,:pYZZ01,:pYZZ02,:pYZZ03,:pYZZ04,:pYZZ05,:pYZZ06,:pYZZ07,:pYZZ08,:pYZZ09,:pYZZ10,:pYZZ11,:pYZZ12,:pYZZ13,:pYZZ14,:pYZZ15,:pYZZ16,:pYZZ17,:pYZZ18,:pYZZ19,:pYZZ20)"); + sql.ParamByName("pBJDID").Value = _BJDID; + sql.ParamByName("pBJDXH").Value = GetField("XLXSBJDMX_XH"); + sql.ParamByName("pYZZ01").Value = GetField("TZYZ_BJ01"); + sql.ParamByName("pYZZ02").Value = GetField("TZYZ_BJ02"); + sql.ParamByName("pYZZ03").Value = GetField("TZYZ_BJ03"); + sql.ParamByName("pYZZ04").Value = GetField("TZYZ_BJ04"); + sql.ParamByName("pYZZ05").Value = GetField("TZYZ_BJ05"); + sql.ParamByName("pYZZ06").Value = GetField("TZYZ_BJ06"); + sql.ParamByName("pYZZ07").Value = GetField("TZYZ_BJ07"); + sql.ParamByName("pYZZ08").Value = GetField("TZYZ_BJ08"); + sql.ParamByName("pYZZ09").Value = GetField("TZYZ_BJ09"); + sql.ParamByName("pYZZ10").Value = GetField("TZYZ_BJ10"); + sql.ParamByName("pYZZ11").Value = GetField("TZYZ_BJ11"); + sql.ParamByName("pYZZ12").Value = GetField("TZYZ_BJ12"); + sql.ParamByName("pYZZ13").Value = GetField("TZYZ_BJ13"); + sql.ParamByName("pYZZ14").Value = GetField("TZYZ_BJ14"); + sql.ParamByName("pYZZ15").Value = GetField("TZYZ_BJ15"); + sql.ParamByName("pYZZ16").Value = GetField("TZYZ_BJ16"); + sql.ParamByName("pYZZ17").Value = GetField("TZYZ_BJ17"); + sql.ParamByName("pYZZ18").Value = GetField("TZYZ_BJ18"); + sql.ParamByName("pYZZ19").Value = GetField("TZYZ_BJ19"); + sql.ParamByName("pYZZ20").Value = GetField("TZYZ_BJ20"); + dberp.ExecSQL(sql); + + if (!GetField("UpdJJYZList").ToString().Trim().Equals("")) + { + string[] strJJYZZ = GetField("UpdJJYZList").ToString().Trim().Split('|'); + sql.Clear(); + sql.Add("insert into XLXSBJDJJYZ(XLXSBJDJJYZ_BJDID,XLXSBJDJJYZ_XH,XLXSBJDJJYZ_YZZ01,XLXSBJDJJYZ_YZZ02,XLXSBJDJJYZ_YZZ03,XLXSBJDJJYZ_YZZ04,"); + sql.Add(" XLXSBJDJJYZ_YZZ05,XLXSBJDJJYZ_YZZ06,XLXSBJDJJYZ_YZZ07,XLXSBJDJJYZ_YZZ08,XLXSBJDJJYZ_YZZ09,XLXSBJDJJYZ_YZZ10,XLXSBJDJJYZ_YSJDZ)"); + sql.Add(" values(:pBJDID,:pBJDXH,:pYZZ01,:pYZZ02,:pYZZ03,:pYZZ04,:pYZZ05,:pYZZ06,:pYZZ07,:pYZZ08,:pYZZ09,:pYZZ10,:pYSJDZ)"); + sql.ParamByName("pBJDID").Value = _BJDID; + sql.ParamByName("pBJDXH").Value = GetField("XLXSBJDMX_XH"); + sql.ParamByName("pYZZ01").Value = CMISproConvert.StrToFloat(strJJYZZ[0], 0); + sql.ParamByName("pYZZ02").Value = CMISproConvert.StrToFloat(strJJYZZ[1], 0); + sql.ParamByName("pYZZ03").Value = CMISproConvert.StrToFloat(strJJYZZ[2], 0); + sql.ParamByName("pYZZ04").Value = CMISproConvert.StrToFloat(strJJYZZ[3], 0); + sql.ParamByName("pYZZ05").Value = CMISproConvert.StrToFloat(strJJYZZ[4], 0); + sql.ParamByName("pYZZ06").Value = CMISproConvert.StrToFloat(strJJYZZ[5], 0); + sql.ParamByName("pYZZ07").Value = CMISproConvert.StrToFloat(strJJYZZ[6], 0); + sql.ParamByName("pYZZ08").Value = CMISproConvert.StrToFloat(strJJYZZ[7], 0); + sql.ParamByName("pYZZ09").Value = CMISproConvert.StrToFloat(strJJYZZ[8], 0); + sql.ParamByName("pYZZ10").Value = CMISproConvert.StrToFloat(strJJYZZ[9], 0); + sql.ParamByName("pYSJDZ").Value = CMISproConvert.StrToFloat(strJJYZZ[10], 0); + dberp.ExecSQL(sql); + } + + if (GetField("PFYSQKBZ").ToString().Trim().Equals("Y")) + { + sql.Clear(); + sql.Add("delete from XLXSBJDMXFD where XLXSBJDMXFD_BJDID = :XLXSBJDMXFD_BJDID and XLXSBJDMXFD_BJDXH = :XLXSBJDMXFD_BJDXH"); + sql.ParamByName("XLXSBJDMXFD_BJDID").Value = _BJDID; + sql.ParamByName("XLXSBJDMXFD_BJDXH").Value = GetField("XLXSBJDMX_XH"); + dberp.ExecSQL(sql); + + sql.Clear(); + sql.Add("delete from XLXSBJDMXZP where XLXSBJDMXZP_BJDID = :XLXSBJDMXZP_BJDID and XLXSBJDMXZP_BJDXH = :XLXSBJDMXZP_BJDXH"); + sql.ParamByName("XLXSBJDMXZP_BJDID").Value = _BJDID; + sql.ParamByName("XLXSBJDMXZP_BJDXH").Value = GetField("XLXSBJDMX_XH"); + dberp.ExecSQL(sql); + } + + return base.Inserted(sql); + } + + public override TSQL SetUpdateSql() + { + TSQL SQL = base.SetUpdateSql(); + SQL.Add(" update XLXSBJDMX set "); + SQL.Add(" XLXSBJDMX_XH=:XLXSBJDMX_XH,"); + SQL.Add(" XLXSBJDMX_XSSX=:XLXSBJDMX_XSSX,"); + SQL.Add(" XLXSBJDMX_XLXHID=:XLXSBJDMX_XLXHID,"); + SQL.Add(" XLXSBJDMX_XLGGID=:XLXSBJDMX_XLGGID,"); + SQL.Add(" XLXSBJDMX_XLBZID=:XLXSBJDMX_XLBZID,"); + SQL.Add(" XLXSBJDMX_DYDJID=isnull(:XLXSBJDMX_DYDJID,' '),"); + SQL.Add(" XLXSBJDMX_XLYSID=:XLXSBJDMX_XLYSID,"); + SQL.Add(" XLXSBJDMX_WLID=:XLXSBJDMX_WLID,"); + SQL.Add(" XLXSBJDMX_ZHCPMLMC=:XLXSBJDMX_ZHCPMLMC,"); + SQL.Add(" XLXSBJDMX_CPMLMC=:XLXSBJDMX_CPMLMC,"); + SQL.Add(" XLXSBJDMX_BJCP=:XLXSBJDMX_BJCP,"); + SQL.Add(" XLXSBJDMX_GYKH=:XLXSBJDMX_GYKH,"); + SQL.Add(" XLXSBJDMX_PWQDID=:XLXSBJDMX_PWQDID,"); + SQL.Add(" XLXSBJDMX_PWQDWLMC=:XLXSBJDMX_PWQDWLMC,"); + SQL.Add(" XLXSBJDMX_PWQDMS=:XLXSBJDMX_PWQDMS,"); + SQL.Add(" XLXSBJDMX_WGCPBZ=:XLXSBJDMX_WGCPBZ,"); + SQL.Add(" XLXSBJDMX_JLDW=:XLXSBJDMX_JLDW,"); + SQL.Add(" XLXSBJDMX_BJSL=isnull(:XLXSBJDMX_BJSL,0),"); + SQL.Add(" XLXSBJDMX_JGBBJ=isnull(:XLXSBJDMX_JGBBJ,0),"); + SQL.Add(" XLXSBJDMX_JGBBJGXSJ=:XLXSBJDMX_JGBBJGXSJ, "); + SQL.Add(" XLXSBJDMX_LSJGBBJ=isnull(:XLXSBJDMX_LSJGBBJ,0),"); + SQL.Add(" XLXSBJDMX_JMBGS=:XLXSBJDMX_JMBGS, "); + SQL.Add(" XLXSBJDMX_TZQCPBJ=isnull(:XLXSBJDMX_TZQCPBJ,0),"); + SQL.Add(" XLXSBJDMX_TZCPBJ=isnull(:XLXSBJDMX_TZCPBJ,0),"); + SQL.Add(" XLXSBJDMX_CPBJ=isnull(:XLXSBJDMX_CPBJ,0),"); + SQL.Add(" XLXSBJDMX_TZQBJJE=isnull(:XLXSBJDMX_TZQBJJE,0),"); + SQL.Add(" XLXSBJDMX_TZBJJE=isnull(:XLXSBJDMX_TZBJJE,0),"); + SQL.Add(" XLXSBJDMX_BJJE=isnull(:XLXSBJDMX_BJJE,0),"); + SQL.Add(" XLXSBJDMX_PJJE=ISNULL(:XLXSBJDMX_PJJE,0),"); + SQL.Add(" XLXSBJDMX_JGBJJ=isnull(:XLXSBJDMX_JGBJJ,0),"); + SQL.Add(" XLXSBJDMX_CLCB=isnull(:XLXSBJDMX_CLCB,0),"); + SQL.Add(" XLXSBJDMX_JGBBJLJJCL=isnull(:XLXSBJDMX_JGBBJLJJCL,0),"); + SQL.Add(" XLXSBJDMX_JGBBJJCL=isnull(:XLXSBJDMX_JGBBJJCL,0),"); + SQL.Add(" XLXSBJDMX_JGBBJJCE=isnull(:XLXSBJDMX_JGBBJJCE,0),"); + SQL.Add(" XLXSBJDMX_YXJG=isnull(:XLXSBJDMX_YXJG,0),"); + SQL.Add(" XLXSBJDMX_DZSC=ISNULL(:XLXSBJDMX_DZSC,'N'),"); + SQL.Add(" XLXSBJDMX_CLZL=isnull(:XLXSBJDMX_CLZL,0),"); + SQL.Add(" XLXSBJDMX_YXJJCL=isnull(:XLXSBJDMX_YXJJCL,0),"); + SQL.Add(" XLXSBJDMX_BJDHQCLCB=isnull(:XLXSBJDMX_BJDHQCLCB,0),"); + SQL.Add(" XLXSBJDMX_CLCBJCL=isnull(:XLXSBJDMX_CLCBJCL,0),"); + SQL.Add(" XLXSBJDMX_BJCPSD=ISNULL(:XLXSBJDMX_BJCPSD,'N'),"); + SQL.Add(" XLXSBJDMX_BJSDBZ=ISNULL(:XLXSBJDMX_BJSDBZ,'N'),"); + SQL.Add(" XLXSBJDMX_CLCBJCLSDBZ=ISNULL(:XLXSBJDMX_CLCBJCLSDBZ,'N'),"); + SQL.Add(" XLXSBJDMX_TZQZDXJ=ISNULL(:XLXSBJDMX_TZQZDXJ,0),"); + SQL.Add(" XLXSBJDMX_TZZDXJ=ISNULL(:XLXSBJDMX_TZZDXJ,0),"); + SQL.Add(" XLXSBJDMX_ZDXJ=ISNULL(:XLXSBJDMX_ZDXJ,0),"); + SQL.Add(" XLXSBJDMX_ZDXJJCL=ISNULL(:XLXSBJDMX_ZDXJJCL,0),"); + SQL.Add(" XLXSBJDMX_JSJG=ISNULL(:XLXSBJDMX_JSJG,0),"); + SQL.Add(" XLXSBJDMX_JSJJE=ISNULL(:XLXSBJDMX_JSJJE,0),"); + SQL.Add(" XLXSBJDMX_JSJJCL=ISNULL(:XLXSBJDMX_JSJJCL,0),"); + SQL.Add(" XLXSBJDMX_YSCP=:XLXSBJDMX_YSCP,"); + SQL.Add(" XLXSBJDMX_KHWLID=:XLXSBJDMX_KHWLID,"); + SQL.Add(" XLXSBJDMX_YZ=:XLXSBJDMX_YZ, "); + SQL.Add(" XLXSBJDMX_FBH=:XLXSBJDMX_FBH, "); + SQL.Add(" XLXSBJDMX_CPBJXJ=:XLXSBJDMX_CPBJXJ, "); + SQL.Add(" XLXSBJDMX_BJXJKD=:XLXSBJDMX_BJXJKD, "); + SQL.Add(" XLXSBJDMX_BJXJJJ=:XLXSBJDMX_BJXJJJ, "); + SQL.Add(" XLXSBJDMX_BJJEXJ=:XLXSBJDMX_BJJEXJ, "); + SQL.Add(" XLXSBJDMX_BZ=:XLXSBJDMX_BZ, "); + SQL.Add(" XLXSBJDMX_BJLY=:XLXSBJDMX_BJLY, "); + SQL.Add(" XLXSBJDMX_BJTJCZ=:XLXSBJDMX_BJTJCZ, "); + SQL.Add(" XLXSBJDMX_BJDHQCLCBTZ=:XLXSBJDMX_BJDHQCLCBTZ, "); + SQL.Add(" XLXSBJDMX_ZDXJBJDID=:XLXSBJDMX_ZDXJBJDID, "); + SQL.Add(" XLXSBJDMX_ZDXJBJDXH=:XLXSBJDMX_ZDXJBJDXH, "); + SQL.Add(" XLXSBJDMX_XDXLBZID=:XLXSBJDMX_XDXLBZID, "); + SQL.Add(" XLXSBJDMX_XDXLXHID=:XLXSBJDMX_XDXLXHID, "); + SQL.Add(" XLXSBJDMX_JGBBJTZ=:XLXSBJDMX_JGBBJTZ, "); + SQL.Add(" XLXSBJDMX_JGFBZ=:XLXSBJDMX_JGFBZ, "); + SQL.Add(" XLXSBJDMX_WHRID=:XLXSBJDMX_WHRID, "); + SQL.Add(" XLXSBJDMX_WHR=:XLXSBJDMX_WHR, "); + SQL.Add(" XLXSBJDMX_WHSJ=:XLXSBJDMX_WHSJ "); + SQL.Add(" where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID"); + SQL.Add(" and XLXSBJDMX_XH = :OLD_XLXSBJDMX_XH "); + return SQL; + } + + public override TSQL SetDeleteSql() + { + TSQL SQL = base.SetDeleteSql(); + SQL.Add("delete from XLXSBJDMX where XLXSBJDMX_BJDID = :XLXSBJDMX_BJDID and XLXSBJDMX_XH = :XLXSBJDMX_XH"); + return SQL; + } + + public override bool Updating(TSQL sql) + { + SetNullToZero(); + + SetField("XLXSBJDMX_BJDID", _BJDID); + if (XLXSBJDMX_XSSX.Equals("0")) + { + XLXSBJDMX_XSSX = GetNewXSSX(_BJDID).ToString(); + } + + if (GetField("XLXSBJDMX_XH").ToString().Trim().Equals("0")) + { + WarningMsg = "明细数据序号不允许为空!"; + return false; + } + + if (GetField("XLXSBJDMX_XLXHID").ToString().Trim().Equals("")) + { + WarningMsg = "型号不允许为空!"; + return false; + } + + if (GetField("XLXSBJDMX_XLGGID").ToString().Trim().Equals("")) + { + WarningMsg = "规格不允许为空!"; + return false; + } + + if (GetField("XLXSBJDMX_XLBZID").ToString().Trim().Equals(" ")) + { + SetField("XLXSBJDMX_XLBZID", ""); + } + + if (GetField("XLXSBJDMX_DYDJID").ToString().Trim().Equals(" ")) + { + SetField("XLXSBJDMX_DYDJID", ""); + } + + if (GetField("XLXSBJDMX_XLYSID").ToString().Trim().Contains("|")) + { + SetField("XLXSBJDMX_XLYSID", GetField("XLXSBJDMX_XLYSID").ToString().Trim().Split('|')[0]); + } + + if (CMISproConvert.StrToFloat(GetField("XLXSBJDMX_BJSL").ToString().Trim(), 0) < 0) + { + WarningMsg = "报价数量不允许小于0!"; + return false; + } + + return base.Updating(sql); + } + + public override bool Updated(TSQL sql) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + sql.Clear(); + sql.Add("update XLXSBJDYZZ0 set XLXSBJDYZZ0_XH=:pBJDXH,XLXSBJDYZZ0_YZZ01=:pYZZ01,XLXSBJDYZZ0_YZZ02=:pYZZ02,XLXSBJDYZZ0_YZZ03=:pYZZ03,XLXSBJDYZZ0_YZZ04=:pYZZ04,XLXSBJDYZZ0_YZZ05=:pYZZ05,"); + sql.Add(" XLXSBJDYZZ0_YZZ06=:pYZZ06,XLXSBJDYZZ0_YZZ07=:pYZZ07,XLXSBJDYZZ0_YZZ08=:pYZZ08,XLXSBJDYZZ0_YZZ09=:pYZZ09,XLXSBJDYZZ0_YZZ10=:pYZZ10, "); + sql.Add(" XLXSBJDYZZ0_YZZ11=:pYZZ11,XLXSBJDYZZ0_YZZ12=:pYZZ12,XLXSBJDYZZ0_YZZ13=:pYZZ13,XLXSBJDYZZ0_YZZ14=:pYZZ14,XLXSBJDYZZ0_YZZ15=:pYZZ15,"); + sql.Add(" XLXSBJDYZZ0_YZZ16=:pYZZ16,XLXSBJDYZZ0_YZZ17=:pYZZ17,XLXSBJDYZZ0_YZZ18=:pYZZ18,XLXSBJDYZZ0_YZZ19=:pYZZ19,XLXSBJDYZZ0_YZZ20=:pYZZ20 "); + sql.Add(" where XLXSBJDYZZ0_BJDID=:pBJDID and XLXSBJDYZZ0_XH=:OLD_XLXSBJDMX_XH"); + sql.ParamByName("pBJDID").Value = _BJDID; + sql.ParamByName("OLD_XLXSBJDMX_XH").Value = GetField("OLD_XLXSBJDMX_XH"); + sql.ParamByName("pBJDXH").Value = GetField("XLXSBJDMX_XH"); + sql.ParamByName("pYZZ01").Value = GetField("TZYZ_BJ01"); + sql.ParamByName("pYZZ02").Value = GetField("TZYZ_BJ02"); + sql.ParamByName("pYZZ03").Value = GetField("TZYZ_BJ03"); + sql.ParamByName("pYZZ04").Value = GetField("TZYZ_BJ04"); + sql.ParamByName("pYZZ05").Value = GetField("TZYZ_BJ05"); + sql.ParamByName("pYZZ06").Value = GetField("TZYZ_BJ06"); + sql.ParamByName("pYZZ07").Value = GetField("TZYZ_BJ07"); + sql.ParamByName("pYZZ08").Value = GetField("TZYZ_BJ08"); + sql.ParamByName("pYZZ09").Value = GetField("TZYZ_BJ09"); + sql.ParamByName("pYZZ10").Value = GetField("TZYZ_BJ10"); + sql.ParamByName("pYZZ11").Value = GetField("TZYZ_BJ11"); + sql.ParamByName("pYZZ12").Value = GetField("TZYZ_BJ12"); + sql.ParamByName("pYZZ13").Value = GetField("TZYZ_BJ13"); + sql.ParamByName("pYZZ14").Value = GetField("TZYZ_BJ14"); + sql.ParamByName("pYZZ15").Value = GetField("TZYZ_BJ15"); + sql.ParamByName("pYZZ16").Value = GetField("TZYZ_BJ16"); + sql.ParamByName("pYZZ17").Value = GetField("TZYZ_BJ17"); + sql.ParamByName("pYZZ18").Value = GetField("TZYZ_BJ18"); + sql.ParamByName("pYZZ19").Value = GetField("TZYZ_BJ19"); + sql.ParamByName("pYZZ20").Value = GetField("TZYZ_BJ20"); + dberp.ExecSQL(sql); + + if (!GetField("UpdJJYZList").ToString().Trim().Equals("")) + { + string[] strJJYZZ = GetField("UpdJJYZList").ToString().Trim().Split('|'); + sql.Clear(); + sql.Add("update XLXSBJDJJYZ set XLXSBJDJJYZ_XH=:pBJDXH,XLXSBJDJJYZ_YZZ01=:pYZZ01,XLXSBJDJJYZ_YZZ02=:pYZZ02,XLXSBJDJJYZ_YZZ03=:pYZZ03,XLXSBJDJJYZ_YZZ04=:pYZZ04,XLXSBJDJJYZ_YZZ05=:pYZZ05,"); + sql.Add(" XLXSBJDJJYZ_YZZ06=:pYZZ06,XLXSBJDJJYZ_YZZ07=:pYZZ07,XLXSBJDJJYZ_YZZ08=:pYZZ08,XLXSBJDJJYZ_YZZ09=:pYZZ09,XLXSBJDJJYZ_YZZ10=:pYZZ10,XLXSBJDJJYZ_YSJDZ=:pYSJDZ "); + sql.Add(" where XLXSBJDJJYZ_BJDID=:pBJDID and XLXSBJDJJYZ_XH=:OLD_XLXSBJDMX_XH"); + sql.ParamByName("pBJDID").Value = _BJDID; + sql.ParamByName("OLD_XLXSBJDMX_XH").Value = GetField("OLD_XLXSBJDMX_XH"); + sql.ParamByName("pBJDXH").Value = GetField("XLXSBJDMX_XH"); + sql.ParamByName("pYZZ01").Value = CMISproConvert.StrToFloat(strJJYZZ[0], 0); + sql.ParamByName("pYZZ02").Value = CMISproConvert.StrToFloat(strJJYZZ[1], 0); + sql.ParamByName("pYZZ03").Value = CMISproConvert.StrToFloat(strJJYZZ[2], 0); + sql.ParamByName("pYZZ04").Value = CMISproConvert.StrToFloat(strJJYZZ[3], 0); + sql.ParamByName("pYZZ05").Value = CMISproConvert.StrToFloat(strJJYZZ[4], 0); + sql.ParamByName("pYZZ06").Value = CMISproConvert.StrToFloat(strJJYZZ[5], 0); + sql.ParamByName("pYZZ07").Value = CMISproConvert.StrToFloat(strJJYZZ[6], 0); + sql.ParamByName("pYZZ08").Value = CMISproConvert.StrToFloat(strJJYZZ[7], 0); + sql.ParamByName("pYZZ09").Value = CMISproConvert.StrToFloat(strJJYZZ[8], 0); + sql.ParamByName("pYZZ10").Value = CMISproConvert.StrToFloat(strJJYZZ[9], 0); + sql.ParamByName("pYSJDZ").Value = CMISproConvert.StrToFloat(strJJYZZ[10], 0); + dberp.ExecSQL(sql); + } + + if (GetField("PFYSQKBZ").ToString().Trim().Equals("Y")) + { + sql.Clear(); + sql.Add("delete from XLXSBJDMXFD where XLXSBJDMXFD_BJDID = :XLXSBJDMXFD_BJDID and XLXSBJDMXFD_BJDXH = :XLXSBJDMXFD_BJDXH"); + sql.ParamByName("XLXSBJDMXFD_BJDID").Value = _BJDID; + sql.ParamByName("XLXSBJDMXFD_BJDXH").Value = GetField("XLXSBJDMX_XH"); + dberp.ExecSQL(sql); + + sql.Clear(); + sql.Add("delete from XLXSBJDMXZP where XLXSBJDMXZP_BJDID = :XLXSBJDMXZP_BJDID and XLXSBJDMXZP_BJDXH = :XLXSBJDMXZP_BJDXH"); + sql.ParamByName("XLXSBJDMXZP_BJDID").Value = _BJDID; + sql.ParamByName("XLXSBJDMXZP_BJDXH").Value = GetField("XLXSBJDMX_XH"); + dberp.ExecSQL(sql); + } + + return base.Updated(sql); + } + + public override bool Deleted(TSQL sql) + { + TDatabase dberp = TContextDatabases.GetDatabase("DBERP"); + sql.Clear(); + sql.Add("delete from XLXSBJDYZZ0 where XLXSBJDYZZ0_BJDID = :XLXSBJDYZZ0_BJDID and XLXSBJDYZZ0_XH = :XLXSBJDYZZ0_XH"); + sql.ParamByName("XLXSBJDYZZ0_BJDID").Value = _BJDID; + sql.ParamByName("XLXSBJDYZZ0_XH").Value = GetField("XLXSBJDMX_XH"); + dberp.ExecSQL(sql); + + sql.Clear(); + sql.Add("delete from XLXSBJDJJYZ where XLXSBJDJJYZ_BJDID = :XLXSBJDJJYZ_BJDID and XLXSBJDJJYZ_XH = :XLXSBJDJJYZ_XH"); + sql.ParamByName("XLXSBJDJJYZ_BJDID").Value = _BJDID; + sql.ParamByName("XLXSBJDJJYZ_XH").Value = GetField("XLXSBJDMX_XH"); + dberp.ExecSQL(sql); + + sql.Clear(); + sql.Add("delete from XLXSBJDMXFD where XLXSBJDMXFD_BJDID = :XLXSBJDMXFD_BJDID and XLXSBJDMXFD_BJDXH = :XLXSBJDMXFD_BJDXH"); + sql.ParamByName("XLXSBJDMXFD_BJDID").Value = _BJDID; + sql.ParamByName("XLXSBJDMXFD_BJDXH").Value = GetField("XLXSBJDMX_XH"); + dberp.ExecSQL(sql); + + sql.Clear(); + sql.Add("delete from XLXSBJDMXZP where XLXSBJDMXZP_BJDID = :XLXSBJDMXZP_BJDID and XLXSBJDMXZP_BJDXH = :XLXSBJDMXZP_BJDXH"); + sql.ParamByName("XLXSBJDMXZP_BJDID").Value = _BJDID; + sql.ParamByName("XLXSBJDMXZP_BJDXH").Value = GetField("XLXSBJDMX_XH"); + dberp.ExecSQL(sql); + + sql.Clear(); + sql.Add("delete from XLXSBJDGYJD where XLXSBJDGYJD_BJDID = :XLXSBJDGYJD_BJDID and XLXSBJDGYJD_BJDXH = :XLXSBJDGYJD_BJDXH"); + sql.ParamByName("XLXSBJDGYJD_BJDID").Value = _BJDID; + sql.ParamByName("XLXSBJDGYJD_BJDXH").Value = GetField("XLXSBJDMX_XH"); + dberp.ExecSQL(sql); + + return base.Deleted(sql); + } + + + + private void SetNullToZero() + { + int RowIndex = ActIndex; + for (int i = 0; i < Entites.Rows.Count; i++) + { + ActIndex = i; + foreach (KeyValuePair de in EntityFields) + { + if (de.Value.DbType == TGtdbType.Float) + { + object fieldObj = GetField(de.Key); + string fieldValue = (fieldObj != null) ? fieldObj.ToString().Trim() : ""; + + if (string.IsNullOrEmpty(fieldValue)) + { + SetField(de.Key, "0"); + } + else if (IsScientificNotation(fieldValue)) + { + // 处理科学计数法 + try + { + double doubleValue = ParseScientificNotation(fieldValue); + // 转换为普通数字格式 + string result = doubleValue.ToString("0.####################"); + SetField(de.Key, result); + } + catch + { + SetField(de.Key, "0"); + } + } + // 确保浮点数格式正确 + else if (fieldObj is double || fieldObj is float) + { + decimal decimalValue = Convert.ToDecimal(fieldObj); + SetField(de.Key, decimalValue.ToString("0.##########")); + } + } + } + } + ActIndex = RowIndex; + } + + private bool IsScientificNotation(string value) + { + if (string.IsNullOrEmpty(value)) return false; + + // 标准科学计数法:包含e或E + if (value.IndexOf('e') >= 0 || value.IndexOf('E') >= 0) + { + // 验证确实是科学计数法格式 + try + { + double testValue = double.Parse(value, System.Globalization.NumberStyles.Float, + System.Globalization.CultureInfo.InvariantCulture); + return true; + } + catch + { + return false; + } + } + + // 简写格式:处理负号分隔符 + // 情况1:字符串以负号开头,查找第二个负号作为分隔符(如 "-5-7") + if (value[0] == '-' && value.Length > 2) + { + int separatorIndex = value.IndexOf('-', 1); + if (separatorIndex > 0 && separatorIndex < value.Length - 1) + { + string mantissaPart = value.Substring(0, separatorIndex); // "-5" + string exponentPart = value.Substring(separatorIndex + 1); // "7" + + double mantissa; + int exponent; + if (double.TryParse(mantissaPart, out mantissa) && int.TryParse(exponentPart, out exponent)) + { + return true; + } + } + } + // 情况2:字符串不以负号开头,查找第一个负号作为分隔符(如 "5-7") + else if (value[0] != '-') + { + int separatorIndex = value.IndexOf('-'); + if (separatorIndex > 0 && separatorIndex < value.Length - 1) + { + string mantissaPart = value.Substring(0, separatorIndex); // "5" + string exponentPart = value.Substring(separatorIndex + 1); // "7" + + double mantissa; + int exponent; + if (double.TryParse(mantissaPart, out mantissa) && int.TryParse(exponentPart, out exponent)) + { + return true; + } + } + } + + // 简写格式:处理加号分隔符 + // 情况1:字符串以负号开头,查找加号作为分隔符(如 "-5+7") + if (value[0] == '-' && value.Length > 2) + { + int separatorIndex = value.IndexOf('+', 1); + if (separatorIndex > 0 && separatorIndex < value.Length - 1) + { + string mantissaPart = value.Substring(0, separatorIndex); // "-5" + string exponentPart = value.Substring(separatorIndex + 1); // "7" + + double mantissa; + int exponent; + if (double.TryParse(mantissaPart, out mantissa) && int.TryParse(exponentPart, out exponent)) + { + return true; + } + } + } + // 情况2:字符串不以负号开头,查找加号作为分隔符(如 "5+7") + else if (value[0] != '-') + { + int separatorIndex = value.IndexOf('+'); + if (separatorIndex > 0 && separatorIndex < value.Length - 1) + { + string mantissaPart = value.Substring(0, separatorIndex); // "5" + string exponentPart = value.Substring(separatorIndex + 1); // "7" + + double mantissa; + int exponent; + if (double.TryParse(mantissaPart, out mantissa) && int.TryParse(exponentPart, out exponent)) + { + return true; + } + } + } + + return false; + } + + // 解析科学计数法 + private double ParseScientificNotation(string value) + { + // 标准科学计数法 + if (value.IndexOf('e') >= 0 || value.IndexOf('E') >= 0) + { + return double.Parse(value, System.Globalization.NumberStyles.Float, + System.Globalization.CultureInfo.InvariantCulture); + } + + // 简写格式:处理负号分隔符 + // 情况1:字符串以负号开头,查找第二个负号作为分隔符(如 "-5-7") + if (value[0] == '-' && value.Length > 2) + { + int separatorIndex = value.IndexOf('-', 1); + if (separatorIndex > 0 && separatorIndex < value.Length - 1) + { + string mantissaPart = value.Substring(0, separatorIndex); // "-5" + string exponentPart = value.Substring(separatorIndex + 1); // "7" + + double mantissa = double.Parse(mantissaPart); + int exponent = int.Parse(exponentPart); + return mantissa * System.Math.Pow(10, -exponent); + } + } + // 情况2:字符串不以负号开头,查找第一个负号作为分隔符(如 "5-7") + else if (value[0] != '-') + { + int separatorIndex = value.IndexOf('-'); + if (separatorIndex > 0 && separatorIndex < value.Length - 1) + { + string mantissaPart = value.Substring(0, separatorIndex); // "5" + string exponentPart = value.Substring(separatorIndex + 1); // "7" + + double mantissa = double.Parse(mantissaPart); + int exponent = int.Parse(exponentPart); + return mantissa * System.Math.Pow(10, -exponent); + } + } + + // 简写格式:处理加号分隔符 + // 情况1:字符串以负号开头,查找加号作为分隔符(如 "-5+7") + if (value[0] == '-' && value.Length > 2) + { + int separatorIndex = value.IndexOf('+', 1); + if (separatorIndex > 0 && separatorIndex < value.Length - 1) + { + string mantissaPart = value.Substring(0, separatorIndex); // "-5" + string exponentPart = value.Substring(separatorIndex + 1); // "7" + + double mantissa = double.Parse(mantissaPart); + int exponent = int.Parse(exponentPart); + return mantissa * System.Math.Pow(10, exponent); + } + } + // 情况2:字符串不以负号开头,查找加号作为分隔符(如 "5+7") + else if (value[0] != '-') + { + int separatorIndex = value.IndexOf('+'); + if (separatorIndex > 0 && separatorIndex < value.Length - 1) + { + string mantissaPart = value.Substring(0, separatorIndex); // "5" + string exponentPart = value.Substring(separatorIndex + 1); // "7" + + double mantissa = double.Parse(mantissaPart); + int exponent = int.Parse(exponentPart); + return mantissa * System.Math.Pow(10, exponent); + } + } + + // 如果不是科学计数法,直接返回解析结果 + return double.Parse(value); + } + + private int GetNewXSSX(string sID) + { + try + { + return CMISproDataBase.GetMaxXH("DBERP", "XLXSBJDMX", "XLXSBJDMX_XSSX", "XLXSBJDMX_BJDID = '" + sID + "'") + 1; + } + catch + { + return 1; + } + } + + private int GetNewXH(string sID) + { + try + { + return CMISproDataBase.GetMaxXH("DBERP", "XLXSBJDMX", "XLXSBJDMX_XH", "XLXSBJDMX_BJDID = '" + sID + "'") + 1; + } + catch + { + return 1; + } + } + + } +} diff --git a/XLBJD_M.cs b/XLBJD_M.cs new file mode 100644 index 0000000..af42c82 --- /dev/null +++ b/XLBJD_M.cs @@ -0,0 +1,95 @@ +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_MODEL.Page; + +namespace GThinking.U20261363_N_XLXSBJ +{ + public class XLBJD_M : TBaseNamedQuery + { + public XLBJD_M() + { + AddFieldDefs("SW", "事务", false); + AddFieldDefs("WFAWAITER", "待处理人", false); + AddFieldDefs("STATE", "流程状态", false); + AddFieldDefs("XHDW", "销售单位"); + AddFieldDefs("XSBM", "销售部门"); + AddFieldDefs("TXY", "销售员"); + AddFieldDefs("KH", "客户"); + AddFieldDefs("XM", "项目"); + AddFieldDefs("BJRQS", "报价日期始"); + AddFieldDefs("BJRQZ", "报价日期止"); + AddFieldDefs("BJDID", "报价单号"); + AddFieldDefs("SQR", "申请人"); + AddFieldDefs("BJFLID", "报价分类"); + AddFieldDefs("BJZJES", "报价总金额始"); + AddFieldDefs("BJZJEZ", "报价总金额止"); + AddFieldDefs("PXFS", "排序方式"); + AddFieldDefs("BJBZ", "报价备注"); + AddFieldDefs("SQRGH", "申请人"); + AddFieldDefs("FKRQS", "反馈日期始"); + AddFieldDefs("FKRQZ", "反馈日期止"); + AddFieldDefs("FKJG", "反馈结果"); + AddFieldDefs("ZDFXYQR", "撞单分析已确认"); + AddFieldDefs("JCFZCS", "仅查复制产生"); + AddFieldDefs("KHDH", "客户单号"); + AddFieldDefs("WHSJS", "维护时间始"); + AddFieldDefs("WHSJZ", "维护时间止"); + AddFieldDefs("ZCJHSCQK", "主材计划生成情况"); + AddFieldDefs("KZSZ01", "扩展数值01"); + AddFieldDefs("KZSZ02", "扩展数值02"); + AddFieldDefs("KZSZ03", "扩展数值03"); + AddFieldDefs("KZSZ04", "扩展数值04"); + AddFieldDefs("KZSZ05", "扩展数值05"); + + + AddFieldDefs("KZZF011", "扩展字符01"); + AddFieldDefs("KZZF021", "扩展字符02"); + AddFieldDefs("KZZF031", "扩展字符03"); + AddFieldDefs("KZZF041", "扩展字符04"); + AddFieldDefs("KZZF051", "扩展字符05"); + AddFieldDefs("KZZF061", "扩展字符06"); + AddFieldDefs("KZZF071", "扩展字符07"); + AddFieldDefs("KZZF081", "扩展字符08"); + AddFieldDefs("KZZF091", "扩展字符09"); + AddFieldDefs("KZZF101", "扩展字符10"); + + AddFieldDefs("KZZF012", "扩展字符01"); + AddFieldDefs("KZZF022", "扩展字符02"); + AddFieldDefs("KZZF032", "扩展字符03"); + AddFieldDefs("KZZF042", "扩展字符04"); + AddFieldDefs("KZZF052", "扩展字符05"); + AddFieldDefs("KZZF062", "扩展字符06"); + AddFieldDefs("KZZF072", "扩展字符07"); + AddFieldDefs("KZZF082", "扩展字符08"); + AddFieldDefs("KZZF092", "扩展字符09"); + AddFieldDefs("KZZF102", "扩展字符10"); + + + AddFieldDefs("KZRQ01S", "扩展日期01始"); + AddFieldDefs("KZRQ01Z", "扩展日期01止"); + AddFieldDefs("KZRQ02S", "扩展日期02始"); + AddFieldDefs("KZRQ02Z", "扩展日期02止"); + AddFieldDefs("KZRQ03S", "扩展日期03始"); + AddFieldDefs("KZRQ03Z", "扩展日期03止"); + AddFieldDefs("KZRQ04S", "扩展日期04始"); + AddFieldDefs("KZRQ04Z", "扩展日期04止"); + AddFieldDefs("KZRQ05S", "扩展日期05始"); + AddFieldDefs("KZRQ05Z", "扩展日期05止"); + + AddFieldDefs("KZWB01", "扩展文本01"); + AddFieldDefs("KZWB02", "扩展文本02"); + AddFieldDefs("KZWB03", "扩展文本03"); + AddFieldDefs("KZWB04", "扩展文本04"); + AddFieldDefs("KZWB05", "扩展文本05"); + + } + } + +}