private void addBarcode() { if (string.IsNullOrEmpty(txtBarcode.Text)) { return; } string barcode = InventoryItem.getBarcodeWithoutPrefix(txtBarcode.Text.Trim()); if (!InventoryItem.isBarcodeExist(barcode)) { Tools.hasMessage(barcode.ToString() + " is not found in database"); } else if (InventoryItem.isBarcodeValidForSale(barcode)) { Tools.hasMessage(barcode.ToString() + " has not been sold yet"); } else { DataTable dt; if (grid.DataSource == null) { dt = SaleItem.getItemForReturn(barcode); if (dt.Rows[0][SaleItem.COL_CUSTOMERID] != DBNull.Value) { _customerID = (Guid)dt.Rows[0][SaleItem.COL_CUSTOMERID]; lblCustomerName.Text = dt.Rows[0][SaleItem.COL_CUSTOMERNAME].ToString(); } else { _Vendors_Id = (Guid)dt.Rows[0][SaleItem.COL_DB_Vendors_Id]; lblCustomerName.Text = dt.Rows[0][SaleItem.COL_Vendors_Name].ToString(); } } else { dt = Tools.setDataTablePrimaryKey((DataTable)grid.DataSource, SaleItem.COL_ID); foreach (DataRow dr in SaleItem.getItemForReturn(barcode).Rows) { if (dt.Rows.Contains(dr[SaleItem.COL_ID])) { Tools.hasMessage(dr[SaleItem.COL_BARCODE].ToString() + " is already in the list"); } else if (_customerID != null && (Guid)dr[SaleItem.COL_CUSTOMERID] != _customerID) { Tools.hasMessage(barcode.ToString() + " was sold to a different customer: " + dr[SaleItem.COL_CUSTOMERNAME].ToString()); } else if (_Vendors_Id != null && (Guid)dr[SaleItem.COL_DB_Vendors_Id] != _Vendors_Id) { Tools.hasMessage(barcode.ToString() + " was returned to a different vendor: " + dr[SaleItem.COL_Vendors_Name].ToString()); } else { dt.Rows.Add(dr.ItemArray); } } } grid.DataSource = dt; recalculateNumbers(); } txtBarcode.Text = ""; txtBarcode.Focus(); }