private void BindInvoiceDetail(ReceiptInvoice receiptInvoice) { _dtReceiptInvoiceDetail.Rows.Clear(); var receiptInvoiceDetail = new ReceiptInvoiceDetail(); receiptInvoiceDetail.LoadByReceiptInvoice(receiptInvoice.ID); if (receiptInvoiceDetail.DefaultView.Count == 0) { BindInvoiceDetailByPO(receiptInvoice.POID); } else { receiptInvoiceDetail.LoadMergedPOAndInvoiceDetails(receiptInvoice.ID); foreach (DataRowView rowView in receiptInvoiceDetail.DefaultView) { var newrow = _dtReceiptInvoiceDetail.NewRow(); newrow["FullItemName"] = rowView["FullItemName"]; newrow["Unit"] = rowView["Unit"]; newrow["Manufacturer"] = rowView["Manufacturer"]; newrow["OrderedQuantity"] = rowView["OrderedQuantity"]; newrow["OrderedAmount"] = rowView["Amount"]; newrow["ItemID"] = Convert.ToInt32(rowView["ItemID"]); newrow["UnitOfIssueID"] = Convert.ToInt32(rowView["UnitOfIssueID"]); newrow["ManufacturerID"] = Convert.ToInt32(rowView["ManufacturerID"]); if (rowView["ExpiryDate"] != DBNull.Value) { newrow["ExpiryDate"] = Convert.ToDateTime(rowView["ExpiryDate"]); } newrow["IsSaved"] = false; newrow["GUID"] = Guid.NewGuid(); if (rowView["InvoicedQuantity"] != DBNull.Value) { newrow["ReceiptInvoiceDetailID"] = Convert.ToInt32(rowView["ReceiptInvoiceDetailID"]); newrow["ReceiptInvoiceID"] = Convert.ToInt32(rowView["ReceiptInvoiceID"]); newrow["BatchNumber"] = rowView["BatchNumber"]; newrow["InvoicedQty"] = Convert.ToDecimal(rowView["InvoicedQuantity"]); newrow["UnitPrice"] = Convert.ToDecimal(rowView["UnitPrice"]); newrow["Margin"] = Convert.ToDecimal(rowView["Margin"]); newrow["IsSaved"] = true; } else { newrow["UnitPrice"] = 0; newrow["Margin"] = 0; } _dtReceiptInvoiceDetail.Rows.Add(newrow); } MergeReceiptInvoiceDetailGUID(); _dtReceiptInvoiceDetail.DefaultView.Sort = "FullItemName, Unit, Manufacturer, ExpiryDate DESC, BatchNumber DESC"; gridInvoiceDetail.DataSource = _dtReceiptInvoiceDetail; if (receiptInvoice.CheckIfThisInvoiceHasBeenReceived()) { gridInvoiceDetail.Enabled = btnSave.Enabled = false; tabInvoice.SelectedTabPageIndex = 0; XtraMessageBox.Show("This Invoice has a related Receive!,You can't edit in this case!", "Invalid", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } }