using DevComponents.DotNetBar; using DevComponents.DotNetBar.Controls; using DevComponents.DotNetBar.Metro; using DevComponents.DotNetBar.SuperGrid; using POSV.Card; using POSV.Entity; using POSV.Utils; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Reflection; using System.Text; using System.Windows.Forms; namespace POSV.Stock { public partial class ProductStockForm : BusinessForm { private List storageList = new List(); private string storageId = null; public int GoodsType = 0;//状态 public ProductStockForm() { InitializeComponent(); this.controlBox1.Text = "门店库存查询"; this.controlBox1.ShowApplicationVersion = false; } protected override void OnLoad(EventArgs e) { base.OnLoad(e); if (this.DesignMode) return; this.Focus(); this.noTextBox.Focus(); this.noTextBox.SelectAll(); this.ActiveControl = this.noTextBox; GoodsType = -1; //仓库列表 InitStorageMenu(); } private void InitStorageMenu() { StoreStorage storeStorage = new StoreStorage(); storeStorage.Id = ""; storeStorage.No = ""; storeStorage.Name = "全部仓库"; storageList.Add(storeStorage); try { using (var db = Global.Instance.OpenDataBase) { StringBuilder sqlBuf = new StringBuilder(); sqlBuf.Append(" select id,no,name from pos_store_storage ;"); storageList.AddRange(db.Fetch(sqlBuf.ToString())); } } catch (Exception ex) { LOGGER.Error(ex); } RefreshMain(); } private void RefreshMain() { this.comboBoxEx1.DisplayMember = "name"; this.comboBoxEx1.ValueMember = "id"; this.comboBoxEx1.DataSource = storageList; this.comboBoxEx1.SelectedIndexChanged += OnStorageSelectedIndexChanged; } private void OnStorageSelectedIndexChanged(object sender, EventArgs e) { var obj = sender as ComboBoxEx; storageId = StringUtils.GetString(obj.SelectedValue); } public void ProductStockQuery(int PageNum, int pageSize) { try { var request = new ProductStockRequest(); request.StoreId = Global.Instance.Authc.StoreId; request.StorageId = storageId; request.GoodsType = GoodsType; request.Keyword = this.noTextBox.Text; request.PageNumber = PageNum; request.PageSize = pageSize; var response = StockUtils.ProductStock(request); //成功 if (response.Item1) { this.ShowToastNotify(this, response.Item2); List productStockResponse = response.Item3.List; this.pagerControl1.TotalPage = response.Item3.PageCount; this.pagerControl1.CurrentPage = response.Item3.PageNumber; this.pagerControl1.RecordCount = response.Item3.TotalCount; this.pagerControl1.RowsPerPage = response.Item3.PageSize; foreach (ProductStockResponse productStock in productStockResponse) { string stockDescription = ""; if (productStock.SalesUnitId.Equals(productStock.PackUnitId)) { stockDescription = string.Format("{0}{1}", StringUtils.FormatDataTwoDigit(productStock.StockAmount), productStock.SalesUnitName); } else { int PackUnitAmount = (int)productStock.StockAmount; decimal SalesUnitAmount = (productStock.StockAmount - PackUnitAmount) * productStock.PsScale; stockDescription = string.Format("{0}{1}{2}{3}", PackUnitAmount, productStock.PackUnitName, StringUtils.FormatDataTwoDigit(SalesUnitAmount), productStock.SalesUnitName); } productStock.SalesAmount = StringUtils.FormatDataTwoDigit(productStock.StockAmount * productStock.PsScale); productStock.StockDescription = stockDescription; } stockListTable.PrimaryGrid.DataSource = productStockResponse; } else { List list = new List(); stockListTable.PrimaryGrid.DataSource = list; this.ShowToastNotify(this, response.Item2); } } catch (Exception ex) { this.ShowToastNotify(this, "门店库存查询异常"); LOGGER.Error(ex, "门店库存查询异常"); } } private void exitClick(object sender, EventArgs e) { //先关闭父窗体 if (this.Owner != null) { this.Owner.Close(); } //再关闭当前窗体 this.Close(); } private void OnCloseTouchClick(object sender, EventArgs e) { //先关闭父窗体 if (this.Owner != null) { this.Owner.Close(); } //再关闭当前窗体 this.Close(); } private void OnControlBoxKeyboardClick(object sender, EventArgs e) { try { KeyboardType keyboardType = KeyboardType.英文; Type type = this.ActiveControl.GetType(); PropertyInfo pinfo = type.GetProperty("Keyboard"); if (pinfo != null) { keyboardType = (KeyboardType)pinfo.GetValue(this.ActiveControl, null); } var keyboard = Application.OpenForms["VirtualKeyboard"]; if (keyboard == null) { keyboard = new VirtualKeyboard(keyboardType); } ((VirtualKeyboard)keyboard).ShowVirtualKeyboard(this, keyboardType); } catch (Exception ex) { LOGGER.Error(ex, "打开屏幕键盘异常"); } } private void in_keyword_Enter(object sender, Component.EnterEventArg e) { //获得当前页 int cur = pagerControl1.CurrentPage; //获得每页显示的记录数 int rows = pagerControl1.RowsPerPage; ProductStockQuery(cur, rows); } private void queryClick(object sender, EventArgs e) { //获得当前页 int cur = pagerControl1.CurrentPage; //获得每页显示的记录数 int rows = pagerControl1.RowsPerPage; ProductStockQuery(cur, rows); } private void cb_change_click(object sender, EventArgs e) { var obj = sender as CheckBoxX; var indexT = obj.Tag as string; if ("全部".Equals(indexT) && obj.Checked) { GoodsType = -1; } if ("普通商品".Equals(indexT) && obj.Checked) { GoodsType = 0; } if ("成品".Equals(indexT) && obj.Checked) { GoodsType = 1; } if ("原料".Equals(indexT) && obj.Checked) { GoodsType = 10; } if ("辅料".Equals(indexT) && obj.Checked) { GoodsType = 11; } if ("半成品".Equals(indexT) && obj.Checked) { GoodsType = 12; } //获得当前页 int cur = pagerControl1.CurrentPage; //获得每页显示的记录数 int rows = pagerControl1.RowsPerPage; ProductStockQuery(cur, rows); } //private void OnDataBindingComplete(object sender, DevComponents.DotNetBar.SuperGrid.GridDataBindingCompleteEventArgs e) //{ // var rows = e.GridPanel.Rows; // foreach (GridRow row in rows) // { // row.Cells["stockAmount"].Value = StringUtils.FormatDataTwoDigit(Convert.ToDecimal(row.Cells["stockAmount"].Value)); // row.Cells["stockCost"].Value = StringUtils.FormatDataTwoDigit(Convert.ToDecimal(row.Cells["stockCost"].Value)); // } //} private void OnPageChange(object obj) { queryClick(obj, null); } } }