public void Add100ItemsToRegisterAndChange1Price100Times() { // setup Register r = new Register(); for (int i = 0; i < 100; i++) { var s1 = new SoldLineItem(); // create a sale item s1.ItemID = TestInventoryItem; s1.Price = TestPrice * i; s1.Quantity = TestQuantity * i; s1.Description = TestDescription; // trigger r.Add(s1); s1 = null; } for (int i = 5; i < 55; i++) { r.Update(i, 23.4, 3); } for (int i = 45; i < 60; i++) { r.DeleteRow(i); } double subTotal = r.SubTotal(); // validate int registerCount = r.RegisterCount(); Assert.AreEqual(registerCount, 85, "expected register to have only 85 items"); Assert.AreEqual(277765.14999999997, subTotal, "expected different subtotal"); }
/// <summary> /// Prepares the register for the sale /// </summary> /// <param name="SalesRegister"></param> /// <param name="SaleType"></param> /// <param name="SubTotal"></param> /// <param name="Discount"></param> /// <param name="Taxes"></param> /// <param name="TotalSale"></param> /// <returns></returns> public bool PrintSale(Register SalesRegister, int SaleType, double SubTotal, double Discount, double Taxes, double TotalSale) { System.DateTime dDateTime = System.DateTime.Now; int InvoiceID = -1; InvoiceID = RecordSale(SaleType, SubTotal, Discount, Taxes, TotalSale, dDateTime); if (InvoiceID != -1) { bool bResult = false; foreach (SoldLineItem item in SalesRegister.Sale) { bResult = RecordSaleDetails(InvoiceID, item.LineItemID, item.ItemID, item.Description, item.Price, item.Quantity, item.Extended); if (bResult == false) { return bResult; } bResult = RecordOldSale(item.ItemID, item.Price); if (bResult == false) { return bResult; } } PrintTape(InvoiceID, SalesRegister, SaleType, SubTotal, Discount, Taxes, TotalSale, dDateTime); return true; } else { return false; } }
public void AddItemRemoveItem() { // setup Register r = new Register(); var s1 = new SoldLineItem(); // create a sale item s1.ItemID = TestInventoryItem; s1.Price = TestPrice; s1.Quantity = TestQuantity; s1.Description = TestDescription; // trigger r.Add(s1); var registerLine = new SoldLineItem(); registerLine = r.GetOneLine(0); // validate Assert.AreSame(TestDescription, registerLine.Description, "expected same descriptions"); Assert.AreEqual(TestInventoryItem, registerLine.ItemID, "expected same inventory item id"); Assert.AreEqual(TestPrice, registerLine.Price, "expected same price"); Assert.AreEqual(TestQuantity, registerLine.Quantity, "expected same quantity"); Assert.AreEqual((TestPrice * TestQuantity), registerLine.Extended, "expected same extension"); Assert.AreEqual(0, registerLine.LineItemID, "expected first line item"); }
/// <summary> /// Prints a register tape /// </summary> /// <param name="invoiceid"></param> /// <param name="SalesRegister"></param> /// <param name="Saletype"></param> /// <param name="SubTotal"></param> /// <param name="Discount"></param> /// <param name="Taxes"></param> /// <param name="TotalSale"></param> /// <param name="dDateTime"></param> public void PrintTape(int invoiceid, Register SalesRegister, int Saletype, double SubTotal, double Discount, double Taxes, double TotalSale , DateTime dDateTime) { RegisterPrint rp = new RegisterPrint(); string PrinterName = GlobalClass.RegisterPrinter; rp.Print(invoiceid, SalesRegister, Saletype, SubTotal, Discount, Taxes, TotalSale, dDateTime, PrinterName); }
public void AddOneItemToRegister() { // setup Register r = new Register(); var s1 = new SoldLineItem(); // create a sale item s1.ItemID = TestInventoryItem; s1.Price = TestPrice; s1.Quantity = TestQuantity; s1.Description = TestDescription; // trigger r.Add(s1); // validate int registerCount = r.RegisterCount(); double extended = s1.Extended; double subTotal = r.SubTotal(); Assert.AreEqual(registerCount, 1, "expected register to have only 1 item"); Assert.AreEqual(ExpectedSubtotal, subTotal, "expected different subtotal for 1 item"); Assert.AreEqual(ExpectedExtended, extended, "expected different subtotal for 1 item"); }
public void RemoveFirstItem() { // setup Register r = new Register(); for (int i = 0; i < 3; i++) { var s1 = new SoldLineItem(); // create a sale item s1.LineItemID = i; s1.ItemID = TestInventoryItem; s1.Price = TestPrice; s1.Quantity = TestQuantity; s1.Description = TestDescription; // trigger r.Add(s1); } r.DeleteRow(0); Assert.AreEqual(r.RegisterCount(), 2, "expected 2 items"); Assert.AreEqual(r.Sale[0].LineItemID, 0, "expected first item 0"); Assert.AreEqual(r.Sale[1].LineItemID, 1, "expected second item 2"); }
public void AddTwoRemoveOneAddAgainUpdateLast() { // setup Register r = new Register(); for (int i = 0; i < 2; i++) { var s1 = new SoldLineItem(); // create a sale item s1.LineItemID = i; s1.ItemID = TestInventoryItem; s1.Price = i; s1.Quantity = i; s1.Description = TestDescription; // trigger r.Add(s1); } int removeIndex = r.RegisterCount(); r.DeleteRow(removeIndex -1); var s2 = new SoldLineItem(); // create a sale item s2.LineItemID = 3; s2.ItemID = TestInventoryItem; s2.Price = 3; s2.Quantity = 3; s2.Description = TestDescription; r.Add(s2); r.Update(2, 5, 5); Assert.AreEqual(r.RegisterCount(), 2, "expected 2 items"); Assert.AreEqual(r.Sale[0].LineItemID, 0, "expected 0 for first"); Assert.AreEqual(r.Sale[1].LineItemID, 3, "expected 3 for last"); }
public void AddTenItemsToRegister() { // setup Register r = new Register(); for (int i = 0; i < 10; i++) { var s1 = new SoldLineItem(); // create a sale item s1.Description = TestDescription; s1.ItemID = TestInventoryItem; s1.Price = TestPrice; s1.Quantity = TestQuantity; // trigger r.Add(s1); s1 = null; } // validate int registerCount = r.RegisterCount(); double subTotal = r.SubTotal(); Assert.AreEqual(registerCount, 10, "expected register to have only 10 items"); Assert.AreEqual(subTotal, 10.1, "expected different subtotal for 10 item"); }
public void AddOneThousandDifferentItemsToRegister() { // setup Register r = new Register(); for (int i = 0; i < 1000; i++) { var s1 = new SoldLineItem(); // create a sale item s1.ItemID = TestInventoryItem; s1.Price = TestPrice * i; s1.Quantity = TestQuantity * i; // trigger r.Add(s1); s1 = null; } // validate int registerCount = r.RegisterCount(); double subTotal = r.SubTotal(); Assert.AreEqual(registerCount, 1000, "expected register to have only 10 items"); Assert.AreEqual(subTotal, 336161835.0, "expected different subtotal for 10 item"); }
public void Print(int invoiceid, Register SalesRegister, int Saletype, double SubTotal, double Discount, double Taxes, double TotalSale, DateTime dDateTime, string printerName) { const int PadSize = 11; const string RH = "S A L E S R E G I S T E R"; const string sSubTotal = "SubTotal"; const string sDiscount = "Discount"; const string sTaxes = "Taxes"; const string sTotalSale = "Total Sale"; string CompanyName = Settings.Default.CompanyName; string AddressLine1 = Settings.Default.AddressLine1; string AddressLine2 = Settings.Default.AddressLine2; string AddressLine3 = Settings.Default.AddressLine3; string FooterLine1 = Settings.Default.FooterLine1; string FooterLine2 = Settings.Default.FooterLine2; string RegisterHeader = RH; StringBuilder sb; if (printerName == null) { throw new ArgumentNullException("printerName"); } sb = new StringBuilder(); // Top of the page sb.AppendLine(CompanyName); sb.AppendLine(AddressLine1); sb.AppendLine(AddressLine2); sb.AppendLine(string.Empty); sb.AppendLine(RegisterHeader); sb.AppendLine(dDateTime.ToString().PadLeft(9) + " Receipt #: " + invoiceid.ToString()); sb.AppendLine(string.Empty); sb.AppendLine(string.Empty); foreach (SoldLineItem item in SalesRegister.Sale) { if (item.Description.Length > 40) { sb.AppendLine(item.Description.Substring(0, 40)); } else { sb.AppendLine(item.Description); } sb.AppendLine(item.ItemID.ToString().PadRight(15) + item.Price.ToString("c").PadLeft(PadSize) + item.Quantity.ToString().PadLeft(5) + item.Extended.ToString("c").PadLeft(PadSize)); } sb.AppendLine("------------------------------------------"); sb.AppendLine(sSubTotal.PadRight(22) + SubTotal.ToString("c").PadLeft(20)); sb.AppendLine(sDiscount.PadRight(22) + Discount.ToString("c").PadLeft(20)); sb.AppendLine(sTaxes.PadRight(22) + Taxes.ToString("c").PadLeft(20)); sb.AppendLine(" --------------------"); sb.AppendLine(sTotalSale.PadRight(22) + TotalSale.ToString("c").PadLeft(20)); sb.AppendLine(" ===================="); //End of the Page sb.AppendLine(FooterLine1); sb.AppendLine(FooterLine2); for (int i = 0; i < 5; i++) { sb.AppendLine(string.Empty); } string GS = Convert.ToString((char)29); string ESC = Convert.ToString((char)27); Debug.Write(sb.ToString()); sb.AppendLine(ESC + "@"); sb.AppendLine(GS + "V" + (char)1); RawPrinterHelper.SendStringToPrinter(printerName, sb.ToString()); }