/// <summary> /// Handles when a user clicks on the card button option. /// </summary> /// <param name="sender">The sender of the event.</param> /// <param name="e">The RoutedEventArgs of the event.</param> private void CreditDebitButton_Click(object sender, RoutedEventArgs e) { CardTransactionResult res = CardReader.RunCard((DataContext as Order).Total); switch (res) { case CardTransactionResult.Approved: ((Order)this.DataContext).PrintReciept(PaymentType.Card, 0.00); NewOrderEvent?.Invoke(this, new NewOrderEventArgs(new Order())); break; case CardTransactionResult.Declined: MessageBox.Show("Your card was declined, contact your bank."); break; case CardTransactionResult.ReadError: MessageBox.Show("Error reading your card, try again."); break; case CardTransactionResult.InsufficientFunds: MessageBox.Show("Your card was rejected due to a lack of funds."); break; case CardTransactionResult.IncorrectPin: MessageBox.Show("Your pin was incorrect, try re-enterring"); break; } }
/// <summary> /// interprets the results of the CardReader.RunCard method /// </summary> /// <param name="result">result of RunCard() method</param> public void CardReaderResults(CardTransactionResult result) { switch (result) { case CardTransactionResult.Approved: MessageBox.Show("Approved"); currentPayment.PrintReciept("Credit/Debit", 0.00); break; case CardTransactionResult.Declined: MessageBox.Show("Declined"); break; case CardTransactionResult.ReadError: MessageBox.Show("ReadError"); break; case CardTransactionResult.InsufficientFunds: MessageBox.Show("Insufficient Funds"); //currentPayment.PrintReciept("Credit/Debit", 0.00); break; case CardTransactionResult.IncorrectPin: MessageBox.Show("Incorrect Pin"); break; default: MessageBox.Show("something went wrong??"); break; } }
private void CreditCardPayment(object sender, RoutedEventArgs e) { CardTransactionResult cardStatusResult = CardReader.RunCard(GetOrder.Total); switch (cardStatusResult) { case CardTransactionResult.Approved: cardStatus.Text = "Approved"; ReceiptPrinterFunc(e); return; case CardTransactionResult.Declined: cardStatus.Text = "Your Card has been Declined"; return; case CardTransactionResult.IncorrectPin: cardStatus.Text = "The PIN entered is incorrect"; return; case CardTransactionResult.InsufficientFunds: cardStatus.Text = "Insufficient Funds"; return; case CardTransactionResult.ReadError: cardStatus.Text = "Error Reading Card"; return; } }
/// <summary> /// /// </summary> public string CardOperations() { CardTransactionResult cardTransactionResult = CardReader.RunCard(Total); switch (cardTransactionResult) { case CardTransactionResult.Approved: DateTime orderDate = DateTime.Now; UpdateCashDrawer.UpdateCashDrawerValues(this, paymentType, orderDate); return("Approved"); case CardTransactionResult.Declined: return("Declnined"); case CardTransactionResult.IncorrectPin: return("Incorrect Pin"); case CardTransactionResult.InsufficientFunds: return("Insufficient Funds"); case CardTransactionResult.ReadError: return("Read Error"); default: throw new NotImplementedException("Card Operation Not Recognized"); } }
/// <summary> /// Handles Credit/Debit click event /// </summary> /// <param name="sender">object</param> /// <param name="e">Event args</param> public void CreditDebitClick(object sender, EventArgs e) { CardTransactionResult k = CardReader.RunCard(Convert.ToDouble(price.Total)); switch (k) { case CardTransactionResult.Approved: PrintOrder("Card", price.Total, price.Total); Win.NewOrder(); break; case CardTransactionResult.Declined: MessageBox.Show("Card was declined. Please try new card"); break; case CardTransactionResult.ReadError: MessageBox.Show("Error reading card. Please try again"); break; case CardTransactionResult.InsufficientFunds: MessageBox.Show("Card Has insufficient Funds"); break; case CardTransactionResult.IncorrectPin: MessageBox.Show("Transaction Failed. Incorrect pin"); break; } }
private void SelectCreditDebit(object sender, RoutedEventArgs e) { CardTransactionResult result = CardReader.RunCard(order.Total); switch (result) { case CardTransactionResult.Approved: CompleteOrder(); main.NewOrder(); main.OpenMainMenu(); break; case CardTransactionResult.Declined: break; case CardTransactionResult.ReadError: break; case CardTransactionResult.InsufficientFunds: break; case CardTransactionResult.IncorrectPin: break; } }
// Click event handler for the Credit/Debit button void CreditDebit(object sender, RoutedEventArgs e) { double tempTotal = double.Parse(total.Text.ToString(), System.Globalization.NumberStyles.Currency); CardTransactionResult code = CardReader.RunCard(tempTotal); bool card = true; if (code == CardTransactionResult.Approved) { PrintReceipt(card); DependencyObject parent = this; do { parent = LogicalTreeHelper.GetParent(parent); } while (!(parent is MainWindow || parent is null)); if (parent is MainWindow menu) { MenuSelection screen = new MenuSelection(); OrderComponent orderComp = new OrderComponent(); menu.displayBorder.Child = screen; menu.orderBorder.Child = orderComp; menu.full.Children.Remove(this); menu.DataContext = new Order(); } Order.OrderNumber++; } else { MessageBox.Show(code.ToString()); } }
private void CreditDebbitButton_Click(object sender, RoutedEventArgs e) { Order ord = (Order)parentOrder.DataContext; CardTransactionResult resultTransaction = CardReader.RunCard(ord.Total); switch (resultTransaction) { case CardTransactionResult.Approved: MessageBox.Show("Approved"); PrintDebitCreditReceipt(); ord.Clear(); parentOrder.DataContext = new Order(); parentOrder.ColumnToHide.Width = parentOrder.ReferenceColumn.Width; parentOrder.menuBorder.Child = new MenuComponent(parentOrder); break; case CardTransactionResult.Declined: MessageBox.Show("Card Declined"); break; case CardTransactionResult.IncorrectPin: MessageBox.Show("Incorrect Pin"); break; case CardTransactionResult.InsufficientFunds: MessageBox.Show("Insufficient Funds"); break; } }
public void uxButton_Click(object sender, RoutedEventArgs e) { Button button = (Button)sender; if (button.Name == "Cash") { this.ancestor.openSpace2.Child = new OrderSideBar.Order(this.ancestor); this.ancestor.screens.Remove(Screen.CashPayment); this.ancestor.screens.Add(Screen.CashPayment, new CashPayment(this.ancestor)); this.ancestor.SwitchScreen(Screen.CashPayment); } if (button.Name == "CreditDebit") { OrderList o = (OrderList)this.ancestor.openSpace.DataContext; CardTransactionResult result = CardReader.RunCard(o.Total); MessageBox.Show(result.ToString()); if (result == CardTransactionResult.Approved) { MessageBox.Show("Receipt Printed"); PrintReceipt pn = new PrintReceipt(o); pn.PrintReceiptCard(); this.ancestor.openSpace2.Child = new OrderSideBar.Order(this.ancestor); this.ancestor.openSpace.DataContext = new OrderList(); this.ancestor.openSpace2.DataContext = this.ancestor.openSpace.DataContext; this.ancestor.SwitchScreen(Screen.Empty); } } }
//Click handle for when the Card paymention option is clicked. void DebitCreditClickHandle(object sender, EventArgs e) { if (mainWindow.DataContext is Order order) { CardTransactionResult transactionResult = CardReader.RunCard(order.Total); if (transactionResult == CardTransactionResult.Approved) { RecieptPrinter.PrintLine(DateTime.Now.ToString("MM/dd/yyyy HH:mm")); RecieptPrinter.PrintLine(" "); RecieptPrinter.PrintLine("Order #" + order.Number.ToString()); RecieptPrinter.PrintLine(" "); foreach (IOrderItem item in order) { RecieptPrinter.PrintLine(item.ToString()); foreach (String instruction in item.SpecialInstructions) { RecieptPrinter.PrintLine(instruction); } } RecieptPrinter.PrintLine(" "); RecieptPrinter.PrintLine("Subtotal: $" + order.Subtotal.ToString()); RecieptPrinter.PrintLine("Tax: $" + order.Tax.ToString()); RecieptPrinter.PrintLine("Total: $" + order.Total.ToString()); RecieptPrinter.PrintLine(" "); RecieptPrinter.PrintLine("Payment Method: Card"); RecieptPrinter.CutTape(); var result = MessageBox.Show("Card Approved!", "Card Approved"); if (result == MessageBoxResult.OK) { this.mainWindow.SwitchScreen("menuSelect"); } mainWindow.DataContext = new Order(); } if (transactionResult == CardTransactionResult.Declined) { MessageBox.Show("Card Declined. Please try again.", "Card Error"); } if (transactionResult == CardTransactionResult.ReadError) { MessageBox.Show("Unable to read card. Please try again.", "Card Error"); } if (transactionResult == CardTransactionResult.InsufficientFunds) { MessageBox.Show("Insufficient funds. Please try another card.", "Card Error"); } if (transactionResult == CardTransactionResult.IncorrectPin) { MessageBox.Show("Incorrect pin. Please try again.", "Card Error"); } } }
/// <summary> /// Click handler for Credit/Debit button /// </summary> /// <param name="sender">Credit/Debit button</param> /// <param name="e"></param> void CreditDebit_Click(object sender, RoutedEventArgs e) { if (DataContext is Order order) { CardTransactionResult result = CardReader.RunCard(order.Total); cardApprovalText.Text = result.ToString(); if (result == CardTransactionResult.Approved) { Receipt r = new Receipt(order, "Card", 0); r.PrintReceipt(); Ancestor.Reset(); } } }
private void Credit_Debit_Click(object sender, RoutedEventArgs e) { Order orderItems = (Order)o.DataContext; CardTransactionResult result = CardReader.RunCard(orderItems.Total); if (result == CardTransactionResult.Approved) { Print_Reciept(); o.DataContext = new Order(); o.itemsListView.Items.Clear(); main.containerBorder.Child = display; main.order.IsEnabled = true; main.cancelButton.IsEnabled = true; main.completeButton.IsEnabled = true; } }
private void CreditSelection(object sender, RoutedEventArgs e) { var o = this.FindAncestor <OrderControl>(); uint Ordernum = ((OrderControl)o).orderNum; CardTransactionResult result = CardReader.RunCard((o.DataContext as Order).Total); if (result == CardTransactionResult.Approved) { RecieptPrinting(); RecieptPrinter.CutTape(); o.DataContext = new Order(Ordernum); o.LeftContainer.Child = new MenuSelection(); } else { ErrorReport.Text = "Transaction Failed With: " + result.ToString() + "!"; } }
void OnCardTransactionClick(object sender, RoutedEventArgs e) { order.PaymentType = "Debit/Credit Card"; CardTransactionResult result = CardReader.RunCard(order.Total); cardButton.Visibility = Visibility.Hidden; cashButton.Visibility = Visibility.Hidden; paymentBorder.Background = Brushes.Gray; TextBlock b = new TextBlock(); b.Foreground = Brushes.Beige; b.FontSize = 40; b.VerticalAlignment = VerticalAlignment.Center; b.HorizontalAlignment = HorizontalAlignment.Center; switch (result) { case CardTransactionResult.Approved: b.Text = "Approved"; SetFinalizeSaleButton(); break; case CardTransactionResult.Declined: b.Text = "Declined"; break; case CardTransactionResult.ReadError: b.Text = "Read Error"; break; case CardTransactionResult.InsufficientFunds: b.Text = "Insufficient Funds"; break; case CardTransactionResult.IncorrectPin: b.Text = "Incorrect Pin"; break; } paymentBorder.Child = b; }
/// <summary> /// Attempts to charge the card. If successful, the reciept is printed and the screen /// changes back to the menu selection with a new order. Otherwise, a messagebox is /// displayed alerting the user the error with the card. /// </summary> /// <param name="sender">The button that was clicked.</param> /// <param name="e">The event arguments.</param> private void ChargeCard(object sender, RoutedEventArgs e) { if (DataContext is Order order) { CardTransactionResult result = CardReader.RunCard(order.Total); switch (result) { case CardTransactionResult.Approved: order.PrintReciept(true, 0.00); OrderComponent.DataContext = new Order(); OrderComponent.ChangeScreen(new MenuSelectionScreen()); OrderComponent.CollapseButtons(false); break; case CardTransactionResult.Declined: MessageBox.Show("Error: Card Declined!"); break; case CardTransactionResult.IncorrectPin: MessageBox.Show("Error: Incorrect Pin!"); break; case CardTransactionResult.InsufficientFunds: MessageBox.Show("Error: Insufficient Funds!"); break; case CardTransactionResult.ReadError: MessageBox.Show("Error: Read Error!"); break; default: throw new ArgumentException($"Error reading card. Expected a CardTransactionResult message. Got '{result}'."); } } }
private void CreditDebit_Click(object sender, RoutedEventArgs e) { CardTransactionResult result = CardReader.RunCard(total); switch (result) { case CardTransactionResult.Approved: //print RECEIPT parent.PrintReceipt(1, 0); //reset order parent.DataContext = new Order(); parent.menuBorder.Child = new MenuSelection(parent); parent.uxDeleteButton.IsEnabled = true; break; case CardTransactionResult.Declined: MessageBox.Show("Card Declined"); break; case CardTransactionResult.InsufficientFunds: MessageBox.Show("Insufficient Funds"); break; case CardTransactionResult.IncorrectPin: MessageBox.Show("Incorrect Pin"); break; case CardTransactionResult.ReadError: MessageBox.Show("Read Error"); break; } }