/// <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()); }
/// <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()); }
/// <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"); } }
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); } }
/// <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()); }
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(); }
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(); }
/// <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(); }
/// <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); } } }
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."; } }
/// <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."); }
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); } }
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 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()); }