private void RemoveProductFromSaleBtn_MouseDown(object sender, MouseButtonEventArgs e)
        {
            try
            {
                if (SelectedProductsDataGrid.VisibleRowCount == 0) return;
                var rowHandle = SelectedProductsDataGrid.View.FocusedRowHandle;
                if (rowHandle < 0) return;
                int productId = (int) SelectedProductsDataGrid.GetCellValue(rowHandle, "ProductID");
                var getProduit = _productManger.GetProductById(productId);
                if (getProduit == null) return;

                decimal unitsOnOrder = (decimal)SelectedProductsDataGrid.GetCellValue(rowHandle, "UnitsOnOrder");
                float purchasePrice = (float)SelectedProductsDataGrid.GetCellValue(rowHandle, "PurchasePrice");
                float ventePriceGros = (float)SelectedProductsDataGrid.GetCellValue(rowHandle, "VentePriceGros");
                float ventePriceDetail =
                    (float)SelectedProductsDataGrid.GetCellValue(rowHandle, "VentePriceDetail");
                float ventePriceComptoire =
                    (float)SelectedProductsDataGrid.GetCellValue(rowHandle, "VentePriceComptoire");
                float discount = (float)SelectedProductsDataGrid.GetCellValue(rowHandle, "Discounts");
                var prodSel = new ProduitsSel
                {
                    ProductId = getProduit.ProductID,
                    ProductName = getProduit.ProductName,
                    UnitsOnOrder = unitsOnOrder,
                    PurchasePrice = purchasePrice,
                    VentePriceGros = ventePriceGros,
                    VentePriceDetail = ventePriceDetail,
                    Discount = discount,
                    VentePriceComptoire = ventePriceComptoire,
                    TotalPriceVente = ventePriceGros*(float) unitsOnOrder,
                    TotalPriceAchat = purchasePrice*(float) unitsOnOrder
                };

                var index = _productsSelSelected.IndexOf(prodSel);
                _productsSelSelected.RemoveAt(index);

                _productSelected.Remove(getProduit);
                ClearFields();

            }
            catch (Exception exception)
            {
                MessageBox.Show(exception.ToString());
            }
        }
        private void UpdateFunction(Product getProduit, int unitsOnorder, float purchasePrice, float discount)
        {
            try
            {
                bool exist = _productsSelSelected.Exists(item => item.ProductId == getProduit.ProductID);
                if (!exist) return;
                var returnProduct = _productsSelSelected.Find(item => item.ProductId == getProduit.ProductID);
                var prodSel = new ProduitsSel
                {
                    ProductId = getProduit.ProductID,
                    ProductName = getProduit.ProductName,
                    UnitsOnOrder = unitsOnorder + returnProduct.UnitsOnOrder,
                    PurchasePrice = purchasePrice + returnProduct.PurchasePrice,
                    Discount = discount,
                    VentePriceGros = returnProduct.VentePriceGros,
                    VentePriceDetail = returnProduct.VentePriceDetail,
                    VentePriceComptoire = returnProduct.VentePriceComptoire,
                    TotalPriceVente = returnProduct.VentePriceGros*(float) (unitsOnorder + returnProduct.UnitsOnOrder),
                    TotalPriceAchat = purchasePrice*(float) (unitsOnorder + returnProduct.UnitsOnOrder)
                };

                var index = _productsSelSelected.IndexOf(returnProduct);
                _productsSelSelected.RemoveAt(index);
                _productsSelSelected.Add(prodSel);
            }
            catch (Exception)
            {
                //
            }
        }
        private int Getid(ProduitsSel entitys, float tvaValue)
        {
            string stockageId = StockageIDtxt.Text;
            string productSnumber = ProductSNtxt.Text;
            string productState = ProductStateCbx.Text;
            string refrenceNum = ReferenceTxt.Text;
            string stockObs = StockObStxt.Text;
            var gestionDb = new GcdbEntities();

            var newStockStore = new StockStore
            {
                Discount = entitys.Discount,
                VentePriceGros = entitys.VentePriceGros,
                VentePriceDetail = entitys.VentePriceDetail,
                VentePriceComptoire = entitys.VentePriceComptoire,
                PurchasePrice = entitys.PurchasePrice,
                UnitsOnOrder = (double?) entitys.UnitsOnOrder,
                TvaValue = tvaValue,
                TotalPriceAchat = entitys.TotalPriceAchat,
                ProductID = entitys.ProductId,
                ProductState = productState,
                Serialnumber = productSnumber,
                Observation = stockObs,
                InsertionDate = AchatDateDte.DateTime.Date,
                RefrenceNum = refrenceNum,
                StockageID = stockageId
            };
            gestionDb.StockStores.Add(newStockStore);
            gestionDb.SaveChanges();
            return newStockStore.StockStoreID;
        }
        private void AddProductToSaleBtn_MouseDown(object sender, MouseButtonEventArgs e)
        {
            if (AllProductsDataGrid.VisibleRowCount == 0) return;
            var rowHandle = AllProductsDataGrid.View.FocusedRowHandle;
            if (rowHandle < 0) return;

            int productId = (int) AllProductsDataGrid.GetCellValue(rowHandle, "ProductID");

            var getProduit = _productManger.GetProductById(productId);

            if (getProduit == null) return;
            if (String.IsNullOrEmpty(QuantiteSaleTxtBox.Text) || !Validator.IsNumberValid(QuantiteSaleTxtBox.Text))
            {
                DXMessageBox.Show(this, "Vous devez saisir une quantité ");
                QuantiteSaleTxtBox.Text = "";
                return;
            }

            int unitsOnorder = Convert.ToInt16(QuantiteSaleTxtBox.Text);
            float purchasePrice = ConvertToFloat(AchatPriceUnitTxt.Text);
            float ventePriceGros = ConvertToFloat(VentePriceUnitGrosTxt.Text);
            float ventePriceDetail = ConvertToFloat(VentePriceUnitDetailTxt.Text);
            float ventePriceComptoire = ConvertToFloat(VentePriceUnitComptoireTxt.Text);

            float discount = ConvertToFloat(DiscountTxt.Text);

            var prodSel = new ProduitsSel
            {
                ProductId = getProduit.ProductID,
                ProductName = getProduit.ProductName,
                UnitsOnOrder = unitsOnorder,
                PurchasePrice = purchasePrice,
                VentePriceGros = ventePriceGros,
                VentePriceDetail = ventePriceDetail,
                VentePriceComptoire = ventePriceComptoire,
                Discount = discount,
                TotalPriceVente = ventePriceGros*unitsOnorder,
                TotalPriceAchat = purchasePrice*unitsOnorder
            };

            var exist = _productSelected.Exists(item => item.ProductID == getProduit.ProductID);

            //  int index = _productSelected.IndexOf(getProduit);
            if (!exist)
            {
                _productSelected.Add(getProduit);
                _productsSelSelected.Add(prodSel);
            }
            else
            {
                UpdateFunction(getProduit, unitsOnorder, purchasePrice, discount);

            }
            ClearFields();
        }
        private void UpdateFunction(StockStore stockStore, int unitsOnorder, decimal discount, decimal salePrice)
        {
            try
            {
                bool exist = _productSelected.Exists(item => item.ProductID == stockStore.Product.ProductID);
                if (!exist) return;
                var returnProduct = _productSelSelected.Find(item => item.ProductName == stockStore.Product.ProductName);
                var prodSel = new ProduitsSel
                {
                    //ProductId = getProduit.ProductID,
                    ProductName = stockStore.Product.ProductName,
                    UnitsOnOrder = unitsOnorder + returnProduct.UnitsOnOrder,
                    TotalPrice = salePrice*unitsOnorder + returnProduct.TotalPrice,
                    TheProduct = returnProduct.TheProduct,
                    UnitePrice = salePrice,
                    // PurchasePrice = purchasePrice + returnProduct.PurchasePrice,
                    //Discount = discount,
                    //VentePriceGros = returnProduct.VentePriceGros,
                    //VentePriceDetail = returnProduct.VentePriceDetail,
                    //VentePriceComptoire = returnProduct.VentePriceComptoire,
                    //TotalPriceVente = returnProduct.VentePriceGros * (float)(unitsOnorder + returnProduct.UnitsOnOrder),
                    //TotalPriceAchat = purchasePrice * (float)(unitsOnorder + returnProduct.UnitsOnOrder)
                };

                var index = _productSelSelected.IndexOf(returnProduct);
                _productSelSelected.RemoveAt(index);
                _productSelSelected.Add(prodSel);
            }
            catch (Exception)
            {
                //
            }
        }
        private void RemoveProductFromSaleBtn_OnMouseDown(object sender, MouseButtonEventArgs e)
        {
            try
            {
                if (SelectedProductsDataGrid.VisibleRowCount == 0) return;
                int rowHandle = SelectedProductsDataGrid.View.FocusedRowHandle;
                if(rowHandle<0)return;
               int productId= (int) SelectedProductsDataGrid.GetCellValue(rowHandle, "ProductID");
                var prodSel = new ProduitsSel
                {
                    ProductName = SelectedProductsDataGrid.GetCellValue(rowHandle, "ProductName").ToString(),
                    UnitsOnOrder =
                        Convert.ToDecimal(SelectedProductsDataGrid.GetCellValue(rowHandle, "UnitsOnOrder").ToString()),
                    TotalPrice =
                        Convert.ToDecimal(SelectedProductsDataGrid.GetCellValue(rowHandle, "TotalPrice").ToString())
                };

                var getProducts = _productManger.GetProductById(productId);
                if (getProducts == null) return;

                int index = _productSelSelected.IndexOf(prodSel);
                _productSelSelected.RemoveAt(index);

                index = _productSelected.IndexOf(getProducts);
                _productSelected.ElementAt(index).UnitsOnOrder -= (short)prodSel.UnitsOnOrder;
                if (getProducts.UnitsOnOrder == 0)
                {
                    _productSelected.RemoveAt(index);
                }

                QuantiteSaleTxtBox.Text = "";
                Calculate();
                Afficher();
                LoadGridProductsSelected();
            }
            catch (Exception exception)
            {

                //
            }
        }
        //*****************************************************************************************
        private void AddProductToSaleBtn_MouseDown(object sender, MouseButtonEventArgs e)
        {
            try
            {

                if (AllProductsDataGrid.VisibleRowCount == 0) return;
                int rowHandle = AllProductsDataGrid.View.FocusedRowHandle;
                int productId = (int) AllProductsDataGrid.GetCellValue(rowHandle, "ProductID");
               // LoadGridAllProducts();
                StockStore stockStore = _productManger.GetStockStore(productId);
                if (stockStore == null) return;

                if (String.IsNullOrEmpty(QuantiteSaleTxtBox.Text) || !Validator.IsNumberValid(QuantiteSaleTxtBox.Text))
                {
                    DXMessageBox.Show(this, "Vous devez saisir une quantité valide");
                    QuantiteSaleTxtBox.Text = "";
                    return;
                }

                int qteSalePrice = Convert.ToInt16(QuantiteSaleTxtBox.Text);
                Decimal salePrice = ConvertToDecimal(VentePriceTxt.Text);

                ProduitsSel prodSel = new ProduitsSel
                {
                    ProductName = stockStore.Product.ProductName,
                    UnitsOnOrder = qteSalePrice,
                    TotalPrice = salePrice * qteSalePrice,
                    TheProduct = stockStore.Product,
                    UnitePrice = salePrice,
                };
                //produit.UnitsOnOrder += qteSalePrice;
                decimal discount =ConvertToDecimal(DiscountTxtBox.Text);
                //12;
               // int index = _productSelected.IndexOf(produit);
                var exist = _productSelected.Exists(item => item.ProductID == stockStore.Product.ProductID);
                if (!exist)
                {
                    _productSelected.Add(stockStore.Product);
                    _productSelSelected.Add(prodSel);
                }
                else
                {
                    UpdateFunction(stockStore, qteSalePrice, discount, salePrice);
                }
                ClearAfterSave();

            }
            catch (Exception exception)
            {
                //
            }
        }