2561 lines
		
	
	
		
			93 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			2561 lines
		
	
	
		
			93 KiB
		
	
	
	
		
			C#
		
	
	
	
| using System;
 | ||
| using System.Collections.Generic;
 | ||
| using System.ComponentModel;
 | ||
| using System.Data;
 | ||
| using System.Drawing;
 | ||
| using System.Text;
 | ||
| using System.Linq;
 | ||
| using System.Windows.Forms;
 | ||
| using DevExpress.XtraBars;
 | ||
| using DevExpress.XtraGrid.Views.Base;
 | ||
| //using DeiNiu.wms.Logical;
 | ||
| using DeiNiu.wms.Data;
 | ||
| using DevExpress.XtraGrid.Columns;
 | ||
|  
 | ||
| using System.Threading;
 | ||
| using DevExpress.XtraGrid.Views.Grid;
 | ||
| using DevExpress.XtraEditors.DXErrorProvider;
 | ||
| using DeiNiu.wms.Data.Model;
 | ||
| using DevExpress.XtraEditors;
 | ||
| using DevExpress.XtraEditors.Controls;
 | ||
| using DeiNiu.Utils;
 | ||
| using DeiNiu.wms.win.ServiceReferenceStockOutPickRequest;
 | ||
| using System.ServiceModel;
 | ||
| using DeiNiu.wms.win.utils.print;
 | ||
| using DevExpress.XtraLayout;
 | ||
| using DeiNiu.wms.win.ServiceReferenceLot;
 | ||
| 
 | ||
| 
 | ||
| namespace DeiNiu.wms.win
 | ||
| {
 | ||
|     public partial class GoodsOutValidationForm : BasicRibbonForm
 | ||
|     {
 | ||
| 
 | ||
|       
 | ||
|       //  lWmsStock ls = new lWmsStock();
 | ||
|         //lWmsOutPickRequest lgt = new lWmsOutPickRequest();
 | ||
|         //lWmsOutRequest lgOutReq = new lWmsOutRequest();
 | ||
|        // lWmsOutPickRequest outPickRequest = new lWmsOutPickRequest();
 | ||
|       //  private string lastQuery = "";
 | ||
|         DataSet dsPickOrders;
 | ||
| 
 | ||
|         private DataTable dtPickOrders;
 | ||
|         private DataTable dtPickOrdersDetail;
 | ||
|         private DataTable dtPickOrders4Validation;
 | ||
|         private DataTable dtPickOrdersValidated;
 | ||
|         private DataTable dtPickDetails;
 | ||
|         private DataTable dtExceptionSolutions;
 | ||
|         private int selectedRowIndex = -1;
 | ||
|         private WmsOutPickDetail_tmp currentDetail;
 | ||
|         string lastScanBarcode = "";
 | ||
|         bool isDoubleChk = false;
 | ||
|        
 | ||
|       //  Thread threadPreProcess;
 | ||
|         bool autoOrder;
 | ||
|         string currentPickOrder = "";
 | ||
|         string currentWave = "";
 | ||
|         string boxWave = "";
 | ||
|         int boxDesk = 0;
 | ||
|         Dictionary<string, string> isDoublChk = new Dictionary<string, string>();  
 | ||
|            
 | ||
|         public GoodsOutValidationForm()
 | ||
|         {
 | ||
|             InitializeComponent();
 | ||
|             initialControls();
 | ||
|             initialBackGroundTasks();
 | ||
|             initialTimer();
 | ||
|             isDoublChk.Add("N", "否");
 | ||
|             isDoublChk.Add("Y", "是");
 | ||
|         }
 | ||
|         #region initialControls
 | ||
|         private void initialControls()
 | ||
|         {
 | ||
|             initialComboBoxes();
 | ||
|            // initialPagerControls();
 | ||
|             initialDataGrid();
 | ||
|             initialQueryInput(); 
 | ||
|             setValidationRule();
 | ||
|             textEditBarcode.GotFocus += new EventHandler(textEditBarcode_GotFocus);
 | ||
|             textEditBarcode.MouseUp += new MouseEventHandler(textEditBarcode_MouseUp);
 | ||
|             txtBoxId.GotFocus += new EventHandler(textBoxId_GotFocus);
 | ||
|             txtBoxId.MouseUp += new MouseEventHandler(textBoxId_MouseUp);
 | ||
|             textEditValidCount.Enabled = false;
 | ||
|           //  this.checkEditPass.Enabled = false;
 | ||
|           //  layoutControlItem11.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
 | ||
|             combColors.Enabled= checkPermission(WmsConstants.SPECIAL_ALL_CHANGE_DESK_COLOR );
 | ||
|            // layoutControlGroup15.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
 | ||
| 
 | ||
|             spinBulkBag.Value = 1;
 | ||
|         
 | ||
|         }
 | ||
|         private void initialBackGroundTasks()
 | ||
|         {
 | ||
| 
 | ||
| 
 | ||
|             swAutoOrder.IsOn = WmsConstants.AUTO_PICK_BULK_VALIDATION_ORDER;
 | ||
|             autoOrder = swAutoOrder.IsOn;
 | ||
|            // lgOutReq.UpdateUIDelegate += updateValidationList;
 | ||
|             
 | ||
|             if (autoOrder)
 | ||
|             {
 | ||
|                 this.getValidationOrders();
 | ||
|             }
 | ||
|              
 | ||
|         }
 | ||
|         string oldDesk = "";
 | ||
|         private int desk
 | ||
|         {
 | ||
|             get
 | ||
|             {
 | ||
|                 if (combColors.SelectedIndex == -1)
 | ||
|                 {
 | ||
|                     showErrorMsg(null, "请选择控制台");
 | ||
| 
 | ||
|                     combColors.Focus();
 | ||
|                     return -1;
 | ||
|                 }
 | ||
|                 // return Convert.ToInt32( ((Node)combColors.SelectedItem).name);
 | ||
|                 if (oldDesk != combColors.Text)
 | ||
|                 {
 | ||
|                     oldDesk = combColors.Text;
 | ||
|                     writeConfig("Desk", combColors.Text);
 | ||
|                 }
 | ||
|                 int i = 0;
 | ||
|                 foreach (string v in enumColors.Values)
 | ||
|                 {
 | ||
|                     i++;
 | ||
|                     if (v == combColors.Text)
 | ||
|                     {
 | ||
|                         return i;
 | ||
|                     }
 | ||
|                 }
 | ||
|                 return 1;
 | ||
|             }
 | ||
|         }
 | ||
|         /*private int desk
 | ||
|         {
 | ||
|             get
 | ||
|             {
 | ||
|                 if (combColors.SelectedIndex == -1)
 | ||
|                 {
 | ||
|                     showErrorMsg(null, "请选择控制台");
 | ||
| 
 | ||
|                     combColors.Focus();
 | ||
|                     return -1;
 | ||
|                 }
 | ||
|                 return Convert.ToInt32(((Node)combColors.SelectedItem).name);
 | ||
|             }
 | ||
|         }
 | ||
|         */
 | ||
|         private void initialComboBoxes()
 | ||
|         {
 | ||
|             DataTable dtDesk = pickClient.getDeskList((int)enumDeskType.复核);
 | ||
| 
 | ||
|             List<string> desks = new List<string>();
 | ||
|             foreach (DataRow dr in dtDesk.Rows)
 | ||
|             {
 | ||
|                 desks.Add(dr["deskName"].ToString());
 | ||
|             }
 | ||
|             oldDesk = "-1";
 | ||
|             initialComboBoxs(this.combColors, desks.ToArray());
 | ||
|             oldDesk = System.Configuration.ConfigurationManager.AppSettings["Desk"];
 | ||
| 
 | ||
|             try
 | ||
|             {
 | ||
|                 int i = 0;
 | ||
|                 foreach (string desk in desks)
 | ||
|                 {
 | ||
| 
 | ||
|                     if (!string.IsNullOrEmpty(oldDesk) && oldDesk == desk)
 | ||
|                     {
 | ||
|                        
 | ||
|                         if (combColors.SelectedIndex == i)
 | ||
|                         {
 | ||
|                             queryOrders();
 | ||
|                         }
 | ||
|                         else 
 | ||
|                             combColors.SelectedIndex = i;
 | ||
|                     }
 | ||
|                     i++;
 | ||
|                 }
 | ||
| 
 | ||
|             }
 | ||
|             catch
 | ||
|             {
 | ||
|             }
 | ||
| 
 | ||
|             getDeskStatus();
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
|             Node[] nds = { };
 | ||
| 
 | ||
|             DataTable dt = Park.getDictionary(false);
 | ||
|             if (dt.Rows.Count == 0)
 | ||
|             {
 | ||
|                 return;
 | ||
|             }
 | ||
|             DataRow[] drs = dt.Select("flag >0"); 
 | ||
|             foreach (DataRow dr in drs)
 | ||
|             {
 | ||
|                 int flag = Convert.ToInt32(dr["flag"].ToString());
 | ||
|                 int parentId = Convert.ToInt32(dr["id"].ToString());
 | ||
|                 DataRow[] drss = Park.getDictionary(false).Select("parentId =" + parentId);
 | ||
|                 switch (flag)
 | ||
|                 {
 | ||
|                     case 2006:
 | ||
|                         initialComboBoxs(this.comValidException, drss,false); //
 | ||
|                         break;
 | ||
|                     
 | ||
|                     /*case 4001:
 | ||
|                         initialComboBoxs(this.combColors, drss,false); //复合台
 | ||
|                         if (combColors.Properties.Items.Count > 0)
 | ||
|                         {
 | ||
|                             combColors.SelectedIndex = 0;
 | ||
|                         }
 | ||
|                         break;
 | ||
|                         */
 | ||
|                     
 | ||
| 
 | ||
|                 }
 | ||
| 
 | ||
|             }
 | ||
|         }
 | ||
| 
 | ||
|         void getDeskStatus()
 | ||
|         {
 | ||
| 
 | ||
|             try
 | ||
|             {
 | ||
|                 WmsOutDesk wod = new WmsOutDesk();
 | ||
|                 DataTable dtdesk = pickClient.getDeskByColor(desk);
 | ||
|                 pickClient.Close();
 | ||
|                 if (dtdesk.Rows.Count > 0)
 | ||
|                 {
 | ||
|                     wod = new WmsOutDesk(dtdesk.Rows[0]);
 | ||
|                 }
 | ||
| 
 | ||
|                 swStatus.IsOn = !wod.available;
 | ||
| 
 | ||
|             }
 | ||
|             catch(Exception er)
 | ||
|             {
 | ||
|                 showErrorMsg(er);
 | ||
|             } 
 | ||
|         }
 | ||
|         private void setValidationRule()
 | ||
|         {
 | ||
|           //  dxValidationProvider.SetValidationRule(comWarehouse, ValidationRules.notEmptyValidationRule);
 | ||
|             //txtGoodType.Properties.MaxLength = 40;
 | ||
|             //txtGoodDesc.Properties.MaxLength = 250;
 | ||
|             //textEdit1.Properties.MaxLength = txtGoodType.Properties.MaxLength;
 | ||
|         }
 | ||
| 
 | ||
|         private void initialQueryInput()
 | ||
|         {
 | ||
| 
 | ||
|         }
 | ||
|         private void initialBoxColumns(GridView gridView1)
 | ||
|         {
 | ||
|             setupGridView(gridView1, false,false);
 | ||
|             //setupGridView(gridView2, false,false);
 | ||
|             //setupGridView(gridView3, false,false);
 | ||
|             //   gridviewGoodsType.PopulateColumns();
 | ||
|             gridView1.Columns.Clear();
 | ||
|             // gridviewGoodsType.Columns.Remove(gridviewGoodsType.Columns["DealerPrice"]); 
 | ||
|             GridColumn myCol0 = new GridColumn() { Caption = "ID", Visible = true, FieldName = "id" };
 | ||
|             myCol0.Visible = false;
 | ||
|             gridView1.Columns.Add(myCol0);
 | ||
|             GridColumn myCol1 = new GridColumn() { Caption = "颜色", Visible = true, FieldName = "color" };
 | ||
|             GridColumn myCol2 = new GridColumn() { Caption = "箱子编号", Visible = true, FieldName = "boxid" };
 | ||
|             GridColumn myCol3 = new GridColumn() { Caption = "容积", Visible = true, FieldName = "volume" };
 | ||
|             GridColumn myCol4 = new GridColumn() { Caption = "", Visible = true, FieldName = " " };
 | ||
|           
 | ||
|           //  gridView1.Columns.Add(myCol1);
 | ||
|     
 | ||
|             gridView1.Columns.Add(myCol2);
 | ||
|        
 | ||
|             gridView1.Columns.Add(myCol3);
 | ||
|             //to show bottom scroll bar 
 | ||
|             gridView1.OptionsView.ColumnAutoWidth = true;
 | ||
|             //   gridView1.BestFitColumns();
 | ||
|             gridView1.Focus();
 | ||
| 
 | ||
| 
 | ||
|             //    initialGridView2Columns();
 | ||
|             //gridControl2.DataSource = null;
 | ||
|         }
 | ||
|         private void initialDataGridColumns()
 | ||
|         {
 | ||
|             setupGridView(gridView1,false,false);
 | ||
|             //setupGridView(gridView2, false,false);
 | ||
|             //setupGridView(gridView3, false,false);
 | ||
|             //   gridviewGoodsType.PopulateColumns();
 | ||
|             gridView1.Columns.Clear();
 | ||
|             // gridviewGoodsType.Columns.Remove(gridviewGoodsType.Columns["DealerPrice"]); 
 | ||
|             GridColumn myCol0 = new GridColumn() { Caption = "ID", Visible = true, FieldName = "id" };
 | ||
|             myCol0.Visible = false;
 | ||
|             this.gridView1.Columns.Add(myCol0);
 | ||
|             GridColumn myCol1 = new GridColumn() { Caption = "单号", Visible = true, FieldName = WmsOutPickRequest.fields.pickOrderNo.ToString() };
 | ||
|          //   GridColumn myCol2 = new GridColumn() { Caption = "类别", Visible = true, FieldName = WmsOutPickRequest.fields.orderTypeName.ToString() };
 | ||
|             GridColumn myCol3 = new GridColumn() { Caption = "状态", Visible = true, FieldName = "orderState" };
 | ||
| 
 | ||
|             GridColumn myCol4 = new GridColumn() { Caption = "客户", Visible = true, FieldName = WmsOutPickRequest.fields.customerName. ToString() };
 | ||
|             GridColumn myCol5 = new GridColumn() { Caption = "备注", Visible = true, FieldName = WmsOutPickRequest.fields.description.ToString() };
 | ||
|             //GridColumn myCol6 = new GridColumn() { Caption = "日期", Visible = true, FieldName = WmsOutPickRequest.fields.orderDate.ToString() };
 | ||
|             GridColumn myCol7 = new GridColumn() { Caption = "波次", Visible = true, FieldName = "dpsOrder" };
 | ||
|             GridColumn myCol51 = new GridColumn() { Caption = "序号", Visible = true, FieldName = "xuhao" };
 | ||
|             GridColumn myCol52 = new GridColumn() { Caption = "状态", Visible = true, FieldName = "orderBulkPickstate" ,MinWidth=80};
 | ||
|             GridColumn myCol53 = new GridColumn() { Caption = "分拣单", Visible = true, FieldName = "pickOrderNo", MinWidth = 80 };
 | ||
| 
 | ||
|             
 | ||
|             this.gridView1.Columns.Add(myCol51);
 | ||
|             this.gridView1.Columns.Add(myCol52);
 | ||
|             this.gridView1.Columns.Add(myCol4);
 | ||
|             //  this.gridView1.Columns.Add(myCol1);
 | ||
|            // this.gridView1.Columns.Add(myCol7);
 | ||
|         
 | ||
|             this.gridView1.Columns.Add(myCol5);
 | ||
|             this.gridView1.Columns.Add(myCol53);
 | ||
| 
 | ||
|             //to show bottom scroll bar
 | ||
|             gridView1.OptionsView.ColumnAutoWidth = false;
 | ||
|             gridView1.BestFitColumns();
 | ||
|            // gridView1.Focus();
 | ||
| 
 | ||
| 
 | ||
|         //    initialGridView2Columns();
 | ||
|             //gridControl2.DataSource = null;
 | ||
|         }
 | ||
|         private void initialGridView2Columns(GridView gridview)
 | ||
|         {
 | ||
|             setupGridView(gridview, false, false, false);
 | ||
|             gridview.FocusRectStyle = DrawFocusRectStyle.None;
 | ||
|             //   gridviewGoodsType.PopulateColumns();
 | ||
|             gridview.Columns.Clear();
 | ||
|             // gridviewGoodsType.Columns.Remove(gridviewGoodsType.Columns["DealerPrice"]); 
 | ||
|             GridColumn myCol0 = new GridColumn() { Caption = "ID", Visible = true, FieldName = "id" };
 | ||
|             myCol0.Visible = false;
 | ||
|             gridview.Columns.Add(myCol0); 
 | ||
|             GridColumn myCol1 = new GridColumn() { Caption = "商品编码", Visible = true, FieldName = WmsGoods.fields.goodsId.ToString() };
 | ||
|             GridColumn myCol2 = new GridColumn() { Caption = "商品名称", Visible = true, FieldName = WmsGoods.exfields.goodsName.ToString() };
 | ||
|             GridColumn myCol3 = new GridColumn() { Caption = "厂家", Visible = true, FieldName = WmsGoods.exfields.manufacturer.ToString() };
 | ||
|             GridColumn myCol4 = new GridColumn() { Caption = "规格", Visible = true, FieldName = WmsGoods.exfields.spec.ToString() };
 | ||
|             GridColumn myCol5 = new GridColumn() { Caption = "单位", Visible = true, FieldName = WmsGoods.exfields.unit.ToString() };
 | ||
|             GridColumn myCol6 = new GridColumn() { Caption = "大包装数量", Visible = true, FieldName = WmsGoods.exfields.bigCount.ToString() };
 | ||
|             GridColumn myCol7 = new GridColumn() { Caption = "剂型", Visible = true, FieldName = WmsGoods.exfields.type.ToString() };
 | ||
|             GridColumn myCol8 = new GridColumn() { Caption = "商品类型", Visible = true, FieldName = WmsGoods.exfields.goodsTypeName.ToString() };
 | ||
|           //  GridColumn myCol9 = new GridColumn() { Caption = "大零", Visible = true, FieldName = WmsGoods.fields.bulkMax.ToString() };
 | ||
|         //    GridColumn myCol10 = new GridColumn() { Caption = "小整", Visible = true, FieldName = WmsGoods.fields.batchMax1.ToString() };
 | ||
|         //    GridColumn myCol11 = new GridColumn() { Caption = "大整", Visible = true, FieldName = WmsGoods.fields.batchMax2.ToString() };
 | ||
|             GridColumn myCol12 = new GridColumn() { Caption = "国药准字", Visible = true, FieldName = WmsGoods.exfields.regeditCode.ToString() };
 | ||
| 
 | ||
|             GridColumn myCol100 = new GridColumn() { Caption = "数量", Visible = true, FieldName = WmsOutDetail.fields.count.ToString() };
 | ||
|             GridColumn myCol101 = new GridColumn() { Caption = "应拣数量", Visible = true, FieldName = WmsOutDetail.fields.bulkCount.ToString() };
 | ||
|             GridColumn myCol102 = new GridColumn() { Caption = "双人复核", Visible = true, FieldName = "IsDouChk" };
 | ||
|            
 | ||
|             //   GridColumn myCol102 = new GridColumn() { Caption = "小整", Visible = true, FieldName = WmsOutDetail.fields.batch1Count.ToString() };
 | ||
|         //    GridColumn myCol103 = new GridColumn() { Caption = "大整", Visible = true, FieldName = WmsOutDetail.fields.batch2Count.ToString() };
 | ||
|          //   GridColumn myCol104 = new GridColumn() { Caption = "箱", Visible = true, FieldName = WmsOutDetail.fields.boxcnt.ToString() };
 | ||
|             GridColumn myCol14 = new GridColumn() { Caption = "批号", Visible = true, FieldName = WmsOutDetail.fields.batch.ToString() };
 | ||
|             GridColumn myCol15 = new GridColumn() { Caption = "生产日期", Visible = true, FieldName = WmsOutDetail.fields.productDate.ToString() };
 | ||
|             GridColumn myCol16 = new GridColumn() { Caption = "有效期", Visible = true, FieldName = WmsOutDetail.fields.validDate.ToString() };
 | ||
|             GridColumn myCol161 = new GridColumn() { Caption = "复核状态", Visible = true, FieldName = WmsOutPickDetail.fields.bulkPickState.ToString() };
 | ||
|             GridColumn myCol17 = new GridColumn() { Caption = "状态", Visible = true, FieldName = WmsOutDetail.fields.state.ToString() };
 | ||
|           //  GridColumn myCol18 = new GridColumn() { Caption = "说明", Visible = true, FieldName = WmsOutDetail.fields.description.ToString() };
 | ||
|               
 | ||
|             GridColumn myCol25 = new GridColumn() { Caption = "订单", Visible = true, FieldName = WmsOutRequest.fields.orderNo.ToString() };
 | ||
|           //  GridColumn myCol26 = new GridColumn() { Caption = "条码", Visible = true, FieldName =  "BarCode" };
 | ||
| 
 | ||
|           //  GridColumn myCol29 = new GridColumn() { Caption = "复核结果", Visible = true, FieldName = "validResult" };
 | ||
|           //  GridColumn myCol27 = new GridColumn() { Caption = "异常回馈", Visible = true, FieldName = "solution" };
 | ||
|           //  GridColumn myCol28 = new GridColumn() { Caption = "回馈说明", Visible = true, FieldName = WmsOutPickDetail.fields.solutionRemark.ToString() };
 | ||
|             GridColumn myCol30 = new GridColumn() { Caption = "复核数量", Visible = true, FieldName = WmsOutPickDetail.fields.confirmedCount.ToString() };
 | ||
|           
 | ||
|             GridColumn myCol130 = new GridColumn() { Caption = "skuId", Visible = true, FieldName = "skuId" };
 | ||
|          //   GridColumn myCol131 = new GridColumn() { Caption = "sku", Visible = true, FieldName = "skuCode" };
 | ||
|         //    GridColumn myCol132 = new GridColumn() { Caption = "货主", Visible = true, FieldName = "ownerName" };
 | ||
|             GridColumn myCol133 = new GridColumn() { Caption = "条码", Visible = true, FieldName = "barcode" };
 | ||
|             
 | ||
|             if (gridview == gridViewSaleOrders)
 | ||
|             {
 | ||
|                 gridview.Columns.Add(myCol25);
 | ||
|             }
 | ||
|             gridview.Columns.Add(myCol2); 
 | ||
|                 gridview.Columns.Add(myCol4);
 | ||
|                 gridview.Columns.Add(myCol5);
 | ||
|                 gridview.Columns.Add(myCol7); 
 | ||
|                 gridview.Columns.Add(myCol101); 
 | ||
|               // gridview.Columns.Add(myCol130);
 | ||
|             gridview.Columns.Add(myCol14);
 | ||
|            gridview.Columns.Add(myCol1);
 | ||
|              gridview.Columns.Add(myCol100);    
 | ||
|  
 | ||
|             gridview.Columns.Add(myCol6);
 | ||
|           
 | ||
|           //  gridview.Columns.Add(myCol131);
 | ||
|             gridview.Columns.Add(myCol15);
 | ||
|             gridview.Columns.Add(myCol16);
 | ||
|             gridview.Columns.Add(myCol3);
 | ||
| 
 | ||
|            
 | ||
| 
 | ||
|             gridview.Columns.Add(myCol3);
 | ||
| 
 | ||
|             gridview.Columns.Add(myCol8);
 | ||
|             //gridview.Columns.Add(myCol9);
 | ||
|       
 | ||
|            
 | ||
|            
 | ||
|          //   gridview.Columns.Add(myCol6);
 | ||
| 
 | ||
|            
 | ||
|           
 | ||
| 
 | ||
|             gridview.Columns.Add(myCol12);
 | ||
|             gridview.Columns.Add(myCol133);
 | ||
|         //    gridview.Columns.Add(myCol17);
 | ||
|          //   gridview.Columns.Add(myCol18);
 | ||
|           
 | ||
|             
 | ||
|             //to show bottom scroll bar
 | ||
|             gridview.OptionsView.ColumnAutoWidth = false;
 | ||
|             gridview.BestFitColumns();
 | ||
|           //  gridView2.Focus();
 | ||
|             if (dtPickOrders4Validation.Rows.Count > 0)
 | ||
|             {
 | ||
|                 switchGridViewRowSelection(gridView4Valid, true);
 | ||
|                 switchGridViewRowSelection(gridViewValidated, false);
 | ||
| 
 | ||
|                 if (gridView4Valid.IsFocusedView)
 | ||
|                 {
 | ||
|                     return;
 | ||
|                 }
 | ||
|                 gridView4Valid.Focus();
 | ||
|             }
 | ||
|             else if (dtPickOrdersValidated!=null && dtPickOrdersValidated.Rows.Count > 0)
 | ||
|             {
 | ||
|                 if (gridViewValidated.IsFocusedView)
 | ||
|                 {
 | ||
|                     return;
 | ||
|                 }
 | ||
|                 this.gridViewValidated.Focus();
 | ||
|             }
 | ||
|         }
 | ||
| 
 | ||
|         private void initialGridView3Columns(GridView gridview)
 | ||
|         {
 | ||
|             setupGridView(gridview, false, true, false);
 | ||
|             gridview.FocusRectStyle = DrawFocusRectStyle.None;
 | ||
|             //   gridviewGoodsType.PopulateColumns();
 | ||
|             gridview.Columns.Clear();
 | ||
|             // gridviewGoodsType.Columns.Remove(gridviewGoodsType.Columns["DealerPrice"]); 
 | ||
|             GridColumn myCol0 = new GridColumn() { Caption = "ID", Visible = true, FieldName = "id" };
 | ||
|             myCol0.Visible = false;
 | ||
|             gridview.Columns.Add(myCol0);
 | ||
|             GridColumn myCol1 = new GridColumn() { Caption = "商品编码", Visible = true, FieldName = WmsGoods.fields.goodsId.ToString() };
 | ||
|             GridColumn myCol2 = new GridColumn() { Caption = "商品名称", Visible = true, FieldName = WmsGoods.exfields.goodsName.ToString() };
 | ||
|             GridColumn myCol3 = new GridColumn() { Caption = "厂家", Visible = true, FieldName = WmsGoods.exfields.manufacturer.ToString() };
 | ||
|             GridColumn myCol4 = new GridColumn() { Caption = "规格", Visible = true, FieldName = WmsGoods.exfields.spec.ToString() };
 | ||
|             GridColumn myCol5 = new GridColumn() { Caption = "单位", Visible = true, FieldName = WmsGoods.exfields.unit.ToString() };
 | ||
|            // GridColumn myCol6 = new GridColumn() { Caption = "大包装数量", Visible = true, FieldName = WmsGoods.exfields.bigCount.ToString() };
 | ||
|             GridColumn myCol7 = new GridColumn() { Caption = "剂型", Visible = true, FieldName = WmsGoods.exfields.type.ToString() };
 | ||
|             GridColumn myCol8 = new GridColumn() { Caption = "商品类型", Visible = true, FieldName = WmsGoods.exfields.goodsTypeName.ToString() };
 | ||
|             //  GridColumn myCol9 = new GridColumn() { Caption = "大零", Visible = true, FieldName = WmsGoods.fields.bulkMax.ToString() };
 | ||
|             //    GridColumn myCol10 = new GridColumn() { Caption = "小整", Visible = true, FieldName = WmsGoods.fields.batchMax1.ToString() };
 | ||
|             //    GridColumn myCol11 = new GridColumn() { Caption = "大整", Visible = true, FieldName = WmsGoods.fields.batchMax2.ToString() };
 | ||
|             GridColumn myCol12 = new GridColumn() { Caption = "国药准字", Visible = true, FieldName = WmsGoods.exfields.regeditCode.ToString() };
 | ||
| 
 | ||
|              GridColumn myCol100 = new GridColumn() { Caption = "数量", Visible = true, FieldName ="pdaOuting"};// WmsOutDetail.fields.count.ToString() };
 | ||
|          //   GridColumn myCol101 = new GridColumn() { Caption = "零货", Visible = true, FieldName = WmsOutDetail.fields.count.ToString() };
 | ||
|            // GridColumn myCol102 = new GridColumn() { Caption = "整货", Visible = true, FieldName = WmsOutDetail.fields.batch1Count.ToString() };
 | ||
|            // GridColumn myCol103 = new GridColumn() { Caption = "大整", Visible = true, FieldName = WmsOutDetail.fields.batch2Count.ToString() };
 | ||
|           //  GridColumn myCol104 = new GridColumn() { Caption = "箱", Visible = true, FieldName = WmsOutDetail.fields.boxcnt.ToString() };
 | ||
|             GridColumn myCol14 = new GridColumn() { Caption = "批号", Visible = true, FieldName = WmsOutDetail.fields.batch.ToString() };
 | ||
|             GridColumn myCol15 = new GridColumn() { Caption = "生产日期", Visible = true, FieldName = WmsOutDetail.fields.productDate.ToString() };
 | ||
|             GridColumn myCol16 = new GridColumn() { Caption = "有效期", Visible = true, FieldName = WmsOutDetail.fields.validDate.ToString() };
 | ||
| 
 | ||
|             GridColumn myCol17 = new GridColumn() { Caption = "状态", Visible = true, FieldName = WmsOutDetail.fields.state.ToString() };
 | ||
|             GridColumn myCol18 = new GridColumn() { Caption = "说明", Visible = true, FieldName = WmsOutDetail.fields.description.ToString() };
 | ||
|             GridColumn myCol19 = new GridColumn() { Caption = "分拣状态", Visible = true, FieldName = "pickState" };
 | ||
| 
 | ||
|             GridColumn myCol20 = new GridColumn() { Caption = "波次", Visible = true, FieldName = WmsOutPickLable.fields.dpsOrder.ToString() };
 | ||
|             GridColumn myCol21 = new GridColumn() { Caption = "颜色", Visible = true, FieldName = WmsOutPickLable.fields.color.ToString() };
 | ||
|             GridColumn myCol22 = new GridColumn() { Caption = "货位", Visible = true, FieldName = WmsOutPickLable.fields.locationId.ToString() };
 | ||
|             GridColumn myCol23 = new GridColumn() { Caption = "标签", Visible = true, FieldName = WmsOutPickLable.fields.elabId.ToString() };
 | ||
|             GridColumn myCol24 = new GridColumn() { Caption = "客户", Visible = true, FieldName = WmsOutPickRequest.fields.customerName.ToString() };
 | ||
|            GridColumn myCol25 = new GridColumn() { Caption = "订单", Visible = true, FieldName = WmsOutPickDetail.fields.pickOrderNo.ToString() };
 | ||
| 
 | ||
|            GridColumn myCol26 = new GridColumn() { Caption = "异常回馈", Visible = true, FieldName = "solution" };
 | ||
|            GridColumn myCol27 = new GridColumn() { Caption = "回馈说明", Visible = true, FieldName = WmsOutPickDetail.fields.solutionRemark.ToString() };
 | ||
|        
 | ||
|              GridColumn myCol130 = new GridColumn() { Caption = "skuId", Visible = true, FieldName = "skuId" };
 | ||
|             GridColumn myCol131 = new GridColumn() { Caption = "sku", Visible = true, FieldName = "skuCode" };
 | ||
|             GridColumn myCol132 = new GridColumn() { Caption = "货主", Visible = true, FieldName = "ownerName" };
 | ||
|            // GridColumn myCol133 = new GridColumn() { Caption = "条码", Visible = true, FieldName = "barcode" };
 | ||
| 
 | ||
|            if (gridview == gridViewException)
 | ||
|            {
 | ||
|                gridview.Columns.Add(myCol25);
 | ||
|                gridview.Columns.Add(myCol26);
 | ||
|                gridview.Columns.Add(myCol27);
 | ||
|                gridViewException.OptionsSelection.EnableAppearanceFocusedRow = true;
 | ||
|                gridViewException.FocusRectStyle = DrawFocusRectStyle.RowFocus;
 | ||
|            }
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
|          //   gridview.Columns.Add(myCol25);
 | ||
|             gridview.Columns.Add(myCol2);
 | ||
|             gridview.Columns.Add(myCol1);
 | ||
|            gridview.Columns.Add(myCol19);
 | ||
|            //   gridview.Columns.Add(myCol130);
 | ||
|             gridview.Columns.Add(myCol14);
 | ||
|  
 | ||
|          //   gridview.Columns.Add(myCol21);
 | ||
|             gridview.Columns.Add(myCol100);
 | ||
|             gridview.Columns.Add(myCol22);
 | ||
|            // gridview.Columns.Add(myCol131);
 | ||
|            // gridview.Columns.Add(myCol132);
 | ||
|             gridview.Columns.Add(myCol23);
 | ||
|            // gridview.Columns.Add(myCol133); 
 | ||
|            /*
 | ||
|             gridview.Columns.Add(myCol5);
 | ||
|             gridview.Columns.Add(myCol17);
 | ||
|             gridview.Columns.Add(myCol24);
 | ||
| 
 | ||
|             gridview.Columns.Add(myCol7);
 | ||
| 
 | ||
|            
 | ||
|             gridview.Columns.Add(myCol3);
 | ||
| 
 | ||
|             gridview.Columns.Add(myCol15);
 | ||
|             gridview.Columns.Add(myCol16);
 | ||
|             gridview.Columns.Add(myCol3); 
 | ||
|             gridview.Columns.Add(myCol8);
 | ||
|             //gridview.Columns.Add(myCol9); 
 | ||
|             gridview.Columns.Add(myCol2);
 | ||
|             //   gridview.Columns.Add(myCol6); 
 | ||
|             gridview.Columns.Add(myCol4); 
 | ||
|             gridview.Columns.Add(myCol12);
 | ||
|             gridview.Columns.Add(myCol1); 
 | ||
|             gridview.Columns.Add(myCol18);
 | ||
| 
 | ||
|             */
 | ||
| 
 | ||
|             //to show bottom scroll bar
 | ||
|             gridview.OptionsView.ColumnAutoWidth = false;
 | ||
|             gridview.BestFitColumns();
 | ||
|             //  gridView2.Focus();
 | ||
|         }
 | ||
| 
 | ||
|         #endregion
 | ||
| 
 | ||
| 
 | ||
|         
 | ||
|         /// <summary>
 | ||
|         /// 预处理,按客户分拆订单,生成分拣单,并出库
 | ||
|         /// </summary>
 | ||
|         private void getValidationOrders()
 | ||
|         {
 | ||
|             this.getPickOrders4Validation();
 | ||
|             //threadPreProcess = new Thread(this.getPickOrders4Validation);
 | ||
|             //threadPreProcess.IsBackground = true; 
 | ||
|             //threadPreProcess.Start();
 | ||
|         }
 | ||
| 
 | ||
|         private void getPickOrders4Validation()
 | ||
|         {
 | ||
|             try
 | ||
|             {
 | ||
|                 clearDetails();
 | ||
|                 setOrderFilter();
 | ||
|                 showWaitForm();
 | ||
|                 dsPickOrders = pickClient.getPickRequest4BulkValidate(desk);
 | ||
|                // dtExceptionSolutions = pickClient.getBulkValidationExceptionSolutions(desk);
 | ||
|                // closeClient();
 | ||
|                 closeWaitForm();
 | ||
| 
 | ||
|                 dtPickOrders = dsPickOrders.Tables[2];
 | ||
|                 dtPickOrdersDetail = dsPickOrders.Tables[0];
 | ||
|                 dtPickOrders.PrimaryKey = new DataColumn[] { dtPickOrders.Columns["pickOrderNo"] };
 | ||
|                 //  dtPickOrders.PrimaryKey = new DataColumn[] { dtPickOrders.Columns["dpsOrder"] };
 | ||
|                 dtPickOrdersDetail.PrimaryKey = new DataColumn[] { dtPickOrdersDetail.Columns["id"] };
 | ||
|             }
 | ||
|            
 | ||
|             catch (Exception e)
 | ||
|             {
 | ||
|                 showErrorMsg(e,e.Message);
 | ||
|                 LogHelper.WriteLog(this.GetType(), e);
 | ||
|                 return;
 | ||
|             }
 | ||
|            
 | ||
|          //   updateValidationList(null,null);
 | ||
| 
 | ||
| 
 | ||
|             if (InvokeRequired)
 | ||
|             {
 | ||
|                 this.Invoke(new loadNewPickOrders(delegate()
 | ||
|                 {
 | ||
|                     swAutoOrder.Enabled = true;
 | ||
|                     btnPickOrders.Enabled = !autoOrder;
 | ||
|                     this.loadPickOrders();
 | ||
|                 }));
 | ||
| 
 | ||
|             }
 | ||
|             else
 | ||
|             {
 | ||
|                 swAutoOrder.Enabled = true;
 | ||
|                 btnPickOrders.Enabled = !autoOrder;
 | ||
|                 this.loadPickOrders();
 | ||
|             }
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
|           //  getValidationOrders();
 | ||
|         }
 | ||
| 
 | ||
| 
 | ||
|         DateTime lastRefreshTime;
 | ||
|         int refreshInterval = 5;
 | ||
|         //完成任务时需要调用
 | ||
|         delegate void loadNewPickOrders();
 | ||
|         private void updateValidationList(object source, System.Timers.ElapsedEventArgs e)
 | ||
|         {
 | ||
|             //还可以进行其他的一些完任务完成之后的逻辑处理
 | ||
|  
 | ||
| 
 | ||
|  
 | ||
|             if (autoOrder)
 | ||
|             {
 | ||
|                 TimeSpan ts = DateTime.Now - lastRefreshTime;
 | ||
| 
 | ||
|                 if (  ts.TotalSeconds < refreshInterval)
 | ||
|                 {
 | ||
|                     return;
 | ||
|                 }
 | ||
|                 lastRefreshTime = DateTime.Now; 
 | ||
| 
 | ||
|                 refreshInterval = Convert.ToInt32(  spinOrder.Value * 60);
 | ||
|              
 | ||
|                 getValidationOrders();
 | ||
|             }
 | ||
|              
 | ||
|               //   Thread.CurrentThread.Join(refreshInterval);
 | ||
|                 //继续后台处理
 | ||
|                  
 | ||
|         }
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
|         System.Timers.Timer timer = new System.Timers.Timer();//实例化Timer类
 | ||
| 
 | ||
|         private void timeCnt()
 | ||
|         {
 | ||
|             timer.Start(); ;
 | ||
|         }
 | ||
|         private void initialTimer()
 | ||
|         {
 | ||
|             int intTime = 10000;
 | ||
|             timer.Interval = intTime;//设置间隔时间,为毫秒;
 | ||
|             timer.Elapsed += new System.Timers.ElapsedEventHandler(updateValidationList);//到达时间的时候执行事件;
 | ||
|             timer.AutoReset = true;//设置是执行一次(false)还是一直执行(true);
 | ||
|             timer.Enabled = true;//是否执行System.Timers.Timer.Elapsed事件;
 | ||
|             timer.Start();
 | ||
|         }
 | ||
| 
 | ||
| 
 | ||
|         /// <summary>
 | ||
|         /// 更新拣选明细
 | ||
|         /// </summary>
 | ||
|         private void   updatePickDetails() {
 | ||
|             gridPickDetails.DataSource = null;
 | ||
|             try
 | ||
|             {
 | ||
|                 Thread threadPickdetail = new Thread(this.getPickOrdersPickDetail);
 | ||
|                 threadPickdetail.IsBackground = true;
 | ||
|                 threadPickdetail.Start();
 | ||
|             }
 | ||
|             catch (Exception e)
 | ||
|             {
 | ||
|                 LogHelper.WriteLog(this.GetType(), e);
 | ||
|             }
 | ||
|         }
 | ||
| 
 | ||
| 
 | ||
|         private void getPickOrdersPickDetail()
 | ||
|         {
 | ||
|             try
 | ||
|             {
 | ||
|                 dtPickDetails = pickClient.getPickDetailByPickOrderNo(this.currentPickOrder);
 | ||
|                // closeClient();
 | ||
|             }
 | ||
|             catch(Exception e)
 | ||
|             {
 | ||
|                 showErrorMsg(e,e.Message);
 | ||
|             }
 | ||
| 
 | ||
|             if (InvokeRequired)
 | ||
|             {
 | ||
|                 try
 | ||
|                 {
 | ||
|                     this.Invoke(new loadNewPickOrders(delegate()
 | ||
|                 {
 | ||
|                     bindPickDetails();
 | ||
|                      
 | ||
|                 }));
 | ||
|                 }
 | ||
|                 catch (Exception er)
 | ||
|                 {
 | ||
|                     LogHelper.WriteLog(this.GetType(), er);
 | ||
|                 }  
 | ||
| 
 | ||
|             }
 | ||
|             else
 | ||
|             {
 | ||
|                 bindPickDetails();
 | ||
|             }
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
|         }
 | ||
| 
 | ||
|         private void bindPickDetails()
 | ||
|         {
 | ||
|             gridPickDetails.DataSource = dtPickDetails;
 | ||
|             initialGridView3Columns(gridViewPickDetails);
 | ||
| 
 | ||
|         }
 | ||
| 
 | ||
|           /*
 | ||
|         /// <summary>  
 | ||
|         /// loading waiting pick orders
 | ||
|         /// </summary>  
 | ||
|         private int pagerQuery()
 | ||
|         {
 | ||
|           //  initialRequestOrders();
 | ||
|             //this.gridviewGoodsType.DataSource = lgt.GetAllActiveData().Tables[0].DefaultView;
 | ||
|             showWaitForm();
 | ||
| 
 | ||
|             try
 | ||
|             {
 | ||
|                 // this.splashScreenManager1.ShowWaitForm();
 | ||
|                 string query =   string.Format("{0} =#'{1}';", WmsOutRequest.fields.orderType.ToString(), (int)enumOutOrderType.pickOrder);
 | ||
|                 query += string.Format("{0} =#'{1}';", WmsOutRequest.fields.state.ToString(), (int) enumOutStockRequestStatus.prePicking );
 | ||
|                 bool isQueryNotChanged = lastQuery.Equals(query);
 | ||
|                 this.pager1.PageCurrent = isQueryNotChanged ? this.pager1.PageCurrent : 1; //根据查询条件的变化给pager赋值
 | ||
|                 int start = (pager1.PageSize * (pager1.PageCurrent - 1) + 1);
 | ||
|                 int end = (pager1.PageSize * pager1.PageCurrent);
 | ||
|                 lastQuery = query;
 | ||
|                 DataSet ds = lgt.Query(query, start, end);
 | ||
|                 dtPickOrders = ds.Tables[0];
 | ||
|                 int cnt = Convert.ToInt32(ds.Tables[1].Rows[0][0].ToString());
 | ||
|                 //dt = lgt.Query(query, start, end); //string.IsNullOrEmpty(query) ? lgt.GetGoodType.getAllData(start, end) : lgt.g;
 | ||
| 
 | ||
|                 dtPickOrders.PrimaryKey = new DataColumn[] { dtPickOrders.Columns["pickOrderNo"] };
 | ||
|                 bool firstLoad = !isQueryNotChanged || this.gridControl1.DataSource == null;
 | ||
|                 this.gridControl1.DataSource = dtPickOrders.DefaultView;
 | ||
|                 initialDataGridColumns();
 | ||
|                 //update selected row index to the last updated one.
 | ||
| 
 | ||
|                 if (false && !string.IsNullOrEmpty( currentPickOrder))
 | ||
|                 {
 | ||
|                     selectedRowIndex = -1;
 | ||
|                     DataRow dr = dtPickOrders.Rows.Find(currentPickOrder);
 | ||
|                     if (dr != null)
 | ||
|                     {
 | ||
|                         selectedRowIndex = dtPickOrders.Rows.IndexOf(dr);
 | ||
|                     }
 | ||
| 
 | ||
|                     if (selectedRowIndex >= 0 && dtPickOrders.Rows.Count > selectedRowIndex)
 | ||
|                     {
 | ||
|                         // gridView1.SelectRow(selectedRowIndex);
 | ||
|                         gridView1.FocusedRowHandle = selectedRowIndex;
 | ||
|                         //  gridView1.MakeRowVisible(selectedRowIndex);
 | ||
| 
 | ||
|                     }
 | ||
| 
 | ||
|                     //gridView1.FocusedRowHandle = selectedRowIndex;
 | ||
|                 }else
 | ||
|                // if (firstLoad)
 | ||
|                 {
 | ||
|                     gridView1.FocusedRowHandle = 0;
 | ||
|                     gridView1.SelectRow(0);
 | ||
|                     setCurrentRequestDetail();
 | ||
|                 }
 | ||
|                 closeWaitForm();
 | ||
|                 return cnt;
 | ||
|             }
 | ||
|             catch (Exception e)
 | ||
|             {
 | ||
|                 showErrorMsg(e.Message);
 | ||
|             }
 | ||
| 
 | ||
|             closeWaitForm();
 | ||
|             return 0;// lgt.getRowCount(query);
 | ||
|             // return lgt.GetGoodType.QueryCount(); 
 | ||
| 
 | ||
|         }
 | ||
| 
 | ||
|         */
 | ||
|          
 | ||
| 
 | ||
| 
 | ||
|         private void bindDetail()
 | ||
|         {
 | ||
| 
 | ||
|         }
 | ||
|         private void setDataBack()
 | ||
|         {
 | ||
| 
 | ||
| 
 | ||
|         }
 | ||
|         private bool validData()
 | ||
|         {
 | ||
|             bool isvalid = dxValidationProvider1.Validate();
 | ||
| 
 | ||
|             // MessageBox.Show("goodtype is " + txtGoodType.Text +", is valid ? " + isvalid);
 | ||
| 
 | ||
|             return isvalid;
 | ||
|             //String gdtype = txtGoodType.Text.Trim();
 | ||
|             //if (gdtype.Length == 0)
 | ||
|             //{
 | ||
| 
 | ||
|             //    dxValidationProvider.Validate();
 | ||
|             //    return false;
 | ||
|             //} 
 | ||
| 
 | ||
|             //return true;
 | ||
|         }
 | ||
|          
 | ||
|        
 | ||
|   /*
 | ||
|         /// <summary>  
 | ||
|         /// 分页控件产生的事件  
 | ||
|         /// </summary>  
 | ||
|         private int pager_EventPaging(DeiNiu.Controls.pager.EventPagingArg e)
 | ||
|         {
 | ||
|             selectedRowIndex = 0; //reset currentRowIndex
 | ||
|             return pagerQuery();
 | ||
|         }
 | ||
| 
 | ||
|       
 | ||
|         private void initialPagerControls()
 | ||
|         {
 | ||
| 
 | ||
|             pager1.MaximumSize = new Size(0, 20);
 | ||
|             pager1.EventPaging += new DeiNiu.Controls.pager.EventPagingHandler(pager_EventPaging);
 | ||
|             #region DataGridView与Pager控件绑定
 | ||
|             this.pager1.PageCurrent = 1;//当前页为第一页  
 | ||
|             pager1.PageSize = 200;//每页行数  
 | ||
|             this.pager1.Bind();//绑定  
 | ||
|             #endregion
 | ||
| 
 | ||
|         }
 | ||
|        */
 | ||
|         private void gridView1_FocusedRowObjectChanged(object sender, FocusedRowObjectChangedEventArgs e)
 | ||
|         {
 | ||
|             if (gridView1.FocusedRowHandle < 0 || gridView1.FocusedRowHandle == selectedRowIndex || isDataSourceChanged && selectedRowIndex >0)
 | ||
|             {
 | ||
|                 if (gridView1.IsGroupRow(e.RowHandle)) //set first row of group selected
 | ||
|                 { 
 | ||
|                     selectedRowIndex = gridView1.GetChildRowHandle(e.RowHandle, 0);
 | ||
|                      setCurrentRequestDetail();
 | ||
|                 } 
 | ||
|                 isDataSourceChanged = false;  
 | ||
|                 return;
 | ||
|             }
 | ||
|             isDataSourceChanged = false;
 | ||
|             selectedRowIndex = gridView1.FocusedRowHandle ;
 | ||
|             // showErrorMsg("selection:"+ selectedRowIndex);
 | ||
|             setCurrentRequestDetail();
 | ||
|         }
 | ||
| 
 | ||
| 
 | ||
|      
 | ||
| 
 | ||
|         bool isDataSourceChanged = false;
 | ||
|         private void gridView1_DataSourceChanged(object sender, EventArgs e)
 | ||
|         {
 | ||
|             isDataSourceChanged = true;
 | ||
|             if (selectedRowIndex >= 0 && dtPickOrders.Rows.Count > selectedRowIndex)
 | ||
|             {
 | ||
|                 gridView1.FocusedRowHandle = selectedRowIndex;
 | ||
|                 gridView1.MakeRowVisible(selectedRowIndex);
 | ||
| 
 | ||
|             }
 | ||
|         }
 | ||
| 
 | ||
|         private void btnDelete_Click(object sender, EventArgs e)
 | ||
|         {
 | ||
|             
 | ||
| 
 | ||
| 
 | ||
|         }
 | ||
| 
 | ||
|         protected void query()
 | ||
|         {
 | ||
|            // pager1.Bind();
 | ||
|         }
 | ||
| 
 | ||
| 
 | ||
|         private void loadPickOrders()
 | ||
|         {
 | ||
| 
 | ||
|           //  showWaitForm();
 | ||
|             try
 | ||
|             {
 | ||
|                 lbCustmer.Text = "";
 | ||
|                 bool firstLoad =   this.gridControl1.DataSource == null;
 | ||
|                // gridControl1.DataSource = dtPickOrders;
 | ||
|              
 | ||
|                 //dt = lgt.Query(query, start, end); //string.IsNullOrEmpty(query) ? lgt.GetGoodType.getAllData(start, end) : lgt.g;
 | ||
| 
 | ||
|                 //dtPickOrders.PrimaryKey = new DataColumn[] { dtPickOrders.Columns["pickOrderNo"] };
 | ||
|              //   DataRow drx = dtPickOrders.Rows.Find(currentPickOrder);
 | ||
| 
 | ||
|                 string boxId = txtBoxId.Text.Trim();
 | ||
|                 DataView dvp = dtPickOrders.DefaultView;
 | ||
|                 dvp.RowFilter =filter;
 | ||
|                 if (!string.IsNullOrEmpty(boxId) && !string.IsNullOrEmpty(boxWave) && desk == boxDesk)
 | ||
|                 {
 | ||
|                     dvp.RowFilter = string.Format(" and dpsOrder='{0}' and desk={1}", boxWave,boxDesk);
 | ||
|                 }
 | ||
| 
 | ||
|                 this.gridControl1.DataSource = dvp;
 | ||
|                
 | ||
|                 //update selected row index to the last updated one.
 | ||
| 
 | ||
|                 if (!string.IsNullOrEmpty(currentPickOrder) )
 | ||
|                 {
 | ||
|                     selectedRowIndex = -1;
 | ||
|                     DataRow dr = dtPickOrders.Rows.Find(currentPickOrder);
 | ||
|                     if (dr != null)
 | ||
|                     {
 | ||
|                        // selectedRowIndex = dtPickOrders.Rows.IndexOf(dr); 
 | ||
|                         selectedRowIndex = 0;
 | ||
|                         foreach (DataRowView drv in GetGridViewFilteredAndSortedData(gridView1))
 | ||
|                         {
 | ||
|                             if (drv["pickOrderNo"].ToString().Equals(currentPickOrder))
 | ||
|                             {
 | ||
|                                 break;
 | ||
|                             }
 | ||
|                             selectedRowIndex++; 
 | ||
|                         }
 | ||
| 
 | ||
|                     }else{
 | ||
|                         selectedRowIndex = 0;
 | ||
|                     }
 | ||
| 
 | ||
|                     if (selectedRowIndex >= 0 && dtPickOrders.Rows.Count > selectedRowIndex)
 | ||
|                     {
 | ||
|                         // gridView1.SelectRow(selectedRowIndex);
 | ||
|                         gridView1.FocusedRowHandle = selectedRowIndex;
 | ||
|                         //  gridView1.MakeRowVisible(selectedRowIndex);
 | ||
| 
 | ||
|                     }
 | ||
| 
 | ||
|                     //gridView1.FocusedRowHandle = selectedRowIndex;
 | ||
|                 }
 | ||
|                 else
 | ||
|                 // if (firstLoad)
 | ||
|                 {
 | ||
|                     gridView1.FocusedRowHandle = 0;
 | ||
| 
 | ||
|                     gridView1.SelectRow(0);
 | ||
|                    // setCurrentRequestDetail();
 | ||
|                 }
 | ||
|                 if (firstLoad && dvp.Count > 0)
 | ||
|                 {
 | ||
|                     selectedRowIndex =0;
 | ||
|                     selectedValidatedItem =0;
 | ||
|                     selectedValidationItem = 0;
 | ||
|                     
 | ||
|                 }
 | ||
| 
 | ||
|                 setCurrentRequestDetail();
 | ||
| 
 | ||
|             
 | ||
|                 //to load exception solutions
 | ||
| 
 | ||
|             //    DataView dv = dtExceptionSolutions.DefaultView;
 | ||
| #if DEBUG
 | ||
| #else
 | ||
|             //    dv.RowFilter = "desk =" + desk;
 | ||
| #endif
 | ||
| 
 | ||
|             //    gridControlException.DataSource = dv;
 | ||
|                 try
 | ||
|                 {
 | ||
|                //     initialGridView3Columns(gridViewException);
 | ||
|                      initialDataGridColumns();
 | ||
|                 }
 | ||
|                 catch { }
 | ||
|                 if (firstLoad)
 | ||
|                 {
 | ||
|                     setCurrentValidatedDetail();
 | ||
|                     setCurrentValidationDetail();
 | ||
|                     textEditBarcode.Focus();
 | ||
|                     textEditBarcode.SelectAll();
 | ||
| 
 | ||
|                 }
 | ||
|             }
 | ||
|             catch (Exception e)
 | ||
|             {
 | ||
|                 showErrorMsg(e.Message);
 | ||
|             }
 | ||
|             finally
 | ||
|             {
 | ||
|                 // WaitFormService.Close();
 | ||
|                // closeWaitForm();
 | ||
|                 bbQuery.Enabled = true;
 | ||
|             }
 | ||
| 
 | ||
|         }
 | ||
|          
 | ||
|         private void bbQuery_ItemClick_1(object sender, ItemClickEventArgs e)
 | ||
|         {
 | ||
|             this.bbQuery.Enabled = false;
 | ||
|             loadPickOrders();
 | ||
|         }
 | ||
| 
 | ||
|        
 | ||
| 
 | ||
|         private void updateObjects(List<WmsGoods> goods)
 | ||
|         { 
 | ||
|             showWaitForm();
 | ||
|             //WaitFormService.Show(this); 
 | ||
|             try
 | ||
|             {
 | ||
|              //   lgt.update(goods);
 | ||
| 
 | ||
|                 //get updated data 
 | ||
|                 query();
 | ||
| 
 | ||
|             }
 | ||
|             catch (Exception e)
 | ||
|             {
 | ||
|                 showErrorMsg(e.Message);
 | ||
|             }
 | ||
|             finally
 | ||
|             {
 | ||
|                 // WaitFormService.Close();
 | ||
|                 closeWaitForm();
 | ||
|              
 | ||
|             }
 | ||
|              
 | ||
| 
 | ||
|         }
 | ||
| 
 | ||
|         private bool getCurrentObject()
 | ||
|         {
 | ||
|             if (selectedRowIndex <0 || selectedRowIndex >= dtPickOrders.Rows.Count)
 | ||
|             {
 | ||
|                 return false;
 | ||
|             }
 | ||
|           
 | ||
|             //clearDetails();
 | ||
|             int cnt = GetGridViewFilteredAndSortedData(gridView1).Count;
 | ||
|             if (selectedRowIndex + 1 > cnt)
 | ||
|             {
 | ||
|                 return false;
 | ||
|             }
 | ||
|             // DataRow currentRow = dtPickOrders.Rows[selectedRowIndex];
 | ||
|             DataRowView currentRow = (DataRowView)(GetGridViewFilteredAndSortedData(gridView1)[selectedRowIndex]);
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
|           //  selectedRequest = new WmsOutPickRequest(currentRow); 
 | ||
|             currentPickOrder = currentRow["pickOrderNo"].ToString();
 | ||
|             lbCustmer.Text = currentPickOrder;
 | ||
|             lbCustmer.Text = currentRow["customerName"].ToString();
 | ||
|             currentWave = currentRow["dpsOrder"].ToString();
 | ||
|             return true;
 | ||
| 
 | ||
|         }
 | ||
|        
 | ||
|        
 | ||
| 
 | ||
| 
 | ||
|         private void btnQuery_Click(object sender, EventArgs e)
 | ||
|         {
 | ||
|             clearDetails(); 
 | ||
|             loadPickOrders();
 | ||
|         }
 | ||
| 
 | ||
|         private void gridView1_SelectionChanged(object sender, DevExpress.Data.SelectionChangedEventArgs e)
 | ||
|         {
 | ||
|             if (gridView1.FocusedRowHandle <0 || gridView1.FocusedRowHandle == selectedRowIndex)
 | ||
|             {
 | ||
|                 return;
 | ||
|             }
 | ||
|             selectedRowIndex = gridView1.FocusedRowHandle;
 | ||
|             // showErrorMsg("selection:"+ selectedRowIndex);
 | ||
|             setCurrentRequestDetail();
 | ||
|         }
 | ||
| 
 | ||
|         private void initialDataGrid()
 | ||
|         {
 | ||
|             gridView1.OptionsSelection.MultiSelect = false;//按shift / control 多选
 | ||
|             this.gridView1.OptionsBehavior.AutoPopulateColumns = false;
 | ||
|             this.gridView1.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.RowFocus;
 | ||
|             this.gridView1.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.CellFocus;
 | ||
|             this.gridView1.OptionsBehavior.Editable = false;
 | ||
|             this.gridView1.OptionsSelection.EnableAppearanceFocusedCell = false;
 | ||
| 
 | ||
|             this.gridView1.FocusedRowObjectChanged += new DevExpress.XtraGrid.Views.Base.FocusedRowObjectChangedEventHandler(this.gridView1_FocusedRowObjectChanged);
 | ||
|             this.gridView1.DataSourceChanged += new System.EventHandler(this.gridView1_DataSourceChanged);
 | ||
| 
 | ||
|             gridView1.CustomColumnDisplayText += gridView2_CustomColumnDisplayText;
 | ||
|             //show line number
 | ||
|           //  this.gridView1.IndicatorWidth = 40;
 | ||
|           //  this.gridView1.CustomDrawRowIndicator += new DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventHandler(gridView_CustomDrawRowIndicator);
 | ||
|            
 | ||
|             this.gridViewValidated.IndicatorWidth = 40;
 | ||
|             this.gridViewValidated.CustomDrawRowIndicator += new DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventHandler(gridView_CustomDrawRowIndicator);
 | ||
| 
 | ||
|             this.gridViewSaleOrders .IndicatorWidth = 40;
 | ||
|             this.gridViewSaleOrders.CustomDrawRowIndicator += new DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventHandler(gridView_CustomDrawRowIndicator);
 | ||
|             gridViewSaleOrders.OptionsSelection.EnableAppearanceFocusedCell = false;
 | ||
| 
 | ||
| 
 | ||
|             this.gridViewPickDetails.IndicatorWidth = 40;
 | ||
|             this.gridViewPickDetails.CustomDrawRowIndicator += new DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventHandler(gridView_CustomDrawRowIndicator);
 | ||
|            
 | ||
|             gridViewPickDetails.OptionsSelection.MultiSelect = false;
 | ||
|             gridViewPickDetails.OptionsSelection.EnableAppearanceFocusedCell = false;
 | ||
| 
 | ||
| 
 | ||
|             this.gridView4Valid.IndicatorWidth = 40;
 | ||
|             this.gridView4Valid.CustomDrawRowIndicator += new DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventHandler(gridView_CustomDrawRowIndicator);
 | ||
|             this.gridView4Valid.FocusedRowObjectChanged += new DevExpress.XtraGrid.Views.Base.FocusedRowObjectChangedEventHandler(this.gridView4Validation_FocusedRowObjectChanged);
 | ||
|             gridView4Valid.OptionsSelection.MultiSelect = false;
 | ||
|             gridView4Valid.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.RowFocus;
 | ||
|             gridView4Valid.OptionsSelection.EnableAppearanceFocusedCell = false;
 | ||
|             gridView4Valid.CustomColumnDisplayText += gridView2_CustomColumnDisplayText;
 | ||
|             gridView4Valid.CustomDrawCell += gridView_CustomDrawCell;
 | ||
| 
 | ||
|             this.gridView4Valid.CustomDrawRowIndicator += new DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventHandler(gridView_CustomDrawRowIndicator);
 | ||
|             this.gridViewValidated.FocusedRowObjectChanged += new DevExpress.XtraGrid.Views.Base.FocusedRowObjectChangedEventHandler(this.gridViewValidated_FocusedRowObjectChanged);
 | ||
|             
 | ||
|             this.gridViewValidated.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.RowFocus;
 | ||
|             gridViewValidated.OptionsSelection.EnableAppearanceFocusedCell = false; 
 | ||
|             gridViewValidated.OptionsSelection.MultiSelect = false;
 | ||
| 
 | ||
|             this.gridViewException.IndicatorWidth = 40;
 | ||
|             this.gridViewException.CustomDrawRowIndicator += new DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventHandler(gridView_CustomDrawRowIndicator);
 | ||
|             this.gridViewException.FocusedRowObjectChanged += new DevExpress.XtraGrid.Views.Base.FocusedRowObjectChangedEventHandler(this.gridViewException_FocusedRowObjectChanged);
 | ||
|             gridViewException.OptionsSelection.MultiSelect = false;
 | ||
|             gridViewException.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.RowFocus;
 | ||
|             gridViewException.OptionsSelection.EnableAppearanceFocusedCell = false;
 | ||
|              
 | ||
| 
 | ||
|             gridView4Valid.GotFocus += new EventHandler(gridview_GotFocus);
 | ||
|             gridViewValidated.GotFocus += new EventHandler(gridview_GotFocus);
 | ||
| 
 | ||
|             switchGridViewRowSelection(gridViewException,false);
 | ||
|             switchGridViewRowSelection(gridViewPickDetails, false);
 | ||
|             switchGridViewRowSelection(gridViewSaleOrders, false);
 | ||
| 
 | ||
|             gridViewException.LostFocus += new EventHandler(gridview_LostFocus);
 | ||
|             gridViewSaleOrders.LostFocus += new EventHandler(gridview_LostFocus);
 | ||
|             gridViewPickDetails.LostFocus += new EventHandler(gridview_LostFocus);
 | ||
| 
 | ||
|             gridViewException.GotFocus += new EventHandler(gridview_GotFocus);
 | ||
|             gridViewSaleOrders.GotFocus += new EventHandler(gridview_GotFocus);
 | ||
|             gridViewPickDetails.GotFocus += new EventHandler(gridview_GotFocus);
 | ||
| 
 | ||
|             gridViewValidated.RowCellStyle += gridView_RowCellStyle;
 | ||
|             //gridView1.RowCellStyle += gridView_RowCellStyle;
 | ||
|             gridViewValidated.CustomColumnDisplayText += gridView2_CustomColumnDisplayText;
 | ||
|             gridViewPickDetails.CustomColumnDisplayText += gridView2_CustomColumnDisplayText;
 | ||
|             this.gridViewException.CustomColumnDisplayText += gridView2_CustomColumnDisplayText;
 | ||
| 
 | ||
|             this.gvBox.IndicatorWidth = 40;
 | ||
|             this.gvBox.CustomDrawRowIndicator += new DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventHandler(gridView_CustomDrawRowIndicator);
 | ||
| 
 | ||
|         }
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
|         private void gridView2_CustomColumnDisplayText(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventArgs e)
 | ||
|         {
 | ||
|             //if (sender == gridViewValidated)
 | ||
|             {
 | ||
| 
 | ||
| 
 | ||
|                 if (e.Column.FieldName == "state")
 | ||
|                 {
 | ||
| 
 | ||
|                     if (!pickDetailStatus.ContainsValue(e.DisplayText))
 | ||
|                     {
 | ||
| 
 | ||
|                         int display = -100;
 | ||
|                         string disTxt = e.DisplayText;
 | ||
| 
 | ||
|                         try
 | ||
|                         {
 | ||
|                             display = Convert.ToInt32(e.DisplayText);
 | ||
| 
 | ||
|                             e.DisplayText = pickDetailStatus[display];
 | ||
| 
 | ||
|                         }
 | ||
|                         catch
 | ||
|                         {
 | ||
|                             return;
 | ||
|                         }
 | ||
|                     }
 | ||
| 
 | ||
| 
 | ||
|                 }
 | ||
|                 else if (e.Column.FieldName == "pickState")
 | ||
|                 {
 | ||
| 
 | ||
|                     if (!pickStatus.ContainsValue(e.DisplayText))
 | ||
|                     {
 | ||
| 
 | ||
|                         int display = -100;
 | ||
|                         string disTxt = e.DisplayText;
 | ||
| 
 | ||
|                         try
 | ||
|                         {
 | ||
|                             display = Convert.ToInt32(e.DisplayText);
 | ||
| 
 | ||
|                             e.DisplayText = pickStatus[display];
 | ||
| 
 | ||
|                         }
 | ||
|                         catch
 | ||
|                         {
 | ||
|                             return;
 | ||
|                         }
 | ||
|                     }
 | ||
| 
 | ||
| 
 | ||
|                 }
 | ||
|                 if (e.Column.FieldName == "IsDouChk")
 | ||
|                 {
 | ||
| 
 | ||
|                     if (!isDoublChk.ContainsValue(e.DisplayText))
 | ||
|                     {
 | ||
|                         string disTxt = e.DisplayText;
 | ||
| 
 | ||
|                         try
 | ||
|                         {
 | ||
| 
 | ||
|                             e.DisplayText = isDoublChk[disTxt];
 | ||
| 
 | ||
|                         }
 | ||
|                         catch
 | ||
|                         {
 | ||
|                             return;
 | ||
|                         }
 | ||
|                     }
 | ||
| 
 | ||
|                 }
 | ||
|                 else if (e.Column.FieldName == "orderBulkPickstate")
 | ||
|                 {
 | ||
| 
 | ||
|                     if (!pickStatus.ContainsValue(e.DisplayText))
 | ||
|                     {
 | ||
|                         string disTxt = e.DisplayText;
 | ||
| 
 | ||
|                         int display = -100;
 | ||
| 
 | ||
| 
 | ||
|                         try
 | ||
|                         {
 | ||
|                             display = Convert.ToInt32(e.DisplayText);
 | ||
| 
 | ||
|                             e.DisplayText = this.pickStatus[display];
 | ||
| 
 | ||
|                         }
 | ||
|                         catch
 | ||
|                         {
 | ||
|                             return;
 | ||
|                         }
 | ||
|                     }
 | ||
| 
 | ||
|                 }
 | ||
| 
 | ||
| 
 | ||
|             }
 | ||
|         }
 | ||
|        void gridView_CustomDrawCell(object sender, DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e)
 | ||
|        {
 | ||
|            //var currentView = sender as GridView;
 | ||
|            //if (currentView != null && e.RowHandle == currentView.FocusedRowHandle) return;
 | ||
|            Rectangle r = e.Bounds;
 | ||
|            if (e.Column.FieldName == "IsDouChk" && e.CellValue != null)
 | ||
|            {
 | ||
|                string a = e.CellValue.ToString();
 | ||
|                string b = e.DisplayText;
 | ||
|                if (b.Equals("是"))
 | ||
|                {
 | ||
|                    e.Appearance.ForeColor = Color.Red;
 | ||
|                    e.Appearance.DrawString(e.Cache, e.DisplayText, r);
 | ||
|                    e.Handled = true;
 | ||
|                }
 | ||
| 
 | ||
| 
 | ||
|            }
 | ||
|        }
 | ||
| 
 | ||
|        void gridView_RowCellStyle(object sender,DevExpress.XtraGrid.Views.Grid.RowCellStyleEventArgs e)
 | ||
|        {
 | ||
| 
 | ||
|             var currentView = sender as GridView;
 | ||
|          //  if( currentView != null){return;}
 | ||
|            string state = currentView.GetDataRow(e.RowHandle)["bulkPickState"].ToString().Trim();
 | ||
|            
 | ||
|            if (string.IsNullOrEmpty(state))
 | ||
|            {
 | ||
|                return;
 | ||
|            }
 | ||
| 
 | ||
|            enumOutStockPickStatus status = (enumOutStockPickStatus)Convert.ToInt32(state);
 | ||
| 
 | ||
| 
 | ||
|            bool isFocused = e.RowHandle == currentView.FocusedRowHandle;
 | ||
|            DevExpress.Utils.AppearanceDefault rowStyle = null;
 | ||
|             DevExpress.Utils.AppearanceDefault appBlueRed = 
 | ||
|                new DevExpress.Utils.AppearanceDefault (Color.White, Color.Red, Color.Empty, Color.Blue, System.Drawing.Drawing2D.LinearGradientMode.Horizontal);
 | ||
|            DevExpress.Utils.AppearanceDefault appYB =
 | ||
|             new DevExpress.Utils.AppearanceDefault(Color.White, Color.Red, Color.Green);
 | ||
| 
 | ||
|            //DevExpress.Utils.AppearanceDefault alertFocus = new DevExpress.Utils.AppearanceDefault(Color.White, Color.Red, Color.Green,  Color.Yellow);
 | ||
|            DevExpress.Utils.AppearanceDefault alertFocus = new DevExpress.Utils.AppearanceDefault(Color.White,Color.Red);
 | ||
|            DevExpress.Utils.AppearanceDefault alert  = new DevExpress.Utils.AppearanceDefault(Color.Red, Color.White );
 | ||
| 
 | ||
|            DevExpress.Utils.AppearanceDefault passedFocus = new DevExpress.Utils.AppearanceDefault(Color.Gray, Color.WhiteSmoke);
 | ||
|            DevExpress.Utils.AppearanceDefault passed  = new DevExpress.Utils.AppearanceDefault(Color.Gray,Color.White);
 | ||
| 
 | ||
|            DevExpress.Utils.AppearanceDefault solutionFocus = new DevExpress.Utils.AppearanceDefault(Color.Green, Color.Yellow);
 | ||
|            DevExpress.Utils.AppearanceDefault solution = new DevExpress.Utils.AppearanceDefault(Color.Green, Color.White);
 | ||
| 
 | ||
| 
 | ||
|            if (status == enumOutStockPickStatus.复核完成)
 | ||
|            {
 | ||
|                rowStyle = isFocused ? passedFocus : passed;
 | ||
|            }
 | ||
|            else if (status == enumOutStockPickStatus.复核异常)
 | ||
|            {
 | ||
|                rowStyle = isFocused ? alertFocus : alert;
 | ||
|            }
 | ||
|            else if (status == enumOutStockPickStatus.复核异常处理)
 | ||
|            {
 | ||
|                rowStyle = isFocused ? solutionFocus : solution;
 | ||
|            }
 | ||
| 
 | ||
| 
 | ||
|            DevExpress.Utils.AppearanceHelper.Apply(e.Appearance, rowStyle);
 | ||
|            /*
 | ||
|            if (sender == this.gridView2)
 | ||
|            {
 | ||
|                if (this.gridView2.GetDataRow(e.RowHandle)["state"].ToString().Trim() == "2")
 | ||
|                {
 | ||
|                    DevExpress.Utils.AppearanceHelper.Apply(e.Appearance, alert);
 | ||
|                }
 | ||
|            }else if(sender == this.gridView1){
 | ||
|                 
 | ||
|                if ( state == "2")
 | ||
|                {
 | ||
|                    if (currentView != null && e.RowHandle == currentView.FocusedRowHandle)
 | ||
|                    {
 | ||
|                        DevExpress.Utils.AppearanceHelper.Apply(e.Appearance, alertFocus);
 | ||
|                    }
 | ||
|                    else
 | ||
|                    {
 | ||
|                        DevExpress.Utils.AppearanceHelper.Apply(e.Appearance, alert);
 | ||
|                    }
 | ||
|                }
 | ||
|                else if (state == "1")
 | ||
|                {
 | ||
|                    DevExpress.Utils.AppearanceHelper.Apply(e.Appearance, passed);
 | ||
|                } 
 | ||
|            }
 | ||
|            */
 | ||
|        }
 | ||
| 
 | ||
|         private void setCurrentRequestDetail()
 | ||
|        {
 | ||
|            
 | ||
|             if (!getCurrentObject() || string.IsNullOrEmpty( currentPickOrder)) 
 | ||
|             {
 | ||
|                 return;
 | ||
|             }
 | ||
| 
 | ||
|             
 | ||
|         //   showWaitForm();
 | ||
| 
 | ||
|             try
 | ||
|             {
 | ||
|                
 | ||
|              //   DataView dv = dtPickOrdersDetail.DefaultView;
 | ||
|                // dv.Sort = "orderNo ASC";
 | ||
|               //  dv.RowFilter = string.Format("pickOrderNo ='{0}'", currentPickOrder);
 | ||
|                
 | ||
|                 bindValidationTables();
 | ||
| 
 | ||
|                 if (lgOutPickDetail.Expanded)
 | ||
|                 {
 | ||
|                     showOrderPickDetail();
 | ||
|                 }
 | ||
|                 bindBoxes();
 | ||
|    
 | ||
|             }
 | ||
|             catch (Exception e)
 | ||
|             {
 | ||
|                 showErrorMsg(e,e.Message);
 | ||
|             }
 | ||
|          //   closeWaitForm();
 | ||
| 
 | ||
|         }
 | ||
| 
 | ||
|         void bindBoxes()
 | ||
|         {
 | ||
|             if (string.IsNullOrEmpty(currentWave))
 | ||
|             {
 | ||
|                 this.gridControlBox.DataSource = null;
 | ||
|                 return;
 | ||
|             }
 | ||
|             try
 | ||
|             {
 | ||
|                 DataTable dt = pickClient.getBoxsByWave(currentWave, desk);
 | ||
|                 initialBoxColumns(gvBox);
 | ||
|                 this.gridControlBox.DataSource = dt;
 | ||
|             }
 | ||
|             catch (Exception e)
 | ||
|             {
 | ||
|                 showErrorMsg(e, "");
 | ||
|             }
 | ||
|         }
 | ||
| 
 | ||
|         void showOrderPickDetail()
 | ||
|         {
 | ||
|             if (string.IsNullOrEmpty(currentPickOrder))
 | ||
|             {
 | ||
|                 return;
 | ||
|             }
 | ||
|             try
 | ||
|             {
 | ||
|                 this.gridSaleOrders.DataSource = pickClient.getOutRequestDetail(currentPickOrder).DefaultView;
 | ||
|                // closeClient();
 | ||
|                 
 | ||
|             }
 | ||
|             catch (Exception ex)
 | ||
|             {
 | ||
|                 showErrorMsg(ex,ex.Message);
 | ||
|                 return;
 | ||
| 
 | ||
|             }
 | ||
|            
 | ||
|             initialGridView2Columns(gridViewSaleOrders);
 | ||
|             //set pick details
 | ||
|             updatePickDetails();
 | ||
|         }
 | ||
|         private void bindValidationTables()
 | ||
|         {  
 | ||
| 
 | ||
|             resetValidationDetails(); 
 | ||
|             //set sales order details
 | ||
|             DataView dv = dtPickOrdersDetail.DefaultView;
 | ||
|           //  dv.Sort = "orderNo ASC";
 | ||
|             dv.RowFilter = string.Format("pickOrderNo ='{0}'", currentPickOrder); 
 | ||
| 
 | ||
|              dtPickOrders4Validation = dv.ToTable();
 | ||
|          
 | ||
|             //  dtPickOrders4Validation.PrimaryKey = new DataColumn[] { dtPickOrders4Validation.Columns["barCode"] };
 | ||
| 
 | ||
|              //bind data  validated
 | ||
|       
 | ||
|             dtPickOrdersValidated = dv.ToTable();
 | ||
|             DataView dv2 = dtPickOrdersValidated.DefaultView;
 | ||
|             dv2.RowFilter = string.Format("bulkCount>0 and bulkPickState >{0}", (int)enumOutStockPickStatus.分拣完成);
 | ||
|             dv2.Sort = "lastmodified desc";
 | ||
|             this.gridValidated.DataSource = dv2;
 | ||
|             initialGridView2Columns(gridViewValidated);
 | ||
|             //gridViewValidated.FocusedRowHandle = -1;
 | ||
|             //gridViewValidated.SelectRow(-1);
 | ||
| 
 | ||
|             dtPickOrdersValidated = dv2.ToTable();
 | ||
|             dtPickOrdersValidated.PrimaryKey = new DataColumn[] { dtPickOrdersValidated.Columns["id"] };
 | ||
| 
 | ||
|          //bind data to be validated
 | ||
| 
 | ||
|             DataView dv1 = dtPickOrders4Validation.DefaultView;
 | ||
|             dv1.RowFilter = string.Format("bulkCount>0 and bulkPickState <={0}", (int)enumOutStockPickStatus.分拣完成); 
 | ||
|             
 | ||
|             dtPickOrders4Validation = dv1.ToTable();
 | ||
|             dtPickOrders4Validation.PrimaryKey = new DataColumn[] { dtPickOrders4Validation.Columns["id"] };
 | ||
|             this.grid4Valid.DataSource = dv1;
 | ||
|             initialGridView2Columns(gridView4Valid);
 | ||
|             btnPrint.Enabled = rd2.Checked && dtPickOrders4Validation.Rows.Count == 0 && dtPickOrdersValidated.Select("bulkpickstate < " + (int)enumOutStockPickStatus.复核完成).Length == 0;
 | ||
|             btnOk.Enabled = rd1.Checked && dtPickOrders4Validation.Rows.Count == 0 && dtPickOrdersValidated.Select("bulkpickstate < " + (int)enumOutStockPickStatus.复核完成).Length == 0;
 | ||
|            
 | ||
|             ;
 | ||
|         }
 | ||
| 
 | ||
| 
 | ||
|         private void clearDetails()
 | ||
|         {
 | ||
|             resetValidationDetails();
 | ||
|             this.gridValidated.DataSource = null;
 | ||
|             this.grid4Valid.DataSource = null;
 | ||
|           //  lbCustmer.Text = "";
 | ||
|           //  lbCustmer.Text = "";
 | ||
|             spinBulkBox.Value  =  0;
 | ||
|             spinBulkBag.Value = 0;
 | ||
|             isDoubleChk = false;
 | ||
|             txtAccount.Text = txtPasswd.Text = "";
 | ||
|             btnValidateItem.Enabled = false;
 | ||
|         }
 | ||
| 
 | ||
|           
 | ||
|         private void btnPickOrders_Click(object sender, EventArgs e)
 | ||
|         {
 | ||
|             getValidationOrders();
 | ||
|         } 
 | ||
| 
 | ||
|         private void swAutoOrder_Toggled(object sender, EventArgs e)
 | ||
|         {
 | ||
|             autoOrder = swAutoOrder.IsOn;
 | ||
|             btnPickOrders.Enabled = !autoOrder;
 | ||
|             if (autoOrder)
 | ||
|             {
 | ||
|                 getValidationOrders();
 | ||
|             }
 | ||
|         }
 | ||
| 
 | ||
|         
 | ||
|  
 | ||
| 
 | ||
|         private void ribbon_Click(object sender, EventArgs e)
 | ||
|         {
 | ||
|         
 | ||
|         }
 | ||
| 
 | ||
|         private void gridView1_FocusedRowChanged(object sender, FocusedRowChangedEventArgs e)
 | ||
|         {
 | ||
| 
 | ||
|         }
 | ||
|         private void resetValidationDetails()
 | ||
|         {
 | ||
|             lastScanBarcode = "";
 | ||
|             selectedValidationItem = -1;
 | ||
|             currentDetail = null;
 | ||
|             lbGoodsName.Text ="";
 | ||
|           
 | ||
|             this.lbManufacturer.Text = "";
 | ||
|             this.lbPickCount.Text = "";
 | ||
|             this.lbSaleCount.Text = "";
 | ||
|             this.textEditValidCount.Text = "";
 | ||
|             this.textEditValidtionRemark.Text = "";
 | ||
|             this.comValidException.SelectedIndex = -1;
 | ||
| 
 | ||
|           
 | ||
|             this.lbType.Text = "";
 | ||
|             this.lbUnit.Text = "";
 | ||
|             this.checkEditPass.Checked = false;
 | ||
|             textEditBarcode.Text = "";
 | ||
|             this.btnValidateItem.Enabled = false;
 | ||
|             textEditBarcode.BackColor = textEditValidCount.BackColor; ;
 | ||
|             foreach (LotAtt la in SKUs.Keys)
 | ||
|             {
 | ||
|                 SKUs[la].Text = "";
 | ||
| 
 | ||
|             }
 | ||
|              
 | ||
|         }
 | ||
|         //gridviewvalidated
 | ||
| 
 | ||
|         int selectedValidatedItem = -1;
 | ||
|         private void gridViewValidated_FocusedRowObjectChanged(object sender, FocusedRowObjectChangedEventArgs e)
 | ||
|         {
 | ||
|             if (this.gridViewValidated.FocusedRowHandle < 0 || gridViewValidated.FocusedRowHandle == selectedValidatedItem)
 | ||
|             {
 | ||
|                 if (gridViewValidated.IsGroupRow(e.RowHandle)) //set first row of group selected
 | ||
|                 {
 | ||
|                     selectedValidatedItem = gridViewValidated.GetChildRowHandle(e.RowHandle, 0); 
 | ||
|                 }
 | ||
|                 else
 | ||
|                 { 
 | ||
|                     return;
 | ||
|                 }
 | ||
|               
 | ||
|             }
 | ||
|             selectedValidatedItem = gridViewValidated.FocusedRowHandle >= 0 ? gridViewValidated.FocusedRowHandle : selectedValidatedItem; 
 | ||
|             setCurrentValidatedDetail(); 
 | ||
|             gridView4Valid.FocusedRowHandle = -1;
 | ||
|             gridView4Valid.SelectRow(-1);
 | ||
|         }
 | ||
|         private void setCurrentValidatedDetail()
 | ||
|         {
 | ||
|             if (!this.gridValidated.IsFocused)
 | ||
|             {
 | ||
|                // return;
 | ||
|             }
 | ||
|             if (selectedValidatedItem < 0 || selectedValidatedItem >=  this.dtPickOrdersValidated .Rows.Count)
 | ||
|             {
 | ||
|                 return;
 | ||
|             }
 | ||
| 
 | ||
| 
 | ||
|            // DataRow dr = dtPickOrdersValidated.Rows[selectedValidatedItem];
 | ||
|             DataRowView dr = (DataRowView)(GetGridViewFilteredAndSortedData(gridViewValidated)[selectedValidatedItem]);
 | ||
|             setValidataDetail(dr.Row);
 | ||
|         }
 | ||
| 
 | ||
|         //exception 
 | ||
|         int selectedExceptionItem = -1;
 | ||
|         private void gridViewException_FocusedRowObjectChanged(object sender, FocusedRowObjectChangedEventArgs e)
 | ||
|         {
 | ||
|             if (this.gridViewException.FocusedRowHandle < 0 || gridViewException.FocusedRowHandle == selectedExceptionItem)
 | ||
|             {
 | ||
|                 if (gridViewException.IsGroupRow(e.RowHandle)) //set first row of group selected
 | ||
|                 {
 | ||
|                     selectedExceptionItem = gridViewException.GetChildRowHandle(e.RowHandle, 0);
 | ||
|                     setCurrentExceptionDetail(); 
 | ||
|                 } 
 | ||
|                  return;
 | ||
|                  
 | ||
|             }
 | ||
|             selectedExceptionItem = gridViewException.FocusedRowHandle;
 | ||
|             setCurrentExceptionDetail(); 
 | ||
|  
 | ||
|         }
 | ||
|         private void setCurrentExceptionDetail()
 | ||
|         {
 | ||
| 
 | ||
|             if (selectedExceptionItem < 0 || selectedExceptionItem >= dtExceptionSolutions.Rows.Count)
 | ||
|             {
 | ||
|                 return;
 | ||
|             }
 | ||
| 
 | ||
|             //DataRow dr = this.dtExceptionSolutions.Rows[selectedExceptionItem];
 | ||
|             DataRowView dr = (DataRowView)(GetGridViewFilteredAndSortedData(gridViewException)[selectedExceptionItem]);
 | ||
|             if (dr != null)
 | ||
|             {
 | ||
|                 this.currentPickOrder = dr["pickOrderNo"].ToString();
 | ||
|                 isDataSourceChanged = true;
 | ||
|                 loadPickOrders();
 | ||
|                 this.setCurrentRequestDetail();
 | ||
|                 this.switchGridViewRowSelection(gridViewException, true);
 | ||
|             }
 | ||
|             else
 | ||
|             {
 | ||
|                 showErrorMsg("no record found");
 | ||
|             }
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
|         }
 | ||
| 
 | ||
| 
 | ||
|         // gridview4validate
 | ||
| 
 | ||
|         int selectedValidationItem = -1;
 | ||
|         private void gridView4Validation_FocusedRowObjectChanged(object sender, FocusedRowObjectChangedEventArgs e)
 | ||
|         {
 | ||
|             if (this.gridView4Valid.FocusedRowHandle < 0 || gridView4Valid.FocusedRowHandle == selectedValidationItem)
 | ||
|             {
 | ||
|                 if (gridView4Valid.IsGroupRow(e.RowHandle)) //set first row of group selected
 | ||
|                 {
 | ||
|                     selectedValidationItem = gridView4Valid.GetChildRowHandle(e.RowHandle, 0);
 | ||
|                 }
 | ||
|                 else
 | ||
|                 {
 | ||
|                     return;
 | ||
|                 }
 | ||
|             }
 | ||
|             selectedValidationItem = gridView4Valid.FocusedRowHandle >= 0 ? gridView4Valid.FocusedRowHandle : selectedValidationItem;  
 | ||
|             setCurrentValidationDetail(); 
 | ||
|            gridViewValidated .FocusedRowHandle = -1;
 | ||
|            gridViewValidated.SelectRow(-1);
 | ||
|         }
 | ||
|         private void setCurrentValidationDetail()
 | ||
|         {
 | ||
|             if (!grid4Valid.IsFocused)
 | ||
|             {
 | ||
|                 //return;
 | ||
|             }
 | ||
|             if (selectedValidationItem < 0 || selectedValidationItem >= dtPickOrders4Validation.Rows.Count)
 | ||
|             {
 | ||
|                 return;
 | ||
|             }
 | ||
| 
 | ||
| 
 | ||
|          //   DataRow dr = dtPickOrders4Validation.Rows[selectedValidationItem];
 | ||
|             DataRowView dr = (DataRowView)(GetGridViewFilteredAndSortedData(gridView4Valid)[selectedValidationItem]);
 | ||
|            
 | ||
|               setValidataDetail(dr.Row);
 | ||
|               this.textEditValidCount.Text = this.lbPickCount.Text;
 | ||
|       
 | ||
|         }
 | ||
| 
 | ||
|         
 | ||
| 
 | ||
|         void setValidataDetail(DataRow dr)
 | ||
|         {
 | ||
|             if (currentDetail != null && currentDetail.ID == Convert.ToInt32(dr["id"].ToString()))
 | ||
|             {
 | ||
|                 textEditBarcode.Focus();
 | ||
|                 textEditBarcode.SelectAll();
 | ||
|                 return;
 | ||
|             }
 | ||
|             currentDetail = new WmsOutPickDetail_tmp(dr);
 | ||
|             lbGoodsName.Text = dr[WmsGoods.exfields.goodsName.ToString()].ToString(); ;
 | ||
|          
 | ||
|             this.lbManufacturer.Text = dr[WmsGoods.exfields.manufacturer.ToString()].ToString(); 
 | ||
|             this.lbPickCount.Text = dr[WmsOutPickDetail.fields.bulkCount.ToString()].ToString();
 | ||
|             int i = this.lbPickCount.Text.IndexOf(".");
 | ||
|             if (i > 0)
 | ||
|             {
 | ||
|                 this.lbPickCount.Text = this.lbPickCount.Text.Substring(0, i);
 | ||
|             }
 | ||
|             this.lbSaleCount.Text = dr[WmsOutPickDetail.fields.bulkCount.ToString()].ToString();
 | ||
|             this.textEditValidCount.Text = dr[WmsOutPickDetail.fields.confirmedCount.ToString()].ToString();
 | ||
|             this.textEditValidtionRemark.Text = dr[WmsOutPickDetail.fields.validRemark.ToString()].ToString();
 | ||
|             isDoubleChk = "Y".Equals( dr["isDouChk"].ToString().Trim()); 
 | ||
|                 lgDoulbeChk.Visibility = isDoubleChk ? DevExpress.XtraLayout.Utils.LayoutVisibility.Always
 | ||
|                 : DevExpress.XtraLayout.Utils.LayoutVisibility.Never; 
 | ||
|             try
 | ||
|             {
 | ||
|                 string tmp = dr[WmsOutPickDetail.fields.validReason.ToString()].ToString();
 | ||
|                 if (string.IsNullOrEmpty(tmp))
 | ||
|                 {
 | ||
|                     this.comValidException.SelectedIndex = 0;
 | ||
| 
 | ||
|                 }
 | ||
|                 else
 | ||
|                 {
 | ||
|                     int validReason = Convert.ToInt32(tmp);
 | ||
|                     validReason = validReason > 0 ? validReason : 0;
 | ||
|                     if (validReason > 0)
 | ||
|                     {
 | ||
| 
 | ||
|                       DataRow ndr =  Park.getDictionary().Rows.Find(validReason);
 | ||
| 
 | ||
|                       Node n = new Node(ndr);
 | ||
| 
 | ||
| 
 | ||
|                         foreach (Node cc in comValidException.Properties.Items)
 | ||
|                         {
 | ||
| 
 | ||
|                             if (cc.ID == n.ID)
 | ||
|                             {
 | ||
|                                 comValidException.SelectedItem = cc;
 | ||
|                                 break;
 | ||
|                             }
 | ||
| 
 | ||
| 
 | ||
|                         }
 | ||
| 
 | ||
|                     }
 | ||
|                     else
 | ||
|                     {
 | ||
|                         this.comValidException.SelectedIndex = 0;
 | ||
|                     }
 | ||
| 
 | ||
| 
 | ||
|                 }
 | ||
| 
 | ||
|                 
 | ||
|             }
 | ||
|             catch (Exception e)
 | ||
|             {
 | ||
|                 this.comValidException.SelectedIndex = 0;
 | ||
|             }
 | ||
| 
 | ||
|             createSKUinputs(currentDetail.goodsId, currentDetail.skuId);
 | ||
| 
 | ||
|           //  this.lbBatch.Text = dr["batch"].ToString(); ;
 | ||
|           //  this.lbProductDate.Text = dr[WmsOutPickDetail.fields.productDate.ToString()].ToString();  
 | ||
|           //  this.lbValidDate.Text = dr[WmsOutPickDetail.fields.validDate.ToString()].ToString();
 | ||
|            
 | ||
|             
 | ||
|             
 | ||
|             this.lbType.Text = dr[WmsGoods.exfields.type.ToString()].ToString();
 | ||
|             this.lbUnit.Text = dr[WmsGoods.exfields.unit.ToString()].ToString();
 | ||
|             this.checkEditPass.Checked = true;
 | ||
|             enumOutStockPickStatus state = (enumOutStockPickStatus)Convert.ToInt32(dr["bulkPickState"].ToString());
 | ||
|             if (state == enumOutStockPickStatus.复核异常)
 | ||
|             {
 | ||
|                 this.checkEditPass.Checked = false;
 | ||
|             }
 | ||
|             textEditBarcode.Text = dr[WmsGoods.exfields.barcode.ToString()].ToString();
 | ||
|             //textEditBarcode.SelectedText = textEditBarcode.Text;
 | ||
|             //textEditBarcode.SelectionLength = textEditBarcode.Text.Length;
 | ||
|             textEditBarcode.Focus();
 | ||
|             textEditBarcode.SelectAll();
 | ||
| 
 | ||
|             this.btnValidateItem.Enabled = true;
 | ||
|              
 | ||
| 
 | ||
| 
 | ||
|         }
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
|         private void textEditBarcode_EditValueChanged(object sender, EventArgs e)
 | ||
|         {
 | ||
|            
 | ||
| 
 | ||
| 
 | ||
|         }
 | ||
| 
 | ||
|         private void btnValidateItem_Click(object sender, EventArgs e)
 | ||
|         {
 | ||
|             try
 | ||
|             {
 | ||
|                 validation();
 | ||
|             }
 | ||
|             catch (Exception er)
 | ||
|             {
 | ||
|                 showErrorMsg(er);
 | ||
|             }
 | ||
|         }
 | ||
| 
 | ||
|         private void validation()
 | ||
|         {
 | ||
|             if (currentDetail == null)
 | ||
|             {
 | ||
|                 return;
 | ||
|             }
 | ||
|             if (currentDetail.bulkPickState < (int)enumOutStockPickStatus.分拣完成)
 | ||
|             {
 | ||
|                 showErrorMsg("此货物还未完成分拣,不能复核");
 | ||
|                 return;
 | ||
|             }
 | ||
|             if (isDoubleChk)
 | ||
|             {
 | ||
|                 if (string.IsNullOrEmpty(txtAccount.Text) || string.IsNullOrEmpty(txtPasswd.Text.Trim()))
 | ||
|                 {
 | ||
|                     showErrorMsg("重点商品,需要双人验收!");
 | ||
|                     this.txtAccount.Focus();
 | ||
|                     return  ;
 | ||
|                 }
 | ||
| 
 | ||
|                 if (!checkPermission(WmsConstants.SPECIAL_AUTHS_DOUBLE_CHECK))
 | ||
|                 {
 | ||
|                     showErrorMsg(LoginInfo.Account + " 权限不足,需要特殊权限:" + WmsConstants.SPECIAL_AUTHS_DOUBLE_CHECK);
 | ||
|                     return  ;
 | ||
| 
 | ||
|                 }
 | ||
| 
 | ||
|                  currentDetail.checkedBy1=checkPermission(txtAccount.Text, txtPasswd.Text, WmsConstants.SPECIAL_AUTHS_DOUBLE_CHECK);
 | ||
|                  if (currentDetail.checkedBy1<0)
 | ||
|                 {
 | ||
|                     showErrorMsg(txtAccount.Text + " 权限不足,需要特殊权限:" + WmsConstants.SPECIAL_AUTHS_DOUBLE_CHECK);
 | ||
|                     return  ;
 | ||
| 
 | ||
|                 }
 | ||
| 
 | ||
|             }
 | ||
|             if (comValidException.SelectedItem == null)
 | ||
|             {
 | ||
|                 showErrorMsg("请选择复核结果");
 | ||
|                 this.comValidException.Focus();
 | ||
|                 return;
 | ||
|             }
 | ||
|           
 | ||
|             currentDetail.bulkPickState = checkEditPass.Checked ? (int)enumOutStockPickStatus.复核完成 : (int)enumOutStockPickStatus.复核异常;
 | ||
|             currentDetail.validRemark = comValidException.Text +";  " +textEditValidtionRemark.Text.Trim();
 | ||
|             currentDetail.validReason = ((Node)comValidException.SelectedItem).ID;
 | ||
|             currentDetail.confirmedCount = Convert.ToDecimal(textEditValidCount.Text.Trim());
 | ||
|           
 | ||
|             Thread completeThread = new Thread(printErrorCode);
 | ||
|             completeThread.IsBackground = true;
 | ||
|             completeThread.Start();
 | ||
| 
 | ||
|             updateValidationItem();
 | ||
| 
 | ||
|             //Thread updateValidation = new Thread(updateValidationItem);
 | ||
|             //updateValidation.IsBackground = true;
 | ||
|             //updateValidation.Start();
 | ||
| 
 | ||
| 
 | ||
|             DataRow dr = this.dtPickOrdersDetail.Rows.Find(currentDetail.ID);
 | ||
|             if (dr != null)
 | ||
|             {
 | ||
|                 dr[WmsOutPickDetail.fields.validReason.ToString()] = currentDetail.validReason;
 | ||
|                 dr["bulkPickState"] = currentDetail.bulkPickState;
 | ||
|                 dr["validResult"] = this.comValidException.Text ;
 | ||
|                 dr[WmsOutPickDetail.fields.validRemark.ToString()] = this.textEditValidtionRemark.Text;
 | ||
|                 dr[WmsOutPickDetail.fields.confirmedCount.ToString()] = currentDetail.confirmedCount;
 | ||
| 
 | ||
|             }
 | ||
|             bindValidationTables();
 | ||
|            
 | ||
|            
 | ||
| 
 | ||
|         }
 | ||
| 
 | ||
|         void printErrorCode()
 | ||
|         {
 | ||
|             try
 | ||
|             {
 | ||
|                 if (currentDetail.bulkPickState == (int)enumOutStockPickStatus.复核异常)
 | ||
|                 {
 | ||
|                     DataView dv = dtPickOrdersDetail.DefaultView;
 | ||
|                     dv.RowFilter = "ID =" + currentDetail.ID;
 | ||
|                     reqportPrint.printBulkValidError(dv.ToTable());
 | ||
|                 }
 | ||
|             }
 | ||
|             catch (Exception er)
 | ||
|             {
 | ||
|                 showErrorMsg(er);
 | ||
|             }
 | ||
|         }
 | ||
| 
 | ||
|         private void updateValidationItem()
 | ||
|         {
 | ||
|             if (currentDetail == null)
 | ||
|             {
 | ||
|                 return;
 | ||
|             }
 | ||
|             try
 | ||
|             {
 | ||
|                 bool b = this.pickClient.updateValidBulkPickStatus(currentDetail.ID, currentDetail.bulkPickState, currentDetail.validRemark, 
 | ||
|                     currentDetail.validReason, currentDetail.confirmedCount,currentDetail.checkedBy1);
 | ||
|                 //closeClient();
 | ||
|             }
 | ||
|             catch (Exception ex)
 | ||
|             {
 | ||
|                 showErrorMsg(ex.Message);
 | ||
|             }
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
|             //  currentDetail.Update();
 | ||
|         }
 | ||
| 
 | ||
|         private void gridView4Valid_KeyDown(object sender, KeyEventArgs e)
 | ||
|         {
 | ||
|             if(e.KeyCode == Keys.Enter){
 | ||
| 
 | ||
|                 validation();
 | ||
|             }
 | ||
|         }
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
|       
 | ||
|        protected new void gridview_GotFocus(object sender, EventArgs e)
 | ||
|         {
 | ||
|             if (sender == gridView4Valid && dtPickOrders4Validation !=null)
 | ||
|             {
 | ||
|                 //grid4Valid.ForeColor = Color.Blue;
 | ||
|                // gridView4Valid.OptionsSelection.EnableAppearanceHideSelection = true;
 | ||
|                 if (this.dtPickOrders4Validation.Rows.Count == 0)
 | ||
|                 {
 | ||
|                     gridViewValidated.Focus();
 | ||
|                 }
 | ||
|                 this.setCurrentValidationDetail();
 | ||
|                 switchGridViewRowSelection(gridView4Valid,true);
 | ||
|                 switchGridViewRowSelection(gridViewValidated, false);
 | ||
|             }
 | ||
|             else if (sender == gridViewValidated)
 | ||
|             {
 | ||
|                 this.setCurrentValidatedDetail();
 | ||
|                 switchGridViewRowSelection(gridViewValidated, true);
 | ||
|                 switchGridViewRowSelection(gridView4Valid, false);
 | ||
|             }
 | ||
|             else
 | ||
|             {
 | ||
|                 switchGridViewRowSelection((GridView)sender, true);
 | ||
|             }
 | ||
|             
 | ||
|         }  
 | ||
|         
 | ||
|       
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
|         void textEditBarcode_MouseUp(object sender, MouseEventArgs e)
 | ||
|         {
 | ||
|             //如果鼠标左键操作并且标记存在,则执行全选             
 | ||
|             if (e.Button == MouseButtons.Left &&textEditBarcode.Tag!=null&& (bool)textEditBarcode.Tag == true)
 | ||
|             {
 | ||
|                 textEditBarcode.SelectAll();
 | ||
|             }
 | ||
| 
 | ||
|             //取消全选标记              
 | ||
|             textEditBarcode.Tag = false;
 | ||
|         }
 | ||
| 
 | ||
| 
 | ||
|         void textBoxId_GotFocus(object sender, EventArgs e)
 | ||
|         {
 | ||
|             this.txtBoxId.Tag = true;    //设置标记              
 | ||
|             txtBoxId.SelectAll();   //注意1         
 | ||
|         }
 | ||
| 
 | ||
|         void textBoxId_MouseUp(object sender, MouseEventArgs e)
 | ||
|         {
 | ||
|             //如果鼠标左键操作并且标记存在,则执行全选             
 | ||
|             if (e.Button == MouseButtons.Left && txtBoxId.Tag != null && (bool)txtBoxId.Tag == true)
 | ||
|             {
 | ||
|                 txtBoxId.SelectAll();
 | ||
|             }
 | ||
| 
 | ||
|             //取消全选标记              
 | ||
|             txtBoxId.Tag = false;
 | ||
|         }
 | ||
| 
 | ||
| 
 | ||
|         void textEditBarcode_GotFocus(object sender, EventArgs e)
 | ||
|         {
 | ||
|             textEditBarcode.Tag = true;    //设置标记              
 | ||
|             textEditBarcode.SelectAll();   //注意1         
 | ||
|         }
 | ||
|         string notGoodsExists = "不存在此商品";
 | ||
|         private void textEditBarcode_KeyDown(object sender, KeyEventArgs e)
 | ||
|         {
 | ||
|             //Color a = new Color();
 | ||
|             if (notGoodsExists.Equals(lbGoodsName.Text))
 | ||
|             {
 | ||
|                 lbGoodsName.Text = "";
 | ||
|             }
 | ||
|             lbGoodsName.BackColor = Color.White;
 | ||
|             if (e.KeyCode != Keys.Enter)
 | ||
|             {
 | ||
|                 return;
 | ||
|             }
 | ||
|             string barcode = textEditBarcode.Text;
 | ||
| 
 | ||
|             if (string.IsNullOrEmpty(barcode))
 | ||
|             {
 | ||
|                 return;
 | ||
|             }
 | ||
|            
 | ||
|             if(!WmsConstants.OUT_VALIDATION_ONE_ENTER && 
 | ||
|                 lastScanBarcode.Equals(barcode)){
 | ||
|               validation();
 | ||
|               return;
 | ||
|             } 
 | ||
|            
 | ||
|             textEditBarcode.BackColor = textEditValidCount.BackColor; ;
 | ||
| 
 | ||
|             DataRow[] drs = dtPickOrders4Validation.Select(string.Format("barcode ='{0}'", barcode));
 | ||
|           lastScanBarcode = "norec";
 | ||
| 
 | ||
|             if (drs.Length == 0)
 | ||
|             { 
 | ||
| 
 | ||
|                 //check validated 
 | ||
|                 drs = this.dtPickOrdersValidated.Select(string.Format("barcode ='{0}'", barcode)); 
 | ||
| 
 | ||
|                 if (drs.Length == 0)
 | ||
|                 {
 | ||
|                     resetValidationDetails();
 | ||
|                     // clearDetails(); 
 | ||
|                     //setCurrentValidationDetail();
 | ||
|                     lbGoodsName.Text = notGoodsExists;
 | ||
|                     lbGoodsName.BackColor = Color.Yellow;
 | ||
|                     return;
 | ||
|                 }
 | ||
| 
 | ||
|                
 | ||
| 
 | ||
|                 if (drs.Length > 1)
 | ||
|                 {
 | ||
|                     textEditBarcode.BackColor = Color.OrangeRed;
 | ||
|                 }
 | ||
| 
 | ||
|                 DataRow dr0 = drs[0];
 | ||
|                 if (drs != null)
 | ||
|                 {
 | ||
|                    // selectedValidatedItem = dtPickOrdersValidated.Rows.IndexOf(dr0); 
 | ||
|                     selectedValidatedItem = 0;
 | ||
|                     foreach (DataRowView drv in GetGridViewFilteredAndSortedData(gridViewValidated))
 | ||
|                     {
 | ||
|                         if (drv["barcode"].ToString().Equals(barcode))
 | ||
|                         {
 | ||
|                             break;
 | ||
|                         }
 | ||
|                         selectedValidatedItem++;
 | ||
| 
 | ||
|                     }
 | ||
|                 }
 | ||
| 
 | ||
|                 if (selectedValidatedItem >= 0 && dtPickOrdersValidated.Rows.Count > selectedValidatedItem)
 | ||
|                 {
 | ||
|                     this.gridViewValidated.FocusedRowHandle = selectedValidatedItem;
 | ||
|                 }
 | ||
|                 gridViewValidated.Focus();
 | ||
|                 this.setCurrentValidatedDetail();
 | ||
|                 return;
 | ||
|             }
 | ||
| 
 | ||
|             lastScanBarcode = barcode;
 | ||
|           
 | ||
|             if (drs.Length > 1)
 | ||
|             {
 | ||
|                 textEditBarcode.BackColor = Color.OrangeRed;
 | ||
|             }
 | ||
|            
 | ||
|             DataRow dr = drs[0];
 | ||
|             if (drs != null)
 | ||
|             {
 | ||
|                // selectedValidationItem = dtPickOrders4Validation.Rows.IndexOf(dr); 
 | ||
|                 selectedValidationItem = 0;
 | ||
|                 foreach (DataRowView drv in GetGridViewFilteredAndSortedData(gridView4Valid))
 | ||
|                 {
 | ||
|                     if (drv["barcode"].ToString().Equals(barcode))
 | ||
|                     {
 | ||
|                         break;
 | ||
|                     }
 | ||
|                     selectedValidationItem++;
 | ||
| 
 | ||
|                 }
 | ||
| 
 | ||
|             }
 | ||
| 
 | ||
|             if (selectedValidationItem >= 0 && dtPickOrders4Validation.Rows.Count > selectedValidationItem)
 | ||
|             {
 | ||
|                 this.gridView4Valid.FocusedRowHandle = selectedValidationItem;
 | ||
|             }
 | ||
|             gridView4Valid.Focus();
 | ||
|             setCurrentValidationDetail();
 | ||
|             
 | ||
|             if (WmsConstants.OUT_VALIDATION_ONE_ENTER )
 | ||
|             {
 | ||
|                 validation();
 | ||
|                 
 | ||
|             } 
 | ||
|         }
 | ||
| 
 | ||
|         string tmpOrder = string.Empty;
 | ||
|         int boxcnt =0;
 | ||
|         int bagcnt = 0;
 | ||
| 
 | ||
|         private void btnPrint_Click(object sender, EventArgs e)
 | ||
|         {
 | ||
|             printCodes();
 | ||
|         }
 | ||
| 
 | ||
|         printIn reqportPrint = new printIn();
 | ||
|         void completeValidation()
 | ||
|         {
 | ||
|             try
 | ||
|             { 
 | ||
|                // pickClient.completeBulkValidation(tmpOrder,boxcnt, bagcnt, dtPickOrdersValidated);
 | ||
|                 pickClient.completeBulkValidation(tmpOrder, boxcnt, bagcnt);
 | ||
|                 pickClient.Close();
 | ||
|                
 | ||
|                 //TODO: print bulk boxs\bags label
 | ||
|                 //t_tmsStock
 | ||
|                 printCodes();
 | ||
| 
 | ||
|             }
 | ||
|             catch (Exception ex)
 | ||
|             {
 | ||
|                 showErrorMsg(ex );
 | ||
|             }
 | ||
| 
 | ||
|            // lgt.completeBulkValidation(currentPickOrder, dtPickOrdersValidated);
 | ||
|             
 | ||
|            // currentPickOrder = null;
 | ||
|         }
 | ||
| 
 | ||
|         private void printCodes()
 | ||
|         {
 | ||
|             try
 | ||
|             {
 | ||
|                 boxcnt = Convert.ToInt32(spinBulkBox.Value);
 | ||
|                 bagcnt = Convert.ToInt32(spinBulkBag.Value);
 | ||
| 
 | ||
|                 if (boxcnt + bagcnt == 0)
 | ||
|                 {
 | ||
|                    // showErrorMsg("请设置零货拼箱、拼袋数量");
 | ||
|                  //   return;
 | ||
|                 }
 | ||
| 
 | ||
|                 tmpOrder = string.IsNullOrEmpty(tmpOrder) ? currentPickOrder : tmpOrder;
 | ||
|               //  tmpOrder="PK20210812025228";
 | ||
|                 DataTable dt = tmsClient.getTmsStockBulkDetail(tmpOrder);
 | ||
|        
 | ||
|                 reqportPrint.printBulkPackingNoStore(dt, boxcnt, bagcnt);
 | ||
|                 tmsClient.Close();
 | ||
|             }
 | ||
|             catch (Exception ex)
 | ||
|             {
 | ||
|                 showErrorMsg(ex );
 | ||
|             }
 | ||
|             
 | ||
|         }
 | ||
| 
 | ||
|         private void textEditValidCount_EditValueChanged(object sender, EventArgs e)
 | ||
|         {
 | ||
|             if (currentDetail == null)
 | ||
|             {
 | ||
|                 return;
 | ||
|             }
 | ||
|             this.checkEditPass.Checked = textEditValidCount.Value == currentDetail.bulkCount; 
 | ||
|             if (textEditValidCount.Value != currentDetail.bulkCount)
 | ||
|             {
 | ||
|                
 | ||
|                 this.comValidException.SelectedIndex = -1;
 | ||
| 
 | ||
|             }
 | ||
|         }
 | ||
| 
 | ||
|         private void comValidException_SelectedIndexChanged(object sender, EventArgs e)
 | ||
|         {
 | ||
|             this.checkEditPass.Checked = comValidException.SelectedIndex == 0;
 | ||
|         }
 | ||
| 
 | ||
|         private void btnEndWave_Click(object sender, EventArgs e)
 | ||
|         {
 | ||
| 
 | ||
|         }
 | ||
| 
 | ||
|         private void GoodsOutValidationForm_FormClosing(object sender, FormClosingEventArgs e)
 | ||
|         {
 | ||
|             timer.Stop();
 | ||
|             timer.Close(); 
 | ||
|             closeClient();
 | ||
|         }
 | ||
| 
 | ||
|         
 | ||
| 
 | ||
|         private void lgOutPickDetail_CustomButtonChecked(object sender, DevExpress.XtraBars.Docking2010.BaseButtonEventArgs e)
 | ||
|         {
 | ||
|             this.gridSaleOrders.DataSource = null;
 | ||
|             gridPickDetails.DataSource = null;
 | ||
|         }
 | ||
| 
 | ||
|         private void lgOutPickDetail_CustomButtonUnchecked(object sender, DevExpress.XtraBars.Docking2010.BaseButtonEventArgs e)
 | ||
|         {
 | ||
|             showOrderPickDetail();
 | ||
|          
 | ||
|             
 | ||
|         }
 | ||
| 
 | ||
|         private void combColors_SelectedIndexChanged(object sender, EventArgs e)
 | ||
|         {
 | ||
|             if (oldDesk == "-1")
 | ||
|             {
 | ||
|                 return;
 | ||
|             }
 | ||
|             queryOrders();
 | ||
|           
 | ||
|         }
 | ||
| 
 | ||
|         void queryOrders()
 | ||
|         {
 | ||
|             showWaitForm();
 | ||
|             this.refreshInterval = 0;
 | ||
|             clearDetails();
 | ||
|             getValidationOrders();
 | ||
|             getDeskStatus();
 | ||
|             closeWaitForm();
 | ||
|         }
 | ||
| 
 | ||
|         private void spinOrder_EditValueChanged(object sender, EventArgs e)
 | ||
|         {
 | ||
|             refreshInterval = Convert.ToInt32(spinOrder.Value * 60);
 | ||
|         }
 | ||
| 
 | ||
|         private void txtBoxId_KeyUp(object sender, KeyEventArgs e)
 | ||
|         {
 | ||
|           
 | ||
|             string boxId = txtBoxId.Text.Trim();
 | ||
|             
 | ||
|             if (string.IsNullOrEmpty(boxId))
 | ||
|                 {
 | ||
|                     boxWave = string.Empty;
 | ||
|                     boxDesk = 0;
 | ||
|                 }
 | ||
| 
 | ||
|             if (e.KeyCode != Keys.Enter)
 | ||
|             {
 | ||
|                 return;
 | ||
|             }
 | ||
| 
 | ||
|             if (string.IsNullOrEmpty(boxId))
 | ||
|             {
 | ||
|                 boxWave = string.Empty; 
 | ||
|                 boxDesk = 0;
 | ||
|                 getPickOrders4Validation();
 | ||
|                 return;
 | ||
| 
 | ||
|             }
 | ||
| 
 | ||
|             try
 | ||
|             {
 | ||
|                 DataTable dt = pickClient.getWaveDeskByBoxId(boxId); 
 | ||
| 
 | ||
|                 if (dt.Rows.Count==0)
 | ||
|                 {
 | ||
|                     showErrorMsg("未找到该箱子的注册信息");
 | ||
|                     return;
 | ||
|                 }
 | ||
| 
 | ||
|                 boxWave = dt.Rows[0]["waveNo"].ToString();
 | ||
| 
 | ||
|                 boxDesk = Convert.ToInt32( dt.Rows[0]["color"].ToString());
 | ||
| 
 | ||
|                 if (boxDesk != desk)
 | ||
|                 {
 | ||
|                     showErrorMsg(string.Format("该箱子属于复核台{0}",boxDesk));
 | ||
|                     return;
 | ||
|                 }
 | ||
| 
 | ||
| 
 | ||
|                 getPickOrders4Validation();
 | ||
|                 //loadPickOrders();
 | ||
| 
 | ||
|             }
 | ||
|             catch (Exception er)
 | ||
|             {
 | ||
| 
 | ||
|                 showErrorMsg(er, "");
 | ||
|             }
 | ||
|              
 | ||
|         }
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
|         //-----------create sku input controls
 | ||
|         //  List<LotAtt> ATTs = new List<LotAtt>();
 | ||
|       //  Dictionary<LotAtt, BaseEdit> SKUs = new Dictionary<LotAtt, BaseEdit>();
 | ||
|         Dictionary<LotAtt, Label> SKUs = new Dictionary<LotAtt, Label>();
 | ||
|         int lastLotId = 0;
 | ||
|         private void createSKUinputs(string goodsId,int skuId)
 | ||
|         {
 | ||
|           //  skuId = 1;
 | ||
|             DataTable skuValues = null;
 | ||
|             DataTable lotAtts = null;
 | ||
|             
 | ||
|                 try
 | ||
|                 {
 | ||
|                     showWaitForm();
 | ||
|                     lotAtts = lotClient.getLotAtts(goodsId);
 | ||
|                     skuValues = lotClient.querySkuValues(skuId);
 | ||
|                     closeWaitForm();
 | ||
|                     //closeClient();
 | ||
|                 }
 | ||
|                 catch (Exception e)
 | ||
|                 {
 | ||
|                     closeWaitForm();
 | ||
|                     showErrorMsg(e, "出错了");
 | ||
|                     return;
 | ||
|                 }
 | ||
|                 
 | ||
| 
 | ||
|             List<LayoutControlItem> liSKU = new List<LayoutControlItem>();
 | ||
| 
 | ||
| 
 | ||
|             int pjCount = lotAtts.Rows.Count;
 | ||
| 
 | ||
|             if (pjCount == 0)
 | ||
|             {
 | ||
|                 return;
 | ||
|             }
 | ||
| 
 | ||
|             int lotId = Convert.ToInt32(lotAtts.Rows[0]["lotId"].ToString());
 | ||
| 
 | ||
|             if (lastLotId == lotId) //批次定义相同,不需从新创建sku控件
 | ||
|             {
 | ||
|                 foreach (LotAtt la in SKUs.Keys)
 | ||
|                 {
 | ||
|                     SKUs[la].Text = "";
 | ||
| 
 | ||
|                 }
 | ||
| 
 | ||
|             }
 | ||
|             else
 | ||
|             { 
 | ||
|                 lcgSKUGroup.BeginUpdate();
 | ||
|                 lcgSKUGroup.Clear();
 | ||
|                 lcgSKUGroup.Items.Clear();
 | ||
|                 SKUs.Clear();
 | ||
| 
 | ||
|                 LayoutControlItem lastItem = null;
 | ||
|                 int i = 0;
 | ||
|                 foreach (DataRow dr in lotAtts.Rows)
 | ||
|                 {
 | ||
| 
 | ||
|                     Label be;
 | ||
| 
 | ||
|                     LotAtt la = new LotAtt(dr);
 | ||
|                     enumLotAttType enLt = (enumLotAttType)la.attType;
 | ||
| 
 | ||
|                     be = new Label();
 | ||
| 
 | ||
|                     be.Name = "SKU" + la.ID;
 | ||
|                     be.TabIndex = 40 + (i * 8);
 | ||
|                     be.Font = new System.Drawing.Font("微软雅黑", 16F);
 | ||
|                     if (!la.isOptional)
 | ||
|                     {
 | ||
|                         be.ForeColor = Color.Red;
 | ||
|                     }
 | ||
| 
 | ||
| 
 | ||
|                     LayoutControlItem item = lcgSKUGroup.AddItem(la.attName, be) as LayoutControlItem;
 | ||
| 
 | ||
| 
 | ||
|                     item.MaxSize = new System.Drawing.Size(300, 44);
 | ||
|                     item.MinSize = new System.Drawing.Size(270, 44);
 | ||
|                     item.Name = "lci" + la.attName;
 | ||
|                     item.Padding = new DevExpress.XtraLayout.Utils.Padding(20, 2, 2, 2);
 | ||
|                     item.Size = new System.Drawing.Size(839, 44);
 | ||
|                     item.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
 | ||
|                     // this.layoutControlItem2.Text = "批次信息";
 | ||
|                     item.TextSize = new System.Drawing.Size(51, 14);
 | ||
| 
 | ||
|                     if (lastItem != null && i % 4 != 0)
 | ||
|                     {
 | ||
|                         item.Move(lastItem, DevExpress.XtraLayout.Utils.InsertType.Left);
 | ||
|                     }
 | ||
|                     lastItem = item;
 | ||
| 
 | ||
|                     SKUs.Add(la, be);
 | ||
|                     i++;
 | ||
| 
 | ||
|                 }
 | ||
|             }
 | ||
|             lcgSKUGroup.EndUpdate();
 | ||
|             lastLotId = lotId;
 | ||
| 
 | ||
|             foreach (LotAtt la in SKUs.Keys)
 | ||
|             {
 | ||
|                 Label be = SKUs[la];
 | ||
|                 DataRow[] drs = skuValues.Select(string.Format("attID ={0}", la.ID));
 | ||
|                 if (la.isList && la.listId > 0)
 | ||
|                 {
 | ||
|                     foreach (DataRow drr in drs)
 | ||
|                     {
 | ||
|                         DataRow[] drss = Park.getDictionary(false).Select(string.Format("ID ={0}", drr["value"].ToString()));
 | ||
|                         if (drss.Length > 0)
 | ||
|                             be.Text = drss[0]["name"].ToString();
 | ||
|                         break;
 | ||
| 
 | ||
|                     }
 | ||
| 
 | ||
|                 }
 | ||
|                 else
 | ||
|                 {
 | ||
| 
 | ||
|                     if (drs.Length > 0)
 | ||
|                         be.Text = drs[0]["value"].ToString();
 | ||
| 
 | ||
|                 }
 | ||
| 
 | ||
|             }
 | ||
|              
 | ||
|         }
 | ||
| 
 | ||
|         private void swStatus_Toggled(object sender, EventArgs e)
 | ||
|         {
 | ||
|             try
 | ||
|             {
 | ||
|                 showWaitForm();
 | ||
|                 pickClient.setDeskAvailable(desk, !swStatus.IsOn);
 | ||
|                 
 | ||
| 
 | ||
|             }
 | ||
|             catch (Exception er)
 | ||
|             {
 | ||
|                 showErrorMsg(er);
 | ||
|             }
 | ||
|             
 | ||
|             pickClient.Close(); 
 | ||
|             closeWaitForm();
 | ||
|            
 | ||
|         }
 | ||
| 
 | ||
|         private void rd1_CheckedChanged(object sender, EventArgs e)
 | ||
|         {
 | ||
|             rd2.Checked = !rd1.Checked;
 | ||
|             setOrderFilter();
 | ||
|         }
 | ||
| 
 | ||
|         private void rd2_CheckedChanged(object sender, EventArgs e)
 | ||
|         {
 | ||
|             rd1.Checked = !rd2.Checked;
 | ||
|             setOrderFilter();
 | ||
|         }
 | ||
|         string filter = "orderState=" + (int)enumOutStockPickStatus.正在分拣;
 | ||
|         private void setOrderFilter()
 | ||
|         {
 | ||
|             //clearDetails();
 | ||
|             if (rd2.Checked)
 | ||
|             {
 | ||
|                 filter = "orderState>" + (int)enumOutStockPickStatus.正在分拣;
 | ||
|             }
 | ||
|             else if (rd1.Checked)
 | ||
|             {
 | ||
|                 filter = "orderState=" + (int)enumOutStockPickStatus.正在分拣;
 | ||
|             }
 | ||
|             
 | ||
|         }
 | ||
| 
 | ||
|         private void btnOk_Click(object sender, EventArgs e)
 | ||
|         {
 | ||
| 
 | ||
|             boxcnt = Convert.ToInt32(spinBulkBox.Value);
 | ||
|             bagcnt = Convert.ToInt32(spinBulkBag.Value);
 | ||
| 
 | ||
|             if (boxcnt + bagcnt == 0)
 | ||
|             {
 | ||
|               //  showErrorMsg("请设置零货拼箱、拼袋数量");
 | ||
|               //  return;
 | ||
|             }
 | ||
| 
 | ||
| 
 | ||
|             //save the box/bag info
 | ||
| 
 | ||
|             //handle tran system
 | ||
| 
 | ||
|             //print
 | ||
| 
 | ||
|             //close current order
 | ||
|             getCurrentObject();
 | ||
|             tmpOrder = currentPickOrder;
 | ||
|             Thread completeThread = new Thread(completeValidation);
 | ||
|             completeThread.IsBackground = true;
 | ||
|             completeThread.Start();
 | ||
|             //remove the order from pickorder list
 | ||
|             clearDetails();
 | ||
|             if (dtPickOrders.Rows.Count < 2)
 | ||
|             {
 | ||
|                 showWaitForm();
 | ||
|                 try
 | ||
|                 {
 | ||
|                     getPickOrders4Validation();
 | ||
|                 }
 | ||
|                 catch (Exception ee)
 | ||
|                 {
 | ||
|                     LogHelper.WriteLog(typeof(GoodsOutValidationForm), ee);
 | ||
|                     closeWaitForm();
 | ||
|                 }
 | ||
|                 closeWaitForm();
 | ||
|             }
 | ||
|             else
 | ||
|             {
 | ||
| 
 | ||
|                 DataRow dr = dtPickOrders.Rows.Find(currentPickOrder);
 | ||
|                 if (dr != null)
 | ||
|                 {
 | ||
|                     dtPickOrders.Rows.Remove(dr);
 | ||
|                 }
 | ||
|                 currentPickOrder = null;
 | ||
|                 this.selectedRowIndex = 0;
 | ||
|                 loadPickOrders();
 | ||
|             }
 | ||
| 
 | ||
|              
 | ||
|         }
 | ||
| 
 | ||
| 
 | ||
|   }
 | ||
| } |