private void Search() { dgvResults.DataSource = null; List<PurchaseOrder> pos = new List<PurchaseOrder>(); // Check if search criteria is valid bool searchCriteriaOk = false; if (rdoById.Checked && txtSearch.Text.Length == 8) { pos = service.GetPurchaseOrders(1, LoginData.EmployeeId, Convert.ToInt32(txtSearch.Text), DateTime.Today, DateTime.Today, null); searchCriteriaOk = true; } else if (rdoById.Checked && txtSearch.Text.Length != 8) { MessageBox.Show("The purchase order id must be 8 digits long"); } else if (rdoByDate.Checked && dtpStart.Value < dtpEnd.Value) { POStatus? status = null; if (rdoPending.Checked) { status = POStatus.Pending; } if (rdoClosed.Checked) { status = POStatus.Closed; } pos = service.GetPurchaseOrders(2, LoginData.EmployeeId, 0, dtpStart.Value, dtpEnd.Value, status); searchCriteriaOk = true; } else if (rdoByDate.Checked && !(dtpStart.Value < dtpEnd.Value)) { MessageBox.Show("Start date must be less than end date"); } if (searchCriteriaOk) { if (pos.Count > 0) { if (LoginData.EmployeeType == EmployeeType.RegularEmployee || LoginData.EmployeeType == EmployeeType.HREmployee) { foreach (var po in pos.ToList()) { if (po.EmployeeId != LoginData.EmployeeId) { pos.Remove(po); } } } dgvResults.DataSource = new BindingList<PurchaseOrder>(pos); dgvResults.Columns["TotalAfterTax"].DefaultCellStyle.Format = "c2"; foreach (DataGridViewColumn column in dgvResults.Columns) { if (column.Name != "PurchaseOrderId" && column.Name != "CreationDate" && column.Name != "TotalAfterTax") { column.Visible = false; } if (column.Name == "PurchaseOrderId") { column.HeaderText = "PO Number"; } if (column.Name == "CreationDate") { column.HeaderText = "Date"; } if (column.Name == "TotalAfterTax") { column.HeaderText = "Total"; } } if (dgvResults.Columns["PoItems"] != null) { dgvResults.Columns.Remove("PoItems"); } dgvResults.Columns.Add("PoItems", "Items"); foreach (DataGridViewRow row in dgvResults.Rows) { string itemToAddToDgv = ""; int poId = Convert.ToInt32(row.Cells["PurchaseOrderId"].Value); foreach (PurchaseOrder purchaseOrder in pos.ToList()) { if (purchaseOrder.PurchaseOrderId == poId) { foreach (Item item in purchaseOrder.Items.ToList()) { itemToAddToDgv += " *" + item.Name; } } } row.Cells["PoItems"].Value = itemToAddToDgv; } dgvResults.Rows[0].Selected = true; } else { MessageBox.Show("No Purchase Orders found"); } } }
var
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)