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

416 lines
19 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_CLCB : EntityObject
{
public string sJGBID = "";
public string sXH = "";
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 XLXSJGBYLLM_CLQDL,XLXSJGBYLLM_BJCLID,XLXSBJCL_BJHQ,XLJGCZBML_CZBLX");
tSql.Add(" from XLXSJGBYLLM");
tSql.Add(" left join XLXSJGBCLQD on XLXSJGBCLQD_JGBID=XLXSJGBYLLM_JGBID and XLXSJGBCLQD_JGCZBID=XLXSJGBYLLM_JGCZBID and XLXSJGBCLQD_JGCZBBBID=XLXSJGBYLLM_JGCZBBBID and XLXSJGBCLQD_JJFPSJ=XLXSJGBYLLM_JJFPSJ ");
tSql.Add(" left join XLXSBJCL on XLXSBJCL_BJCLID=XLXSJGBYLLM_BJCLID ");
tSql.Add(" left join XLJGCZBML on XLJGCZBML_JGCZBID=XLXSJGBYLLM_JGCZBID ");
tSql.Add(" where XLXSJGBCLQD_JGBID=:pJGBID and XLXSJGBCLQD_XH=:pXH ");
tSql.Add(" order by XLXSJGBYLLM_CLQDL");
tSql.ParamByName("pJGBID").Value = sJGBID;
tSql.ParamByName("pXH").Value = sXH;
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]["XLXSJGBYLLM_CLQDL"].ToString().Trim(), dsCZB.Tables[0].Rows[i]["XLXSJGBYLLM_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]["XLXSJGBYLLM_CLQDL"].ToString().Trim(), dsCZB.Tables[0].Rows[i]["XLXSJGBYLLM_BJCLID"].ToString().Trim());
else if (dsCZB.Tables[0].Rows[i]["XLXSBJCL_BJHQ"].ToString().Trim().Equals("2"))//2|物料行情
dicWLHQ.Add(dsCZB.Tables[0].Rows[i]["XLXSJGBYLLM_CLQDL"].ToString().Trim(), dsCZB.Tables[0].Rows[i]["XLXSJGBYLLM_BJCLID"].ToString().Trim());
}
}
//存在物料行情材料
if (dicWLHQ.Keys.Count > 0)
{
tSql.Clear();
tSql.Add("select XLXSJGBCLQD_JGCZBID,XLXSJGBCLQD_JGCZBBBID,XLXSJGBCLQD_JGCZBXH,XLXSJGBCLQD_DRHH");
tSql.Add(" from XLXSJGBCLQD ");
tSql.Add(" where XLXSJGBCLQD_JGBID=:pJGBID and XLXSJGBCLQD_XH=:pXH ");
tSql.ParamByName("pJGBID").Value = sJGBID;
tSql.ParamByName("pXH").Value = sXH;
DataSet dsCZBXL = dberp.OpenDataSet(tSql);
if (dsCZBXL.Tables[0].Rows.Count > 0)
{
string sJGCZBID = dsCZBXL.Tables[0].Rows[0]["XLXSJGBCLQD_JGCZBID"].ToString().Trim();
string sJGCZBBBID = dsCZBXL.Tables[0].Rows[0]["XLXSJGBCLQD_JGCZBBBID"].ToString().Trim();
string sJGCZBXH = dsCZBXL.Tables[0].Rows[0]["XLXSJGBCLQD_JGCZBXH"].ToString().Trim();
string sDRHH = dsCZBXL.Tables[0].Rows[0]["XLXSJGBCLQD_DRHH"].ToString().Trim();
tSql.Clear();
tSql.Add("select ");
bool bFirst = true;
foreach (string sCLQDL in dicWLHQ.Keys)
{
if (bFirst)
tSql.Add(string.Format("XLXSJGBCLQDWL_WLID{0},isnull(c{0}.XLXSWLHQ_WSJG,0) as WSJG{0},isnull(c{0}.XLXSWLHQ_HSJG,0) as HSJG{0}", sCLQDL.Replace("第", "").Replace("列", "")));
else
tSql.Add(string.Format(",XLXSJGBCLQDWL_WLID{0},isnull(c{0}.XLXSWLHQ_WSJG,0) as WSJG{0},isnull(c{0}.XLXSWLHQ_HSJG,0) as HSJG{0}", sCLQDL.Replace("第", "").Replace("列", "")));
bFirst = false;
}
tSql.Add(" from XLXSJGBCLQDWL");
foreach (string sCLQDL in dicWLHQ.Keys)//关联XLXSWLHQ,获取物料行情
{
tSql.Add(" left join");
tSql.Add(" (");
tSql.Add(" select XLXSWLHQ_WLID,XLXSWLHQ_WSJG,XLXSWLHQ_HSJG");
tSql.Add(" from XLXSWLHQ ");
tSql.Add(" where XLXSWLHQ_JGBID= :pJGBID ");
tSql.Add(string.Format(") c{0} on c{0}.XLXSWLHQ_WLID=XLXSJGBCLQDWL_WLID{0} ", sCLQDL.Replace("第", "").Replace("列", "")));
}
tSql.Add(" where XLXSJGBCLQDWL_JGBID =:pJGBID and XLXSJGBCLQDWL_XH =:pXH ");
tSql.ParamByName("pJGBID").Value = sJGBID;
tSql.ParamByName("pXH").Value = sXH;
dsWLHQ = dberp.OpenDataSet(tSql);
}
}
TSQL SQL = base.SetQuerySql();
SQL.Clear();
SQL.Add("select XLXSJGBYLLM_BJCLID,XLXSBJCL_BJCLMC,");
if (dicCLHQ.Count > 0 || dicWLHQ.Count > 0)
{
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 XLXSJGBYLLM_CLQDL='{0}' then isnull(XLXSCLHQ_HSJG,0.0) ", sCLQDL));
else
SQL.Add(string.Format(" when XLXSJGBYLLM_CLQDL='{0}' then isnull(XLXSCLHQ_WSJG,0.0) ", sCLQDL));
}
foreach (string sCLQDL in dicWLHQ.Keys)
{
SQL.Add(string.Format(" when XLXSJGBYLLM_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 XLXSJGBYLLM_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]["XLXSJGBCLQDWL_WLID" + sCLQDL.Replace("第", "").Replace("列", "")].ToString().Trim();
if (DicJGYWLID.ContainsKey(sWLID))
sWLID = DicJGYWLID[sWLID];
SQL.Add(string.Format(" when XLXSJGBYLLM_CLQDL='{0}' then '{1}' ", sCLQDL, GetWLXX(sWLID)));
}
else
SQL.Add(string.Format(" when XLXSJGBYLLM_CLQDL='{0}' then ' ' ", sCLQDL));
}
SQL.Add(" end as WLXX, ");
//物料价格
SQL.Add(" case ");
foreach (string sCLQDL in dicCLHQ.Keys)
{
SQL.Add(string.Format(" when XLXSJGBYLLM_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 XLXSJGBYLLM_CLQDL='{0}' then {1} ", sCLQDL, dsWLHQ.Tables[0].Rows[0]["HSJG" + sCLQDL.Replace("第", "").Replace("列", "")].ToString().Trim()));
else
SQL.Add(string.Format(" when XLXSJGBYLLM_CLQDL='{0}' then {1} ", sCLQDL, dsWLHQ.Tables[0].Rows[0]["WSJG" + sCLQDL.Replace("第", "").Replace("列", "")].ToString().Trim()));
}
else
{
SQL.Add(string.Format(" when XLXSJGBYLLM_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 XLXSJGBYLLM_CLQDL='{0}' then XLXSJGBCLQD_ZL{1} ", sCLQDL, sCLQDL.Replace("第", "").Replace("列", "")));
}
foreach (string sCLQDL in dicWLHQ.Keys)
{
SQL.Add(string.Format(" when XLXSJGBYLLM_CLQDL='{0}' then XLXSJGBCLQD_ZL{1} ", sCLQDL, sCLQDL.Replace("第", "").Replace("列", "")));
}
SQL.Add(" end as CLZL, ");
//材料成本
SQL.Add(" case ");
foreach (string sCLQDL in dicCLHQ.Keys)
{
if (bHSBZ)
SQL.Add(string.Format(" when XLXSJGBYLLM_CLQDL='{0}' then isnull(XLXSCLHQ_HSJG,0.0)*XLXSJGBCLQD_ZL{1} ", sCLQDL, sCLQDL.Replace("第", "").Replace("列", "")));
else
SQL.Add(string.Format(" when XLXSJGBYLLM_CLQDL='{0}' then isnull(XLXSCLHQ_WSJG,0.0)*XLXSJGBCLQD_ZL{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 XLXSJGBYLLM_CLQDL='{0}' then {2}*XLXSJGBCLQD_ZL{1} ", sCLQDL, sCLQDL.Replace("第", "").Replace("列", ""),
dsWLHQ.Tables[0].Rows[0]["HSJG" + sCLQDL.Replace("第", "").Replace("列", "")].ToString().Trim()));
else
SQL.Add(string.Format(" when XLXSJGBYLLM_CLQDL='{0}' then {2}*XLXSJGBCLQD_ZL{1} ", sCLQDL, sCLQDL.Replace("第", "").Replace("列", ""),
dsWLHQ.Tables[0].Rows[0]["WSJG" + sCLQDL.Replace("第", "").Replace("列", "")].ToString().Trim()));
}
else
{
SQL.Add(string.Format(" when XLXSJGBYLLM_CLQDL='{0}' then 0.0 ", sCLQDL));
}
}
SQL.Add(" end as CLCB ");
}
else
{
SQL.Add(" 0.0 as CLJG, ");
SQL.Add(" ' ' as WLXX, ");
SQL.Add(" 0.0 as WLJG, ");
SQL.Add(" 0.0 as CLZL, ");
SQL.Add(" 0.0 as CLCB ");
}
SQL.Add(" from XLXSJGBCLQD, ");
SQL.Add(" XLXSJGBYLLM");
SQL.Add(" left join XLXSBJCL on XLXSBJCL_BJCLID=XLXSJGBYLLM_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 XLXSJGBCLQD_JGBID=XLXSJGBYLLM_JGBID and XLXSJGBCLQD_JGCZBID=XLXSJGBYLLM_JGCZBID and XLXSJGBCLQD_JGCZBBBID=XLXSJGBYLLM_JGCZBBBID and XLXSJGBCLQD_JJFPSJ=XLXSJGBYLLM_JJFPSJ ");
SQL.Add(" and XLXSJGBCLQD_JGBID=:pJGBID and XLXSJGBCLQD_XH= :pXH");
SQL.Add(" order by XLXSJGBYLLM_CLQDL");
SQL.ParamByName("pJGBID").Value = sJGBID;
SQL.ParamByName("pXH").Value = sXH;
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_CLJGTZInfo : OperationBase
{
XLJGB_CLCB entity = new XLJGB_CLCB();
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("CLZL").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.sXH = PageParam.GetRTrimString("XH");
entity.bHSBZ = PageParam.GetRTrimString("HSBZ").Equals("Y");
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
}
}