using System; using System.Configuration; using System.Web.UI; using System.Web.UI.WebControls; using SuperMap.RealEstate.CoreFrameWork; using SuperMap.RealEstate.Web.UI; using SuperMap.RealEstate.Web.UI.WebControls; using SuperMap.RealEstate.Web.Utility; using HSB = SuperMap.RealEstate.HighWay.Storage.Business; using HWRB = SuperMap.RealEstate.HighWay.Running.Business; using WorkFlowBusiness = SuperMap.RealEstate.WorkFlow.Instance.Business; namespace SuperMap.RealEstate.HighWay.Compents.CommodityChange { /// /// T_COMMODITY_商品管理 的WebUserControl /// public partial class Default : UserControl { protected string _SERVERPART_ID = ConfigurationManager.AppSettings["UmiformCommodity"].ToString().Split('|')[0]; protected string _SERVERPART_CODE = ConfigurationManager.AppSettings["UmiformCommodity"].ToString().Split('|')[1]; protected string _PROVINCE_CODE = ConfigurationManager.AppSettings["UmiformCommodity"].ToString().Split('|')[2]; protected string _BUSINESSTYPE = ConfigurationManager.AppSettings["BusinessType"].ToString(); //流程实例 Running.Business.HIGHWAYPROINST _HighWayProInst = null; #region 方法 -> 页面加载 protected void Page_Load(object sender, EventArgs e) { if (IsPostBack) return; string RequestParameter = ""; if (!string.IsNullOrEmpty(WorkFlowGuid)) { WorkFlow.Support.Business.Component _Component = new WorkFlow.Support.Business.Component(Transaction); _Component.AddSearchParameter("COMPONENT_GUID", WorkFlowGuid); if (_Component.Search()) { if (_Component.Component_Url.Contains("?")) { foreach (string RequestStr in _Component.Component_Url.Split('?')[1].Split('&')) { RequestParameter += "&" + RequestStr.Split('=')[0] + "=" + RequestStr.Split('=')[1].ToEncrypt(); } } } } if (this.ModifyType == ModifyTypeEnum.ReadOnlyVisible || ModifyType == ModifyTypeEnum.ReadOnly) { ButtonNew.Visible = false; BtnImport.Visible = false; BtnOperateDate.Visible = false; } GridViewEx1.SelectingWithInit(ObjectDataSource1, GridPageEx1, DictionaryHelper.GetDictionary(Transaction, "BUSINESSTYPE"), Storage.Business.CommonHelper.GetDictionary(Transaction, "USERDEFINEDTYPE_ID", "SELECT USERDEFINEDTYPE_ID,USERDEFINEDTYPE_NAME FROM HIGHWAY_STORAGE.T_USERDEFINEDTYPE"), DictionaryHelper.GetDictionary(Transaction, "COMMODITYGRADE").AsNewKeys("COMMODITY_GRADE"), DictionaryHelper.GetDictionary(Transaction, "ISVALID").AsNewKeys("COMMODITY_STATE")); //工具条按钮事件 GridViewEx1.SetOpenControl(ButtonNew, "/HighWay/Compents/CommodityChange/DefaultPage.aspx?HIGHWAYPROINST_ID=" + _HighWayProInst.HIGHWAYPROINST_ID.ToEncrypt() + RequestParameter); //导入商品 GridViewEx1.SetOpenControl(BtnImport, "/HighWay/Compents/CommodityChange/UpdateExcel.aspx?HIGHWAYPROINST_ID=" + _HighWayProInst.HIGHWAYPROINST_ID_Encrypt + "&SERVERPART_CODE=" + (_HighWayProInst.__ProInst.Division_Code == null ? _SERVERPART_CODE.ToEncrypt() : _HighWayProInst.__ProInst.Division_Code.ToEncrypt()) + RequestParameter); GridViewEx1.SetOpenControl(BtnOperateDate, "/HighWay/Compents/CommodityChange/UpdateOPERATE_DATE.aspx?HIGHWAYPROINST_ID=" + _HighWayProInst.HIGHWAYPROINST_ID_Encrypt + "&SERVERPART_CODE=" + (_HighWayProInst.__ProInst.Division_Code == null ? _SERVERPART_CODE.ToEncrypt() : _HighWayProInst.__ProInst.Division_Code.ToEncrypt()), 500, 500); //设置回车焦点按钮 //SetControlClientAction(ButtonSearch); } protected override void OnInit(EventArgs e) { Common.PageHelper.CreateHeaderStyle(Page); _HighWayProInst = Running.Business.HIGHWAYPROINST.CreateInstance(Page); base.ButtonVisible = false; base.OnInit(e); } #endregion #region 方法 -> 载入数据 public override bool LoadData() { //加载对应的 string _COMMODITY_BARCODE = "", _TCOMMODITY_BARCODE = ""; foreach (HWRB.MODIFYFROMSTORAGE _MODIFYFROMSTORAGE in (new HWRB.MODIFYFROMSTORAGE(_HighWayProInst)).FillCollection( "WHERE HIGHWAYPROINST_ID =" + (_HighWayProInst.HIGHWAYPROINST_ID == null ? 0 : _HighWayProInst.HIGHWAYPROINST_ID))) { if (_MODIFYFROMSTORAGE.Table_Name == "T_COMMODITY" && _MODIFYFROMSTORAGE.Field_Name == "COMMODITY_ID") { Running.Business.COMMODITY _COMMODITY = new Running.Business.COMMODITY(this.Transaction); _COMMODITY.COMMODITY_ID = int.Parse(_MODIFYFROMSTORAGE.Field_Value); if (_COMMODITY.Select()) { if (_COMMODITY.COMMODITY_STATE > 0) { int ResultCode = _COMMODITY.IsDuplicateBarcode(_COMMODITY.COMMODITY_ID.ToString(), _COMMODITY.COMMODITY_BARCODE, _COMMODITY.SERVERPART_ID.ToString(), _COMMODITY.BUSINESSTYPE.ToString(), _COMMODITY.PROVINCE_CODE.ToString(), _BUSINESSTYPE, _PROVINCE_CODE, _SERVERPART_ID); switch (ResultCode) { case 1: if (new Storage.Business.COMMODITY(_COMMODITY).GetCount("WHERE COMMODITY_BARCODE = '" + _COMMODITY.COMMODITY_BARCODE + "' AND BUSINESSTYPE = " + _COMMODITY.BUSINESSTYPE) > 0) { _COMMODITY_BARCODE += (_COMMODITY_BARCODE == "" ? "" : ",") + _COMMODITY.COMMODITY_BARCODE; continue; } break; case 2: _TCOMMODITY_BARCODE += (_TCOMMODITY_BARCODE == "" ? "" : ",") + _COMMODITY.COMMODITY_BARCODE; continue; } } } } } if (_COMMODITY_BARCODE != "" || _TCOMMODITY_BARCODE != "") { Page.Alert("注意:商品条码为" + (_COMMODITY_BARCODE == "" ? (_TCOMMODITY_BARCODE + "的商品已存在于统一定价类中!") : _COMMODITY_BARCODE + "的商品已存在于您的服务区" + (_TCOMMODITY_BARCODE == "" ? "!" : ",商品条码为" + _TCOMMODITY_BARCODE + "的商品已存在于统一定价类中!")) + "请验证后重新录入!"); } return true; } #endregion #region 方法 -> 组件保存事件 public override bool Save(bool AutoBindData = true) { string _COMMODITY_BARCODE = "", _TCOMMODITY_BARCODE = ""; if ((new Running.Business.COMMODITY(this.Transaction)).ExecuteDataTable( "SELECT COMMODITY_ID FROM HIGHWAY_RUNNING.V_COMMODITY WHERE COMMODITY_BARCODE IS NULL AND HIGHWAYPROINST_ID = " + _HighWayProInst.HIGHWAYPROINST_ID).Rows.Count > 0) { throw new Exception("注意:请给空条码的商品填写或者生成条码!"); } if (new Running.Business.MODIFYFROMSTORAGE(Transaction).GetCount("WHERE HIGHWAYPROINST_ID = " + (_HighWayProInst.HIGHWAYPROINST_ID == null ? 0 : _HighWayProInst.HIGHWAYPROINST_ID) + " AND TABLE_NAME='T_COMMODITY' AND FIELD_NAME='COMMODITY_ID'") == 0) { throw new Exception("注意:请新增商品信息然后转到下一环节!"); } string _shopName = string.Empty; foreach (HWRB.MODIFYFROMSTORAGE _MODIFYFROMSTORAGE in (new HWRB.MODIFYFROMSTORAGE(_HighWayProInst)).FillCollection( "WHERE HIGHWAYPROINST_ID =" + (_HighWayProInst.HIGHWAYPROINST_ID == null ? 0 : _HighWayProInst.HIGHWAYPROINST_ID))) { if (_MODIFYFROMSTORAGE.Table_Name == "T_COMMODITY" && _MODIFYFROMSTORAGE.Field_Name == "COMMODITY_ID") { Running.Business.COMMODITY _COMMODITY = new Running.Business.COMMODITY(this.Transaction); _COMMODITY.COMMODITY_ID = int.Parse(_MODIFYFROMSTORAGE.Field_Value); if (_COMMODITY.Select()) { if (_COMMODITY.COMMODITY_STATE > 0) { int ResultCode = _COMMODITY.IsDuplicateBarcode(_COMMODITY.COMMODITY_ID.ToString(), _COMMODITY.COMMODITY_BARCODE, _COMMODITY.SERVERPART_ID.ToString(), _COMMODITY.BUSINESSTYPE.ToString(), _COMMODITY.PROVINCE_CODE.ToString(), _BUSINESSTYPE, _PROVINCE_CODE, _SERVERPART_ID); switch (ResultCode) { case 1: if (new Storage.Business.COMMODITY(_COMMODITY).GetCount("WHERE COMMODITY_BARCODE = '" + _COMMODITY.COMMODITY_BARCODE + "' AND BUSINESSTYPE = " + _COMMODITY.BUSINESSTYPE) > 0) { _COMMODITY_BARCODE += (_COMMODITY_BARCODE == "" ? "" : ",") + _COMMODITY.COMMODITY_BARCODE; continue; } break; case 2: _TCOMMODITY_BARCODE += (_TCOMMODITY_BARCODE == "" ? "" : ",") + _COMMODITY.COMMODITY_BARCODE; continue; } } string _SHORTNAME = ""; HSB.SERVERPARTSHOP _SERVERPARTSHOP = new HSB.SERVERPARTSHOP(Transaction); _SERVERPARTSHOP.AddSearchParameter("SERVERPART_ID", _COMMODITY.SERVERPART_ID); _SERVERPARTSHOP.AddSearchParameter("SHOPTRADE", _COMMODITY.BUSINESSTYPE); if (_SERVERPARTSHOP.Search()) { _SHORTNAME = (!string.IsNullOrEmpty(_SERVERPARTSHOP.SHOPSHORTNAME) ? _SERVERPARTSHOP.SHOPSHORTNAME : _SERVERPARTSHOP.SHOPNAME); } else { _SHORTNAME = DictionaryHelper.GetFieldEnumName("BUSINESSTYPE", _COMMODITY.BUSINESSTYPE.ToString(), Transaction); } if (string.IsNullOrEmpty(_shopName) || !_shopName.Contains(_SHORTNAME)) { _shopName += (_shopName == "" ? "" : ",") + _SHORTNAME; } } } } if (_COMMODITY_BARCODE != "" || _TCOMMODITY_BARCODE != "") { throw new Exception("注意:商品条码为" + (_COMMODITY_BARCODE == "" ? (_TCOMMODITY_BARCODE + "的商品已存在于统一定价类中!") : _COMMODITY_BARCODE + "的商品已存在于您的服务区" + (_TCOMMODITY_BARCODE == "" ? "!" : ",商品条码为" + _TCOMMODITY_BARCODE + "的商品已存在于统一定价类中!")) + "请验证后重新录入!"); } //增加门店和备注信息 if (_HighWayProInst != null) { WorkFlowBusiness.ProInst _ProInst = new WorkFlowBusiness.ProInst(Transaction); _ProInst.ProInst_ID = _HighWayProInst.Proinst_ID; if (_ProInst.Select()) { _HighWayProInst.HIGHWAYPROINST_DESC = _shopName.TrimEnd(',') + "【" + _ProInst.ProDef_Name.Replace("审批", "") + "】"; _HighWayProInst.Update(); } } return base.Save(AutoBindData); } #endregion #region 方法 -> 商品列表事件 //查询 protected void ButtonSearch_CallBackClick(object sender, ClientSetEventArgs e) { GridViewEx1.Selecting(ObjectDataSource1, GridPageEx1); //设置UI变化 e.SetValue(GridViewEx1); e.SetValue(GridPageEx1); } protected void GridViewEx1_SelectMethodParameters(object sender, SelectMethodParametersArgs e) { if (!string.IsNullOrEmpty(TextBox_Search.Text)) e.AddOrParams(GridViewSearch1, TextBox_Search.Text); e.AddAndParams("1", 1); //搜索选项的搜索条件过滤 e.SetOtherUserCustomWhereSqlString = @"COMMODITY_ID IN(SELECT FIELD_VALUE FROM HIGHWAY_RUNNING.T_MODIFYFROMSTORAGE WHERE HIGHWAYPROINST_ID = " + _HighWayProInst.HIGHWAYPROINST_ID + ")"; //排序 e.AddOrderByParams(GridViewOrderBy1); } //翻页事件 protected void GridPageEx1_CallBackPageChanged(object src, ClientSetEventArgs e) { GridViewEx1.Pagging(ObjectDataSource1, GridPageEx1); //设置UI变化 e.SetOuterHtml(GridViewEx1, GridViewEx1.OuterHTML); } #endregion #region 方法 -> 数据行绑定 protected void GridViewEx1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { string _COMMODITY_ID = GridViewEx1.DataKeys[e.Row.RowIndex]["COMMODITY_ID"].ToEncrypt(); CallBackButton _CallBack_Delete = e.Row.FindControl("CallBack_Delete") as CallBackButton; Page.SetControlClientAction(_CallBack_Delete, false); HWRB.COMMODITY _RCOMMODITY = new HWRB.COMMODITY(Transaction); Storage.Business.COMMODITY _COMMODITY = new Storage.Business.COMMODITY(Transaction); _RCOMMODITY.COMMODITY_ID_Encrypt = _COMMODITY_ID; _COMMODITY.COMMODITY_ID_Encrypt = _COMMODITY_ID; if (_COMMODITY.Select() && _RCOMMODITY.Select()) { if (_COMMODITY.BUSINESSTYPE != _RCOMMODITY.BUSINESSTYPE) { e.Row.Cells[2].Font.Bold = true; e.Row.Cells[2].ToolTip = "原业态:" + DictionaryHelper.GetFieldEnumName( "BUSINESSTYPE", _COMMODITY.BUSINESSTYPE.ToString(), Transaction); } if (_COMMODITY.COMMODITY_TYPE != _RCOMMODITY.COMMODITY_TYPE) { e.Row.Cells[3].Font.Bold = true; try { Storage.Business.COMMODITYTYPE SCOMMODITYTYPE = new Storage.Business.COMMODITYTYPE(this.Transaction); SCOMMODITYTYPE.COMMODITYTYPE_ID_Encrypt = _COMMODITY.COMMODITY_TYPE.ToEncrypt(); if (SCOMMODITYTYPE.Select()) { e.Row.Cells[3].ToolTip = "原商品类型:" + SCOMMODITYTYPE.COMMODITYTYPE_NAME; } } catch { e.Row.Cells[3].ToolTip = "原商品类型:" + _COMMODITY.COMMODITY_TYPE; } } if (_COMMODITY.COMMODITY_NAME != _RCOMMODITY.COMMODITY_NAME) { e.Row.Cells[4].Font.Bold = true; e.Row.Cells[4].ToolTip = "原商品名称:" + _COMMODITY.COMMODITY_NAME; } if (_COMMODITY.COMMODITY_BARCODE != _RCOMMODITY.COMMODITY_BARCODE) { e.Row.Cells[5].Font.Bold = true; e.Row.Cells[5].ToolTip = "原商品条码:" + _COMMODITY.COMMODITY_BARCODE; } if (_COMMODITY.COMMODITY_EN != _RCOMMODITY.COMMODITY_EN) { e.Row.Cells[6].Font.Bold = true; e.Row.Cells[6].ToolTip = "原拼音简码:" + _COMMODITY.COMMODITY_EN; } if (_COMMODITY.COMMODITY_UNIT != _RCOMMODITY.COMMODITY_UNIT) { e.Row.Cells[7].Font.Bold = true; e.Row.Cells[7].ToolTip = "原商品单位:" + _COMMODITY.COMMODITY_UNIT; } if (_COMMODITY.COMMODITY_RULE != _RCOMMODITY.COMMODITY_RULE) { e.Row.Cells[8].Font.Bold = true; e.Row.Cells[8].ToolTip = "原商品规格:" + _COMMODITY.COMMODITY_RULE; } if (_COMMODITY.COMMODITY_HOTKEY != _RCOMMODITY.COMMODITY_HOTKEY) { e.Row.Cells[10].Font.Bold = true; e.Row.Cells[10].ToolTip = "原快捷键:" + _COMMODITY.COMMODITY_HOTKEY; } if (_COMMODITY.USERDEFINEDTYPE_ID != _RCOMMODITY.USERDEFINEDTYPE_ID) { e.Row.Cells[11].Font.Bold = true; if (_COMMODITY.USERDEFINEDTYPE_ID != null) { Storage.Business.USERDEFINEDTYPE _USERDEFINEDTYPE = new HSB.USERDEFINEDTYPE(Transaction); _USERDEFINEDTYPE.USERDEFINEDTYPE_ID = _COMMODITY.USERDEFINEDTYPE_ID; if (_USERDEFINEDTYPE.Select()) { e.Row.Cells[11].ToolTip = "原自定义类:" + _USERDEFINEDTYPE.USERDEFINEDTYPE_NAME; } } } if (_COMMODITY.COMMODITY_ORI != _RCOMMODITY.COMMODITY_ORI) { e.Row.Cells[14].Font.Bold = true; e.Row.Cells[14].ToolTip = "原商品产地:" + _COMMODITY.COMMODITY_ORI; } if (_COMMODITY.COMMODITY_GRADE != _RCOMMODITY.COMMODITY_GRADE) { e.Row.Cells[15].Font.Bold = true; e.Row.Cells[15].ToolTip = "原质量等级:" + _COMMODITY.COMMODITY_GRADE; } if (_COMMODITY.COMMODITY_STATE != _RCOMMODITY.COMMODITY_STATE) { e.Row.Cells[e.Row.Cells.Count - 3].Font.Bold = true; e.Row.Cells[e.Row.Cells.Count - 3].ToolTip = "原商品状态:" + DictionaryHelper.GetFieldEnumName( "COMMODITYSTATE", _COMMODITY.COMMODITY_STATE.ToString(), Transaction); } } try { Storage.Business.COMMODITYTYPE _COMMODITYTYPE = new Storage.Business.COMMODITYTYPE(this.Transaction); _COMMODITYTYPE.COMMODITYTYPE_ID_Encrypt = e.Row.Cells[3].Text.ToEncrypt(); if (_COMMODITYTYPE.Select()) { e.Row.Cells[3].Text = _COMMODITYTYPE.COMMODITYTYPE_NAME; } } catch { } } } #endregion #region 方法 -> 编辑商品信息 protected void CallBackButton_Edit_CallBackClick(object sender, ClientSetEventArgs e) { CallBackButton _button = (CallBackButton)sender; GridViewRow _Row = (GridViewRow)_button.NamingContainer; string _Key_ID = GridViewEx1.DataKeys[_Row.RowIndex][0].ToString(); e.ExcuteClientScript(GridViewEx1.GetOpenPopDialogClientScript("/HighWay/Compents/CommodityChange/COMMODITYPage.aspx?ID=" + _Key_ID.ToEncrypt() + "&HIGHWAYPROINST_ID=" + (_HighWayProInst.HIGHWAYPROINST_ID.ToString().ToEncrypt()))); } #endregion #region 方法 -> 删除商品 protected void CallBack_Delete_CallBackClick(object sender, ClientSetEventArgs e) { CallBackButton _button = (CallBackButton)sender; GridViewRow _Row = (GridViewRow)_button.NamingContainer; string _Key_ID = GridViewEx1.DataKeys[_Row.RowIndex][0].ToString(); using (Running.Business.COMMODITY _COMMODITY = new Running.Business.COMMODITY(this.Transaction)) { _COMMODITY.COMMODITY_ID = int.Parse(_Key_ID); if (_COMMODITY.Select()) { //删除关联关系 Running.Business.MODIFYFROMSTORAGE _MODIFYFROMSTORAGE = new Running.Business.MODIFYFROMSTORAGE(this.Transaction); _MODIFYFROMSTORAGE.AddSearchParameter("HIGHWAYPROINST_ID", _HighWayProInst.HIGHWAYPROINST_ID); _MODIFYFROMSTORAGE.AddSearchParameter("Field_Value", _COMMODITY.COMMODITY_ID); _MODIFYFROMSTORAGE.AddSearchParameter("Table_Name", "T_COMMODITY"); if (_MODIFYFROMSTORAGE.Search()) { _MODIFYFROMSTORAGE.Delete(); } _COMMODITY.Delete(); e.ExcuteClientScript(Page.GetAlertStr("删除成功!", 3)); } } GridViewEx1.SelectingWithInit(ObjectDataSource1, GridPageEx1, DictionaryHelper.GetDictionary(Transaction, "BUSINESSTYPE"), DictionaryHelper.GetDictionary(Transaction, "COMMODITYGRADE").AsNewKeys("COMMODITY_GRADE"), DictionaryHelper.GetDictionary(Transaction, "ISVALID").AsNewKeys("COMMODITY_STATE")); //设置UI变化 e.SetValue(GridViewEx1); e.SetValue(GridPageEx1); } #endregion } }