using System; using System.Configuration; using System.Web.UI; using SuperMap.RealEstate.CoreFrameWork; using SuperMap.RealEstate.Web.UI; using SuperMap.RealEstate.Web.UI.WebControls; using Business = SuperMap.RealEstate.HighWay.Running.Business; using HZQR.Common; namespace SuperMap.RealEstate.HighWay.CloudCompents.CommodityChange { /// /// T_COMMODITY_商品管理 的WebUserControl /// public partial class COMMODITY : Storage.UI.UserControlsEx { protected string _BUSINESSTYPE = ConfigurationManager.AppSettings["BusinessType"].ToString(); private string HIGHWAYPROINST_ID { get { try { return Request["HIGHWAYPROINST_ID"].ToDecrypt(); } catch { return ""; } } } protected void Page_Load(object sender, EventArgs e) { if (IsPostBack) return; if (CurrObject != null && CurrObject.PropertyObject != null) { if (CurrObject.BUSINESSTYPE != null) { BUSINESSTYPE_ORI.Text = CurrObject.BUSINESSTYPE.ToString(); } COMMODITY_ORICODE.Text = CurrObject.COMMODITY_CODE; COMMODITY_ORIID.Text = CurrObject.KeyID; } if (SERVERPART_ID.SelectedIndex > -1) { new Storage.Business.COMMODITY(Transaction).BindingDropDownList(BUSINESSTYPE.Items, !string.IsNullOrEmpty(Request["BUSINESSTYPE"]) ? Request["BUSINESSTYPE"].ToDecrypt() : "", int.Parse(SERVERPART_ID.SelectedValue)); BUSINESSTYPE.SelectedValue = CurrObject.BUSINESSTYPE.ToString(); } LoadRTCommodityType(); } //在此加入界面的数据初始化(Page_Load之前),如DropDownList的数据源绑定等 public override void InitializeWebControl() { //绑定下拉框 DictionaryHelper.BindingDropDownList("COMMODITYGRADE", COMMODITY_GRADE.Items, this.Transaction); //绑定称重方式 DictionaryHelper.BindingDropDownList("METERINGMETHOD", METERINGMETHOD.Items, this.Transaction); //业态 //DictionaryHelper.BindingDropDownList("BUSINESSTYPE", BUSINESSTYPE.Items, this.Transaction); //是否散装 DictionaryHelper.BindingDropDownList("ISBULK", ISBULK.Items, this.Transaction); //是否有效 //DictionaryHelper.BindingDropDownList("ISVALID", COMMODITY_STATE.Items, this.Transaction); } //载入数据 public override bool LoadData() { //加载对应的 ADDTIME.Text = System.DateTime.Now.ToString(); BindDropDownList_SERVERPART(); //如果是工作流组件请自行修改载入的逻辑,以下是功能模块的默认代码 if (!String.IsNullOrEmpty(Request["ID"])) { CurrObject.COMMODITY_ID_Encrypt = Request["ID"]; //LoadRTCommodityType(int.Parse(Request["ID"].ToDecrypt())); return this.Select(); } //LoadRTCommodityType(); //BindDropDownList_Supplier(); //默认返回值,工作流组件返回True,功能模块返回False。 return (WorkFlowPage != null); } //OnDataAction_XXXXX 有一个系列可用,在此加入界面的逻辑处理 //e.CancelDataAction 来处理是否取消该动作; //失败的原因可以用Page.Alert()传递到页面 public override void OnDataAction_BeforeSave(DataActionEventArgs e) { if (BUSINESSTYPE.SelectedValue != BUSINESSTYPE_ORI.Text && !string.IsNullOrWhiteSpace(COMMODITY_ORIID.Text)) { Running.Business.COMMODITY _COMMODITY = new Running.Business.COMMODITY(e.CurrObject); _COMMODITY.COMMODITY_ID_Encrypt = COMMODITY_ORIID.Text.ToEncrypt(); if (_COMMODITY.Select()) { _COMMODITY.COMMODITY_STATE = 0; _COMMODITY.Update(); } } //判断条码是否已在当前服务区或者统配商品中录入 if (!string.IsNullOrWhiteSpace(COMMODITY_BARCODE.Text.Trim()) && COMMODITY_STATE.SelectedValue == "1") { int ResultCode = e.CurrObject.IsDuplicateBarcode(COMMODITY_ORIID.Text, COMMODITY_BARCODE.Text.Trim(), SERVERPART_ID.SelectedValue, BUSINESSTYPE.SelectedValue, PROVINCE_CODE.Text, _BUSINESSTYPE, ProvinceID, WholeServerpartID, GoodsProvinceCode); switch (ResultCode) { case 1: if (new Storage.Business.COMMODITY(e.CurrObject).GetCount("WHERE COMMODITY_BARCODE = '" + COMMODITY_BARCODE.Text.Trim() + "' AND BUSINESSTYPE = " + BUSINESSTYPE.SelectedValue) > 0) { throw new Exception("注意:该商品条码已存在于" + SERVERPART_ID.SelectedItem.Text + "或正在办理流程!请验证后重新录入!"); } break; case 2: throw new Exception("注意:该商品条码已存在于统一定价类中!请验证后重新录入!"); } } base.OnDataAction_BeforeSave(e); } public override void OnDataAction_AfterSave(DataActionEventArgs e) { if (string.IsNullOrWhiteSpace(e.CurrObject.COMMODITY_BARCODE)) { CreateBarCode(); } //插入对应的关联关系 using (Running.Business.MODIFYFROMSTORAGE _MODIFYFROMSTORAGE = new Business.MODIFYFROMSTORAGE(this.Transaction)) { _MODIFYFROMSTORAGE.AddSearchParameter("HIGHWAYPROINST_ID", HIGHWAYPROINST_ID); _MODIFYFROMSTORAGE.AddSearchParameter("FIELD_VALUE", CurrObject.COMMODITY_ID.Value.ToString()); if (!_MODIFYFROMSTORAGE.Search()) { _MODIFYFROMSTORAGE.ResetProperty(); _MODIFYFROMSTORAGE.HIGHWAYPROINST_ID = int.Parse(HIGHWAYPROINST_ID); _MODIFYFROMSTORAGE.Field_Value = CurrObject.COMMODITY_ID.Value.ToString(); _MODIFYFROMSTORAGE.Table_Name = "T_COMMODITY"; _MODIFYFROMSTORAGE.Field_Name = "COMMODITY_ID"; _MODIFYFROMSTORAGE.Insert(); } } base.OnDataAction_AfterSave(e); } public override bool Delete(bool AutoBindData = true) { using (Running.Business.MODIFYFROMSTORAGE _MODIFYFROMSTORAGE = new Business.MODIFYFROMSTORAGE(this.Transaction)) { _MODIFYFROMSTORAGE.AddSearchParameter("HIGHWAYPROINST_ID", HIGHWAYPROINST_ID); _MODIFYFROMSTORAGE.AddSearchParameter("FIELD_VALUE", COMMODITY_ID.Text); if (_MODIFYFROMSTORAGE.Search()) { _MODIFYFROMSTORAGE.Delete(); } } return base.Delete(AutoBindData); } #region 方法 -> 加载下拉框 public void BindDropDownList_SERVERPART(int COMMODITY_ID = 0) { SERVERPART_ID.Items.Clear(); Business.HIGHWAYPROINST _HIGHWAYPROINST = new Business.HIGHWAYPROINST(Transaction); _HIGHWAYPROINST.HIGHWAYPROINST_ID_Encrypt = Request["HIGHWAYPROINST_ID"]; if (_HIGHWAYPROINST.Select()) { Storage.Business.SERVERPART _SERVERPART = new Storage.Business.SERVERPART(Transaction); if (_HIGHWAYPROINST.__ProInst.Division_Code == null) { _SERVERPART.SERVERPART_ID_Encrypt = WholeServerpartID.ToEncrypt(); if (_SERVERPART.Select()) { ListItemEx _ListItemEx = new ListItemEx(); _ListItemEx.Value = _SERVERPART.SERVERPART_ID.ToString(); _ListItemEx.Text = _SERVERPART.SERVERPART_NAME; SERVERPART_ID.Items.Add(_ListItemEx); SERVERPART_ID.SelectedValue = WholeServerpartID; PROVINCE_CODE.Text = _SERVERPART.PROVINCE_CODE.ToString(); } } else { _SERVERPART.AddSearchParameter("SERVERPART_CODE", _HIGHWAYPROINST.__ProInst.Division_Code_BaseValue); if (_SERVERPART.Search()) { ListItemEx _ListItemEx = new ListItemEx(); _ListItemEx.Value = _SERVERPART.SERVERPART_ID.ToString(); _ListItemEx.Text = _SERVERPART.SERVERPART_NAME; SERVERPART_ID.Items.Add(_ListItemEx); SERVERPART_ID.SelectedValue = SERVERPART_ID.ID.ToString(); PROVINCE_CODE.Text = _SERVERPART.PROVINCE_CODE.ToString(); } } } else { foreach (Storage.Business.SERVERPART _SERVERPART in new Storage.Business.SERVERPART( Transaction).GetPassportServerPart(Page.PassportInfo.CityAuthority)) { ListItemEx _ListItemEx = new ListItemEx(); _ListItemEx.Value = _SERVERPART.SERVERPART_ID.ToString(); _ListItemEx.Text = _SERVERPART.SERVERPART_NAME; SERVERPART_ID.Items.Add(_ListItemEx); } if (SERVERPART_ID.SelectedIndex != -1) { Storage.Business.SERVERPART _SERVERPART = new Storage.Business.SERVERPART(this.Transaction); if (_SERVERPART.Select(int.Parse(SERVERPART_ID.SelectedValue))) { PROVINCE_CODE.Text = _SERVERPART.PROVINCE_CODE.ToString(); } } } } #endregion #region 方法 -> 加载商品列表类型 public void LoadRTCommodityType(int COMMODITY_ID = 0) { #region 暂注释 //CheckBoxList_COMMODITY_TYPE.Items.Clear(); //Storage.Business.COMMODITYTYPE _COMMODITYTYPE = new Storage.Business.COMMODITYTYPE(); //foreach (Storage.Business.COMMODITYTYPE _StorageCOMMODITYTYPE in _COMMODITYTYPE.FillCollection("where 1=1 ")) //{ // ListItem _ListItem = new ListItem(); // _ListItem.Text = _StorageCOMMODITYTYPE.COMMODITYTYPE_NAME; // _ListItem.Value = _StorageCOMMODITYTYPE.COMMODITYTYPE_ID_Encrypt; // if (COMMODITY_ID != 0) // { // using (Storage.Business.RTCOMMODITY _RTCOMMODITY = new Business.RTCOMMODITY()) // { // if (_RTCOMMODITY.GetCount(" where COMMODITY_ID=" + COMMODITY_ID + " and COMMODITYTYPE_ID=" + _StorageCOMMODITYTYPE.COMMODITYTYPE_ID) > 0) // { // _ListItem.Selected = true; // } // else // { // _ListItem.Selected = false; // } // } // } // CheckBoxList_COMMODITY_TYPE.Items.Add(_ListItem); //} #endregion COMMODITY_TYPE.Items.Clear(); Storage.Business.COMMODITYTYPE _COMMODITYTYPE = new Storage.Business.COMMODITYTYPE(this.Transaction); if (BUSINESSTYPE.SelectedValue == "9032" || BUSINESSTYPE.SelectedValue == "9990") { //仓储或者物业物资 if (BUSINESSTYPE.SelectedValue == "9990") { _COMMODITYTYPE.BindingDropDownList(COMMODITY_TYPE.Items, "", false, true, true, false, false, true, Page.PassportInfo.ProvinceCode.TryParseToInt()); } else { _COMMODITYTYPE.BindingDropDownList(COMMODITY_TYPE.Items, "", false, true, true, false, false, Page.PassportInfo.ProvinceCode.TryParseToInt()); } } else { if (SERVERPART_ID.SelectedValue == WholeServerpartID) { _COMMODITYTYPE.BindingDropDownList(COMMODITY_TYPE.Items, "", false, false, true, true, true, Page.PassportInfo.ProvinceCode.TryParseToInt()); } else { _COMMODITYTYPE.BindingDropDownList(COMMODITY_TYPE.Items, "", false, true, true, true, false, Page.PassportInfo.ProvinceCode.TryParseToInt()); } } if (CurrObject.COMMODITY_TYPE != null) { COMMODITY_TYPE.SelectedValue = CurrObject.COMMODITY_TYPE.ToString(); } } #endregion #region 方法 -> 产生商品条码 public void CreateBarCode() { string BarCode = string.Empty; int LastCode = 0; if (COMMODITY_ID.Text != "" && COMMODITY_ID.Text != "0") { Running.Business.COMMODITY _COMMODITY = new Running.Business.COMMODITY(this.Transaction); _COMMODITY.COMMODITY_ID = int.Parse(COMMODITY_ID.Text); if (_COMMODITY.Select()) { 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 protected void SERVERPART_ID_CallBackSetControl(object sender, ClientSetEventArgs e) { Storage.Business.SERVERPART _SERVERPART = new Storage.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 Storage.Business.COMMODITY(this.Transaction)).BindingDropDownList( BUSINESSTYPE.Items, "", int.Parse(SERVERPART_ID.SelectedValue)); e.SetDropDownListEx(BUSINESSTYPE); } else { e.ExcuteClientScript(Page.GetAlertStr("请先设置对应的服务区省份编码!")); } } //单独处理仓储商品 protected void COMMODITY_TYPE_CallBackSetControl(object sender, ClientSetEventArgs e) { //获得对应的数据 if (!COMMODITY_TYPE.SelectedItem.Text.StartsWith("[1") && !COMMODITY_TYPE.SelectedItem.Text.StartsWith("[2") && !COMMODITY_TYPE.SelectedItem.Text.StartsWith("[3") && !COMMODITY_TYPE.SelectedItem.Text.StartsWith("[7") && !COMMODITY_TYPE.SelectedItem.Text.StartsWith("[8") && (BUSINESSTYPE.SelectedValue != "9032" && BUSINESSTYPE.SelectedValue != "9990")) { BUSINESSTYPE.SelectedValue = "9032"; e.SetValue(BUSINESSTYPE); } } #region 方法 -> 商品业态下拉框变更事件 protected void BUSINESSTYPE_CallBackSetControl(object sender, ClientSetEventArgs e) { if (!string.IsNullOrWhiteSpace(COMMODITY_ORIID.Text)) { if (e.Argument != BUSINESSTYPE_ORI.Text) { //判断正式库是否存在商品信息 Storage.Business.COMMODITY _COMMODITY = new Storage.Business.COMMODITY(Transaction); _COMMODITY.AddSearchParameter("COMMODITY_BARCODE", COMMODITY_BARCODE.Text.Trim()); _COMMODITY.AddSearchParameter("BUSINESSTYPE", BUSINESSTYPE.SelectedValue); _COMMODITY.AddSearchParameter("SERVERPART_ID", SERVERPART_ID.SelectedValue); if (_COMMODITY.Search()) { e.SetValue(COMMODITY_ID, _COMMODITY.KeyID); e.SetValue(COMMODITY_CODE, _COMMODITY.COMMODITY_CODE); } else { //判断运行库是否存在商品信息 Running.Business.COMMODITY RunningCOMMODITY = new Running.Business.COMMODITY(Transaction); RunningCOMMODITY.AddSearchParameter("COMMODITY_BARCODE", COMMODITY_BARCODE.Text.Trim()); RunningCOMMODITY.AddSearchParameter("BUSINESSTYPE", BUSINESSTYPE.SelectedValue); RunningCOMMODITY.AddSearchParameter("SERVERPART_ID", SERVERPART_ID.SelectedValue); if (RunningCOMMODITY.Search()) { e.SetValue(COMMODITY_ID, RunningCOMMODITY.KeyID); e.SetValue(COMMODITY_CODE, RunningCOMMODITY.COMMODITY_CODE); } else { e.SetValue(COMMODITY_ID, ""); e.SetValue(COMMODITY_CODE, ""); } } } else { e.SetValue(COMMODITY_ID, COMMODITY_ORIID.Text); e.SetValue(COMMODITY_CODE, COMMODITY_ORICODE.Text); } } //绑定商品类型 LoadRTCommodityType(); e.SetDropDownListEx(COMMODITY_TYPE); } #endregion } }