using System; using System.Collections.Generic; using System.Configuration; using System.Data; 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 HSB = SuperMap.RealEstate.HighWay.Storage.Business; using CMB = SuperMap.RealEstate.Coop.Merchant.Business; using WorkFlowBusiness = SuperMap.RealEstate.WorkFlow.Instance.Business; namespace SuperMap.RealEstate.HighWay.Compents.SpecialCommodity { public partial class Default : UserControl { //流程实例 Running.Business.HIGHWAYPROINST _HighWayProInst = null; protected string _PROVINCE_CODE = ConfigurationManager.AppSettings["PROVINCE_CODE"].ToString(); #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(); switch (RequestStr.Split('=')[0].ToUpper()) { case "PROINST_TYPE": PROINST_TYPE.Text = RequestStr.Split('=')[1]; break; } } } } } if (this.ModifyType == ModifyTypeEnum.ReadOnlyVisible || ModifyType == ModifyTypeEnum.ReadOnly) { GridViewEx2.Columns[1].Visible = false; Proinst_fieldset.Visible = false; } GridViewEx1.SelectingWithInit(ObjectDataSource1, GridPageEx1, DictionaryHelper.GetDictionary(Transaction, "BUSINESSTYPE"), DictionaryHelper.GetDictionary(Transaction, "COMMODITYSTATE").AsNewKeys("COMMODITY_STATE"), DictionaryHelper.GetDictionary(Transaction, "COMMODITYGRADE").AsNewKeys("COMMODITY_GRADE")); GridViewEx2.SelectingWithInit(ObjectDataSource2, GridPageEx2, DictionaryHelper.GetDictionary(Transaction, "OPERATION_TYPE").AsNewKeys("PROINST_TYPE")); //工具条按钮事件 //GridViewEx1.SetOpenControl(ButtonNew, "/HighWay/Compents/SpecialCommodity/COMMODITYPage.aspx?HIGHWAYPROINST_ID=" + // _HighWayProInst.HIGHWAYPROINST_ID.ToEncrypt() + RequestParameter); //设置回车焦点按钮 Page.SetControlClientAction(ButtonSearch); } protected override void OnInit(EventArgs e) { Common.PageHelper.CreateHeaderStyle(Page); _HighWayProInst = Running.Business.HIGHWAYPROINST.CreateInstance(Page); base.ButtonVisible = false; base.OnInit(e); } //在此加入界面的数据初始化(Page_Load之前),如DropDownList的数据源绑定等 public override void InitializeWebControl() { //加载对应的数据 } #endregion #region 方法 -> 载入数据 public override bool LoadData() { return true; } #endregion #region 方法 -> 组件保存事件 public override bool Save(bool AutoBindData = true) { 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()) { 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 (_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 GridPageEx1_CallBackPageChanged(object src, ClientSetEventArgs e) { GridViewEx1.Pagging(ObjectDataSource1, GridPageEx1); //设置UI变化 e.SetOuterHtml(GridViewEx1, GridViewEx1.OuterHTML); } //查询 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 T_MODIFYFROMSTORAGE WHERE HIGHWAYPROINST_ID = " + _HighWayProInst.HIGHWAYPROINST_ID + ")"; //排序 e.AddOrderByParams(GridViewOrderBy1); } #endregion #region 方法 -> 流程列表事件 //查询 protected void Proinst_Search_CallBackClick(object sender, ClientSetEventArgs e) { GridViewEx1.Selecting(ObjectDataSource2, GridPageEx2); //设置UI变化 e.SetValue(GridViewEx2); e.SetValue(GridPageEx2); } //翻页事件 protected void GridPageEx2_CallBackPageChanged(object src, ClientSetEventArgs e) { GridViewEx1.Pagging(ObjectDataSource2, GridPageEx2); //设置UI变化 e.SetValue(GridViewEx2); } //查询SQL设置 protected void GridViewEx2_SelectMethodParameters(object sender, SelectMethodParametersArgs e) { //搜索选项的搜索条件过滤 //if (!string.IsNullOrEmpty(Proinst_Search.Text)) // e.AddOrParams(Proinst_GridViewSearch, Proinst_Search.Text); //且搜索条件 //e.AddAndParams("PROINST_STATE", "5000"); e.AddAndParams("PROVINCE_CODE", _PROVINCE_CODE); if (!string.IsNullOrEmpty(PROINST_TYPE.Text)) { e.AddAndParams("PROINST_TYPE", PROINST_TYPE.Text); } if (_HighWayProInst.__ProInst != null && _HighWayProInst.__ProInst.Division_Code != null) { Storage.Business.SERVERPART _SERVERPART = new HSB.SERVERPART(Transaction); _SERVERPART.AddSearchParameter("SERVERPART_CODE", _HighWayProInst.__ProInst.Division_Code_BaseValue); if (_SERVERPART.Search()) { e.SetOtherUserCustomWhereSqlString = "',' || SERVERPART_ID || ',' LIKE '%,' || " + _SERVERPART.SERVERPART_ID + " || ',%' AND PROINST_STATE IN (5000,6000)"; } else { e.AddAndParams("1", 2); } } else { e.AddAndParams("1", 2); } //或搜索条件 //e.AddOrParams(字段名, 值); //排序 e.AddOrderByParams("PROINST_ID", true); } #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(); if (this.ModifyType == ModifyTypeEnum.ReadOnlyVisible || ModifyType == ModifyTypeEnum.ReadOnly) { e.Row.Attributes["onclick"] = null; } else { e.Row.Attributes["onclick"] = GridViewEx1.GetOpenPopDialogClientScript( "/HighWay/Compents/SpecialCommodity/COMMODITYPage.aspx?ID=" + _Key_ID + "&HIGHWAYPROINST_ID=" + _HighWayProInst.HIGHWAYPROINST_ID_Encrypt + "&ModifyType=" + this.ModifyType.ToString()); } } } protected void GridViewEx2_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { CallBackButton _CallBack_Select = e.Row.FindControl("CallBack_Select") as CallBackButton; Page.SetControlConfirm(_CallBack_Select, "您确认选择该记录,选择后将替换现有数据?"); Page.SetControlClientAction(_CallBack_Select, false); if (!string.IsNullOrEmpty(e.Row.Cells[6].Text) && e.Row.Cells[6].Text.Length > 15) { e.Row.Cells[6].ToolTip = e.Row.Cells[6].Text; e.Row.Cells[6].Text = e.Row.Cells[6].Text.Substring(0, 15) + "..."; } if (!string.IsNullOrEmpty(e.Row.Cells[7].Text) && e.Row.Cells[7].Text.Length > 15) { e.Row.Cells[7].ToolTip = e.Row.Cells[7].Text; e.Row.Cells[7].Text = e.Row.Cells[7].Text.Substring(0, 15) + "..."; } switch (e.Row.Cells[e.Row.Cells.Count - 3].Text) { case "1000": e.Row.Cells[e.Row.Cells.Count - 3].Text = "业务受理"; break; case "5000": e.Row.Cells[e.Row.Cells.Count - 3].Text = "业务待审"; _CallBack_Select.Enabled = true; break; case "6000": e.Row.Cells[e.Row.Cells.Count - 3].Text = "业务审核"; break; case "9000": e.Row.Cells[e.Row.Cells.Count - 3].Text = "业务审结"; break; } } } #endregion #region 方法 -> 选择合作商户流程 protected void CallBack_Select_CallBackClick(object sender, ClientSetEventArgs e) { CallBackButton _button = (CallBackButton)sender; GridViewRow _Row = (GridViewRow)_button.NamingContainer; string _Key_ID = GridViewEx2.DataKeys[_Row.RowIndex][0].ToEncrypt(); using (CMB.PROINST _PROINST = new CMB.PROINST(this.Transaction)) { Storage.Business.SERVERPART _SERVERPART = new HSB.SERVERPART(Transaction); _SERVERPART.AddSearchParameter("SERVERPART_CODE", _HighWayProInst.__ProInst.Division_Code_BaseValue); _PROINST.PROINST_ID_Encrypt = _Key_ID; if (_PROINST.Select() && _SERVERPART.Search()) { _HighWayProInst.ExecuteNonQuery(@"DELETE FROM HIGHWAY_RUNNING.T_COMMODITY A WHERE EXISTS ( SELECT 1 FROM HIGHWAY_RUNNING.T_MODIFYFROMSTORAGE B WHERE A.COMMODITY_ID = B.Field_Value AND B.TABLE_NAME = 'T_COMMODITY' AND B.HIGHWAYPROINST_ID = " + _HighWayProInst.HIGHWAYPROINST_ID + ")", null); _HighWayProInst.ExecuteNonQuery("DELETE FROM HIGHWAY_RUNNING.T_MODIFYFROMSTORAGE WHERE HIGHWAYPROINST_ID = " + _HighWayProInst.HIGHWAYPROINST_ID, null); DataTable _DataTable = _HighWayProInst.ExecuteDataTable(@"SELECT WM_CONCAT(RELATIONTABLES_ID) AS RELATIONTABLES_ID,WM_CONCAT(NEXTTABLE_ID) AS PROINST_ID FROM HIGHWAY_STORAGE.T_RELATIONTABLES WHERE FORMATTABLE_NAME = 'T_HIGHWAYPROINST' AND NEXTUSER_NAME = 'COOP_MERCHANT' AND NEXTTABLE_NAME = 'T_PROINST' AND FORMATTABLE_ID = " + _HighWayProInst.HIGHWAYPROINST_ID); if (_DataTable.Rows.Count > 0 && _DataTable.Rows[0][0].ToString() != "") { _HighWayProInst.ExecuteNonQuery("DELETE FROM HIGHWAY_STORAGE.T_RELATIONTABLES WHERE RELATIONTABLES_ID IN (" + _DataTable.Rows[0][0].ToString() + ")", null); _PROINST.ExecuteNonQuery("UPDATE COOP_MERCHANT.T_PROINST SET PROINST_STATE = 5000 WHERE PROINST_ID IN (" + _DataTable.Rows[0][1].ToString() + ")", null); } List SERVERPARTSHOPList = new HSB.SERVERPARTSHOP(Transaction).FillCollection( "WHERE SERVERPART_ID = " + _SERVERPART.SERVERPART_ID + " AND SERVERPARTSHOP_ID IN (" + _PROINST.SERVERPARTSHOP_ID + ")"); if (SERVERPARTSHOPList.Count > 0) { //获取在审批中的商品数据 DataTable dtRCommodity = new HWRB.COMMODITY(Transaction).FillDataTable( "WHERE SERVERPART_ID = " + _SERVERPART.SERVERPART_ID + " AND BUSINESSTYPE IN (" + (string.IsNullOrEmpty(SERVERPARTSHOPList[0].SHOPTRADE) ? "0" : SERVERPARTSHOPList[0].SHOPTRADE) + ")"); //获取正式库商品数据 DataTable dtSCommodity = new Storage.Business.COMMODITY(Transaction).FillDataTable( "WHERE SERVERPART_ID = " + _SERVERPART.SERVERPART_ID + " AND BUSINESSTYPE IN (" + (string.IsNullOrEmpty(SERVERPARTSHOPList[0].SHOPTRADE) ? "0" : SERVERPARTSHOPList[0].SHOPTRADE) + ")"); #region 插入商品数据 foreach (CMB.COMMODITY_RUNNING _COMMODITY_RUNNING in new CMB.COMMODITY_RUNNING(Transaction).FillCollection( "WHERE PROINST_ID = " + _PROINST.PROINST_ID)) { //先判断有没有在办理流程的商品 DataRow[] DataRowList = dtRCommodity.Select("COMMODITY_CODE = '" + _COMMODITY_RUNNING.COMMODITY_CODE + "'"); HWRB.COMMODITY _COMMODITY = new HWRB.COMMODITY(Transaction); if (DataRowList.Length > 0) { _COMMODITY.COMMODITY_ID = int.Parse(DataRowList[0]["COMMODITY_ID"].ToString()); _COMMODITY.COMMODITY_ORIPRICE = double.Parse(DataRowList[0]["COMMODITY_CURRPRICE"].ToString()).Round(6); _COMMODITY.ADDTIME = DateTime.Parse(DataRowList[0]["ADDTIME"].ToString()); _COMMODITY.COMMODITY_SYMBOL = DataRowList[0]["COMMODITY_SYMBOL"].ToString(); } else { //再判断有没有审核通过的商品 DataRowList = dtSCommodity.Select("COMMODITY_CODE = '" + _COMMODITY_RUNNING.COMMODITY_CODE + "'"); if (DataRowList.Length > 0) { _COMMODITY.COMMODITY_ID = int.Parse(DataRowList[0]["COMMODITY_ID"].ToString()); _COMMODITY.COMMODITY_ORIPRICE = double.Parse(DataRowList[0]["COMMODITY_CURRPRICE"].ToString()).Round(6); _COMMODITY.ADDTIME = DateTime.Parse(DataRowList[0]["ADDTIME"].ToString()); } else { _COMMODITY.ADDTIME = _COMMODITY_RUNNING.OPERATE_DATE; } } _COMMODITY.COMMODITY_TYPE = _COMMODITY_RUNNING.USERDEFINEDTYPE_NAME; _COMMODITY.COMMODITY_CODE = _COMMODITY_RUNNING.COMMODITY_CODE; _COMMODITY.COMMODITY_NAME = _COMMODITY_RUNNING.COMMODITY_NAME; _COMMODITY.COMMODITY_BARCODE = _COMMODITY_RUNNING.COMMODITY_BARCODE; _COMMODITY.COMMODITY_UNIT = _COMMODITY_RUNNING.COMMODITY_UNIT; _COMMODITY.COMMODITY_RULE = _COMMODITY_RUNNING.COMMODITY_RULE; _COMMODITY.COMMODITY_EN = _COMMODITY_RUNNING.COMMODITY_EN; _COMMODITY.COMMODITY_ORI = _COMMODITY_RUNNING.COMMODITY_ORI; _COMMODITY.COMMODITY_GRADE = _COMMODITY_RUNNING.COMMODITY_GRADE == null ? "" : _COMMODITY_RUNNING.COMMODITY_GRADE.ToString(); _COMMODITY.COMMODITY_RETAILPRICE = _COMMODITY_RUNNING.COMMODITY_RETAILPRICE; _COMMODITY.COMMODITY_CURRPRICE = _COMMODITY_RUNNING.COMMODITY_RETAILPRICE; _COMMODITY.COMMODITY_PURCHASEPRICE = _COMMODITY_RUNNING.COMMODITY_PURCHASEPRICE; _COMMODITY.COMMODITY_MEMBERPRICE = _COMMODITY_RUNNING.COMMODITY_MEMBERPRICE; _COMMODITY.BUSINESSTYPE = string.IsNullOrEmpty(SERVERPARTSHOPList[0].SHOPTRADE) ? 0 : int.Parse(SERVERPARTSHOPList[0].SHOPTRADE); _COMMODITY.ISBULK = _COMMODITY_RUNNING.ISBULK; _COMMODITY.METERINGMETHOD = _COMMODITY_RUNNING.METERINGMETHOD; _COMMODITY.COMMODITY_STATE = _COMMODITY_RUNNING.COMMODITY_STATE; _COMMODITY.OPERATE_DATE = _COMMODITY_RUNNING.OPERATE_DATE; _COMMODITY.COMMODITY_DESC = _COMMODITY_RUNNING.COMMODITY_DESC; _COMMODITY.COMMODITY_HOTKEY = _COMMODITY_RUNNING.COMMODITY_HOTKEY; _COMMODITY.USERDEFINEDTYPE_ID = _COMMODITY_RUNNING.USERDEFINEDTYPE_ID; _COMMODITY.SERVERPART_ID = _SERVERPART.SERVERPART_ID; _COMMODITY.PROVINCE_CODE = _SERVERPART.PROVINCE_CODE; _COMMODITY.Insert(); //插入对应的关联关系 using (HWRB.MODIFYFROMSTORAGE _MODIFYFROMSTORAGE = new HWRB.MODIFYFROMSTORAGE(this.Transaction)) { _MODIFYFROMSTORAGE.AddSearchParameter("HIGHWAYPROINST_ID", _HighWayProInst.HIGHWAYPROINST_ID); _MODIFYFROMSTORAGE.AddSearchParameter("Table_Name", "T_COMMODITY"); _MODIFYFROMSTORAGE.AddSearchParameter("FIELD_VALUE", _COMMODITY.COMMODITY_ID); if (!_MODIFYFROMSTORAGE.Search()) { _MODIFYFROMSTORAGE.ResetProperty(); _MODIFYFROMSTORAGE.HIGHWAYPROINST_ID = _HighWayProInst.HIGHWAYPROINST_ID; _MODIFYFROMSTORAGE.Field_Value = _COMMODITY.COMMODITY_ID.ToString(); _MODIFYFROMSTORAGE.Table_Name = "T_COMMODITY"; _MODIFYFROMSTORAGE.Field_Name = "COMMODITY_ID"; _MODIFYFROMSTORAGE.Insert(); } } } #endregion CurrObject.ExecuteNonQuery(string.Format(@"INSERT INTO HIGHWAY_STORAGE.T_RELATIONTABLES ( RELATIONTABLES_ID,FORMATTABLE_ID,FORMATTABLE_NAME,FORMATUSER_NAME, NEXTTABLE_ID,NEXTTABLE_NAME,NEXTUSER_NAME,STAFF_ID,STAFF_NAME,RELATE_DATE) VALUES (HIGHWAY_STORAGE.SEQ_RELATIONTABLES.NEXTVAL,{0},'T_HIGHWAYPROINST','HIGHWAY', {1},'T_PROINST','COOP_MERCHANT',{2},'{3}',SYSDATE)", _HighWayProInst.HIGHWAYPROINST_ID, _PROINST.PROINST_ID, Page.PassportInfo.ID, Page.PassportInfo.UserName), null); _PROINST.PROINST_STATE = 6000; _PROINST.Update(); e.ExcuteClientScript(Page.GetAlertStr("选择成功!", 3)); } } } GridViewEx1.Selecting(ObjectDataSource1, GridPageEx1); //设置UI变化 e.SetValue(GridViewEx1); e.SetValue(GridPageEx1); GridViewEx2.Selecting(ObjectDataSource2, GridPageEx2); //设置UI变化 e.SetValue(GridViewEx2); e.SetValue(GridPageEx2); } #endregion } }