/// <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");
            }
        }
Пример #5
0
        /// <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;
            }
        }
Пример #7
0
        // 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");
                }
            }
        }
Пример #11
0
 /// <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();
         }
     }
 }
Пример #12
0
        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() + "!";
            }
        }
Пример #14
0
        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}'.");
                }
            }
        }
Пример #16
0
        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;
            }
        }