Files
U20261363_N_XLXSBJ/XLBJD_JGECBZSList.aspx.cs
2026-10-09 10:25:33 +08:00

466 lines
20 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using GThinking.N_MODEL.Page;
using GThinking.N_MISPRO.Data;
using System.Collections.Generic;
using GThinking.N_MISPRO.Utility;
using GThinking.N_MISPRO;
namespace GThinking.U20261363_N_XLXSBJ
{
[TableMap(DB = "DBERP", DbTableName = "XLXSCLQD", Umid = 100860174, IsWorkFlow = false, IsAttach = false, UseWhr = false)]
public class XLBJD_JGECBZS : EntityManager
{
}
public partial class XLBJD_JGECBZSList : SingleGridBase
{
XLBJD_JGECBZS entity = new XLBJD_JGECBZS();
protected void Page_Load(object sender, EventArgs e)
{
this.UMID = 100860174;
this.UMName = "成本追溯";
this.CurMaster = Master;
this.ModuleGV = grdContentGrid;
this.CurEntity = entity;
this.PageWidth = 700;
this.PageHeight = 500;
Master.EnableQueryBtn = false;
Master.EnableAttachBtn = false;
Master.EnableNewBtn = false;
Master.EnableViewBtn = false;
Master.EnableEditBtn = false;
Master.EnableCopyBtn = false;
Master.EnableDeleteBtn = false;
base.InitPage();
ModuleGV.OnClientDblClick = "return false;";
grdContentGrid.FindColumnByFieldName("px0").Visible = false;
if (GetOption(100860000, "BJU002") != null)
{
grdContentGrid.FindColumnExByFieldName("CLCB").NumberDecimalPlace = CMISproConvert.StrToInt(GetOption(100860000, "BJU002"), 2);
txtCLCB.DecimalPlaces = CMISproConvert.StrToInt(GetOption(100860000, "BJU002"), 2);
}
if (GetOption(100860000, "BJU003") != null)
{
grdContentGrid.FindColumnByFieldName("CLSL").HeaderText = "材料用量(Kg/" + GetOption(100860000, "BJU003") + ")";
grdContentGrid.FindColumnByFieldName("CLCB").HeaderText = "材料成本(元/" + GetOption(100860000, "BJU003") + ")";
lblDW.Text = "元/" + GetOption(100860000, "BJU003") + "";
}
if (!IsPostBack)
{
Master_OnStandardQuery(null, null);
lblBJCP.Text = GetBJCP();
}
grdContentGrid.FindColumnExByFieldName("CLJG").NumberDecimalPlace = XLBJDUtils.BJCLPriceDecimal;
}
#region 模板继承事件
protected override void Master_OnStandardQuery(object sender, EventArgs e)
{
entity.EntityTable.QuerySelSql = "select 1 from XLXSCLQD where 1<>1";
base.Master_OnStandardQuery(sender, e);
DataSet ds = GetTable();
entity.GridDataBind(grdContentGrid, tSession);
entity.GridDataBind(grdContentGrid, ds.Tables[0], ds.Tables[0].Rows.Count);
grdContentGrid.DataSource = ds;
}
protected override void moduleGV_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
entity.EntityTable.QuerySelSql = "select 1 from XLXSCLQD where 1<>1";
base.moduleGV_PageIndexChanging(sender, e);
grdContentGrid.SelectedIndex = -1;
DataSet ds = GetTable();
entity.GridDataBind(grdContentGrid, tSession);
entity.GridDataBind(grdContentGrid, ds.Tables[0], ds.Tables[0].Rows.Count);
grdContentGrid.DataSource = ds;
}
protected override void moduleGV_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
//TZCLHQ=Y说明可以调整材料行情
if (PageParam.GetRTrimString("TZCLHQ").Equals("Y") && PageParam.GetRTrimString("CANEDIT").Equals("Y"))
{
//材料价格
e.Row.Cells[4].Text = string.Format("<A href='#' onclick=\"CellClick('{0}','{1}','{2}') \"><U>" + strPadRight(e.Row.Cells[4].Text.ToString().Trim(), XLBJDUtils.BJCLPriceDecimal) + "</U></A>",
e.Row.Cells[0].Text.Trim(), e.Row.Cells[1].Text.Trim(), e.Row.Cells[3].Text.Trim());
}
}
base.moduleGV_RowDataBound(sender, e);
}
protected override void ReportRecordSetAdd()
{
DataSet ds = GetTable();
AddUserReportDataSet("XLXSBJDMXCLCB", ds);
base.ReportRecordSetAdd();
}
protected override void ReportDataSetAdd()
{
DataSet ds = GetTable();
for (int i = 0; i < grdContentGrid.Columns.Count; i++)
{
string sDataField = ((System.Web.UI.WebControls.BoundField)(grdContentGrid.Columns[i])).DataField.ToString().Trim();
string sHeaderText = grdContentGrid.Columns[i].HeaderText;
AddUserReportField("XLXSBJDMXCLCB", sDataField, sHeaderText, "S");
}
base.ReportDataSetAdd();
}
#endregion
#region 自定义事件
private DataSet GetTable()
{
string sBJDID = PageParam.GetRTrimString("BJDID");
string sXH = PageParam.GetRTrimString("XH");
DataSet dsResult = new DataSet();
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
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
#region 不计入成本栏目
Dictionary<string, string> DicBJRCLCBLM = new Dictionary<string, string>();
if (CMISproDataBase.ExistsRecord("DBERP", "select 1 from XLJGCZBLM where isnull(XLJGCZBLM_BJRCLCB,'N') = 'Y' and isnull(XLJGCZBLM_CLQDL,' ')<>' ' "))
{
sql.Clear();
sql.Add(" select BJDLJZSBJRCBLM_XH,BJDLJZSBJRCBLM_BJDCLCBLMH from BJDLJZSBJRCBLM where BJDLJZSBJRCBLM_BJDID = :pBJDID and BJDLJZSBJRCBLM_XH=:pXH ");
sql.ParamByName("pBJDID").Value = sBJDID;
sql.ParamByName("pXH").Value = sXH;
DataSet dsJRCBLM = dberp.OpenDataSet(sql);
if (dsJRCBLM.Tables[0].Rows.Count > 0)
{
foreach (DataRow trow in dsJRCBLM.Tables[0].Rows)
{
string sKey = trow["BJDLJZSBJRCBLM_BJDCLCBLMH"].ToString().Trim();
if (!DicBJRCLCBLM.ContainsKey(sKey))
DicBJRCLCBLM.Add(sKey, sKey);
}
}
}
#endregion
TSQL tSql = new TSQL(dberp);
tSql.Clear();
tSql.Add("select XLXSBJDCLCB_BJDID, XLXSBJDCLCB_XH");
for (int i = 1; i <= 80; i++)
{
tSql.Add(string.Format(",XLXSBJDCLCB_CLSL{0}", i.ToString().PadLeft(2, '0').Trim()));
tSql.Add(string.Format(",XLXSBJDCLCB_CLID{0}", i.ToString().PadLeft(2, '0').Trim()));
tSql.Add(string.Format(",XLXSBJDCLCB_CLDJ{0}", i.ToString().PadLeft(2, '0').Trim()));
}
tSql.Add(" from XLXSBJDCLCB ");
tSql.Add(" where XLXSBJDCLCB_BJDID=:pBJDID and XLXSBJDCLCB_XH=:pXH ");
tSql.ParamByName("pBJDID").Value = sBJDID;
tSql.ParamByName("pXH").Value = sXH;
DataSet dsBJCL = dberp.OpenDataSet(tSql);
if (dsBJCL.Tables[0].Rows.Count > 0)
{
DataTable dt1 = new DataTable();
DataTable dt2 = new DataTable();
dt1.Columns.Add("BJCLID", typeof(string));
dt1.Columns.Add("BJCLMC", typeof(string));
dt1.Columns.Add("BJHQ", typeof(string));
dt1.Columns.Add("WLXX", typeof(string));
dt1.Columns.Add("CLJG", typeof(string));
dt1.Columns.Add("CLSL", typeof(double));
dt1.Columns.Add("px0", typeof(double));
dt1.Columns.Add("CLCB", typeof(double));
dt2.Columns.Add("BJCLID", typeof(string));
dt2.Columns.Add("BJCLMC", typeof(string));
dt2.Columns.Add("BJHQ", typeof(string));
dt2.Columns.Add("WLXX", typeof(string));
dt2.Columns.Add("CLJG", typeof(string));
dt2.Columns.Add("CLSL", typeof(double));
dt2.Columns.Add("px0", typeof(double));
dt2.Columns.Add("CLCB", typeof(double));
for (int i = 1; i <= 80; i++)
{
string sBJRCBLMKey = i.ToString().PadLeft(2, '0');
string sCLID = dsBJCL.Tables[0].Rows[0][string.Format("XLXSBJDCLCB_CLID{0}", i.ToString().PadLeft(2, '0').Trim())].ToString().Trim();
if (sCLID.Equals(""))
{
//避免出现跳空列的情况
continue;
}
string sBJCLID = "";
string sWLID = "";
if (sCLID.Contains("|"))
{
sBJCLID = sCLID.Split('|')[0];
sWLID = sCLID.Split('|')[1];
}
else
sBJCLID = sCLID;
string sCLSL = dsBJCL.Tables[0].Rows[0][string.Format("XLXSBJDCLCB_CLSL{0}", i.ToString().PadLeft(2, '0').Trim())].ToString().Trim();
double dCLSL = CMISproConvert.StrToFloat(sCLSL);
string sCLDJ = dsBJCL.Tables[0].Rows[0][string.Format("XLXSBJDCLCB_CLDJ{0}", i.ToString().PadLeft(2, '0').Trim())].ToString().Trim();
string sCLCB = NumberUtils.RoundX(CMISproConvert.StrToFloat(sCLSL) * CMISproConvert.StrToFloat(sCLDJ), 6).ToString().Trim();
if (dCLSL > 0)//数量大于0的存放在dt1,不大于0的存在dt2
{
if (DicJGYWLID.ContainsKey(sWLID))
sWLID = DicJGYWLID[sWLID];
string sWLXX = GetWLXX(sWLID);
string sBJCLMC = GetBJCLMC(sBJCLID);
if (DicBJRCLCBLM.ContainsKey(sBJRCBLMKey))
sBJCLMC += "(不计入成本)";
string sBJHQ = GetBJCLHQ(sBJCLID);
DataRow dtrow = dt1.NewRow();
dtrow["BJCLID"] = sBJCLID;
dtrow["BJCLMC"] = sBJCLMC;
dtrow["BJHQ"] = sBJHQ;
dtrow["WLXX"] = sWLXX;
dtrow["CLJG"] = sCLDJ;
dtrow["CLSL"] = dCLSL;
dtrow["px0"] = 0;
dtrow["CLCB"] = CMISproConvert.StrToFloat(sCLCB);
if (DicBJRCLCBLM.ContainsKey(sBJRCBLMKey))
dtrow["CLCB"] = 0;
dt1.Rows.Add(dtrow);
}
}
dsResult.Tables.Add(dt1);
}
txtCLCB.Value = 0;
for (int i = 0; i < dsResult.Tables[0].Rows.Count; i++)
{
txtCLCB.Value += CMISproConvert.StrToFloat(dsResult.Tables[0].Rows[i]["CLCB"].ToString());
}
return dsResult;
}
private string GetBJCLMC(string sBJCLID)
{
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL sql = new TSQL(dberp);
sql.Add(" select XLXSBJCL_BJCLMC from XLXSBJCL where XLXSBJCL_BJCLID=:pBJCLID ");
sql.ParamByName("pBJCLID").Value = sBJCLID.Trim();
DataSet ds = dberp.OpenDataSet(sql);
if (ds.Tables[0].Rows.Count > 0)
return ds.Tables[0].Rows[0]["XLXSBJCL_BJCLMC"].ToString().Trim();
else
return "";
}
private string GetBJCLHQ(string sBJCLID)
{
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL sql = new TSQL(dberp);
sql.Add(" select case XLXSBJCL_BJHQ when '1' then '1|材料行情' else '2|物料行情' end as XLXSBJCL_BJHQ from XLXSBJCL where XLXSBJCL_BJCLID=:pBJCLID ");
sql.ParamByName("pBJCLID").Value = sBJCLID.Trim();
DataSet ds = dberp.OpenDataSet(sql);
if (ds.Tables[0].Rows.Count > 0)
return ds.Tables[0].Rows[0]["XLXSBJCL_BJHQ"].ToString().Trim();
else
return "";
}
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();
}
private string GetBJCP()
{
string sRetValue = "";
string sXLXHID = PageParam.GetRTrimString("XLXHID");
string sXLGGID = PageParam.GetRTrimString("XLGGID");
string sXLBZID = GetXLBZXX(PageParam.GetRTrimString("XLBZID"));
string sDYDJID = PageParam.GetRTrimString("DYDJID");
if (!sXLXHID.Equals(""))
{
sRetValue = sRetValue + "&nbsp;&nbsp;" + sXLXHID;
}
if (!sXLGGID.Equals(""))
{
sRetValue = sRetValue + "&nbsp;&nbsp;" + sXLGGID;
}
if (!sXLBZID.Equals(""))
{
sRetValue = sRetValue + "&nbsp;&nbsp;" + sXLBZID;
}
if (!sDYDJID.Equals(""))
{
sRetValue = sRetValue + "&nbsp;&nbsp;" + sDYDJID;
}
sRetValue = sRetValue.Trim();
return sRetValue;
}
private string GetXLBZXX(string sXLBZID)
{
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
SQL.Clear();
SQL.Add(" select rtrim(XLBZ_XLBZID)||'|'||rtrim(XLBZ_XLBZLXMC) as XLBZ_XLBZID from XLBZ where XLBZ_XLBZID= :pXLBZID ");
SQL.ParamByName("pXLBZID").Value = sXLBZID;
DataSet ds = dberp.OpenDataSet(SQL);
if (ds.Tables[0].Rows.Count > 0)
{
return ds.Tables[0].Rows[0][0].ToString().Trim();
}
else
return "";
}
private string strPadRight(string s, int x)
{
string str = s;
if (str.Split('.').Length == 2)
{
str = str.Split('.')[0] + "." + str.Split('.')[1].PadRight(x, '0');
}
else
{
string tmp = "0";
if (x > 0)
{
tmp = tmp.PadRight(x, '0');
str = str + "." + tmp;
}
}
return str;
}
#endregion
#region 按钮事件
protected void btnTZJG_Click(object sender, EventArgs e)
{
TPageParams pageParams = new TPageParams();
pageParams.UrlPath = "XLBJD_CLHQTZList.aspx";
pageParams.Title = "调整材料行情" + ":" + txtBJCLID.Value.Trim() + "|" + txtBJCLMC.Value.Trim() + (txtWLXX.Value.Trim().Equals("") ? "" : "【" + txtWLXX.Value.Trim() + "】");
pageParams.AddString("BJFLID", PageParam.GetRTrimString("BJFLID"));
pageParams.AddString("BJDID", PageParam.GetRTrimString("BJDID"));
pageParams.AddString("BJRQ", PageParam.GetRTrimString("BJRQ"));
pageParams.AddString("JGBID", PageParam.GetRTrimString("JGBID"));
pageParams.AddString("JCLLX", PageParam.GetRTrimString("JCLLX"));
pageParams.AddString("LJJCLLX", PageParam.GetRTrimString("LJJCLLX"));
pageParams.AddString("BJDHQLY", PageParam.GetRTrimString("BJDHQLY"));
pageParams.AddString("BJLY", PageParam.GetRTrimString("BJLY"));
pageParams.AddString("ZDXJJCLLX", PageParam.GetRTrimString("ZDXJJCLLX"));
pageParams.AddString("btnRefreshCID", btnRefreshCLHQTZ.ClientID);
pageParams.AddString("HSBZ", PageParam.GetRTrimString("HSBZ"));
pageParams.AddString("TBJCLID", PageParam.GetRTrimString("TBJCLID"));
pageParams.AddString("LBJCLID", PageParam.GetRTrimString("LBJCLID"));
pageParams.AddString("TJ", PageParam.GetRTrimString("TJ"));
pageParams.AddString("LJ", PageParam.GetRTrimString("LJ"));
pageParams.AddString("CPBJMRXSWS", PageParam.GetRTrimString("CPBJMRXSWS"));
pageParams.AddString("JYF", PageParam.GetRTrimString("JYF"));//计运费
pageParams.AddString("YSJDID", PageParam.GetRTrimString("YSJDID"));//运输节点
pageParams.AddString("GYSID", PageParam.GetRTrimString("GYSID"));//运输单位
pageParams.AddString("YFWLID", PageParam.GetRTrimString("YFWLID"));//运费物料
pageParams.AddString("BJHYF", PageParam.GetRTrimString("BJHYF"));//报价含运费
pageParams.AddString("BJCLID", txtBJCLID.Value.Trim());
OpenModuleDialog(100860174, pageParams);
}
protected void btnRefreshCLHQTZ_Click(object sender, EventArgs e)
{
int iIndex = grdContentGrid.SelectedIndex;
moduleGV_PageIndexChanging(null, null);
grdContentGrid.SelectedIndex = iIndex;
}
protected void lblBJCP_Click(object sender, EventArgs e)
{
string sJGCZBIDFromJGCZBML = "";
string sJGCZBBBIDFromJGCZBML = "";
string sXLXHID = PageParam.GetRTrimString("XLXHID");
string sXLGGID = PageParam.GetRTrimString("XLGGID");
string sXLBZID = PageParam.GetRTrimString("XLBZID");
string sDYDJID = PageParam.GetRTrimString("DYDJID");
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL sql = new TSQL(dberp);
sql.Clear();
sql.Add(" select XLXSCLQD_JGCZBID as JGCZBID, XLXSCLQD_JGCZBBBID as JGCZBBBID");
sql.Add(" from XLXSCLQD where 1=1 and XLXSCLQD_WPID ='ZZZZ' ");
sql.Add(" and XLXSCLQD_XLXHID = :pXLXHID ");
sql.Add(" and XLXSCLQD_XLGGID = :pXLGGID ");
sql.Add(" and XLXSCLQD_XLBZID = :pXLBZID ");
sql.Add(" and XLXSCLQD_DYDJID = :pDYDJID ");
sql.ParamByName("pXLXHID").Value = sXLXHID;
sql.ParamByName("pXLGGID").Value = sXLGGID;
sql.ParamByName("pXLBZID").Value = sXLBZID;
sql.ParamByName("pDYDJID").Value = sDYDJID.Equals("") ? " " : sDYDJID;
DataSet ds = dberp.OpenDataSet(sql);
if (ds.Tables[0].Rows.Count > 0)
{
sJGCZBBBIDFromJGCZBML = ds.Tables[0].Rows[0]["JGCZBBBID"].ToString().Trim();
sJGCZBIDFromJGCZBML = ds.Tables[0].Rows[0]["JGCZBID"].ToString().Trim() + "|" + sJGCZBBBIDFromJGCZBML;
}
else
{
ShowMessage("未查询到结构尺重表信息,请在102579008|报价材料用量模块检查该记录是否补充完整并流转结束!");
return;
}
TPageParams tpp = new TPageParams();
tpp.UrlPath = "../Components/N_XLBJCL/CLQDList.aspx";
tpp.CallAction = TPageCallAction.pcaBrowse;
tpp.AddString("JGCZBIDFromJGCZBML", sJGCZBIDFromJGCZBML);
tpp.AddString("JGCZBBBIDFromJGCZBML", sJGCZBBBIDFromJGCZBML);
OpenFuncModuleDialog(102579001, tpp);
}
#endregion
}
}