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.Stock; using WMS.Common; using WMS.Model.Base; using DevExpress.XtraEditors.Repository; using DevExpress.XtraReports.UI; using WMS.FrmBaseData; using WMS.Ctrl; using System.Threading; using WMS.Model.SystemManage; using WMS.Model.RK; using WMS.Business; using WMS.Business.Common; using WMS.Business.Base; using WMS.Business.Strategy; using WMS.Business.SystemManage; using WMS.Business.Stock; namespace WMS.FrmStock { public partial class FrmProviderREP : FormBase { #region 全局变量 public ProvideRepModel proModel; private List listSKU = new List();//规格集合 private bool isSKU = false;//默认未开启SKU /// /// 供应商明细补货Model /// public ProvideRepInfoModel infoInsertModel; /// /// 库存表集合 /// public List stockList; /// /// 库存表Model /// public MIStockModel stockModel; /// /// 绑定供应商补货上半屏主表数据 /// List bindList; /// /// 供应商补货Model /// ProvideRepModel pmodel; /// /// 绑定供应商补货下半屏明细数据 /// List bindInfoList; /// /// 数据源Copy /// List CopyList = new List(); /// /// 明细增加 /// List AddList = new List(); /// /// 明细修改 /// List UpList = new List(); /// /// 明细删除 /// List DelList = new List(); /// /// 供应商补货明细Model /// ProvideRepInfoModel pinfomodel; /// /// 同时删除主表 明细表集合 /// List strlist = new List(); /// /// 全局计量 /// int i = 0; /// /// 全局库存量 /// decimal sumTotalCount = 0; /// /// 单个累加 /// decimal sumCountAdd = 0; /// /// 获得自动生成的验收单号流水号 /// string pro_ID = ""; int flag = 3; bool imp = true; /// /// 下拉单位选择 /// private DevExpress.XtraEditors.Repository.RepositoryItemLookUpEdit lueUnits = new RepositoryItemLookUpEdit(); #endregion #region 构造函数 /// /// 无参构造 /// public FrmProviderREP() { InitializeComponent(); } #endregion #region 窗体加载 /// /// 窗体加载 /// /// /// public void FrmProviderREP_Load(object sender, EventArgs e) { imp = true; //检测是否开启SKU //通用查询 FrmSelectModle = new ProvideRepModel(); xtraTabControl1.SelectedTabPageIndex = 0; //xtraTab2.PageEnabled = false; #region 默认加载前一周的数据 BindProvideRepData(); if (bindList.Count > 0) { bgsProvideTab.DataSource = BindProvideRepInfoData(bindList[0].PROREP_ID); } #endregion 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; lueUnits.NullText = ""; lueUnits.Columns.Add(new DevExpress.XtraEditors.Controls.LookUpColumnInfo("UNIT_NAME", "单位")); lueUnits.ValueMember = "UNIT"; lueUnits.DisplayMember = "UNIT_NAME"; lkpUnit.NullText = ""; lkpUnit.Columns.Add(new DevExpress.XtraEditors.Controls.LookUpColumnInfo("VC_DICTIONARY_NAME", "单位")); lkpUnit.ValueMember = "VC_CHAR_VALUE"; lkpUnit.DisplayMember = "VC_DICTIONARY_NAME"; lkpUnit.DataSource = strResult; } } catch (Exception) { SystemCommon.ShowInfoMessageBox("未知错误,请检查网络连接!如仍无法解决问题请联系我们!"); } //供应商 lkpProvider.LoadData(); this.dicCreate.TextBoxFlag = userData.USER_ID; this.dicCreate.TextBoxValue = userData.NAME; this.dicConfirm.TextBoxFlag = userData.USER_ID; this.dicConfirm.TextBoxValue = userData.NAME; //this.dicReview.TextBoxFlag = userData.USER_ID; //this.dicReview.TextBoxValue = userData.NAME; //补货原因 this.lkpResion.LoadData(); #region 加载默认所属仓库 RoleStorageModel roles = new RoleStorageModel(); roles.ROLE_ID = userData.ROLE_ID; List lists = IBussFactory.Instance().GetList(roles); if(lists!=null) { lkpStorage.Properties.DataSource = lists; lkpStorage.Properties.DisplayMember = "STORAGE_NAME"; lkpStorage.Properties.ValueMember = "STORAGE_ID"; if (lists.Count != 0) { lkpStorage.EditValue = lists[0].STORAGE_ID; } } //所属仓库 //lkpStorage.LoadData(); #endregion //只加载 库存表中有的商品数据 this.ctrGoods.selSql = @"select INVENTORY_ITEM_ID, goods_name from T_BASE_GOODS t where t.INVENTORY_ITEM_ID in (select INVENTORY_ITEM_ID from T_MI_STOCK)"; } #endregion #region 公共按钮 #region 增加 /// /// 增加按钮 /// public void Add() { flag = 0; // xtraTab2.PageEnabled = true; //新增修改页面 xtraTabControl1.SelectedTabPageIndex = 1; this.ctrGoods.Enabled = true; this.dicCreate.Enabled = true; this.daCreateDate.Enabled = true; this.lkpProvider.Enabled = true; this.lkpStorage.Enabled = true; this.lkpResion.Enabled = true; this.dicConfirm.Enabled = false; this.daConfirmDate.Enabled = false; // this.dicReview.Enabled = false; //this.daReviewDate.Enabled = false; bgsProvide.DataSource = new ProvideRepModel(); bgsProvideInfo.DataSource = null; pro_ID = IBussFactory.Instance().GetNextValNum(); proModel = new ProvideRepModel(); this.txtID.Text = pro_ID; proModel.PROREP_STATUS = "0"; proModel.PROREP_ID = this.txtID.Text.Trim(); this.dicCreate.TextBoxFlag = userData.USER_ID; this.dicCreate.TextBoxValue = userData.NAME; proModel.CREATE_MAN = this.dicCreate.TextBoxFlag; proModel.CREATE_MAN_NAME = this.dicCreate.TextBoxValue; proModel.CREATE_DATE = DateTime.Now; proModel.CONFIRM_DATE = DateTime.Now; proModel.STORAGE_ID = userData.STORAGE_ID; // proModel.REVIEW_DATE = DateTime.Now; proModel.EXPECT_DATE = DateTime.Now.AddDays(7); bgsProvide.DataSource = proModel; this.label1.Focus(); if (frmButtonItem.ContainsKey("Save")) { frmButtonItem["Save"].Enabled = true; } if (frmButtonItem.ContainsKey("Edit")) { frmButtonItem["Edit"].Enabled = false; } if (frmButtonItem.ContainsKey("Del")) { frmButtonItem["Del"].Enabled = false; } this.gridViewProvideInfo.OptionsBehavior.Editable = true; listSKU = new List(); } #endregion /// /// 确认人确认单据状态按钮 /// public void EnSure() { } /// /// 审核人审核单据状态按钮 /// public void Review() { if (proModel.PROREP_STATUS == null) { return; } if (proModel.PROREP_STATUS != "1") { SystemCommon.ShowInfoMessageBox("该单据不需要审核!"); return; } proModel.PROREP_STATUS = "2"; bgsProvide.DataSource = proModel; UpdateProvideRep(); splitContainerControl1.Panel1.Enabled = false; this.gridViewProvideInfo.OptionsBehavior.Editable = false; } /// /// 提交 /// public void Commit() { if (proModel.PROREP_STATUS == null) { return; } if (proModel.PROREP_STATUS != "2") { SystemCommon.ShowInfoMessageBox("该单据不需要提交!"); return; } proModel.PROREP_STATUS = "3"; bgsProvide.DataSource = proModel; } #region 编辑 /// /// 编辑按钮 /// public void Edit() { gridViewProvideMain_DoubleClick(null, null); } #endregion #region 删除 /// /// 删除按钮 /// public void Del() { #region 新增操作 界面删除不需要补货的商品数据 if (this.gridViewProvideInfo.RowCount > 0 && frmButtonItem["Confirm"].Enabled == true) { bindInfoList.RemoveAt(this.gridViewProvideInfo.FocusedRowHandle); return; } #endregion this.xtraTab1.Focus(); if (DialogResult.OK == SystemCommon.ShowMessageBoxResult("删除选中单据将同时删除改单据下的所有明细数据,是否要删除?")) { DeleteProvideRep(); } } #endregion #region 查询 /// /// 查询按钮 /// public void Search() { LoadForm load = new LoadForm(); DevExpress.XtraSplashScreen.SplashScreenManager.ShowForm(load, load.GetType(), false, true, false, 30); DevExpress.XtraSplashScreen.SplashScreenManager.Default.SetWaitFormDescription("数据查询中,请等待..."); BindProvideRepData(); DevExpress.XtraSplashScreen.SplashScreenManager.CloseForm(); } #endregion #region 重置 /// /// 重置按钮 /// public void Refresh() { imp = true; BindProvideRepData(); if (bindList.Count != 0) { bgsProvideTab.DataSource = BindProvideRepInfoData(bindList[0].PROREP_ID); } if (frmButtonItem.ContainsKey("Confirm")) { frmButtonItem["Confirm"].Enabled = false; } if (frmButtonItem.ContainsKey("Save")) { frmButtonItem["Save"].Enabled = false; } if (frmButtonItem.ContainsKey("EnSure")) { frmButtonItem["EnSure"].Enabled = false; } if (frmButtonItem.ContainsKey("Review")) { frmButtonItem["Review"].Enabled = false; } if (frmButtonItem.ContainsKey("Commit")) { frmButtonItem["Commit"].Enabled = false; } if (frmButtonItem.ContainsKey("Add")) { frmButtonItem["Add"].Enabled = true; } if (frmButtonItem.ContainsKey("Search")) { frmButtonItem["Search"].Enabled = true; } if (frmButtonItem.ContainsKey("Refresh")) { frmButtonItem["Refresh"].Enabled = true; } if (frmButtonItem.ContainsKey("Edit")) { frmButtonItem["Edit"].Enabled = true; } if (frmButtonItem.ContainsKey("Del")) { frmButtonItem["Del"].Enabled = true; } bgsProvide.DataSource = new ProvideRepModel(); this.ctrGoods.TextBoxFlag = string.Empty; this.ctrGoods.TextBoxValue = string.Empty; this.dicCreate.TextBoxFlag = string.Empty; this.dicCreate.TextBoxValue = string.Empty; this.dicConfirm.TextBoxFlag = string.Empty; this.dicConfirm.TextBoxValue = string.Empty; //this.dicReview.TextBoxFlag = string.Empty; //this.dicReview.TextBoxValue = string.Empty; bgsProvideInfo.DataSource = null; xtraTabControl1.SelectedTabPageIndex = 0; } #endregion #region 清空 /// /// 清空按钮 /// //public void Clear() //{ //this.ctrGoods.TextBoxValue = string.Empty; //this.ctrGoods.TextBoxFlag = string.Empty; //this.lkpProvider.EditValue = string.Empty; //this.txtID.Text = string.Empty; //this.txtRemark.Text = string.Empty; //this.dicCreate.TextBoxFlag = string.Empty; //this.dicCreate.TextBoxValue = string.Empty; //this.dicConfirm.TextBoxFlag = string.Empty; //this.dicConfirm.TextBoxValue = string.Empty; //this.dicReview.TextBoxFlag = string.Empty; //this.dicReview.TextBoxValue = string.Empty; //this.lkpResion.EditValue = string.Empty; //this.daCreateDate.EditValue = null; //this.daConfirmDate.EditValue = null; //this.daReviewDate.EditValue = null; //this.daArriveDate.EditValue = null; //} #endregion #region 导出 /// /// 导出按钮 /// public void Export() { } #endregion #region 打印 /// /// 打印按钮 /// public void Print() { if (proModel.PROREP_STATUS == "0") { SystemCommon.ShowInfoMessageBox("该单据未确认,不能打印!请选择确认单据!"); return; } if (proModel.PRINT_COUNT > 0) { if (DialogResult.No == SystemCommon.ShowMessageBoxResult("供应商补货单 - " + proModel.PROREP_ID + Environment.NewLine + " 已打印" + Convert.ToInt32(proModel.PRINT_COUNT) + "次,是否开始打印")) { return; } } //打印时给单位名称赋值 string errText = string.Empty; string strDataSet = string.Empty; List listDictionaryTab = new List(); try { listDictionaryTab = IBussFactory.Instance().GetDictionaryTab("vc_uom");//调用Web服务读取字典明细信息 } catch (Exception) { SystemCommon.ShowInfoMessageBox("未知错误,请检查网络连接!如仍无法解决问题请联系我们!"); } foreach (ProvideRepInfoModel item in bindInfoList) { if (item.UNIT != null) { item.UNIT_NAME = listDictionaryTab.Find(p => p.VC_CHAR_VALUE == item.UNIT).VC_DICTIONARY_NAME; } } proModel.DOCUMENT_PERSON_ID = userData.USER_ID; proModel.DOCUMENT_PERSON = userData.NAME; proModel.DOCUMENT_TIME = DateTime.Now; string strModel = Newtonsoft.Json.JsonConvert.SerializeObject(proModel); //string errText = string.Empty; try { // errText = WebLockConfig.Instance.WebProvideRep.PrintOK(strModel); } catch (Exception) { SystemCommon.ShowInfoMessageBox("未知错误,请检查网络连接!如仍无法解决问题请联系我们!"); } if (string.IsNullOrEmpty(errText))//如果成功 { SystemCommon.ShowInfoMessageBox("打印成功"); BindReviewOthers(); } else { SystemCommon.ShowInfoMessageBox("修改打印记录失败,请重新打印。" + errText); } //} //else //{ // SystemCommon.ShowInfoMessageBox("打印失败"); //} } #endregion #region 确认按钮 /// /// 生成单据按钮(生成的单据为未确认状态) /// public void Confirm() { if (proModel.PROREP_STATUS == null) { return; } if (proModel.PROREP_STATUS != "0") { SystemCommon.ShowInfoMessageBox("该单据不需要审核!"); return; } proModel.CONFIRM_DATE = DateTime.Now; this.dicConfirm.TextBoxFlag = userData.USER_ID; this.dicConfirm.TextBoxValue = userData.NAME; proModel.CONFIRM_MAN = this.dicConfirm.TextBoxFlag; proModel.CONFIRM_MAN_NAME = this.dicConfirm.TextBoxValue; proModel.PROREP_STATUS = "1"; bgsProvide.DataSource = proModel; UpdateProvideRep(); splitContainerControl1.Panel1.Enabled = false; splitContainerControl1.Panel2.Enabled = false; } #endregion #region 保存 /// /// 保存按钮 /// public void Save() { if (isSKU) { //判断是否都选了商品规格 数量是否相同 gridViewProvideInfo.CloseEditor(); bindInfoList = bgsProvideInfo.DataSource as List; foreach (var item in bindInfoList) { decimal i = 0; //List listSKUTab = listSKU.FindAll(p => p.INVENTORY_ITEM_ID == item.INVENTORY_ITEM_ID); //foreach (var ite in listSKUTab) //{ // i += ite.SKU_NUM; //} //if (item.GOODS_COUNT != i) //{ // SystemCommon.ShowInfoMessageBox("请为" + item.GOODS_NAME + "选择规格"); // xtraTabControl1.SelectedTabPageIndex = 1; // return; //} } } if (flag == 0) { proModel.TOTAL_NUM = sumTotalCount; proModel.OPERATEDATE = DateTime.Now; proModel.OPERATORID = userData.USER_ID; bgsProvide.DataSource = proModel; if (this.gridViewProvideInfo.RowCount < 1) { SystemCommon.ShowInfoMessageBox("没有商品可以进行补货,请先选择至少一种商品!"); return; } InsertProvideRep(); } else if (flag == 1) { bgsProvide.EndEdit(); this.xtraTab1.Focus(); if (string.IsNullOrEmpty(this.lkpProvider.EditValue.ToString())) { SystemCommon.ShowInfoMessageBox("请选择要补货的供应商!"); return; } UpdateProvideRep(); flag = 3; } } #endregion #region 通用查询 /// /// 通用查询 /// /// public override void LoadListData(DataTable table) { bindList = ConvertHelper.ConvertToList(table); bgsProvideMain.DataSource = bindList; this.gridViewProvideMain.RefreshData(); } #endregion #region 明细增加 /// /// 明细增加 /// public void Rebreak() { this.ctrGoods.Enabled = true; if (proModel.PROREP_STATUS == "2") { return; } CopyList.AddRange(bindInfoList); UpList.AddRange(CopyList); this.gridViewProvideInfo.OptionsBehavior.Editable = true; } #endregion #region 明细删除 /// /// 明细删除 /// public void Clear() { if (this.gridViewProvideInfo.FocusedRowHandle < 0) { return; } if (proModel.PROREP_STATUS == "2") { return; } if (CopyList.Count == 0) { CopyList.AddRange(bindInfoList); UpList.AddRange(CopyList); } ProvideRepInfoModel mod = CopyList[gridViewProvideInfo.FocusedRowHandle]; CopyList.Remove(mod); if (AddList.Contains(mod)) { AddList.Remove(mod); } //if (!string.IsNullOrEmpty(mod.INVENTORY_ITEM_ID)) //{ // if (UpList.Contains(mod)) // { // DelList.Add(mod); // } //} if (UpList.Contains(mod)) { UpList.Remove(mod); } this.gridControlCustomProInfo.DataSource = CopyList; this.gridViewProvideInfo.RefreshData(); } #endregion /// /// 明细保存 /// public void Audit() { //if (UpList.Count > 0 || AddList.Count > 0 || DelList.Count > 0) //{ // string UpListModel = Newtonsoft.Json.JsonConvert.SerializeObject(UpList); // string AddListModel = Newtonsoft.Json.JsonConvert.SerializeObject(AddList); // string DelListModel = Newtonsoft.Json.JsonConvert.SerializeObject(DelList); // foreach (ProvideRepInfoModel m in AddList) // { // if (m.GOODS_COUNT == 0) // { // SystemCommon.ShowInfoMessageBox("新增明细商品中含有未填写补货数量的数据,请填写完毕!"); // return; // } // } // //string err = WebLockConfig.Instance.WebProvideRep.NewProvideRepInfoFuc(UpListModel, AddListModel, DelListModel); // string err = WebLockConfig.Instance.WebProvideRep.NewProvideRepInfoFuc(UpListModel, AddListModel, DelListModel); // if (!string.IsNullOrEmpty(err)) // { // SystemCommon.ShowErrorMessageBox(err); // } // else // { // SystemCommon.ShowInfoMessageBox("明细修改成功!"); // CopyList = new List(); // UpList = new List(); // DelList = new List(); // AddList = new List(); // BindReviewOthers(); // xtraTabControl1.SelectedTabPageIndex = 0; // } //} } #endregion #region ctrGoods_Button_Click事件 /// /// ctrGoods_Button_Click 选商品获得需要补货的商品信息 /// /// /// private void ctrGoods_Button_Click(object sender, EventArgs e) { if (this.ctrGoods.SelectTable.Rows.Count == 0) { //SystemCommon.ShowErrorMessageBox("请选择商品!"); return; } //商品放大镜集合 List goods = ConvertHelper.ConvertToList(ctrGoods.SelectTable); ////商品表集合 //List goodslist = new List(); //库存集合(多个商品数据集) stockList = new List(); //库存集合(单个商品数据集) List milist = new List(); //补货明细集合 bindInfoList = new List(); foreach (JWGoodsInfoModel info in goods) { stockModel = new MIStockModel(); //stockModel.INVENTORY_ITEM_ID = info.INVENTORY_ITEM_ID; string errtext = ""; milist = IBussFactory.Instance().GetMIStockList(stockModel); stockList.AddRange(milist); milist = new List(); } //var ll = stockList.GroupBy(s => new { s.INVENTORY_ITEM_ID, s.GOODS_NAME, }).Select(g => new { g.Key.INVENTORY_ITEM_ID, g.Key.GOODS_NAME, SHELVES_NUM = g.Sum(f => f.SHELVES_NUM) }); //bgsMiStock.DataSource = ll.ToList(); //foreach (var ii in ll) //{ // infoInsertModel = new ProvideRepInfoModel(); // infoInsertModel.INVENTORY_ITEM_ID = ii.INVENTORY_ITEM_ID; // infoInsertModel.GOODS_NAME = ii.GOODS_NAME; // infoInsertModel.SHEVL_NUM = ii.SHELVES_NUM; // List lg = IBussFactory.Instance().GetGoodsList(infoInsertModel.INVENTORY_ITEM_ID, "", "", ""); // if(lg!=null) // { // if (lg.Count != 0) // { // //infoInsertModel.PRICE = lg[0].PRICE; // //infoInsertModel.UNIT = lg[0].UNIT; // } // bindInfoList.Add(infoInsertModel); // } //} gridControlCustomProInfo.DataSource = bindInfoList; bgsProvideInfo.DataSource = gridControlCustomProInfo.DataSource; gridViewProvideInfo.RefreshData(); if (CopyList.Count > 0) { List add = new List(); foreach (ProvideRepInfoModel mo in bindInfoList) { //if (CopyList.Find(r => r.INVENTORY_ITEM_ID == mo.INVENTORY_ITEM_ID) != null) //{ // continue; //} mo.PROREP_ID = proModel.PROREP_ID; add.Add(mo); } AddList.AddRange(add); CopyList.AddRange(add); gridControlCustomProInfo.DataSource = CopyList; bgsProvideInfo.DataSource = gridControlCustomProInfo.DataSource; gridViewProvideInfo.RefreshData(); } #region 判断是不是由新增按钮触发的 选商品 if (flag == 0 || frmButtonItem["Rebreak"].Enabled == true) { this.gridViewProvideInfo.OptionsBehavior.Editable = true; } else { this.gridViewProvideInfo.OptionsBehavior.Editable = false; } #endregion } #endregion #region Xtab1 #region 生成单据 /// /// 生成供应商补货单据 /// private void InsertProvideRep() { this.label1.Focus(); //将输入改变值挂起 bgsProvide.EndEdit(); string errtext = ""; try { //明细表 foreach (ProvideRepInfoModel pinfo in bindInfoList) { if (!string.IsNullOrEmpty(this.txtID.Text)) { pinfo.PROREP_ID = proModel.PROREP_ID; } if (pinfo.GOODS_COUNT == 0) { SystemCommon.ShowInfoMessageBox("含有未填写补货量的商品,请填写完毕!"); return; } } string strSKUList = Newtonsoft.Json.JsonConvert.SerializeObject(listSKU);//List转字符串 ProvideRepModel modele =(ProvideRepModel) bgsProvide.DataSource; //errtext = WebLockConfig.Instance.WebProvideRep.InsertProvideRepData(mode, modelinfo); errtext = IBussFactory.Instance().InsertProvideRepData(modele , bindInfoList ); if (!string.IsNullOrEmpty(errtext)) { SystemCommon.ShowInfoMessageBox("操作失败!" + errtext); } else { SystemCommon.ShowInfoMessageBox("操作成功!"); } } catch (Exception ex) { SystemCommon.ShowInfoMessageBox("网络连接错误,请检查当前网络环境是否可用!"); } this.ctrGoods.TextBoxFlag = string.Empty; this.ctrGoods.TextBoxValue = string.Empty; BindReviewOthers(); xtraTabControl1.SelectedTabPageIndex = 0; } #endregion #endregion #region Xtab2 #region 绑定供应商补货 上半屏 /// /// 获得供应商补货数据 上半屏 /// private void BindProvideRepData() { LoadForm load = new LoadForm(); DevExpress.XtraSplashScreen.SplashScreenManager.ShowForm(load, load.GetType(), false, true, false, 70); DevExpress.XtraSplashScreen.SplashScreenManager.Default.SetWaitFormDescription("数据加载中..."); bindList = new List(); proModel = new ProvideRepModel(); new Thread(delegate() { proModel.TIMESTART = DateTime.Now.AddDays(-30); proModel.TIMEEND = DateTime.Now.AddDays(1); string strlist = ""; try { this.Invoke(new MethodInvoker(delegate() { bindList = IBussFactory.Instance().GetProvideRepData(proModel); if (bindList != null) { if (bindList.Count > 0) { List lp = bindList.FindAll(r => r.PROREP_STATUS != "3"); bgsProvideMain.DataSource = lp; if (lp.Count > 0) { proModel = lp[0]; bgsProvideTab.DataSource = BindProvideRepInfoData(lp[0].PROREP_ID); } } //没数据时 2表清空 else if (bindList.Count == 0) { bgsProvideMain.DataSource = null; bgsProvideTab.DataSource = null; } else { SystemCommon.ShowInfoMessageBox("没有查询到符合条件的数据!"); } } DevExpress.XtraSplashScreen.SplashScreenManager.CloseForm(); })); } catch (Exception ex) { SystemCommon.ShowErrorMessageBox("网络连接错误,请检查当前网络环境是否可用!"); } }).Start(); } #endregion #region 上半屏单条数据 Click事件 /// /// Click 显示供应商补货明细表数据 /// /// /// private void gridControlCustomProvide_Click(object sender, EventArgs e) { if (frmButtonItem.ContainsKey("Add")) { frmButtonItem["Add"].Enabled = true; } if (frmButtonItem.ContainsKey("Edit")) { frmButtonItem["Edit"].Enabled = true; } if (frmButtonItem.ContainsKey("Del")) { frmButtonItem["Del"].Enabled = true; } if (frmButtonItem.ContainsKey("Confirm")) { frmButtonItem["Confirm"].Enabled = false; } if (frmButtonItem.ContainsKey("EnSure")) { frmButtonItem["EnSure"].Enabled = false; } if (frmButtonItem.ContainsKey("Review")) { frmButtonItem["Review"].Enabled = false; } if (frmButtonItem.ContainsKey("Save")) { frmButtonItem["Save"].Enabled = false; } //明细增加 if (frmButtonItem.ContainsKey("Rebreak")) { frmButtonItem["Rebreak"].Enabled = false; } //明细删除 if (frmButtonItem.ContainsKey("Clear")) { frmButtonItem["Clear"].Enabled = false; } pinfomodel = new ProvideRepInfoModel(); if (this.gridViewProvideMain.RowCount < 1) { return; } //没有数据时 点击跳出 if (this.gridViewProvideMain.FocusedRowHandle < 0) { return; } bindInfoList = new List(); proModel = this.gridViewProvideMain.GetRow(this.gridViewProvideMain.FocusedRowHandle) as ProvideRepModel; string strID = this.gridViewProvideMain.GetRowCellValue(this.gridViewProvideMain.FocusedRowHandle, "PROREP_ID").ToString(); if (!string.IsNullOrEmpty(strID)) { bgsProvideTab.DataSource = BindProvideRepInfoData(strID); bindInfoList = bgsProvideTab.DataSource as List; if (bindInfoList.Count > 0) { bgsProvideTab.DataSource = bindInfoList; } } this.gridViewProvideTab.RefreshData(); } #endregion #region 上半屏单条数据 DoubleClick事件 进行修改 /// /// DoubleClick 进行修改 /// /// /// private void gridViewProvideMain_DoubleClick(object sender, EventArgs e) { flag = 1; if (frmButtonItem.ContainsKey("Save")) { frmButtonItem["Save"].Enabled = true; } if (frmButtonItem.ContainsKey("Rebreak")) { frmButtonItem["Rebreak"].Enabled = true; } if (frmButtonItem.ContainsKey("Clear")) { frmButtonItem["Clear"].Enabled = true; } if (frmButtonItem.ContainsKey("Del")) { frmButtonItem["Del"].Enabled = false; } if (frmButtonItem.ContainsKey("Add")) { frmButtonItem["Add"].Enabled = false; } // if (frmButtonItem.ContainsKey("Search")) { frmButtonItem["Search"].Enabled = false; } if (this.gridViewProvideMain.RowCount < 1) { return; } if (this.gridViewProvideMain.FocusedRowHandle < 0) { return; } proModel = this.gridViewProvideMain.GetRow(this.gridViewProvideMain.FocusedRowHandle) as ProvideRepModel; #region 已审核的数据不需要修改 //确认人确认单据 if (proModel.PROREP_STATUS == "0") { if (frmButtonItem.ContainsKey("Confirm")) { frmButtonItem["Confirm"].Enabled = true; } this.dicConfirm.Enabled = true; this.daConfirmDate.Enabled = true; this.dicCreate.TextBoxFlag = proModel.CREATE_MAN; this.dicCreate.TextBoxValue = proModel.CREATE_MAN_NAME; this.dicConfirm.TextBoxFlag = userData.USER_ID; this.dicConfirm.TextBoxValue = userData.NAME; proModel.CONFIRM_DATE = DateTime.Now; } //审核人审核单据 //else if (proModel.PROREP_STATUS == "1") //{ // frmButtonItem["Review"].Enabled = true; // if (frmButtonItem.ContainsKey("Rebreak")) { frmButtonItem["Rebreak"].Enabled = false; } // if (frmButtonItem.ContainsKey("Clear")) { frmButtonItem["Clear"].Enabled = false; } // if (frmButtonItem.ContainsKey("Save")) { frmButtonItem["Save"].Enabled = false; } // this.dicCreate.Enabled = false; // this.daCreateDate.Enabled = false; // this.dicConfirm.Enabled = false; // this.daConfirmDate.Enabled = false; // this.lkpProvider.Enabled = false; // this.lkpStorage.Enabled = false; // this.lkpResion.Enabled = false; // this.dicReview.Enabled = true; // this.daReviewDate.Enabled = true; // this.dicCreate.TextBoxFlag = proModel.CREATE_MAN; // this.dicCreate.TextBoxValue = proModel.CREATE_MAN_NAME; // this.dicConfirm.TextBoxFlag = proModel.CONFIRM_MAN; // this.dicConfirm.TextBoxValue = proModel.CONFIRM_MAN_NAME; // this.dicReview.TextBoxFlag = userData.USER_ID; // this.dicReview.TextBoxValue = userData.NAME; // //proModel.REVIEW_DATE = DateTime.Now; //} //审核过的数据 else { //frmButtonItem["Review"].Enabled = false; if (frmButtonItem.ContainsKey("Save")) { frmButtonItem["Save"].Enabled = false; } if (frmButtonItem.ContainsKey("Confirm")) { frmButtonItem["Confirm"].Enabled = false; } if (frmButtonItem.ContainsKey("Rebreak")) { frmButtonItem["Rebreak"].Enabled = false; } if (frmButtonItem.ContainsKey("Clear")) { frmButtonItem["Clear"].Enabled = false; } if (frmButtonItem.ContainsKey("Del")) { frmButtonItem["Del"].Enabled = true; } if (frmButtonItem.ContainsKey("Add")) { frmButtonItem["Add"].Enabled = true; } // if (frmButtonItem.ContainsKey("Search")) { frmButtonItem["Search"].Enabled = false; } bgsProvideInfo.DataSource = null; bgsProvide.DataSource = new ProvideRepModel(); this.dicCreate.TextBoxFlag = string.Empty; this.dicCreate.TextBoxValue = string.Empty; this.dicConfirm.TextBoxFlag = string.Empty; this.dicConfirm.TextBoxValue = string.Empty; this.daCreateDate.EditValue = DateTime.Now; this.daConfirmDate.EditValue = DateTime.Now; return; } #endregion string strID = this.gridViewProvideMain.GetRowCellValue(this.gridViewProvideMain.FocusedRowHandle, "PROREP_ID").ToString(); proModel.OPERATEDATE = DateTime.Now; proModel.OPERATORID = userData.USER_ID; bgsProvide.EndEdit(); bgsProvide.DataSource = proModel; gridControlCustomProInfo.DataSource = BindProvideRepInfoData(strID); bgsProvideInfo.DataSource = gridControlCustomProInfo.DataSource; gridViewProvideInfo.RefreshData(); xtraTabControl1.SelectedTabPageIndex = 1; if (frmButtonItem.ContainsKey("Save")) { frmButtonItem["Save"].Enabled = true; } #region 编辑修改时 明细数据可编辑 选商品不能进行 this.gridViewProvideInfo.OptionsBehavior.Editable = true; this.ctrGoods.Enabled = false; #endregion } #endregion #region 绑定供应商补货明细数据 下半屏源数据 /// /// 绑定供应商补货 明细数据方法 /// /// 供应商补货编号 /// private List BindProvideRepInfoData(string strId) { bindInfoList = new List(); if (!string.IsNullOrEmpty(strId)) { string detailinfo = ""; try { bindInfoList = IBussFactory.Instance().GetProvideRepInfoData(strId); } catch (Exception ex) { SystemCommon.ShowInfoMessageBox("网络连接错误,请检查当前网络环境是否可用"); } return bindInfoList; } return bindInfoList; } #endregion #region 删除 /// /// 删查询后的数据(主表、明细表) /// public void DeleteProvideRep() { string errtext = ""; GetCheckData(); List pro = new List(); if (i > 0) { try { errtext = IBussFactory.Instance().DeleteProvideRepByID(strlist); if (!string.IsNullOrEmpty(errtext)) { SystemCommon.ShowInfoMessageBox("操作失败!"); } else { SystemCommon.ShowInfoMessageBox("操作成功!"); } } catch (Exception ex) { SystemCommon.ShowInfoMessageBox("网络连接错误,请检查当前网络环境是否可用!"); } } BindReviewOthers(); } #endregion #region 获得主表明细表删除选中项数据 /// /// 获得查询数据主表check 选中项 /// private void GetCheckData() { strlist = new List(); string str = ""; //赋值为初始值 是为了再次操作时 重新计量 i = 0; this.xtraTab2.Focus(); foreach (ProvideRepModel model in bindList) { str = string.Empty; if (model.SELECTID == "1") { str = model.PROREP_ID; strlist.Add(str); i++; } } } #endregion #region 新增 修改 删除 数据重新绑定 /// /// 新增 修改 删除 数据重新绑定 /// private void BindReviewOthers() { //重绑主表数据 BindProvideRepData(); List lp = bindList.FindAll(r => r.PROREP_STATUS != "3"); bgsProvideMain.DataSource = lp; if (lp.Count != 0) { this.gridViewProvideMain.FocusedRowHandle = 0; gridControlCustomProvide_Click(null, null); } 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("Del")) { frmButtonItem["Del"].Enabled = true; } if (frmButtonItem.ContainsKey("Confirm")) { frmButtonItem["Confirm"].Enabled = false; } if (frmButtonItem.ContainsKey("EnSure")) { frmButtonItem["EnSure"].Enabled = false; } if (frmButtonItem.ContainsKey("Review")) { frmButtonItem["Review"].Enabled = false; } if (frmButtonItem.ContainsKey("Save")) { frmButtonItem["Save"].Enabled = false; } if (frmButtonItem.ContainsKey("Rebreak")) { frmButtonItem["Rebreak"].Enabled = false; } //if (frmButtonItem.ContainsKey("Audit")) { frmButtonItem["Audit"].Enabled = false; } if (frmButtonItem.ContainsKey("Clear")) { frmButtonItem["Clear"].Enabled = false; } splitContainerControl1.Panel1.Enabled = true; splitContainerControl1.Panel2.Enabled = true; this.gridViewProvideMain.RefreshData(); //操作主表文本框清空 bgsProvide.DataSource = new ProvideRepModel(); this.dicCreate.TextBoxFlag = string.Empty; this.dicCreate.TextBoxValue = string.Empty; this.dicConfirm.TextBoxFlag = string.Empty; this.dicConfirm.TextBoxValue = string.Empty; //this.dicReview.TextBoxFlag = string.Empty; //this.dicReview.TextBoxValue = string.Empty; this.daCreateDate.EditValue = DateTime.Now; this.daConfirmDate.EditValue = DateTime.Now; //this.daReviewDate.EditValue = DateTime.Now; //明细表清空 bgsProvideInfo.DataSource = null; this.gridViewProvideMain.RefreshData(); this.gridViewProvideTab.RefreshData(); } #endregion #region 修改更新 /// /// 改 供应商补货数据方法 /// public void UpdateProvideRep() { string wid = string.Empty; string errtext = string.Empty; this.label1.Focus(); try { #region 明细表有新增或删除调用此方法(同时保存主表、明细表数据) if (UpList.Count > 0 || AddList.Count > 0 || DelList.Count > 0) { foreach (ProvideRepInfoModel m in AddList) { if (m.GOODS_COUNT == 0) { SystemCommon.ShowInfoMessageBox("新增明细商品中含有未填写补货数量的数据,请填写完毕!"); return; } } ProvideRepModel strmodel = (ProvideRepModel)bgsProvide.DataSource; // errtext = WebLockConfig.Instance.WebProvideRep.NewProvideRepInfoFuc(strmodel, UpListModel, AddListModel, DelListModel); errtext = IBussFactory.Instance().NewProvideRepInfoFuc(strmodel, UpList, AddList, DelList ); CopyList = new List(); UpList = new List(); DelList = new List(); AddList = new List(); } #endregion #region 明细只是修改调用此方法(同时保存主表、明细表数据) else { ProvideRepModel strmodel = (ProvideRepModel)bgsProvide.DataSource; List strmodelinfo = (List) bgsProvideInfo.DataSource ; //errtext = WebLockConfig.Instance.WebProvideRep.UpdateProvideRepData(strmodel, strmodelinfo); errtext = IBussFactory.Instance().UpdateProvideRepData(strmodel, strmodelinfo); } #endregion if (!string.IsNullOrEmpty(errtext)) { SystemCommon.ShowInfoMessageBox("操作失败!" + errtext); } else { SystemCommon.ShowInfoMessageBox("操作成功!"); } } catch (Exception ex) { SystemCommon.ShowInfoMessageBox("网络连接错误,请检查当前网络环境是否可用!"); } BindReviewOthers(); xtraTabControl1.SelectedTabPageIndex = 0; this.ctrGoods.Enabled = true; this.dicCreate.Enabled = false; this.daCreateDate.Enabled = false; this.dicConfirm.Enabled = false; this.daConfirmDate.Enabled = false; //this.dicReview.Enabled = false; //this.daReviewDate.Enabled = false; //this.daReviewDate.Enabled = false; } #endregion #region CustomColumnDisplayText 显示状态名称 /// /// gridViewProvideMain_CustomColumnDisplayText 显示状态名称 /// /// /// private void gridViewProvideMain_CustomColumnDisplayText(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventArgs e) { if (e.Column.FieldName == "PROREP_STATUS") { if (e.Value == null) { return; } switch (e.Value.ToString().Trim()) { case "0": e.DisplayText = "未确认"; break; case "1": e.DisplayText = "已确认"; break; case "2": e.DisplayText = "已审核"; break; default: e.DisplayText = "已提交"; break; } } } private void gridViewProvideInfo_CustomColumnDisplayText(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventArgs e) { if (e.Column.FieldName == "UNIT") { // if (e.Value == null) // { // return; // } // 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; // } } } private void gridViewProvideTab_CustomColumnDisplayText(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventArgs e) { //if (e.Column.FieldName == "UNIT") //{ // if (e.Value == null) // { // return; // } // 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; // } //} } #endregion #endregion #region 单元格处理 事件 /// /// 对单元格 自定义的编辑列进行 编辑 /// /// /// private void gridViewProvideInfo_CustomRowCellEditForEditing(object sender, DevExpress.XtraGrid.Views.Grid.CustomRowCellEditEventArgs e) { if (e.RowHandle < 0) { return; } if (e.Column.Name == "colUnit") { ProvideRepInfoModel proRepinfo = new ProvideRepInfoModel(); proRepinfo = this.gridViewProvideInfo.GetFocusedRow() as ProvideRepInfoModel; //if (proRepinfo != null && proRepinfo.INVENTORY_ITEM_ID != null) //{ // string strResult = string.Empty; // try // { // lueUnits.DataSource = IBussFactory.Instance().GetGoodsUnit(proRepinfo.INVENTORY_ITEM_ID); // } // catch (Exception) // { // //SystemCommon.ShowInfoMessageBox("未知错误,请检查网络连接!如仍无法解决问题请联系我们!"); // } //} e.RepositoryItem = lueUnits;//当前单元格绑定控件 } } private string unit = string.Empty;//记录原单位 /// /// 焦点单元格ValueChanged 事件 /// /// /// private void gridViewProvideInfo_CellValueChanged(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e) { this.xtraTab1.Focus(); if (e.RowHandle < 0) { return; } this.gridViewProvideInfo.RefreshData(); ProvideRepInfoModel model = new ProvideRepInfoModel(); model = this.gridViewProvideInfo.GetFocusedRow() as ProvideRepInfoModel; if (model != null) { //补货量 if (e.Column.Name == "colGOODS_COUNT") { decimal GOODS_COUNT = Convert.ToDecimal(this.gridViewProvideInfo.GetFocusedRowCellValue("GOODS_COUNT")); decimal PRICE = Convert.ToDecimal(gridViewProvideInfo.GetFocusedRowCellValue("PRICE")); if (999999 < GOODS_COUNT) { SystemCommon.ShowInfoMessageBox("请注意:" + Environment.NewLine + "您输入补货量值过大,不符合实际,请重新输入!"); this.gridViewProvideInfo.SetFocusedRowCellValue("GOODS_COUNT", 0.0); } decimal SUMPRICE = PRICE * GOODS_COUNT; gridViewProvideInfo.SetRowCellValue(gridViewProvideInfo.FocusedRowHandle, colSUMPRICE1, SUMPRICE); foreach (ProvideRepInfoModel inf in bindInfoList) { sumCountAdd += inf.GOODS_COUNT; } sumTotalCount = sumCountAdd; sumCountAdd = 0; this.txtTotalNum.Text = sumTotalCount.ToString(); proModel.TOTAL_NUM = sumTotalCount; bgsProvide.DataSource = proModel; } //单位 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() == this.gridViewProvideInfo.GetFocusedRowCellValue("UNIT").ToString()) { newUnit = decimal.Parse(row[2].ToString()); } } if (oldUnit == 0) { return; } if (model.GOODS_COUNT != 0) { model.GOODS_COUNT = Math.Ceiling(model.GOODS_COUNT / oldUnit * newUnit); } } } } #endregion private void gridViewProvideInfo_CellValueChanging(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e) { if (this.gridViewProvideInfo.GetFocusedRowCellValue("UNIT") != null) { unit = this.gridViewProvideInfo.GetFocusedRowCellValue("UNIT").ToString(); } } private void linkGoodsName_Click(object sender, EventArgs e) { ProvideRepInfoModel model = gridViewProvideTab.GetFocusedRow() as ProvideRepInfoModel; //if (model != null && !string.IsNullOrEmpty(model.INVENTORY_ITEM_ID)) //{ // FrmGoodsInfoDet.IFlag = 2; // FrmGoodsInfoDet.StrGoodsID = model.INVENTORY_ITEM_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 HyperLinkgoodName_Click(object sender, EventArgs e) { ProvideRepInfoModel model = gridViewProvideTab.GetFocusedRow() as ProvideRepInfoModel; //if (model != null && !string.IsNullOrEmpty(model.INVENTORY_ITEM_ID)) //{ // FrmGoodsInfoDet.IFlag = 2; // //FrmGoodsInfoDet.StrGoodsID = model.INVENTORY_ITEM_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 lkpProvider_EditValueChanged(object sender, EventArgs e) { if (!string.IsNullOrEmpty(this.lkpProvider.EditValue.ToString().Trim())) { this.ctrGoods.selSql = @"select INVENTORY_ITEM_ID, goods_name from T_BASE_GOODS t where t.INVENTORY_ITEM_ID in (select INVENTORY_ITEM_ID from T_MI_STOCK) and t.provider_id='" + this.lkpProvider.EditValue + "'"; } else { this.ctrGoods.selSql = @"select INVENTORY_ITEM_ID, goods_name from T_BASE_GOODS t where t.INVENTORY_ITEM_ID in (select INVENTORY_ITEM_ID from T_MI_STOCK) "; } } } }