using System; using System.Collections.Generic; using System.Data; using System.Drawing; using System.Windows.Forms; using WMS.Frm.Base; using WMS.Model.Stock; using WMS.Common; using DevExpress.XtraGrid.Columns; using DevExpress.XtraEditors.Repository; using WMS.Model.Base; using DevExpress.XtraReports.UI; using WMS.Ctrl; using WMS.FrmBaseData; using System.Threading; using WMS.Model.SystemManage; using WMS.Business; using WMS.Business.Stock; using WMS.Business.Base; using WMS.Business.Common; using WMS.Business.SystemManage; namespace WMS.FrmStock { /// /// 窗体:移位单 /// public partial class FrmMoveLoc : FormBase { #region 变量 public static FrmMoveLoc frmMoveLoc; private MoveLocModel moveLocModel = new MoveLocModel();//当前选择的移位单 private List listmoveLocModel = new List();//移位单集合 private List listMoveLocTabModel = new List();//移位商品明细集合 private List MIStockList = new List();//某库区库存集合 private List listSKU = new List();//规格集合 private bool isSKU = false;//默认未开启SKU //private List listJWGoodsInfoModel = new List();//商品集合 private int flag = -1;//0:增加;1:修改 private DevExpress.XtraEditors.Repository.RepositoryItemLookUpEdit lueUnits = new RepositoryItemLookUpEdit(); private DevExpress.XtraEditors.Repository.RepositoryItemLookUpEdit lueLocs = new RepositoryItemLookUpEdit(); //全选判断 bool m_status = false; #endregion #region 初始化 /// /// 无参构造 /// public FrmMoveLoc() { InitializeComponent(); //dicCreate.LoadData();//创建人 //dicConfirm.LoadData();//审核人 //dicMove.LoadData();//移位人 lueArea.LoadData();//库区 lueState.LoadData();//状态 lueType.LoadData();//移位类型 lueStorage.LoadData();//仓库 RoleStorageModel roles = new RoleStorageModel(); roles.ROLE_ID = userData.ROLE_ID; List lists = IBussFactory.Instance().GetList(roles); if (lists!=null) lueStorage.Properties.DataSource = lists; //lueStorage.Properties.DisplayMember = "STORAGE_NAME"; //lueStorage.Properties.ValueMember = "STORAGE_ID"; //lueStorage.Properties.NullText = string.Empty; } /// /// 本窗体加载的时候 /// /// /// public void FrmMoveLoc_Load(object sender, EventArgs e) { //检测是否开启SKU // if (WebLockConfig.Instance.WebSysParams.GetParamValue("IsSKU") == "0") { // isSKU = true; // } //审核人 //dicConfirm.Properties.DataSource = getSameDepUserList(); //dicConfirm.TextBoxFlag = userData.USER_ID; //dicConfirm.TextBoxValue = userData.NAME; //移位人 //dicMove.Properties.DataSource = getSameDepUserList(); //DataTable dt = dicMove.Properties.DataSource as DataTable; //DataRow dr = dt.NewRow(); //dt.Rows.Add(dr); //dicMove.Properties.DataSource = dt; //创建人 //dicCreate.Properties.DataSource = getSameDepUserList(); //dicCreate.TextBoxFlag = userData.USER_ID; //dicCreate.TextBoxValue = userData.NAME; ////原库位下拉框 //lueOldLoc.NullText = ""; //lueOldLoc.Properties.Columns.Add(new DevExpress.XtraEditors.Controls.LookUpColumnInfo("LOCATION_NAME", "原库位")); //lueOldLoc.Properties.ValueMember = "LOCATION_ID"; //lueOldLoc.Properties.DisplayMember = "LOCATION_NAME"; //string strResult = string.Empty; //try //{ // strResult = WebLockConfig.Instance.Common.GetCustomCtrlData("T_BASE_STORAGE_AREA_LOCATION", "LOCATION_ID", "LOCATION_NAME", " STORAGE_AREA_ID = '' and STATUS = '0'"); //} //catch (Exception) //{ // SystemCommon.ShowInfoMessageBox("未知错误,请检查网络连接!如仍无法解决问题请联系我们!"); //} //lueOldLoc.Properties.DataSource = Newtonsoft.Json.JsonConvert.DeserializeObject(strResult); //库位下拉框 lueLoc.NullText = ""; lueLoc.Columns.Add(new DevExpress.XtraEditors.Controls.LookUpColumnInfo("LOCATION_ID", "库位")); lueLoc.ValueMember = "LOCATION_ID"; lueLoc.DisplayMember = "LOCATION_ID"; lueLocs.NullText = ""; lueLocs.Columns.Add(new DevExpress.XtraEditors.Controls.LookUpColumnInfo("LOCATION_ID", "库位")); lueLocs.ValueMember = "LOCATION_ID"; lueLocs.DisplayMember = "LOCATION_ID"; //单位下拉框 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) { lueUnits.NullText = ""; lueUnits.Columns.Add(new DevExpress.XtraEditors.Controls.LookUpColumnInfo("UNIT_NAME", "单位")); lueUnits.ValueMember = "UNIT"; lueUnits.DisplayMember = "UNIT_NAME"; } } catch (Exception) { SystemCommon.ShowInfoMessageBox("未知错误,请检查网络连接!如仍无法解决问题请联系我们!"); } //新库位下拉框 lueNewLoc.NullText = ""; lueNewLoc.Columns.Add(new DevExpress.XtraEditors.Controls.LookUpColumnInfo("LOCATION_ID", "新库位")); lueNewLoc.ValueMember = "LOCATION_ID"; lueNewLoc.DisplayMember = "LOCATION_ID"; bindGrid(moveLocModel);//绑定数据 //ClearGoodsGrid();//绑定商品列表数据 bsMoveLocEdit.DataSource = moveLocModel;//绑定选中的通知单 FrmSelectModle = new MoveLocModel();//通用查询 } /// /// 得到与登录用户同部门的所有用户 /// public DataTable getSameDepUserList() { string errText = string.Empty; DataTable strResult = new DataTable(); try { strResult = IBussFactory.Instance().GetSameDepUserInfo(userData.USER_ID); return strResult; } catch (Exception) { SystemCommon.ShowInfoMessageBox("未知错误,请检查网络连接!如仍无法解决问题请联系我们!"); } return null; } public static FrmMoveLoc getInstance() { if (frmMoveLoc == null || frmMoveLoc.IsDisposed) { frmMoveLoc = new FrmMoveLoc(); } return frmMoveLoc; } #endregion #region 绑定数据 /// /// 整体绑定数据 /// private void bindGrid(MoveLocModel model) { string errText = string.Empty; //整体绑定数据 string strResult = string.Empty; new Thread(delegate() { try { listmoveLocModel = IBussFactory.Instance().GetMoveLocList(model); if (errText != string.Empty) { SystemCommon.ShowInfoMessageBox(errText); } } catch (Exception) { SystemCommon.ShowInfoMessageBox("未知错误,请检查网络连接!如仍无法解决问题请联系我们!"); } this.Invoke(new MethodInvoker(delegate() { if (errText == string.Empty) { if (listmoveLocModel.Count > 0) { if (string.IsNullOrEmpty(moveLocModel.MOVELOC_ID)) { moveLocModel = listmoveLocModel[0]; } //lueStorage.Properties.KeyValue = moveLocModel.STORAGE_ID; //lueStorage_EditValueChanged(null, null); bsMoveLocEdit.DataSource = moveLocModel; } else { moveLocModel = new MoveLocModel(); //SystemCommon.ShowInfoMessageBox("未找到移位单"); } bindMoveLocTab(moveLocModel); bsMoveLoc.DataSource = listmoveLocModel; GVMoveLoc.RefreshData(); if (frmButtonItem.ContainsKey("Save")) { frmButtonItem["Save"].Enabled = false; } if (frmButtonItem.ContainsKey("Remark")) { frmButtonItem["Remark"].Enabled = false; } if (frmButtonItem.ContainsKey("Del")) { frmButtonItem["Del"].Enabled = false; } if (frmButtonItem.ContainsKey("AddTab")) { frmButtonItem["AddTab"].Enabled = false; } if (frmButtonItem.ContainsKey("ChooseGoods")) { frmButtonItem["ChooseGoods"].Enabled = false; } //frmButtonItem["choose"].Enabled = false; } })); }).Start(); } /// /// 绑定明细 /// /// public void bindMoveLocTab(MoveLocModel moveLocModel) { string errText = string.Empty; listMoveLocTabModel = new List(); MoveLocTabModel queryTab = new MoveLocTabModel(); queryTab.MOVELOC_ID = moveLocModel.MOVELOC_ID; if (moveLocModel.STATE == "2" || moveLocModel.STATE == "3") { queryTab.SORT = 1; } string strMoveLocTabList = string.Empty; try { // listMoveLocTabModel = IBussFactory.Instance().GetMoveLocList(queryTab); } catch (Exception) { SystemCommon.ShowInfoMessageBox("未知错误,请检查网络连接!如仍无法解决问题请联系我们!"); } if (errText == string.Empty) { #region 校正库存数量 BindMIStock(); foreach (var item in listMoveLocTabModel) { if (string.IsNullOrEmpty(item.GOODS_ID) || string.IsNullOrEmpty(item.OLD_LOC_ID) || string.IsNullOrEmpty(item.PUTIN_ID) || string.IsNullOrEmpty(moveLocModel.AREA_ID)) { continue; } MIStockModel mi = MIStockList.Find(p => p.GOODS_ID == item.GOODS_ID && p.LOCATION_ID == item.OLD_LOC_ID && p.PUTIN_ID == item.PUTIN_ID && p.AREA_ID == moveLocModel.AREA_ID); if (mi != null) { item.LOC_NUM = mi.ABLE_NUM + item.PLAN_NUM; } List listM = MIStockList.FindAll(p => p.GOODS_ID == item.GOODS_ID && p.AREA_ID == moveLocModel.AREA_ID); decimal sum = 0; foreach (var m in listM) { sum += m.ABLE_NUM; } item.MISTOCK_NUM = sum + item.PLAN_NUM; } #endregion bsMoveLocTab.DataSource = listMoveLocTabModel; GVMoveLocTab.RefreshData(); //xtraTabControl1.SelectedTabPageIndex = 0; //if (frmButtonItem.ContainsKey("Search")) { frmButtonItem["Search"].Enabled = true;} //if (frmButtonItem.ContainsKey("Add")) { frmButtonItem["Add"].Enabled = true;} //if (frmButtonItem.ContainsKey("Edit")) { frmButtonItem["Edit"].Enabled = true; } //if (frmButtonItem.ContainsKey("Finish")) { frmButtonItem["Finish"].Enabled = true;} //if (frmButtonItem.ContainsKey("Close")) { frmButtonItem["Close"].Enabled = true;} //if (frmButtonItem.ContainsKey("Confirm")) { frmButtonItem["Confirm"].Enabled = true;} xtraTabPage2.Text = "移位商品明细-" + moveLocModel.MOVELOC_ID; } else { SystemCommon.ShowInfoMessageBox(errText); } } /// /// 条件查询 /// /// /// public override void Search() { xtraTabControl1.Focus(); if (!string.IsNullOrEmpty(moveLocModel.STATE) && decimal.Parse(moveLocModel.STATE) >= 2)//如果已完成、关闭 变背景色、禁止修改 { if (frmButtonItem.ContainsKey("Add")) { frmButtonItem["Add"].Enabled = false; } if (frmButtonItem.ContainsKey("Print")) { frmButtonItem["Print"].Enabled = false; } if (frmButtonItem.ContainsKey("Edit")) { frmButtonItem["Edit"].Enabled = false; } if (frmButtonItem.ContainsKey("Close")) { frmButtonItem["Close"].Enabled = false;} if (frmButtonItem.ContainsKey("Confirm")) { frmButtonItem["Confirm"].Enabled = false;} if (frmButtonItem.ContainsKey("Finish")) { frmButtonItem["Finish"].Enabled = false;} GVMoveLoc.Appearance.Row.BackColor = Color.FromArgb(190, 180, 160); GVMoveLoc.Appearance.EvenRow.BackColor = Color.FromArgb(190, 180, 160); } else { if (frmButtonItem.ContainsKey("Add")) { frmButtonItem["Add"].Enabled = true;} if (frmButtonItem.ContainsKey("Edit")) { frmButtonItem["Edit"].Enabled = true; } if (frmButtonItem.ContainsKey("Print")) { frmButtonItem["Print"].Enabled = true; } if (frmButtonItem.ContainsKey("Close")) { frmButtonItem["Close"].Enabled = true;} if (frmButtonItem.ContainsKey("Confirm")) { frmButtonItem["Confirm"].Enabled = true;} if (frmButtonItem.ContainsKey("Finish")) { frmButtonItem["Finish"].Enabled = true;} GVMoveLoc.Appearance.Row.BackColor = Color.White; GVMoveLoc.Appearance.EvenRow.BackColor = Color.White; } bindGrid(moveLocModel); GVMoveLoc_FocusedRowChanged(null, null); } /// /// Tab页改,改通用查询Model /// /// /// private void xtraTabControl1_SelectedPageChanged(object sender, DevExpress.XtraTab.TabPageChangedEventArgs e) { if (xtraTabControl1.SelectedTabPageIndex == 0) { FrmSelectModle = new MoveLocModel(); if (flag == 0 || flag == 1) { //frmButtonItem["choose"].Enabled = true; if (frmButtonItem.ContainsKey("Del")) { frmButtonItem["Del"].Enabled =false;} if (frmButtonItem.ContainsKey("AddTab")) { frmButtonItem["AddTab"].Enabled = false;} } } else if (xtraTabControl1.SelectedTabPageIndex == 1) { FrmSelectModle = new MoveLocTabModel(); if (flag == 0 || flag == 1) { //frmButtonItem["choose"].Enabled = false; if (frmButtonItem.ContainsKey("Del")) { frmButtonItem["Del"].Enabled = true;} if (frmButtonItem.ContainsKey("AddTab")) { frmButtonItem["AddTab"].Enabled = true;} } } else { if (flag == 0 || flag == 1) { //frmButtonItem["choose"].Enabled = true; if (frmButtonItem.ContainsKey("Del")) { frmButtonItem["Del"].Enabled =false;} if (frmButtonItem.ContainsKey("AddTab")) { frmButtonItem["AddTab"].Enabled = false;} } } } /// /// 通用查询 /// /// public override void LoadListData(DataTable table) { if (xtraTabControl1.SelectedTabPageIndex == 0) { listmoveLocModel = ConvertHelper.ConvertToList(table); bsMoveLoc.DataSource = listmoveLocModel; GVMoveLoc.RefreshData(); } else { listMoveLocTabModel = ConvertHelper.ConvertToList(table); bsMoveLocTab.DataSource = listMoveLocTabModel; GVMoveLocTab.RefreshData(); } } private decimal oldPlan = 0;//改变前的值 private string oldLoc = string.Empty;//改变前的值 private string unit = string.Empty;//记录原单位 /// /// 计划数量改变 若未超出该库区现有数量 生成原库位 ; 新库位改变 判断是否有原库位存在,若存在 报错 /// /// /// private void GVMoveLocTab_CellValueChanged(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e) { if (e.RowHandle < 0) { return; } MoveLocTabModel model = GVMoveLocTab.GetFocusedRow() as MoveLocTabModel;// listMoveLocTabModel[e.RowHandle]; if (e.Column.Name == "colPLAN_NUM")//计划数量改变 若未超出该库区现有数量 生成原库位 { decimal plan = Convert.ToDecimal(GVMoveLocTab.GetFocusedRowCellValue("PLAN_NUM")); string goodsID = GVMoveLocTab.GetFocusedRowCellValue("GOODS_ID").ToString(); //decimal max = 0; //string maxLoc = string.Empty; //MIStockModel maxMIStock = new MIStockModel(); if (plan > decimal.Parse(GVMoveLocTab.GetFocusedRowCellValue("LOC_NUM").ToString())) { model.PLAN_NUM = oldPlan; oldPlan = 0; SystemCommon.ShowInfoMessageBox("当前库位本批次库存数不满足"); return; } if (oldPlan > 0) {//若修改计划数 //string oldLocID = GVMoveLocTab.GetFocusedRowCellValue("OLD_LOC_ID").ToString(); //foreach (MIStockModel item in MIStockList) //{ // if (item.LOCATION_ID == oldLocID && item.GOODS_ID == goodsID) // { // //p转为标准单位的数量 // decimal p = oldPlan - plan; // BindUnit(); // DataTable unitTable = lueUnits.Properties.DataSource as DataTable; // foreach (DataRow row in unitTable.Rows) // { // if (row[0].ToString() == model.UNIT) // { // decimal temp = decimal.Parse(row[2].ToString()); // if (p != 0 && temp > 0) // { // p = p / temp; // } // } // } // decimal t = item.ABLE_NUM + p; // if (t < 0) // { // model.PLAN_NUM = oldPlan; // oldPlan = 0; // SystemCommon.ShowInfoMessageBox("当前库位本批次库存数不满足"); // return; // } // item.ABLE_NUM = t; // } //} } else if (oldPlan == 0) {//若原本为0 //foreach (MIStockModel item in MIStockList) //{ // if (item.GOODS_ID == goodsID) // { // //total += Convert.ToDecimal(item.ABLE_NUM); // if (item.ABLE_NUM > max) // { // max = Convert.ToDecimal(item.ABLE_NUM); // maxLoc = item.LOCATION_ID; // maxMIStock = item; // } // } //} if (plan > model.MISTOCK_NUM) {//若超出该库区现有数量 model.PLAN_NUM = oldPlan; oldPlan = 0; SystemCommon.ShowInfoMessageBox("计划数量超出该库区现有数量,请重新输入"); return; } ////plan转为标准单位的数量 //BindUnit(); //DataTable unitTable = lueUnits.Properties.DataSource as DataTable; //decimal truePlan = plan; //foreach (DataRow row in unitTable.Rows) //{ // if (row[0].ToString() == model.UNIT) // { // decimal temp = decimal.Parse(row[2].ToString()); // if (plan > 0 && temp > 0) // { // plan = plan / temp; // } // } //} //if (plan > max)//需从多个库位移动 一个原库位不够 //{ // MoveLocTabModel m = new MoveLocTabModel(); // m.GOODS_ID = model.GOODS_ID; // m.GOODS_NAME = model.GOODS_NAME; // m.MOVELOC_ID = model.MOVELOC_ID; // //m.MOVELOC_TAB_ID = model.MOVELOC_TAB_ID; // m.NEW_LOC_ID = model.NEW_LOC_ID; // m.MISTOCK_NUM = model.MISTOCK_NUM; // m.UNIT = model.UNIT; // m.PRICE = model.PRICE; // m.SCALE_UNIT = model.SCALE_UNIT; // //max转为所选单位的数量 // foreach (DataRow row in unitTable.Rows) // { // if (row[0].ToString() == model.UNIT) // { // decimal temp = decimal.Parse(row[2].ToString()); // if (max > 0 && temp > 0) // { // max = max * temp; // } // } // } // model.PLAN_NUM = max; // model.OLD_LOC_ID = maxLoc; // maxMIStock.ABLE_NUM -= max; // decimal t = 0; // foreach (MIStockModel i in MIStockList) // { // if (i.GOODS_ID == model.GOODS_ID) // { // t += Convert.ToDecimal(i.ABLE_NUM); // } // } // if (t > 0) { // listMoveLocTabModel.Insert(e.RowHandle + 1, m); // bsMoveLocTab.DataSource = listMoveLocTabModel; // GVMoveLocTab.RefreshData(); // SystemCommon.ShowInfoMessageBox("要移动" + truePlan + "个商品,一个批次的库位无法满足要求"); // } // ////新加的一个原库位 // //m.PLAN_NUM = plan - max; //} //else //{ // foreach (MIStockModel item in MIStockList) // { // if (item.GOODS_ID == goodsID) // { // if (plan <= item.ABLE_NUM) // { // model.OLD_LOC_ID = item.LOCATION_ID;//从该库位移动 // item.ABLE_NUM -= plan; // break; // } // } // } //} } if (!string.IsNullOrEmpty(model.NEW_LOC_ID)) { //判断库位容积是否充足 bool planNum = false; planNum = ChargeLoc(model); if (planNum) { if (DialogResult.No == SystemCommon.ShowMessageBoxResult("所选新库位剩余容积不足,确定放" + model.PLAN_NUM + "个吗")) { model.PLAN_NUM = oldPlan; } } } } if (e.Column.Name == "colNEW_LOC_ID") { if (model.PLAN_NUM != 0) { //判断库位容积是否充足 bool planNum = false; planNum = ChargeLoc(model); if (planNum) { if (DialogResult.No == SystemCommon.ShowMessageBoxResult("所选新库位剩余容积不足,确定放到该库位吗")) { model.NEW_LOC_ID = oldLoc; } } } } if (e.Column.Name == "colUNIT") { DataTable dt = lueUnits.DataSource as DataTable; decimal oldUnit = 0; decimal newUnit = 0; foreach (DataRow row in dt.Rows) { if (row[0].ToString() == unit) { oldUnit = decimal.Parse(row[2].ToString()); } if (row[0].ToString() == GVMoveLocTab.GetFocusedRowCellValue("UNIT").ToString()) { newUnit = decimal.Parse(row[2].ToString()); } } foreach (MoveLocTabModel item in listMoveLocTabModel) { if (item.GOODS_ID == model.GOODS_ID) { if (item.MISTOCK_NUM != 0 && oldUnit != 0) { item.MISTOCK_NUM = item.MISTOCK_NUM / oldUnit * newUnit; } if (item.LOC_NUM != 0 && oldUnit != 0) { item.LOC_NUM = item.LOC_NUM / oldUnit * newUnit; } if (item.PLAN_NUM != 0 && oldUnit != 0) { item.PLAN_NUM = item.PLAN_NUM / oldUnit * newUnit; } if (item.REAL_NUM != 0 && oldUnit != 0) { item.REAL_NUM = item.REAL_NUM / oldUnit * newUnit; } item.UNIT = GVMoveLocTab.GetFocusedRowCellValue("UNIT").ToString(); } } GVMoveLocTab.RefreshData(); } } /// /// 计划数量将要改变 将改变前的值记录 /// /// /// private void GVMoveLocTab_CellValueChanging(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e) { if (e.RowHandle < 0) { return; } if (e.Column.Name == "colPLAN_NUM")//计划数量改变 { oldPlan = Convert.ToDecimal(GVMoveLocTab.GetFocusedRowCellValue("PLAN_NUM")); } if (e.Column.Name == "colNEW_LOC_ID")//新库位改变 { if (GVMoveLocTab.GetFocusedRowCellValue("NEW_LOC_ID") == null) { oldLoc = string.Empty; } else { oldLoc = GVMoveLocTab.GetFocusedRowCellValue("NEW_LOC_ID").ToString(); } } if (GVMoveLocTab.GetFocusedRowCellValue("UNIT") != null) { unit = GVMoveLocTab.GetFocusedRowCellValue("UNIT").ToString(); } } #region 改变仓库 库区变 库区变后 商品列表变、 新库位变 /// /// 改变仓库后 库区只显示该仓库的所有库区 /// /// /// private void lueStorage_EditValueChanged(object sender, EventArgs e) { //!string.IsNullOrEmpty(lueStorage.Properties.ValueMember) && if (lueStorage.Properties.KeyMember != null && !string.IsNullOrEmpty(lueStorage.Properties.KeyMember.ToString())) { //绑定库区数据 string errText = string.Empty; StorageAreaModel storageAreaModel = new StorageAreaModel(); storageAreaModel.STORAGE_ID = lueStorage.Properties.KeyMember.ToString(); List dctModel = new List(); try { dctModel = IBussFactory.Instance().GetAreaInfoDS(storageAreaModel); if(dctModel!=null) { lueArea.Properties.DataSource = dctModel; } } catch (Exception) { SystemCommon.ShowInfoMessageBox("未知错误,请检查网络连接!如仍无法解决问题请联系我们!"); } } } private void BindMIStock() { /*获取某一库区的所有商品*/ string errText = string.Empty; string strResult = string.Empty; string strResult2 = string.Empty; MIStockModel MIStockModel = new MIStockModel(); MIStockModel.AREA_ID = moveLocModel.AREA_ID;// lueArea.Properties.KeyValue.ToString(); try { MIStockList = IBussFactory.Instance().GetMIStockList(MIStockModel); //strResult2 = WebLockConfig.Instance.WebMIStock.GetGoodsListByMIStock(strParameter, ref errText); } catch (Exception) { SystemCommon.ShowInfoMessageBox("未知错误,请检查网络连接!如仍无法解决问题请联系我们!"); } if (errText == string.Empty) { if (strResult != null) { MIStockList.RemoveAll(p => p.SHELVES_NUM == 0); } else { MIStockList = new List(); } //listJWGoodsInfoModel = Newtonsoft.Json.JsonConvert.DeserializeObject>(strResult2);//绑定商品数据 //bsGoodsInfo.DataSource = listJWGoodsInfoModel; //GVGoodsInfo.RefreshData(); } else { SystemCommon.ShowInfoMessageBox(errText); } } string area = string.Empty; /// /// 库区改变后,改变商品列表 改变新库位 /// /// /// private void lueArea_EditValueChanged(object sender, EventArgs e) { if (lueArea.Properties.KeyMember != null && !string.IsNullOrEmpty(lueArea.Properties.KeyMember.ToString()) && (area != lueArea.Properties.KeyMember.ToString())) { moveLocModel.AREA_ID = lueArea.Properties.KeyMember.ToString(); BindMIStock(); /*改变商品选择条件*/ ctrlDicGoods.SqlStr = "where goods_id in (select goods_id from t_mi_stock where AREA_ID = '" + moveLocModel.AREA_ID + "' and SHELVES_NUM-OCCUPY_NUM != '0')"; dicMove.SqlStr = " left join T_BASE_USERAREA on t_Base_UserInfo.user_id = T_BASE_USERAREA.user_id where T_BASE_USERAREA.WORKKIND_ID = 3 and AREA_ID = '" + moveLocModel.AREA_ID + "'"; /*改变新库位*/ //ctrlDicLoc.SqlStr = "where STORAGE_AREA_ID = '" + lueArea.Properties.KeyValue.ToString() + "'"; ////status ='0' and string errText = string.Empty; List locAreaList = new List(); List listStorageAreaLocationModel = new List(); StorageAreaLocationModel storageAreaLocationModel = new StorageAreaLocationModel(); storageAreaLocationModel.STORAGE_AREA_ID = lueArea.Properties.KeyMember.ToString(); storageAreaLocationModel.STATUS = "0"; try { List strResult = IBussFactory.Instance().GetLocationInfoDS(storageAreaLocationModel, ref locAreaList);//查询 if(strResult!=null) { lueLoc.DataSource = strResult;// Newtonsoft.Json.JsonConvert.DeserializeObject(strResult); lueNewLoc.DataSource = strResult;// Newtonsoft.Json.JsonConvert.DeserializeObject(strResult); } listMoveLocTabModel = new List(); bsMoveLocTab.DataSource = listMoveLocTabModel; GVMoveLocTab.RefreshData(); } catch (Exception) { SystemCommon.ShowInfoMessageBox("未知错误,请检查网络连接!如仍无法解决问题请联系我们!"); } } } /// /// 库区将改变 记录值 /// /// /// private void lueArea_EditValueChanging(object sender, DevExpress.XtraEditors.Controls.ChangingEventArgs e) { area = lueArea.Properties.KeyMember.ToString(); } #endregion #endregion #region 按钮事件 /// /// 增加按钮 /// public override void Add() { flag = 0;//标识增加 //GVMoveLocTab.OptionsBehavior.Editable = true;//明细可编辑 colNEW_LOC_ID.OptionsColumn.AllowEdit = true; colPLAN_NUM.OptionsColumn.AllowEdit = true; colREAL_NUM.OptionsColumn.AllowEdit = true; colUNIT.OptionsColumn.AllowEdit = true; //ctrlDicLoc.Enabled = true; xtraTabPage2.Text = "移位单明细"; xtraTabControl1.SelectedTabPageIndex = 0;//先填写通知单 txtID.Enabled = false;//编号不可用 lueState.Enabled = false;//状态不可用 dicConfirm.Enabled = false;//审核人不可用 deConfirmDate.Enabled = false; moveLocModel = new MoveLocModel();//清空通知单 moveLocModel.CREATE_TIME = System.DateTime.Now; bsMoveLocEdit.DataSource = moveLocModel; dicCreate.TextBoxFlag = null; dicCreate.TextBoxValue = null; dicConfirm.TextBoxFlag = null; dicConfirm.TextBoxValue = null; dicMove.TextBoxFlag = null; dicMove.TextBoxValue = null; listMoveLocTabModel = new List();//清空明细 bsMoveLocTab.DataSource = listMoveLocTabModel; GVMoveLocTab.RefreshData(); //GVGoodsInfo.OptionsBehavior.Editable = true; //ctrlDicGoods.Enabled = true; if (frmButtonItem.ContainsKey("ChooseGoods")) { frmButtonItem["ChooseGoods"].Enabled = true; } ctrlDicGoods.SqlStr = "where 0 = 1"; //ctrlDicLoc.SqlStr = "where 0 = 1"; lueArea.Properties.DataSource = new DataTable(); //状态默认未审核 moveLocModel.STATE = "0"; lueState.Properties.KeyMember = "0"; //创建人默认当前用户 moveLocModel.CREATE_PERSON = userData.USER_ID; dicCreate.TextBoxFlag = userData.USER_ID; dicCreate.TextBoxValue = userData.NAME; //时间默认当前时间 moveLocModel.CREATE_TIME = DateTime.Now; deCreateDate.DateTime = DateTime.Now; moveLocModel.CONFIRM_TIME = DateTime.Now; deConfirmDate.DateTime = DateTime.Now; moveLocModel.MOVE_TIME = DateTime.Now; deMoveDate.DateTime = DateTime.Now; //仓库默认登录人所在仓库 moveLocModel.STORAGE_ID = (lueStorage.Properties.DataSource as List)[0].STORAGE_ID; lueStorage.EditValue = moveLocModel.STORAGE_ID; if (frmButtonItem.ContainsKey("Search")) { frmButtonItem["Search"].Enabled = false;} if (frmButtonItem.ContainsKey("Add")) { frmButtonItem["Add"].Enabled = false; } if (frmButtonItem.ContainsKey("Print")) { frmButtonItem["Print"].Enabled = false; } if (frmButtonItem.ContainsKey("Edit")) { frmButtonItem["Edit"].Enabled = false; } if (frmButtonItem.ContainsKey("Finish")) { frmButtonItem["Finish"].Enabled = false;} if (frmButtonItem.ContainsKey("Close")) { frmButtonItem["Close"].Enabled = false;} if (frmButtonItem.ContainsKey("Confirm")) { frmButtonItem["Confirm"].Enabled = false;} if (frmButtonItem.ContainsKey("Clear")) { frmButtonItem["Clear"].Enabled = false;} if (frmButtonItem.ContainsKey("Save")) { frmButtonItem["Save"].Enabled = true; } if (frmButtonItem.ContainsKey("Remark")) { frmButtonItem["Remark"].Enabled = true; } //frmButtonItem["choose"].Enabled = true; listSKU = new List(); } /// /// 编辑按钮 /// public override void Edit() { if (!frmButtonItem.ContainsKey("Edit")) { return; } else if (frmButtonItem["Edit"].Enabled == false) { return; } if (isSKU) { //SKUTabModel querySKUTab = new SKUTabModel(); //querySKUTab.DOCCTNUMBER = moveLocModel.MOVELOC_ID; //string strResult = string.Empty; //string strParameter = Newtonsoft.Json.JsonConvert.SerializeObject(querySKUTab); //try //{ // strResult = WebLockConfig.Instance.WebSKUTab.GetSKUTab(strParameter); // listSKU = Newtonsoft.Json.JsonConvert.DeserializeObject>(strResult); //} //catch (Exception) //{ // SystemCommon.ShowInfoMessageBox("未知错误,请检查网络连接!如仍无法解决问题请联系我们!"); //} } flag = 1;//标识修改 //GVMoveLocTab.OptionsBehavior.Editable = true;//明细可编辑 //ctrlDicLoc.Enabled = true; //GVGoodsInfo.OptionsBehavior.Editable = true; //ctrlDicGoods.Enabled = true; //ctrlDicLoc.SqlStr = "where 0 = 1"; //lueArea.Properties.DataSource = new DataTable(); if (moveLocModel.STATE == "1") { foreach (Control item in panelControl1.Controls) { item.Enabled = false; } txtRemark.Enabled = true; dicMove.Enabled = true; deMoveDate.Enabled = true; lueType.Enabled = true; colNEW_LOC_ID.OptionsColumn.AllowEdit = false; colPLAN_NUM.OptionsColumn.AllowEdit = false; colREAL_NUM.OptionsColumn.AllowEdit = false; colUNIT.OptionsColumn.AllowEdit = false; if (frmButtonItem.ContainsKey("ChooseGoods")) { frmButtonItem["ChooseGoods"].Enabled = false; } } else { txtID.Enabled = false;//编号不可用 lueState.Enabled = false;//状态不可用 dicConfirm.Enabled = false;//审核人不可用 deConfirmDate.Enabled = false; dicCreate.Enabled = false; deCreateDate.Enabled = false; colNEW_LOC_ID.OptionsColumn.AllowEdit = true; colPLAN_NUM.OptionsColumn.AllowEdit = true; colREAL_NUM.OptionsColumn.AllowEdit = true; colUNIT.OptionsColumn.AllowEdit = true; if (frmButtonItem.ContainsKey("ChooseGoods")) { frmButtonItem["ChooseGoods"].Enabled = true; } ctrlDicGoods.SqlStr = "where 0 = 1"; } if (frmButtonItem.ContainsKey("Search")) { frmButtonItem["Search"].Enabled = false;} if (frmButtonItem.ContainsKey("Add")) { frmButtonItem["Add"].Enabled = false; } if (frmButtonItem.ContainsKey("Print")) { frmButtonItem["Print"].Enabled = false; } if (frmButtonItem.ContainsKey("Edit")) { frmButtonItem["Edit"].Enabled = false; } if (frmButtonItem.ContainsKey("Finish")) { frmButtonItem["Finish"].Enabled = false;} if (frmButtonItem.ContainsKey("Close")) { frmButtonItem["Close"].Enabled = false;} if (frmButtonItem.ContainsKey("Confirm")) { frmButtonItem["Confirm"].Enabled = false;} if (frmButtonItem.ContainsKey("Clear")) { frmButtonItem["Clear"].Enabled = false;} if (frmButtonItem.ContainsKey("Save")) { frmButtonItem["Save"].Enabled = true; } if (frmButtonItem.ContainsKey("Remark")) { frmButtonItem["Remark"].Enabled = true; } //frmButtonItem["choose"].Enabled = true; } /// /// 完成按钮 /// public void Finish() { if (moveLocModel.STATE != "1") { SystemCommon.ShowInfoMessageBox("只有状态为已审核的移位单才可以被完成"); return; } flag = 2;//标识完成 foreach (Control item in panelControl1.Controls) { item.Enabled = false; } txtRemark.Enabled = true; //dicMove.Enabled = true; deMoveDate.Enabled = true; lueType.Enabled = true; moveLocModel.STATE = "2"; lueState.Properties.KeyMember = "2"; moveLocModel.MOVE_PERSON = userData.USER_ID; dicMove.TextBoxFlag = userData.USER_ID; dicMove.TextBoxValue = userData.NAME; moveLocModel.MOVE_TIME = System.DateTime.Now; deMoveDate.DateTime = System.DateTime.Now; //GVMoveLocTab.OptionsBehavior.Editable = true;//明细可编辑 colNEW_LOC_ID.OptionsColumn.AllowEdit = true; //colPLAN_NUM.OptionsColumn.AllowEdit = true; colREAL_NUM.OptionsColumn.AllowEdit = true; colUNIT.OptionsColumn.AllowEdit = true; //ctrlDicLoc.Enabled = true; colPLAN_NUM.OptionsColumn.AllowEdit = false; //colNEW_LOC_ID.OptionsColumn.AllowEdit = false; if (frmButtonItem.ContainsKey("Search")) { frmButtonItem["Search"].Enabled = false;} if (frmButtonItem.ContainsKey("Add")) { frmButtonItem["Add"].Enabled = false; } if (frmButtonItem.ContainsKey("Print")) { frmButtonItem["Print"].Enabled = false; } if (frmButtonItem.ContainsKey("Edit")) { frmButtonItem["Edit"].Enabled = false; } if (frmButtonItem.ContainsKey("Finish")) { frmButtonItem["Finish"].Enabled = false;} if (frmButtonItem.ContainsKey("Close")) { frmButtonItem["Close"].Enabled = false;} if (frmButtonItem.ContainsKey("Confirm")) { frmButtonItem["Confirm"].Enabled = false;} if (frmButtonItem.ContainsKey("Clear")) { frmButtonItem["Clear"].Enabled = false;} if (frmButtonItem.ContainsKey("Save")) { frmButtonItem["Save"].Enabled = true; } if (frmButtonItem.ContainsKey("Remark")) { frmButtonItem["Remark"].Enabled = true; } //frmButtonItem["choose"].Enabled = true; } /// /// 刷新按钮 /// public override void Refresh() { if (frmButtonItem.ContainsKey("Save") && frmButtonItem["Save"].Enabled == true && DialogResult.OK != SystemCommon.ShowMessageBoxResult("确定放弃正在编辑的数据?")) { return; } flag = -1;//标识为非增加非修改 ctrlDicGoods.SqlStr = "where 0 = 1"; //ctrlDicLoc.SqlStr = "where 0 = 1"; string ID = string.Empty; ID = moveLocModel.MOVELOC_ID; moveLocModel = new MoveLocModel(); bindGrid(moveLocModel);//刷新数据 xtraTabControl1.SelectedTabPageIndex = 0;//到移位单页 foreach (Control item in panelControl1.Controls) { item.Enabled = true; } //GVMoveLocTab.OptionsBehavior.Editable = false;//明细可编辑 colNEW_LOC_ID.OptionsColumn.AllowEdit = false; colPLAN_NUM.OptionsColumn.AllowEdit = false; colREAL_NUM.OptionsColumn.AllowEdit = false; colUNIT.OptionsColumn.AllowEdit = false; //ctrlDicLoc.Enabled = false; //ctrlDicLoc.TextBoxValue = null; //GVGoodsInfo.OptionsBehavior.Editable = false; //ctrlDicGoods.Enabled = false; if (frmButtonItem.ContainsKey("ChooseGoods")) { frmButtonItem["ChooseGoods"].Enabled = false; } ctrlDicGoods.TextBoxValue = null; colPLAN_NUM.OptionsColumn.AllowEdit = true; //colNEW_LOC_ID.OptionsColumn.AllowEdit = true; //lueStorage_EditValueChanged(null, null); //ClearGoodsGrid(); if (frmButtonItem.ContainsKey("Search")) { frmButtonItem["Search"].Enabled = true;} if (frmButtonItem.ContainsKey("Add")) { frmButtonItem["Add"].Enabled = true; } if (frmButtonItem.ContainsKey("Print")) { frmButtonItem["Print"].Enabled = true; } if (frmButtonItem.ContainsKey("Edit")) { frmButtonItem["Edit"].Enabled = true; } if (frmButtonItem.ContainsKey("Finish")) { frmButtonItem["Finish"].Enabled = true;} if (frmButtonItem.ContainsKey("Close")) { frmButtonItem["Close"].Enabled = true;} if (frmButtonItem.ContainsKey("Confirm")) { frmButtonItem["Confirm"].Enabled = true;} if (frmButtonItem.ContainsKey("Clear")) { frmButtonItem["Clear"].Enabled = true;} GVMoveLoc.Appearance.Row.BackColor = Color.White; GVMoveLoc.Appearance.EvenRow.BackColor = Color.White; //GVMoveLoc.FocusedRowHandle = 0;//选中行变为第一行(一般刷新GridView后调用) GVMoveLoc.FocusedRowHandle = listmoveLocModel.FindIndex(p => p.MOVELOC_ID == ID); GVMoveLoc_FocusedRowChanged(null, null); } /// /// 增加移位明细 /// public override void AddTab() { if (GVMoveLocTab.FocusedRowHandle < 0) { return; } MoveLocTabModel mltM = listMoveLocTabModel[GVMoveLocTab.FocusedRowHandle]; MoveLocTabModel m = new MoveLocTabModel(); m.GOODS_ID = mltM.GOODS_ID; m.GOODS_NAME = mltM.GOODS_NAME; m.MISTOCK_NUM = mltM.MISTOCK_NUM; m.MOVELOC_ID = mltM.MOVELOC_ID; m.PRICE = mltM.PRICE; m.SCALE_UNIT = mltM.SCALE_UNIT; m.UNIT = mltM.UNIT; listMoveLocTabModel.Insert(GVMoveLocTab.FocusedRowHandle + 1, m); bsMoveLocTab.DataSource = listMoveLocTabModel; GVMoveLocTab.RefreshData(); } /// /// 保存 /// public override void Save() { xtraTabControl1.Focus(); /*验证*/ if (string.IsNullOrEmpty(lueState.Text)) { SystemCommon.ShowInfoMessageBox("请选择状态"); xtraTabControl1.SelectedTabPageIndex = 0; lueState.Focus(); return; } if (string.IsNullOrEmpty(lueStorage.Text)) { SystemCommon.ShowInfoMessageBox("请选择仓库"); xtraTabControl1.SelectedTabPageIndex = 0; lueStorage.Focus(); return; } if (string.IsNullOrEmpty(lueArea.Text)) { SystemCommon.ShowInfoMessageBox("请选择库区"); xtraTabControl1.SelectedTabPageIndex = 0; lueArea.Focus(); return; } if (listMoveLocTabModel.Count > 0) { //验证数量 decimal totalPlanAmount = 0; decimal totalRealAmount = 0; foreach (MoveLocTabModel item in listMoveLocTabModel) { decimal plan_amount = -1; plan_amount = Convert.ToDecimal(item.PLAN_NUM); decimal real_amount = -1; real_amount = Convert.ToDecimal(item.REAL_NUM); if (plan_amount > 0)//如果大于0 { totalPlanAmount += plan_amount;//统计数量 } else { SystemCommon.ShowInfoMessageBox("计划移位数量必须大于0"); xtraTabControl1.SelectedTabPageIndex = 1; GVMoveLocTab.Focus(); return; } //if (flag == 2) { // if (real_amount <= 0){ // SystemCommon.ShowInfoMessageBox("实际移位数量必须大于0"); // xtraTabControl1.SelectedTabPageIndex = 1; // GVMoveLocTab.Focus(); // return; // } //} totalRealAmount += real_amount;//统计数量 } moveLocModel.TOTAL_PLAN_NUM = totalPlanAmount;//总计划数量 moveLocModel.TOTAL_REAL_NUM = totalRealAmount;//总实际数量 } else { SystemCommon.ShowInfoMessageBox("请选择移位商品"); //xtraTabControl1.SelectedTabPageIndex = 2; //GVGoodsInfo.Focus(); return; } moveLocModel.MOVE_PERSON = dicMove.TextBoxFlag; foreach (MoveLocTabModel item in listMoveLocTabModel) { if (string.IsNullOrEmpty(item.NEW_LOC_ID)) { SystemCommon.ShowInfoMessageBox("新库位不能为空"); xtraTabControl1.SelectedTabPageIndex = 1; return; } if (item.NEW_LOC_ID == item.OLD_LOC_ID) { SystemCommon.ShowInfoMessageBox("新库位不能与原库位相同"); xtraTabControl1.SelectedTabPageIndex = 1; return; } if (item.REAL_NUM > item.PLAN_NUM) { SystemCommon.ShowInfoMessageBox("实际移位数不能大于计划"); xtraTabControl1.SelectedTabPageIndex = 1; return; } //if (flag == 2) { //完成状态 实际数必须大于0 // if (item.REAL_NUM <= 0) // { // SystemCommon.ShowInfoMessageBox("实际移位数必须大于0"); // xtraTabControl1.SelectedTabPageIndex = 1; // return; // } //} if (item.NEW_LOC_ID != null && listMoveLocTabModel.FindAll(i => i.GOODS_ID == item.GOODS_ID && i.NEW_LOC_ID == item.NEW_LOC_ID).Count > 1) { SystemCommon.ShowInfoMessageBox("同一商品新库位不能相同"); xtraTabControl1.SelectedTabPageIndex = 1; return; } } if (isSKU) { //判断是否都选了商品规格 数量是否相同 foreach (var item in listMoveLocTabModel) { decimal i = 0; List listSKUTab = listSKU.FindAll(p => p.GOODS_ID == item.GOODS_ID); foreach (var ite in listSKUTab) { i += ite.SKU_NUM; } if (item.PLAN_NUM != i) { SystemCommon.ShowInfoMessageBox("请为"+item.GOODS_NAME+"选择规格"); xtraTabControl1.SelectedTabPageIndex = 1; return; } } } if (flag == 0) { //增加 /*增加*/ string errText = string.Empty; try { errText = IBussFactory.Instance().InsertMoveLocAndTab(moveLocModel, listMoveLocTabModel, listSKU); } catch (Exception) { SystemCommon.ShowInfoMessageBox("未知错误,请检查网络连接!如仍无法解决问题请联系我们!"); } if (string.IsNullOrEmpty(errText))//如果增加成功 { SystemCommon.ShowInfoMessageBox("增加成功" + errText); //GVMoveLocTab.OptionsBehavior.Editable = false;//明细可编辑 colNEW_LOC_ID.OptionsColumn.AllowEdit = false; colPLAN_NUM.OptionsColumn.AllowEdit = false; colREAL_NUM.OptionsColumn.AllowEdit = false; colUNIT.OptionsColumn.AllowEdit = false; //ctrlDicLoc.Enabled = false; if (frmButtonItem.ContainsKey("Save")) { frmButtonItem["Save"].Enabled = false; } Refresh(); } else { SystemCommon.ShowInfoMessageBox("增加失败" + errText); } } else if (flag == 1)//修改 { /*修改*/ string errText = string.Empty; try { errText = IBussFactory.Instance().UpdateMoveLocAndTab(moveLocModel, listMoveLocTabModel, listSKU); } catch (Exception) { SystemCommon.ShowInfoMessageBox("未知错误,请检查网络连接!如仍无法解决问题请联系我们!"); } if (string.IsNullOrEmpty(errText))//如果修改成功 { SystemCommon.ShowInfoMessageBox("修改成功"); //GVMoveLocTab.OptionsBehavior.Editable = false;//明细可编辑 colNEW_LOC_ID.OptionsColumn.AllowEdit = false; colPLAN_NUM.OptionsColumn.AllowEdit = false; colREAL_NUM.OptionsColumn.AllowEdit = false; colUNIT.OptionsColumn.AllowEdit = false; //ctrlDicLoc.Enabled = false; if (frmButtonItem.ContainsKey("Save")) { frmButtonItem["Save"].Enabled = false; } Refresh(); } else { SystemCommon.ShowInfoMessageBox("修改失败" + errText); } } else if (flag == 2)//完成 { string errText = string.Empty; try { errText =IBussFactory.Instance().UpdateMoveLocAndTab(moveLocModel, listMoveLocTabModel, listSKU); } catch (Exception) { SystemCommon.ShowInfoMessageBox("未知错误,请检查网络连接!如仍无法解决问题请联系我们!"); return; } if (string.IsNullOrEmpty(errText))//如果修改成功 { foreach (Control item in panelControl1.Controls) { item.Enabled = true; } //放到备份表 errText = string.Empty; try { // errText =IBussFactory.Instance().MoveMoveLocAndTabIntoBack(strModel); } catch (Exception) { SystemCommon.ShowInfoMessageBox("未知错误,请检查网络连接!如仍无法解决问题请联系我们!"); return; } if (!string.IsNullOrEmpty(errText)) { SystemCommon.ShowInfoMessageBox("放到备份表失败" + errText); return; } //GVMoveLocTab.OptionsBehavior.Editable = false;//明细可编辑 colNEW_LOC_ID.OptionsColumn.AllowEdit = false; colPLAN_NUM.OptionsColumn.AllowEdit = false; colREAL_NUM.OptionsColumn.AllowEdit = false; colUNIT.OptionsColumn.AllowEdit = false; //ctrlDicLoc.Enabled = false; if (frmButtonItem.ContainsKey("Save")) { frmButtonItem["Save"].Enabled = false; } Refresh(); SystemCommon.ShowInfoMessageBox("完成成功"); } else { SystemCommon.ShowInfoMessageBox("完成失败" + errText); } } } /// /// 关闭按钮,关闭一条移位单 /// public void Close() { if (GVMoveLoc.SelectedRowsCount > 0) { if (DialogResult.OK == SystemCommon.ShowMessageBoxResult("确定关闭")) { moveLocModel.STATE = "3"; string errText = string.Empty; try { errText = IBussFactory.Instance().MoveMoveLocAndTabIntoBack(moveLocModel); } catch (Exception) { SystemCommon.ShowInfoMessageBox("未知错误,请检查网络连接!如仍无法解决问题请联系我们!"); return; } if (!string.IsNullOrEmpty(errText)) { SystemCommon.ShowInfoMessageBox("关闭失败" + errText); return; } else { SystemCommon.ShowInfoMessageBox("关闭成功" + errText); Refresh();//刷新 } } } else { SystemCommon.ShowInfoMessageBox("您未选择移位单"); } } /// /// 删除按钮,删除一条移位单明细 /// public override void Del() { if (GVMoveLocTab.SelectedRowsCount > 0) { if (DialogResult.OK == SystemCommon.ShowMessageBoxResult("确定删除")) { MoveLocTabModel model = new MoveLocTabModel(); model = GVMoveLocTab.GetFocusedRow() as MoveLocTabModel; listMoveLocTabModel.Remove(model); GVMoveLocTab.RefreshData(); } } else { SystemCommon.ShowInfoMessageBox("您未选择移位单明细"); } } /// /// 清空按钮 /// public override void Clear() { moveLocModel = new MoveLocModel(); bsMoveLocEdit.DataSource = moveLocModel; } #region 批量审核 取消审核 /// /// 批量审核 /// /// /// public void Confirm() { xtraTabControl1.Focus(); List listMoveLoc = new List();//将被审核的MoveLoc集合 foreach (MoveLocModel item in listmoveLocModel) { //如果被选中且状态为未审核,则将其状态改为已审核 if (item.IsCheck && item.STATE == "0") { item.STATE = "1"; item.CONFIRM_PERSON = dicConfirm.TextBoxFlag; item.CONFIRM_TIME = System.DateTime.Now; listMoveLoc.Add(item); } } if (listMoveLoc.Count > 0) {//批量审核 if (DialogResult.OK == SystemCommon.ShowMessageBoxResult("审核?")) { foreach (MoveLocModel item in listMoveLoc) { string errText = string.Empty; try { errText= IBussFactory.Instance().UpdateMoveLocState(item);//审核 } catch (Exception) { SystemCommon.ShowInfoMessageBox("未知错误,请检查网络连接!如仍无法解决问题请联系我们!"); } if (!string.IsNullOrEmpty(errText)) { SystemCommon.ShowInfoMessageBox(item.MOVELOC_ID + "审核失败" + errText); } } } Refresh(); } else { SystemCommon.ShowInfoMessageBox("您未勾选任何状态为未审核的移位单"); } } #endregion /// /// 双击明细编辑 /// /// /// private void GVMoveLocTab_DoubleClick(object sender, EventArgs e) { if (flag == -1) { Edit(); } else if (isSKU)//判断是否开启了SKU { // MoveLocTabModel tab = new MoveLocTabModel(); // tab = GVMoveLocTab.GetFocusedRow() as MoveLocTabModel; // FrmSKU frmSKU = new FrmSKU(tab.GOODS_ID, tab.GOODS_NAME, tab.MOVELOC_ID, tab.PLAN_NUM, listSKU.FindAll(p => p.GOODS_ID == tab.GOODS_ID)); // if (frmSKU.ShowDialog() == DialogResult.OK) // { // listSKU.RemoveAll(p=>p.GOODS_ID == tab.GOODS_ID); // listSKU.AddRange(frmSKU.list_SKUTab); // } } } /// /// 双击移位单 /// /// /// private void GVMoveLoc_DoubleClick(object sender, EventArgs e) { xtraTabControl1.SelectedTabPageIndex = 1; } /// /// 选择商品 /// public override void ChooseGoods() { if (string.IsNullOrEmpty(lueArea.Text)) { SystemCommon.ShowInfoMessageBox("请先选择仓库、库区"); return; } ctrlDicGoods.t_dictonary_ButtonClick(null, null); } /// /// 备注 /// public void Remark() { // FrmSelectRemark frmSelectRemark = new FrmSelectRemark(); // frmSelectRemark.remarkType = "库存管理"; // frmSelectRemark.ShowDialog();if (frmSelectRemark.remarkType != "selected") { return; } // txtRemark.Text = frmSelectRemark.baseRemarkDictionaryModel.CONTENT; // txtRemark.ForeColor = System.Drawing.ColorTranslator.FromHtml(frmSelectRemark.baseRemarkDictionaryModel.COLOR_ID); } #endregion #region CheckBox全选的实现:3事件 private void GVMoveLoc_Click(object sender, EventArgs e) { if (DevControlHelper.ClickGridCheckBox(this.GVMoveLoc, "IsCheck", m_status)) { m_status = !m_status; } } private void GVMoveLoc_CustomDrawColumnHeader(object sender, DevExpress.XtraGrid.Views.Grid.ColumnHeaderCustomDrawEventArgs e) { if (e.Column != null && e.Column.FieldName == "IsCheck") { e.Info.InnerElements.Clear(); e.Painter.DrawObject(e.Info); DevControlHelper.DrawCheckBox(e, m_status); e.Handled = true; } } private void GVMoveLoc_DataSourceChanged(object sender, EventArgs e) { GridColumn column = this.GVMoveLoc.Columns.ColumnByFieldName("IsCheck"); if (column != null) { column.Width = 20; column.OptionsColumn.ShowCaption = m_status; column.ColumnEdit = new RepositoryItemCheckEdit(); } } #endregion #region 自定义列显示事件 /// /// 自定义列显示事件 /// /// /// private void GVMoveLoc_CustomColumnDisplayText(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventArgs e) { if (e.Column.FieldName == "STATE") { switch (e.Value.ToString().Trim()) { case "0": e.DisplayText = "未审核"; break; case "1": e.DisplayText = "已审核"; break; case "2": e.DisplayText = "已完成"; break; case "3": e.DisplayText = "已关闭"; break; default: e.DisplayText = ""; break; } } } #endregion #region 判断库位容积是否充足 /// /// /// /// /// true:不充足 false:充足 public bool ChargeLoc(MoveLocTabModel mode) { //plan转为标准单位的数量 BindUnit(); decimal plan = mode.PLAN_NUM; DataTable unitTable = lueUnits.DataSource as DataTable; foreach (DataRow row in unitTable.Rows) { if (row[0].ToString() == mode.UNIT) { decimal temp = decimal.Parse(row[2].ToString()); if (plan > 0 && temp > 0) { plan = plan / temp; } } } //查询该明细商品的单位体积 decimal perVolu = 0; decimal planVolu = 0; decimal locVolu = 0; JWGoodsInfoModel goods = new JWGoodsInfoModel(); goods = IBussFactory.Instance().GetGoodsList(mode.GOODS_ID, "", "", "")[0]; if (goods != null) { //perVolu = goods.GVOLUME; //计算调整后的占用体积 planVolu = mode.PLAN_NUM * perVolu; } //查询该明细库位的容积 StorageAreaLocationModel loc = new StorageAreaLocationModel(); loc.LOCATION_ID = mode.NEW_LOC_ID; loc.STORAGE_ID = moveLocModel.STORAGE_ID; string errText = string.Empty; List lis = IBussFactory.Instance().GetLocationInfoDS(loc ); if (lis != null) { if (lis.Count > 0) { loc = lis[0]; locVolu = loc.VOLUME - loc.HASVOLUME; //比较 if (locVolu >= planVolu) { return false; } else { return true; } } } return false; } #endregion private void BindUnit() { MoveLocTabModel moveLocTabModel = new MoveLocTabModel(); moveLocTabModel = GVMoveLocTab.GetFocusedRow() as MoveLocTabModel; if (moveLocTabModel != null && moveLocTabModel.GOODS_ID != null) { DataTable strResult = new DataTable(); strResult = IBussFactory.Instance().GetGoodsUnit(moveLocTabModel.GOODS_ID); if(strResult!=null) { lueUnits.DataSource = strResult; } } } #region 商品选择 /// /// 商品选择 /// /// /// private void ctrlDicGoods_Button_Click_1(object sender, EventArgs e) { if (ctrlDicGoods.SelectTable.Rows.Count == 0) { //SystemCommon.ShowInfoMessageBox("您未选择商品!"); return; } //商品集合 List listJWGoodsInfoModel = ConvertHelper.ConvertToList(ctrlDicGoods.SelectTable); /*将选择的商品加入移位商品明细*/ foreach (JWGoodsInfoModel item in listJWGoodsInfoModel) { MoveLocTabModel model = new MoveLocTabModel(); //model.GOODS_ID = item.GOODS_ID; //model.GOODS_NAME = item.GOODS_NAME; //model.UNIT = item.UNIT; //model.PRICE = item.PRICE; //model.SCALE_UNIT = item.SCALE_UNIT; //decimal total = 0; //foreach (MIStockModel i in MIStockList) //{ // if (i.GOODS_ID == item.GOODS_ID) // { // total += Convert.ToDecimal(i.ABLE_NUM); // } //} //model.MISTOCK_NUM = total; if (flag == 1) { //修改:给移位单编号赋值 model.MOVELOC_ID = moveLocModel.MOVELOC_ID; } //判断该商品是否已经在移位商品明细中后添加 bool had = false; foreach (MoveLocTabModel wntModel in listMoveLocTabModel) { if (wntModel.GOODS_ID == model.GOODS_ID) { had = true; } } if (!had) { listMoveLocTabModel.Add(model); } } if (listMoveLocTabModel.Count > 0) { xtraTabControl1.SelectedTabPageIndex = 1; bsMoveLocTab.DataSource = listMoveLocTabModel; GVMoveLocTab.RefreshData(); //焦点置于新库位 GVMoveLocTab.FocusedColumn = GVMoveLocTab.Columns[3]; GVMoveLocTab.FocusedRowHandle = 0; } else { SystemCommon.ShowInfoMessageBox("未选择任何商品或所选择的商品已在明细中,请重新选择"); } } #endregion /// /// 移位单改变,显示属于它的移位商品明细、编辑区域显示它的信息改变 根据状态 判断改行是否可选中 /// /// /// private void GVMoveLoc_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e) { if (listmoveLocModel.Count == 0) { return; } if (flag == -1) { moveLocModel = new MoveLocModel(); moveLocModel = GVMoveLoc.GetFocusedRow() as MoveLocModel; bsMoveLocEdit.DataSource = moveLocModel; if (string.IsNullOrEmpty(moveLocModel.CONFIRM_PERSON)) {//审核人 moveLocModel.CONFIRM_PERSON = userData.USER_ID; dicConfirm.TextBoxFlag = userData.USER_ID; dicConfirm.TextBoxValue = userData.NAME; } else { dicConfirm.TextBoxFlag = moveLocModel.CONFIRM_PERSON; dicConfirm.TextBoxValue = moveLocModel.CONFIRM_PERSON_NAME; } dicCreate.TextBoxFlag = moveLocModel.CREATE_PERSON; dicCreate.TextBoxValue = moveLocModel.CREATE_PERSON_NAME; dicMove.TextBoxFlag = moveLocModel.MOVE_PERSON; dicMove.TextBoxValue = moveLocModel.MOVE_PERSON_NAME; bindMoveLocTab(moveLocModel); if (moveLocModel.STATE == "0")//未审核 { GVMoveLoc.OptionsBehavior.Editable = true;//整个 if (frmButtonItem.ContainsKey("Edit")) { frmButtonItem["Edit"].Enabled = true; } if (frmButtonItem.ContainsKey("Print")) { frmButtonItem["Print"].Enabled = false; } } else if (moveLocModel.STATE == "1") { GVMoveLoc.OptionsBehavior.Editable = false;//整个 if (frmButtonItem.ContainsKey("Edit")) { frmButtonItem["Edit"].Enabled = true; } if (!string.IsNullOrEmpty(moveLocModel.MOVE_PERSON)) { if (frmButtonItem.ContainsKey("Print")) { frmButtonItem["Print"].Enabled = true; } } else { if (frmButtonItem.ContainsKey("Print")) { frmButtonItem["Print"].Enabled = false; } } } if (moveLocModel.PRINT_COUNT > 0) { if (frmButtonItem.ContainsKey("Edit")) { frmButtonItem["Edit"].Enabled = false; } } } } /// /// 改单位下拉框数据源 /// /// /// private void issueBinGridView_CustomRowCellEditForEditing(object sender, DevExpress.XtraGrid.Views.Grid.CustomRowCellEditEventArgs e) { if (e.RowHandle < 0 || flag == -1) { return; } if (e.Column.Name == "colUNIT") { BindUnit(); e.RepositoryItem = lueUnits;//当前单元格绑定控件 } if (e.Column.Name == "colOlD_LOC_ID") { string goodsID = string.Empty; if (GVMoveLocTab.GetFocusedRowCellValue("GOODS_ID") != null) { goodsID = GVMoveLocTab.GetFocusedRowCellValue("GOODS_ID").ToString(); List listLoc = new List(); foreach (MIStockModel item in MIStockList) { if (item.GOODS_ID == goodsID) { StorageAreaLocationModel loc = new StorageAreaLocationModel(); loc.LOCATION_ID = item.LOCATION_ID; listLoc.Add(loc); } } lueLocs.DataSource = listLoc; } e.RepositoryItem = lueLocs;//当前单元格绑定控件 } } /// /// 单位、重量单位的显示 /// /// /// private void GVMoveLocTab_CustomColumnDisplayText(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventArgs e) { ///*查询单位、重量单位集合*/ //List kg_unitList = new List(); //List vc_uomList = new List(); //string errText = string.Empty; //string strDataSet1 = string.Empty; //string strDataSet2 = string.Empty; //try //{ // strDataSet1 = WebLockConfig.Instance.DictionaryTab.GetDictionaryTab("kg_unit", ref errText);//调用Web服务读取字典明细信息 // strDataSet2 = WebLockConfig.Instance.DictionaryTab.GetDictionaryTab("vc_uom", ref errText);//调用Web服务读取字典明细信息 //} //catch (Exception) //{ // SystemCommon.ShowInfoMessageBox("未知错误,请检查网络连接!如仍无法解决问题请联系我们!"); //} //if (errText == string.Empty) //{ // kg_unitList = Newtonsoft.Json.JsonConvert.DeserializeObject>(strDataSet1); // vc_uomList = Newtonsoft.Json.JsonConvert.DeserializeObject>(strDataSet2); //} //else //{ // SystemCommon.ShowInfoMessageBox(errText); //} if (e.Column.FieldName == "UNIT") { //if (e.Value != null) //{ // switch (e.Value.ToString().Trim()) // { // case "a": // e.DisplayText = "盒"; // break; // case "b": // e.DisplayText = "罐"; // break; // case "c": // e.DisplayText = "袋"; // break; // case "d": // e.DisplayText = "瓶"; // break; // case "e": // e.DisplayText = "个"; // break; // case "f": // e.DisplayText = "包"; // break; // case "g": // e.DisplayText = "把"; // break; // case "h": // e.DisplayText = "筒"; // break; // case "i": // e.DisplayText = "张"; // break; // case "j": // e.DisplayText = "套"; // break; // case "k": // e.DisplayText = "克"; // break; // case "l": // e.DisplayText = "泡"; // break; // case "m": // e.DisplayText = "片"; // break; // case "z": // e.DisplayText = "箱"; // break; // default: // e.DisplayText = ""; // break; // } //} } if (e.Column.FieldName == "SCALE_UNIT") { if (e.Value != null) { switch (e.Value.ToString().Trim()) { case "0": e.DisplayText = "克"; break; case "1": e.DisplayText = "斤"; break; case "2": e.DisplayText = "吨"; break; default: e.DisplayText = ""; break; } } } } //#region 选择采购商品 //private bool m_status2 = false;//全选判断 //private JWGoodsInfoModel choseModel = new JWGoodsInfoModel();//当前选择的商品 ///// ///// 清空商品列表数据 ///// //private void ClearGoodsGrid() //{ // //string errText = string.Empty; // //// 绑定商品列表数据 // //string strResult = string.Empty; // //try // //{ // // strResult = WebLockConfig.Instance.Goods.GetGoodsList("", "", "", ""); // //} // //catch (Exception) // //{ // // SystemCommon.ShowInfoMessageBox("未知错误,请检查网络连接!如仍无法解决问题请联系我们!"); // //} // //listJWGoodsInfoModel = Newtonsoft.Json.JsonConvert.DeserializeObject>(strResult); // //if (listJWGoodsInfoModel.Count > 0) // //{ // // bsGoodsInfo.DataSource = listJWGoodsInfoModel; // // GVGoodsInfo.RefreshData(); // //} // //else // //{ // // SystemCommon.ShowInfoMessageBox("未找到商品"); // //} // listJWGoodsInfoModel = new List(); // bsGoodsInfo.DataSource = listJWGoodsInfoModel; // //GVGoodsInfo.RefreshData(); //} //#region CheckBox全选的实现:3事件 //private void GVGoodsInfo_Click(object sender, EventArgs e) //{ // if (DevControlHelper.ClickGridCheckBox(this.GVGoodsInfo, "IsCheck", m_status2)) // { // m_status2 = !m_status2; // } //} //private void GVGoodsInfo_DataSourceChanged(object sender, EventArgs e) //{ // GridColumn column = this.GVGoodsInfo.Columns.ColumnByFieldName("IsCheck"); // if (column != null) // { // column.Width = 20; // column.OptionsColumn.ShowCaption = m_status2; // column.ColumnEdit = new RepositoryItemCheckEdit(); // } //} //private void GVGoodsInfo_CustomDrawColumnHeader(object sender, DevExpress.XtraGrid.Views.Grid.ColumnHeaderCustomDrawEventArgs e) //{ // if (e.Column != null && e.Column.FieldName == "IsCheck") // { // e.Info.InnerElements.Clear(); // e.Painter.DrawObject(e.Info); // DevControlHelper.DrawCheckBox(e, m_status2); // e.Handled = true; // } //} //#endregion ////选择按钮 //public void choose() //{ // xtraTabControl1.Focus(); // if (listJWGoodsInfoModel.Count == 0) // { // SystemCommon.ShowInfoMessageBox("没有可移动的商品,请注意审核库区"); // return; // } // if (flag == 2) {//如果状态为完成 // xtraTabControl1.SelectedTabPageIndex = 1; // return; // } // if (xtraTabControl1.SelectedTabPageIndex != 2)//如果当前不是选择商品页面 // { // xtraTabControl1.SelectedTabPageIndex = 2; // } // else { // /*将选择的商品加入移位商品明细*/ // foreach (JWGoodsInfoModel item in listJWGoodsInfoModel) // { // //如果被选中 // if (item.IsCheck) // { // MoveLocTabModel model = new MoveLocTabModel(); // model.GOODS_ID = item.GOODS_ID; // model.GOODS_NAME = item.GOODS_NAME; // int total = 0; // foreach (MIStockModel i in MIStockList) // { // if (i.GOODS_ID == item.GOODS_ID) // { // total += Convert.ToDecimal(i.ABLE_NUM); // } // } // model.MISTOCK_NUM = total; // if (flag == 1) // { //修改:给移位单编号赋值 // model.MOVELOC_ID = moveLocModel.MOVELOC_ID; // } // //判断该商品是否已经在移位商品明细中后添加 // bool had = false; // foreach (MoveLocTabModel wntModel in listMoveLocTabModel) // { // if (wntModel.GOODS_ID == model.GOODS_ID) // { // had = true; // } // } // if (!had) // { // listMoveLocTabModel.Add(model); // } // } // } // if (listMoveLocTabModel.Count > 0) // { // xtraTabControl1.SelectedTabPageIndex = 1; // GVMoveLocTab.RefreshData(); // } // else // { // SystemCommon.ShowInfoMessageBox("未选择任何商品或所选择的商品已在明细中,请重新选择"); // } // //ClearGoodsGrid(); // } //} //#endregion //#region 库位选择 ///// ///// 库位选择 ///// ///// ///// //private void ctrlDicLoc_Button_Click_1(object sender, EventArgs e) //{ // DataTable dt = ctrlDicLoc.SelectTable; // if (dt.Rows.Count == 0) // { // SystemCommon.ShowInfoMessageBox("您未选择库位!"); // return; // } // //库位集合 // List list = ConvertHelper.ConvertToList(ctrlDicLoc.SelectTable); // MoveLocTabModel model = listMoveLocTabModel[GVMoveLocTab.FocusedRowHandle]; // model.NEW_LOC_ID = list[0].LOCATION_ID; // GVMoveLocTab.RefreshData(); // //bsMoveLocTab.DataSource = listMoveLocTabModel; //} //#endregion /// /// 打印 /// public override void Print() { string message = "是否打印移位单" + moveLocModel.MOVELOC_ID; if (moveLocModel.PRINT_COUNT > 0) { message += ",该移位单已被打印" + Convert.ToInt32(moveLocModel.PRINT_COUNT) + "次"; } if (DialogResult.No == SystemCommon.ShowMessageBoxResult(message)) { return; } //打印时给单位名称赋值 string errText = string.Empty; List listDictionaryTab = new List(); try { listDictionaryTab = IBussFactory.Instance().GetDictionaryTab("vc_uom");//调用Web服务读取字典明细信息 } catch (Exception) { SystemCommon.ShowInfoMessageBox("未知错误,请检查网络连接!如仍无法解决问题请联系我们!"); } foreach (MoveLocTabModel item in listMoveLocTabModel) { if (item.UNIT != null) { item.UNIT_NAME = listDictionaryTab.Find(p => p.VC_CHAR_VALUE == item.UNIT).VC_DICTIONARY_NAME; } } moveLocModel.DOCUMENT_PERSON_ID = userData.USER_ID; moveLocModel.DOCUMENT_PERSON = userData.NAME; moveLocModel.DOCUMENT_TIME = DateTime.Now; //ReportMoveLoc.GetInstance(moveLocModel, listMoveLocTabModel).ShowPreview(); //LoadForm load = new LoadForm(); //DevExpress.XtraSplashScreen.SplashScreenManager.ShowForm(load, load.GetType(), false, true, false, 0); //DevExpress.XtraSplashScreen.SplashScreenManager.Default.SetWaitFormDescription("正在加载窗体,请等待...."); //DialogResult printResult = ReportMoveLoc.GetInstance(moveLocModel, listMoveLocTabModel).PrintDialog(); //if (printResult == DialogResult.OK) //{ LoadForm load = new LoadForm(); DevExpress.XtraSplashScreen.SplashScreenManager.ShowForm(load, load.GetType(), false, true, false, 0); DevExpress.XtraSplashScreen.SplashScreenManager.Default.SetWaitFormDescription("正在打印移位单请稍候...."); if (isSKU) { ReportMoveLocSKU.GetInstance(moveLocModel, listMoveLocTabModel).Print(); } else { ReportMoveLoc.GetInstance(moveLocModel, listMoveLocTabModel).Print(); } DevExpress.XtraSplashScreen.SplashScreenManager.CloseForm(); errText = string.Empty; try { errText = IBussFactory.Instance().PrintOK(moveLocModel); } catch (Exception) { SystemCommon.ShowInfoMessageBox("未知错误,请检查网络连接!如仍无法解决问题请联系我们!"); } if (string.IsNullOrEmpty(errText))//如果成功 { moveLocModel.PRINT_COUNT += 1; GVMoveLoc.RefreshData(); SystemCommon.ShowInfoMessageBox("打印成功"); } else { SystemCommon.ShowInfoMessageBox("修改打印记录失败,请重新打印。" + errText); } //} //else //{ // SystemCommon.ShowInfoMessageBox("打印失败"); //} } //private void GVMoveLocTab_RowCellClick(object sender, DevExpress.XtraGrid.Views.Grid.RowCellClickEventArgs e) //{ // if (e.Column.Name == "colGOODS_NAME") // { // MoveLocTabModel model = GVMoveLocTab.GetFocusedRow() as MoveLocTabModel; // 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(); // } // } //} private void repositoryItemHyperLinkEdit1_Click(object sender, EventArgs e) { MoveLocTabModel model = GVMoveLocTab.GetFocusedRow() as MoveLocTabModel; 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(); DevExpress.XtraSplashScreen.SplashScreenManager.CloseForm(); } } private void GVMoveLocTab_RowCellClick(object sender, DevExpress.XtraGrid.Views.Grid.RowCellClickEventArgs e) { if (e.Column.Name == "colOLD_LOC_ID" && (flag == 0 || flag == 1) && moveLocModel.STATE == "0") { MoveLocTabModel model = listMoveLocTabModel[GVMoveLocTab.GetFocusedDataSourceRowIndex()]; //GVAreaRepOut.GetFocusedRow() as AreaRepOutModel; if (model != null && !string.IsNullOrEmpty(model.GOODS_ID)) { MIStockModel miStock = new MIStockModel(); miStock.GOODS_ID = model.GOODS_ID; miStock.GOODS_NAME = model.GOODS_NAME; miStock.LOCATION_ID = model.OLD_LOC_ID; miStock.PUTIN_ID = model.PUTIN_ID; miStock.DOCCTNUMBER = model.DOCCTNUMBER; miStock.ABLE_NUM = model.LOC_NUM; miStock.PROVIDER_ID = model.PROVIDER_ID; miStock.PROVIDER_NAME = model.PROVIDER_NAME; miStock.PRODUCTION_DATE = model.PRODUCTION_DATE; miStock.WARE_DATE = model.WARE_DATE; FrmSelectLocAndPutInID.GetInstance().Dispose(); LoadForm load = new LoadForm(); DevExpress.XtraSplashScreen.SplashScreenManager.ShowForm(load, load.GetType(), false, true, false, 0); DevExpress.XtraSplashScreen.SplashScreenManager.Default.SetWaitFormDescription("正在获取库存信息请稍候...."); DialogResult var = FrmSelectLocAndPutInID.GetInstance(miStock, moveLocModel.STORAGE_ID, moveLocModel.AREA_ID, moveLocModel.STORAGE_NAME, moveLocModel.AREA_NAME).ShowDialog(); DevExpress.XtraSplashScreen.SplashScreenManager.CloseForm(); if (var == DialogResult.OK) { miStock = FrmSelectLocAndPutInID.GetInstance().stock; if (listMoveLocTabModel.FindAll(p => p.GOODS_ID == miStock.GOODS_ID && p.OLD_LOC_ID == miStock.LOCATION_ID && p.PUTIN_ID == miStock.PUTIN_ID).Count > 1) { SystemCommon.ShowInfoMessageBox("同种商品同一批次库位不能相同"); return; } if (miStock.ABLE_NUM < model.LOC_NUM) { if (DialogResult.OK == SystemCommon.ShowMessageBoxResult("当前库位本批次库存数不满足,是否清空计划数量(点【是】清空计划数量,点【否】不更改出库库位)")) { GVMoveLocTab.SetFocusedRowCellValue("PLAN_NUM", 0); //GVAreaRepOut.SetFocusedRowCellValue("REAL_COUNT", 0); } else { return; } } model.OLD_LOC_ID = miStock.LOCATION_ID; model.PUTIN_ID = miStock.PUTIN_ID; model.DOCCTNUMBER = miStock.DOCCTNUMBER; model.PROVIDER_ID = miStock.PROVIDER_ID; model.PROVIDER_NAME = miStock.PROVIDER_NAME; model.PRODUCTION_DATE = miStock.PRODUCTION_DATE; model.WARE_DATE = miStock.WARE_DATE; BindUnit(); DataTable dt = lueUnits.DataSource as DataTable; decimal newUnit = 0; foreach (DataRow row in dt.Rows) { if (row[0].ToString() == GVMoveLocTab.GetFocusedRowCellValue("UNIT").ToString()) { newUnit = decimal.Parse(row[2].ToString()); } } model.LOC_NUM = miStock.ABLE_NUM * newUnit; listMoveLocTabModel[GVMoveLocTab.GetFocusedDataSourceRowIndex()] = model; //bsAreaRepOut.DataSource = listAreaRepOutModel; //GVAreaRepOut.RefreshData(); } } } } } }