using System; using System.Data; using System.Linq; using System.Web.UI; using System.Web.UI.WebControls; using SuperMap.RealEstate.CoreFrameWork; using SuperMap.RealEstate.ServiceModel; using SuperMap.RealEstate.Utility; using SuperMap.RealEstate.Web.UI; using SuperMap.RealEstate.Web.UI.WebControls; using SuperMap.RealEstate.Web.Utility; using Storage = SuperMap.RealEstate.HighWay.Storage; using SuperMap.RealEstate.CoreFrameWork.Dictionary.Business; namespace SuperMap.RealEstate.HighWay.Storage { /// /// T_COMMODITY_商品管理 的WebUserControl /// public partial class COMMODITY : UserControl { protected void Page_Load(object sender, EventArgs e) { if (IsPostBack) return; if (!String.IsNullOrEmpty(Request["ID"])) { BindDropDownList_Supplier(int.Parse(Request["ID"].ToDecrypt())); } } //在此加入界面的数据初始化(Page_Load之前),如DropDownList的数据源绑定等 public override void InitializeWebControl() { //绑定下拉框 DictionaryHelper.BindingDropDownList("COMMODITYGRADE", COMMODITY_GRADE.Items,this.Transaction); //是否有效 DictionaryHelper.BindingDropDownList("ISVALID", COMMODITY_STATE.Items, this.Transaction); //是否散称 DictionaryHelper.BindingDropDownList("ISBULK", ISBULK.Items, this.Transaction); //绑定称重方式 DictionaryHelper.BindingDropDownList("METERINGMETHOD", METERINGMETHOD.Items, this.Transaction); // DictionaryHelper.BindingDropDownList("BUSINESSTYPE", BUSINESSTYPE.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) { base.OnDataAction_BeforeSave(e); if (int.Parse((new Business.COMMODITY(this.Transaction)).ExecuteDataTable( "select COUNT(COMMODITY_CODE) from HIGHWAY_STORAGE.V_ALL_COMMODITY WHERE COMMODITY_BARCODE = '" + COMMODITY_BARCODE.Text + "'" + (String.IsNullOrEmpty(Request["ID"]) ? "" : " AND COMMODITY_ID != " + CurrObject.COMMODITY_ID) + " AND SERVERPART_ID = " + SERVERPART_ID.SelectedValue).Rows[0][0].ToString()) > 0) { throw new Exception("注意:该商品条码已存在于您的服务区!请验证后重新录入!"); } // else if (int.Parse((new Business.COMMODITY()).ExecuteDataTable(@"select COUNT(COMMODITY_CODE) from HIGHWAY_STORAGE.V_COMMODITY // WHERE COMMODITYTYPE_NAME = '统一定价类' AND COMMODITY_BARCODE = '" + COMMODITY_BARCODE.Text + "'" + // (String.IsNullOrEmpty(Request["ID"]) ? "" : " AND COMMODITY_ID != " + CurrObject.COMMODITY_ID)).Rows[0][0].ToString()) > 0) // { // throw new Exception("注意:该商品条码已存在于统一定价类中!请验证后重新录入!"); // } } public override void OnDataAction_AfterSave(DataActionEventArgs e) { bool Changed = false; Storage.Business.COMMODITYTYPE _COMMODITYTYPE = new Business.COMMODITYTYPE(this.Transaction); _COMMODITYTYPE.COMMODITYTYPE_ID = int.Parse(COMMODITY_TYPE.SelectedValue); if (_COMMODITYTYPE.Select()) { Storage.Business.COMMODITY _COMMODITY = new Business.COMMODITY(this.Transaction); _COMMODITY.COMMODITY_ID = CurrObject.COMMODITY_ID; if (_COMMODITY.Select()) { if (_COMMODITY.COMMODITY_CODE == null) { CurrObject.COMMODITY_CODE = _COMMODITY.COMMODITY_CODE = _COMMODITY.GetCommodityCode(_COMMODITY.PROVINCE_CODE.ToString()); Changed = true; } if (Changed) _COMMODITY.Update(); } } SaveRTCommodityType(CurrObject.COMMODITY_ID.Value); SaveDropDownList_Supplier(CurrObject.COMMODITY_ID.Value); base.OnDataAction_AfterSave(e); } #region 方法 -> 加载服务区下拉框【根据用户信息】 public void BindDropDownList_SERVERPART(int COMMODITY_ID = 0) { SERVERPART_ID.Items.Clear(); foreach (Storage.Business.SERVERPART _SERVERPART in (new Storage.Business.SERVERPART(this.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); _COMMODITYTYPE.BindingDropDownList(COMMODITY_TYPE.Items, "", false); } #endregion #region 方法 -> 保存商品列表类型 public void SaveRTCommodityType(int COMMODITY_ID = 0) { if (COMMODITY_ID == 0) return; foreach (Storage.Business.RTCOMMODITY _RTCOMMODITY in (new Storage.Business.RTCOMMODITY(this.Transaction)).FillCollection("where COMMODITY_ID=" + COMMODITY_ID)) { _RTCOMMODITY.Delete(); } //foreach (ListItem _ListItem in CheckBoxList_COMMODITY_TYPE.Items) //{ // if (_ListItem.Selected) // { // using (Storage.Business.RTCOMMODITY _RTCOMMODITY = new Storage.Business.RTCOMMODITY()) // { // _RTCOMMODITY.COMMODITYTYPE_ID = _ListItem.Value.ToDecryptInt32(); // _RTCOMMODITY.COMMODITY_ID = COMMODITY_ID; // _RTCOMMODITY.Insert(); // } // } //} //using (Storage.Business.RTCOMMODITY _RTCOMMODITY = new Storage.Business.RTCOMMODITY(this.Transaction)) //{ // _RTCOMMODITY.COMMODITYTYPE_ID = int.Parse(COMMODITY_TYPE.SelectedValue); // _RTCOMMODITY.COMMODITY_ID = COMMODITY_ID; // _RTCOMMODITY.Insert(); //} Storage.Business.COMMODITYTYPE _COMMODITYTYPE = new Storage.Business.COMMODITYTYPE(this.Transaction); _COMMODITYTYPE.COMMODITYTYPE_ID = int.Parse(COMMODITY_TYPE.SelectedValue); if (_COMMODITYTYPE.Select()) { (new Storage.Business.COMMODITY(this.Transaction)).InsertIntoRTCommodity(_COMMODITYTYPE, COMMODITY_ID); } } #endregion #region 方法 -> 加载供货商 public string BindDropDownList_Supplier(int COMMODITY_ID = 0) { string SelValue = string.Empty; SUPPLIER_ID.Items.Clear(); foreach (Storage.Business.SUPPLIER _StorageSUPPLIER in ((new Storage.Business.SUPPLIER(this.Transaction).FillCollection("where 1=1 ")))) { ListItemEx _ListItem = new ListItemEx(); _ListItem.Text = _StorageSUPPLIER.SUPPLIER_NAME; _ListItem.Value = _StorageSUPPLIER.SUPPLIER_ID_Encrypt; //_ListItem.Selected = true; SUPPLIER_ID.Items.Add(_ListItem); //判断是否选择 if (COMMODITY_ID != 0) { using (Storage.Business.RTSUPPLIER _RTSUPPLIER = new Business.RTSUPPLIER(this.Transaction)) { if (_RTSUPPLIER.GetCount(" where COMMODITY_ID=" + COMMODITY_ID + " and SUPPLIER_ID=" + _StorageSUPPLIER.SUPPLIER_ID) > 0) { SelValue += SelValue == string.Empty ? _StorageSUPPLIER.SUPPLIER_ID_Encrypt : "," + _StorageSUPPLIER.SUPPLIER_ID_Encrypt; } } } } SUPPLIER_ID.SelectedValue = SelValue; return SelValue; } #endregion #region 方法 -> 保存对应的供应商 public void SaveDropDownList_Supplier(int COMMODITY_ID = 0) { try { if (COMMODITY_ID == 0) return; foreach (Storage.Business.RTSUPPLIER _RTSUPPLIER in (new Storage.Business.RTSUPPLIER(this.Transaction)).FillCollection("where COMMODITY_ID=" + COMMODITY_ID)) { _RTSUPPLIER.Delete(); } foreach (string SelectValue in SUPPLIER_ID.SelectedValue.Split(',')) { if (SelectValue == "") continue; using (Storage.Business.RTSUPPLIER _RTSUPPLIER = new Business.RTSUPPLIER(this.Transaction)) { _RTSUPPLIER.COMMODITY_ID = COMMODITY_ID; _RTSUPPLIER.SUPPLIER_ID = SelectValue.ToDecryptInt32(); _RTSUPPLIER.Insert(); } } } catch (Exception ex) { Page.Alert(ex.Message); } } #endregion #region 方法 -> 产生商品条码 public void CreateBarCode() { string BarCode = string.Empty; int LastCode = 0; if (COMMODITY_ID.Text != "" && COMMODITY_ID.Text != "0") { Storage.Business.COMMODITY _COMMODITY = new Business.COMMODITY(this.Transaction); _COMMODITY.COMMODITY_ID = int.Parse(COMMODITY_ID.Text); if (_COMMODITY.Select()) { BarCode = _COMMODITY.COMMODITY_CODE; if (_COMMODITY.COMMODITY_BARCODE == null && _COMMODITY.COMMODITY_CODE != 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 = CurrObject.COMMODITY_BARCODE = BarCode + LastCode.ToString(); _COMMODITY.Update(); } } } } #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()); } else { e.ExcuteClientScript(Page.GetAlertStr("请先设置对应的服务区省份编码!")); } } } }