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_MISPRO;
using GThinking.N_MISPRO.Data;
using GThinking.N_MODEL.Page;
using GThinking.N_MISPRO.Utility;
using GThinking.N_CONTROL;
using System.Collections.Generic;
using System.Text;
namespace GThinking.U20261363_N_XLXSBJ
{
[EntityType(Db = "DBERP", Table = "XLXSBJDCLHQ", IsWf = false, IsWhr = true, IsAttach = false)]
public class XLBJD_CLHQTZ : EntityObject
{
public string sBJDID = "";
public string sVID = "";
public string sRYID = "";
public string sBJRQ = "";
public string sBJFLID = "";
public string sJGBID = "";
public string sJGBIDS = "";
public string sBJDHQLY = "";
public bool bHSBZ = true;
public string sTBJCLID = "";
public string sLBJCLID = "";
public string sTJ = "";
public string sLJ = "";
public string sBJU057 = "N";
public override TSQL SetQuerySql()
{
TSQL SQL = base.SetQuerySql();
if (!XLBJDUtils.IsJGEJGB(sJGBID))//表价实时计算价格表
{
if (sBJDHQLY.Equals("1"))
{
if (!sJGBIDS.Equals(""))
{
SQL.Add(GetBJDHQ_VSql(sJGBIDS).ToString());
if (sBJU057.Trim().Equals("Y"))
{
SQL.Add(" where isnull(BJCL_PX.XLJGCZBLM_BJCLID,' ') <> ' ' ");
}
SQL.Add(" order by px0,px,px1,isnull(XLXSBJCL_TYBZ,'N'),XLXSBJCL_BJCLID");
SQL.ParamByName("pJGBIDS").Value = sJGBIDS;
}
else
{
SQL.Add(GetBJDHQ_VSql().ToString());
if (sBJU057.Trim().Equals("Y"))
{
SQL.Add(" where isnull(BJCL_PX.XLJGCZBLM_BJCLID,' ') <> ' ' ");
}
SQL.Add(" order by px0,px,isnull(XLXSBJCL_TYBZ,'N'),XLXSBJCL_BJCLID");
}
SQL.ParamByName("pBJDID").Value = sBJDID;
SQL.ParamByName("pVID").Value = sVID;
SQL.ParamByName("pRYID").Value = sRYID;
SQL.ParamByName("pBJRQ").Value = sBJRQ;
SQL.ParamByName("pBJFLID").Value = sBJFLID;
SQL.ParamByName("pJGBID").Value = sJGBID;
}
else
{
SQL.Add(GetBJRHQ_VSql().ToString());
if (sBJU057.Trim().Equals("Y"))
{
SQL.Add(" where isnull(BJCL_PX.XLJGCZBLM_BJCLID,' ') <> ' ' ");
}
SQL.Add(" order by px0,px,isnull(XLXSBJCL_TYBZ,'N'),XLXSBJCL_BJCLID");
SQL.ParamByName("pBJDID").Value = sBJDID;
SQL.ParamByName("pVID").Value = sVID;
SQL.ParamByName("pRYID").Value = sRYID;
SQL.ParamByName("pBJRQ").Value = sBJRQ;
}
}
else
{
SQL.Add(GetJGEHQ_VSql(bHSBZ, sTBJCLID, sLBJCLID, sTJ, sLJ).ToString());
if (sBJU057.Trim().Equals("Y"))
{
SQL.Add(" where isnull(BJCL_PX.XLJGCZBLM_BJCLID,' ') <> ' ' ");
}
SQL.Add(" order by px0,px,isnull(XLXSBJCL_TYBZ,'N'),XLXSBJCL_BJCLID");
SQL.ParamByName("pBJDID").Value = sBJDID;
SQL.ParamByName("pVID").Value = sVID;
SQL.ParamByName("pRYID").Value = sRYID;
SQL.ParamByName("pBJRQ").Value = sBJRQ;
}
return SQL;
}
public override bool Querying(TSQL sql)
{
Entites.Columns.Clear();
Entites.Clear();
return base.Querying(sql);
}
///
/// XLXSBJDCLHQ数据可能还没有的情况下,构建报价单行情sql
///
///
public static StringBuilder GetBJDHQSql()
{
StringBuilder strSQL = new StringBuilder();
strSQL.AppendLine("select case when BJCL_PX.XLJGCZBLM_BJCLID is null THEN 1 ELSE 0 end as px, case when BJCL_PX.XLJGCZBLM_BJCLID is null THEN 'N' ELSE 'Y' end as SYF, ");
strSQL.AppendLine(" XLXSBJCL_BJCLID,XLXSBJCL_BJCLMC || case when isnull(XLXSBJCL_TYBZ,'N')= 'Y' then '(停用)' else ' ' end as XLXSBJCL_BJCLMC,XLXSBJCL_BJHQ,");
strSQL.AppendLine("case when XLXSBJDCLHQ_BJCLID is null then bjdclhq.XLXSCLHQ_WSJG else XLXSBJDCLHQ_WSJG end as CLJG,");
strSQL.AppendLine("XLXSBJCL_ZZSL,");
strSQL.AppendLine("case when XLXSBJDCLHQ_BJCLID is null then bjdclhq.XLXSCLHQ_HSJG else XLXSBJDCLHQ_HSJG end as HSJG,");
strSQL.AppendLine("case when XLXSBJDCLHQ_BJCLID is null then bjdclhq.XLXSCLHQ_WSJGF else XLXSBJDCLHQ_WSJGF end as WSJGF,");
strSQL.AppendLine("case when XLXSBJDCLHQ_BJCLID is null then bjdclhq.XLXSCLHQ_HSJGF else XLXSBJDCLHQ_HSJGF end as HSJGF,");
strSQL.AppendLine(" 0 as SYJGB_HSJG, 0 as px1, ");
strSQL.AppendLine("case when isnull(JGYLID, ' ') = ' ' then 1 else 0 end as px0, ");
strSQL.AppendLine("XLXSBJDCLHQ_WHR,XLXSBJDCLHQ_WHRID,XLXSBJDCLHQ_WHSJ, ");
strSQL.AppendLine(" (select top 1 XLXSBJCL_BJCLID from XLXSBJCL a where (a.XLXSBJCL_JGYBJCLID =XLXSBJCL.XLXSBJCL_BJCLID or (a.XLXSBJCL_JGYBJCLID=XLXSBJCL.XLXSBJCL_JGYBJCLID and isnull(XLXSBJCL.XLXSBJCL_JGYBJCLID,' ') <> ' '))) as XLXSBJCL_JGYBJCLID ");
strSQL.AppendLine(" from XLXSBJCL");
strSQL.AppendLine(" left join (select distinct XLXSBJCL_JGYBJCLID as JGYLID from XLXSBJCL where isnull(XLXSBJCL_JGYBJCLID,' ') <> ' ') JGYL on JGYL.JGYLID = XLXSBJCL_BJCLID ");
strSQL.AppendLine(" left join XLXSBJDCLHQ on XLXSBJDCLHQ_BJDID=:pBJDID and XLXSBJDCLHQ_BJCLID=XLXSBJCL_BJCLID");
///---------------------------------------------------------------------------
strSQL.AppendLine(" left join ");
strSQL.AppendLine(" (");
//报价单报价日之材料行情
strSQL.AppendLine(" select BJCLID,XLXSCLHQ_WSJG,XLXSCLHQ_HSJG,XLXSCLHQ_WSJGF,XLXSCLHQ_HSJGF ");
strSQL.AppendLine(" from XLXSCLHQ,");
strSQL.AppendLine(" (");
strSQL.AppendLine(" select XLXSCLHQ_BJCLID as BJCLID,");
strSQL.AppendLine(" max(XLXSCLHQ_YXQS)as maxYXQS");
strSQL.AppendLine(" from XLXSCLHQ,XLXSBJCL");
strSQL.AppendLine(" where XLXSCLHQ_JGBID='ZZZZZZZZ'");
strSQL.AppendLine(" and XLXSCLHQ_YXQS<=:pBJRQ");
strSQL.AppendLine(" and (XLXSCLHQ_YXQZ>=:pBJRQ or XLXSCLHQ_YXQZ is null)");
strSQL.AppendLine(" and XLXSBJCL_BJCLID=XLXSCLHQ_BJCLID");
strSQL.AppendLine(" and exists(select 1 from XLXSBJFLBJRHQCL where XLXSBJFLBJRHQCL_BJFLID=:pBJFLID and XLXSBJFLBJRHQCL_BJCLID=XLXSBJCL_BJCLID)");//报价日行情之报价材料
strSQL.AppendLine(" group by XLXSCLHQ_BJCLID");
strSQL.AppendLine(" ) x");
strSQL.AppendLine(" where XLXSCLHQ_JGBID='ZZZZZZZZ'");
strSQL.AppendLine(" and XLXSCLHQ_BJCLID=BJCLID");
strSQL.AppendLine(" and XLXSCLHQ_YXQS=maxYXQS");
strSQL.AppendLine(" union all ");
//报价单非报价日之材料行情
strSQL.AppendLine(" select XLXSCLHQ_BJCLID as BJCLID,XLXSCLHQ_WSJG,XLXSCLHQ_HSJG,XLXSCLHQ_WSJGF,XLXSCLHQ_HSJGF ");
strSQL.AppendLine(" from XLXSCLHQ,XLXSBJCL");
strSQL.AppendLine(" where XLXSCLHQ_JGBID<>'ZZZZZZZZ'");
strSQL.AppendLine(" and XLXSCLHQ_JGBID=:pJGBID");
strSQL.AppendLine(" and XLXSBJCL_BJCLID=XLXSCLHQ_BJCLID");
strSQL.AppendLine(" and not exists(select 1 from XLXSBJFLBJRHQCL where XLXSBJFLBJRHQCL_BJFLID=:pBJFLID and XLXSBJFLBJRHQCL_BJCLID=XLXSBJCL_BJCLID)");//非报价日行情的报价材料
strSQL.AppendLine(" ) bjdclhq on bjdclhq.BJCLID=XLXSBJCL_BJCLID");
///---------------------------------------------------------------------------
//关联使用的材料,提上显示
strSQL.AppendLine(" LEFT JOIN");
strSQL.AppendLine(" (");
strSQL.AppendLine(" SELECT DISTINCT XLJGCZBLM_BJCLID FROM XLXSBJDMX");
strSQL.AppendLine(" LEFT JOIN XLXSCLQD ON XLXSCLQD_XLXHID = XLXSBJDMX_XLXHID AND XLXSCLQD_XLGGID = XLXSBJDMX_XLGGID AND XLXSCLQD_XLBZID = XLXSBJDMX_XLBZID AND isnull(XLXSCLQD_DYDJID,' ') = isnull(XLXSBJDMX_DYDJID,' ') ");
//利用版本限制
strSQL.AppendLine(" LEFT JOIN XLJGCZBLM ON XLJGCZBLM_JGCZBID = XLXSCLQD_JGCZBID and XLJGCZBLM_JGCZBBBID = XLXSCLQD_JGCZBBBID ");
strSQL.AppendLine(" WHERE XLXSBJDMX_BJDID = :pBJDID and isnull(XLJGCZBLM_CLQDL,' ')<>' ' and XLXSCLQD_WPID = 'ZZZZ'");
strSQL.AppendLine(" ) BJCL_PX ON BJCL_PX.XLJGCZBLM_BJCLID = XLXSBJCL_BJCLID ");
//strSQL.AppendLine(" order by px,XLXSBJCL_BJCLID");
return strSQL;
}
public static StringBuilder GetBJDHQ_VSql()
{
return GetBJDHQ_VSql("");
}
public static StringBuilder GetBJDHQ_VSql(string sJGBIDS)
{
StringBuilder strSQL = new StringBuilder();
strSQL.AppendLine("select case when BJCL_PX.XLJGCZBLM_BJCLID is null THEN 1 ELSE 0 end as px, case when BJCL_PX.XLJGCZBLM_BJCLID is null THEN 'N' ELSE 'Y' end as SYF, ");
strSQL.AppendLine(" XLXSBJCL_BJCLID,XLXSBJCL_BJCLMC || case when isnull(XLXSBJCL_TYBZ,'N')= 'Y' then '(停用)' else ' ' end as XLXSBJCL_BJCLMC,XLXSBJCL_BJHQ,");
strSQL.AppendLine("case when V_XLXSBJDCLHQ_BJCLID is null then bjdclhq.XLXSCLHQ_WSJG else V_XLXSBJDCLHQ_WSJG end as CLJG,");
strSQL.AppendLine("XLXSBJCL_ZZSL,");
strSQL.AppendLine("case when V_XLXSBJDCLHQ_BJCLID is null then bjdclhq.XLXSCLHQ_HSJG else V_XLXSBJDCLHQ_HSJG end as HSJG,");
strSQL.AppendLine("case when V_XLXSBJDCLHQ_BJCLID is null then bjdclhq.XLXSCLHQ_WSJGF else V_XLXSBJDCLHQ_WSJGF end as WSJGF,");
strSQL.AppendLine("case when V_XLXSBJDCLHQ_BJCLID is null then bjdclhq.XLXSCLHQ_HSJGF else V_XLXSBJDCLHQ_HSJGF end as HSJGF,");
if (!sJGBIDS.Equals(""))
{
strSQL.AppendLine(" isnull(e.XLXSCLHQ_HSJG,0.0) as SYJGB_HSJG, case when isnull(bjdclhq.XLXSCLHQ_HSJG,0.0) <> isnull(e.XLXSCLHQ_HSJG,0.0) then 0 else 1 end as px1, ");
}
else
{
strSQL.AppendLine(" 0 as SYJGB_HSJG, 0 as px1, ");
}
strSQL.AppendLine("case when isnull(JGYLID, ' ') = ' ' then 1 else 0 end as px0, ");
strSQL.AppendLine("isnull(V_XLXSBJDCLHQ_JGYBJCLID1,' ') as V_XLXSBJDCLHQ_JGYBJCLID1, isnull(V_XLXSBJDCLHQ_JGBL1,0.0) as V_XLXSBJDCLHQ_JGBL1, ");
strSQL.AppendLine("V_XLXSBJDCLHQ_WHR,V_XLXSBJDCLHQ_WHRID,V_XLXSBJDCLHQ_WHSJ, ");
strSQL.AppendLine(" (select top 1 XLXSBJCL_BJCLID from XLXSBJCL a where (a.XLXSBJCL_JGYBJCLID =XLXSBJCL.XLXSBJCL_BJCLID or (a.XLXSBJCL_JGYBJCLID=XLXSBJCL.XLXSBJCL_JGYBJCLID and isnull(XLXSBJCL.XLXSBJCL_JGYBJCLID,' ') <> ' '))) as XLXSBJCL_JGYBJCLID ");
strSQL.AppendLine(" from XLXSBJCL");
strSQL.AppendLine(" left join (select distinct XLXSBJCL_JGYBJCLID as JGYLID from XLXSBJCL where isnull(XLXSBJCL_JGYBJCLID,' ') <> ' ') JGYL on JGYL.JGYLID = XLXSBJCL_BJCLID ");
strSQL.AppendLine(" left join V_XLXSBJDCLHQ on V_XLXSBJDCLHQ_BJDID=:pBJDID and V_XLXSBJDCLHQ_ID=:pVID and V_XLXSBJDCLHQ_TZRYID=:pRYID and V_XLXSBJDCLHQ_BJCLID=XLXSBJCL_BJCLID ");
///---------------------------------------------------------------------------
strSQL.AppendLine(" left join ");
strSQL.AppendLine(" (");
//报价单报价日之材料行情
strSQL.AppendLine(" select BJCLID,XLXSCLHQ_WSJG,XLXSCLHQ_HSJG,XLXSCLHQ_WSJGF,XLXSCLHQ_HSJGF ");
strSQL.AppendLine(" from XLXSCLHQ,");
strSQL.AppendLine(" (");
strSQL.AppendLine(" select XLXSCLHQ_BJCLID as BJCLID,");
strSQL.AppendLine(" max(XLXSCLHQ_YXQS)as maxYXQS");
strSQL.AppendLine(" from XLXSCLHQ,XLXSBJCL");
strSQL.AppendLine(" where XLXSCLHQ_JGBID='ZZZZZZZZ'");
strSQL.AppendLine(" and XLXSCLHQ_YXQS<=:pBJRQ");
strSQL.AppendLine(" and (XLXSCLHQ_YXQZ>=:pBJRQ or XLXSCLHQ_YXQZ is null)");
strSQL.AppendLine(" and XLXSBJCL_BJCLID=XLXSCLHQ_BJCLID");
strSQL.AppendLine(" and exists(select 1 from XLXSBJFLBJRHQCL where XLXSBJFLBJRHQCL_BJFLID=:pBJFLID and XLXSBJFLBJRHQCL_BJCLID=XLXSBJCL_BJCLID)");//报价日行情之报价材料
strSQL.AppendLine(" group by XLXSCLHQ_BJCLID");
strSQL.AppendLine(" ) x");
strSQL.AppendLine(" where XLXSCLHQ_JGBID='ZZZZZZZZ'");
strSQL.AppendLine(" and XLXSCLHQ_BJCLID=BJCLID");
strSQL.AppendLine(" and XLXSCLHQ_YXQS=maxYXQS");
strSQL.AppendLine(" union all ");
//报价单非报价日之材料行情
strSQL.AppendLine(" select XLXSCLHQ_BJCLID as BJCLID,XLXSCLHQ_WSJG,XLXSCLHQ_HSJG,XLXSCLHQ_WSJGF,XLXSCLHQ_HSJGF ");
strSQL.AppendLine(" from XLXSCLHQ,XLXSBJCL");
strSQL.AppendLine(" where XLXSCLHQ_JGBID<>'ZZZZZZZZ'");
strSQL.AppendLine(" and XLXSCLHQ_JGBID=:pJGBID");
strSQL.AppendLine(" and XLXSBJCL_BJCLID=XLXSCLHQ_BJCLID");
strSQL.AppendLine(" and not exists(select 1 from XLXSBJFLBJRHQCL where XLXSBJFLBJRHQCL_BJFLID=:pBJFLID and XLXSBJFLBJRHQCL_BJCLID=XLXSBJCL_BJCLID)");//非报价日行情的报价材料
strSQL.AppendLine(" ) bjdclhq on bjdclhq.BJCLID=XLXSBJCL_BJCLID");
if (!sJGBIDS.Equals(""))
{
///---------------------------------------------------------------------------因素为1,'',''
strSQL.AppendLine(" left join ");
strSQL.AppendLine(" (");
//报价单报价日之材料行情
strSQL.AppendLine(" select BJCLID,XLXSCLHQ_WSJG,XLXSCLHQ_HSJG,XLXSCLHQ_WSJGF,XLXSCLHQ_HSJGF ");
strSQL.AppendLine(" from XLXSCLHQ,");
strSQL.AppendLine(" (");
strSQL.AppendLine(" select XLXSCLHQ_BJCLID as BJCLID,");
strSQL.AppendLine(" max(XLXSCLHQ_YXQS)as maxYXQS");
strSQL.AppendLine(" from XLXSCLHQ,XLXSBJCL");
strSQL.AppendLine(" where XLXSCLHQ_JGBID='ZZZZZZZZ'");
strSQL.AppendLine(" and XLXSCLHQ_YXQS<=:pBJRQ");
strSQL.AppendLine(" and (XLXSCLHQ_YXQZ>=:pBJRQ or XLXSCLHQ_YXQZ is null)");
strSQL.AppendLine(" and XLXSBJCL_BJCLID=XLXSCLHQ_BJCLID");
strSQL.AppendLine(" and exists(select 1 from XLXSBJFLBJRHQCL where XLXSBJFLBJRHQCL_BJFLID=:pBJFLID and XLXSBJFLBJRHQCL_BJCLID=XLXSBJCL_BJCLID)");//报价日行情之报价材料
strSQL.AppendLine(" group by XLXSCLHQ_BJCLID");
strSQL.AppendLine(" ) x");
strSQL.AppendLine(" where XLXSCLHQ_JGBID='ZZZZZZZZ'");
strSQL.AppendLine(" and XLXSCLHQ_BJCLID=BJCLID");
strSQL.AppendLine(" and XLXSCLHQ_YXQS=maxYXQS");
strSQL.AppendLine(" union all ");
//报价单非报价日之材料行情
strSQL.AppendLine(" select XLXSCLHQ_BJCLID as BJCLID,XLXSCLHQ_WSJG,XLXSCLHQ_HSJG,XLXSCLHQ_WSJGF,XLXSCLHQ_HSJGF ");
strSQL.AppendLine(" from XLXSCLHQ,XLXSBJCL");
strSQL.AppendLine(" where XLXSCLHQ_JGBID<>'ZZZZZZZZ'");
strSQL.AppendLine(" and XLXSCLHQ_JGBID=:pJGBIDS");
strSQL.AppendLine(" and XLXSBJCL_BJCLID=XLXSCLHQ_BJCLID");
strSQL.AppendLine(" and not exists(select 1 from XLXSBJFLBJRHQCL where XLXSBJFLBJRHQCL_BJFLID=:pBJFLID and XLXSBJFLBJRHQCL_BJCLID=XLXSBJCL_BJCLID)");//非报价日行情的报价材料
strSQL.AppendLine(" ) e on e.BJCLID=XLXSBJCL_BJCLID");
}
///---------------------------------------------------------------------------
//关联使用的材料,提上显示
strSQL.AppendLine(" LEFT JOIN");
strSQL.AppendLine(" (");
strSQL.AppendLine(" SELECT DISTINCT XLJGCZBLM_BJCLID FROM XLXSBJDMX");
strSQL.AppendLine(" LEFT JOIN XLXSCLQD ON XLXSCLQD_XLXHID = XLXSBJDMX_XLXHID AND XLXSCLQD_XLGGID = XLXSBJDMX_XLGGID AND XLXSCLQD_XLBZID = XLXSBJDMX_XLBZID AND isnull(XLXSCLQD_DYDJID,' ') = isnull(XLXSBJDMX_DYDJID,' ') ");
//利用版本限制
strSQL.AppendLine(" LEFT JOIN XLJGCZBLM ON XLJGCZBLM_JGCZBID = XLXSCLQD_JGCZBID and XLJGCZBLM_JGCZBBBID = XLXSCLQD_JGCZBBBID ");
strSQL.AppendLine(" WHERE XLXSBJDMX_BJDID = :pBJDID and isnull(XLJGCZBLM_CLQDL,' ')<>' ' and XLXSCLQD_WPID = 'ZZZZ'");
strSQL.AppendLine(" ) BJCL_PX ON BJCL_PX.XLJGCZBLM_BJCLID = XLXSBJCL_BJCLID ");
//strSQL.AppendLine(" order by px,XLXSBJCL_BJCLID");
return strSQL;
}
public static StringBuilder GetBJRHQSql()
{
StringBuilder strSQL = new StringBuilder();
strSQL.AppendLine("select case when BJCL_PX.XLJGCZBLM_BJCLID is null THEN 1 ELSE 0 end as px, case when BJCL_PX.XLJGCZBLM_BJCLID is null THEN 'N' ELSE 'Y' end as SYF, ");
strSQL.AppendLine(" XLXSBJCL_BJCLID,XLXSBJCL_BJCLMC || case when isnull(XLXSBJCL_TYBZ,'N')= 'Y' then '(停用)' else ' ' end as XLXSBJCL_BJCLMC,XLXSBJCL_BJHQ,");
strSQL.AppendLine("case when XLXSBJDCLHQ_BJCLID is null then bjdclhq.XLXSCLHQ_WSJG else XLXSBJDCLHQ_WSJG end as CLJG,");
strSQL.AppendLine("XLXSBJCL_ZZSL,");
strSQL.AppendLine("case when XLXSBJDCLHQ_BJCLID is null then bjdclhq.XLXSCLHQ_HSJG else XLXSBJDCLHQ_HSJG end as HSJG,");
strSQL.AppendLine("case when XLXSBJDCLHQ_BJCLID is null then bjdclhq.XLXSCLHQ_WSJGF else XLXSBJDCLHQ_WSJGF end as WSJGF,");
strSQL.AppendLine("case when XLXSBJDCLHQ_BJCLID is null then bjdclhq.XLXSCLHQ_HSJGF else XLXSBJDCLHQ_HSJGF end as HSJGF,");
strSQL.AppendLine("0 as SYJGB_HSJG, 0 as px1,");
strSQL.AppendLine("case when isnull(JGYLID, ' ') = ' ' then 1 else 0 end as px0, ");
strSQL.AppendLine("XLXSBJDCLHQ_WHR,XLXSBJDCLHQ_WHRID,XLXSBJDCLHQ_WHSJ, ");
strSQL.AppendLine(" (select top 1 XLXSBJCL_BJCLID from XLXSBJCL a where (a.XLXSBJCL_JGYBJCLID =XLXSBJCL.XLXSBJCL_BJCLID or (a.XLXSBJCL_JGYBJCLID=XLXSBJCL.XLXSBJCL_JGYBJCLID and isnull(XLXSBJCL.XLXSBJCL_JGYBJCLID,' ') <> ' '))) as XLXSBJCL_JGYBJCLID ");
strSQL.AppendLine(" from XLXSBJCL");
strSQL.AppendLine(" left join (select distinct XLXSBJCL_JGYBJCLID as JGYLID from XLXSBJCL where isnull(XLXSBJCL_JGYBJCLID,' ') <> ' ') JGYL on JGYL.JGYLID = XLXSBJCL_BJCLID ");
strSQL.AppendLine(" left join XLXSBJDCLHQ on XLXSBJDCLHQ_BJDID=:pBJDID and XLXSBJDCLHQ_BJCLID=XLXSBJCL_BJCLID");
strSQL.AppendLine(" left join ");
strSQL.AppendLine(" (");
strSQL.AppendLine("select BJCLID,XLXSCLHQ_WSJG,XLXSCLHQ_HSJG,XLXSCLHQ_WSJGF,XLXSCLHQ_HSJGF");
strSQL.AppendLine(" from XLXSCLHQ,");
strSQL.AppendLine(" (");
strSQL.AppendLine(" select XLXSCLHQ_BJCLID as BJCLID,");
strSQL.AppendLine(" max(XLXSCLHQ_YXQS)as maxYXQS");
strSQL.AppendLine(" from XLXSCLHQ,XLXSBJCL");
strSQL.AppendLine(" where XLXSCLHQ_JGBID='ZZZZZZZZ'");
strSQL.AppendLine(" and XLXSCLHQ_YXQS<=:pBJRQ");
strSQL.AppendLine(" and (XLXSCLHQ_YXQZ>=:pBJRQ or XLXSCLHQ_YXQZ is null)");
strSQL.AppendLine(" and XLXSBJCL_BJCLID=XLXSCLHQ_BJCLID");
strSQL.AppendLine(" group by XLXSCLHQ_BJCLID");
strSQL.AppendLine(" ) x");
strSQL.AppendLine(" where XLXSCLHQ_JGBID='ZZZZZZZZ'");
strSQL.AppendLine(" and XLXSCLHQ_BJCLID=BJCLID");
strSQL.AppendLine(" and XLXSCLHQ_YXQS=maxYXQS");
strSQL.AppendLine(" ) bjdclhq on bjdclhq.BJCLID=XLXSBJCL_BJCLID");
//关联使用的材料,提上显示
strSQL.AppendLine(" LEFT JOIN");
strSQL.AppendLine(" (");
strSQL.AppendLine(" SELECT DISTINCT XLJGCZBLM_BJCLID FROM XLXSBJDMX");
strSQL.AppendLine(" LEFT JOIN XLXSCLQD ON XLXSCLQD_XLXHID = XLXSBJDMX_XLXHID AND XLXSCLQD_XLGGID = XLXSBJDMX_XLGGID AND XLXSCLQD_XLBZID = XLXSBJDMX_XLBZID AND isnull(XLXSCLQD_DYDJID,' ') = isnull(XLXSBJDMX_DYDJID,' ') ");
strSQL.AppendLine(" LEFT JOIN XLJGCZBLM ON XLJGCZBLM_JGCZBID = XLXSCLQD_JGCZBID and XLXSCLQD_JGCZBBBID = XLJGCZBLM_JGCZBBBID ");
strSQL.AppendLine(" WHERE XLXSBJDMX_BJDID = :pBJDID and isnull(XLJGCZBLM_CLQDL,' ')<>' ' and XLXSCLQD_WPID = 'ZZZZ'");
strSQL.AppendLine(" ) BJCL_PX ON BJCL_PX.XLJGCZBLM_BJCLID = XLXSBJCL_BJCLID ");
//strSQL.AppendLine(" order by px,XLXSBJCL_BJCLID");
return strSQL;
}
public static StringBuilder GetBJRHQ_VSql()
{
StringBuilder strSQL = new StringBuilder();
strSQL.AppendLine("select case when BJCL_PX.XLJGCZBLM_BJCLID is null THEN 1 ELSE 0 end as px, case when BJCL_PX.XLJGCZBLM_BJCLID is null THEN 'N' ELSE 'Y' end as SYF, ");
strSQL.AppendLine(" XLXSBJCL_BJCLID,XLXSBJCL_BJCLMC || case when isnull(XLXSBJCL_TYBZ,'N')= 'Y' then '(停用)' else ' ' end as XLXSBJCL_BJCLMC,XLXSBJCL_BJHQ,");
strSQL.AppendLine("case when V_XLXSBJDCLHQ_BJCLID is null then bjdclhq.XLXSCLHQ_WSJG else V_XLXSBJDCLHQ_WSJG end as CLJG,");
strSQL.AppendLine("XLXSBJCL_ZZSL,");
strSQL.AppendLine("case when V_XLXSBJDCLHQ_BJCLID is null then bjdclhq.XLXSCLHQ_HSJG else V_XLXSBJDCLHQ_HSJG end as HSJG,");
strSQL.AppendLine("case when V_XLXSBJDCLHQ_BJCLID is null then bjdclhq.XLXSCLHQ_WSJGF else V_XLXSBJDCLHQ_WSJGF end as WSJGF,");
strSQL.AppendLine("case when V_XLXSBJDCLHQ_BJCLID is null then bjdclhq.XLXSCLHQ_HSJGF else V_XLXSBJDCLHQ_HSJGF end as HSJGF,");
strSQL.AppendLine("0 as SYJGB_HSJG, 0 as px1,");
strSQL.AppendLine("case when isnull(JGYLID, ' ') = ' ' then 1 else 0 end as px0, ");
strSQL.AppendLine("case when V_XLXSBJDCLHQ_BJCLID is null then bjdclhq.XLXSCLHQ_JGYBJCLID1 else isnull(V_XLXSBJDCLHQ_JGYBJCLID1,' ') end as V_XLXSBJDCLHQ_JGYBJCLID1,");
strSQL.AppendLine("case when V_XLXSBJDCLHQ_BJCLID is null then bjdclhq.XLXSCLHQ_JGBL1 else isnull(V_XLXSBJDCLHQ_JGBL1,0.0) end as V_XLXSBJDCLHQ_JGBL1,");
//strSQL.AppendLine("isnull(V_XLXSBJDCLHQ_JGYBJCLID1,' ') as V_XLXSBJDCLHQ_JGYBJCLID1, isnull(V_XLXSBJDCLHQ_JGBL1,0.0) as V_XLXSBJDCLHQ_JGBL1, ");
strSQL.AppendLine("V_XLXSBJDCLHQ_WHR,V_XLXSBJDCLHQ_WHRID,V_XLXSBJDCLHQ_WHSJ, ");
strSQL.AppendLine(" (select top 1 XLXSBJCL_BJCLID from XLXSBJCL a where (a.XLXSBJCL_JGYBJCLID =XLXSBJCL.XLXSBJCL_BJCLID or (a.XLXSBJCL_JGYBJCLID=XLXSBJCL.XLXSBJCL_JGYBJCLID and isnull(XLXSBJCL.XLXSBJCL_JGYBJCLID,' ') <> ' '))) as XLXSBJCL_JGYBJCLID ");
strSQL.AppendLine(" from XLXSBJCL");
strSQL.AppendLine(" left join (select distinct XLXSBJCL_JGYBJCLID as JGYLID from XLXSBJCL where isnull(XLXSBJCL_JGYBJCLID,' ') <> ' ') JGYL on JGYL.JGYLID = XLXSBJCL_BJCLID ");
strSQL.AppendLine(" left join V_XLXSBJDCLHQ on V_XLXSBJDCLHQ_BJDID=:pBJDID and V_XLXSBJDCLHQ_ID=:pVID and V_XLXSBJDCLHQ_TZRYID=:pRYID and V_XLXSBJDCLHQ_BJCLID=XLXSBJCL_BJCLID ");
strSQL.AppendLine(" left join ");
strSQL.AppendLine(" (");
strSQL.AppendLine("select BJCLID,XLXSCLHQ_WSJG,XLXSCLHQ_HSJG,XLXSCLHQ_WSJGF,XLXSCLHQ_HSJGF,XLXSCLHQ_JGYBJCLID1,XLXSCLHQ_JGBL1 ");
strSQL.AppendLine(" from XLXSCLHQ,");
strSQL.AppendLine(" (");
strSQL.AppendLine(" select XLXSCLHQ_BJCLID as BJCLID,");
strSQL.AppendLine(" max(XLXSCLHQ_YXQS)as maxYXQS");
strSQL.AppendLine(" from XLXSCLHQ,XLXSBJCL");
strSQL.AppendLine(" where XLXSCLHQ_JGBID='ZZZZZZZZ'");
strSQL.AppendLine(" and XLXSCLHQ_YXQS<=:pBJRQ");
strSQL.AppendLine(" and (XLXSCLHQ_YXQZ>=:pBJRQ or XLXSCLHQ_YXQZ is null)");
strSQL.AppendLine(" and XLXSBJCL_BJCLID=XLXSCLHQ_BJCLID");
strSQL.AppendLine(" group by XLXSCLHQ_BJCLID");
strSQL.AppendLine(" ) x");
strSQL.AppendLine(" where XLXSCLHQ_JGBID='ZZZZZZZZ'");
strSQL.AppendLine(" and XLXSCLHQ_BJCLID=BJCLID");
strSQL.AppendLine(" and XLXSCLHQ_YXQS=maxYXQS");
strSQL.AppendLine(" ) bjdclhq on bjdclhq.BJCLID=XLXSBJCL_BJCLID");
//关联使用的材料,提上显示
strSQL.AppendLine(" LEFT JOIN");
strSQL.AppendLine(" (");
strSQL.AppendLine(" SELECT DISTINCT XLJGCZBLM_BJCLID FROM XLXSBJDMX");
strSQL.AppendLine(" LEFT JOIN XLXSCLQD ON XLXSCLQD_XLXHID = XLXSBJDMX_XLXHID AND XLXSCLQD_XLGGID = XLXSBJDMX_XLGGID AND XLXSCLQD_XLBZID = XLXSBJDMX_XLBZID AND isnull(XLXSCLQD_DYDJID,' ') = isnull(XLXSBJDMX_DYDJID,' ') ");
strSQL.AppendLine(" LEFT JOIN XLJGCZBLM ON XLJGCZBLM_JGCZBID = XLXSCLQD_JGCZBID and XLXSCLQD_JGCZBBBID = XLJGCZBLM_JGCZBBBID ");
strSQL.AppendLine(" WHERE XLXSBJDMX_BJDID = :pBJDID and isnull(XLJGCZBLM_CLQDL,' ')<>' ' and XLXSCLQD_WPID = 'ZZZZ'");
strSQL.AppendLine(" ) BJCL_PX ON BJCL_PX.XLJGCZBLM_BJCLID = XLXSBJCL_BJCLID ");
//strSQL.AppendLine(" order by px,XLXSBJCL_BJCLID");
return strSQL;
}
public static StringBuilder GetJGEHQSql(bool bHSBZ, string sTBJCLID, string sLBJCLID, string sTJ, string sLJ)
{
StringBuilder strSQL = new StringBuilder();
strSQL.AppendLine("select case when BJCL_PX.XLJGCZBLM_BJCLID is null THEN 1 ELSE 0 end as px,case when BJCL_PX.XLJGCZBLM_BJCLID is null THEN 'N' ELSE 'Y' end as SYF,");
strSQL.AppendLine("XLXSBJCL_BJCLID,XLXSBJCL_BJCLMC || case when isnull(XLXSBJCL_TYBZ,'N')= 'Y' then '(停用)' else ' ' end as XLXSBJCL_BJCLMC,XLXSBJCL_BJHQ,");
strSQL.AppendLine("case when XLXSBJDCLHQ_BJCLID is null then bjdclhq.XLXSCLHQ_WSJG else XLXSBJDCLHQ_WSJG end as CLJG,");
strSQL.AppendLine("XLXSBJCL_ZZSL,");
strSQL.AppendLine("case when XLXSBJDCLHQ_BJCLID is null then bjdclhq.XLXSCLHQ_HSJG else XLXSBJDCLHQ_HSJG end as HSJG,");
strSQL.AppendLine("case when XLXSBJDCLHQ_BJCLID is null then bjdclhq.XLXSCLHQ_WSJGF else XLXSBJDCLHQ_WSJGF end as WSJGF,");
strSQL.AppendLine("case when XLXSBJDCLHQ_BJCLID is null then bjdclhq.XLXSCLHQ_HSJGF else XLXSBJDCLHQ_HSJGF end as HSJGF,");
strSQL.AppendLine("0 as SYJGB_HSJG, 0 as px1,");
strSQL.AppendLine("case when isnull(JGYLID, ' ') = ' ' then 1 else 0 end as px0, ");
strSQL.AppendLine("XLXSBJDCLHQ_WHR,XLXSBJDCLHQ_WHRID,XLXSBJDCLHQ_WHSJ, ");
strSQL.AppendLine(" (select top 1 XLXSBJCL_BJCLID from XLXSBJCL a where (a.XLXSBJCL_JGYBJCLID =XLXSBJCL.XLXSBJCL_BJCLID or (a.XLXSBJCL_JGYBJCLID=XLXSBJCL.XLXSBJCL_JGYBJCLID and isnull(XLXSBJCL.XLXSBJCL_JGYBJCLID,' ') <> ' '))) as XLXSBJCL_JGYBJCLID ");
strSQL.AppendLine(" from XLXSBJCL");
strSQL.AppendLine(" left join (select distinct XLXSBJCL_JGYBJCLID as JGYLID from XLXSBJCL where isnull(XLXSBJCL_JGYBJCLID,' ') <> ' ') JGYL on JGYL.JGYLID = XLXSBJCL_BJCLID ");
strSQL.AppendLine(" left join XLXSBJDCLHQ on XLXSBJDCLHQ_BJDID=:pBJDID and XLXSBJDCLHQ_BJCLID=XLXSBJCL_BJCLID");
strSQL.AppendLine(" left join ");
strSQL.AppendLine(" (");
strSQL.AppendLine("select BJCLID,");
if (bHSBZ)
{
strSQL.AppendLine(string.Format("case when isnull(BJCLID,' ')<>' ' and BJCLID='{0}' then {1}", sTBJCLID.Trim(), sTJ));
strSQL.AppendLine(string.Format(" when isnull(BJCLID,' ')<>' ' and BJCLID='{0}' then {1}", sLBJCLID.Trim(), sLJ));
strSQL.AppendLine(string.Format(" when isnull(JGYBJCLID,' ')<>' ' and JGYBJCLID='{0}' then {1}+XLXSCLHQ_HSJGF", sTBJCLID.Trim(), sTJ));
strSQL.AppendLine(string.Format(" when isnull(JGYBJCLID,' ')<>' ' and JGYBJCLID='{0}' then {1}+XLXSCLHQ_HSJGF", sLBJCLID.Trim(), sLJ));
strSQL.AppendLine(" else XLXSCLHQ_HSJG end as XLXSCLHQ_HSJG, ");
strSQL.AppendLine(string.Format("case when isnull(BJCLID,' ')<>' ' and BJCLID='{0}' then {1}/(1+ZZSL/100.0)", sTBJCLID.Trim(), sTJ));
strSQL.AppendLine(string.Format(" when isnull(BJCLID,' ')<>' ' and BJCLID='{0}' then {1}/(1+ZZSL/100.0)", sLBJCLID.Trim(), sLJ));
strSQL.AppendLine(string.Format(" when isnull(JGYBJCLID,' ')<>' ' and JGYBJCLID='{0}' then {1}/(1+ZZSL/100.0)+XLXSCLHQ_WSJGF", sTBJCLID.Trim(), sTJ));
strSQL.AppendLine(string.Format(" when isnull(JGYBJCLID,' ')<>' ' and JGYBJCLID='{0}' then {1}/(1+ZZSL/100.0)+XLXSCLHQ_WSJGF", sLBJCLID.Trim(), sLJ));
strSQL.AppendLine(" else XLXSCLHQ_WSJG end as XLXSCLHQ_WSJG, ");
strSQL.AppendLine(" XLXSCLHQ_WSJGF,XLXSCLHQ_HSJGF ");
}
else
{
strSQL.AppendLine(string.Format("case when isnull(BJCLID,' ')<>' ' and BJCLID='{0}' then {1}", sTBJCLID.Trim(), sTJ));
strSQL.AppendLine(string.Format(" when isnull(BJCLID,' ')<>' ' and BJCLID='{0}' then {1}", sLBJCLID.Trim(), sLJ));
strSQL.AppendLine(string.Format(" when isnull(JGYBJCLID,' ')<>' ' and JGYBJCLID='{0}' then {1}+XLXSCLHQ_WSJGF", sTBJCLID.Trim(), sTJ));
strSQL.AppendLine(string.Format(" when isnull(JGYBJCLID,' ')<>' ' and JGYBJCLID='{0}' then {1}+XLXSCLHQ_WSJGF", sLBJCLID.Trim(), sLJ));
strSQL.AppendLine(" else XLXSCLHQ_WSJG end as XLXSCLHQ_WSJG, ");
strSQL.AppendLine(string.Format("case when isnull(BJCLID,' ')<>' ' and BJCLID='{0}' then {1}*(1+ZZSL/100.0)", sTBJCLID.Trim(), sTJ));
strSQL.AppendLine(string.Format(" when isnull(BJCLID,' ')<>' ' and BJCLID='{0}' then {1}*(1+ZZSL/100.0)", sLBJCLID.Trim(), sLJ));
strSQL.AppendLine(string.Format(" when isnull(JGYBJCLID,' ')<>' ' and JGYBJCLID='{0}' then {1}*(1+ZZSL/100.0)+XLXSCLHQ_HSJGF", sTBJCLID.Trim(), sTJ));
strSQL.AppendLine(string.Format(" when isnull(JGYBJCLID,' ')<>' ' and JGYBJCLID='{0}' then {1}*(1+ZZSL/100.0)+XLXSCLHQ_HSJGF", sLBJCLID.Trim(), sLJ));
strSQL.AppendLine(" else XLXSCLHQ_HSJG end as XLXSCLHQ_HSJG, ");
strSQL.AppendLine(" XLXSCLHQ_WSJGF,XLXSCLHQ_HSJGF ");
}
strSQL.AppendLine(" from XLXSCLHQ,");
strSQL.AppendLine(" (");
strSQL.AppendLine(" select XLXSCLHQ_BJCLID as BJCLID,XLXSBJCL_JGYBJCLID as JGYBJCLID,XLXSBJCL_ZZSL as ZZSL,");
strSQL.AppendLine(" max(XLXSCLHQ_YXQS)as maxYXQS");
strSQL.AppendLine(" from XLXSCLHQ,XLXSBJCL");
strSQL.AppendLine(" where XLXSCLHQ_JGBID='ZZZZZZZZ'");
strSQL.AppendLine(" and XLXSCLHQ_YXQS<=:pBJRQ");
strSQL.AppendLine(" and (XLXSCLHQ_YXQZ>=:pBJRQ or XLXSCLHQ_YXQZ is null)");
strSQL.AppendLine(" and XLXSBJCL_BJCLID=XLXSCLHQ_BJCLID");
strSQL.AppendLine(" group by XLXSCLHQ_BJCLID,XLXSBJCL_JGYBJCLID,XLXSBJCL_ZZSL");
strSQL.AppendLine(" ) x");
strSQL.AppendLine(" where XLXSCLHQ_JGBID='ZZZZZZZZ'");
strSQL.AppendLine(" and XLXSCLHQ_BJCLID=BJCLID");
strSQL.AppendLine(" and XLXSCLHQ_YXQS=maxYXQS");
strSQL.AppendLine(" ) bjdclhq on bjdclhq.BJCLID=XLXSBJCL_BJCLID");
//关联使用的材料,提上显示
strSQL.AppendLine(" LEFT JOIN");
strSQL.AppendLine(" (");
strSQL.AppendLine(" SELECT DISTINCT XLJGCZBLM_BJCLID FROM XLXSBJDMX");
strSQL.AppendLine(" LEFT JOIN XLXSCLQD ON XLXSCLQD_XLXHID = XLXSBJDMX_XLXHID AND XLXSCLQD_XLGGID = XLXSBJDMX_XLGGID AND XLXSCLQD_XLBZID = XLXSBJDMX_XLBZID AND isnull(XLXSCLQD_DYDJID,' ') = isnull(XLXSBJDMX_DYDJID,' ') ");
strSQL.AppendLine(" LEFT JOIN XLJGCZBLM ON XLJGCZBLM_JGCZBID = XLXSCLQD_JGCZBID and XLXSCLQD_JGCZBBBID = XLJGCZBLM_JGCZBBBID ");
strSQL.AppendLine(" WHERE XLXSBJDMX_BJDID = :pBJDID and isnull(XLJGCZBLM_CLQDL,' ')<>' ' and XLXSCLQD_WPID = 'ZZZZ'");
strSQL.AppendLine(" ) BJCL_PX ON BJCL_PX.XLJGCZBLM_BJCLID = XLXSBJCL_BJCLID ");
//strSQL.AppendLine(" order by px,XLXSBJCL_BJCLID");
return strSQL;
}
public static StringBuilder GetJGEHQ_VSql(bool bHSBZ, string sTBJCLID, string sLBJCLID, string sTJ, string sLJ)
{
StringBuilder strSQL = new StringBuilder();
strSQL.AppendLine("select case when BJCL_PX.XLJGCZBLM_BJCLID is null THEN 1 ELSE 0 end as px,case when BJCL_PX.XLJGCZBLM_BJCLID is null THEN 'N' ELSE 'Y' end as SYF,");
strSQL.AppendLine("XLXSBJCL_BJCLID,XLXSBJCL_BJCLMC || case when isnull(XLXSBJCL_TYBZ,'N')= 'Y' then '(停用)' else ' ' end as XLXSBJCL_BJCLMC,XLXSBJCL_BJHQ,");
strSQL.AppendLine("case when V_XLXSBJDCLHQ_BJCLID is null then bjdclhq.XLXSCLHQ_WSJG else V_XLXSBJDCLHQ_WSJG end as CLJG,");
strSQL.AppendLine("XLXSBJCL_ZZSL,");
strSQL.AppendLine("case when V_XLXSBJDCLHQ_BJCLID is null then bjdclhq.XLXSCLHQ_HSJG else V_XLXSBJDCLHQ_HSJG end as HSJG,");
strSQL.AppendLine("case when V_XLXSBJDCLHQ_BJCLID is null then bjdclhq.XLXSCLHQ_WSJGF else V_XLXSBJDCLHQ_WSJGF end as WSJGF,");
strSQL.AppendLine("case when V_XLXSBJDCLHQ_BJCLID is null then bjdclhq.XLXSCLHQ_HSJGF else V_XLXSBJDCLHQ_HSJGF end as HSJGF,");
strSQL.AppendLine("0 as SYJGB_HSJG, 0 as px1,");
strSQL.AppendLine("case when isnull(JGYLID, ' ') = ' ' then 1 else 0 end as px0, ");
strSQL.AppendLine("case when V_XLXSBJDCLHQ_BJCLID is null then bjdclhq.XLXSCLHQ_JGYBJCLID1 else isnull(V_XLXSBJDCLHQ_JGYBJCLID1,' ') end as V_XLXSBJDCLHQ_JGYBJCLID1,");
strSQL.AppendLine("case when V_XLXSBJDCLHQ_BJCLID is null then bjdclhq.XLXSCLHQ_JGBL1 else isnull(V_XLXSBJDCLHQ_JGBL1,0.0) end as V_XLXSBJDCLHQ_JGBL1,");
//strSQL.AppendLine("isnull(V_XLXSBJDCLHQ_JGYBJCLID1,' ') as V_XLXSBJDCLHQ_JGYBJCLID1, isnull(V_XLXSBJDCLHQ_JGBL1,0.0) as V_XLXSBJDCLHQ_JGBL1, ");
strSQL.AppendLine("V_XLXSBJDCLHQ_WHR,V_XLXSBJDCLHQ_WHRID,V_XLXSBJDCLHQ_WHSJ, ");
strSQL.AppendLine(" (select top 1 XLXSBJCL_BJCLID from XLXSBJCL a where (a.XLXSBJCL_JGYBJCLID =XLXSBJCL.XLXSBJCL_BJCLID or (a.XLXSBJCL_JGYBJCLID=XLXSBJCL.XLXSBJCL_JGYBJCLID and isnull(XLXSBJCL.XLXSBJCL_JGYBJCLID,' ') <> ' '))) as XLXSBJCL_JGYBJCLID ");
strSQL.AppendLine(" from XLXSBJCL");
strSQL.AppendLine(" left join (select distinct XLXSBJCL_JGYBJCLID as JGYLID from XLXSBJCL where isnull(XLXSBJCL_JGYBJCLID,' ') <> ' ') JGYL on JGYL.JGYLID = XLXSBJCL_BJCLID ");
strSQL.AppendLine(" left join V_XLXSBJDCLHQ on V_XLXSBJDCLHQ_BJDID=:pBJDID and V_XLXSBJDCLHQ_ID=:pVID and V_XLXSBJDCLHQ_TZRYID=:pRYID and V_XLXSBJDCLHQ_BJCLID=XLXSBJCL_BJCLID ");
strSQL.AppendLine(" left join ");
strSQL.AppendLine(" (");
strSQL.AppendLine("select BJCLID,XLXSCLHQ_JGYBJCLID1,XLXSCLHQ_JGBL1,");
if (bHSBZ)
{
strSQL.AppendLine(string.Format("case when isnull(BJCLID,' ')<>' ' and BJCLID='{0}' then {1}", sTBJCLID.Trim(), sTJ));
strSQL.AppendLine(string.Format(" when isnull(BJCLID,' ')<>' ' and BJCLID='{0}' then {1}", sLBJCLID.Trim(), sLJ));
strSQL.AppendLine(string.Format(" when isnull(JGYBJCLID,' ')<>' ' and JGYBJCLID='{0}' then {1}+XLXSCLHQ_HSJGF", sTBJCLID.Trim(), sTJ));
strSQL.AppendLine(string.Format(" when isnull(JGYBJCLID,' ')<>' ' and JGYBJCLID='{0}' then {1}+XLXSCLHQ_HSJGF", sLBJCLID.Trim(), sLJ));
strSQL.AppendLine(" else XLXSCLHQ_HSJG end as XLXSCLHQ_HSJG, ");
strSQL.AppendLine(string.Format("case when isnull(BJCLID,' ')<>' ' and BJCLID='{0}' then {1}/(1+ZZSL/100.0)", sTBJCLID.Trim(), sTJ));
strSQL.AppendLine(string.Format(" when isnull(BJCLID,' ')<>' ' and BJCLID='{0}' then {1}/(1+ZZSL/100.0)", sLBJCLID.Trim(), sLJ));
strSQL.AppendLine(string.Format(" when isnull(JGYBJCLID,' ')<>' ' and JGYBJCLID='{0}' then {1}/(1+ZZSL/100.0)+XLXSCLHQ_WSJGF", sTBJCLID.Trim(), sTJ));
strSQL.AppendLine(string.Format(" when isnull(JGYBJCLID,' ')<>' ' and JGYBJCLID='{0}' then {1}/(1+ZZSL/100.0)+XLXSCLHQ_WSJGF", sLBJCLID.Trim(), sLJ));
strSQL.AppendLine(" else XLXSCLHQ_WSJG end as XLXSCLHQ_WSJG, ");
strSQL.AppendLine(" XLXSCLHQ_WSJGF,XLXSCLHQ_HSJGF ");
}
else
{
strSQL.AppendLine(string.Format("case when isnull(BJCLID,' ')<>' ' and BJCLID='{0}' then {1}", sTBJCLID.Trim(), sTJ));
strSQL.AppendLine(string.Format(" when isnull(BJCLID,' ')<>' ' and BJCLID='{0}' then {1}", sLBJCLID.Trim(), sLJ));
strSQL.AppendLine(string.Format(" when isnull(JGYBJCLID,' ')<>' ' and JGYBJCLID='{0}' then {1}+XLXSCLHQ_WSJGF", sTBJCLID.Trim(), sTJ));
strSQL.AppendLine(string.Format(" when isnull(JGYBJCLID,' ')<>' ' and JGYBJCLID='{0}' then {1}+XLXSCLHQ_WSJGF", sLBJCLID.Trim(), sLJ));
strSQL.AppendLine(" else XLXSCLHQ_WSJG end as XLXSCLHQ_WSJG, ");
strSQL.AppendLine(string.Format("case when isnull(BJCLID,' ')<>' ' and BJCLID='{0}' then {1}*(1+ZZSL/100.0)", sTBJCLID.Trim(), sTJ));
strSQL.AppendLine(string.Format(" when isnull(BJCLID,' ')<>' ' and BJCLID='{0}' then {1}*(1+ZZSL/100.0)", sLBJCLID.Trim(), sLJ));
strSQL.AppendLine(string.Format(" when isnull(JGYBJCLID,' ')<>' ' and JGYBJCLID='{0}' then {1}*(1+ZZSL/100.0)+XLXSCLHQ_HSJGF", sTBJCLID.Trim(), sTJ));
strSQL.AppendLine(string.Format(" when isnull(JGYBJCLID,' ')<>' ' and JGYBJCLID='{0}' then {1}*(1+ZZSL/100.0)+XLXSCLHQ_HSJGF", sLBJCLID.Trim(), sLJ));
strSQL.AppendLine(" else XLXSCLHQ_HSJG end as XLXSCLHQ_HSJG, ");
strSQL.AppendLine(" XLXSCLHQ_WSJGF,XLXSCLHQ_HSJGF ");
}
strSQL.AppendLine(" from XLXSCLHQ,");
strSQL.AppendLine(" (");
strSQL.AppendLine(" select XLXSCLHQ_BJCLID as BJCLID,XLXSBJCL_JGYBJCLID as JGYBJCLID,XLXSBJCL_ZZSL as ZZSL,");
strSQL.AppendLine(" max(XLXSCLHQ_YXQS)as maxYXQS");
strSQL.AppendLine(" from XLXSCLHQ,XLXSBJCL");
strSQL.AppendLine(" where XLXSCLHQ_JGBID='ZZZZZZZZ'");
strSQL.AppendLine(" and XLXSCLHQ_YXQS<=:pBJRQ");
strSQL.AppendLine(" and (XLXSCLHQ_YXQZ>=:pBJRQ or XLXSCLHQ_YXQZ is null)");
strSQL.AppendLine(" and XLXSBJCL_BJCLID=XLXSCLHQ_BJCLID");
strSQL.AppendLine(" group by XLXSCLHQ_BJCLID,XLXSBJCL_JGYBJCLID,XLXSBJCL_ZZSL");
strSQL.AppendLine(" ) x");
strSQL.AppendLine(" where XLXSCLHQ_JGBID='ZZZZZZZZ'");
strSQL.AppendLine(" and XLXSCLHQ_BJCLID=BJCLID");
strSQL.AppendLine(" and XLXSCLHQ_YXQS=maxYXQS");
strSQL.AppendLine(" ) bjdclhq on bjdclhq.BJCLID=XLXSBJCL_BJCLID");
//关联使用的材料,提上显示
strSQL.AppendLine(" LEFT JOIN");
strSQL.AppendLine(" (");
strSQL.AppendLine(" SELECT DISTINCT XLJGCZBLM_BJCLID FROM XLXSBJDMX");
strSQL.AppendLine(" LEFT JOIN XLXSCLQD ON XLXSCLQD_XLXHID = XLXSBJDMX_XLXHID AND XLXSCLQD_XLGGID = XLXSBJDMX_XLGGID AND XLXSCLQD_XLBZID = XLXSBJDMX_XLBZID AND isnull(XLXSCLQD_DYDJID,' ') = isnull(XLXSBJDMX_DYDJID,' ') ");
strSQL.AppendLine(" LEFT JOIN XLJGCZBLM ON XLJGCZBLM_JGCZBID = XLXSCLQD_JGCZBID and XLXSCLQD_JGCZBBBID = XLJGCZBLM_JGCZBBBID ");
strSQL.AppendLine(" WHERE XLXSBJDMX_BJDID = :pBJDID and isnull(XLJGCZBLM_CLQDL,' ')<>' ' and XLXSCLQD_WPID = 'ZZZZ'");
strSQL.AppendLine(" ) BJCL_PX ON BJCL_PX.XLJGCZBLM_BJCLID = XLXSBJCL_BJCLID ");
//strSQL.AppendLine(" order by px,XLXSBJCL_BJCLID");
return strSQL;
}
}
public partial class XLBJD_CLHQTZList : OperationBase
{
XLBJD_CLHQTZ entity = new XLBJD_CLHQTZ();
protected void Page_Load(object sender, EventArgs e)
{
this.UMID = 100860174;
this.UMName = "线缆销售报价单";
this.CurMaster = Master;
this.Tabs = Tab;
this.PageHeight = 600;
this.PageWidth = 850;
CurMaster.BtnQueryVisible = false;
CurMaster.BtnReportVisible = false;
AddListSetMap(new ListSet(pagSHD.ID, null, grdSHD, entity, UPSHD));
base.CustomPageSize = 1000;
base.InitPage();
if (!IsPostBack)
InsertVHQB(PageParam.GetRTrimString("BJDID"));
grdSHD.EnabledToolBar = false;
CurMaster.PnlBill.Visible = false;
CurMaster.PnlQuery.Visible = false;
if (PageParam.GetRTrimString("JGBIDS").Equals(""))
{
grdSHD.FindColumnByFieldName("SYJGB_HSJG").Visible = false;
}
if (!IsPostBack)
{
Master_OnQuery();
GridDataBind();
InitControl();
//料价追溯界面调用,默认选中BJCLID所在行
if (!PageParam.GetRTrimString("BJCLID").Equals(""))
{
for (int i = 0; i < grdSHD.Rows.Count; i++)
{
if (grdSHD.GetValueByFieldName("XLXSBJCL_BJCLID", i).Trim().Equals(PageParam.GetRTrimString("BJCLID")))
{
grdSHD.SelectedIndex = i;
break;
}
}
}
}
grdSHD.FindColumnByFieldName("CLJG").NumberDecimalPlace = XLBJDUtils.BJCLPriceDecimal;
grdSHD.FindColumnByFieldName("HSJG").NumberDecimalPlace = XLBJDUtils.BJCLPriceDecimal;
grdSHD.FindColumnByFieldName("WSJGF").NumberDecimalPlace = XLBJDUtils.BJCLPriceDecimal;
grdSHD.FindColumnByFieldName("HSJGF").NumberDecimalPlace = XLBJDUtils.BJCLPriceDecimal;
grdSHD.FindColumnByFieldName("SYJGB_HSJG").NumberDecimalPlace = XLBJDUtils.BJCLPriceDecimal;
}
#region 模板继承事件
protected override void Master_OnQuery()
{
entity.sBJDID = PageParam.GetRTrimString("BJDID");
entity.sVID = txtVCLHQID.Value;
entity.sRYID = CurSession.RYID;
entity.sBJRQ = PageParam.GetRTrimString("BJRQ");
entity.sBJFLID = PageParam.GetRTrimString("BJFLID");
entity.sJGBID = PageParam.GetRTrimString("JGBID");
entity.sJGBIDS = PageParam.GetRTrimString("JGBIDS");
entity.sBJDHQLY = PageParam.GetRTrimString("BJDHQLY");
entity.bHSBZ = PageParam.GetRTrimString("HSBZ").Equals("Y");
entity.sTBJCLID = PageParam.GetRTrimString("TBJCLID");
entity.sLBJCLID = PageParam.GetRTrimString("LBJCLID");
entity.sTJ = PageParam.GetRTrimString("TJ");
entity.sLJ = PageParam.GetRTrimString("LJ");
entity.sBJU057 = CurSession.GetOption(100860000, "BJU057");
base.Master_OnQuery();
grdSHD.SelectedIndex = -1;
}
protected override void GridDataBind()
{
base.GridDataBind();
}
protected override bool DataLogicValid()
{
return base.DataLogicValid();
}
protected override bool Master_OnOK()
{
bool bResult = base.Master_OnOK();
if (!bResult) return false;
string sJGBBJBM = string.IsNullOrEmpty(PageParam.GetRTrimString("JGBBJBM")) ? "表价" : PageParam.GetRTrimString("JGBBJBM");
string sBJBM = string.IsNullOrEmpty(PageParam.GetRTrimString("BJBM")) ? "报价" : PageParam.GetRTrimString("BJBM");
string sBJDHQLJBM = PageParam.GetRTrimString("BJBM");
string sTBJLCID = PageParam.GetRTrimString("TBJCLID").Trim();
string sLBJCLID = PageParam.GetRTrimString("LBJCLID").Trim();
if (!sTBJLCID.Trim().Equals("") || !sLBJCLID.Trim().Equals(""))
{
string sTLJMsg = "";
for (int i = 0; i < grdSHD.NewRows.Count; i++)
{
if (!sTBJLCID.Trim().Equals(""))
{
if (grdSHD.GetValueByFieldName("XLXSBJCL_BJCLID", grdSHD.NewRows[i]).ToString().Trim() == sTBJLCID)
{
double dTJ = CMISproConvert.StrToFloat(grdSHD.GetValueByFieldName("CLJG", grdSHD.NewRows[i]).ToString().Trim());
if (dTJ == 0)
{
string sTCLMC = grdSHD.GetValueByFieldName("XLXSBJCL_BJCLID", grdSHD.NewRows[i]).ToString().Trim() + "|" + grdSHD.GetValueByFieldName("XLXSBJCL_BJCLMC", grdSHD.NewRows[i]).ToString().Trim();
if (!sTLJMsg.Equals(""))
sTLJMsg += "、";
sTLJMsg += sTCLMC;
}
}
}
if (!sLBJCLID.Trim().Equals(""))
{
if (grdSHD.GetValueByFieldName("XLXSBJCL_BJCLID", grdSHD.NewRows[i]).ToString().Trim() == sLBJCLID)
{
double dLJ = CMISproConvert.StrToFloat(grdSHD.GetValueByFieldName("CLJG", grdSHD.NewRows[i]).ToString().Trim());
if (dLJ == 0)
{
string sLCLMC = grdSHD.GetValueByFieldName("XLXSBJCL_BJCLID", grdSHD.NewRows[i]).ToString().Trim() + "|" + grdSHD.GetValueByFieldName("XLXSBJCL_BJCLMC", grdSHD.NewRows[i]).ToString().Trim();
if (!sTLJMsg.Equals(""))
sTLJMsg += "、";
sTLJMsg += sLCLMC;
}
}
}
}
if (!sTLJMsg.Equals(""))
{
ShowMessage(sTLJMsg + "价格不允许为0!");
return false;
}
}
string sMsg = "";
bool bCalcBJDHQCLCB_CLCB_JGBJJ_JGBBJ = false;
if (XLBJDUtils.IsJGEJGB(PageParam.GetRTrimString("JGBID")))//表价实时计算价格表
{
sMsg = "将使用调整后的材料行情重算" + sJGBBJBM + ",进而重算" + sBJBM + "。是否继续?";
bCalcBJDHQCLCB_CLCB_JGBJJ_JGBBJ = true;
}
else
{
if (PageParam.GetRTrimString("JGBTJYS").Equals("3"))
{
sMsg = "将使用调整后的材料行情重算" + sJGBBJBM + ",进而重算" + sBJBM + "。是否继续?";
bCalcBJDHQCLCB_CLCB_JGBJJ_JGBBJ = true;
}
else
{
if (PageParam.GetRTrimString("LJJCLLX").Equals("2"))
{
if (sBJDHQLJBM.Equals(""))
sMsg = "将材料行情代入公式“sum(材料价格*材料用量)”,重新计算报价单行情料价,将重新计算的报价单行情料价代入公式“料价价差率=(报价-报价单行情料价)/报价*100”,重新计算料价价差率或报价。是否继续?";
else
sMsg = "将材料行情代入公式“sum(材料价格*材料用量)”,重新计算" + sBJDHQLJBM + ",将重新计算的" + sBJDHQLJBM + "代入公式“" + sBJDHQLJBM + "价差率=(" + sBJBM + "-" + sBJDHQLJBM + ")/" + sBJBM + "*100”,重新计算" + sBJDHQLJBM + "价差率或" + sBJBM + "。是否继续?";
}
else if (PageParam.GetRTrimString("LJJCLLX").Equals("3"))
{
if (sBJDHQLJBM.Equals(""))
sMsg = "将材料行情代入公式“sum(材料价格*材料用量)”,重新计算报价单行情料价,将重新计算的报价单行情料价代入公式“料价价差率=(报价-报价单行情料价)/报价单行情料价*100”,重新计算料价价差率或报价。是否继续?";
else
sMsg = "将材料行情代入公式“sum(材料价格*材料用量)”,重新计算" + sBJDHQLJBM + ",将重新计算的" + sBJDHQLJBM + "代入公式“" + sBJDHQLJBM + "价差率=(" + sBJBM + "-" + sBJDHQLJBM + ")/" + sBJDHQLJBM + "*100”,重新计算" + sBJDHQLJBM + "价差率或" + sBJBM + "。是否继续?";
}
else if (PageParam.GetRTrimString("LJJCLLX").Equals("4"))
{
if (sBJDHQLJBM.Equals(""))
sMsg = "将材料行情代入公式“sum(材料价格*材料用量)”,重新计算报价单行情料价,将重新计算的报价单行情料价代入公式“料价价差率=(报价单行情料价)/报价*100”,重新计算料价价差率或报价。是否继续?";
else
sMsg = "将材料行情代入公式“sum(材料价格*材料用量)”,重新计算" + sBJDHQLJBM + ",将重新计算的" + sBJDHQLJBM + "代入公式“" + sBJDHQLJBM + "价差率=(" + sBJDHQLJBM + ")/" + sBJBM + "*100”,重新计算" + sBJDHQLJBM + "价差率或" + sBJBM + "。是否继续?";
}
else
{
if (sBJDHQLJBM.Equals(""))
sMsg = "将材料行情代入公式“sum(材料价格*材料用量)”,重新计算报价单行情料价。是否继续?";
else
sMsg = "将材料行情代入公式“sum(材料价格*材料用量)”,重新计算" + sBJDHQLJBM + "。是否继续?";
}
}
}
Confirm.Register("IsQD", sMsg);
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();
}
TDatabase DBERP = TContextDatabases.GetDatabase("DBERP");
string sBJDID = PageParam.GetRTrimString("BJDID");
if (!sBJDID.Equals(""))
{
string sErrMsg = "";
try
{
DBERP.BeginTrans();
//先删除材料行情、物料行情
DBERP.ExecSQL(string.Format("delete from XLXSBJDCLHQ where XLXSBJDCLHQ_BJDID='{0}'", sBJDID));
DBERP.ExecSQL(string.Format("delete from XLXSBJDWLHQ where XLXSBJDWLHQ_BJDID='{0}'", sBJDID));
TSQL tmpSQL = new TSQL(DBERP);
//此处,直接利用上方插入的XLXSBJDCLHQ记录作为加工原料的价格
XLBJDUtils.InsertXLXSBJDWLHQbyBJDCLHQ_V(DBERP, tmpSQL, sBJDID, txtVWLHQID.Value, txtVCLHQID.Value, CurSession, PageParam.GetRTrimString("JGBID"), PageParam.GetRTrimString("BJRQ"), CurSession.UserName, CurSession.UserId);
//将临时表内容更新至材料行情、物料行情
InsertHQB(DBERP, sBJDID, CurSession.RYID, txtVCLHQID.Value, txtVWLHQID.Value);
double fTJ = 0;
double fLJ = 0;
for (int i = 0; i < grdSHD.NewRows.Count; i++)
{
//循环更新报价单行情时,一并记录铜价、铝价
if (grdSHD.GetValueByFieldName("XLXSBJCL_BJCLID", grdSHD.NewRows[i]).ToString().Trim() == PageParam.GetRTrimString("TBJCLID"))
{
if (PageParam.GetRTrimString("HSBZ").Equals("Y"))
fTJ = CMISproConvert.StrToFloat(grdSHD.GetValueByFieldName("HSJG", grdSHD.NewRows[i]).ToString().Trim());
else
fTJ = CMISproConvert.StrToFloat(grdSHD.GetValueByFieldName("CLJG", grdSHD.NewRows[i]).ToString().Trim());
}
else if (grdSHD.GetValueByFieldName("XLXSBJCL_BJCLID", grdSHD.NewRows[i]).ToString().Trim() == PageParam.GetRTrimString("LBJCLID"))
{
if (PageParam.GetRTrimString("HSBZ").Equals("Y"))
fLJ = CMISproConvert.StrToFloat(grdSHD.GetValueByFieldName("HSJG", grdSHD.NewRows[i]).ToString().Trim());
else
fLJ = CMISproConvert.StrToFloat(grdSHD.GetValueByFieldName("CLJG", grdSHD.NewRows[i]).ToString().Trim());
}
}
//补充更新XLXSBJD_TJ、XLXSBJD_LJ
if (!PageParam.GetRTrimString("TBJCLID").Equals("") || !PageParam.GetRTrimString("LBJCLID").Equals(""))
{
tmpSQL.Clear();
tmpSQL.Add("update XLXSBJD set XLXSBJD_TJ=:pTJ,XLXSBJD_LJ=:pLJ");
tmpSQL.Add(" where XLXSBJD_BJDID=:pBJDID");
tmpSQL.ParamByName("pTJ").Value = fTJ;
tmpSQL.ParamByName("pLJ").Value = fLJ;
tmpSQL.ParamByName("pBJDID").Value = sBJDID;
DBERP.ExecSQL(tmpSQL);
}
if (bCalcBJDHQCLCB_CLCB_JGBJJ_JGBBJ)//根据最新报价单行情重算
{
XLBJDCalcUtils.CalcAfterBJDHQChange(DBERP, tmpSQL, sBJDID, 1, GetOption(100860000,"BJU002"), GetOption(100860000,"BJU003"), GetOption(100860000,"BJU018"), CurSession.UserId, CurSession.UserName, ref sErrMsg);
}
else//否则只更新报价单行情料价
{
XLBJDCalcUtils.CalcBJDHQCLCB(DBERP, tmpSQL, sBJDID, 1, PageParam.GetRTrimString("HSBZ").Equals("Y"), PageParam.GetRTrimString("JGBID"), PageParam.GetRTrimString("JGBIDS"), PageParam.GetRTrimString("JSBLFS"),
GetOption(100860000,"BJU002"), GetOption(100860000,"BJU003"), GetOption(100860000,"BJU018"), CurSession.UserId, CurSession.UserName, ref sErrMsg);
string sJGBJJLY = XLBJDUtils.GetXLXSJGBXXByJGBID(PageParam.GetRTrimString("JGBID")).XLXSJGB_JJLY;
string ABJDHQJSBJ = XLBJDUtils.GetBJFLXX(PageParam.GetRTrimString("BJFLID")).XLXSBJFL_ABJDHQJSBJ;
if (ABJDHQJSBJ == "Y" && sJGBJJLY == "A")
{
#region 配置信息
tmpSQL.Clear();
tmpSQL.Add("select XLXSBJD_JGBID,XLXSJGB_MXBH,XLXSJGB_JGBIDS,XLXSJGB_JGCIDS,XLXSJGB_BJLY,XLXSJGB_TJYS,XLXSJGB_JSBLFS, ");
tmpSQL.Add(" XLXSBJD_BJFLID,XLXSBJFL_BJDHQLY,XLXSBJFL_TZCLHQ,XLXSBJFL_JGBTJYSS,XLXSBJFL_BJJCLLX,XLXSBJFL_LJJCLLX,XLXSBJFL_CPBJMRXSWS,");
tmpSQL.Add(" XLXSBJFL_ZDXJJCLLX,XLXSBJFL_JYF,XLXSBJFL_YFWLID,XLXSBJFL_BJHYF,XLXSBJFL_ZDXJGS,XLXSBJFL_JSJGS,");
tmpSQL.Add(" XLXSBJD_JZBJHS,XLXSBJD_BJRQ");
tmpSQL.Add(" from XLXSBJD ");
tmpSQL.Add(" left join XLXSJGB on XLXSJGB_JGBID=XLXSBJD_JGBID ");
tmpSQL.Add(" left join XLXSBJFL on XLXSBJFL_BJFLID=XLXSBJD_BJFLID");
tmpSQL.Add(" where XLXSBJD_BJDID=:pBJDID");
tmpSQL.ParamByName("pBJDID").Value = sBJDID;
DataSet dsBJD = DBERP.OpenDataSet(tmpSQL);
if (dsBJD.Tables[0].Rows.Count == 0)
{
return false;
}
string sBJU002 = GetOption(100860000,"BJU002");
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();
#endregion
//同步报价单明细记录插入XLXSBJDCLCB、XLXSBJDJJYZ
XLBJDInfo.InsertCLCBandJJYZ(DBERP, tmpSQL, TControlState.ctsEdit, sBJDID, sJGBID, sBJRQ, CurSession.UserId, CurSession.UserName, GetOption(100860000,"BJU003"), bHSBZ);
XLBJDUtils.UpdateBJDMX(DBERP, tmpSQL, sBJFLID, sBJDID, iXSWS, sJCLLX, sLJJCLLX, sCPBJMRXSWS, "", 1);
bool bZDXJTZ = false;
if (sZDXJGS.Contains("CLCB") || sZDXJGS.Contains("JGBJJ") || sZDXJGS.Contains("JGBBJ") || sZDXJGS.Contains("CPBJ"))
{
XLBJDUtils.UpdateZDXJGS(DBERP, tmpSQL, sBJDID, sBJFLID, sBJU002, "", 1);
bZDXJTZ = true;
}
if (sJSJGS.Contains("CLCB") || sJSJGS.Contains("JGBJJ") || sJSJGS.Contains("JGBBJ") || sJSJGS.Contains("CPBJ") || bZDXJTZ)
{
XLBJDUtils.UpdateJSJGS(DBERP, tmpSQL, sBJDID, sBJFLID, sBJU002, "", 1);
}
}
else
{
UpdateLJJCL(DBERP, tmpSQL, sBJDID, PageParam.GetRTrimString("JCLLX"), PageParam.GetRTrimString("LJJCLLX"), PageParam.GetRTrimString("CPBJMRXSWS"), GetOption(100860000,"BJU002"));
UpdateBJLJJCL(DBERP, tmpSQL, sBJDID, PageParam.GetRTrimString("BJLJJCLLX"));
//只有最低限价公式中包含CPBJ,才需要触发计算最低限价
tmpSQL.Clear();
tmpSQL.Add("select XLXSBJFL_ZDXJGS,XLXSBJFL_JSJGS from XLXSBJFL where XLXSBJFL_BJFLID=:pBJFLID");
tmpSQL.ParamByName("pBJFLID").Value = PageParam.GetRTrimString("BJFLID");
DataSet dsFL = DBERP.OpenDataSet(tmpSQL);
if (dsFL.Tables[0].Rows.Count > 0)
{
bool bZDXJTZ = false;
if (dsFL.Tables[0].Rows[0]["XLXSBJFL_ZDXJGS"].ToString().Trim().Contains("CPBJ"))
{
XLBJDUtils.UpdateZDXJGS(DBERP, tmpSQL, sBJDID, PageParam.GetRTrimString("BJFLID"), GetOption(100860000,"BJU002"), "", 1);
bZDXJTZ = true;
}
if (dsFL.Tables[0].Rows[0]["XLXSBJFL_JSJGS"].ToString().Trim().Contains("CPBJ") || bZDXJTZ)
{
XLBJDUtils.UpdateJSJGS(DBERP, tmpSQL, sBJDID, PageParam.GetRTrimString("BJFLID"), GetOption(100860000,"BJU002"), "", 1);
}
}
}
XLBJDUtils.UpdateXLXSBJD(DBERP, tmpSQL, sBJDID, PageParam.GetRTrimString("JCLLX"), PageParam.GetRTrimString("LJJCLLX"), PageParam.GetRTrimString("ZDXJJCLLX"), PageParam.GetRTrimString("JYF"), PageParam.GetRTrimString("YSJDID"),
PageParam.GetRTrimString("GYSID"), PageParam.GetRTrimString("YFWLID"), PageParam.GetRTrimString("BJHYF"));
}
DBERP.CommitTrans();
DialogOperationScript dos = new DialogOperationScript(this);
dos.ClickOwnerButton(PageParam.GetRTrimString("btnRefreshCID"));
dos.CloseSelf();
dos.Execute();
}
catch (Exception ex)
{
ShowMessage(sErrMsg + " " + ex.Message);
DBERP.RollbackTrans();
return false;
}
}
return true;
}
protected override void Grid_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (grdSHD.GetCellByFieldName("XLXSBJCL_BJHQ", e.Row).Text.Trim().Equals("1"))
grdSHD.GetCellByFieldName("XLXSBJCL_BJHQ", e.Row).Text = "1|材料行情";
else if (grdSHD.GetCellByFieldName("XLXSBJCL_BJHQ", e.Row).Text.Trim().Equals("2"))
grdSHD.GetCellByFieldName("XLXSBJCL_BJHQ", e.Row).Text = "2|物料行情";
}
base.Grid_RowDataBound(sender, e);
}
protected void grdSHD_CalculateField(object sender, CalculateFieldEventArgs e)
{
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
string sBJDID = PageParam.GetRTrimString("BJDID");
string sVID = GetVID(sBJDID, CurSession.RYID);
string sRYID = CurSession.RYID;
string sBJCLID = e.RowData["XLXSBJCL_BJCLID"].ToString().Trim();
string sCLJG = e.RowData["CLJG"].ToString().Trim();
string sHSJG = e.RowData["HSJG"].ToString().Trim();
string sWSJGF = e.RowData["WSJGF"].ToString().Trim();
string sHSJGF = e.RowData["HSJGF"].ToString().Trim();
if (e.EventFieldName.Equals("CLJG"))
{
double dCLJG = NumberUtils.RoundX(CMISproConvert.StrToFloat(sCLJG), XLBJDUtils.BJCLPriceDecimal);
double dHSJG = NumberUtils.RoundX(CMISproConvert.StrToFloat(e.EventFieldValue) * (1 + CMISproConvert.StrToFloat(e.RowData["XLXSBJCL_ZZSL"].ToString().Trim(), 0) / 100), XLBJDUtils.BJCLPriceDecimal);
sCLJG = dCLJG.ToString();
sHSJG = dHSJG.ToString();
e.ResultPairs.Add("HSJG", dHSJG.ToString());
e.ResultPairs.Add("V_XLXSBJDCLHQ_WHR", CurSession.UserName);
e.ResultPairs.Add("V_XLXSBJDCLHQ_WHRID", CurSession.UserId);
e.ResultPairs.Add("V_XLXSBJDCLHQ_WHSJ", DateTime.Now.ToString().Trim());
}
else if (e.EventFieldName.Equals("HSJG"))
{
double dCLJG = NumberUtils.RoundX(CMISproConvert.StrToFloat(e.EventFieldValue) / (1 + CMISproConvert.StrToFloat(e.RowData["XLXSBJCL_ZZSL"].ToString().Trim(), 0) / 100), XLBJDUtils.BJCLPriceDecimal);
double dHSJG = NumberUtils.RoundX(CMISproConvert.StrToFloat(sHSJG), XLBJDUtils.BJCLPriceDecimal);
sCLJG = dCLJG.ToString();
sHSJG = dHSJG.ToString();
e.ResultPairs.Add("CLJG", dCLJG.ToString());
e.ResultPairs.Add("V_XLXSBJDCLHQ_WHR", CurSession.UserName);
e.ResultPairs.Add("V_XLXSBJDCLHQ_WHRID", CurSession.UserId);
e.ResultPairs.Add("V_XLXSBJDCLHQ_WHSJ", DateTime.Now.ToString().Trim());
}
else
{
double dCLJG = NumberUtils.RoundX(CMISproConvert.StrToFloat(sCLJG), XLBJDUtils.BJCLPriceDecimal);
double dHSJG = NumberUtils.RoundX(CMISproConvert.StrToFloat(sHSJG), XLBJDUtils.BJCLPriceDecimal);
sCLJG = dCLJG.ToString();
sHSJG = dHSJG.ToString();
}
//因“调整物料行情”时需要传递加工原料的价格,所以这里更新后台有必要,得保证前端和后台价格一致
SQL.Clear();
SQL.Add(" select 1 from V_XLXSBJDCLHQ where V_XLXSBJDCLHQ_BJCLID = :pBJCLID and V_XLXSBJDCLHQ_BJDID = :pBJDID and V_XLXSBJDCLHQ_ID = :pVID and V_XLXSBJDCLHQ_TZRYID = :pRYID ");
SQL.ParamByName("pBJCLID").Value = sBJCLID;
SQL.ParamByName("pBJDID").Value = sBJDID;
SQL.ParamByName("pVID").Value = sVID;
SQL.ParamByName("pRYID").Value = sRYID;
DataSet dsBJDCLHQ = dberp.OpenDataSet(SQL);
if (dsBJDCLHQ.Tables[0].Rows.Count > 0)
{
SQL.Clear();
SQL.Add(" update V_XLXSBJDCLHQ ");
SQL.Add(" set V_XLXSBJDCLHQ_WSJG = :XLXSBJDCLHQ_WSJG,V_XLXSBJDCLHQ_HSJG=:XLXSBJDCLHQ_HSJG, ");
SQL.Add(" V_XLXSBJDCLHQ_WHRID = :XLXSBJDCLHQ_WHRID, V_XLXSBJDCLHQ_WHR = :XLXSBJDCLHQ_WHR, V_XLXSBJDCLHQ_WHSJ = :XLXSBJDCLHQ_WHSJ");
SQL.Add(" where V_XLXSBJDCLHQ_BJDID =:pBJDID and V_XLXSBJDCLHQ_BJCLID = :pBJCLID and V_XLXSBJDCLHQ_ID = :pVID and V_XLXSBJDCLHQ_TZRYID = :pRYID ");
SQL.ParamByName("XLXSBJDCLHQ_WSJG").Value = sCLJG;
SQL.ParamByName("XLXSBJDCLHQ_HSJG").Value = sHSJG;
SQL.ParamByName("XLXSBJDCLHQ_WHR").Value = CurSession.UserName;
SQL.ParamByName("XLXSBJDCLHQ_WHRID").Value = CurSession.UserId;
SQL.ParamByName("XLXSBJDCLHQ_WHSJ").Value = DateTime.Now;
SQL.ParamByName("pBJCLID").Value = sBJCLID;
SQL.ParamByName("pBJDID").Value = sBJDID;
SQL.ParamByName("pVID").Value = sVID;
SQL.ParamByName("pRYID").Value = sRYID;
dberp.ExecSQL(SQL);
}
else
{
//插入
SQL.Clear();
SQL.Add(" insert into V_XLXSBJDCLHQ( ");
SQL.Add(" V_XLXSBJDCLHQ_BJCLID,V_XLXSBJDCLHQ_BJDID, V_XLXSBJDCLHQ_WSJG,V_XLXSBJDCLHQ_HSJG, V_XLXSBJDCLHQ_WSJGF,V_XLXSBJDCLHQ_HSJGF, ");
SQL.Add(" V_XLXSBJDCLHQ_ID,V_XLXSBJDCLHQ_TZRYID,V_XLXSBJDCLHQ_TZRYGH,V_XLXSBJDCLHQ_TZRYMC,V_XLXSBJDCLHQ_TIMESTAMP,V_XLXSBJDCLHQ_WHRID, V_XLXSBJDCLHQ_WHR, V_XLXSBJDCLHQ_WHSJ )");
SQL.Add(" values(");
SQL.Add(" :XLXSBJDCLHQ_BJCLID, :XLXSBJDCLHQ_BJDID, :XLXSBJDCLHQ_WSJG,:XLXSBJDCLHQ_HSJG, :XLXSBJDCLHQ_WSJGF, :XLXSBJDCLHQ_HSJGF,");
SQL.Add(" :pVID,:pRYID,:pRYGH,:pRYMC,:pTIMESTAMP,:XLXSBJDCLHQ_WHRID, :XLXSBJDCLHQ_WHR, :XLXSBJDCLHQ_WHSJ )");
SQL.ParamByName("XLXSBJDCLHQ_BJCLID").Value = sBJCLID;
SQL.ParamByName("XLXSBJDCLHQ_BJDID").Value = sBJDID;
SQL.ParamByName("pVID").Value = sVID;
SQL.ParamByName("pRYID").Value = sRYID;
SQL.ParamByName("pRYGH").Value = CurSession.UserId;
SQL.ParamByName("pRYMC").Value = CurSession.UserName;
SQL.ParamByName("pTIMESTAMP").Value = MISproUtils.GetServerTime();
SQL.ParamByName("XLXSBJDCLHQ_WSJG").Value = sCLJG;
SQL.ParamByName("XLXSBJDCLHQ_HSJG").Value = sHSJG;
SQL.ParamByName("XLXSBJDCLHQ_WSJGF").Value = sWSJGF;
SQL.ParamByName("XLXSBJDCLHQ_HSJGF").Value = sHSJGF;
SQL.ParamByName("XLXSBJDCLHQ_WHR").Value = CurSession.UserName;
SQL.ParamByName("XLXSBJDCLHQ_WHRID").Value = CurSession.UserId;
SQL.ParamByName("XLXSBJDCLHQ_WHSJ").Value = DateTime.Now;
dberp.ExecSQL(SQL);
}
}
#endregion
#region 自定义函数
private void InitControl()
{
//调整物料行情=Y
if (CMISproDataBase.ExistsRecord("DBERP", string.Format("select 1 from XLXSBJFL where XLXSBJFL_BJFLID='{0}' and XLXSBJFL_TZWLHQ='Y'", PageParam.GetRTrimString("BJFLID"))))
{
btnTZWLHQ.Visible = true;
btnWLHQ.Visible = false;
}
else
{
btnTZWLHQ.Visible = false;
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
SQL.Clear();
SQL.Add("select top 1 XLXSBJCL_BJHQ from XLXSBJCL where XLXSBJCL_BJHQ = '2' ");
DataSet ds = dberp.OpenDataSet(SQL);
if (ds.Tables[0].Rows.Count > 0)
{
btnWLHQ.Visible = true;
}
else
{
btnWLHQ.Visible = false;
}
}
}
private string GetBJCLMC(string sBJCLID)
{
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
SQL.Clear();
SQL.Add(" select XLXSBJCL_BJCLMC from XLXSBJCL ");
SQL.Add(" where XLXSBJCL_BJCLID = :XLXSBJCL_BJCLID ");
SQL.ParamByName("XLXSBJCL_BJCLID").Value = sBJCLID;
DataSet ds = dberp.OpenDataSet(SQL);
if (ds.Tables[0].Rows.Count > 0)
{
return ds.Tables[0].Rows[0]["XLXSBJCL_BJCLMC"].ToString().Trim();
}
return "";
}
//更新料价价差率
public static void UpdateLJJCL(TDatabase dberp, TSQL SQL, string sBJDID, string sJCLLX, string sLJJCLLX, string sCPBJMRXSWS, string sBJU002)
{
//按报价单行情重算表价、报价
int tmpXSWS = string.IsNullOrEmpty(sBJU002) ? 5 : CMISproConvert.StrToInt(sBJU002);
if (tmpXSWS < 0)
tmpXSWS = 0;
else if (tmpXSWS > 8)
tmpXSWS = 8;
#region 2|(调整后报价金额-报价单行情料价金额)/调整后报价金额*100,3|(调整后报价金额-报价单行情料价金额)/报价单行情料价金额*100
if (sLJJCLLX.Equals("2") || sLJJCLLX.Equals("3") || sLJJCLLX.Equals("4"))//2|(调整后报价金额-报价单行情料价金额)/调整后报价金额*100,3|(调整后报价金额-报价单行情料价金额)/报价单行情料价金额*100
{
//料价价差率未锁定的明细记录,更新料价价差率
SQL.Clear();
if (sLJJCLLX.Equals("2"))
SQL.Add("update XLXSBJDMX set XLXSBJDMX_CLCBJCL=RoundFix(case when XLXSBJDMX_BJJE=0 then 0 else 100*(XLXSBJDMX_BJJE-RoundFix(XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL,2))/XLXSBJDMX_BJJE end,2)");
else if (sLJJCLLX.Equals("3"))
SQL.Add("update XLXSBJDMX set XLXSBJDMX_CLCBJCL=RoundFix(case when XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL=0 then 0 else 100*(XLXSBJDMX_BJJE-RoundFix(XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL,2))/(XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL) end,2)");
else
SQL.Add("update XLXSBJDMX set XLXSBJDMX_CLCBJCL=RoundFix(case when XLXSBJDMX_BJJE=0 then 0 else 100*(RoundFix(XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL,2))/XLXSBJDMX_BJJE end,2)");
SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID");
SQL.Add(" and XLXSBJDMX_CLCBJCLSDBZ<>'Y'");//料价价差率未锁定
SQL.ParamByName("pBJDID").Value = sBJDID;
dberp.ExecSQL(SQL);
#region 按料价价差率算报价的明细记录,更新报价
string sqlBJJE = "";
if (sLJJCLLX.Equals("2"))
sqlBJJE = "RoundFix(case WHEN XLXSBJDMX_CLCBJCL = 100 OR XLXSBJDMX_BJSL=0 THEN 0 else XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL/(1-XLXSBJDMX_CLCBJCL/100.0) END,2)";
else if (sLJJCLLX.Equals("3"))
sqlBJJE = "RoundFix(case WHEN XLXSBJDMX_BJSL=0 THEN 0 else XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL*(1+XLXSBJDMX_CLCBJCL/100.0) END,2)";
else
sqlBJJE = "RoundFix(case WHEN XLXSBJDMX_CLCBJCL = 0 THEN 0 else XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL/(XLXSBJDMX_CLCBJCL/100.0) END,2)";
SQL.Clear();
SQL.Add(" update XLXSBJDMX set ");
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=case when XLXSBJDMX_TZQCPBJ=0 or XLXSBJDMX_BJSL = 0 then 0 else 100*((" + sqlBJJE + " - XLXSBJDMX_TZBJJE)/XLXSBJDMX_BJSL-XLXSBJDMX_TZQCPBJ)/XLXSBJDMX_TZQCPBJ end,");
SQL.Add(" XLXSBJDMX_BJJE=" + sqlBJJE + ",");
//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,");
//}
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(" XLXSBJDMX");
SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID ");
SQL.Add(" and XLXSBJDMX_BJSDBZ<>'Y'");//跳过报价锁定为Y的明细数据
SQL.Add(" and XLXSBJDMX_CLCBJCLSDBZ='Y'");//按料价价差率算报价
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(XLXSBJDMX_CPBJ/{0},0)*{0}-XLXSBJDMX_TZQCPBJ)/XLXSBJDMX_TZQCPBJ end,", sCPBJBLXSWS));
SQL.Add(string.Format(" XLXSBJDMX_TZQBJJE=RoundFix(RoundFix(XLXSBJDMX_CPBJ/{0},0)*{0}*XLXSBJDMX_BJSL,2),", sCPBJBLXSWS));
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,");
}
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
SQL.Add("XLXSBJDMX_CLCBJCL =case when " + sqlBJJE2 + "=0.0 then 0.0 else RoundFix(100*(XLXSBJDMX_BJDHQCLCB*XLXSBJDMX_BJSL)/(" + sqlBJJE2 + "),2) end");
SQL.Add(" from XLXSBJDMX");
SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID ");
SQL.Add(" and XLXSBJDMX_BJSDBZ<>'Y'");//跳过报价锁定为Y的明细数据
SQL.Add(" and XLXSBJDMX_CLCBJCLSDBZ='Y'");//按料价价差率算报价
SQL.ParamByName("pBJDID").Value = sBJDID;
dberp.ExecSQL(SQL);
#endregion
}
#endregion
}
//更新表价料价价差率
public static void UpdateBJLJJCL(TDatabase dberp, TSQL SQL, string sBJDID, string sBJLJJCLLX)
{
if (sBJLJJCLLX.Equals("1"))
{
SQL.Clear();
SQL.Add("update XLXSBJDMX set 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 ");
SQL.Add(" where XLXSBJDMX_BJDID=:pBJDID ");
SQL.ParamByName("pBJDID").Value = sBJDID;
dberp.ExecSQL(SQL);
}
}
//插入行情V表
private void InsertVHQB(string sBJDID)
{
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
SQL.Clear();
SQL.Add(" delete from V_XLXSBJDCLHQ where V_XLXSBJDCLHQ_TZRYID = :pTZRYID and V_XLXSBJDCLHQ_BJDID = :pBJDID ");
SQL.ParamByName("pTZRYID").Value = CurSession.RYID;
SQL.ParamByName("pBJDID").Value = sBJDID;
dberp.ExecSQL(SQL);
int VnewCLHQID = CMISproDataBase.GetMaxXH("DBERP", "V_XLXSBJDCLHQ", "V_XLXSBJDCLHQ_ID", "") + 1;
txtVCLHQID.Value = VnewCLHQID.ToString().Trim();
SQL.Clear();
SQL.Add(" insert into V_XLXSBJDCLHQ(V_XLXSBJDCLHQ_BJDID,V_XLXSBJDCLHQ_BJCLID,V_XLXSBJDCLHQ_WSJG,V_XLXSBJDCLHQ_HSJG,V_XLXSBJDCLHQ_WSJGF,V_XLXSBJDCLHQ_HSJGF, ");
SQL.Add(" V_XLXSBJDCLHQ_JGYBJCLID1,V_XLXSBJDCLHQ_WSJG1,V_XLXSBJDCLHQ_HSJG1,V_XLXSBJDCLHQ_JGBL1, ");
SQL.Add(" V_XLXSBJDCLHQ_ID,V_XLXSBJDCLHQ_TZRYID,V_XLXSBJDCLHQ_TZRYGH,V_XLXSBJDCLHQ_TZRYMC,V_XLXSBJDCLHQ_TIMESTAMP,V_XLXSBJDCLHQ_WHR,V_XLXSBJDCLHQ_WHRID,V_XLXSBJDCLHQ_WHSJ)");
SQL.Add(" select XLXSBJDCLHQ_BJDID,XLXSBJDCLHQ_BJCLID,XLXSBJDCLHQ_WSJG,XLXSBJDCLHQ_HSJG,XLXSBJDCLHQ_WSJGF,XLXSBJDCLHQ_HSJGF, ");
SQL.Add(" XLXSBJDCLHQ_JGYBJCLID1,XLXSBJDCLHQ_WSJG1,XLXSBJDCLHQ_HSJG1,XLXSBJDCLHQ_JGBL1, ");
SQL.Add(" :V_XLXSBJDCLHQ_ID,:V_XLXSBJDCLHQ_TZRYID,:V_XLXSBJDCLHQ_TZRYGH,:V_XLXSBJDCLHQ_TZRYMC,:V_XLXSBJDCLHQ_TIMESTAMP,XLXSBJDCLHQ_WHR,XLXSBJDCLHQ_WHRID,XLXSBJDCLHQ_WHSJ ");
SQL.Add(" from XLXSBJDCLHQ where XLXSBJDCLHQ_BJDID = :pBJDID ");
SQL.ParamByName("V_XLXSBJDCLHQ_ID").Value = txtVCLHQID.Value;
SQL.ParamByName("V_XLXSBJDCLHQ_TZRYID").Value = CurSession.RYID;
SQL.ParamByName("V_XLXSBJDCLHQ_TZRYGH").Value = CurSession.UserId;
SQL.ParamByName("V_XLXSBJDCLHQ_TZRYMC").Value = CurSession.UserName;
SQL.ParamByName("V_XLXSBJDCLHQ_TIMESTAMP").Value = MISproUtils.GetServerTime();
SQL.ParamByName("pBJDID").Value = sBJDID;
dberp.ExecSQL(SQL);
SQL.Clear();
SQL.Add(" delete from V_XLXSBJDWLHQ where V_XLXSBJDWLHQ_TZRYID = :pTZRYID and V_XLXSBJDWLHQ_BJDID = :pBJDID ");
SQL.ParamByName("pTZRYID").Value = CurSession.RYID;
SQL.ParamByName("pBJDID").Value = sBJDID;
dberp.ExecSQL(SQL);
int VnewWLHQID = CMISproDataBase.GetMaxXH("DBERP", "V_XLXSBJDWLHQ", "V_XLXSBJDWLHQ_ID", "") + 1;
txtVWLHQID.Value = VnewWLHQID.ToString().Trim();
SQL.Clear();
SQL.Add(" insert into V_XLXSBJDWLHQ(V_XLXSBJDWLHQ_BJDID,V_XLXSBJDWLHQ_WLID,V_XLXSBJDWLHQ_WSJG,V_XLXSBJDWLHQ_HSJG,V_XLXSBJDWLHQ_WSJGF,V_XLXSBJDWLHQ_HSJGF, ");
SQL.Add(" V_XLXSBJDWLHQ_JGYBJCLID1,V_XLXSBJDWLHQ_WSJG1,V_XLXSBJDWLHQ_HSJG1,V_XLXSBJDWLHQ_JGBL1, ");
SQL.Add(" V_XLXSBJDWLHQ_ID,V_XLXSBJDWLHQ_TZRYID,V_XLXSBJDWLHQ_TZRYGH,V_XLXSBJDWLHQ_TZRYMC,V_XLXSBJDWLHQ_TIMESTAMP,V_XLXSBJDWLHQ_WHR,V_XLXSBJDWLHQ_WHRID,V_XLXSBJDWLHQ_WHSJ)");
SQL.Add(" select XLXSBJDWLHQ_BJDID,XLXSBJDWLHQ_WLID,XLXSBJDWLHQ_WSJG,XLXSBJDWLHQ_HSJG,XLXSBJDWLHQ_WSJGF,XLXSBJDWLHQ_HSJGF, ");
SQL.Add(" XLXSBJDWLHQ_JGYBJCLID1,XLXSBJDWLHQ_WSJG1,XLXSBJDWLHQ_HSJG1,XLXSBJDWLHQ_JGBL1, ");
SQL.Add(" :V_XLXSBJDWLHQ_ID,:V_XLXSBJDWLHQ_TZRYID,:V_XLXSBJDWLHQ_TZRYGH,:V_XLXSBJDWLHQ_TZRYMC,:V_XLXSBJDWLHQ_TIMESTAMP,XLXSBJDWLHQ_WHR,XLXSBJDWLHQ_WHRID,XLXSBJDWLHQ_WHSJ ");
SQL.Add(" from XLXSBJDWLHQ where XLXSBJDWLHQ_BJDID = :pBJDID ");
SQL.ParamByName("V_XLXSBJDWLHQ_ID").Value = txtVWLHQID.Value;
SQL.ParamByName("V_XLXSBJDWLHQ_TZRYID").Value = CurSession.RYID;
SQL.ParamByName("V_XLXSBJDWLHQ_TZRYGH").Value = CurSession.UserId;
SQL.ParamByName("V_XLXSBJDWLHQ_TZRYMC").Value = CurSession.UserName;
SQL.ParamByName("V_XLXSBJDWLHQ_TIMESTAMP").Value = MISproUtils.GetServerTime();
SQL.ParamByName("pBJDID").Value = sBJDID;
dberp.ExecSQL(SQL);
}
//插入行情表
private void InsertHQB(TDatabase dberp, string sBJDID, string sTZRYID, string sCLVID, string sWLVID)
{
TSQL SQL = new TSQL(dberp);
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 V_XLXSBJDCLHQ_BJDID,V_XLXSBJDCLHQ_BJCLID,V_XLXSBJDCLHQ_WSJG,V_XLXSBJDCLHQ_HSJG,V_XLXSBJDCLHQ_WSJGF,V_XLXSBJDCLHQ_HSJGF, ");
SQL.Add(" V_XLXSBJDCLHQ_JGYBJCLID1,V_XLXSBJDCLHQ_WSJG1,V_XLXSBJDCLHQ_HSJG1,V_XLXSBJDCLHQ_JGBL1, ");
SQL.Add(" V_XLXSBJDCLHQ_WHR,V_XLXSBJDCLHQ_WHRID,V_XLXSBJDCLHQ_WHSJ ");
SQL.Add(" from V_XLXSBJDCLHQ where V_XLXSBJDCLHQ_BJDID = :pBJDID and V_XLXSBJDCLHQ_TZRYID = :pTZRYID and V_XLXSBJDCLHQ_ID = :pCLVID ");
SQL.ParamByName("pBJDID").Value = sBJDID;
SQL.ParamByName("pTZRYID").Value = sTZRYID;
SQL.ParamByName("pCLVID").Value = sCLVID;
dberp.ExecSQL(SQL);
SQL.Clear();
SQL.Add(" delete from V_XLXSBJDCLHQ where V_XLXSBJDCLHQ_TZRYID = :pTZRYID and V_XLXSBJDCLHQ_BJDID = :pBJDID and V_XLXSBJDCLHQ_ID = :pCLVID ");
SQL.ParamByName("pTZRYID").Value = sTZRYID;
SQL.ParamByName("pBJDID").Value = sBJDID;
SQL.ParamByName("pCLVID").Value = sCLVID;
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 V_XLXSBJDWLHQ_BJDID,V_XLXSBJDWLHQ_WLID,V_XLXSBJDWLHQ_WSJG,V_XLXSBJDWLHQ_HSJG,V_XLXSBJDWLHQ_WSJGF,V_XLXSBJDWLHQ_HSJGF, ");
SQL.Add(" V_XLXSBJDWLHQ_JGYBJCLID1,V_XLXSBJDWLHQ_WSJG1,V_XLXSBJDWLHQ_HSJG1,V_XLXSBJDWLHQ_JGBL1, ");
SQL.Add(" V_XLXSBJDWLHQ_WHR,V_XLXSBJDWLHQ_WHRID,V_XLXSBJDWLHQ_WHSJ ");
SQL.Add(" from V_XLXSBJDWLHQ where V_XLXSBJDWLHQ_BJDID = :pBJDID and V_XLXSBJDWLHQ_TZRYID = :pTZRYID and V_XLXSBJDWLHQ_ID = :pWLVID ");
SQL.ParamByName("pBJDID").Value = sBJDID;
SQL.ParamByName("pTZRYID").Value = sTZRYID;
SQL.ParamByName("pWLVID").Value = sWLVID;
dberp.ExecSQL(SQL);
SQL.Clear();
SQL.Add(" delete from V_XLXSBJDWLHQ where V_XLXSBJDWLHQ_TZRYID = :pTZRYID and V_XLXSBJDWLHQ_BJDID = :pBJDID and V_XLXSBJDWLHQ_ID = :pWLVID ");
SQL.ParamByName("pTZRYID").Value = CurSession.RYID;
SQL.ParamByName("pBJDID").Value = sBJDID;
SQL.ParamByName("pWLVID").Value = sWLVID;
dberp.ExecSQL(SQL);
}
private string GetVID(string sBJDID, string sTZRYID)
{
string sVID = "";
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
SQL.Clear();
SQL.Add(" select V_XLXSBJDCLHQ_ID from V_XLXSBJDCLHQ where V_XLXSBJDCLHQ_TZRYID = :pTZRYID and V_XLXSBJDCLHQ_BJDID = :pBJDID ");
SQL.ParamByName("pTZRYID").Value = sTZRYID;
SQL.ParamByName("pBJDID").Value = sBJDID;
DataSet ds = dberp.OpenDataSet(SQL);
if (ds.Tables[0].Rows.Count > 0)
{
sVID = ds.Tables[0].Rows[0]["V_XLXSBJDCLHQ_ID"].ToString().Trim();
}
return sVID;
}
#endregion
#region 控件事件
protected void btnSZHQ_Click(object sender, EventArgs e)
{
if (grdSHD.SelectedIndex < 0)
{
ShowMessage("请选择需要处理的记录!");
return;
}
else if (grdSHD.GetValueByFieldName("XLXSBJCL_BJHQ", grdSHD.NewRows[grdSHD.SelectedIndex]).Trim().Equals("2|物料行情"))
{
ShowMessage("仅能选择“报价行情”为“1|材料行情”的报价材料!");
return;
}
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
string sBJCLID = grdSHD.GetValueByFieldName("XLXSBJCL_BJCLID", grdSHD.NewRows[grdSHD.SelectedIndex]).Trim();
string sCLJG = grdSHD.GetValueByFieldName("CLJG", grdSHD.NewRows[grdSHD.SelectedIndex]).Trim();
string sHSJG = grdSHD.GetValueByFieldName("HSJG", grdSHD.NewRows[grdSHD.SelectedIndex]).Trim();
string sZZSL = grdSHD.GetValueByFieldName("XLXSBJCL_ZZSL", grdSHD.NewRows[grdSHD.SelectedIndex]).Trim();
string sWSJGF = grdSHD.GetValueByFieldName("WSJGF", grdSHD.NewRows[grdSHD.SelectedIndex]).Trim();
string sHSJGF = grdSHD.GetValueByFieldName("HSJGF", grdSHD.NewRows[grdSHD.SelectedIndex]).Trim();
//加工料对应加工原料 无税/含税价格
string sJGYBJCLID1 = grdSHD.GetValueByFieldName("V_XLXSBJDCLHQ_JGYBJCLID1", grdSHD.NewRows[grdSHD.SelectedIndex]).Trim();
string sJGBL1 = "";
string sJCCLJG = "";
string sJCHSJG = "";
string sSQL = string.Format(" select 1 from XLXSBJCL "
+ " where XLXSBJCL_JGYBJCLID = '{0}' or (XLXSBJCL_BJCLID ='{0}' and isnull(XLXSBJCL_JGYBJCLID,' ') <>' ' ) ", sBJCLID);
if (!CMISproDataBase.ExistsRecord("DBERP", sSQL))
{
ShowMessage("当前报价材料非加工料或加工原料!");
return;
}
else
{
if (!sJGYBJCLID1.Trim().Equals(""))
{
sJGBL1 = grdSHD.GetValueByFieldName("V_XLXSBJDCLHQ_JGBL1", grdSHD.NewRows[grdSHD.SelectedIndex]).Trim();
foreach (GridViewRow row in grdSHD.NewRows)
{
if (grdSHD.GetValueByFieldName("XLXSBJCL_BJCLID", row).ToString().Trim().Equals(sJGYBJCLID1.Trim()))
{
sJCCLJG = grdSHD.GetValueByFieldName("CLJG", row).ToString().Trim();
sJCHSJG = grdSHD.GetValueByFieldName("HSJG", row).ToString().Trim();
}
}
}
TPageParams pageParams = new TPageParams();
pageParams.UrlPath = "XLBJD_JGFLDInfo.aspx";
pageParams.Title = "设置加工料/加工原料行情";
pageParams.AddString("BJCLID", sBJCLID);
pageParams.AddString("CLJG", sCLJG);
pageParams.AddString("HSJG", sHSJG);
pageParams.AddString("ZZSL", sZZSL);
pageParams.AddString("WSJGF", sWSJGF);
pageParams.AddString("HSJGF", sHSJGF);
pageParams.AddString("JCCLJG", sJCCLJG);
pageParams.AddString("JCHSJG", sJCHSJG);
pageParams.AddString("JGYBJCLID1", sJGYBJCLID1);
pageParams.AddString("JGBL1", sJGBL1);
pageParams.AddString("JGBID", PageParam.GetRTrimString("JGBID"));
pageParams.AddString("BJDHQLY", PageParam.GetRTrimString("BJDHQLY"));
pageParams.AddString("BJLY", PageParam.GetRTrimString("BJLY"));
pageParams.AddString("BJRQ", PageParam.GetRTrimString("BJRQ"));
pageParams.AddString("BJFLID", PageParam.GetRTrimString("BJFLID"));
pageParams.AddString("BJDID", PageParam.GetRTrimString("BJDID"));
pageParams.AddString("CLVID", txtVCLHQID.Value);
pageParams.AddString("WLVID", txtVWLHQID.Value);
//pageParams.AddString("TBJCLID", PageParam.GetRTrimString("TBJCLID"));
//pageParams.AddString("LBJCLID", PageParam.GetRTrimString("LBJCLID"));
//pageParams.AddString("HSBZ", PageParam.GetRTrimString("HSBZ"));
pageParams.AddString("CallBackCtrlID", btnCallBack.ClientID.Trim());
OpenDialog(pageParams);
}
}
protected void btnWLHQ_Click(object sender, EventArgs e)
{
if (grdSHD.SelectedIndex < 0)
{
ShowMessage("请选择需要处理的记录!");
return;
}
string sBJCLID = grdSHD.GetValueByFieldName("XLXSBJCL_BJCLID", grdSHD.NewRows[grdSHD.SelectedIndex]).Trim();
string sBJHQ = grdSHD.GetValueByFieldName("XLXSBJCL_BJHQ", grdSHD.NewRows[grdSHD.SelectedIndex]).Trim();
if (!sBJHQ.Split('|')[0].Equals("2"))
{
ShowMessage("仅能选择“报价行情”为“2|物料行情”的报价材料!");
return;
}
TPageParams pageParams = new TPageParams();
pageParams.UrlPath = "XLBJD_WLHQList.aspx";
pageParams.AddString("BJCLID", sBJCLID);
pageParams.AddString("JGBID", PageParam.GetRTrimString("JGBID"));
pageParams.AddString("BJDHQLY", PageParam.GetRTrimString("BJDHQLY"));
pageParams.AddString("BJLY", PageParam.GetRTrimString("BJLY"));
pageParams.AddString("BJRQ", PageParam.GetRTrimString("BJRQ"));
pageParams.AddString("BJFLID", PageParam.GetRTrimString("BJFLID"));
pageParams.AddString("BJDID", PageParam.GetRTrimString("BJDID"));
OpenDialog(pageParams);
}
protected void btnCallBack_Click(object sender, EventArgs e)
{
int index = grdSHD.SelectedIndex;
Master_OnQuery();
GridDataBind();
BillAreaUpdate();
FormAreaUpdate();
grdSHD.SelectedIndex = index;
}
//更新自材料行情(不取最新物料行情,仅根据更新后的材料行情更新加工物料的行情)
protected void btnUpdCLHQ_Click(object sender, EventArgs e)
{
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL sSQL = new TSQL(dberp);
string sBJDID = PageParam.GetRTrimString("BJDID");
if (sBJDID.Equals(""))
return;
string sTBJCLID = PageParam.GetRTrimString("TBJCLID");
string sLBJCLID = PageParam.GetRTrimString("LBJCLID");
string sTBJCLMC = GetBJCLMC(sTBJCLID);
string sLBJCLMC = GetBJCLMC(sLBJCLID);
//“铜价”和“铝价”都为空时,保持原先逻辑
if (sTBJCLMC.Equals("") && sLBJCLMC.Equals(""))
{
Confirm.Register("IsQD", "将使用今天最新的材料行情进行更新,是否继续?");
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();
try
{
dberp.BeginTrans();
XLBJDUtils.InsertXLXSBJDCLHQ_WLHQ_V(dberp, sSQL, PageParam.GetRTrimString("BJDHQLY"), sBJDID, txtVWLHQID.Value, txtVCLHQID.Value, CurSession, DateTime.Now.ToShortDateString(), PageParam.GetRTrimString("HSBZ").Equals("Y"),
sTBJCLID, sLBJCLID,
CMISproConvert.StrToFloat(PageParam.GetRTrimString("TJ")), CMISproConvert.StrToFloat(PageParam.GetRTrimString("LJ")),
CurSession.UserName, CurSession.UserId, PageParam.GetRTrimString("JGBID"));
dberp.CommitTrans();
}
catch (Exception ex)
{
dberp.RollbackTrans();
ShowMessage(ex.Message);
return;
}
}
}
else
{
//“铜价”不为空,“铝价”为空
if (!string.IsNullOrEmpty(sTBJCLMC) && string.IsNullOrEmpty(sLBJCLMC))
{
Confirm.Register("IsQD", string.Format("是否同步更新“{0}”?", sTBJCLMC));
}
//“铜价”为空,“铝价”不为空
else if (string.IsNullOrEmpty(sTBJCLMC) && !string.IsNullOrEmpty(sLBJCLMC))
{
Confirm.Register("IsQD", string.Format("是否同步更新“{0}”?", sLBJCLMC));
}
//“铜价”,“铝价”都不为空
else if (!string.IsNullOrEmpty(sTBJCLMC) && !string.IsNullOrEmpty(sLBJCLMC))
{
Confirm.Register("IsQD", string.Format("是否同步更新“{0}、{1}”?", sTBJCLMC, sLBJCLMC));
}
else
{
return;
}
if (Confirm.GetValue("IsQD").Trim().Equals(""))
{
Confirm.Ask("IsQD");
return;
}
else if (Confirm.GetValue("IsQD").Trim().Equals("N"))
{
Confirm.Clear();
try
{
dberp.BeginTrans();
XLBJDUtils.InsertXLXSBJDCLHQ_WLHQ_V(dberp, sSQL, PageParam.GetRTrimString("BJDHQLY"), sBJDID, txtVWLHQID.Value, txtVCLHQID.Value, CurSession, DateTime.Now.ToShortDateString(), PageParam.GetRTrimString("HSBZ").Equals("Y"),
sTBJCLID, sLBJCLID,
CMISproConvert.StrToFloat(PageParam.GetRTrimString("TJ")), CMISproConvert.StrToFloat(PageParam.GetRTrimString("LJ")),
CurSession.UserName, CurSession.UserId, PageParam.GetRTrimString("JGBID"));
dberp.CommitTrans();
}
catch (Exception ex)
{
dberp.RollbackTrans();
ShowMessage(ex.Message);
return;
}
}
else if (Confirm.GetValue("IsQD").Trim().Equals("Y"))
{
Confirm.Clear();
try
{
dberp.BeginTrans();
XLBJDUtils.InsertXLXSBJDCLHQ_WLHQ_V(dberp, sSQL, PageParam.GetRTrimString("BJDHQLY"), sBJDID, txtVWLHQID.Value, txtVCLHQID.Value, CurSession, DateTime.Now.ToShortDateString(), PageParam.GetRTrimString("HSBZ").Equals("Y"),
"", "",
0, 0,
CurSession.UserName, CurSession.UserId, PageParam.GetRTrimString("JGBID"));
dberp.CommitTrans();
}
catch (Exception ex)
{
dberp.RollbackTrans();
ShowMessage(ex.Message);
return;
}
}
}
//刷新
Master_OnQuery();
GridDataBind();
FormAreaUpdate();
ShowMessage("更新完成!");
}
protected void btnUpdCLHQ_MenuItemClick(object sender, string ItemIndex)
{
string sBJDID = PageParam.GetRTrimString("BJDID");
if (sBJDID.Equals(""))
return;
string sTBJCLID = PageParam.GetRTrimString("TBJCLID");
string sLBJCLID = PageParam.GetRTrimString("LBJCLID");
string sTBJCLMC = GetBJCLMC(sTBJCLID);
string sLBJCLMC = GetBJCLMC(sLBJCLID);
switch (ItemIndex)
{
case "CGHQ"://更新自采购行情
//“铜价”和“铝价”都为空时,保持原先逻辑
if (sTBJCLMC.Equals("") && sLBJCLMC.Equals(""))
{
Confirm.Register("IsQD", "将使用的采购行情进行更新,是否继续?");
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();
XLBJDUtils.InsertXLXSBJDCLHQ_WLHQ_WithCGHQ_V(PageParam.GetRTrimString("BJDID"), txtVWLHQID.Value, txtVCLHQID.Value, CurSession, DateTime.Now.ToShortDateString(), PageParam.GetRTrimString("HSBZ").Equals("Y"),
sTBJCLID, sLBJCLID,
CMISproConvert.StrToFloat(PageParam.GetRTrimString("TJ")), CMISproConvert.StrToFloat(PageParam.GetRTrimString("LJ")),
CurSession.UserName, CurSession.UserId, PageParam.GetRTrimString("JGBID"));
}
}
else
{
//“铜价”不为空,“铝价”为空
if (!string.IsNullOrEmpty(sTBJCLMC) && string.IsNullOrEmpty(sLBJCLMC))
{
Confirm.Register("IsQD", string.Format("是否同步更新“{0}”?", sTBJCLMC));
}
//“铜价”为空,“铝价”不为空
else if (string.IsNullOrEmpty(sTBJCLMC) && !string.IsNullOrEmpty(sLBJCLMC))
{
Confirm.Register("IsQD", string.Format("是否同步更新“{0}”?", sLBJCLMC));
}
//“铜价”,“铝价”都不为空
else if (!string.IsNullOrEmpty(sTBJCLMC) && !string.IsNullOrEmpty(sLBJCLMC))
{
Confirm.Register("IsQD", string.Format("是否同步更新“{0}、{1}”?", sTBJCLMC, sLBJCLMC));
}
else
{
return;
}
if (Confirm.GetValue("IsQD").Trim().Equals(""))
{
Confirm.Ask("IsQD");
return;
}
else if (Confirm.GetValue("IsQD").Trim().Equals("N"))
{
Confirm.Clear();
XLBJDUtils.InsertXLXSBJDCLHQ_WLHQ_WithCGHQ_V(PageParam.GetRTrimString("BJDID"), txtVWLHQID.Value, txtVCLHQID.Value, CurSession, DateTime.Now.ToShortDateString(), PageParam.GetRTrimString("HSBZ").Equals("Y"),
sTBJCLID, sLBJCLID,
CMISproConvert.StrToFloat(PageParam.GetRTrimString("TJ")), CMISproConvert.StrToFloat(PageParam.GetRTrimString("LJ")),
CurSession.UserName, CurSession.UserId, PageParam.GetRTrimString("JGBID"));
}
else if (Confirm.GetValue("IsQD").Trim().Equals("Y"))
{
Confirm.Clear();
XLBJDUtils.InsertXLXSBJDCLHQ_WLHQ_WithCGHQ_V(PageParam.GetRTrimString("BJDID"), txtVWLHQID.Value, txtVCLHQID.Value, CurSession, DateTime.Now.ToShortDateString(), PageParam.GetRTrimString("HSBZ").Equals("Y"),
"", "",
0, 0,
CurSession.UserName, CurSession.UserId, PageParam.GetRTrimString("JGBID"));
}
}
//刷新
Master_OnQuery();
GridDataBind();
FormAreaUpdate();
ShowMessage("已完成'1|材料行情'类报价材料的更新!");
break;
}
}
//调整物料行情
protected void btnTZWLHQ_Click(object sender, EventArgs e)
{
TPageParams pageParams = new TPageParams();
pageParams.UrlPath = "XLBJD_WLHQTZList.aspx";
pageParams.AddString("BJRQ", PageParam.GetRTrimString("BJRQ"));
pageParams.AddString("BJDID", PageParam.GetRTrimString("BJDID"));
pageParams.AddString("WLVID", txtVWLHQID.Value);
pageParams.AddString("CLVID", txtVCLHQID.Value);
OpenDialog(pageParams);
}
#endregion
}
}