447 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			447 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 StockPandianPick : basicForm | |||
|  |     { | |||
|  |         #region 界面初始化 | |||
|  |         //public int page = 0; | |||
|  |         string orderNo = ""; | |||
|  |         int skuId = 0; | |||
|  |         DataTable dt = new DataTable(); | |||
|  |         public StockPandianPick() | |||
|  |         { | |||
|  |             setTitle(); | |||
|  |             InitializeComponent(); | |||
|  |             lacationid_txt.Focus(); | |||
|  |         } | |||
|  |         private void StockPandianPick_Load(object sender, EventArgs e) | |||
|  |         { | |||
|  | 
 | |||
|  |             DataTable dta = null; | |||
|  | 
 | |||
|  |             Cursor.Current = System.Windows.Forms.Cursors.WaitCursor; | |||
|  |             try | |||
|  |             { | |||
|  |                 dta = client.getPandianOrders(0, 1);//.getStockLocation(locId); | |||
|  |             } | |||
|  |             catch (Exception er) | |||
|  |             { | |||
|  |                 Cursor.Current = System.Windows.Forms.Cursors.Default; | |||
|  |                 MessageBox.Show("发生错误:" + er.Message); | |||
|  | 
 | |||
|  |                 return; | |||
|  |             } | |||
|  |             Cursor.Current = System.Windows.Forms.Cursors.Default; | |||
|  | 
 | |||
|  |             skuId_txt.ReadOnly = dta.Rows.Count == 0; | |||
|  |             this.lacationid_txt.ReadOnly = dta.Rows.Count == 0; | |||
|  |             this.count_txt.ReadOnly = dta.Rows.Count == 0;  | |||
|  |             if (dta.Rows.Count > 0) | |||
|  |             { | |||
|  |                 this.orderNo_lab.Text = dta.Rows[0]["orderNo"].ToString();//pandian orderno | |||
|  | 
 | |||
|  |                 this.start_date_lab.Text = dta.Rows[0]["startTime"].ToString();//start date  | |||
|  |                 | |||
|  |                 orderNo = this.orderNo_lab.Text; | |||
|  |                | |||
|  | 
 | |||
|  | 
 | |||
|  |             } | |||
|  |             else | |||
|  |             { | |||
|  |                 clear();  | |||
|  |                 MessageBox.Show("没有盘点任务"); | |||
|  |             } | |||
|  |         } | |||
|  |         #endregion | |||
|  |         /// <summary> | |||
|  |         /// 扫描SKUID  | |||
|  |         /// </summary> | |||
|  |         /// <param name="sender"></param> | |||
|  |         /// <param name="e"></param> | |||
|  |         ///  | |||
|  |         private void skuId_txt_KeyUp(object sender, KeyEventArgs e) | |||
|  |         { | |||
|  |             if (e.KeyCode != Keys.Enter) | |||
|  |             { | |||
|  |                 return; | |||
|  |             } | |||
|  | 
 | |||
|  |             if (skuId_txt.Text.Length>0 && skuId_txt.Text.Length < 2) | |||
|  |             { | |||
|  |                 return; | |||
|  |             } | |||
|  |             if (skuId_txt.Text.Length > 0) | |||
|  |             { | |||
|  |                 try | |||
|  |                 { | |||
|  |                     int skuId = Convert.ToInt16(skuId_txt.Text); | |||
|  |                 } | |||
|  |                 catch | |||
|  |                 { | |||
|  |                     focusOn(skuId_txt, "Sku ID"); | |||
|  |                     return; | |||
|  |                 } | |||
|  | 
 | |||
|  |                 count_txt.Enabled = true; | |||
|  |                 lacationid_txt.Enabled = skuId_txt.Enabled = !count_txt.Enabled;  | |||
|  | 
 | |||
|  |                 focusOn(count_txt); | |||
|  |                  | |||
|  |             } | |||
|  |             else | |||
|  |             { | |||
|  |                 txtBarcode.Enabled = true; | |||
|  |                 focusOn(txtBarcode, "商品条码"); | |||
|  |                 lacationid_txt.Enabled = skuId_txt.Enabled = !txtBarcode.Enabled;  | |||
|  | 
 | |||
|  | 
 | |||
|  |             } | |||
|  | 
 | |||
|  |            | |||
|  |         } | |||
|  | 
 | |||
|  | 
 | |||
|  |          | |||
|  |         /// <summary> | |||
|  |         /// 绑定数据到界面 | |||
|  |         /// </summary> | |||
|  |         /// <param name="index0"></param> | |||
|  |         /// <param name="GetData"></param> | |||
|  |         private void SetValue(int index0, DataTable dt) | |||
|  |         { | |||
|  |             this.skuId_txt.Text = dt.Rows[0]["skuId"].ToString();//skuId | |||
|  | 
 | |||
|  |             this.count_txt.Text = dt.Rows[0]["count"].ToString();//count | |||
|  |             skuId_txt.SelectAll(); | |||
|  |             skuId_txt.Focus(); | |||
|  | 
 | |||
|  |         } | |||
|  |         /// <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 = ""; | |||
|  |               | |||
|  |                 if (locId.Length < 7) | |||
|  |                 { | |||
|  |                     MessageBox.Show("请扫货位条码"); | |||
|  |                     return; | |||
|  |                 } | |||
|  |                 if (cb1.Checked) | |||
|  |                 { | |||
|  |                     #region 根据货位显示已采集信息 | |||
|  | 
 | |||
|  |                    | |||
|  |                     DataTable dta = null; | |||
|  |                    | |||
|  |                     Cursor.Current = System.Windows.Forms.Cursors.WaitCursor; | |||
|  |                     try | |||
|  |                     { | |||
|  |                         dta = client.getPandianItem(orderNo,locId);//.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) | |||
|  |                    {  | |||
|  |                        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; | |||
|  |                     } | |||
|  |                     lacationid_lab.Text = locId; | |||
|  | 
 | |||
|  |                     enumRepResult result ;  | |||
|  |                     Cursor.Current = System.Windows.Forms.Cursors.WaitCursor; | |||
|  |                     try | |||
|  |                     { | |||
|  |                         result = (enumRepResult)client.upDownStockLocation(locId, gooodsid, skuId, batch_lab.Text, count, (int)enumStockRecordType.初始盘点, LoginInfo.UserId, LoginInfo.Token, -1); | |||
|  |                     } | |||
|  |                     catch (Exception er) | |||
|  |                     { | |||
|  |                         Cursor.Current = System.Windows.Forms.Cursors.Default; | |||
|  |                         MessageBox.Show("发生错误:" + er.Message); | |||
|  | 
 | |||
|  |                         return; | |||
|  |                     } | |||
|  |                     Cursor.Current = System.Windows.Forms.Cursors.Default;   | |||
|  |   | |||
|  | 
 | |||
|  |                     MessageBox.Show(result.ToString()); | |||
|  | 
 | |||
|  | 
 | |||
|  | 
 | |||
|  |                     if (result == enumRepResult.成功) | |||
|  |                     { | |||
|  |                         if (ye < 2) | |||
|  |                         { | |||
|  | 
 | |||
|  |                             clear(); | |||
|  | 
 | |||
|  |                         } | |||
|  |                         lacationid_lab.Text = ""; | |||
|  |                         skuId_txt.Focus(); | |||
|  |                         | |||
|  | 
 | |||
|  |                     } | |||
|  |                     lacationid_lab.Text = lacationid_txt.Text = ""; | |||
|  | 
 | |||
|  |   */ | |||
|  | 
 | |||
|  |                     #endregion  | |||
|  |                 } | |||
|  |                 skuId_txt.Enabled = true; | |||
|  |                  lacationid_txt.Enabled = count_txt.Enabled = !skuId_txt.Enabled; | |||
|  |                 skuId_txt.Focus(); | |||
|  |             } | |||
|  | 
 | |||
|  |         } | |||
|  |          | |||
|  | 
 | |||
|  |         private void cb1_CheckStateChanged(object sender, EventArgs e) | |||
|  |         {/* | |||
|  |             if (cb1.Checked) | |||
|  |             { | |||
|  |                 skuId_txt.ReadOnly = true; | |||
|  |                 clear(); | |||
|  |                 lacationid_txt.Focus(); | |||
|  |             } | |||
|  |             else | |||
|  |             { | |||
|  |                 skuId_txt.ReadOnly = false; | |||
|  |                 clear(); | |||
|  |                 | |||
|  |                 skuId_txt.Focus(); | |||
|  |             } | |||
|  |           */ | |||
|  |         } | |||
|  | 
 | |||
|  | 
 | |||
|  |         private void clear() | |||
|  |         { | |||
|  |           txtBatch.Text=txtBarcode.Text= skuId_txt.Text = count_txt.Text = this.lacationid_txt.Text  = ""; | |||
|  |            lacationid_txt.Enabled = true; | |||
|  |            skuId_txt.Enabled = count_txt.Enabled =  lacationid_txt.Enabled;  | |||
|  |            dtpProduct.Value = DateTime.Now.AddDays(2); | |||
|  |            lacationid_txt.Focus(); | |||
|  | 
 | |||
|  |            txtBarcode.Text = "6902015000001"; | |||
|  |            lacationid_txt.Text = "YL.26.06.45"; | |||
|  |            count_txt.Text = "1"; | |||
|  | 
 | |||
|  |         } | |||
|  | 
 | |||
|  |         private void count_txt_KeyUp(object sender, KeyEventArgs e) | |||
|  |         { | |||
|  |             //to record the record to db | |||
|  |             if (e.KeyCode != Keys.Enter) | |||
|  |             { | |||
|  |                 return; | |||
|  |             } | |||
|  |             decimal count = 0m;  | |||
|  |             int skuId =0; | |||
|  |             string locId = lacationid_txt.Text; | |||
|  |             string batch = txtBatch.Text; | |||
|  |             string prdDate = dtpProduct.Value.ToShortDateString(); | |||
|  |             string barcode = txtBarcode.Text; | |||
|  | 
 | |||
|  |             try | |||
|  |             { | |||
|  |                 count = Convert.ToDecimal(count_txt.Text.ToString()); | |||
|  |             } | |||
|  |             catch | |||
|  |             { | |||
|  |                  | |||
|  |                 focusOn( count_txt,"请输入数量!"); | |||
|  |                 return; | |||
|  |             } | |||
|  | 
 | |||
|  |            try | |||
|  |             { | |||
|  |                 if (skuId_txt.Text.Trim().Length > 0) | |||
|  |                 { | |||
|  |                     skuId = Convert.ToInt32(skuId_txt.Text); | |||
|  |                 } | |||
|  |             } | |||
|  |             catch | |||
|  |             { | |||
|  | 
 | |||
|  |                 focusOn(skuId_txt, "sku ID 错误"); | |||
|  |                 return; | |||
|  |             } | |||
|  | 
 | |||
|  |            if (String.IsNullOrEmpty(locId)) | |||
|  |            { | |||
|  |                focusOn(lacationid_txt, "货位条码"); | |||
|  |                return; | |||
|  |            } | |||
|  | 
 | |||
|  |            if (skuId == 0) //需输入批次信息 | |||
|  |            { | |||
|  |                if(string.IsNullOrEmpty(barcode.Trim())){ | |||
|  | 
 | |||
|  |                    focusOn(txtBarcode, "商品条码"); | |||
|  |                    return; | |||
|  | 
 | |||
|  |                } | |||
|  |                if (dtpProduct.Value.Date == DateTime.Now.AddDays(2).Date) | |||
|  |                { | |||
|  |                    MessageBox.Show("请输入生产日期"); | |||
|  |                    dtpProduct.Focus(); | |||
|  |                    return; | |||
|  |                } | |||
|  | 
 | |||
|  |                if(string.IsNullOrEmpty(batch)){ | |||
|  |                    batch = prdDate; | |||
|  |                } | |||
|  | 
 | |||
|  | 
 | |||
|  |            } | |||
|  | 
 | |||
|  |            | |||
|  | 
 | |||
|  | 
 | |||
|  |             try | |||
|  |             {  | |||
|  |                 Cursor.Current = System.Windows.Forms.Cursors.WaitCursor; | |||
|  | 
 | |||
|  |                bool result =  client.newPandianItem(orderNo,locId,skuId,barcode,prdDate,batch, count , LoginInfo.UserId, LoginInfo.Token); | |||
|  | 
 | |||
|  |                 Cursor.Current = System.Windows.Forms.Cursors.Default; | |||
|  | 
 | |||
|  |                 if (!result ) | |||
|  |                 { | |||
|  | 
 | |||
|  |                     MessageBox.Show("盘点失败"  );  | |||
|  |                     return; | |||
|  |                 } | |||
|  |                 else | |||
|  |                 { | |||
|  |                      | |||
|  |                     clear(); | |||
|  |                     return; | |||
|  |                 } | |||
|  | 
 | |||
|  |                  | |||
|  | 
 | |||
|  | 
 | |||
|  |             } | |||
|  |             catch (Exception er) | |||
|  |             { | |||
|  |                 showErrorMsg(er); | |||
|  |                 Cursor.Current = System.Windows.Forms.Cursors.Default; | |||
|  |             } | |||
|  | 
 | |||
|  |             clear(); | |||
|  | 
 | |||
|  | 
 | |||
|  |         } | |||
|  | 
 | |||
|  |         private void dtpProduct_ValueChanged(object sender, EventArgs e) | |||
|  |         { | |||
|  |             | |||
|  |             txtBatch.Enabled = true; | |||
|  |             focusOn(txtBatch); | |||
|  | 
 | |||
|  |         } | |||
|  | 
 | |||
|  |         private void txtBarcode_KeyUp(object sender, KeyEventArgs e) | |||
|  |         { | |||
|  |             if (e.KeyCode != Keys.Enter) | |||
|  |             { | |||
|  |                 return; | |||
|  |             } | |||
|  | 
 | |||
|  |             if (string.IsNullOrEmpty(txtBarcode.Text)) | |||
|  |             { | |||
|  | 
 | |||
|  |                 focusOn(txtBarcode, "商品条码"); | |||
|  | 
 | |||
|  | 
 | |||
|  |             } | |||
|  |             else | |||
|  |             {  | |||
|  |                 dtpProduct.Focus(); | |||
|  | 
 | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |           | |||
|  | 
 | |||
|  |         private void txtBatch_KeyUp(object sender, KeyEventArgs e) | |||
|  |         { | |||
|  |             if (e.KeyCode != Keys.Enter) | |||
|  |             { | |||
|  |                 return; | |||
|  |             } | |||
|  |             count_txt.Enabled = true; | |||
|  | 
 | |||
|  |             focusOn(count_txt); | |||
|  |              | |||
|  |         } | |||
|  | 
 | |||
|  |         | |||
|  | 
 | |||
|  |        | |||
|  |         | |||
|  | 
 | |||
|  |     } | |||
|  | } |