private void fillSaleDGandProductDG()
        {
            DB.resetConnString();
            productsDG.Items.Clear();
            salesHistoryDG.Items.Clear();
            listView.Items.Clear();
            deleteSelected.IsEnabled = false;
            adjustQuantity.IsEnabled = false;

            if (productModel.SelectedIndex == -1)
            {
                return;
            }

            // for product and barocde datagrid
            product = ProductTableData.getProductByModel(productModel.SelectedItem.ToString());
            Barcode[] barcodes = ProductTableData.getBarcodesByPID(product.ID);

            if (product.Unique_Barcode.StartsWith("Y"))
            {
                deleteSelected.IsEnabled = true;
            }
            else
            {
                adjustQuantity.IsEnabled = true;
            }

            foreach (var item in barcodes)
            {
                if (premitBarcodeinListView(item.Barcode_Serial) == true)
                {
                    listView.Items.Add(new ListViewItems(listView.Items.Count + 1, item.Barcode_Serial, item.Color, item.Date.ToString()));
                }
            }

            productsDG.Items.Add(product);

            //for sales table
            List <Customer_Sale> customer_Sale_List = Customer_SaleTableData.getCustomer_SalebyMatchingProduct(product);

            foreach (var item in customer_Sale_List)
            {
                if (item.Sale == null)
                {
                    MessageBox.Show("Error showing this item. ");
                    continue;
                }
                SalesHistoryDataGrid salesHis;
                if (item.Gifts.Count == 0)
                {
                    salesHis = new SalesHistoryDataGrid(item, "");
                }
                else
                {
                    salesHis = new SalesHistoryDataGrid(item, item.Gifts.First().Barcode);
                }

                salesHistoryDG.Items.Add(salesHis);
            }
        }
        private void customerNumberTextbox_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.Key == Key.Enter && customerNumberTextbox.Text != "")
            {
                stockHistoryDG.Items.Clear();
                salesHistoryDG.Items.Clear();
                try
                {
                    var sales = Sale_TableData.getSalesbyCustomerID(int.Parse(customerNumberTextbox.Text));

                    foreach (var obj in sales)
                    {
                        var cc = Customer_SaleTableData.getCustomer_SalesbyInvoiceID(obj.Invoice_ID);
                        foreach (var item in cc)
                        {
                            SalesHistoryDataGrid salesHis;
                            if (item.Gifts.Count == 0)
                            {
                                salesHis = new SalesHistoryDataGrid(item, "");
                            }
                            else
                            {
                                salesHis = new SalesHistoryDataGrid(item, item.Gifts.First().Barcode);
                            }
                            salesHistoryDG.Items.Add(salesHis);
                            stockHistoryDG.Items.Add(item.Product);
                        }
                    }
                }
                catch (Exception ex)
                {
                    Xceed.Wpf.Toolkit.MessageBox.Show("No product found. Press 'OK' to exit.\n\nDetailed Error:" + ex.Message, "Empty Product", MessageBoxButton.OK, MessageBoxImage.Error);
                }
            }
        }
        private void delete_Selected_Sales_Click(object sender, RoutedEventArgs e)
        {
            if (salesHistoryDG.SelectedIndex == -1)
            {
                return;
            }

            MessageBoxResult res = Xceed.Wpf.Toolkit.MessageBox.Show("Are you sure?. Press 'Yes' to Confirm.", "Confirmation", MessageBoxButton.YesNo, MessageBoxImage.Error, MessageBoxResult.No);

            if (res != MessageBoxResult.Yes)
            {
                return;
            }

            bool flag = false;
            List <SalesHistoryDataGrid> it = salesHistoryDG.SelectedItems.Cast <SalesHistoryDataGrid>().ToList();

            try
            {
                foreach (SalesHistoryDataGrid item in it)
                {
                    if (Customer_SaleTableData.deleteCustomer_Sale(item.Customer_Sale_ID, item.Quantity) == true)
                    {
                        flag = true;
                    }

                    salesHistoryDG.Items.Remove(item);
                }
            }
            catch (Exception ex)
            {
                Xceed.Wpf.Toolkit.MessageBox.Show(ex.Message, "Error");
                flag = false;
            }

            if (flag == true)
            {
                Xceed.Wpf.Toolkit.MessageBox.Show("Sale deleted successfully. Press ok to exit.", "Exit");
                fillSaleDGandProductDG();
            }
        }