Beispiel #1
0
        /// <summary>
        /// This method will return an object representing the record matching the primary key information specified.
        /// </summary>
        ///
        /// <param name="pk" type="VSALSalesOrderPrimaryKey">Primary Key information based on which data is to be fetched.</param>
        ///
        /// <returns>object of class VSALSalesOrder</returns>
        public VSALSalesOrder SelectOne(VSALSalesOrderPrimaryKey pk)
        {
            _vSALSalesOrderWCF = new VSALSalesOrder();
            _vSALSalesOrder    = POS.DataLayer.VSALSalesOrderBase.SelectOne(new POS.DataLayer.VSALSalesOrderPrimaryKey(pk.CustomerID, pk.SalesLineID, pk.SalesHeaderID, pk.ProductID));

            _vSALSalesOrderWCF.CustomerID         = _vSALSalesOrder.CustomerID;
            _vSALSalesOrderWCF.CustomerName       = _vSALSalesOrder.CustomerName;
            _vSALSalesOrderWCF.Qty                = _vSALSalesOrder.Qty;
            _vSALSalesOrderWCF.SalesLineID        = _vSALSalesOrder.SalesLineID;
            _vSALSalesOrderWCF.TotalQty           = _vSALSalesOrder.TotalQty;
            _vSALSalesOrderWCF.UnitPrice          = _vSALSalesOrder.UnitPrice;
            _vSALSalesOrderWCF.BatchNumber        = _vSALSalesOrder.BatchNumber;
            _vSALSalesOrderWCF.ExpiryDate         = _vSALSalesOrder.ExpiryDate;
            _vSALSalesOrderWCF.TaxValue           = _vSALSalesOrder.TaxValue;
            _vSALSalesOrderWCF.SalesHeaderID      = _vSALSalesOrder.SalesHeaderID;
            _vSALSalesOrderWCF.SalesDate          = _vSALSalesOrder.SalesDate;
            _vSALSalesOrderWCF.InvoiceNumber      = _vSALSalesOrder.InvoiceNumber;
            _vSALSalesOrderWCF.InvoiceDate        = _vSALSalesOrder.InvoiceDate;
            _vSALSalesOrderWCF.PaymentTypeID      = _vSALSalesOrder.PaymentTypeID;
            _vSALSalesOrderWCF.TotalDiscountRatio = _vSALSalesOrder.TotalDiscountRatio;
            _vSALSalesOrderWCF.TaxTypeName        = _vSALSalesOrder.TaxTypeName;
            _vSALSalesOrderWCF.IsClosed           = _vSALSalesOrder.IsClosed;
            _vSALSalesOrderWCF.IsVoid             = _vSALSalesOrder.IsVoid;
            _vSALSalesOrderWCF.FinalPrice         = _vSALSalesOrder.FinalPrice;
            _vSALSalesOrderWCF.ChequeNumber       = _vSALSalesOrder.ChequeNumber;
            _vSALSalesOrderWCF.ProductName        = _vSALSalesOrder.ProductName;
            _vSALSalesOrderWCF.ProductCode        = _vSALSalesOrder.ProductCode;
            _vSALSalesOrderWCF.IsAcceptBatch      = _vSALSalesOrder.IsAcceptBatch;
            _vSALSalesOrderWCF.UserFullName       = _vSALSalesOrder.UserFullName;
            _vSALSalesOrderWCF.ProductID          = _vSALSalesOrder.ProductID;

            return(_vSALSalesOrderWCF);
        }
        private void CollectLinesData()
        {
            sALSalesReturnLineCollection.Clear();
            foreach (DataGridViewRow row in dgrd_ReturnOrderLines.Rows)
            {
                VSALSalesOrder vSALSalesOrder = vSALSalesOrderCollection.Where(a => a.ProductID == Convert.ToInt32(row.Cells["ProductName"].Value)).SingleOrDefault();
                if (vSALSalesOrder != null)
                {
                    sALSalesReturnLineCollection.Add(new SALSalesReturnLine()
                    {
                        OriginalSalesLineID = vSALSalesOrder.SalesLineID,
                        Qty         = (decimal)row.Cells["TotalQty"].Value,
                        BatchNumber = vSALSalesOrder.IsAcceptBatch == true ? row.Cells["BatchNumber"].Value.ToString() : null,
                        ExpiryDate  = vSALSalesOrder.IsAcceptBatch == true ? Convert.ToDateTime(row.Cells["ExpiryDate"].Value) : (DateTime?)null,
                        Reason      = row.Cells["Reason"].Value.ToString()
                    });
                }

                else
                {
                    MessageBox.Show("لقد قمت باختيار اصناف غير موجوده بالفاتورة الأصلية");
                    row.Cells["ProductName"].Style.BackColor = Color.Red;
                    return;
                }
            }
        }
 private void FillScreenData()
 {
     _vSALSalesOrder       = vSALSalesOrderCollection.FirstOrDefault();
     tbx_CustomerName.Text = _vSALSalesOrder.CustomerName;
     tbx_SalesMan.Text     = _vSALSalesOrder.UserFullName;
     dtb_InvoiceDate.Value = (DateTime)_vSALSalesOrder.InvoiceDate;
     dtb_SalesDate.Value   = (DateTime)_vSALSalesOrder.SalesDate;
     invoiceDescount       = (double)_vSALSalesOrder.TotalDiscountRatio;
     invoiceTax            = (double)_vSALSalesOrder.TaxValue;
 }
Beispiel #4
0
        private void CollectLinesData()
        {
            SALSalesReturnLine _sALSalesReturnLine;

            sALSalesReturnLineCollection.Clear();
            foreach (DataGridViewRow row in dgrd_ReturnOrderLines.Rows)
            {
                if (row.Index == dgrd_ReturnOrderLines.Rows.Count - 1)
                {
                    break;
                }

                VSALSalesOrder vSALSalesOrder = vSALSalesOrderCollection.Where(a => a.ProductID == Convert.ToInt32(row.Cells["ProductName"].Value)).SingleOrDefault();
                if (vSALSalesOrder != null)
                {
                    _sALSalesReturnLine = new SALSalesReturnLine();
                    _sALSalesReturnLine.OriginalSalesLineID = vSALSalesOrder.SalesLineID;
                    _sALSalesReturnLine.Qty         = Convert.ToDecimal(row.Cells["TotalQty"].Value);
                    _sALSalesReturnLine.BatchNumber = vSALSalesOrder.IsAcceptBatch == true ? row.Cells["BatchNumber"].Value.ToString() : null;
                    _sALSalesReturnLine.ExpiryDate  = vSALSalesOrder.IsAcceptBatch == true?Convert.ToDateTime(row.Cells["ExpiryDate"].Value) : (DateTime?)null;

                    _sALSalesReturnLine.Reason      = row.Cells["Reason"].Value != null ? row.Cells["Reason"].Value.ToString() : null;
                    _sALSalesReturnLine.StockTypeID = Convert.ToInt32(row.Cells["StockType"].Value);
                    sALSalesReturnLineCollection.Add(_sALSalesReturnLine);
                }
                //sALSalesReturnLineCollection.Add(new SALSalesReturnLine()
                //                      {
                //                          OriginalSalesLineID = vSALSalesOrder.SalesLineID,
                //                          Qty = Convert.ToDecimal(row.Cells["TotalQty"].Value),
                //                          BatchNumber = vSALSalesOrder.IsAcceptBatch == true ? row.Cells["BatchNumber"].Value.ToString() : null,
                //                          ExpiryDate = vSALSalesOrder.IsAcceptBatch == true ? Convert.ToDateTime(row.Cells["ExpiryDate"].Value) : (DateTime?)null,
                //                          Reason = row.Cells["Reason"].Value.ToString(),

                //                      });


                else
                {
                    MessageBox.Show("لقد قمت باختيار اصناف غير موجوده بالفاتورة الأصلية");
                    row.Cells["ProductName"].Style.BackColor = Color.Red;
                    return;
                }
            }
        }
        public VSALSalesOrderCollection VSALSalesOrder_SelectOneByInvoiceNumber(string InvoiceNumber)
        {
            VSALSalesOrderCollection vSALSalesOrderCollection = new VSALSalesOrderCollection();

            VSALSalesOrder _vSALSalesOrderWCF = new VSALSalesOrder();

            foreach (POS.DataLayer.VSALSalesOrder _vSALSalesOrder in POS.DataLayer.VSALSalesOrder.SelectByInvoiceNumber("InvoiceNumber", InvoiceNumber, null, DataLayer.TypeOperation.Equal))
            {
                _vSALSalesOrderWCF = new VSALSalesOrder();

                _vSALSalesOrderWCF.CustomerID         = _vSALSalesOrder.CustomerID;
                _vSALSalesOrderWCF.CustomerName       = _vSALSalesOrder.CustomerName;
                _vSALSalesOrderWCF.Qty                = _vSALSalesOrder.Qty;
                _vSALSalesOrderWCF.SalesLineID        = _vSALSalesOrder.SalesLineID;
                _vSALSalesOrderWCF.TotalQty           = _vSALSalesOrder.TotalQty;
                _vSALSalesOrderWCF.UnitPrice          = _vSALSalesOrder.UnitPrice;
                _vSALSalesOrderWCF.BatchNumber        = _vSALSalesOrder.BatchNumber;
                _vSALSalesOrderWCF.ExpiryDate         = _vSALSalesOrder.ExpiryDate;
                _vSALSalesOrderWCF.TaxValue           = _vSALSalesOrder.TaxValue;
                _vSALSalesOrderWCF.SalesHeaderID      = _vSALSalesOrder.SalesHeaderID;
                _vSALSalesOrderWCF.SalesDate          = _vSALSalesOrder.SalesDate;
                _vSALSalesOrderWCF.InvoiceNumber      = _vSALSalesOrder.InvoiceNumber;
                _vSALSalesOrderWCF.InvoiceDate        = _vSALSalesOrder.InvoiceDate;
                _vSALSalesOrderWCF.PaymentTypeID      = _vSALSalesOrder.PaymentTypeID;
                _vSALSalesOrderWCF.TotalDiscountRatio = _vSALSalesOrder.TotalDiscountRatio;
                _vSALSalesOrderWCF.TaxTypeName        = _vSALSalesOrder.TaxTypeName;
                _vSALSalesOrderWCF.IsClosed           = _vSALSalesOrder.IsClosed;
                _vSALSalesOrderWCF.IsVoid             = _vSALSalesOrder.IsVoid;
                _vSALSalesOrderWCF.FinalPrice         = _vSALSalesOrder.FinalPrice;
                _vSALSalesOrderWCF.ChequeNumber       = _vSALSalesOrder.ChequeNumber;
                _vSALSalesOrderWCF.ProductName        = _vSALSalesOrder.ProductName;
                _vSALSalesOrderWCF.ProductCode        = _vSALSalesOrder.ProductCode;
                _vSALSalesOrderWCF.IsAcceptBatch      = _vSALSalesOrder.IsAcceptBatch;
                _vSALSalesOrderWCF.UserFullName       = _vSALSalesOrder.UserFullName;
                _vSALSalesOrderWCF.ProductID          = _vSALSalesOrder.ProductID;

                vSALSalesOrderCollection.Add(_vSALSalesOrderWCF);
            }
            return(vSALSalesOrderCollection);
        }
        public VSALSalesOrderCollection VSALSalesOrder_SelectOneByInvoiceNumber(string InvoiceNumber)
        {
            VSALSalesOrderCollection vSALSalesOrderCollection = new VSALSalesOrderCollection();

            VSALSalesOrder _vSALSalesOrderWCF = new VSALSalesOrder();
            foreach (POS.DataLayer.VSALSalesOrder _vSALSalesOrder in POS.DataLayer.VSALSalesOrder.SelectByInvoiceNumber("InvoiceNumber", InvoiceNumber, null, DataLayer.TypeOperation.Equal))
            {
                _vSALSalesOrderWCF = new VSALSalesOrder();

                _vSALSalesOrderWCF.CustomerID = _vSALSalesOrder.CustomerID;
                _vSALSalesOrderWCF.CustomerName = _vSALSalesOrder.CustomerName;
                _vSALSalesOrderWCF.Qty = _vSALSalesOrder.Qty;
                _vSALSalesOrderWCF.SalesLineID = _vSALSalesOrder.SalesLineID;
                _vSALSalesOrderWCF.TotalQty = _vSALSalesOrder.TotalQty;
                _vSALSalesOrderWCF.UnitPrice = _vSALSalesOrder.UnitPrice;
                _vSALSalesOrderWCF.BatchNumber = _vSALSalesOrder.BatchNumber;
                _vSALSalesOrderWCF.ExpiryDate = _vSALSalesOrder.ExpiryDate;
                _vSALSalesOrderWCF.TaxValue = _vSALSalesOrder.TaxValue;
                _vSALSalesOrderWCF.SalesHeaderID = _vSALSalesOrder.SalesHeaderID;
                _vSALSalesOrderWCF.SalesDate = _vSALSalesOrder.SalesDate;
                _vSALSalesOrderWCF.InvoiceNumber = _vSALSalesOrder.InvoiceNumber;
                _vSALSalesOrderWCF.InvoiceDate = _vSALSalesOrder.InvoiceDate;
                _vSALSalesOrderWCF.PaymentTypeID = _vSALSalesOrder.PaymentTypeID;
                _vSALSalesOrderWCF.TotalDiscountRatio = _vSALSalesOrder.TotalDiscountRatio;
                _vSALSalesOrderWCF.TaxTypeName = _vSALSalesOrder.TaxTypeName;
                _vSALSalesOrderWCF.IsClosed = _vSALSalesOrder.IsClosed;
                _vSALSalesOrderWCF.IsVoid = _vSALSalesOrder.IsVoid;
                _vSALSalesOrderWCF.FinalPrice = _vSALSalesOrder.FinalPrice;
                _vSALSalesOrderWCF.ChequeNumber = _vSALSalesOrder.ChequeNumber;
                _vSALSalesOrderWCF.ProductName = _vSALSalesOrder.ProductName;
                _vSALSalesOrderWCF.ProductCode = _vSALSalesOrder.ProductCode;
                _vSALSalesOrderWCF.IsAcceptBatch = _vSALSalesOrder.IsAcceptBatch;
                _vSALSalesOrderWCF.UserFullName = _vSALSalesOrder.UserFullName;
                _vSALSalesOrderWCF.ProductID = _vSALSalesOrder.ProductID;

                vSALSalesOrderCollection.Add(_vSALSalesOrderWCF);
            }
            return vSALSalesOrderCollection;
        }
Beispiel #7
0
        /// <summary>
        /// This method will return a list of objects representing the specified number of entries from the specified record number in the table
        /// using the value of the field specified
        /// </summary>
        ///
        /// <param name="field" type="string">Field of the class VSALSalesOrder</param>
        /// <param name="fieldValue" type="object">Value for the field specified.</param>
        /// <param name="fieldValue2" type="object">Value for the field specified.</param>
        /// <param name="typeOperation" type="TypeOperation">Operator that is used if fieldValue2=null or fieldValue2="".</param>
        /// <param name="orderByStatement" type="string">The field value to number.</param>
        /// <param name="pageSize" type="int">Number of records returned.</param>
        /// <param name="skipPages" type="int">The number of missing pages.</param>
        ///
        /// <returns>List of object of class VSALSalesOrder in the form of an object of class VSALSalesOrderCollection</returns>
        public VSALSalesOrderCollection SelectByFieldPaged(string field, object fieldValue, object fieldValue2, TypeOperation typeOperation, int pageSize, int skipPages, string orderByStatement)
        {
            VSALSalesOrderCollection vSALSalesOrderCollection = new VSALSalesOrderCollection();

            foreach (POS.DataLayer.VSALSalesOrder _vSALSalesOrder in POS.DataLayer.VSALSalesOrderBase.SelectByFieldPaged(field, fieldValue, fieldValue2, typeOperation, pageSize, skipPages, orderByStatement))
            {
                _vSALSalesOrderWCF = new VSALSalesOrder();

                _vSALSalesOrderWCF.CustomerID         = _vSALSalesOrder.CustomerID;
                _vSALSalesOrderWCF.CustomerName       = _vSALSalesOrder.CustomerName;
                _vSALSalesOrderWCF.Qty                = _vSALSalesOrder.Qty;
                _vSALSalesOrderWCF.SalesLineID        = _vSALSalesOrder.SalesLineID;
                _vSALSalesOrderWCF.TotalQty           = _vSALSalesOrder.TotalQty;
                _vSALSalesOrderWCF.UnitPrice          = _vSALSalesOrder.UnitPrice;
                _vSALSalesOrderWCF.BatchNumber        = _vSALSalesOrder.BatchNumber;
                _vSALSalesOrderWCF.ExpiryDate         = _vSALSalesOrder.ExpiryDate;
                _vSALSalesOrderWCF.TaxValue           = _vSALSalesOrder.TaxValue;
                _vSALSalesOrderWCF.SalesHeaderID      = _vSALSalesOrder.SalesHeaderID;
                _vSALSalesOrderWCF.SalesDate          = _vSALSalesOrder.SalesDate;
                _vSALSalesOrderWCF.InvoiceNumber      = _vSALSalesOrder.InvoiceNumber;
                _vSALSalesOrderWCF.InvoiceDate        = _vSALSalesOrder.InvoiceDate;
                _vSALSalesOrderWCF.PaymentTypeID      = _vSALSalesOrder.PaymentTypeID;
                _vSALSalesOrderWCF.TotalDiscountRatio = _vSALSalesOrder.TotalDiscountRatio;
                _vSALSalesOrderWCF.TaxTypeName        = _vSALSalesOrder.TaxTypeName;
                _vSALSalesOrderWCF.IsClosed           = _vSALSalesOrder.IsClosed;
                _vSALSalesOrderWCF.IsVoid             = _vSALSalesOrder.IsVoid;
                _vSALSalesOrderWCF.FinalPrice         = _vSALSalesOrder.FinalPrice;
                _vSALSalesOrderWCF.ChequeNumber       = _vSALSalesOrder.ChequeNumber;
                _vSALSalesOrderWCF.ProductName        = _vSALSalesOrder.ProductName;
                _vSALSalesOrderWCF.ProductCode        = _vSALSalesOrder.ProductCode;
                _vSALSalesOrderWCF.IsAcceptBatch      = _vSALSalesOrder.IsAcceptBatch;
                _vSALSalesOrderWCF.UserFullName       = _vSALSalesOrder.UserFullName;
                _vSALSalesOrderWCF.ProductID          = _vSALSalesOrder.ProductID;

                vSALSalesOrderCollection.Add(_vSALSalesOrderWCF);
            }
            return(vSALSalesOrderCollection);
        }
 private void FillScreenData()
 {
     _vSALSalesOrder = vSALSalesOrderCollection.FirstOrDefault();
     tbx_InvoiceNumber.Text = _vSALSalesOrder.InvoiceNumber;
     tbx_CustomerName.Text = _vSALSalesOrder.CustomerName;
     tbx_SalesMan.Text = _vSALSalesOrder.UserFullName;
     dtb_InvoiceDate.Value = (DateTime)_vSALSalesOrder.InvoiceDate;
     dtb_SalesDate.Value = (DateTime)_vSALSalesOrder.SalesDate;
     invoiceDescount = (double)_vSALSalesOrder.TotalDiscountRatio;
     invoiceTax = (double)_vSALSalesOrder.TaxValue;
 }
        private void dgrd_ReturnOrderLines_CellValueChanged(object sender, DataGridViewCellEventArgs e)
        {
            var senderGrid = (DataGridView)sender;

            if (e.RowIndex != -1 && e.ColumnIndex == senderGrid.Columns["TotalQty"].Index && !string.IsNullOrEmpty(senderGrid.Rows[e.RowIndex].Cells["TotalQty"].Value.ToString()))
            {
                if (Convert.ToInt32(senderGrid.Rows[e.RowIndex].Cells["ProductName"].Value) == -1)
                {
                    MessageBox.Show("أختر صنف أولا");
                    return;
                }
                VSALSalesOrder vSALSalesOrder = vSALSalesOrderCollection.Where(a => a.ProductID == Convert.ToInt32(senderGrid.Rows[e.RowIndex].Cells["ProductName"].Value)).SingleOrDefault();
                if (vSALSalesOrder == null)
                {
                    MessageBox.Show("هذا الصنف غير موجود بالفاتورة الاصليه");
                    senderGrid.Rows[e.RowIndex].ErrorText = "هذا الصنف غير موجود بالفاتورة الاصليه";
                    senderGrid.Rows[e.RowIndex].Cells["ProductName"].Style.BackColor = Color.Red;
                    return;
                }
                //else
                //{
                //    if ((sALSalesReturnLineCollection.Where(a => a.OriginalSalesLineID == vSALSalesOrder.SalesLineID).ToList().Count) == 0)
                //        sALSalesReturnLineCollection.Add(new SALSalesReturnLine()
                //        {
                //            OriginalSalesLineID = vSALSalesOrder.SalesLineID,
                //            Qty = (decimal)senderGrid.Rows[e.RowIndex].Cells["TotalQty"].Value,
                //            BatchNumber = vSALSalesOrder.IsAcceptBatch == true ? senderGrid.Rows[e.RowIndex].Cells["BatchNumber"].Value.ToString() : null,
                //            ExpiryDate = vSALSalesOrder.IsAcceptBatch == true ? Convert.ToDateTime(senderGrid.Rows[e.RowIndex].Cells["ExpiryDate"].Value) : (DateTime?)null,
                //            Reason = senderGrid.Rows[e.RowIndex].Cells["Reason"].Value.ToString()
                //        });
                //    else
                //    {
                //        sALSalesReturnLineCollection.RemoveAt(sALSalesReturnLineCollection.IndexOf(sALSalesReturnLineCollection.Where(a => a.OriginalSalesLineID == vSALSalesOrder.SalesLineID).SingleOrDefault()));
                //        sALSalesReturnLineCollection.Add(new SALSalesReturnLine()
                //        {
                //            OriginalSalesLineID = vSALSalesOrder.SalesLineID,
                //            Qty = (decimal)senderGrid.Rows[e.RowIndex].Cells["TotalQty"].Value,
                //            BatchNumber = vSALSalesOrder.IsAcceptBatch == true ? senderGrid.Rows[e.RowIndex].Cells["BatchNumber"].Value.ToString() : null,
                //            ExpiryDate = vSALSalesOrder.IsAcceptBatch == true ? Convert.ToDateTime(senderGrid.Rows[e.RowIndex].Cells["ExpiryDate"].Value) : (DateTime?)null,
                //            Reason = senderGrid.Rows[e.RowIndex].Cells["Reason"].Value.ToString()
                //        });
                //    }
                //}

                tbx_Total.Text = (CalculateTotal((double)senderGrid.Rows[e.RowIndex].Cells["UnitPrice"].Value * (double)senderGrid.Rows[e.RowIndex].Cells["TotalQty"].Value)).ToString();
            }

            if (e.RowIndex != -1 && e.ColumnIndex == senderGrid.Columns["ProductName"].Index)
            {
                BDProductPrimaryKey pk = new BDProductPrimaryKey();
                pk.ProductID = Convert.ToInt32(senderGrid.Rows[e.RowIndex].Cells["ProductName"].Value);

                BDProduct _product = bDProductWrapper.SelectOne(pk);
                senderGrid.Rows[e.RowIndex].Cells["IsAcceptBatch"].Value = _product.IsAcceptBatch;

                if (_product.IsAcceptBatch == true)
                {
                    senderGrid.Rows[e.RowIndex].Cells["BatchNumber"].ReadOnly = false;
                    senderGrid.Rows[e.RowIndex].Cells["ExpiryDate"].ReadOnly  = false;
                }
                else
                {
                    senderGrid.Rows[e.RowIndex].Cells["BatchNumber"].ReadOnly = true;
                    senderGrid.Rows[e.RowIndex].Cells["ExpiryDate"].ReadOnly  = true;
                }
            }
        }
Beispiel #10
0
        private void dgrd_ReturnOrderLines_CellValueChanged(object sender, DataGridViewCellEventArgs e)
        {
            try
            {
                var senderGrid = (DataGridView)sender;

                if (e.RowIndex != -1 && (e.ColumnIndex == senderGrid.Columns["TotalQty"].Index /*|| e.ColumnIndex == senderGrid.Columns["UnitPrice"].Index*/) && !string.IsNullOrEmpty(senderGrid.Rows[e.RowIndex].Cells["TotalQty"].Value.ToString()))
                {
                    if (Convert.ToInt32(senderGrid.Rows[e.RowIndex].Cells["ProductName"].Value) == -1)
                    {
                        MessageBox.Show("أختر صنف أولا");
                        return;
                    }
                    if (Convert.ToInt32(senderGrid.Rows[e.RowIndex].Cells["StockType"].Value) == -1)
                    {
                        MessageBox.Show("أختر نوع مرتجع أولا");
                        return;
                    }


                    VSALSalesOrder vSALSalesOrder = vSALSalesOrderCollection.Where(a => a.ProductID == Convert.ToInt32(senderGrid.Rows[e.RowIndex].Cells["ProductName"].Value)).SingleOrDefault();
                    if (Convert.ToInt32(senderGrid.Rows[e.RowIndex].Cells["TotalQty"].Value) > vSALSalesOrder.TotalQty)
                    {
                        MessageBox.Show("الكمية المرتجعه اكبر من الكميه المدخله فى الفاتوره الاصليه");
                        return;
                    }

                    if (senderGrid.Rows[e.RowIndex].Cells["UnitPrice"].Value != null && senderGrid.Rows[e.RowIndex].Cells["TotalQty"].Value != null)
                    {
                        tbx_Total.Text = (CalculateTotal(Convert.ToDouble(senderGrid.Rows[e.RowIndex].Cells["UnitPrice"].Value) * Convert.ToDouble(senderGrid.Rows[e.RowIndex].Cells["TotalQty"].Value))).ToString();
                    }
                    else
                    {
                        return;
                    }
                }

                if (e.RowIndex != -1 && e.ColumnIndex == senderGrid.Columns["ProductName"].Index)
                {
                    VSALSalesOrder vSALSalesOrder = vSALSalesOrderCollection.Where(a => a.ProductID == Convert.ToInt32(senderGrid.Rows[e.RowIndex].Cells["ProductName"].Value)).SingleOrDefault();
                    if (vSALSalesOrder == null)
                    {
                        MessageBox.Show("هذا الصنف غير موجود بالفاتورة الاصليه");
                        senderGrid.Rows[e.RowIndex].ErrorText = "هذا الصنف غير موجود بالفاتورة الاصليه";
                        //senderGrid.Rows[e.RowIndex].Cells["ProductName"].Value = null;
                        senderGrid.Rows[e.RowIndex].Cells["ProductName"].Style.BackColor = Color.Red;
                        return;
                    }

                    BDProductPrimaryKey pk = new BDProductPrimaryKey();
                    pk.ProductID = Convert.ToInt32(senderGrid.Rows[e.RowIndex].Cells["ProductName"].Value);

                    BDProduct _product = bDProductWrapper.SelectOne(pk);
                    senderGrid.Rows[e.RowIndex].Cells["IsAcceptBatch"].Value = _product.IsAcceptBatch;

                    if (_product.IsAcceptBatch == true)
                    {
                        senderGrid.Rows[e.RowIndex].Cells["BatchNumber"].ReadOnly = false;
                        senderGrid.Rows[e.RowIndex].Cells["ExpiryDate"].ReadOnly  = false;
                    }
                    else
                    {
                        senderGrid.Rows[e.RowIndex].Cells["BatchNumber"].ReadOnly = true;
                        senderGrid.Rows[e.RowIndex].Cells["ExpiryDate"].ReadOnly  = true;
                    }
                    senderGrid.Rows[e.RowIndex].Cells["UnitPrice"].Value = vSALSalesOrder.FinalPrice;
                }

                if (e.RowIndex != -1 && e.ColumnIndex == senderGrid.Columns["ExpiryDate"].Index)
                {
                    if (Convert.ToInt32(senderGrid.Rows[e.RowIndex].Cells["ProductName"].Value) == -1)
                    {
                        MessageBox.Show("أختر صنف أولا");
                        return;
                    }
                    DateTime result;
                    if (!DateTime.TryParse(senderGrid.Rows[e.RowIndex].Cells["ExpiryDate"].Value.ToString(), out result))
                    {
                        MessageBox.Show("صيغة تاريخ الصلاحية غير صحيحة لابد ان تكون (يوم -شهر -سنة)");
                        senderGrid.Rows[e.RowIndex].Cells["ExpiryDate"].Style.BackColor = Color.Red;
                        senderGrid.Rows[e.RowIndex].Cells["ExpiryDate"].Value           = "";
                    }
                    else
                    {
                        senderGrid.Rows[e.RowIndex].Cells["ExpiryDate"].Style.BackColor = Color.White;
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("حدث خطأ برجاء تكرار العمليه مره اخرى واذا تكرر الخطا برجاءالاتصال بالشخص المصمم للبرنامج وارسال رسالة الخطا التى ستظهر بعد قليل له");
                MessageBox.Show(ex.Message);
            }
        }