private void btnCompleted_Click(object sender, RoutedEventArgs e)
        {
            DataRow dr = ((DataRowView)dgInsockMaterial.CurrentItem).Row;

            if (dr == null)
            {
                return;
            }
            InsockSuppliersModel insockSupplier = dr["Supplier"] as InsockSuppliersModel;

            if (insockSupplier == null)
            {
                return;
            }
            if (insockSupplier.InsockSupplierName != "Reject")
            {
                dr["ActualDate"] = String.Format(new CultureInfo("en-US"), "{0:M/dd}", DateTime.Now);
            }
            for (int i = 0; i <= sizeRunList.Count - 1; i++)
            {
                SizeRunModel sizeRun = sizeRunList[i];
                dr[String.Format("Column{0}", i)] = sizeRun.Quantity;
            }
            dgInsockMaterial.ItemsSource = null;
            dgInsockMaterial.ItemsSource = dt.AsDataView();
        }
        private void btnSave_Click(object sender, RoutedEventArgs e)
        {
            if (MessageBox.Show("Confirm Save?", this.Title, MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.No)
            {
                return;
            }
            dt = ((DataView)dgInsockMaterial.ItemsSource).ToTable();
            for (int r = 0; r <= dt.Rows.Count - 1; r = r + 2)
            {
                DataRow dr  = dt.Rows[r];
                DataRow dr1 = dt.Rows[r + 1];
                InsockSuppliersModel insockSupplier = (InsockSuppliersModel)dr["Supplier"];
                if (insockSupplier != null)
                {
                    int      insockSupplierId = insockSupplier.InsockSupplierId;
                    string   actualDate       = dr["ActualDate"] as String;
                    DateTime dtActualDate     = TimeHelper.Convert(actualDate);
                    if (String.IsNullOrEmpty(actualDate) == false && dtActualDate != dtNothing)
                    {
                        InsockRawMaterialModel insockRawMaterial = new InsockRawMaterialModel
                        {
                            ProductNo        = productNo,
                            InsockSupplierId = insockSupplierId,
                            ActualDate       = dtActualDate,
                        };

                        insockRawMaterialToInsertList.Add(insockRawMaterial);
                    }
                    for (int i = 0; i <= sizeRunList.Count - 1; i++)
                    {
                        string sizeNo         = sizeRunList[i].SizeNo;
                        int    quantity       = (Int32)dr[String.Format("Column{0}", i)];
                        int    quantityReject = (Int32)dr1[String.Format("Column{0}", i)];
                        if (quantity >= 0 && quantityReject >= 0)
                        {
                            InsockMaterialModel model = new InsockMaterialModel
                            {
                                ProductNo        = productNo,
                                InsockSupplierId = insockSupplierId,
                                SizeNo           = sizeNo,
                                Quantity         = quantity,
                                QuantityReject   = quantityReject,
                            };
                            insockMaterialToInsertList.Add(model);
                        }
                    }
                }
            }
            if (threadInsert.IsBusy == false)
            {
                this.Cursor       = Cursors.Wait;
                btnSave.IsEnabled = false;
                threadInsert.RunWorkerAsync();
            }
        }
        private void dgInsockMaterial_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e)
        {
            if (e.Column.GetValue(TagProperty) == null)
            {
                return;
            }
            string sizeNo = e.Column.GetValue(TagProperty).ToString();

            if (sizeRunList.Select(s => s.SizeNo).Contains(sizeNo) == false)
            {
                return;
            }
            InsockSuppliersModel insockSupplier = (InsockSuppliersModel)((DataRowView)e.Row.Item)["Supplier"];
            int qtyOld = 0;

            if (insockSupplier.InsockSupplierName != "Reject")
            {
                qtyOld = insockMaterialList.Where(o => o.InsockSupplierId == insockSupplier.InsockSupplierId && o.SizeNo == sizeNo).Sum(o => o.Quantity);
            }
            else if (insockSupplier.InsockSupplierName == "Reject")
            {
                qtyOld = insockMaterialList.Where(o => o.InsockSupplierId == insockSupplier.InsockSupplierId && o.SizeNo == sizeNo).Sum(o => o.QuantityReject);
            }
            int     qtyOrder   = sizeRunList.Where(s => s.SizeNo == sizeNo).Sum(s => s.Quantity);
            TextBox txtCurrent = (TextBox)e.EditingElement;
            int     qtyNew     = 0;

            if (int.TryParse(txtCurrent.Text, out qtyNew) == true)
            {
                txtCurrent.Text = (qtyOld + qtyNew).ToString();
                if (qtyOld + qtyNew < 0 || qtyOld + qtyNew > qtyOrder)
                {
                    txtCurrent.Text = qtyOld.ToString();
                }
            }
        }