/// <summary>
        /// Creates a click event for the Credit button
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void OnCreditPaymentClicked(object sender, RoutedEventArgs e)
        {
            var          orderControl = this.FindAncestor <OrderControl>();
            CardTerminal terminal     = new CardTerminal();
            ResultCode   result       = ResultCode.InsufficentFunds;

            if (DataContext is Order o)
            {
                result = terminal.ProcessTransaction(o.Subtotal);
                if (result != ResultCode.Success)
                {
                    MessageBox.Show("Card Reader Error - Try Again", "ERROR", MessageBoxButton.OK);
                }
                else
                {
                    ReceiptPrinter receipt = new ReceiptPrinter();
                    receipt.Print(o.ToString());
                    orderControl.Stupid();
                    orderControl.SwapScreen(new MenuItemSelectionControl());
                }
            }
            else
            {
                MessageBox.Show("Coding Error - Try Again", "ERROR", MessageBoxButton.OK);
            }
        }
        public void ItPrintsABasicReceiptMultipleItems()
        {
            var receipt = new Receipt
            {
                ItemPrices = new List <ItemPrice>
                {
                    new ItemPrice {
                        Name = "Apple", Price = 1
                    }
                },
                ScannedItems = new List <ScannedItem>
                {
                    new ScannedItem()
                    {
                        Name = "Apple"
                    },
                    new ScannedItem()
                    {
                        Name = "Apple"
                    }
                }
            };
            var receiptPrinter = new ReceiptPrinter(receipt);

            Assert.AreEqual("Apple x2\t$2.00", receiptPrinter.PrintItems().Trim());
        }
        public void ItPrintsABasicReceiptMultipleItemsOfDifferentTypes()
        {
            var receipt = new Receipt
            {
                ItemPrices = new List <ItemPrice>
                {
                    new ItemPrice {
                        Name = "Apple", Price = 5
                    },
                    new ItemPrice {
                        Name = "Banana", Price = 3
                    }
                },
                ScannedItems = new List <ScannedItem>
                {
                    new ScannedItem()
                    {
                        Name = "Apple"
                    },
                    new ScannedItem()
                    {
                        Name = "Banana"
                    },
                    new ScannedItem()
                    {
                        Name = "Apple"
                    }
                }
            };
            var receiptPrinter = new ReceiptPrinter(receipt);

            Assert.AreEqual("Apple x2\t$10.00\r\nBanana x1\t$3.00", receiptPrinter.PrintItems().Trim());
        }
        public void ItPrintsAnEmptyReceipt()
        {
            var receipt        = new Receipt();
            var receiptPrinter = new ReceiptPrinter(receipt);

            Assert.AreEqual("No items found\r\nTotal: $0.00", receiptPrinter.Print());
        }
        public void ItPrintsABasicReceipt()
        {
            var receipt = new Receipt
            {
                ItemPrices = new List <ItemPrice>
                {
                    new ItemPrice {
                        Name = "Apple", Price = 0.5M, Promotion = new BuyOneGetOneFree()
                    },
                    new ItemPrice {
                        Name = "Banana", Price = 2.45M
                    },
                },
                ScannedItems = new List <ScannedItem>
                {
                    new ScannedItem()
                    {
                        Name = "Apple"
                    },
                    new ScannedItem()
                    {
                        Name = "Apple"
                    },
                    new ScannedItem()
                    {
                        Name = "Banana"
                    }
                }
            };
            var receiptPrinter = new ReceiptPrinter(receipt);

            Assert.AreEqual("Apple x2\t$0.50\r\nBanana x1\t$2.45\r\nTotal: $2.95", receiptPrinter.Print());
        }
Esempio n. 6
0
        /// <summary>
        /// Prints the receipt after a credit payment, or shows an error in the cardreading
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public void OnCreditPayment(object sender, RoutedEventArgs e)
        {
            CardTerminal ct      = new CardTerminal();
            ResultCode   message = ct.ProcessTransaction(Total);

            if (message != ResultCode.Success)
            {
                MessageBox.Show(message.ToString());
            }
            else
            {
                ReceiptPrinter rp = new ReceiptPrinter();
                StringBuilder  sb = new StringBuilder();
                sb.Append("Order #" + orderSummary.OrderNumber.Text + "\n" + DateTime.Now.ToString() + "\n\n");
                foreach (IOrderItem i in orderSummary.listBox.Items)
                {
                    sb.Append(i.ToString() + String.Format(" {0:C2}", i.Price) + "\n");
                    foreach (string s in i.SpecialInstructions)
                    {
                        sb.Append(s + "\n");
                    }
                }
                sb.Append("\n");
                sb.Append("Subtotal: " + orderSummary.Subtotal.Text + "\n");
                sb.Append(String.Format("Total: {0:C2}\n", Total));
                sb.Append("Credit\n\n");
                rp.Print(sb.ToString());
                MessageBox.Show(sb.ToString());
                orderSummary.IsEnabled     = true;
                TransactionContainer.Child = new OrderControl();
            }
        }
        /// <summary>
        /// When the credit button is clicked
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void OnCreditButtonClicked(object sender, RoutedEventArgs e)
        {
            CardTerminal card   = new CardTerminal();
            Order        o      = (Order)DataContext;
            double       total  = o.Total;
            ResultCode   result = card.ProcessTransaction(total);

            if (result == ResultCode.Success)
            {
                ReceiptPrinter rp      = Register.ReceiptPrinter;
                String         reciept = ReceiptCreator();
                reciept += "\n\nPaid by Credit Card\n\n";
                reciept += DateTime.Now.ToString() + "\n\n";

                rp.Print(reciept);


                var          orderInfo = this.FindAncestor <OrderControl>();
                OrderControl od        = new OrderControl();
                orderInfo.SwapOrderSum(od);
            }
            else
            {
                MessageBox.Show(result.ToString());
            }
        }
        public void ItPrintsDiscountedPrices()
        {
            var receipt = new Receipt
            {
                ItemPrices = new List <ItemPrice>
                {
                    new ItemPrice {
                        Name = "Apple", Price = 5, Promotion = new BuyOneGetOneFree()
                    },
                },
                ScannedItems = new List <ScannedItem>
                {
                    new ScannedItem()
                    {
                        Name = "Apple"
                    },
                    new ScannedItem()
                    {
                        Name = "Apple"
                    }
                }
            };
            var receiptPrinter = new ReceiptPrinter(receipt);

            Assert.AreEqual("Apple x2\t$5.00", receiptPrinter.PrintItems().Trim());
        }
        public void ItPrintsDiscountedPricesAwkwardDecimals()
        {
            var receipt = new Receipt
            {
                ItemPrices = new List <ItemPrice>
                {
                    new ItemPrice {
                        Name = "Apple", Price = 0.3M, Promotion = new BuyOneGetOnePercentOff(10)
                    },
                },
                ScannedItems = new List <ScannedItem>
                {
                    new ScannedItem()
                    {
                        Name = "Apple"
                    },
                    new ScannedItem()
                    {
                        Name = "Apple"
                    }
                }
            };
            var receiptPrinter = new ReceiptPrinter(receipt);

            Assert.AreEqual("Apple x2\t$0.57", receiptPrinter.PrintItems().Trim());
        }
        private void CreateReciept(bool credit, double total, double change)
        {
            //print the receipt
            var receipt = new ReceiptPrinter();

            receipt.Print("OrderNumber:");
            receipt.Print(OrderNumber.ToString());

            receipt.Print(DateTime.Now.ToString());

            foreach (IOrderItem x in items)
            {
                receipt.Print(x.ToString());
                foreach (string a in x.SpecialInstructions)
                {
                    receipt.Print(a);
                }
                receipt.Print(x.Price.ToString());
            }
            receipt.Print("Subtotal:");
            receipt.Print(Subtotal.ToString());
            receipt.Print("Total with Tax:");
            receipt.Print(FinalPrice.ToString());
            if (credit)
            {
                receipt.Print("Credit");
            }
            else
            {
                receipt.Print("Total paid:");
                receipt.Print(total.ToString());
                receipt.Print("Change:");
                receipt.Print(change.ToString());
            }
        }
        public void ItPrintsAnEmptyReceiptItems()
        {
            var receipt        = new Receipt();
            var receiptPrinter = new ReceiptPrinter(receipt);

            Assert.AreEqual("No items found", receiptPrinter.PrintItems().Trim());
        }
Esempio n. 12
0
        /// <summary>
        /// Event handler for when the Credit Payment Button is clicked
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void CreditPaymentButton_Click(object sender, RoutedEventArgs e)
        {
            Cash = false;
            CardTerminal   card    = new CardTerminal();
            ReceiptPrinter printer = new ReceiptPrinter();

            if (DataContext is Order order)
            {
                switch (card.ProcessTransaction(order.Total))
                {
                case ResultCode.Success:
                    credit = true;
                    printer.Print(ReceiptText());
                    CancelOrderButton_Click(new object(), new RoutedEventArgs());
                    break;

                case ResultCode.InsufficentFunds:
                    MessageBox.Show("Error: " + ResultCode.InsufficentFunds.ToString());
                    break;

                case ResultCode.CancelledCard:
                    MessageBox.Show("Error: " + ResultCode.CancelledCard.ToString());
                    break;

                case ResultCode.ReadError:
                    MessageBox.Show("Error: " + ResultCode.ReadError.ToString());
                    break;

                case ResultCode.UnknownErrror:
                    MessageBox.Show("Error: " + ResultCode.UnknownErrror.ToString());
                    break;
                }
            }
        }
        private void PrintReciept(Order data)
        {
            ReceiptPrinter printer = new ReceiptPrinter();

            printer.Print(Convert.ToString("Order #" + data.OrderNumber + "\n"));
            printer.Print(Convert.ToString(DateTime.Now + "\n"));
            foreach (IOrderItem item in data.Items)
            {
                printer.Print(item.ToString() + " - ");
                printer.Print(Convert.ToString(item.Price + "\n"));
                foreach (string i in item.SpecialInstructions)
                {
                    printer.Print(i + "\n");
                }
                printer.Print("\n");
            }
            printer.Print("\n");

            var s = Math.Round(data.Total, 2);

            printer.Print("Subtotal: $" + Convert.ToString(s) + "\n");
            var t = Math.Round(data.Total, 2);

            printer.Print("Total: $" + Convert.ToString(t) + "\n");
            if (UsedCredit)
            {
                printer.Print("Paid with credit" + "\n");
            }
            else
            {
                printer.Print("Paid with cash" + "\n");
            }
        }
Esempio n. 14
0
        protected virtual Result OnPrintReceipt(ArrayList content)
        {
            ReceiptPrinter.Status ret = ReceiptPrinter.OpenPrint();
            if (ret != ReceiptPrinter.Status.SUCC && ret != ReceiptPrinter.Status.PAPER_FEW)
            {
                Log.Warn("´ò¿ª´òÓ¡»ú¹ÊÕÏ!ret=" + ret.ToString());
                return(Result.Fail);
            }

            ReceiptPrinter.SetPrintPosition(0);
            ret = ReceiptPrinter.PrintString(content);
            if (ret == ReceiptPrinter.Status.SUCC || ret == ReceiptPrinter.Status.PAPER_FEW)
            {
                ReceiptPrinter.FeedLine(8);
                ReceiptPrinter.CutPage();
                ReceiptPrinter.ClosePrint();

                if (ret == ReceiptPrinter.Status.SUCC)
                {
                    return(Result.Success);
                }
                else
                {
                    return(Result.PaperFew);
                }
            }
            else if (ret == ReceiptPrinter.Status.OUT_OF_PAPER)
            {
                return(Result.OutOfPaper);
            }
            else
            {
                return(Result.Fail);
            }
        }
Esempio n. 15
0
        /// <summary>
        /// When the complete button is pressed
        /// </summary>
        public void complete()
        {
            Pennies     = Pennies + EnterPennies;
            Dimes       = Dimes + EnterDimes;
            Nickels     = Nickels + EnterNickels;
            Quarters    = Quarters + EnterQuarters;
            HalfDollars = HalfDollars + EnterHalfDollars;
            Dollars     = Dollars + EnterDollars;

            Ones     = Ones + EnterOnes;
            Twos     = Twos + EnterTwos;
            Fives    = Fives + EnterFives;
            Tens     = Tens + EnterTens;
            Twentys  = Twentys + EnterTwentys;
            Fiftys   = Fiftys + EnterFiftys;
            Hundreds = Hundreds + EnterHundreds;



            MessageBox.Show(ReturnChange());


            string reciept = Register.Receipt;

            reciept += "\n\nTotal Paid: " + EnterTotal.ToString("C2")
                       + "\nTotal Change: " + Change.ToString("C02")
                       + "\n\n" + DateTime.Now.ToString() + "\n\n";


            ReceiptPrinter rp = Register.ReceiptPrinter;

            rp.Print(reciept);
        }
        public void ItPrintsAnEmptyReceiptTotal()
        {
            var receipt        = new Receipt();
            var receiptPrinter = new ReceiptPrinter(receipt);

            Assert.AreEqual("Total: $0.00", receiptPrinter.PrintTotal());
        }
        /// <summary>
        /// method to calculate the changed needed when cash is submitted
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public void OnTotalChanged(object sender, EventArgs e)
        {
            double change = 0;

            if (sender is CashPayControl cpc)
            {
                if (DataContext is Order o)
                {
                    change = Math.Round(cpc.CashPaid - Total, 2);
                }

                if (change > 0)
                {
                    MessageBox.Show(CalculateChange(change));
                    MessageBox.Show("Printing receipt");
                    string CreditReceipt  = MakeReceipt() + string.Format("\nCASH GIVEN: {0:C}\nCHANGE:\t{1:C}\n", cpc.CashPaid, -change);
                    var    receiptPrinter = new ReceiptPrinter();
                    receiptPrinter.Print(CreditReceipt);

                    var orderControl = ExtensionMethods.FindAncestor <OrderControl>(this);
                    orderControl.DataContext = new Order();
                    orderControl.SwapScreen(new MenuItemSelectionControl());
                }
            }
        }
        public void ItPrintsADiscountReceiptTotal()
        {
            var receipt = new Receipt
            {
                ItemPrices = new List <ItemPrice>
                {
                    new ItemPrice {
                        Name = "Apple", Price = 0.5M, Promotion = new BuyOneGetOneFree()
                    }
                },
                ScannedItems = new List <ScannedItem>
                {
                    new ScannedItem()
                    {
                        Name = "Apple"
                    },
                    new ScannedItem()
                    {
                        Name = "Apple"
                    }
                }
            };
            var receiptPrinter = new ReceiptPrinter(receipt);

            Assert.AreEqual("Total: $0.50", receiptPrinter.PrintTotal());
        }
Esempio n. 19
0
        protected override void OnCreate()
        {
            TimerConfig config = TimerConfig.Default();

            config.Top       = 685;
            config.Left      = 772;
            config.Color     = "red";
            config.Font_Size = 20;
            SetTimerConfig(config);
            if (ConfigFile.ReadConfigAndCreate("AppData", "AutoRun", "1").Trim() == "1")
            {
                if (SetAutoRunCtrlRegInfo(true))
                {
                    Log.Info("设置开机自启动成功");
                }
            }
            //初装机注册文件
            if (GlobalAppData.GetInstance().AppFirst&& RegsvrStarTrans())
            {
                Log.Info("注册成功");
                GlobalAppData.GetInstance().AppFirst = false;
            }

            ReceiptPrinter.AddedToManager();
        }
Esempio n. 20
0
        private void PrintReceiptForTransaction(double amountpaid, double returnedamount, string paymenttype)
        {
            var recieptPrinter = new ReceiptPrinter();
            var order          = this.DataContext as Order;

            string text = "";


            DateTime date     = DateTime.Now;
            uint     orderNum = order.OrderNumber - 1;


            text = "\nOrder Number: " + orderNum + "\n Date: " + date;

            foreach (var item in order.Items)
            {
                text += "\n" + item.ToString() + " Price: " + item.Price;
            }

            if (paymenttype == "Card")
            {
                text += "\n Card Charged: " + amountpaid;
            }
            else
            {
                text += "\n Cash Given: " + amountpaid;
                text += "\n Cash Returned: " + returnedamount;
            }

            recieptPrinter.Print(text);
        }
        /// <summary>
        /// Prints receipt
        /// </summary>
        /// <param name="pay"> number that represents the method of payment</param>
        private void Receipt(int pay)
        {
            ReceiptPrinter r  = new ReceiptPrinter();
            StringBuilder  sb = new StringBuilder();

            sb.Append("\t                   Cowboy Cafe\n    _________________________________________\n\nOrder #" + OrderNumber.ToString() + "\t\t\t" + DateTime.Now + "\n\n");
            foreach (IOrderItem i in Items)
            {
                sb.Append(i.ToString() + "\t\t " + i.Price.ToString("C2"));
                foreach (string st in i.SpecialInstructions)
                {
                    sb.Append("\n\t" + st);
                }
                sb.Append("\n");
            }
            sb.Append("\nSubtotal: " + Subtotal.ToString("C2") + "\nTax: \t " + Tax.ToString("C2") + "\nTotal:  \t " + Total.ToString("C2") + "\n");
            if (pay == 0)
            {
                sb.Append("\nPaid: \t" + Paid.ToString("C2"));
            }
            else
            {
                sb.Append("\nCredit: \t " + Paid.ToString("C2"));
            }
            sb.Append("\nChange: \t " + Change.ToString("C2"));
            string s = sb.ToString();

            MessageBox.Show(s);
            r.Print(s);
            s = "Contents of the Cash Drawer\n\n____________________________\n            Coins\n____________________________\n\nPennies: " + cd.Pennies + "\nNickels: " + cd.Nickels + "\nDimes: " + cd.Dimes + "\nQuarters: " + cd.Quarters + "\nHalf Dollars: " + cd.HalfDollars + "\nDollars: " + cd.Dollars + "\n\n____________________________\n             Bills\n____________________________\n\nOnes: " + cd.Ones + "\nTwos: " + cd.Twos + "\nFives: " + cd.Fives + "\nTens: " + cd.Tens + "\nTwenties: " + cd.Twenties + "\nFifties: " + cd.Fifties + "\nHundreds: " + cd.Hundreds + "\n\n____________________________\nCash Drawer Total: " + cd.TotalValue.ToString("C2") + "\n____________________________\n";
            MessageBox.Show(s);
            NewOrder();
        }
Esempio n. 22
0
        /// <summary>
        /// Creates a click event for the One button
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void OnAddHundredClicked(object sender, RoutedEventArgs e)
        {
            var orderControl = this.FindAncestor <OrderControl>();

            StillDue    -= 100.0;
            AmountGiven += 100.0;
            orderControl.CurrentDrawer.AddBill(Bills.Hundred, 1);
            if (StillDue == 0)
            {
                MessageBox.Show("Customer gave exact amount, no change due", "Change Due", MessageBoxButton.OK);
                ReceiptPrinter receipt = new ReceiptPrinter();
                var            o       = DataContext as Order;
                receipt.Print(o.ToString(AmountGiven));
                orderControl.Stupid();
                orderControl.SwapScreen(new OrderSummaryControl());
            }
            else if (StillDue < 0)
            {
                StillDue *= -1.0;
                AdjustDrawer(StillDue);
                MessageBox.Show("Customer was dispensed $" + StillDue.ToString("#.00") + " below and drawer has adjusted accordingly",
                                "Change Due", MessageBoxButton.OK);
                ReceiptPrinter receipt = new ReceiptPrinter();
                var            o       = DataContext as Order;
                receipt.Print(o.ToString(AmountGiven));
                orderControl.Stupid();
                orderControl.SwapScreen(new OrderSummaryControl());
            }
        }
 public MainWindow()
 {
     printer    = new ReceiptPrinter();
     orderPage  = new OrderPage(printer);
     managePage = new ManagePage(printer);
     statsPage  = new StatisticsPage();
 }
Esempio n. 24
0
        /// <summary>
        /// Event handler for when cashier gives back cash. When instructions and given change are equal, the receipt is printed.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public void OnChangeReceived(object sender, RoutedEventArgs e)
        {
            if (GivenChange.Text != "")
            {
                GivenChangeTitle.Visibility = Visibility.Visible;
            }


            if (("Give as change:\n\n" + GivenChange.Text) == ChangeInstructions.Text)
            {
                ReceiptPrinter rp         = new ReceiptPrinter();
                StringBuilder  sb         = new StringBuilder();
                double         total      = Convert.ToDouble(TotalTextBox.Text.Remove(0, 1));
                double         amountPaid = Convert.ToDouble(RunningTotalBox.Text.Remove(0, 1));
                sb.Append("Order #" + orderSummary.OrderNumber.Text + "\n" + DateTime.Now.ToString() + "\n\n");
                foreach (IOrderItem i in orderSummary.listBox.Items)
                {
                    sb.Append(i.ToString() + String.Format(" {0:C2}", i.Price) + "\n");
                    foreach (string s in i.SpecialInstructions)
                    {
                        sb.Append(s + "\n");
                    }
                }
                sb.Append("\n");
                sb.Append("Subtotal: " + orderSummary.Subtotal.Text + "\n");
                sb.Append(String.Format("Total: {0:C2}\n", total));
                sb.Append(String.Format("Amount Paid: {0:C2}\n", amountPaid));
                sb.Append(String.Format("Change given: {0:C2}\n", amountPaid - total));
                sb.Append("Cash\n\n");
                rp.Print(sb.ToString());
                MessageBox.Show(sb.ToString());
                RegisterContainer.Child = new OrderControl();
            }
        }
        /// <summary>
        /// Proccess Credit Card Transaction
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public void OnCreditClicked(object sender, RoutedEventArgs e)
        {
            CardTerminal card = new CardTerminal();

            paymentMethod = false;
            ReceiptPrinter printer = new ReceiptPrinter();
            MainWindow     mw      = this.FindAncestor <MainWindow>();

            if (DataContext is Order order)
            {
                var result = card.ProcessTransaction(TotalWithTax);
                if (result == ResultCode.Success)
                {
                    MessageBox.Show("Success");
                    printer.Print(Reciept());
                    mw.DataContext     = new Order();
                    mw.Container.Child = new OrderControl();
                }
                else
                {
                    MessageBox.Show(result.ToString());
                    mw.Container.Child = new TransactionControl(order);
                }
            }
        }
Esempio n. 26
0
        private void PayCredit_Click(object sender, RoutedEventArgs e)
        {
            Order      or   = (Order)this.DataContext;
            var        card = new CardTerminal();
            ResultCode res  = card.ProcessTransaction(total);

            if (res == ResultCode.Success)
            {
                var      pr   = new ReceiptPrinter();
                DateTime date = DateTime.Now;
                string   rec  = ("Order: " + or.OrderNumber + " " + date.ToString() + " " + ReceiptHelper(or) + "Subtotal: " + or.Subtotal.ToString("C") +
                                 " Total: " + ((or.Subtotal * 0.16 + or.Subtotal).ToString("C")) + " Credit");
                pr.Print(rec);
                var wind = this.FindAncestor <MainWindow>();
                wind.Content = new OrderControl();
            }
            else if (res == ResultCode.InsufficentFunds)
            {
                ErrorBox.Text = "Insufficient Funds on Card.";
            }
            else if (res == ResultCode.ReadError)
            {
                ErrorBox.Text = "Card Read Error, Try Again.";
            }
            else if (res == ResultCode.CancelledCard)
            {
                ErrorBox.Text = "Card Has Been Cancelled.";
            }
            else if (res == ResultCode.UnknownErrror)
            {
                ErrorBox.Text = "Unknown Error Occured.";
            }
        }
Esempio n. 27
0
        /// <summary>
        /// Prints a receipt according to the payment method passed
        /// </summary>
        /// <param name="paymentMethod">payment method as a string for display on the receipt</param>
        public void PrintReceipt(string paymentMethod)
        {
            ReceiptPrinter printer = new ReceiptPrinter();

            printer.Print(TransactionToString(paymentMethod));
            MessageBox.Show("Receipt is printing.");
        }
Esempio n. 28
0
 protected virtual Result OnPrintReceiptWithQRCode(ArrayList content, string mimgcontent)
 {
     ReceiptPrinter.SetPrintPosition(0);
     ReceiptPrinter.Status retstr = ReceiptPrinter.PrintString(content);
     //ReceiptPrinter.Status retstr = ReceiptPrinter.Status.SUCC;
     ReceiptPrinter.Status retimg = ReceiptPrinter.PrintImage(mimgcontent);
     ReceiptPrinter.Status ret    = (retimg == ReceiptPrinter.Status.SUCC) ? retstr : retimg;
     if (ret == ReceiptPrinter.Status.SUCC || ret == ReceiptPrinter.Status.PAPER_FEW)
     {
         ReceiptPrinter.FeedLine(8);
         ReceiptPrinter.CutPage();
         if (ret == ReceiptPrinter.Status.SUCC)
         {
             return(Result.Success);
         }
         else
         {
             return(Result.PaperFew);
         }
     }
     else if (ret == ReceiptPrinter.Status.OUT_OF_PAPER)
     {
         return(Result.OutOfPaper);
     }
     else
     {
         return(Result.Fail);
     }
 }
Esempio n. 29
0
 protected virtual Result OnPrintReceipt(ArrayList content)
 {
     ReceiptPrinter.SetPrintPosition(0);
     ReceiptPrinter.Status ret = ReceiptPrinter.PrintString(content);
     if (ret == ReceiptPrinter.Status.SUCC || ret == ReceiptPrinter.Status.PAPER_FEW)
     {
         ReceiptPrinter.FeedLine(8);
         ReceiptPrinter.CutPage();
         if (ret == ReceiptPrinter.Status.SUCC)
         {
             return(Result.Success);
         }
         else
         {
             return(Result.PaperFew);
         }
     }
     else if (ret == ReceiptPrinter.Status.OUT_OF_PAPER)
     {
         return(Result.OutOfPaper);
     }
     else
     {
         return(Result.Fail);
     }
 }
        private void PrintReceipt(bool card)
        {
            ReceiptPrinter printer     = new ReceiptPrinter();
            DateTime       currentTime = DateTime.Now;

            if (DataContext is Order order)
            {
                printer.Print("Order Number:\t" + Order.OrderNumber.ToString());
                printer.Print("\n" + currentTime.ToString() + "\n\n");

                foreach (IOrderItem item in order.Items)
                {
                    printer.Print(item.ToString() + "\t" + item.Price.ToString("C2") + "\n");
                    int temp = 0;
                    while (temp < item.SpecialInstructions.Count)
                    {
                        printer.Print("\t" + item.SpecialInstructions[temp].ToString() + "\n");
                        temp++;
                    }
                }

                printer.Print("\nSubtotal:\t" + order.Subtotal.ToString("C2"));
                printer.Print("\nTotal:\t\t" + order.Total.ToString("C2"));

                if (card)
                {
                    printer.Print("\nPayment Type:\tCredit\n\n\n");
                }
                else
                {
                    printer.Print("\nPayment Type:\tCash");
                }
            }
        }
 public void ItPrintsABasicReceiptItemWithDecimals()
 {
     var receipt = new Receipt
     {
         ItemPrices = new List<ItemPrice>
         {
             new ItemPrice { Name = "Apple", Price = 0.75M}
         },
         ScannedItems = new List<ScannedItem>
         {
             new ScannedItem() { Name="Apple" }
         }
     };
     var receiptPrinter = new ReceiptPrinter(receipt);
     Assert.AreEqual("Apple x1\t$0.75", receiptPrinter.PrintItems().Trim());
 }
 public void ItPrintsABasicReceipt()
 {
     var receipt = new Receipt
     {
         ItemPrices = new List<ItemPrice>
         {
             new ItemPrice { Name = "Apple", Price = 0.5M, Promotion = new BuyOneGetOneFree()},
             new ItemPrice { Name = "Banana", Price = 2.45M},
         },
         ScannedItems = new List<ScannedItem>
         {
             new ScannedItem() { Name="Apple" },
             new ScannedItem() { Name="Apple" },
             new ScannedItem() { Name="Banana" }
         }
     };
     var receiptPrinter = new ReceiptPrinter(receipt);
     Assert.AreEqual("Apple x2\t$0.50\r\nBanana x1\t$2.45\r\nTotal: $2.95", receiptPrinter.Print());
 }
 public void ItPrintsABasicReceiptMultipleItems()
 {
     var receipt = new Receipt
     {
         ItemPrices = new List<ItemPrice>
         {
             new ItemPrice { Name = "Apple", Price = 1}
         },
         ScannedItems = new List<ScannedItem>
         {
             new ScannedItem() { Name="Apple" },
             new ScannedItem() { Name="Apple" }
         }
     };
     var receiptPrinter = new ReceiptPrinter(receipt);
     Assert.AreEqual("Apple x2\t$2.00", receiptPrinter.PrintItems().Trim());
 }
 public void ItPrintsADiscountReceiptTotal()
 {
     var receipt = new Receipt
     {
         ItemPrices = new List<ItemPrice>
         {
             new ItemPrice { Name = "Apple", Price = 0.5M, Promotion = new BuyOneGetOneFree()}
         },
         ScannedItems = new List<ScannedItem>
         {
             new ScannedItem() { Name="Apple" },
             new ScannedItem() { Name="Apple" }
         }
     };
     var receiptPrinter = new ReceiptPrinter(receipt);
     Assert.AreEqual("Total: $0.50", receiptPrinter.PrintTotal());
 }
 public void ItPrintsDiscountedPricesAwkwardDecimals()
 {
     var receipt = new Receipt
     {
         ItemPrices = new List<ItemPrice>
         {
             new ItemPrice { Name = "Apple", Price = 0.3M, Promotion = new BuyOneGetOnePercentOff(10)},
         },
         ScannedItems = new List<ScannedItem>
         {
             new ScannedItem() { Name="Apple" },
             new ScannedItem() { Name="Apple" }
         }
     };
     var receiptPrinter = new ReceiptPrinter(receipt);
     Assert.AreEqual("Apple x2\t$0.57", receiptPrinter.PrintItems().Trim());
 }
 public void ItPrintsDiscountedPrices()
 {
     var receipt = new Receipt
     {
         ItemPrices = new List<ItemPrice>
         {
             new ItemPrice { Name = "Apple", Price = 5, Promotion = new BuyOneGetOneFree()},
         },
         ScannedItems = new List<ScannedItem>
         {
             new ScannedItem() { Name="Apple" },
             new ScannedItem() { Name="Apple" }
         }
     };
     var receiptPrinter = new ReceiptPrinter(receipt);
     Assert.AreEqual("Apple x2\t$5.00", receiptPrinter.PrintItems().Trim());
 }
 public void ItPrintsAnEmptyReceiptTotal()
 {
     var receipt = new Receipt();
     var receiptPrinter = new ReceiptPrinter(receipt);
     Assert.AreEqual("Total: $0.00", receiptPrinter.PrintTotal());
 }
 public void ItPrintsAnEmptyReceiptItems()
 {
     var receipt = new Receipt();
     var receiptPrinter = new ReceiptPrinter(receipt);
     Assert.AreEqual("No items found", receiptPrinter.PrintItems().Trim());
 }
 public void ItPrintsAnEmptyReceipt()
 {
     var receipt = new Receipt();
     var receiptPrinter = new ReceiptPrinter(receipt);
     Assert.AreEqual("No items found\r\nTotal: $0.00", receiptPrinter.Print());
 }
 public void ItPrintsABasicReceiptMultipleItemsOfDifferentTypes()
 {
     var receipt = new Receipt
     {
         ItemPrices = new List<ItemPrice>
         {
             new ItemPrice { Name = "Apple", Price = 5},
             new ItemPrice { Name = "Banana", Price = 3}
         },
         ScannedItems = new List<ScannedItem>
         {
             new ScannedItem() { Name="Apple" },
             new ScannedItem() { Name="Banana" },
             new ScannedItem() { Name="Apple" }
         }
     };
     var receiptPrinter = new ReceiptPrinter(receipt);
     Assert.AreEqual("Apple x2\t$10.00\r\nBanana x1\t$3.00", receiptPrinter.PrintItems().Trim());
 }
 public void ItPrintsABasicReceiptTotal()
 {
     var receipt = new Receipt
     {
         ItemPrices = new List<ItemPrice>
         {
             new ItemPrice { Name = "Apple", Price = 1}
         },
         ScannedItems = new List<ScannedItem>
         {
             new ScannedItem() { Name="Apple" }
         }
     };
     var receiptPrinter = new ReceiptPrinter(receipt);
     Assert.AreEqual("Total: $1.00", receiptPrinter.PrintTotal());
 }