using System; using System.Configuration; 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; namespace SuperMap.RealEstate.SendRec.Modules.Commodity { /// /// T_COMMODITY_商品管理 的WebUserControl /// public partial class COMMODITY : SuperMap.RealEstate.HighWay.Storage.UI.UserControlsEx { protected string _SERVERPART_ID = ConfigurationManager.AppSettings["UmiformCommodity"].ToString().Split('|')[0]; protected string _PROVINCE_CODE = ConfigurationManager.AppSettings["UmiformCommodity"].ToString().Split('|')[2]; protected string _BUSINESSTYPE = ConfigurationManager.AppSettings["BusinessType"].ToString(); protected void Page_Load(object sender, EventArgs e) { if (IsPostBack) return; BUSINESSTYPE.SelectedValue = Request["BUSINESSTYPE"].ToDecrypt(); LoadRTCommodityType(); COMMODITY_UNIT.Attributes["placeholder"] = "如:个、台、架、块等"; COMMODITY_ALLNAME.Attributes["placeholder"] = "批复文件号"; OPERATE_DATE.Text = DateTime.Now.ToString(); } //在此加入界面的数据初始化(Page_Load之前),如DropDownList的数据源绑定等 public override void InitializeWebControl() { //绑定商品供应商 if (!string.IsNullOrEmpty(Request["SERVERPART_ID"])) { DataTable _DataTable = new Business.SERVERPART(Transaction).ExecuteDataTable( $@"SELECT MERCHANTS_ID,MERCHANTS_NAME FROM HIGHWAY_STORAGE.V_MERCHANTS_ALL WHERE SERVERPART_ID = {Request["SERVERPART_ID"].ToDecrypt()} AND PROVINCE_CODE = {Request["GOODCODE"].ToDecrypt()} AND ',' || DATASOURCE_TYPE || ',' LIKE '%{",1213,"}%'"); foreach (DataRow _DataRow in _DataTable.Rows) { COMMODITY_ORI.Items.Add(new ListItemEx() {Text = _DataRow["MERCHANTS_NAME"].ToString(),Value = _DataRow["MERCHANTS_ID"].ToString() }); } } //绑定商品品牌 DictionaryHelper.BindingDropDownList("COMMODITY_BRAND", COMMODITY_BRAND.Items, Transaction); new Business.COMMODITY(Transaction).BindingDropDownListMaterial(BUSINESSTYPE.Items, !string.IsNullOrEmpty(Request["BUSINESSTYPE"]) ? Request["BUSINESSTYPE"].ToDecrypt() : "", int.Parse(Request["SERVERPART_ID"].ToDecrypt())); } //载入数据 public override bool LoadData() { //加载对应的 ADDTIME.Text = System.DateTime.Now.ToString(); BindDropDownList_SERVERPART(); //如果是工作流组件请自行修改载入的逻辑,以下是功能模块的默认代码 if (!String.IsNullOrEmpty(Request["ID"])) { CurrObject.COMMODITY_ID_Encrypt = Request["ID"]; return this.Select(); } //默认返回值,工作流组件返回True,功能模块返回False。 return (WorkFlowPage != null); } #region 方法 -> 加载下拉框 public void BindDropDownList_SERVERPART(int COMMODITY_ID = 0) { SERVERPART_ID.Items.Clear(); if (!string.IsNullOrEmpty(Request["SERVERPART_ID"])) { Business.SERVERPART _SERVERPART = new Business.SERVERPART(Transaction); _SERVERPART.AddSearchParameter("SERVERPART_ID", Request["SERVERPART_ID"].ToDecrypt()); _SERVERPART.AddSearchParameter("PROVINCE_CODE", Request["PROVINCE_CODE"].ToDecrypt()); if (_SERVERPART.Search()) { SERVERPART_ID.Items.Add(new ListItemEx() { Text = _SERVERPART.SERVERPART_NAME, Value = _SERVERPART.SERVERPART_ID.ToString(), Selected = true }); } } } #endregion #region 方法 -> 保存事件 //OnDataAction_XXXXX 有一个系列可用,在此加入界面的逻辑处理 //e.CancelDataAction 来处理是否取消该动作; //失败的原因可以用Page.Alert()传递到页面 public override void OnDataAction_BeforeSave(DataActionEventArgs e) { Business.COMMODITY _COMMODITY = new Business.COMMODITY(this.Transaction); //商品已存在于服务区,不允许重复新增 int ResultCode = _COMMODITY.IsDuplicateBarcode(COMMODITY_ID.Text, COMMODITY_BARCODE.Text.Trim(), SERVERPART_ID.SelectedValue, BUSINESSTYPE.SelectedValue, PROVINCE_CODE.Text, _BUSINESSTYPE, ProvinceID, WholeServerpartID, GoodsProvinceCode); switch (ResultCode) { case 1: throw new Exception("注意:该商品条码已存在于" + SERVERPART_ID.SelectedItem.Text + "或正在办理流程!请验证后重新录入!"); case 2: throw new Exception("注意:该商品条码已存在于统一定价类中!请验证后重新录入!"); } e.CurrObject.PROVINCE_CODE = Request["PROVINCE_CODE"].ToDecryptInt32(); e.CurrObject.COMMODITY_STATE = 1; e.CurrObject.COMMODITY_PURCHASEPRICE = e.CurrObject.COMMODITY_RETAILPRICE; if (!string.IsNullOrEmpty(COMMODITY_ORI.SelectedValue)) e.CurrObject.COMMODITY_GRADE = COMMODITY_ORI.SelectedItem.Text; base.OnDataAction_BeforeSave(e); } public override void OnDataAction_AfterSave(DataActionEventArgs e) { bool Changed = false; Business.COMMODITYTYPE _COMMODITYTYPE = new Business.COMMODITYTYPE(this.Transaction); _COMMODITYTYPE.COMMODITYTYPE_ID = int.Parse(COMMODITY_TYPE.SelectedValue); if (_COMMODITYTYPE.Select()) { Business.COMMODITY _COMMODITY = new Business.COMMODITY(this.Transaction); _COMMODITY.COMMODITY_ID = CurrObject.COMMODITY_ID; if (_COMMODITY.Select()) { if (_COMMODITY.COMMODITY_CODE == null) { _COMMODITY.COMMODITY_CODE = new Business.COMMODITY(Transaction).GetCommodityCode( _COMMODITY.PROVINCE_CODE.ToString()); COMMODITY_CODE.Text = _COMMODITY.COMMODITY_CODE; Changed = true; } if (Changed) { _COMMODITY.Update(); } } } base.OnDataAction_AfterSave(e); } #endregion public override bool Delete(bool AutoBindData = true) { return base.Delete(AutoBindData); } #region 方法 -> 加载商品列表类型 public void LoadRTCommodityType(int COMMODITY_ID = 0) { COMMODITY_TYPE.Items.Clear(); Business.COMMODITYTYPE _COMMODITYTYPE = new Business.COMMODITYTYPE(this.Transaction); _COMMODITYTYPE.BindingDropDownListMaterial(null,"-1", COMMODITY_TYPE.Items,"", 0, true, false, true); if (CurrObject.COMMODITY_TYPE != null) { COMMODITY_TYPE.SelectedValue = CurrObject.COMMODITY_TYPE.ToString(); } } #endregion #region 方法 -> 产生商品条码 public void CreateBarCode() { #region 查询商品对应省份 string ProvinceCode = ""; if (!string.IsNullOrWhiteSpace(Request["PROVINCE_CODE"])) { if (Request["PROVINCE_CODE"] != _PROVINCE_CODE.ToEncrypt()) { ProvinceCode = Business.CommonHelper.GetProvinceCode(Request["PROVINCE_CODE"].ToDecryptInt32(), Transaction); } } else { if (string.IsNullOrWhiteSpace(Page.PassportInfo.ProvinceCode)) { DataTable UserTable = new FrameWork.Business.User(Transaction).ExecuteDataTable( "SELECT USER_MOBILEPHONE,USER_PROVINCE,PROVINCE_UNIT FROM PLATFORM_FRAMEWORK.T_USER WHERE User_ID = " + Page.PassportInfo.ID); if (UserTable.Rows.Count > 0) { ProvinceCode = UserTable.Rows[0]["USER_PROVINCE"].ToString(); } } else { ProvinceCode = Page.PassportInfo.ProvinceCode; } } if (!string.IsNullOrWhiteSpace(ProvinceCode) && ProvinceCode != Business.CommonHelper.GetConfigValue("PROVINCE_CODE")) { ProvinceCode = "_" + ProvinceCode; } #endregion int LastCode = 0; string BarCode = string.Empty; if (COMMODITY_ID.Text != "" && COMMODITY_ID.Text != "0") { Business.COMMODITY _COMMODITY = new Business.COMMODITY(this.Transaction); _COMMODITY.COMMODITY_ID = int.Parse(COMMODITY_ID.Text); if (_COMMODITY.Select(ProvinceCode)) { BarCode = _COMMODITY.COMMODITY_CODE; if (_COMMODITY.COMMODITY_BARCODE == null) { //8位编号补足12位 if (BarCode.Length == 8) BarCode = "2600" + BarCode; //偶数位的数字求和*3 + 奇数位数字和 for (int i = 1; i <= 12; i++) { int Num = int.Parse(BarCode.Substring(i - 1, 1)); if (i % 2 == 0) { LastCode += Num * 3; } else { LastCode += Num; } } //和求10的模 LastCode = 10 - (LastCode % 10); if (LastCode == 10) LastCode = 0; //返回条码 _COMMODITY.COMMODITY_BARCODE = COMMODITY_BARCODE.Text = BarCode + LastCode.ToString(); _COMMODITY.Update(); } } } else { Page.Alert("请先保存商品,后获取条码!"); } } #endregion #region 方法 -> 下拉框事件处理 protected void SERVERPART_ID_CallBackSetControl(object sender, ClientSetEventArgs e) { Business.SERVERPART _SERVERPART = new Business.SERVERPART(this.Transaction); _SERVERPART.SERVERPART_ID = int.Parse(e.Argument); if (_SERVERPART.Select()) { e.SetValue(PROVINCE_CODE, _SERVERPART.PROVINCE_CODE.ToString()); BUSINESSTYPE.Items.Clear(); new Business.COMMODITY(Transaction).BindingDropDownListMaterial( BUSINESSTYPE.Items, "", int.Parse(SERVERPART_ID.SelectedValue)); e.SetDropDownListEx(BUSINESSTYPE); } else { e.ExcuteClientScript(Page.GetAlertStr("请先设置对应的服务区省份编码!")); } } protected void COMMODITY_BARCODE_CallBackSetControl(object sender, ClientSetEventArgs e) { Business.COMMODITY _COMMODITY = new Business.COMMODITY(this.Transaction); //商品已存在于服务区,不允许重复新增 int ResultCode = _COMMODITY.IsDuplicateBarcode(COMMODITY_ID.Text, COMMODITY_BARCODE.Text.Trim(), SERVERPART_ID.SelectedValue, BUSINESSTYPE.SelectedValue, PROVINCE_CODE.Text, _BUSINESSTYPE, ProvinceID, WholeServerpartID, GoodsProvinceCode); switch (ResultCode) { case 1: throw new Exception("注意:该商品条码已存在于" + SERVERPART_ID.SelectedItem.Text + "或正在办理流程!请验证后重新录入!"); case 2: throw new Exception("注意:该商品条码已存在于统一定价类中!请验证后重新录入!"); } } #endregion } }