using System; using System.Data; using System.Web.UI; using SuperMap.RealEstate.CoreFrameWork; using SuperMap.RealEstate.Web.UI; using SuperMap.RealEstate.Web.UI.WebControls; using Business = SuperMap.RealEstate.HighWay.Storage.Business; using HisHighWay = SuperMap.RealEstate.HighWay.History.Business; using HZQR.Common; namespace SuperMap.RealEstate.SendRec.Modules.MerchantsManage { /// /// T_MERCHANTS_商户信息表 的WebUserControl /// public partial class MERCHANTS : UserControl { protected DataTable MERCHANTSENTRYDT = null, RTMERCHANTSTable = new DataTable(); string _SERVERPART_IDS = ""; #region 方法 -> 页面加载 protected void Page_Load(object sender, EventArgs e) { if (IsPostBack) return; #region 绑定商户类别 if (!string.IsNullOrWhiteSpace(MERCHANTS_ID.Text)) { DataTable _DataTable = new Business.RTAUTOTYPE(CurrObject).ExecuteDataTable( @"SELECT WM_CONCAT(DISTINCT A.AUTOTYPE_ID),WM_CONCAT(DISTINCT A.SERVERPART_ID) FROM HIGHWAY_STORAGE.T_AUTOTYPE A,HIGHWAY_STORAGE.T_RTAUTOTYPE B WHERE A.AUTOTYPE_ID = B.AUTOTYPE_ID AND A.AUTOTYPE_TYPEID = 3000 AND NVL(B.RTAUTOTYPE_DESC,'VALID') = 'VALID' AND B.MERCHANTS_ID = " + MERCHANTS_ID.Text); if (_DataTable.Rows.Count > 0 && _DataTable.Rows[0][0].ToString() != "") { string _AUTOTYPE_ID = _DataTable.Rows[0][0].ToString(); if (!string.IsNullOrWhiteSpace(Request["AUTOTYPE_ID"]) && !("," + _AUTOTYPE_ID + ",").Contains("," + Request["AUTOTYPE_ID"].ToDecrypt() + ",")) { _AUTOTYPE_ID += "," + Request["AUTOTYPE_ID"].ToDecrypt(); } AUTOTYPE_ID.SelectedValue = _AUTOTYPE_ID; //若是多个服务区合并管理的供应商,则显示联系人列表 if (_DataTable.Rows[0][1].ToString().Split(',').Length > 1) { if (!string.IsNullOrWhiteSpace(Request["SERVERPART_ID"]) && Request["SERVERPART_ID"].ToDecrypt().Split(',').Length == 1) { AUTOTYPE_ID.Visible = true; } else { AUTOTYPE_ID.Visible = false; } } } else if (!string.IsNullOrWhiteSpace(Request["AUTOTYPE_ID"])) { AUTOTYPE_ID.SelectedValue = Request["AUTOTYPE_ID"].ToDecrypt(); } CallBackButton_Select.Enabled = false; } else if (!string.IsNullOrWhiteSpace(Request["AUTOTYPE_ID"])) { AUTOTYPE_ID.SelectedValue = Request["AUTOTYPE_ID"].ToDecrypt(); //选择已存在供应商信息 CallBackButton_Select.OnClientClick = Page.GetOpenPopDialogClientScript("RelatePage/RelateList.aspx" + Request.Url.Query + "&MERCHANTS_ID=" + MERCHANTS_ID.Text.ToEncrypt() + "&SelectType=true", "RelateList", 1200, 800, true, false, true); } #endregion if (CurrObject.MERCHANTS_NATURE == 2000) { TAXPAYER_IDENTIFYCODE.CaptionText = "个人证件号码:"; } } #endregion #region 方法 -> 在此加入界面的数据初始化(Page_Load之前),如DropDownList的数据源绑定等 public override void InitializeWebControl() { //商户性质 MERCHANTS_NATURE.Items.Clear(); DictionaryHelper.BindingDropDownList("MERCHANTS_NATURE", MERCHANTS_NATURE.Items, Transaction); //商户状态 MERCHANTS_STATE.Items.Clear(); DictionaryHelper.BindingDropDownList("COMMODITYSTATE", MERCHANTS_STATE.Items, this.Transaction); MERCHANTS_STATE.SelectedValue = "1"; //绑定商户类型 AUTOTYPE_ID.Clear(); if (!string.IsNullOrWhiteSpace(Request["SERVERPART_ID"])) { _SERVERPART_IDS = Request["SERVERPART_ID"].ToDecrypt(); } else { _SERVERPART_IDS = new Business.SERVERPART(Transaction).GetPassportServerPartID(Page.PassportInfo.CityAuthority); } string _DATASOURCE_TYPE = string.IsNullOrWhiteSpace(Request["DATASOURCE_TYPE"]) ? "" : Request["DATASOURCE_TYPE"].ToDecrypt(); BasePage.BindingDropDownList(Transaction, AUTOTYPE_ID.Items, 3000, _DATASOURCE_TYPE, "", true, _SERVERPART_IDS, true); } #endregion #region 方法 -> 载入数据 public override bool LoadData() { STAFF_ID.Text = Page.PassportInfo.ID.ToString(); STAFF_NAME.Text = Page.PassportInfo.Name; OPERATE_DATE.Text = DateTime.Now.ToString(); //如果是工作流组件请自行修改载入的逻辑,以下是功能模块的默认代码 if (!String.IsNullOrEmpty(Request["MERCHANTS_ID"])) { CurrObject.MERCHANTS_ID_Encrypt = Request["MERCHANTS_ID"]; return this.Select(); } else if (!String.IsNullOrEmpty(Request["ID"])) { CurrObject.MERCHANTS_ID_Encrypt = Request["ID"]; return this.Select(); } //默认返回值,工作流组件返回True,功能模块返回False。 return (WorkFlowPage != null); } #endregion #region 方法 -> 页面保存事件 //OnDataAction_XXXXX 有一个系列可用,在此加入界面的逻辑处理 //e.CancelDataAction 来处理是否取消该动作; //失败的原因可以用Page.Alert()传递到页面 public override void OnDataAction_BeforeSave(DataActionEventArgs e) { //存储省份信息 if (!string.IsNullOrWhiteSpace(Request["PROVINCE_CODE"])) { e.CurrObject.PROVINCE_CODE = Request["PROVINCE_CODE"].ToDecrypt().TryParseToInt(); } if (e.CurrObject.MERCHANTS_ID == null && e.CurrObject.GetCount( "WHERE TAXPAYER_IDENTIFYCODE = '" + TAXPAYER_IDENTIFYCODE.Text.Trim() + "'" + (e.CurrObject.PROVINCE_CODE == null ? "" : " AND PROVINCE_CODE = " + e.CurrObject.PROVINCE_CODE)) > 0) { throw new Exception("相同“统一信用代码”商户已添加,请搜索进行数据更新!"); } string updateRemark = ""; Business.MERCHANTS OriMERCHANTS = new Business.MERCHANTS(this.Transaction); OriMERCHANTS.MERCHANTS_ID = e.CurrObject.MERCHANTS_ID; if (e.CurrObject.MERCHANTS_ID != null && OriMERCHANTS.Select()) { if (OriMERCHANTS.MERCHANTS_NAME != e.CurrObject.MERCHANTS_NAME) { updateRemark += "商户名称:【" + OriMERCHANTS.MERCHANTS_NAME + "】更改为:【" + e.CurrObject.MERCHANTS_NAME + "】"; } if (OriMERCHANTS.TAXPAYER_IDENTIFYCODE != e.CurrObject.TAXPAYER_IDENTIFYCODE) { updateRemark += "纳税人识别号:【" + OriMERCHANTS.TAXPAYER_IDENTIFYCODE + "】更改为:【" + e.CurrObject.TAXPAYER_IDENTIFYCODE + "】"; } if (OriMERCHANTS.BANK_NAME != e.CurrObject.BANK_NAME) { updateRemark += "开户行:【" + OriMERCHANTS.BANK_NAME + "】更改为:【" + e.CurrObject.BANK_NAME + "】"; } if (OriMERCHANTS.BANK_ACCOUNT != e.CurrObject.BANK_ACCOUNT) { updateRemark += "银行账号:【" + OriMERCHANTS.BANK_ACCOUNT + "】更改为:【" + e.CurrObject.BANK_ACCOUNT + "】"; } if (!string.IsNullOrEmpty(updateRemark)) { updateRemark = "修改商户信息:" + updateRemark; } if (!string.IsNullOrEmpty(updateRemark)) { HisHighWay.MERCHANTS _HisMERCHANTS = new HisHighWay.MERCHANTS(this.Transaction); _HisMERCHANTS.CopyFrom(OriMERCHANTS); _HisMERCHANTS.MERCHANTS_DESC = updateRemark; _HisMERCHANTS.Insert(); } } e.CurrObject.STAFF_ID = Page.PassportInfo.ID; e.CurrObject.STAFF_NAME = Page.PassportInfo.Name; e.CurrObject.OPERATE_DATE = DateTime.Now; base.OnDataAction_BeforeSave(e); } public override void OnDataAction_AfterSave(DataActionEventArgs e) { #region 重新绑定供应商和供应商类别的关联关系 //删除多余的服务区关联关系 if (!string.IsNullOrWhiteSpace(Request["SERVERPART_ID"])) { e.CurrObject.ExecuteNonQuery("DELETE FROM T_RTAUTOTYPE A WHERE A.MERCHANTS_ID = " + e.CurrObject.MERCHANTS_ID + " AND EXISTS (SELECT 1 FROM T_AUTOTYPE B WHERE A.AUTOTYPE_ID = B.AUTOTYPE_ID AND B.SERVERPART_ID IN (" + Request["SERVERPART_ID"].ToDecrypt() + "))", null); } else { e.CurrObject.ExecuteNonQuery("DELETE FROM T_RTAUTOTYPE WHERE MERCHANTS_ID = " + e.CurrObject.MERCHANTS_ID, null); } if (!string.IsNullOrWhiteSpace(AUTOTYPE_ID.SelectedValue)) { foreach (string _AUTOTYPE_ID in AUTOTYPE_ID.SelectedValue.Split(',')) { Business.RTAUTOTYPE _RTAUTOTYPE = new Business.RTAUTOTYPE(CurrObject); _RTAUTOTYPE.AddSearchParameter("AUTOTYPE_ID", _AUTOTYPE_ID); _RTAUTOTYPE.AddSearchParameter("MERCHANTS_ID", e.CurrObject.MERCHANTS_ID); if (!_RTAUTOTYPE.Search()) { _RTAUTOTYPE.ResetProperty(); _RTAUTOTYPE.AUTOTYPE_ID = int.Parse(_AUTOTYPE_ID); _RTAUTOTYPE.MERCHANTS_ID = e.CurrObject.MERCHANTS_ID; _RTAUTOTYPE.RTAUTOTYPE_DESC = "VALID"; _RTAUTOTYPE.Insert(); } } } #endregion #region 将开户信息、联系人存入供应商联系人表 using (Business.RTMERCHANTS _RTMERCHANTS = new Business.RTMERCHANTS(CurrObject)) { _RTMERCHANTS.AddSearchParameter("MERCHANTS_ID", e.CurrObject.MERCHANTS_ID); if (_RTMERCHANTS.Search()) { _RTMERCHANTS.MERCHANTS_ID = e.CurrObject.MERCHANTS_ID; _RTMERCHANTS.BANK_NAME = e.CurrObject.BANK_NAME; _RTMERCHANTS.BANK_ACCOUNT = e.CurrObject.BANK_ACCOUNT; _RTMERCHANTS.RTMERCHANTS_LINKMAN = e.CurrObject.MERCHANTS_LINKMAN; _RTMERCHANTS.RTMERCHANTS_TELEPHONE = e.CurrObject.MERCHANTS_TELEPHONE; _RTMERCHANTS.RTMERCHANTS_MOBILEPHONE = e.CurrObject.MERCHANTS_MOBILEPHONE; _RTMERCHANTS.STAFF_ID = Page.PassportInfo.ID; _RTMERCHANTS.STAFF_NAME = Page.PassportInfo.Name; _RTMERCHANTS.OPERATE_DATE = DateTime.Now; _RTMERCHANTS.Update(); } else { _RTMERCHANTS.ResetProperty(); _RTMERCHANTS.MERCHANTS_ID = e.CurrObject.MERCHANTS_ID; _RTMERCHANTS.BANK_NAME = e.CurrObject.BANK_NAME; _RTMERCHANTS.BANK_ACCOUNT = e.CurrObject.BANK_ACCOUNT; _RTMERCHANTS.RTMERCHANTS_LINKMAN = e.CurrObject.MERCHANTS_LINKMAN; _RTMERCHANTS.RTMERCHANTS_TELEPHONE = e.CurrObject.MERCHANTS_TELEPHONE; _RTMERCHANTS.RTMERCHANTS_MOBILEPHONE = e.CurrObject.MERCHANTS_MOBILEPHONE; _RTMERCHANTS.STAFF_ID = Page.PassportInfo.ID; _RTMERCHANTS.STAFF_NAME = Page.PassportInfo.Name; _RTMERCHANTS.OPERATE_DATE = DateTime.Now; _RTMERCHANTS.Insert(); } } #endregion //更新供应商和原材料关联表中的供应商名称 e.CurrObject.ExecuteNonQuery("UPDATE SENDREC_STORAGE.T_RTSUPPLIERRAW SET SUPPLIER_NAME = '" + e.CurrObject.MERCHANTS_NAME + "' WHERE SUPPLIER_ID = " + e.CurrObject.MERCHANTS_ID, null); base.OnDataAction_AfterSave(e); } #endregion #region 方法 -> 删除按钮事件 public bool DeleteData() { bool DeleteFlag = false; if (string.IsNullOrWhiteSpace(AUTOTYPE_ID.SelectedValue)) { BindControlToObject(CurrObject); CurrObject.MERCHANTS_STATE = 0; DeleteFlag = CurrObject.Update(); } else { string SQLString = "DELETE FROM HIGHWAY_STORAGE.T_RTAUTOTYPE WHERE AUTOTYPE_ID IN (" + AUTOTYPE_ID.SelectedValue + ") AND MERCHANTS_ID = " + MERCHANTS_ID.Text; int ExcuteCount = CurrObject.ExecuteNonQuery(SQLString, null); if (ExcuteCount > 0) { DeleteFlag = true; } } return DeleteFlag; } #endregion #region 方法 -> 下拉框事件 protected void MERCHANTS_NATURE_CallBackSetControl(object sender, ClientSetEventArgs e) { if (e.Argument == "3000") { e.SetCaptionText(TAXPAYER_IDENTIFYCODE.ClientID, "个人身份证号:"); } else { e.SetCaptionText(TAXPAYER_IDENTIFYCODE.ClientID, "统一信用代码:"); } } protected void TAXPAYER_IDENTIFYCODE_CallBackSetControl(object sender, ClientSetEventArgs e) { e.SetValue(MERCHANTS_CODE, TAXPAYER_IDENTIFYCODE.Text); } #endregion #region 方法 -> 审核供应商数据,通过后可以提供给用户选择关联 public void ApproveSupplier() { Business.MERCHANTS _MERCHANTS = new Business.MERCHANTS(Transaction); _MERCHANTS.MERCHANTS_ID_Encrypt = MERCHANTS_ID.Text.ToEncrypt(); if (_MERCHANTS.Select()) { _MERCHANTS.MERCHANTS_CATEGORY = 1; _MERCHANTS.Update(); } } #endregion } }