using System; using System.Configuration; using System.Data; using System.Web; 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 HWRB = SuperMap.RealEstate.HighWay.Running.Business; using HWSB = SuperMap.RealEstate.HighWay.Storage.Business; using WorkFlowBusiness = SuperMap.RealEstate.WorkFlow.Instance.Business; using HZQR.Common; namespace SuperMap.RealEstate.HighWay.CloudCompents.Commodity { /// /// T_COMMODITY_商品管理 的WebUserControl /// public partial class Default : Storage.UI.UserControlsEx { protected string _BUSINESSTYPE = ConfigurationManager.AppSettings["BusinessType"].ToString(); private const string RequestUrl = "/HighWay/CloudCompents/Commodity/{0}.aspx?" + "HIGHWAYPROINST_ID={1}&SERVERPART_ID={2}&BUSINESSTYPE={3}"; //流程实例 HWRB.HIGHWAYPROINST _HighWayProInst = null; #region 方法 -> 页面加载事件 protected void Page_Load(object sender, EventArgs e) { if (ModifyType == ModifyTypeEnum.ReadOnlyVisible || ModifyType == ModifyTypeEnum.ReadOnly || _HighWayProInst.ProInst.NowActInst.ActInst_Type != Enums.ActInstType.Accept) { BtnOperateDate.Visible = false; } 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('&')) { if (RequestStr.Split('=')[0] == "BUSINESSTYPE") { RequestParameter += RequestStr.Split('=')[1]; break; } } } } } //绑定商品业态 HWSB.CommonHelper.BindingBusinessDropDownList(BUSINESSTYPE.Items, RequestParameter, Transaction, 0, _HighWayProInst.Dept_ID.ToString()); //加载商品列表 GridViewEx1.SelectingWithInit(ObjectDataSource1, GridPageEx1, DictionaryHelper.GetDictionary(Transaction, "COMMODITYGRADE").AsNewKeys("COMMODITY_GRADE")); if (GridViewEx1.Rows.Count > 0) { BUSINESSTYPE.SelectedValue = GridViewEx1.DataKeys[GridViewEx1.Rows[0].RowIndex]["BUSINESSTYPE"].ToString(); BUSINESSTYPE.Enabled = false; } //批量更新生效时间 GridViewEx1.SetOpenControl(BtnOperateDate, string.Format(RequestUrl, "UpdateOPERATE_DATE", _HighWayProInst.HIGHWAYPROINST_ID_Encrypt, _HighWayProInst.Dept_ID.ToEncrypt(), ""), 500, 500); //加载资质图片信息 ImgFilseList(); //设置回车焦点按钮 Page.SetControlClientAction(ButtonSearch); } protected override void OnInit(EventArgs e) { Common.PageHelper.CreateHeaderStyle(Page); _HighWayProInst = HWRB.HIGHWAYPROINST.CreateInstance(Page); base.ButtonVisible = false; base.OnInit(e); } #endregion //在此加入界面的数据初始化(Page_Load之前),如DropDownList的数据源绑定等 public override void InitializeWebControl() { COMMODITYTYPE_NAME.Clear(); new HWSB.COMMODITYTYPE(Transaction).BindingDropDownList(COMMODITYTYPE_NAME.Items, "", true, true, true, true, false, Page.PassportInfo.ProvinceCode.TryParseToInt()); } #region 方法 -> 载入数据 public override bool LoadData() { return true; } #endregion #region 方法 -> 组件保存事件 public override bool Save(bool AutoBindData = true) { string _COMMODITY_BARCODE = "", _TCOMMODITY_BARCODE = ""; if (new HWRB.COMMODITY(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 HWRB.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("注意:请新增商品信息然后转到下一环节!"); } //获取已添加的商品信息 DataTable dtCommodity = _HighWayProInst.ExecuteDataTable( "SELECT COMMODITY_ID,SERVERPART_ID,COMMODITY_BARCODE,BUSINESSTYPE,COMMODITY_STATE " + "FROM HIGHWAY_STORAGE.V_ALL_COMMODITY" + GoodsProvinceCode + " WHERE SERVERPART_ID IN (" + _HighWayProInst.Dept_ID + "," + WholeServerpartID + ")"); 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") { HWRB.COMMODITY _COMMODITY = new HWRB.COMMODITY(Transaction); _COMMODITY.COMMODITY_ID = int.Parse(_MODIFYFROMSTORAGE.Field_Value); if (_COMMODITY.Select()) { if (_COMMODITY.COMMODITY_TYPE.TryParseToInt() == 0) { throw new Exception("注意:请先补充商品类型,然后转到下一环节!"); } int ResultCode = _COMMODITY.IsDuplicateBarcode(_COMMODITY.COMMODITY_ID.ToString(), _COMMODITY.COMMODITY_BARCODE, _COMMODITY.SERVERPART_ID.ToString(), _COMMODITY.BUSINESSTYPE.ToString(), _COMMODITY.PROVINCE_CODE.ToString(), _BUSINESSTYPE, ProvinceID, WholeServerpartID, GoodsProvinceCode, dtCommodity); switch (ResultCode) { case 1: _COMMODITY_BARCODE += (_COMMODITY_BARCODE == "" ? "" : ",") + _COMMODITY.COMMODITY_BARCODE; continue; case 2: _TCOMMODITY_BARCODE += (_TCOMMODITY_BARCODE == "" ? "" : ",") + _COMMODITY.COMMODITY_BARCODE; continue; } } } } 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()) { string _SHORTNAME; HWSB.SERVERPARTSHOP _SERVERPARTSHOP = new HWSB.SERVERPARTSHOP(Transaction); _SERVERPARTSHOP.AddSearchParameter("SERVERPART_ID", _HighWayProInst.Dept_ID); _SERVERPARTSHOP.AddSearchParameter("SHOPTRADE", BUSINESSTYPE.SelectedValue); if (_HighWayProInst.Dept_ID != null && _SERVERPARTSHOP.Search()) { _SHORTNAME = (!string.IsNullOrEmpty(_SERVERPARTSHOP.SHOPSHORTNAME) ? _SERVERPARTSHOP.SHOPSHORTNAME : _SERVERPARTSHOP.SHOPNAME); } else { _SHORTNAME = DictionaryHelper.GetFieldEnumName("BUSINESSTYPE", BUSINESSTYPE.SelectedValue, Transaction); } if (string.IsNullOrEmpty(_SHORTNAME) || !_SHORTNAME.Contains(_SHORTNAME)) { _SHORTNAME += (_SHORTNAME == "" ? "" : ",") + _SHORTNAME; } _HighWayProInst.HIGHWAYPROINST_DESC = _SHORTNAME + "【" + _ProInst.ProDef_Name.Replace("审批", "") + "】"; _HighWayProInst.Update(); } } return base.Save(AutoBindData); } #endregion #region 方法 -> 列表事件 protected void GridPageEx1_CallBackPageChanged(object src, ClientSetEventArgs e) { GridViewEx1.Pagging(ObjectDataSource1, GridPageEx1); //设置UI变化 e.SetOuterHtml(GridViewEx1, GridViewEx1.OuterHTML); if (GridViewEx1.Rows.Count > 0) { e.SetEnabled(BUSINESSTYPE, false); } else { e.SetEnabled(BUSINESSTYPE, true); } } //查询 protected void ButtonSearch_CallBackClick(object sender, ClientSetEventArgs e) { GridViewEx1.Selecting(ObjectDataSource1, GridPageEx1); //设置UI变化 e.SetValue(GridViewEx1); e.SetValue(GridPageEx1); if (GridViewEx1.Rows.Count > 0) { e.SetEnabled(BUSINESSTYPE, false); } else { e.SetEnabled(BUSINESSTYPE, true); } } protected void GridViewEx1_SelectMethodParameters(object sender, SelectMethodParametersArgs e) { if (!string.IsNullOrEmpty(TextBox_Search.Text)) e.AddOrParams(GridViewSearch1, TextBox_Search.Text); //搜索选项的搜索条件过滤 e.AddAndParams("HIGHWAYPROINST_ID", _HighWayProInst.HIGHWAYPROINST_ID); //排序 e.AddOrderByParams(GridViewOrderBy1); } #endregion #region 方法 -> 行绑定事件 protected void GridViewEx1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { string _Key_ID = GridViewEx1.DataKeys[e.Row.RowIndex].Values["COMMODITY_ID"].ToEncrypt(); e.Row.Attributes["onclick"] = GridViewEx1.GetOpenPopDialogClientScript( "/HighWay/CloudCompents/Commodity/COMMODITYPage.aspx?ID=" + _Key_ID + "&HIGHWAYPROINST_ID=" + _HighWayProInst.HIGHWAYPROINST_ID_Encrypt + "&ModifyType=" + ModifyType.ToString() + "&BUSINESSTYPE=" + BUSINESSTYPE.SelectedValue.ToEncrypt()); } } #endregion #region 方法 -> 新增商品按钮事件 protected void CBBNew_CallBackClick(object sender, ClientSetEventArgs e) { e.ClientScript = GridViewEx1.GetOpenPopDialogClientScript(string.Format(RequestUrl, "COMMODITYPage", _HighWayProInst.HIGHWAYPROINST_ID_Encrypt, _HighWayProInst.Dept_ID.ToEncrypt(), BUSINESSTYPE.SelectedValue.ToEncrypt())); } #endregion #region 方法 -> 导入商品按钮事件 protected void CBBImport_CallBackClick(object sender, ClientSetEventArgs e) { e.ClientScript = GridViewEx1.GetOpenPopDialogClientScript(string.Format(RequestUrl, "ImportCommodity", _HighWayProInst.HIGHWAYPROINST_ID_Encrypt, _HighWayProInst.Dept_ID.ToEncrypt(), BUSINESSTYPE.SelectedValue.ToEncrypt()), 1200, 600); } #endregion #region 方法 -> 附件-显示图片列表和文件列表 public void ImgFilseList() { if (_HighWayProInst != null) { //图片列表 DataTable imgList = new HWSB.IMAGE(Transaction).FillDataTable("WHERE TABLE_ID = " + _HighWayProInst.HIGHWAYPROINST_ID + " AND TABLE_NAME = 'T_HIGHWAYPROINST'"); ratTable.DataSource = imgList; ratTable.DataBind(); if (imgList.Rows.Count > 0) { cssGroupBar.Visible = true; } } } protected void ratTable_ItemDataBound(object sender, RepeaterItemEventArgs e) { if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { //ImageButton ImgShow = (ImageButton)e.Item.FindControl("ImgShow"); //ImgShow.OnClientClick = Page.GetOpenPopDialogClientScript("http://eshangtech.com/uploadPhoto/index.html?id=" + // _HighWayProInst.KeyID + "&ReadOnly=true&tablename=HIGHWAYPROINST", "IMAGEPage", 1140, 710, true, false, true); //加载资质附件信息 DataRowView _DataRowView = (DataRowView)e.Item.DataItem; LinkButton LinkButton = e.Item.FindControl("LinkButton") as LinkButton; LinkButton.ToolTip = _DataRowView["IMAGE_TITLE"].ToString(); LinkButton.Text = "" + (LinkButton.ToolTip.Length > 30 ? LinkButton.ToolTip.Substring(0, 25) + "..." : LinkButton.ToolTip) + ""; LinkButton.Attributes["base-code"] = _DataRowView["IMAGE_ID"].ToEncrypt(); LinkButton.OnClientClick = Page.GetOpenWindowClientScript(_DataRowView["IMAGE_URL"].ToString(), "QualificationFile", 2000, 900, 0, 0, true, false, false, false, false, false); } } protected void LinkButton_Click(object sender, EventArgs e) { LinkButton LinkButton = sender as LinkButton; //下载内容 HWSB.IMAGE _IMAGE = new HWSB.IMAGE(Transaction); _IMAGE.Image_ID_Encrypt = LinkButton.Attributes["base-code"]; if (_IMAGE.Select()) { //解决文件名乱码 string FileName = HttpUtility.UrlEncode(_IMAGE.IMAGE_TITLE, System.Text.Encoding.UTF8); System.IO.MemoryStream ms = new System.IO.MemoryStream(); string uploadPath = _IMAGE.IMAGE_PATH; HttpContext.Current.Response.Clear(); HttpContext.Current.Response.Buffer = true; HttpContext.Current.Response.Charset = "utf-8"; HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8");//设置输出流为简体中文 HttpContext.Current.Response.AddHeader("Content-Disposition", string.Format( "attachment; filename=" + FileName, DateTime.Now.ToString("yyyyMMddHHmmssfff"))); HttpContext.Current.Response.BinaryWrite(System.IO.File.ReadAllBytes(uploadPath)); HttpContext.Current.Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。 HttpContext.Current.Response.End(); ms.Close(); ms.Dispose(); } } #endregion protected void ddlCOMMODITYTYPE_NAME_CallBackSetControl(object sender, ClientSetEventArgs e) { DropDownListEx ddlCOMMODITYTYPE_NAME = (DropDownListEx)sender; GridViewRow _Row = (GridViewRow)ddlCOMMODITYTYPE_NAME.NamingContainer; string _Key_ID = GridViewEx1.DataKeys[_Row.RowIndex][0].ToEncrypt(); HWRB.COMMODITY _COMMODITY = new HWRB.COMMODITY(Transaction); _COMMODITY.COMMODITY_ID_Encrypt = _Key_ID; if (_COMMODITY.Select()) { _COMMODITY.COMMODITY_TYPE = e.Argument; _COMMODITY.Update(); } } } }