411 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			411 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			C#
		
	
	
	
|  | using System; | |||
|  | using System.Collections.Generic; | |||
|  | using System.ComponentModel; | |||
|  | using System.Drawing; | |||
|  | using System.Text; | |||
|  | using System.Windows.Forms; | |||
|  | 
 | |||
|  | using System.Collections.Specialized; | |||
|  | using System.Data; | |||
|  |   | |||
|  |   | |||
|  | using System.Collections; | |||
|  | namespace DeiNiu.Wms.CE | |||
|  | { | |||
|  |     public partial class LocationStockInit : basicForm | |||
|  |     { | |||
|  |         #region 界面初始化 | |||
|  |         //public int page = 0; | |||
|  | 
 | |||
|  |         string gooodsid = string.Empty; | |||
|  |         int ye = 0; | |||
|  |         int index = 0; | |||
|  |         int skuId = 0; | |||
|  |         DataTable dt = new DataTable(); | |||
|  |         bool isFromErpStock = false; | |||
|  |         public LocationStockInit() | |||
|  |         { | |||
|  |             setTitle(); | |||
|  |             InitializeComponent(); | |||
|  |            focusOn( goodscode_txt,"商品条码"); | |||
|  |         } | |||
|  |         private void BarCodeStorage_Load(object sender, EventArgs e) | |||
|  |         { | |||
|  |             | |||
|  |         } | |||
|  |         #endregion | |||
|  |         /// <summary> | |||
|  |         /// 扫描商品条码,获取数据 | |||
|  |         /// </summary> | |||
|  |         /// <param name="sender"></param> | |||
|  |         /// <param name="e"></param> | |||
|  |         ///  | |||
|  |         private void goodscode_txt_KeyUp(object sender, KeyEventArgs e) | |||
|  |         { | |||
|  |             if (e.KeyCode != Keys.Enter) | |||
|  |             { | |||
|  |                 return; | |||
|  |             } | |||
|  |             isFromErpStock = chkErp.Checked; | |||
|  | 
 | |||
|  | 
 | |||
|  | 
 | |||
|  | 
 | |||
|  |             string barcode = goodscode_txt.Text.Trim(); | |||
|  |             if (barcode.Length < 8) | |||
|  |             { | |||
|  |                 focusOn(goodscode_txt, "商品条码"); return; | |||
|  |             } | |||
|  |             goodscode_txt.Text = ""; | |||
|  |               | |||
|  |             Cursor.Current = System.Windows.Forms.Cursors.WaitCursor; | |||
|  |             try | |||
|  |             { | |||
|  |                 if (isFromErpStock) | |||
|  |                 { | |||
|  |                     dt = client.getGoodsERPStoreByBarcode(barcode); | |||
|  |                 } | |||
|  |                 else | |||
|  |                 { | |||
|  |                     dt = client.getGoodsPackByBarcode(barcode); | |||
|  |                 } | |||
|  |             } | |||
|  |             catch (Exception er) | |||
|  |             { | |||
|  |                 Cursor.Current = System.Windows.Forms.Cursors.Default; | |||
|  |                 showErrorMsg(er); | |||
|  | 
 | |||
|  |                 return; | |||
|  |             } | |||
|  |             Cursor.Current = System.Windows.Forms.Cursors.Default;   | |||
|  | 
 | |||
|  | 
 | |||
|  | 
 | |||
|  |             if (dt.Rows.Count > 0) | |||
|  |             {   | |||
|  |                 | |||
|  |                 ye = dt.Rows.Count; | |||
|  | 
 | |||
|  |                 up_bt.Visible = down_bt.Visible = true; | |||
|  | 
 | |||
|  |                 SetValue(index, dt); | |||
|  |                 focusOn(count_txt); | |||
|  |             } | |||
|  | 
 | |||
|  |             else | |||
|  |             { | |||
|  |                 clear(); | |||
|  |             } | |||
|  | 
 | |||
|  |         } | |||
|  | 
 | |||
|  | 
 | |||
|  |          | |||
|  |         /// <summary> | |||
|  |         /// 绑定数据到界面 | |||
|  |         /// </summary> | |||
|  |         /// <param name="index0"></param> | |||
|  |         /// <param name="GetData"></param> | |||
|  |         private void SetValue(int index0, DataTable dt) | |||
|  |         { | |||
|  | 
 | |||
|  |             ye = dt.Rows.Count; | |||
|  |             row_lab.Text = String.Format("{0}/{1}页", ye > 0 ? index0 + 1 : index0, ye); | |||
|  |             down_bt.Enabled = up_bt.Enabled = true; | |||
|  |             if (ye < 2) | |||
|  |             { | |||
|  |                 up_bt.Enabled = down_bt.Enabled = false; | |||
|  |             } | |||
|  |             else | |||
|  |             { | |||
|  | 
 | |||
|  |                 if (index0 == 0)  //首页 | |||
|  |                 { | |||
|  |                     up_bt.Enabled = false; | |||
|  |                 } | |||
|  |                 else if ((index0 + 1) == ye) //最后一页 | |||
|  |                 { | |||
|  |                     down_bt.Enabled = false; | |||
|  |                 } | |||
|  | 
 | |||
|  |             } | |||
|  | 
 | |||
|  | 
 | |||
|  |             int y =  index0; | |||
|  |           //  skuId = Convert.ToInt16(dt.Rows[y]["skuId"].ToString());  //初始盘点,skuid =0 | |||
|  |             gooodsid = dt.Rows[y]["goodsId"].ToString();//商品id | |||
|  |        | |||
|  |             name_lab.Text = dt.Rows[y]["goodsName"].ToString();//品名 | |||
|  |          | |||
|  |             spec_lab.Text = dt.Rows[y]["spec"].ToString();//规格 | |||
|  |      | |||
|  |             PCompany_lab.Text = dt.Rows[y]["manufacturer"].ToString();//生产厂商 | |||
|  |             if (isFromErpStock) | |||
|  |             { | |||
|  |                 txtBatch.Text = dt.Rows[y]["batch"].ToString();//批号 | |||
|  | 
 | |||
|  |                 txtPrdDate.Text = dt.Rows[y]["productDate"].ToString();//生产日期 | |||
|  | 
 | |||
|  |                 txtValidDate.Text = dt.Rows[y]["validDate"].ToString();//有效期 | |||
|  | 
 | |||
|  |                 oldcount_lab.Text = dt.Rows[y]["count"].ToString();//erp库存数量 | |||
|  |             } | |||
|  |             count_txt.Text = oldcount_lab.Text; | |||
|  |            // Stocknum_lab.Text = "库存:" + oldcount_lab.Text; | |||
|  |        | |||
|  |             unit_lab.Text = dt.Rows[y]["unit"].ToString(); ;//单位  | |||
|  |              | |||
|  | 
 | |||
|  |         } | |||
|  |         /// <summary> | |||
|  |         /// 扫描货位码 | |||
|  |         /// </summary> | |||
|  |         /// <param name="sender"></param> | |||
|  |         /// <param name="e"></param> | |||
|  |         private void lacationid_txt_KeyUp(object sender, KeyEventArgs e) | |||
|  |         { | |||
|  | 
 | |||
|  |             if (e.KeyCode == Keys.Enter) | |||
|  |             { | |||
|  |                 string locId = lacationid_txt.Text; | |||
|  |                 lacationid_txt.Text = ""; | |||
|  |                 lacationid_lab.Text = locId; | |||
|  |                 if (locId.Length < 7) | |||
|  |                 { | |||
|  |                     MessageBox.Show("请扫货位条码"); | |||
|  |                     return; | |||
|  |                 } | |||
|  |                 if (cb1.Checked) | |||
|  |                 { | |||
|  |                     #region 根据货位显示信息 | |||
|  | 
 | |||
|  |                    | |||
|  |                     DataTable dta = null; | |||
|  |                    | |||
|  |                     Cursor.Current = System.Windows.Forms.Cursors.WaitCursor; | |||
|  |                     try | |||
|  |                     { | |||
|  |                         dta = client.getStockLocation(locId); | |||
|  |                     } | |||
|  |                     catch (Exception er) | |||
|  |                     { | |||
|  |                         Cursor.Current = System.Windows.Forms.Cursors.Default; | |||
|  |                         MessageBox.Show("发生错误:" + er.Message); | |||
|  | 
 | |||
|  |                         return; | |||
|  |                     } | |||
|  |                     Cursor.Current = System.Windows.Forms.Cursors.Default;   | |||
|  | 
 | |||
|  | 
 | |||
|  | 
 | |||
|  |                    if (dta.Rows.Count > 0) | |||
|  |                    { | |||
|  | 
 | |||
|  |                        up_bt.Visible = down_bt.Visible = label17.Visible = oldcount_lab.Visible = false; | |||
|  |                        SetValue(0, dta); | |||
|  |                       | |||
|  | 
 | |||
|  | 
 | |||
|  |                    } | |||
|  |                    else | |||
|  |                    { | |||
|  | 
 | |||
|  |                        clear(); | |||
|  |                        MessageBox.Show("货位为空!!!"); | |||
|  |                    } | |||
|  | 
 | |||
|  |                      | |||
|  |                     #endregion | |||
|  |                 } | |||
|  |                 else | |||
|  |                 { | |||
|  |                     #region 盘点入库--初始化 | |||
|  |                     label17.Visible = oldcount_lab.Visible = true; | |||
|  |                     decimal count =0m; | |||
|  |                     try | |||
|  |                     { | |||
|  |                         count = Convert.ToDecimal(count_txt.Text); | |||
|  |                         if (count  <= 0) | |||
|  |                         { | |||
|  |                             MessageBox.Show("入库数量必须大于0"); | |||
|  |                             count_txt.SelectAll(); | |||
|  |                             count_txt.Focus(); | |||
|  |                             return; | |||
|  |                         } | |||
|  |                     } | |||
|  |                     catch | |||
|  |                     { | |||
|  |                         MessageBox.Show("入库数量必须大于0的数字"); | |||
|  |                         count_txt.SelectAll(); | |||
|  |                         count_txt.Focus(); | |||
|  |                         return; | |||
|  |                     } | |||
|  | 
 | |||
|  |                     string  batch = ""; | |||
|  | 
 | |||
|  | 
 | |||
|  |                     string prdDate = txtPrdDate.Text; | |||
|  |                     string validDate = txtValidDate.Text; | |||
|  |                     | |||
|  |                     batch = txtBatch.Text; | |||
|  |                     if (String.IsNullOrEmpty(batch)) | |||
|  |                     { | |||
|  |                         batch = prdDate; | |||
|  |                     } | |||
|  | 
 | |||
|  |                     if (String.IsNullOrEmpty(prdDate)) | |||
|  |                     { | |||
|  |                         focusOn(txtPrdDate ); | |||
|  |                         return; | |||
|  |                     } | |||
|  | 
 | |||
|  | 
 | |||
|  |                     if (String.IsNullOrEmpty(validDate)) | |||
|  |                     { | |||
|  |                         focusOn(txtValidDate); | |||
|  |                         return; | |||
|  |                     } | |||
|  | 
 | |||
|  |                     string[] skuKeys = { "生产日期", "到期日期", "厂家批次" }; | |||
|  |                     string[] skuValues = { prdDate, validDate, batch }; | |||
|  |                       | |||
|  |                     lacationid_lab.Text = locId; | |||
|  | 
 | |||
|  |                     enumRepResult result ;  | |||
|  |                     Cursor.Current = System.Windows.Forms.Cursors.WaitCursor; | |||
|  |                     try | |||
|  |                     { | |||
|  |                        // result = (enumRepResult)client.upDownStockLocation(locId, gooodsid, skuId, txtBatch.Text, count, (int)enumStockRecordType.初始盘点, LoginInfo.UserId, LoginInfo.Token, -1); | |||
|  |                         result = (enumRepResult)client.initialStockIn(gooodsid,locId,   count,skuKeys, skuValues,  LoginInfo.UserId, LoginInfo.Token ); | |||
|  |                                                    | |||
|  |           | |||
|  |                     } | |||
|  |                     catch (Exception er) | |||
|  |                     { | |||
|  |                         Cursor.Current = System.Windows.Forms.Cursors.Default; | |||
|  |                         MessageBox.Show("发生错误:" + er.Message); | |||
|  |                         showErrorMsg(er ); | |||
|  |                         return; | |||
|  |                     } | |||
|  |                     Cursor.Current = System.Windows.Forms.Cursors.Default;   | |||
|  |   | |||
|  | 
 | |||
|  |                     MessageBox.Show(result.ToString()); | |||
|  | 
 | |||
|  | 
 | |||
|  | 
 | |||
|  |                     if (result == enumRepResult.成功) | |||
|  |                     { | |||
|  |                         if (ye < 2) | |||
|  |                         { | |||
|  | 
 | |||
|  |                             clear(); | |||
|  | 
 | |||
|  |                         } | |||
|  |                         lacationid_lab.Text = ""; | |||
|  |                         goodscode_txt.Focus(); | |||
|  |                         | |||
|  | 
 | |||
|  |                     } | |||
|  |                     lacationid_lab.Text = lacationid_txt.Text = ""; | |||
|  | 
 | |||
|  |   | |||
|  | 
 | |||
|  |                     #endregion | |||
|  |                 } | |||
|  |             } | |||
|  | 
 | |||
|  |         } | |||
|  |         /// <summary> | |||
|  |         /// 上一页 | |||
|  |         /// </summary> | |||
|  |         /// <param name="sender"></param> | |||
|  |         /// <param name="e"></param> | |||
|  |         private void up_bt_Click(object sender, EventArgs e) | |||
|  |         { | |||
|  | 
 | |||
|  |             if (index < ye) | |||
|  |             { | |||
|  |                 index--; | |||
|  |                 SetValue(index, dt); | |||
|  |             } | |||
|  | 
 | |||
|  |         } | |||
|  |         /// <summary> | |||
|  |         /// 下一页 | |||
|  |         /// </summary> | |||
|  |         /// <param name="sender"></param> | |||
|  |         /// <param name="e"></param> | |||
|  |         private void down_bt_Click(object sender, EventArgs e) | |||
|  |         { | |||
|  |             if (index < ye) | |||
|  |             { | |||
|  |                 index++; | |||
|  |                 SetValue(index, dt); | |||
|  |             } | |||
|  | 
 | |||
|  |         } | |||
|  | 
 | |||
|  |         private void cb1_CheckStateChanged(object sender, EventArgs e) | |||
|  |         { | |||
|  |             if (cb1.Checked) | |||
|  |             { | |||
|  |                 goodscode_txt.ReadOnly = true; | |||
|  |                 clear(); | |||
|  |                 lacationid_txt.Focus(); | |||
|  |             } | |||
|  |             else | |||
|  |             { | |||
|  |                 goodscode_txt.ReadOnly = false; | |||
|  |                 clear(); | |||
|  |                 | |||
|  |                 goodscode_txt.Focus(); | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  | 
 | |||
|  |         private void clear() | |||
|  |         { | |||
|  |            row_lab.Text= name_lab.Text = txtBatch.Text = txtPrdDate.Text = txtValidDate.Text | |||
|  |                            = count_txt.Text = lacationid_lab.Text = PCompany_lab.Text = spec_lab.Text = oldcount_lab.Text = row_lab.Text = ""; | |||
|  |             ye = 0; | |||
|  |             index = 0; | |||
|  |             gooodsid = string.Empty; | |||
|  |             up_bt.Enabled = down_bt.Enabled = false; | |||
|  |         } | |||
|  | 
 | |||
|  |         private void count_txt_KeyUp(object sender, KeyEventArgs e) | |||
|  |         { | |||
|  | 
 | |||
|  |             if (e.KeyCode == Keys.Enter) | |||
|  |             { | |||
|  |                 decimal count = 0m; | |||
|  |                 try | |||
|  |                 { | |||
|  |                     count = Convert.ToDecimal(count_txt.Text); | |||
|  |                     if (count <= 0) | |||
|  |                     { | |||
|  | 
 | |||
|  |                         focusOn(count_txt, "入库数量必须大于0"); | |||
|  |                           | |||
|  |                         return; | |||
|  |                     } | |||
|  |                 } | |||
|  |                 catch | |||
|  |                 {  | |||
|  |                     focusOn(count_txt, "入库数量必须大于0的数字"); | |||
|  |                     return; | |||
|  |                 } | |||
|  | 
 | |||
|  | 
 | |||
|  |                 focusOn(lacationid_txt); | |||
|  | 
 | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         | |||
|  |        | |||
|  |         | |||
|  | 
 | |||
|  |     } | |||
|  | } |