694 lines
35 KiB
C#
694 lines
35 KiB
C#
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_CONTROL;
|
|
using GThinking.N_PUBLIC;
|
|
using GThinking.N_MISPRO.Caching;
|
|
using GThinking.N_MISPRO.Utility;
|
|
using System.Collections.Generic;
|
|
|
|
namespace GThinking.N_XLXSBJ
|
|
{
|
|
#region
|
|
|
|
[EntityType(Db = "DBERP", Table = "XLXSCLQD", IsWf = false, IsWhr = true, IsAttach = false)]
|
|
|
|
public class XLJGB_JJZSEntity : EntityObject
|
|
{
|
|
public string sJGBID = "";
|
|
public string sXLXHID = "";
|
|
public string sXLGGID = "";
|
|
public string sXLBZID = "";
|
|
public string sDYDJID = "";
|
|
public bool bHSBZ = true;
|
|
|
|
public override TSQL SetQuerySql()
|
|
{
|
|
Dictionary<string, string> dicCLHQ = new Dictionary<string, string>();
|
|
Dictionary<string, string> dicWLHQ = new Dictionary<string, string>();
|
|
DataSet dsWLHQ = null;
|
|
|
|
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
|
|
TSQL tSql = new TSQL(dberp);
|
|
tSql.Clear();
|
|
tSql.Add("select XLJGCZBLM_CLQDL,XLJGCZBLM_BJCLID,XLXSBJCL_BJHQ,XLJGCZBML_CZBLX");
|
|
tSql.Add(" from XLJGCZBLM");
|
|
tSql.Add(" left join XLXSCLQD on XLXSCLQD_JGCZBID=XLJGCZBLM_JGCZBID and XLXSCLQD_JGCZBBBID = XLJGCZBLM_JGCZBBBID ");
|
|
tSql.Add(" left join XLXSBJCL on XLXSBJCL_BJCLID=XLJGCZBLM_BJCLID");
|
|
tSql.Add(" left join XLJGCZBML on XLJGCZBML_JGCZBID=XLJGCZBLM_JGCZBID");
|
|
tSql.Add(" where XLXSCLQD_XLXHID=:pXLXHID and XLXSCLQD_XLGGID=:pXLGGID and XLXSCLQD_XLBZID=:pXLBZID and XLXSCLQD_DYDJID=:pDYDJID ");
|
|
tSql.Add(" and isnull(XLJGCZBLM_CLQDL,' ')<>' '");
|
|
tSql.Add(" order by XLJGCZBLM_CLQDL");
|
|
tSql.ParamByName("pXLXHID").Value = sXLXHID;
|
|
tSql.ParamByName("pXLGGID").Value = sXLGGID;
|
|
tSql.ParamByName("pXLBZID").Value = sXLBZID;
|
|
tSql.ParamByName("pDYDJID").Value = sDYDJID;
|
|
DataSet dsCZB = dberp.OpenDataSet(tSql);
|
|
for (int i = 0; i < dsCZB.Tables[0].Rows.Count; i++)
|
|
{
|
|
//A类B类尺重表只支持材料行情报价
|
|
if (dsCZB.Tables[0].Rows[i]["XLJGCZBML_CZBLX"].ToString().Trim().Equals("B"))
|
|
{
|
|
dicCLHQ.Add(dsCZB.Tables[0].Rows[i]["XLJGCZBLM_CLQDL"].ToString().Trim(), dsCZB.Tables[0].Rows[i]["XLJGCZBLM_BJCLID"].ToString().Trim());
|
|
}
|
|
else//Z类A类C类
|
|
{
|
|
if (dsCZB.Tables[0].Rows[i]["XLXSBJCL_BJHQ"].ToString().Trim().Equals("1"))//1|材料行情
|
|
dicCLHQ.Add(dsCZB.Tables[0].Rows[i]["XLJGCZBLM_CLQDL"].ToString().Trim(), dsCZB.Tables[0].Rows[i]["XLJGCZBLM_BJCLID"].ToString().Trim());
|
|
else if (dsCZB.Tables[0].Rows[i]["XLXSBJCL_BJHQ"].ToString().Trim().Equals("2"))//2|物料行情
|
|
dicWLHQ.Add(dsCZB.Tables[0].Rows[i]["XLJGCZBLM_CLQDL"].ToString().Trim(), dsCZB.Tables[0].Rows[i]["XLJGCZBLM_BJCLID"].ToString().Trim());
|
|
}
|
|
}
|
|
//存在物料行情材料
|
|
if (dicWLHQ.Keys.Count > 0)
|
|
{
|
|
tSql.Clear();
|
|
tSql.Add("select XLXSCLQD_JGCZBID,XLXSCLQD_JGCZBBBID,XLXSCLQD_JGCZBXH,XLXSCLQD_DRHH");
|
|
tSql.Add(" from XLXSCLQD ");
|
|
tSql.Add(" where XLXSCLQD_XLXHID=:pXLXHID and XLXSCLQD_XLGGID=:pXLGGID and XLXSCLQD_XLBZID=:pXLBZID and XLXSCLQD_DYDJID=:pDYDJID");
|
|
tSql.ParamByName("pXLXHID").Value = sXLXHID;
|
|
tSql.ParamByName("pXLGGID").Value = sXLGGID;
|
|
tSql.ParamByName("pXLBZID").Value = sXLBZID;
|
|
tSql.ParamByName("pDYDJID").Value = sDYDJID;
|
|
DataSet dsCZBXL = dberp.OpenDataSet(tSql);
|
|
if (dsCZBXL.Tables[0].Rows.Count > 0)
|
|
{
|
|
string sJGCZBID = dsCZBXL.Tables[0].Rows[0]["XLXSCLQD_JGCZBID"].ToString().Trim();
|
|
string sJGCZBBBID = dsCZBXL.Tables[0].Rows[0]["XLXSCLQD_JGCZBBBID"].ToString().Trim();
|
|
string sJGCZBXH = dsCZBXL.Tables[0].Rows[0]["XLXSCLQD_JGCZBXH"].ToString().Trim();
|
|
string sDRHH = dsCZBXL.Tables[0].Rows[0]["XLXSCLQD_DRHH"].ToString().Trim();
|
|
|
|
//获取加工原料的价格表行情
|
|
Dictionary<string, double> dicJGYLHSJG = new Dictionary<string, double>();
|
|
Dictionary<string, double> dicJGYLWSJG = new Dictionary<string, double>();
|
|
tSql.Clear();
|
|
tSql.Add(" select XLXSCLHQ_BJCLID,XLXSCLHQ_HSJG,XLXSCLHQ_WSJG,isnull(JGYBJCLID,' ') as JGYBJCLID ");
|
|
tSql.Add(" from XLXSCLHQ ");
|
|
tSql.Add(" left join ( ");
|
|
tSql.Add(" select distinct XLXSBJCL_JGYBJCLID as JGYBJCLID ");
|
|
tSql.Add(" from XLXSBJCL where isnull(XLXSBJCL_JGYBJCLID,' ')<>' '");
|
|
tSql.Add(" ) a on JGYBJCLID=XLXSCLHQ_BJCLID");
|
|
tSql.Add(" where XLXSCLHQ_JGBID=:pJGBID ");
|
|
tSql.Add(" and isnull(JGYBJCLID,' ') <> ' ' ");
|
|
tSql.ParamByName("pJGBID").Value = sJGBID;
|
|
DataSet dsJGYL = dberp.OpenDataSet(tSql);
|
|
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()));
|
|
}
|
|
}
|
|
}
|
|
#region 创建临时表
|
|
DateTime TimeStamp = MISproUtils.GetServerTime();
|
|
int VnewID = CMISproDataBase.GetMaxXH("DBERP", "V_XLXSCLQDWLHQ", "V_XLXSCLQDWLHQ_ID", "") + 1;
|
|
|
|
tSql.Clear();
|
|
tSql.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_JGCZBXH=:pJGCZBXH and XLXSCLQD_DRHH=:pDRHH
|
|
");
|
|
tSql.ParamByName("pID").Value = VnewID;
|
|
tSql.ParamByName("pTime").Value = TimeStamp;
|
|
tSql.ParamByName("pHSBZ").Value = "N";
|
|
tSql.ParamByName("pJGCZBID").Value = sJGCZBID;
|
|
tSql.ParamByName("pJGCZBBBID").Value = sJGCZBBBID;
|
|
tSql.ParamByName("pJGCZBXH").Value = CMISproConvert.StrToFloat(sJGCZBXH);
|
|
tSql.ParamByName("pDRHH").Value = CMISproConvert.StrToFloat(sDRHH);
|
|
dberp.ExecSQL(tSql);
|
|
|
|
|
|
tSql.Clear();
|
|
tSql.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_JGCZBXH=:pJGCZBXH and XLXSCLQD_DRHH=:pDRHH
|
|
");
|
|
tSql.ParamByName("pID").Value = VnewID;
|
|
tSql.ParamByName("pTime").Value = TimeStamp;
|
|
tSql.ParamByName("pHSBZ").Value = "Y";
|
|
tSql.ParamByName("pJGCZBID").Value = sJGCZBID;
|
|
tSql.ParamByName("pJGCZBBBID").Value = sJGCZBBBID;
|
|
tSql.ParamByName("pJGCZBXH").Value = CMISproConvert.StrToFloat(sJGCZBXH);
|
|
tSql.ParamByName("pDRHH").Value = CMISproConvert.StrToFloat(sDRHH);
|
|
dberp.ExecSQL(tSql);
|
|
|
|
#endregion
|
|
|
|
#region 循环dsCLQDL更新临时表
|
|
|
|
|
|
#region 含税
|
|
|
|
string sSQL_1 = " merge into V_XLXSCLQDWLHQ tar "
|
|
+ " using ( "
|
|
+ " select XLXSCLQDWL_JGCZBID,XLXSCLQDWL_JGCZBBBID,XLXSCLQDWL_JGCZBXH,XLXSCLQDWL_DRHH, ";
|
|
string sSQL_2 = string.Empty;
|
|
string sSQL_3 = " ' ' as MJBZ from XLXSCLQDWL ";
|
|
string sSQL_4 = string.Empty;
|
|
string sSQL_5 = " where XLXSCLQDWL_JGCZBID=:pJGCZBID and XLXSCLQDWL_JGCZBBBID=:pJGCZBBBID and XLXSCLQDWL_JGCZBXH=:pJGCZBXH and XLXSCLQDWL_DRHH=:pDRHH "
|
|
+ " ) sor "
|
|
+ " on ( "
|
|
+ " XLXSCLQDWL_JGCZBID=V_XLXSCLQDWLHQ_JGCZBID and XLXSCLQDWL_JGCZBBBID=V_XLXSCLQDWLHQ_JGCZBBBID and XLXSCLQDWL_JGCZBXH=V_XLXSCLQDWLHQ_JGCZBXH and XLXSCLQDWL_DRHH=V_XLXSCLQDWLHQ_DRHH and V_XLXSCLQDWLHQ_HSBZ=:pHSBZ and V_XLXSCLQDWLHQ_ID=:pID "
|
|
+ " ) when matched then update set V_XLXSCLQDWLHQ_HSBZ=:pHSBZ";
|
|
string sSQL_6 = string.Empty;
|
|
|
|
int count = 0;//记录已经拼接的列数
|
|
foreach (string sCLQDL in dicWLHQ.Keys)
|
|
{
|
|
sSQL_2 += string.Format("XLXSCLQDWL_WLID{0},isnull(c{0}.XLXSWLHQ_WSJG,0) as WSJG{0},isnull(c{0}.XLXSWLHQ_HSJG,0) as HSJG{0},", sCLQDL.Replace("第", "").Replace("列", ""));
|
|
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(XLXSBJCL_JGYBJCLID,' ')<>' ' and XLXSBJCL_JGYBJCLID='{0}' then {1}+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(XLXSBJCL_JGYBJCLID,' ')<>' ' and XLXSBJCL_JGYBJCLID='{0}' then {1}+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 XLXSWLHQ_JGBID=' '";
|
|
sSQL_4 += " and XLXSWLHQ_YXQS<=:pRQ and (XLXSWLHQ_YXQZ>=:pRQ or XLXSWLHQ_YXQZ is null)";
|
|
sSQL_4 += string.Format(") c{0} on c{0}.XLXSWLHQ_WLID=XLXSCLQDWL_WLID{0} ", sCLQDL.Replace("第", "").Replace("列", ""));
|
|
|
|
sSQL_6 += string.Format(" ,V_XLXSCLQDWLHQ_JG{0} = HSJG{0} ", sCLQDL.Replace("第", "").Replace("列", ""));
|
|
|
|
count++;
|
|
|
|
if (count % 25 == 0 || count == dicWLHQ.Count)
|
|
{
|
|
tSql.Clear();
|
|
tSql.Add(sSQL_1);
|
|
tSql.Add(sSQL_2);
|
|
tSql.Add(sSQL_3);
|
|
tSql.Add(sSQL_4);
|
|
tSql.Add(sSQL_5);
|
|
tSql.Add(sSQL_6);
|
|
tSql.ParamByName("pID").Value = VnewID;
|
|
tSql.ParamByName("pHSBZ").Value = "Y";
|
|
tSql.ParamByName("pRQ").Value = DateTime.Now.ToShortDateString();
|
|
tSql.ParamByName("pJGCZBID").Value = sJGCZBID;
|
|
tSql.ParamByName("pJGCZBBBID").Value = sJGCZBBBID;
|
|
tSql.ParamByName("pJGCZBXH").Value = CMISproConvert.StrToFloat(sJGCZBXH);
|
|
tSql.ParamByName("pDRHH").Value = CMISproConvert.StrToFloat(sDRHH);
|
|
dberp.ExecSQL(tSql);
|
|
sSQL_2 = string.Empty;
|
|
sSQL_4 = string.Empty;
|
|
sSQL_6 = string.Empty;
|
|
|
|
|
|
}
|
|
|
|
}
|
|
#endregion
|
|
|
|
#region 无税
|
|
|
|
sSQL_1 = " merge into V_XLXSCLQDWLHQ tar "
|
|
+ " using ( "
|
|
+ " select XLXSCLQDWL_JGCZBID,XLXSCLQDWL_JGCZBBBID,XLXSCLQDWL_JGCZBXH,XLXSCLQDWL_DRHH, ";
|
|
sSQL_2 = string.Empty;
|
|
sSQL_3 = " from XLXSCLQDWL ";
|
|
sSQL_4 = string.Empty;
|
|
sSQL_5 = " where XLXSCLQDWL_JGCZBID=:pJGCZBID and XLXSCLQDWL_JGCZBBBID=:pJGCZBBBID and XLXSCLQDWL_JGCZBXH=:pJGCZBXH and XLXSCLQDWL_DRHH=:pDRHH "
|
|
+ " ) sor "
|
|
+ " on ( "
|
|
+ " XLXSCLQDWL_JGCZBID=V_XLXSCLQDWLHQ_JGCZBID and XLXSCLQDWL_JGCZBBBID=V_XLXSCLQDWLHQ_JGCZBBBID and XLXSCLQDWL_JGCZBXH=V_XLXSCLQDWLHQ_JGCZBXH and XLXSCLQDWL_DRHH=V_XLXSCLQDWLHQ_DRHH and V_XLXSCLQDWLHQ_HSBZ=:pHSBZ and V_XLXSCLQDWLHQ_ID=:pID "
|
|
+ " ) when matched then update set V_XLXSCLQDWLHQ_HSBZ=:pHSBZ";
|
|
sSQL_6 = string.Empty;
|
|
|
|
count = 0;//记录已经拼接的列数
|
|
foreach (string sCLQDL in dicWLHQ.Keys)
|
|
{
|
|
sSQL_2 += string.Format("XLXSCLQDWL_WLID{0},isnull(c{0}.XLXSWLHQ_WSJG,0) as WSJG{0},isnull(c{0}.XLXSWLHQ_HSJG,0) as HSJG{0}", sCLQDL.Replace("第", "").Replace("列", ""));
|
|
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(XLXSBJCL_JGYBJCLID,' ')<>' ' and XLXSBJCL_JGYBJCLID='{0}' then {1}+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(XLXSBJCL_JGYBJCLID,' ')<>' ' and XLXSBJCL_JGYBJCLID='{0}' then {1}+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 XLXSWLHQ_JGBID=' '";
|
|
sSQL_4 += " and XLXSWLHQ_YXQS<=:pRQ and (XLXSWLHQ_YXQZ>=:pRQ or XLXSWLHQ_YXQZ is null)";
|
|
sSQL_4 += string.Format(") c{0} on c{0}.XLXSWLHQ_WLID=XLXSCLQDWL_WLID{0} ", sCLQDL.Replace("第", "").Replace("列", ""));
|
|
|
|
sSQL_6 += string.Format(" ,V_XLXSCLQDWLHQ_JG{0} = WSJG{0} ", sCLQDL.Replace("第", "").Replace("列", ""));
|
|
|
|
count++;
|
|
|
|
if (count % 25 == 0 || count == dicWLHQ.Count)
|
|
{
|
|
tSql.Clear();
|
|
tSql.Add(sSQL_1);
|
|
tSql.Add(sSQL_2);
|
|
tSql.Add(sSQL_3);
|
|
tSql.Add(sSQL_4);
|
|
tSql.Add(sSQL_5);
|
|
tSql.Add(sSQL_6);
|
|
tSql.ParamByName("pID").Value = VnewID;
|
|
tSql.ParamByName("pHSBZ").Value = "N";
|
|
tSql.ParamByName("pRQ").Value = DateTime.Now.ToShortDateString();
|
|
tSql.ParamByName("pJGCZBID").Value = sJGCZBID;
|
|
tSql.ParamByName("pJGCZBBBID").Value = sJGCZBBBID;
|
|
tSql.ParamByName("pJGCZBXH").Value = CMISproConvert.StrToFloat(sJGCZBXH);
|
|
tSql.ParamByName("pDRHH").Value = CMISproConvert.StrToFloat(sDRHH);
|
|
dberp.ExecSQL(tSql);
|
|
sSQL_2 = string.Empty;
|
|
sSQL_4 = string.Empty;
|
|
sSQL_6 = string.Empty;
|
|
|
|
|
|
}
|
|
|
|
}
|
|
#endregion
|
|
|
|
#endregion
|
|
|
|
#region 查询物料行情
|
|
tSql.Clear();
|
|
tSql.Add("select ");
|
|
bool bFirst = true;
|
|
foreach (string sCLQDL in dicWLHQ.Keys)
|
|
{
|
|
if (!bFirst)
|
|
tSql.Add(",");
|
|
bFirst = false;
|
|
|
|
tSql.Add(string.Format("XLXSCLQDWL_WLID{0},isnull(a.V_XLXSCLQDWLHQ_JG{0},0) as WSJG{0},isnull(b.V_XLXSCLQDWLHQ_JG{0},0) as HSJG{0}", sCLQDL.Replace("第", "").Replace("列", "")));
|
|
}
|
|
tSql.Add(" from XLXSCLQDWL");
|
|
|
|
tSql.Add(" left join");
|
|
tSql.Add(" V_XLXSCLQDWLHQ a on ");
|
|
tSql.Add(" XLXSCLQDWL_JGCZBID=a.V_XLXSCLQDWLHQ_JGCZBID and XLXSCLQDWL_JGCZBBBID=a.V_XLXSCLQDWLHQ_JGCZBBBID and XLXSCLQDWL_JGCZBXH=a.V_XLXSCLQDWLHQ_JGCZBXH and XLXSCLQDWL_DRHH=a.V_XLXSCLQDWLHQ_DRHH and a.V_XLXSCLQDWLHQ_HSBZ='N' and a.V_XLXSCLQDWLHQ_ID =:pID ");
|
|
tSql.Add(" left join");
|
|
tSql.Add(" V_XLXSCLQDWLHQ b on ");
|
|
tSql.Add(" XLXSCLQDWL_JGCZBID=b.V_XLXSCLQDWLHQ_JGCZBID and XLXSCLQDWL_JGCZBBBID=b.V_XLXSCLQDWLHQ_JGCZBBBID and XLXSCLQDWL_JGCZBXH=b.V_XLXSCLQDWLHQ_JGCZBXH and XLXSCLQDWL_DRHH=b.V_XLXSCLQDWLHQ_DRHH and b.V_XLXSCLQDWLHQ_HSBZ='Y' and b.V_XLXSCLQDWLHQ_ID =:pID ");
|
|
|
|
tSql.Add(" where XLXSCLQDWL_JGCZBID=:pJGCZBID and XLXSCLQDWL_JGCZBBBID=:pJGCZBBBID and XLXSCLQDWL_JGCZBXH=:pJGCZBXH and XLXSCLQDWL_DRHH=:pDRHH");
|
|
tSql.ParamByName("pID").Value = VnewID;
|
|
tSql.ParamByName("pRQ").Value = DateTime.Now.ToShortDateString();
|
|
tSql.ParamByName("pJGCZBID").Value = sJGCZBID;
|
|
tSql.ParamByName("pJGCZBBBID").Value = sJGCZBBBID;
|
|
tSql.ParamByName("pJGCZBXH").Value = sJGCZBXH;
|
|
tSql.ParamByName("pDRHH").Value = sDRHH;
|
|
dsWLHQ = dberp.OpenDataSet(tSql);
|
|
#endregion
|
|
|
|
//删除临时表
|
|
tSql.Clear();
|
|
tSql.Add("delete from V_XLXSCLQDWLHQ where V_XLXSCLQDWLHQ_ID=:pID ");
|
|
tSql.ParamByName("pID").Value = VnewID;
|
|
dberp.ExecSQL(tSql);
|
|
|
|
}
|
|
}
|
|
|
|
TSQL SQL = base.SetQuerySql();
|
|
SQL.Clear();
|
|
SQL.Add("select XLJGCZBLM_BJCLID,XLXSBJCL_BJCLMC,");
|
|
Dictionary<string, string> DicJGYWLID = new Dictionary<string, string>();
|
|
#region 物料加工原物料ID
|
|
TSQL sql = new TSQL(dberp);
|
|
sql.Clear();
|
|
sql.Add(" select XLXSBJCLWL_WLID,XLXSBJCLWL_JGYWLID ");
|
|
sql.Add(" from XLXSBJCLWL ");
|
|
sql.Add(" where XLXSBJCLWL_JGYWLID <> '-' ");
|
|
DataSet dsWLJGYWL = dberp.OpenDataSet(sql);
|
|
if (dsWLJGYWL.Tables[0].Rows.Count > 0)
|
|
{
|
|
foreach (DataRow trow in dsWLJGYWL.Tables[0].Rows)
|
|
{
|
|
string sWLID = trow["XLXSBJCLWL_WLID"].ToString().Trim();
|
|
string sJGYWLID = trow["XLXSBJCLWL_JGYWLID"].ToString().Trim();
|
|
if (!DicJGYWLID.ContainsKey(sWLID))
|
|
{
|
|
DicJGYWLID.Add(sWLID, sJGYWLID);
|
|
}
|
|
}
|
|
}
|
|
#endregion
|
|
//报价材料价格
|
|
SQL.Add(" case ");
|
|
foreach (string sCLQDL in dicCLHQ.Keys)
|
|
{
|
|
if (bHSBZ)
|
|
SQL.Add(string.Format(" when XLJGCZBLM_CLQDL='{0}' then isnull(XLXSCLHQ_HSJG,0.0) ", sCLQDL));
|
|
else
|
|
SQL.Add(string.Format(" when XLJGCZBLM_CLQDL='{0}' then isnull(XLXSCLHQ_WSJG,0.0) ", sCLQDL));
|
|
}
|
|
foreach (string sCLQDL in dicWLHQ.Keys)
|
|
{
|
|
SQL.Add(string.Format(" when XLJGCZBLM_CLQDL='{0}' then 0.0 ", sCLQDL));
|
|
}
|
|
SQL.Add(" end as CLJG, ");
|
|
//物料信息
|
|
SQL.Add(" case ");
|
|
foreach (string sCLQDL in dicCLHQ.Keys)
|
|
{
|
|
SQL.Add(string.Format(" when XLJGCZBLM_CLQDL='{0}' then ' ' ", sCLQDL));
|
|
}
|
|
foreach (string sCLQDL in dicWLHQ.Keys)
|
|
{
|
|
if (dsWLHQ != null && dsWLHQ.Tables[0].Rows.Count > 0)
|
|
{
|
|
string sWLID = dsWLHQ.Tables[0].Rows[0]["XLXSCLQDWL_WLID" + sCLQDL.Replace("第", "").Replace("列", "")].ToString().Trim();
|
|
if (DicJGYWLID.ContainsKey(sWLID))
|
|
sWLID = DicJGYWLID[sWLID];
|
|
SQL.Add(string.Format(" when XLJGCZBLM_CLQDL='{0}' then '{1}' ", sCLQDL, GetWLXX(sWLID)));
|
|
}
|
|
else
|
|
SQL.Add(string.Format(" when XLJGCZBLM_CLQDL='{0}' then ' ' ", sCLQDL));
|
|
}
|
|
SQL.Add(" end as WLXX, ");
|
|
//物料价格
|
|
SQL.Add(" case ");
|
|
foreach (string sCLQDL in dicCLHQ.Keys)
|
|
{
|
|
SQL.Add(string.Format(" when XLJGCZBLM_CLQDL='{0}' then 0.0 ", sCLQDL));
|
|
}
|
|
foreach (string sCLQDL in dicWLHQ.Keys)
|
|
{
|
|
if (dsWLHQ != null && dsWLHQ.Tables[0].Rows.Count > 0)
|
|
{
|
|
if (bHSBZ)
|
|
SQL.Add(string.Format(" when XLJGCZBLM_CLQDL='{0}' then {1} ", sCLQDL, dsWLHQ.Tables[0].Rows[0]["HSJG" + sCLQDL.Replace("第", "").Replace("列", "")].ToString().Trim()));
|
|
else
|
|
SQL.Add(string.Format(" when XLJGCZBLM_CLQDL='{0}' then {1} ", sCLQDL, dsWLHQ.Tables[0].Rows[0]["WSJG" + sCLQDL.Replace("第", "").Replace("列", "")].ToString().Trim()));
|
|
}
|
|
else
|
|
{
|
|
SQL.Add(string.Format(" when XLJGCZBLM_CLQDL='{0}' then 0.0 ", sCLQDL));
|
|
}
|
|
}
|
|
SQL.Add(" end as WLJG, ");
|
|
//材料数量
|
|
SQL.Add(" case ");
|
|
foreach (string sCLQDL in dicCLHQ.Keys)
|
|
{
|
|
SQL.Add(string.Format(" when XLJGCZBLM_CLQDL='{0}' then XLXSCLQD_SL{1} ", sCLQDL, sCLQDL.Replace("第", "").Replace("列", "")));
|
|
}
|
|
foreach (string sCLQDL in dicWLHQ.Keys)
|
|
{
|
|
SQL.Add(string.Format(" when XLJGCZBLM_CLQDL='{0}' then XLXSCLQD_SL{1} ", sCLQDL, sCLQDL.Replace("第", "").Replace("列", "")));
|
|
}
|
|
SQL.Add(" end as CLSL, ");
|
|
//损耗率
|
|
SQL.Add(" case ");
|
|
foreach (string sCLQDL in dicCLHQ.Keys)
|
|
{
|
|
SQL.Add(string.Format(" when XLJGCZBLM_CLQDL='{0}' then XLXSCLQD_SHL{1} ", sCLQDL, sCLQDL.Replace("第", "").Replace("列", "")));
|
|
}
|
|
foreach (string sCLQDL in dicWLHQ.Keys)
|
|
{
|
|
SQL.Add(string.Format(" when XLJGCZBLM_CLQDL='{0}' then XLXSCLQD_SHL{1} ", sCLQDL, sCLQDL.Replace("第", "").Replace("列", "")));
|
|
}
|
|
SQL.Add(" end as SHL, ");
|
|
//材料用量比例
|
|
SQL.Add(" case ");
|
|
foreach (string sCLQDL in dicCLHQ.Keys)
|
|
{
|
|
SQL.Add(string.Format(" when XLJGCZBLM_CLQDL='{0}' then XLXSCLQD_CLJGBL{1} ", sCLQDL, sCLQDL.Replace("第", "").Replace("列", "")));
|
|
}
|
|
foreach (string sCLQDL in dicWLHQ.Keys)
|
|
{
|
|
SQL.Add(string.Format(" when XLJGCZBLM_CLQDL='{0}' then XLXSCLQD_CLJGBL{1} ", sCLQDL, sCLQDL.Replace("第", "").Replace("列", "")));
|
|
}
|
|
SQL.Add(" end as CLJGBL, ");
|
|
//材料成本
|
|
SQL.Add(" case ");
|
|
foreach (string sCLQDL in dicCLHQ.Keys)
|
|
{
|
|
if (bHSBZ)
|
|
SQL.Add(string.Format(" when XLJGCZBLM_CLQDL='{0}' then isnull(XLXSCLHQ_HSJG,0.0)*XLXSCLQD_SL{1}*(1+XLXSCLQD_SHL{1}/100)*XLXSCLQD_CLJGBL{1} ", sCLQDL, sCLQDL.Replace("第", "").Replace("列", "")));
|
|
else
|
|
SQL.Add(string.Format(" when XLJGCZBLM_CLQDL='{0}' then isnull(XLXSCLHQ_WSJG,0.0)*XLXSCLQD_SL{1}*(1+XLXSCLQD_SHL{1}/100)*XLXSCLQD_CLJGBL{1} ", sCLQDL, sCLQDL.Replace("第", "").Replace("列", "")));
|
|
}
|
|
foreach (string sCLQDL in dicWLHQ.Keys)
|
|
{
|
|
if (dsWLHQ != null && dsWLHQ.Tables[0].Rows.Count > 0)
|
|
{
|
|
if (bHSBZ)
|
|
SQL.Add(string.Format(" when XLJGCZBLM_CLQDL='{0}' then {2}*XLXSCLQD_SL{1}*(1+XLXSCLQD_SHL{1}/100)*XLXSCLQD_CLJGBL{1} ", sCLQDL, sCLQDL.Replace("第", "").Replace("列", ""),
|
|
dsWLHQ.Tables[0].Rows[0]["HSJG" + sCLQDL.Replace("第", "").Replace("列", "")].ToString().Trim()));
|
|
else
|
|
SQL.Add(string.Format(" when XLJGCZBLM_CLQDL='{0}' then {2}*XLXSCLQD_SL{1}*(1+XLXSCLQD_SHL{1}/100)*XLXSCLQD_CLJGBL{1} ", sCLQDL, sCLQDL.Replace("第", "").Replace("列", ""),
|
|
dsWLHQ.Tables[0].Rows[0]["WSJG" + sCLQDL.Replace("第", "").Replace("列", "")].ToString().Trim()));
|
|
}
|
|
else
|
|
{
|
|
SQL.Add(string.Format(" when XLJGCZBLM_CLQDL='{0}' then 0.0 ", sCLQDL));
|
|
}
|
|
}
|
|
SQL.Add(" end as CLCB ");
|
|
|
|
SQL.Add(" from XLXSCLQD, ");
|
|
SQL.Add(" XLJGCZBLM");
|
|
SQL.Add(" left join XLXSBJCL on XLXSBJCL_BJCLID=XLJGCZBLM_BJCLID");
|
|
if (!sJGBID.Trim().Equals(""))//价格表专有材料行情
|
|
{
|
|
SQL.Add(" left join");
|
|
SQL.Add(" (");
|
|
SQL.Add(" select XLXSCLHQ_BJCLID,XLXSCLHQ_HSJG,XLXSCLHQ_WSJG");
|
|
//if (bHSBZ)
|
|
// SQL.Add(" XLXSCLHQ_HSJG,");
|
|
//else
|
|
// SQL.Add(" XLXSCLHQ_WSJG");
|
|
SQL.Add(" from XLXSCLHQ");
|
|
SQL.Add(" where XLXSCLHQ_JGBID=:pJGBID");
|
|
SQL.Add(" ) b on XLXSCLHQ_BJCLID=XLXSBJCL_BJCLID");
|
|
SQL.ParamByName("pJGBID").Value = sJGBID;
|
|
}
|
|
else
|
|
{
|
|
SQL.Add(" left join");
|
|
SQL.Add(" (");
|
|
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(" ) aa on XLXSCLHQ_BJCLID=XLXSBJCL_BJCLID");
|
|
SQL.ParamByName("pRQ").Value = DateTime.Now.ToShortDateString();
|
|
|
|
}
|
|
SQL.Add("where XLJGCZBLM_JGCZBID=XLXSCLQD_JGCZBID and XLJGCZBLM_JGCZBBBID = XLXSCLQD_JGCZBBBID and isnull(XLJGCZBLM_CLQDL,' ')<>' ' ");
|
|
SQL.Add(" and XLXSCLQD_XLXHID=:pXLXHID and XLXSCLQD_XLGGID=:pXLGGID and XLXSCLQD_XLBZID=:pXLBZID and XLXSCLQD_DYDJID=:pDYDJID ");
|
|
SQL.Add(" order by XLJGCZBLM_BJCLID");
|
|
|
|
SQL.ParamByName("pXLXHID").Value = sXLXHID;
|
|
SQL.ParamByName("pXLGGID").Value = sXLGGID;
|
|
SQL.ParamByName("pXLBZID").Value = sXLBZID;
|
|
SQL.ParamByName("pDYDJID").Value = sDYDJID;
|
|
|
|
return SQL;
|
|
}
|
|
|
|
public override bool Querying(TSQL sql)
|
|
{
|
|
Entites.Columns.Clear();
|
|
Entites.Clear();
|
|
return base.Querying(sql);
|
|
}
|
|
|
|
private string GetWLXX(string sWLID)
|
|
{
|
|
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
|
|
TSQL sql = new TSQL(dberp);
|
|
sql.Add("select WL_MC,WL_GG from WL where WL_WLID=:pWLID");
|
|
sql.ParamByName("pWLID").Value = sWLID.Trim();
|
|
DataSet ds = dberp.OpenDataSet(sql);
|
|
if (ds.Tables[0].Rows.Count > 0)
|
|
return sWLID.Trim() + "|" + ds.Tables[0].Rows[0]["WL_MC"].ToString().Trim() + "|" + ds.Tables[0].Rows[0]["WL_GG"].ToString().Trim();
|
|
else
|
|
return sWLID.Trim();
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
public partial class XLJGB_JJZS : OperationBase
|
|
{
|
|
XLJGB_JJZSEntity entity = new XLJGB_JJZSEntity();
|
|
|
|
protected void Page_Load(object sender, EventArgs e)
|
|
{
|
|
this.UMID = 100860001;
|
|
this.UMName = "线缆销售报价价格表";
|
|
this.CurMaster = Master;
|
|
this.Tabs = Tab;
|
|
this.PageHeight = 500;
|
|
this.PageWidth = 700;
|
|
CurMaster.BtnQueryVisible = false;
|
|
CurMaster.BtnReportVisible = false;
|
|
AddListSetMap(new ListSet(pagSHD.ID, null, grdSHD, entity, UPSHD));
|
|
base.InitPage();
|
|
grdSHD.EnabledToolBar = false;
|
|
CurMaster.PnlBill.Visible = false;
|
|
CurMaster.PnlQuery.Visible = false;
|
|
CurMaster.BtnOK.Visible = false;
|
|
CurMaster.BtnCancel.Visible = false;
|
|
|
|
if (GetOption("BJU002") != null)
|
|
{
|
|
grdSHD.FindColumnByFieldName("CLCB").NumberDecimalPlace = CMISproConvert.StrToInt(GetOption("BJU002"), 2);
|
|
txtCLCB.DecimalPlaces = CMISproConvert.StrToInt(GetOption("BJU002"), 2);
|
|
}
|
|
|
|
if (GetOption("BJU003") != null)
|
|
{
|
|
grdSHD.FindColumnByFieldName("CLSL").HeaderText = "材料数量(Kg/" + GetOption("BJU003") + ")";
|
|
grdSHD.FindColumnByFieldName("CLCB").HeaderText = "材料成本(元/" + GetOption("BJU003") + ")";
|
|
lblDW.Text = "元/" + GetOption("BJU003");
|
|
}
|
|
|
|
if (!IsPostBack)
|
|
{
|
|
//TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
|
|
//TSQL SQL = new TSQL(dberp);
|
|
//SQL.Clear();
|
|
//SQL.Add("select XLXSTZYZ_YZID, XLXSTZYZ_YZMC, XLXSTZYZ_JJFS ");
|
|
//SQL.Add(" from XLXSTZYZ");
|
|
//SQL.Add(" where XLXSTZYZ_MXBH = 'JZJ' and XLXSTZYZ_TJYS='2' ");
|
|
//SQL.Add("order by XLXSTZYZ_XSXH,XLXSTZYZ_YZID");
|
|
//DataSet ds = dberp.OpenDataSet(SQL);
|
|
//if (ds.Tables[0].Rows.Count > 0)
|
|
//{
|
|
// if (ds.Tables[0].Rows[0]["XLXSTZYZ_JJFS"].ToString().Trim().Equals("JJ"))
|
|
// grdSHD.FindColumnByFieldName("YZZ").HeaderText = ds.Tables[0].Rows[0]["XLXSTZYZ_YZMC"].ToString().Trim() + "(元)";
|
|
// else
|
|
// grdSHD.FindColumnByFieldName("YZZ").HeaderText = ds.Tables[0].Rows[0]["XLXSTZYZ_YZMC"].ToString().Trim() + "(%)";
|
|
//}
|
|
|
|
Master_OnQuery();
|
|
GridDataBind();
|
|
|
|
double dCLCB = 0;
|
|
foreach (GridViewRow row in grdSHD.Rows)
|
|
{
|
|
dCLCB += CMISproConvert.StrToFloat(grdSHD.GetValueByFieldName("CLCB", row));
|
|
}
|
|
txtCLCB.Value = dCLCB;
|
|
}
|
|
|
|
grdSHD.FindColumnByFieldName("CLJG").NumberDecimalPlace = XLBJDUtils.BJCLPriceDecimal;
|
|
grdSHD.FindColumnByFieldName("WLJG").NumberDecimalPlace = XLBJDUtils.BJCLPriceDecimal;
|
|
}
|
|
|
|
#region 模板继承事件
|
|
|
|
protected override void Master_OnQuery()
|
|
{
|
|
entity.sJGBID = PageParam.GetRTrimString("JGBID");
|
|
entity.bHSBZ = PageParam.GetRTrimString("HSBZ").Equals("Y");
|
|
entity.sXLXHID = PageParam.GetRTrimString("XLXHID");
|
|
entity.sXLGGID = PageParam.GetRTrimString("XLGGID");
|
|
entity.sXLBZID = PageParam.GetRTrimString("XLBZID");
|
|
entity.sDYDJID = PageParam.GetRTrimString("DYDJID");
|
|
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;
|
|
|
|
CloseWindow();
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
protected override void Grid_RowDataBound(object sender, GridViewRowEventArgs e)
|
|
{
|
|
if (e.Row.RowType == DataControlRowType.DataRow && Tab.ActiveTabIndex == 1)
|
|
{
|
|
}
|
|
base.Grid_RowDataBound(sender, e);
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
}
|