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.N_XLXSBJ
{
public partial class XLBJD_JGECBZSList : SingleGridBase
{
XLBJD_JGECBZS entity = new XLBJD_JGECBZS();
protected void Page_Load(object sender, EventArgs e)
{
this.UMID = 100860044;
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("" + strPadRight(e.Row.Cells[4].Text.ToString().Trim(), XLBJDUtils.BJCLPriceDecimal) + "",
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 DicJGYWLID = new Dictionary();
#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 DicBJRCLCBLM = new Dictionary();
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);
}
//else
//{
// DataRow dtrow = dt2.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);
// dt2.Rows.Add(dtrow);
//}
}
//if (dt2.Rows.Count > 0)//将dt2的行加在dt1之后
//{
// foreach (DataRow trow in dt2.Rows)
// {
// dt1.Rows.Add(trow.ItemArray);
// }
//}
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 + " " + sXLXHID;
}
if (!sXLGGID.Equals(""))
{
sRetValue = sRetValue + " " + sXLGGID;
}
if (!sXLBZID.Equals(""))
{
sRetValue = sRetValue + " " + sXLBZID;
}
if (!sDYDJID.Equals(""))
{
sRetValue = sRetValue + " " + 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(100860000, 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
}
}