private void UpdateOrdersListView()
{
if (OrdersListView.SelectedIndices.Count == 1)
{
ListViewItem lvi = OrdersListView.SelectedItems[0];
POSOrder selOrder = (POSOrder)lvi.Tag;
RefreshSelectedOrderData();
OrderDetailsListView.Items.Clear();
// update order items table
foreach (POSLineItem lineItem in selOrder.Items)
{
lvi = new ListViewItem();
lvi.Tag = lineItem;
lvi.SubItems.Add(new ListViewItem.ListViewSubItem());
lvi.SubItems.Add(new ListViewItem.ListViewSubItem());
lvi.SubItems.Add(new ListViewItem.ListViewSubItem());
lvi.SubItems[0].Text = lineItem.Quantity + "";
lvi.SubItems[1].Text = lineItem.Item.Name;
lvi.SubItems[2].Text = (lineItem.Item.Price / 100.0).ToString("C2");
OrderDetailsListView.Items.Add(lvi);
}
// update order payments table
OrderPaymentsView.Items.Clear();
foreach (var Exchange in selOrder.Payments)
{
lvi = new ListViewItem();
lvi.Tag = Exchange;
lvi.SubItems.Add(new ListViewItem.ListViewSubItem());
lvi.SubItems.Add(new ListViewItem.ListViewSubItem());
lvi.SubItems.Add(new ListViewItem.ListViewSubItem());
lvi.SubItems.Add(new ListViewItem.ListViewSubItem());
if (Exchange is POSPayment)
{
lvi.SubItems[0].Text = (Exchange is POSPayment) ? ((POSPayment)Exchange).PaymentStatus.ToString() : "";
lvi.SubItems[1].Text = (Exchange.Amount / 100.0).ToString("C2");
lvi.SubItems[2].Text = (Exchange is POSPayment) ? (((POSPayment)Exchange).TipAmount / 100.0).ToString("C2") : "";
lvi.SubItems[3].Text = (Exchange is POSPayment) ? ((((POSPayment)Exchange).TipAmount + Exchange.Amount) / 100.0).ToString("C2") : (Exchange.Amount / 100.0).ToString("C2");
}
else if (Exchange is POSRefund)
{
lvi.SubItems[0].Text = "REFUND";
lvi.SubItems[3].Text = (Exchange.Amount / 100.0).ToString("C2");
}
OrderPaymentsView.Items.Add(lvi);
}
if (selOrder.Status == POSOrder.OrderStatus.OPEN) //Allow editing of the order if it is in Open status
{
OpenOrder_Button.Enabled = true;
}
ResetOrderPaymentButtons(); // enable/disable payment buttons
autoResizeColumns(OrderPaymentsView);
autoResizeColumns(OrderDetailsListView);
}
}