397 lines
19 KiB
C#
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
|
|
}
|
|
}
|