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

397 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_MODEL.Page;
using GThinking.N_MISPRO.Data;
using System.Data.Common;
using GThinking.N_CONTROL;
using GThinking.N_WORKFLOW;
using GThinking.N_PUBLIC;
using GThinking.N_MODEL.Dialog;
using GThinking.N_MISPRO.Utility;
using System.Reflection;
using System.Web.Script;
using System.Text;
using GThinking.N_PUBLIC2;
using System.Collections.Generic;
using GThinking.N_MISPRO.MISPROAS;
namespace GThinking.N_XLXSBJ
{
public partial class XLBJD_WBBJDLMList : OperationBase
{
XLBJD_WBBJDLMEntity entity = new XLBJD_WBBJDLMEntity();
string sWBBJDID = "";
string sBJDID = "";
string sJMBGSBM = "";
#region Page类事件继承
protected void Page_Load(object sender, EventArgs e)
{
base.UMID = 100860043;
base.UMName = "外部线缆产品导入";
base.Tabs = Tab;
base.CurMaster = Master;
this.PageWidth = 750;
this.PageHeight = 600;
this.Master.BtnReportVisible = false;
AddListSetMap(new ListSet(XQXX.ID, null, QueryGrid, entity, UPXQXX));
base.InitPage();
QueryGrid.EnabledToolBar = false;
QueryGrid.ReadOnly = false;
this.Master.BtnQueryVisible = false;
sWBBJDID = PageParam.GetRTrimString("WBBJDID");
sBJDID = PageParam.GetRTrimString("SELBJDID").Equals("") ? " " : PageParam.GetRTrimString("SELBJDID");
BJFLXX bjflxx = XLBJDUtils.GetBJFLXXByBJDID(sBJDID);
if (!string.IsNullOrEmpty(bjflxx.XLXSBJFL_JMBGSBM.Trim()))
{
sJMBGSBM = bjflxx.XLXSBJFL_JMBGSBM.Trim();
}
if (!IsPostBack)
{
IntiControl();
Master_OnQuery();
GridDataBind();
}
}
#endregion
#region 模板事件继承
protected override void Master_OnQuery()
{
entity.sWBBJDID = sWBBJDID;
entity.sBJDID = sBJDID;
base.Master_OnQuery();
}
protected override void GridDataBind()
{
base.GridDataBind();
}
protected override bool DataLogicValid()
{
bool bResult = base.DataLogicValid();
if (!bResult) return false;
List<string> lst = new List<string>();
lst.Clear();
string sMessage = "";
string[] sWarn = { "", "报价产品", "电压等级", "标准", "计量单位", "报价数量", "报价", "备注", "型号/型号-规格", "规格" };
//行记录校验
foreach (GridViewRow row in QueryGrid.NewRows)
{
if (!QueryGrid.GetValueByFieldName("XLWBBJDLM_ZDLMLX", row).ToString().Trim().Equals(""))
{
if (!lst.Contains(QueryGrid.GetValueByFieldName("XLWBBJDLM_ZDLMLX", row).ToString().Trim()))
{
lst.Add(QueryGrid.GetValueByFieldName("XLWBBJDLM_ZDLMLX", row).ToString().Trim());
}
else
{
sMessage = sMessage + sWarn[CMISproConvert.StrToInt(QueryGrid.GetValueByFieldName("XLWBBJDLM_ZDLMLX", row).ToString().Trim())];
}
}
}
if (!sMessage.Trim().Equals(""))
{
ShowMessage("报价单栏目不允许重复:" + sMessage);
return false;
}
//报价产品 与 型号/规格 互斥
if (lst.Count > 0)
{
if (lst.Contains("1"))
{
if (lst.Contains("8"))
{
ShowMessage("报价产品与型号不允许同时出现!");
return false;
}
if (lst.Contains("9"))
{
ShowMessage("报价产品与规格不允许同时出现!");
return false;
}
}
//型号和规格必须同时存在
else
{
if (XLBJDUtils.ExistXLXSBJGWWL())//存在国网物料编码时,可以不导入型号规格
{
if (!lst.Contains("8") && !lst.Contains("9") && !lst.Contains("N"))
{
ShowMessage("缺少报价产品或者型号、规格或者国网物料编码!");
return false;
}
else if (!lst.Contains("N") && (!lst.Contains("8") || !lst.Contains("9")))
{
ShowMessage("型号和规格必须同时存在!");
return false;
}
}
else
{
if (!lst.Contains("8") && !lst.Contains("9"))
{
ShowMessage("缺少报价产品或者型号、规格!");
return false;
}
else if (!lst.Contains("8") || !lst.Contains("9"))
{
ShowMessage("型号和规格必须同时存在!");
return false;
}
}
}
}
return true;
}
protected override bool Master_OnOK()
{
bool bResult = base.Master_OnOK();
if (!bResult) return false;
string sWBBJDIDList = sWBBJDID;
if (!PageParam.GetRTrimString("MLFZH").Equals("0"))
{
sWBBJDIDList = XLWBBJDUtils.GetWBBJDListByMLFZH(sBJDID, PageParam.GetRTrimString("MLFZH"));
}
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
try
{
dberp.BeginTrans();
string sLMBH = "";
string sZDLMLX = "";
Dictionary<string, string> dicLM = new Dictionary<string, string>();
dicLM.Clear();
//取出修改后的记录
foreach (GridViewRow row in QueryGrid.NewRows)
{
if (!QueryGrid.GetValueByFieldName("XLWBBJDLM_ZDLMLX", row).ToString().Trim().Equals(""))
{
sLMBH = QueryGrid.GetValueByFieldName("XLWBBJDLM_LMBH", row).ToString().Trim();
sZDLMLX = QueryGrid.GetValueByFieldName("XLWBBJDLM_ZDLMLX", row).ToString().Trim();
dicLM.Add(sLMBH, sZDLMLX);
}
}
if (dicLM.ContainsValue("5") || dicLM.ContainsValue("6") || dicLM.ContainsValue("B"))
{
SQL.Clear();
SQL.Add(" SELECT ");
string col = "";
foreach (string sBH in dicLM.Keys)
{
if (dicLM[sBH].Equals("5") || dicLM[sBH].Equals("6") || dicLM[sBH].Equals("B"))
{
col += string.Format(" XLWBBJDNR_LMNR{0},", sBH.Trim());
}
}
col = col.TrimEnd(',');
SQL.Add(col);
SQL.Add(" FROM XLWBBJDNR where 1=1 ");
SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLWBBJDNR_WBBJDID", sWBBJDIDList));
DataSet dsNR = dberp.OpenDataSet(SQL);
for (int i = 0; i < dsNR.Tables[0].Rows.Count; i++)
{
for(int j=0;j<dsNR.Tables[0].Columns.Count;j++)
{
if(!XLBJD_WBBJDMXList.IsNumeric(dsNR.Tables[0].Rows[i][j].ToString().Trim()))
{
string colname = dsNR.Tables[0].Columns[j].ColumnName.Replace("XLWBBJDNR_LMNR", "");
string sLMLX = "";
if (dicLM[colname].Equals("5"))
sLMLX = "5|报价数量";
if (dicLM[colname].Equals("6"))
sLMLX = "6|报价";
if (dicLM[colname].Equals("B"))
sLMLX = "B|意向价";
if (dicLM[colname].Equals("G"))
sLMLX = "G|产品报价限价";
if (dicLM[colname].Equals("H"))
sLMLX = "H|报价金额限价";
ShowMessage(string.Format("存在明细记录在【栏目{0}】下的导入内容非数值,不允许指定为【{1}】!",colname,sLMLX));
return false;
}
}
}
}
SQL.Clear();
SQL.Add(" update XLWBBJDLM set XLWBBJDLM_ZDLMLX = '' where 1 = 1 ");
SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLWBBJDLM_WBBJDID", sWBBJDIDList) + "and XLWBBJDLM_BJDID =:XLWBBJDLM_BJDID ");
//SQL.Add(" and XLWBBJDLM_WBBJDID=:XLWBBJDLM_WBBJDID and XLWBBJDLM_BJDID =:XLWBBJDLM_BJDID ");
//SQL.ParamByName("XLWBBJDLM_WBBJDID").Value = sWBBJDID;
SQL.ParamByName("XLWBBJDLM_BJDID").Value = sBJDID;
dberp.ExecSQL(SQL);
//更新关联关系
foreach (KeyValuePair<string, string> kpv in dicLM)
{
SQL.Clear();
SQL.Add(" update XLWBBJDLM set XLWBBJDLM_ZDLMLX = :XLWBBJDLM_ZDLMLX where 1 = 1 ");
SQL.Add(" and " + CMISproDataBase.GetWhereEqual("XLWBBJDLM_WBBJDID", sWBBJDIDList) + " and XLWBBJDLM_BJDID =:XLWBBJDLM_BJDID and XLWBBJDLM_LMBH = :XLWBBJDLM_LMBH ");
//SQL.Add(" and XLWBBJDLM_WBBJDID=:XLWBBJDLM_WBBJDID and XLWBBJDLM_BJDID =:XLWBBJDLM_BJDID and XLWBBJDLM_LMBH = :XLWBBJDLM_LMBH ");
SQL.ParamByName("XLWBBJDLM_ZDLMLX").Value = kpv.Value.Trim();
//SQL.ParamByName("XLWBBJDLM_WBBJDID").Value = sWBBJDID;
SQL.ParamByName("XLWBBJDLM_BJDID").Value = sBJDID;
SQL.ParamByName("XLWBBJDLM_LMBH").Value = kpv.Key.Trim();
dberp.ExecSQL(SQL);
}
//不生成XLWBBJDMX表数据
dberp.CommitTrans();
CloseWindow();
}
catch (Exception ex)
{
dberp.RollbackTrans();
ShowMessage(ex.Message);
return false;
}
return bResult;
}
#endregion
#region 自定义函数
private void IntiControl()
{
//this.Master.PnlQuery.GroupingText = "查询条件";
//this.Master.PnlBill.GroupingText = "单据信息";
}
#endregion
#region 控件事件
protected void QueryGrid_CalculateField(object sender, CalculateFieldEventArgs e)
{
if (e.EventFieldName == "WLJH_GYSID")
{
}
}
protected void QueryGrid_OnGetDropDownColumnItems(object sender, GetDropDownColumnItemsEventArgs e)
{
if (e.EventFieldName == "XLWBBJDLM_ZDLMLX")
{
string sJMBGS = "截面比公式";
if (!string.IsNullOrEmpty(sJMBGSBM))
sJMBGS = sJMBGSBM;
e.DropDownItems.Add(new ListItem("", ""));
e.DropDownItems.Add(new ListItem("报价产品", "1"));
e.DropDownItems.Add(new ListItem("电压等级", "2"));
e.DropDownItems.Add(new ListItem("标准", "3"));
e.DropDownItems.Add(new ListItem("计量单位", "4"));
e.DropDownItems.Add(new ListItem("报价数量", "5"));
e.DropDownItems.Add(new ListItem("报价", "6"));
e.DropDownItems.Add(new ListItem("备注", "7"));
e.DropDownItems.Add(new ListItem("型号/型号-电压", "8"));
e.DropDownItems.Add(new ListItem("规格", "9"));
e.DropDownItems.Add(new ListItem("颜色", "A"));
e.DropDownItems.Add(new ListItem("外购", "F"));
e.DropDownItems.Add(new ListItem("意向价", "B"));
e.DropDownItems.Add(new ListItem("印字", "C"));
e.DropDownItems.Add(new ListItem("原始产品", "D"));
e.DropDownItems.Add(new ListItem("包号", "E"));
e.DropDownItems.Add(new ListItem("产品报价限价", "G"));
e.DropDownItems.Add(new ListItem("报价金额限价", "H"));
e.DropDownItems.Add(new ListItem("组合产品目录", "I"));
e.DropDownItems.Add(new ListItem("产品目录", "J"));
e.DropDownItems.Add(new ListItem("配网清单ID", "K"));
e.DropDownItems.Add(new ListItem("物料名称", "L"));
e.DropDownItems.Add(new ListItem("描述", "M"));
e.DropDownItems.Add(new ListItem("国网物料编码", "N"));
e.DropDownItems.Add(new ListItem(sJMBGS, "O"));
e.DropDownItems.Add(new ListItem("临时表价", "P"));
}
}
protected override void Grid_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text.Trim().Equals("1"))
QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text = "1|报价产品";
if (QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text.Trim().Equals("2"))
QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text = "2|电压等级";
if (QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text.Trim().Equals("3"))
QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text = "3|标准";
if (QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text.Trim().Equals("4"))
QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text = "4|计量单位";
if (QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text.Trim().Equals("5"))
QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text = "5|报价数量";
if (QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text.Trim().Equals("6"))
QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text = "6|报价";
if (QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text.Trim().Equals("7"))
QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text = "7|备注";
if (QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text.Trim().Equals("8"))
QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text = "8|型号/型号-电压";
if (QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text.Trim().Equals("9"))
QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text = "9|规格";
if (QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text.Trim().Equals("A"))
QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text = "A|颜色";
if (QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text.Trim().Equals("F"))
QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text = "F|外购";
if (QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text.Trim().Equals("B"))
QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text = "B|意向价";
if (QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text.Trim().Equals("C"))
QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text = "C|印字";
if (QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text.Trim().Equals("D"))
QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text = "D|原始产品";
if (QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text.Trim().Equals("E"))
QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text = "E|包号";
if (QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text.Trim().Equals("G"))
QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text = "G|产品报价限价";
if (QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text.Trim().Equals("H"))
QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text = "H|报价金额限价";
if (QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text.Trim().Equals("I"))
QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text = "I|组合产品目录";
if (QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text.Trim().Equals("J"))
QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text = "J|产品目录";
if (QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text.Trim().Equals("K"))
QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text = "K|配网清单ID";
if (QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text.Trim().Equals("L"))
QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text = "L|物料名称";
if (QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text.Trim().Equals("M"))
QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text = "M|描述";
if (QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text.Trim().Equals("N"))
QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text = "N|国网物料编码";
if (QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text.Trim().Equals("O"))
{
string sJMBGS = "截面比公式";
if (!string.IsNullOrEmpty(sJMBGSBM))
sJMBGS = sJMBGSBM;
QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text = "O|" + sJMBGS;
}
if (QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text.Trim().Equals("P"))
QueryGrid.GetCellByFieldName("XLWBBJDLM_ZDLMLX", e.Row).Text = "P|临时表价";
}
base.Grid_RowDataBound(sender, e);
}
#endregion
}
}