using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using WMS.Frm.Base; using WMS.Model.Strategy; using WMS.Common; using DevExpress.XtraEditors.Repository; using WMS.Model.Base; using WMS.Ctrl; using WMS.Business; using WMS.Business.Strategy; using WMS.Business.Common; namespace WMS.FrmStrategy { public partial class FrmStrAreaRepDet : FormBase { #region 变量 private StrAreaRepModel StrAreaRepModel = new StrAreaRepModel(); private List listStrAreaRepStorage = new List(); private List listStrAreaRepGoods = new List(); private StrAreaRepStorageModel StrAreaRepStorage = new StrAreaRepStorageModel(); private StrAreaRepGoodsModel StrAreaRepGoods = new StrAreaRepGoodsModel(); private int flag = -1;//0:新增;1:修改; private DevExpress.XtraEditors.Repository.RepositoryItemLookUpEdit lueAreas = new RepositoryItemLookUpEdit(); #endregion #region 初始化 /// /// 构造函数 用于新增 /// public FrmStrAreaRepDet() { Inti(); flag = 0; } /// /// 构造函数 用于修改 /// /// public FrmStrAreaRepDet(StrAreaRepModel StrAreaRep) { Inti(); flag = 1; StrAreaRepModel = StrAreaRep; this.Text = "库区间定时补货策略信息-" + StrAreaRepModel.STRATEGY_ID; } private void FrmStrAreaRepDet_Load(object sender, EventArgs e) { if (flag == 1) { //绑仓库库区明细 string errText = string.Empty; string strDataSet = string.Empty; StrAreaRepStorageModel queryStrAreaRepStorage = new StrAreaRepStorageModel(); queryStrAreaRepStorage.STRATEGY_ID = StrAreaRepModel.STRATEGY_ID; try { listStrAreaRepStorage = IBussFactory.Instance().GetStrAreaRepStorageList(queryStrAreaRepStorage); } catch (Exception) { SystemCommon.ShowInfoMessageBox("未知错误,请检查网络连接!如仍无法解决问题请联系我们!"); } if (errText == string.Empty) { } else { SystemCommon.ShowInfoMessageBox(errText); } //绑商品明细 errText = string.Empty; strDataSet = string.Empty; StrAreaRepGoodsModel queryStrAreaRepGoods = new StrAreaRepGoodsModel(); queryStrAreaRepGoods.STRATEGY_ID = StrAreaRepModel.STRATEGY_ID; try { listStrAreaRepGoods = IBussFactory.Instance().GetStrAreaRepGoodsList(queryStrAreaRepGoods); } catch (Exception) { SystemCommon.ShowInfoMessageBox("未知错误,请检查网络连接!如仍无法解决问题请联系我们!"); } StrAreaRepModel.UPDATE_MAN = userData.USER_ID; } else if (flag == 0) { //StrAreaRepModel.ADDED_FLAG = "0"; //StrAreaRepModel.NULL_FLAG = "0"; //StrAreaRepModel.PRODUCE_FLAG = "0"; StrAreaRepModel.STRATEGY_STATE = "0"; StrAreaRepModel.CREATE_MAN = userData.USER_ID; listStrAreaRepStorage.Add(new StrAreaRepStorageModel()); } bsStrAreaRep.DataSource = StrAreaRepModel; bsStrAreaRepStorage.DataSource = listStrAreaRepStorage; GVStrAreaRepStorage.RefreshData(); bsStrAreaRepGoods.DataSource = listStrAreaRepGoods; GVStrAreaRepGoods.RefreshData(); } private void Inti() { InitializeComponent(); //单位下拉框 lueUnit.NullText = ""; lueUnit.Columns.Add(new DevExpress.XtraEditors.Controls.LookUpColumnInfo("VC_DICTIONARY_NAME", "单位")); lueUnit.ValueMember = "VC_CHAR_VALUE"; lueUnit.DisplayMember = "VC_DICTIONARY_NAME"; DataTable strResult = new DataTable(); try { strResult = IBussFactory.Instance().GetCustomCtrlData("t_sys_dictionary_tab", "VC_CHAR_VALUE", "VC_DICTIONARY_NAME", " VC_DICTIONARY_TYPE = 'vc_uom' and c_flag = '1'", ""); if (strResult != null) { lueUnit.DataSource = strResult; } } catch (Exception) { SystemCommon.ShowInfoMessageBox("未知错误,请检查网络连接!如仍无法解决问题请联系我们!"); } lueStorage.NullText = ""; lueStorage.Columns.Add(new DevExpress.XtraEditors.Controls.LookUpColumnInfo("STORAGE_NAME", "仓库")); lueStorage.ValueMember = "STORAGE_ID"; lueStorage.DisplayMember = "STORAGE_NAME"; try { strResult = IBussFactory.Instance().GetCustomCtrlData("T_BASE_STORAGEINFO", "STORAGE_ID", "STORAGE_NAME", "", ""); if (strResult != null) { lueStorage.DataSource = strResult; } } catch (Exception) { SystemCommon.ShowInfoMessageBox("未知错误,请检查网络连接!如仍无法解决问题请联系我们!"); } lueArea.NullText = ""; lueArea.Columns.Add(new DevExpress.XtraEditors.Controls.LookUpColumnInfo("STORAGE_AREA_NAME", "库区")); lueArea.ValueMember = "STORAGE_AREA_ID"; lueArea.DisplayMember = "STORAGE_AREA_NAME"; try { strResult = IBussFactory.Instance().GetCustomCtrlData("T_BASE_STORAGE_AREA", "STORAGE_AREA_ID", "STORAGE_AREA_NAME", "", ""); if (strResult != null) { lueArea.DataSource = strResult; } } catch (Exception) { SystemCommon.ShowInfoMessageBox("未知错误,请检查网络连接!如仍无法解决问题请联系我们!"); } lueAreas.NullText = ""; lueAreas.Columns.Add(new DevExpress.XtraEditors.Controls.LookUpColumnInfo("STORAGE_AREA_NAME", "库区")); lueAreas.ValueMember = "STORAGE_AREA_ID"; lueAreas.DisplayMember = "STORAGE_AREA_NAME"; } #endregion private void btnAddTab_Click(object sender, EventArgs e) { StrAreaRepStorageModel model = new StrAreaRepStorageModel(); model.STRATEGY_ID = StrAreaRepModel.STRATEGY_ID; listStrAreaRepStorage.Add(model); bsStrAreaRepStorage.DataSource = listStrAreaRepStorage; GVStrAreaRepStorage.RefreshData(); } private void btnDelTab_Click(object sender, EventArgs e) { StrAreaRepStorage = GVStrAreaRepStorage.GetFocusedRow() as StrAreaRepStorageModel; listStrAreaRepStorage.Remove(StrAreaRepStorage); bsStrAreaRepStorage.DataSource = listStrAreaRepStorage; GVStrAreaRepStorage.RefreshData(); } private void btnDelGoods_Click(object sender, EventArgs e) { StrAreaRepGoods = GVStrAreaRepGoods.GetFocusedRow() as StrAreaRepGoodsModel; listStrAreaRepGoods.Remove(StrAreaRepGoods); bsStrAreaRepGoods.DataSource = listStrAreaRepGoods; GVStrAreaRepGoods.RefreshData(); } private void btnSave_Click(object sender, EventArgs e) { /*验证*/ if (string.IsNullOrEmpty(txtStartegyName.Text)) { SystemCommon.ShowInfoMessageBox("请输入策略名称"); txtStartegyName.Focus(); return; } if (string.IsNullOrEmpty(txtTime.Text) || txtTime.Text == "0") { SystemCommon.ShowInfoMessageBox("请输入补货间隔"); txtTime.Focus(); return; } List listAllStrAreaRepStorage = new List(); string errText = string.Empty; string strDataSet = string.Empty; StrAreaRepStorageModel queryStrAreaRepStorage = new StrAreaRepStorageModel(); try { listAllStrAreaRepStorage = IBussFactory.Instance().GetStrAreaRepStorageList(queryStrAreaRepStorage); } catch (Exception) { SystemCommon.ShowInfoMessageBox("未知错误,请检查网络连接!如仍无法解决问题请联系我们!"); } if (listStrAreaRepGoods.Count == 0) { SystemCommon.ShowInfoMessageBox("请选择商品"); GVStrAreaRepGoods.Focus(); return; } foreach (var item in listStrAreaRepStorage) { if (string.IsNullOrEmpty(item.STORAGE_ID)) { SystemCommon.ShowInfoMessageBox("请选择仓库"); GVStrAreaRepStorage.Focus(); return; } if (string.IsNullOrEmpty(item.OUT_AREA_ID)) { SystemCommon.ShowInfoMessageBox("请选择出库库区"); GVStrAreaRepStorage.Focus(); return; } if (string.IsNullOrEmpty(item.IN_AREA_ID)) { SystemCommon.ShowInfoMessageBox("请选择入库库区"); GVStrAreaRepStorage.Focus(); return; } if (item.IN_AREA_ID == item.OUT_AREA_ID) { SystemCommon.ShowInfoMessageBox("出库库区、入库库区不能相同"); GVStrAreaRepStorage.Focus(); return; } if (listStrAreaRepStorage.FindAll(p => p.STORAGE_ID == item.STORAGE_ID && p.OUT_AREA_ID == item.OUT_AREA_ID && p.IN_AREA_ID == item.IN_AREA_ID).Count > 1) { SystemCommon.ShowInfoMessageBox("所选仓库库区不能重复"); GVStrAreaRepStorage.Focus(); return; } if (listAllStrAreaRepStorage.Exists(p => p.STORAGE_ID == item.STORAGE_ID && p.OUT_AREA_ID == item.OUT_AREA_ID && p.IN_AREA_ID == item.IN_AREA_ID && p.STRATEGY_ID != item.STRATEGY_ID)) { SystemCommon.ShowInfoMessageBox("所选入库库区已存在于其它库区间定时补货策略"); GVStrAreaRepStorage.Focus(); return; } } if (flag == 0) { //增加 /*增加*/ errText = string.Empty; try { errText = IBussFactory.Instance().InsertStrAreaRepAndTab(StrAreaRepModel, listStrAreaRepStorage, listStrAreaRepGoods); if (string.IsNullOrEmpty(errText))//如果增加成功 { SystemCommon.ShowInfoMessageBox("增加成功"); } else { SystemCommon.ShowInfoMessageBox("增加失败" + errText); return; } } catch (Exception) { SystemCommon.ShowInfoMessageBox("未知错误,请检查网络连接!如仍无法解决问题请联系我们!"); } } else if (flag == 1)//修改 { /*修改*/ errText = string.Empty; try { errText = IBussFactory.Instance().UpdateStrAreaRepAndTab(StrAreaRepModel, listStrAreaRepStorage, listStrAreaRepGoods); if (string.IsNullOrEmpty(errText))//如果修改成功 { SystemCommon.ShowInfoMessageBox("修改成功"); } else { SystemCommon.ShowInfoMessageBox("修改失败" + errText); return; } } catch (Exception) { SystemCommon.ShowInfoMessageBox("未知错误,请检查网络连接!如仍无法解决问题请联系我们!"); } } this.Close(); this.Dispose(); } private void btnClose_Click(object sender, EventArgs e) { if (DialogResult.Yes != SystemCommon.ShowMessageBoxResult("确定放弃正在编辑的数据?")) { return; } this.Close(); this.Dispose(); } private void GVStrAreaRepStorage_CustomRowCellEditForEditing(object sender, DevExpress.XtraGrid.Views.Grid.CustomRowCellEditEventArgs e) { if (e.RowHandle < 0 || flag == -1) { return; } if (e.Column.Name == "colOUT_AREA_ID" || e.Column.Name == "colIN_AREA_ID") { DataTable strResult = new DataTable(); try { strResult = IBussFactory.Instance().GetCustomCtrlData("T_BASE_STORAGE_AREA", "STORAGE_AREA_ID", "STORAGE_AREA_NAME", " STORAGE_ID = '" + GVStrAreaRepStorage.GetFocusedRowCellValue("STORAGE_ID").ToString() + "'", ""); } catch (Exception) { SystemCommon.ShowInfoMessageBox("未知错误,请检查网络连接!如仍无法解决问题请联系我们!"); } if (strResult != null) lueAreas.DataSource = strResult; e.RepositoryItem = lueAreas;//当前单元格绑定控件 } } /// /// 选择商品 /// /// /// private void ctrlDicGoods_Button_Click(object sender, EventArgs e) { if (ctrlDicGoods.SelectTable.Rows.Count == 0) { //SystemCommon.ShowInfoMessageBox("您未选择商品!"); return; } //商品集合 List listGoodsInfoModel = ConvertHelper.ConvertToList(ctrlDicGoods.SelectTable); /*将选择的商品加入入库商品明细*/ foreach (GoodsInfoModel item in listGoodsInfoModel) { StrAreaRepGoodsModel model = new StrAreaRepGoodsModel(); model.GOODS_ID = item.GOODS_ID; model.GOODS_NAME = item.GOODS_NAME; model.UNIT = item.UNIT; model.NUM = decimal.Parse(txtAdd.Text); model.STOCK_NUM = decimal.Parse(txtMin.Text); model.STRATEGY_ID = StrAreaRepModel.STRATEGY_ID; //判断该商品是否已经在入库商品明细中后添加 bool had = false; foreach (StrAreaRepGoodsModel wntModel in listStrAreaRepGoods) { if (wntModel.GOODS_ID == model.GOODS_ID) { had = true; } } if (!had) { listStrAreaRepGoods.Add(model); } } if (listStrAreaRepGoods.Count > 0) { GVStrAreaRepGoods.RefreshData(); ////焦点置于采购数量 //GVStrAreaRepGoods.FocusedColumn = GVStrAreaRepGoods.Columns[1]; //GVStrAreaRepGoods.FocusedRowHandle = 0; } else { SystemCommon.ShowInfoMessageBox("未选择任何商品或所选择的商品已存在,请重新选择"); } } private void repositoryItemHyperLinkEdit1_Click(object sender, EventArgs e) { // StrAreaRepGoodsModel model = GVStrAreaRepGoods.GetFocusedRow() as StrAreaRepGoodsModel; // if (model != null && !string.IsNullOrEmpty(model.GOODS_ID)) // { // FrmGoodsInfoDet.IFlag = 2; // FrmGoodsInfoDet.StrGoodsID = model.GOODS_ID; // LoadForm load = new LoadForm(); // DevExpress.XtraSplashScreen.SplashScreenManager.ShowForm(load, load.GetType(), false, true, false, 0); // DevExpress.XtraSplashScreen.SplashScreenManager.Default.SetWaitFormDescription("正在读取商品信息...."); // FrmGoodsInfoDet.GetInstance().Show(); // } } } }