public static Invoice StandardInvoice() { var invoice = new Invoice( DateTime.Now, DateTime.Now, new MonetaryValue(100000, "CO"), CustomerMother.Random()); var product = ProductMother.MartilloProductWithStock(); invoice.AddItem( name: product.Name, productId: product.Id, taxDescription: product.TaxDescription, unitPrice: product.Price, unitTax: product.Tax, quantity: new QuantityValue(2, "UM")); product = ProductMother.TaladroProductWithStock(); invoice.AddItem( name: product.Name, productId: product.Id, taxDescription: product.TaxDescription, unitPrice: product.Price, unitTax: product.Tax, quantity: new QuantityValue(1, "UM")); return(invoice); }
public double CalculateTotal() { var invoice = new Invoice(new Customer("Jim's Autobody", "AB", "Canada")); invoice.AddItem(new Item("Wheel", 4, 395.66)); invoice.AddItem(new Item("Brake", 2, 144.38)); invoice.AddItem(new Item("Light", 2, 6.99)); var invoiceTotaler = new TaxedInvoiceTotaler(); return invoiceTotaler.CalculateFor(invoice); }
private Invoice CreateInvoice(string aInvName, string aRecName, string aRecEmail, int aRows, double aRate) { DateTime now = DateTime.Now; string date = String.Format("{0:MMMMM yyyy}", now); //Create Receiver from Company company = new Company(); company.Name = aRecName; company.Email = aRecEmail; company.Address1 = "59 Paisley Street"; company.Address2 = "Footscray, Victoria"; company.Postcode = "3011"; company.Country = "Australia"; //Create Transaction Invoice invoice = new Invoice(now, 14); invoice.Company = company; invoice.Sender = new Sender(); invoice.InvoiceNo = aInvName; //Create Item Item item = new Item("Emprevo monthly subscription" + " - " + date, aRows.ToString(), (aRows * aRate).ToString()); invoice.AddItem(item); return(invoice); }
protected override void ProcessDemo() { var invoice = new Invoice(new List <InvoicePosition> { new InvoicePosition("PC", 2999), new InvoicePosition("Keyboard", 299) }); invoice.Process(); invoice.AddItem(new InvoicePosition("Mouse", 59)); invoice.Process(); invoice.Process(); invoice.AddItem(new InvoicePosition("Monitor", 799)); invoice.Process(); invoice.Process(); }
private void TestSingleRental(IBillable rental) { var invoice = new Invoice(); invoice.AddItem(rental); Assert.AreEqual(1, invoice.ItemCount); Assert.AreEqual(rental.UnitPrice * rental.Units, invoice.TotalPrice); }
public void ShippingShouldBeAddedIfAddressIsNotInEurope() { var address = new Address(new Country(false)); var customer = new Customer(address); var invoice = new Invoice(customer); invoice.AddItem(new InvoiceItem("Product X", 1, 100)); Assert.AreEqual(100 + Invoice.SHIPPING_COST_OUTSIDE_EU, invoice.TotalPrice); }
/// <summary> /// Caso de uso "Crear factura" /// </summary> /// <param name="date"></param> /// <param name="expirationDate"></param> /// <param name="totalReceived"></param> /// <param name="productInputs"></param> /// <param name="customer"></param> /// <returns></returns> /// <exception cref="CustomerNotFound"></exception> /// <exception cref="ProductNotFound"></exception> public InvoiceViewModel Create( DateTime date, DateTime expirationDate, MonetaryValue totalReceived, int customerId, IEnumerable <ProductInputModel> productInputs) { var customer = customerRepository.GetById(customerId); if (customer is null) { throw new CustomerNotFound(); } // se crea la factura var invoice = new Invoice( date: date, expirationDate: expirationDate, totalReceived: totalReceived, customer: customer); // se agregan los productos. var productsUpdates = new List <Product>(); foreach (var productInput in productInputs) { var product = productRepository.GetById(productInput.ProductId); if (product == null) { throw new ProductNotFound(); } invoice.AddItem( name: product.Name, productId: product.Id, taxDescription: product.TaxDescription, unitPrice: product.Price, unitTax: product.Tax, quantity: productInput.Quantity); product.AdjustStock( new QuantityValue(productInput.Quantity.Value * (-1), productInput.Quantity.UnitMeasurement), "Sale"); productsUpdates.Add(product); } repository.Insert(invoice); productRepository.Update(productsUpdates); return(mapper.Map <InvoiceViewModel>(invoice)); }
public void CreateInvoice(InvoiceBm invoiceBm, string[] items) { Invoice entityInvoice = Mapper.Map <InvoiceBm, Invoice>(invoiceBm); foreach (var item in items) { Item entityItem = this.Context.Items.Find(int.Parse(item)); entityInvoice.AddItem(entityItem); } this.Context.Invoices.Add(entityInvoice); this.Context.SaveChanges(); }
public void ShouldApplyFamilyRentalDiscountWhen3To5Rentals() { var rental = new RentalByHour(1); var invoice = new Invoice(); // 0-2 rentals. Should not apply discount. Assert.IsFalse(invoice.AppliesForFamilyRentalDiscount); invoice.AddItem(rental); Assert.IsFalse(invoice.AppliesForFamilyRentalDiscount); invoice.AddItem(rental); Assert.IsFalse(invoice.AppliesForFamilyRentalDiscount); // 3-5 rentals. Should apply discount. invoice.AddItem(rental); Assert.IsTrue(invoice.AppliesForFamilyRentalDiscount); invoice.AddItem(rental); Assert.IsTrue(invoice.AppliesForFamilyRentalDiscount); invoice.AddItem(rental); Assert.IsTrue(invoice.AppliesForFamilyRentalDiscount); // 6+ rentals. Should not apply discount. for (int i = 0; i < 5; i++) { invoice.AddItem(rental); Assert.IsFalse(invoice.AppliesForFamilyRentalDiscount); } }
public static void Do() { Console.WriteLine(" == Adapter Pattern == "); India india = new India(new WorkAbroad()); Console.WriteLine(india.StartWork()); Console.WriteLine(" == Bridge Pattern == "); Invoice invoice = new Invoice(); invoice.SetCustomer("Acem"); invoice.SetId("AES77"); InvoiceItem item1 = new InvoiceItem(); item1.SetValues("Item 1", 1, 45, 70); invoice.AddItem(item1); InvoiceItem item2 = new InvoiceItem(); item2.SetValues("Item 2", 10, 35, 700); invoice.AddItem(item2); InvoiceItem item3 = new InvoiceItem(); item3.SetValues("Item 3", 5, 57, 90); invoice.AddItem(item3); Console.WriteLine("Invoice Total=" + invoice.GetTotal()); Console.WriteLine(" == Decorator Pattern == "); ClassTeacher t1 = new ClassTeacher(); t1.SetName("Teacher 1"); Console.WriteLine(t1.GetName() + " Designation = " + t1.GetDesignation()); ClassTeacher t2 = new ClassTeacher(); t2.SetName("Teacher 2"); Console.WriteLine(t2.GetName() + " Designation = " + t2.GetDesignation()); }
public void Do_Not_Add_Date_To_Items_If_Date_Is_On_Or_After_CreateDate_Of_Current_Month() { //Arrange var invoice = new Invoice("", new Customer(), new DateTime(2021, 2, 12)); invoice.AddItem(new MaintenanceInvoiceItem(new DateTime(2021, 2, 23), 1)); var expected = "Item falls outside the range of valid dates for this invoice"; //Act var actual = invoice.ValidationMessage; //Assert Assert.AreEqual(expected, actual); }
public void CanCalculateInvoiceTotalWithoutDiscount() { var invoice = new Invoice(); var rentals = new List <IBillable> { new RentalByDay(1), new RentalByHour(1), }; rentals.ForEach(r => invoice.AddItem(r)); Assert.AreEqual(2, invoice.ItemCount); Assert.IsFalse(invoice.AppliesForFamilyRentalDiscount); var expectedTotal = rentals.Sum(r => r.Units * r.UnitPrice); Assert.AreEqual(expectedTotal, invoice.SubTotalPrice); Assert.AreEqual(expectedTotal, invoice.TotalPrice); }
private void btnAddItem_Click(object sender, EventArgs e) { AddItem frmAddItem = new AddItem(); DialogResult dr = frmAddItem.ShowDialog(this); if (dr == DialogResult.Cancel) { frmAddItem.Close(); } else if (dr == DialogResult.OK) { IProduct newProduct = ProductFactory.GetProduct(frmAddItem.GetCategory(), frmAddItem.GetName(), frmAddItem.GetPrice()); billObj.AddItem(newProduct); UpdateBill(); frmAddItem.Close(); } }
private void Reformat() { //Creating invoice model DateTime now = DateTime.Now; string date = String.Format("{0:MMMMM yyyy}", now); //Create Receiver from Company company = new Company(); company.Name = "Tester"; company.Email = "*****@*****.**"; company.Address1 = "59 Paisley Street"; company.Address2 = "Footscray, Victoria"; company.Postcode = "3011"; company.Country = "Australia"; //Create Transaction Invoice invoice = new Invoice(now, 14); invoice.Company = company; invoice.Sender = new Sender(); invoice.InvoiceNo = "Tester"; //Create Item Item item = new Item("Emprevo monthly subscription" + " - " + date, "55", "4"); invoice.AddItem(item); //Saving invoice data to company company.InvoiceNo = invoice.InvoiceNo; company.RecentDate = invoice.InvoiceDate; company.RecentActiveWorkers = "55"; company.RecentTotal = invoice.Total; company.RecentRate = "4"; InvoiceBL bl = new InvoiceBL(); //Upload the content of file to cloud GCPAdapter adapter = new GCPAdapter(); adapter.UploadObject("apiemprevo.appspot.com", "Test" + ".pdf", "application/pdf", bl.CreateInvoiceMemoryStream(invoice)); }
private void Button_Click(object sender, RoutedEventArgs e) { decimal amount, tip; amount = decimal.TryParse(AmountField.Text, out amount) ? amount : 1; tip = decimal.TryParse(GratuityField.Text, out tip) ? tip : 0; var invoice = new Invoice(null); invoice.AddItem("Amount", decimal.One, amount, "", ""); if (tip > 0) { invoice.GratuityAmount = tip; } RetailSDK.WpfContentGridForUi = (Grid)Content; var transaction = RetailSDK.CreateTransaction(invoice); transaction.Begin(); }
public void Add_Date_To_Items_If_Date_Is_A_Day_Before_CreateDate_Of_Current_Month() { //Arrange var invoice = new Invoice("", new Customer(), new DateTime(2021, 2, 12)); var item = new MaintenanceInvoiceItem(new DateTime(2021, 2, 22), 1); invoice.AddItem(item); var list = new List <InvoiceItem>(); list.Add(item); var expected = list; //Act; var actual = invoice.RetrieveItems().ToList(); //Assert CollectionAssert.AreEqual(expected, actual); }
public void ProcessMessage(IHandlerContext <CreateInvoiceCommand> context) { // simulate slow processing Thread.Sleep(1000); var message = context.Message; var invoice = new Invoice(message.OrderId) { AccountContact = new InvoiceAccountContact(message.AccountContactName, message.AccountContactEMail) }; foreach (var item in message.Items) { invoice.AddItem(item.Description, item.Price); } invoice.GenerateInvoiceNumber(); using (_databaseContextFactory.Create(InvoicingData.ConnectionStringName)) { _repository.Add(invoice); } var orderCreatedEvent = new InvoiceCreatedEvent { InvoiceId = invoice.Id, InvoiceNumber = invoice.InvoiceNumber, InvoiceDate = invoice.InvoiceDate, AccountContactName = message.AccountContactName, AccountContactEMail = message.AccountContactEMail }; orderCreatedEvent.Items.AddRange(message.Items); context.Publish(orderCreatedEvent); }
Invoice WalkInvoiceSearchRet(IInvoiceRet InvoiceRet) { Invoice invoice = new Invoice(); if (InvoiceRet == null) { return(null); } invoice.TxnID = InvoiceRet.TxnID.GetValue().ToString(); invoice.TimeCreated = (DateTime)InvoiceRet.TimeCreated.GetValue(); invoice.TimeModified = (DateTime)InvoiceRet.TimeModified.GetValue(); invoice.EditSequence = (string)InvoiceRet.EditSequence.GetValue(); if (InvoiceRet.RefNumber != null) { invoice.ID = InvoiceRet.RefNumber.GetValue(); } if (InvoiceRet.TxnNumber != null) { invoice.TxnNumber = InvoiceRet.TxnNumber.GetValue().ToString(); } //Get value of FullName if (InvoiceRet.CustomerRef.FullName != null) { invoice.CustomerName = (string)InvoiceRet.CustomerRef.FullName.GetValue(); } if (InvoiceRet.ClassRef != null) { //Get value of FullName if (InvoiceRet.ClassRef.FullName != null) { invoice.ClassRef = (string)InvoiceRet.ClassRef.FullName.GetValue(); } } //Discount Items if (InvoiceRet.DiscountLineRet != null) { if (InvoiceRet.DiscountLineRet.AccountRef != null) { invoice.DiscountAccountRef = InvoiceRet.DiscountLineRet.AccountRef.FullName.GetValue(); } } #region attributes if (InvoiceRet.BillAddress != null) { ///Get value of Addr1 if (InvoiceRet.BillAddress.Addr1 != null) { invoice.BillAddress1 = (string)InvoiceRet.BillAddress.Addr1.GetValue(); } ////Get value of Addr2 ////Get value of City if (InvoiceRet.BillAddress.City != null) { invoice.City = (string)InvoiceRet.BillAddress.City.GetValue(); } ////Get value of State if (InvoiceRet.BillAddress.State != null) { invoice.State = (string)InvoiceRet.BillAddress.State.GetValue(); } ////Get value of PostalCode if (InvoiceRet.BillAddress.PostalCode != null) { invoice.PostalCode = (string)InvoiceRet.BillAddress.PostalCode.GetValue(); } ////Get value of Country if (InvoiceRet.BillAddress.Country != null) { invoice.Country = (string)InvoiceRet.BillAddress.Country.GetValue(); } ////Get value of Note } invoice.Amount = InvoiceRet.BalanceRemaining.GetValue().ToString(); if (InvoiceRet.ShipAddress != null) { ////Get value of Addr1 if (InvoiceRet.ShipAddress.Addr1 != null) { invoice.ShipAddress = (string)InvoiceRet.ShipAddress.Addr1.GetValue(); } ////Get value of City if (InvoiceRet.ShipAddress.City != null) { invoice.Ship_City = (string)InvoiceRet.ShipAddress.City.GetValue(); } ////Get value of State if (InvoiceRet.ShipAddress.State != null) { invoice.Ship_State = (string)InvoiceRet.ShipAddress.State.GetValue(); } ////Get value of PostalCode if (InvoiceRet.ShipAddress.PostalCode != null) { invoice.Ship_PostalCode = (string)InvoiceRet.ShipAddress.PostalCode.GetValue(); } ////Get value of Country if (InvoiceRet.ShipAddress.Country != null) { invoice.Ship_Country = (string)InvoiceRet.ShipAddress.Country.GetValue(); } } ////Get value of DueDate if (InvoiceRet.DueDate != null) { invoice.DueDate = (DateTime)InvoiceRet.DueDate.GetValue(); } //if (InvoiceRet.FOB != null) // { //= (string)InvoiceRet.FOB.GetValue(); //} ////Get value of ShipDate if (InvoiceRet.ShipDate != null) { invoice.ShipDate = (DateTime)InvoiceRet.ShipDate.GetValue(); } ////Get value of Memo if (InvoiceRet.Memo != null) { invoice.Memo = (string)InvoiceRet.Memo.GetValue(); } ////Get value of IsPaid if (InvoiceRet.IsPaid != null) { //{ invoice.IsPaid = (bool)InvoiceRet.IsPaid.GetValue(); } //} ////Get value of Amount //double Amount88 = (double)LinkedTxn.Amount.GetValue(); //} //} if (InvoiceRet.ORInvoiceLineRetList != null) { invoice.lineitem = new List <InvoiceLineItem>(); } //{ for (int i = 0; i < InvoiceRet.ORInvoiceLineRetList.Count; i++) { IORInvoiceLineRet ORInvoiceLineRet = InvoiceRet.ORInvoiceLineRetList.GetAt(i); InvoiceLineItem item = new InvoiceLineItem(); if (ORInvoiceLineRet.InvoiceLineRet != null) { ////Get value of TxnLineID item.TxnLineID = (string)ORInvoiceLineRet.InvoiceLineRet.TxnLineID.GetValue(); if (ORInvoiceLineRet.InvoiceLineRet.ItemRef != null) { if (ORInvoiceLineRet.InvoiceLineRet.ItemRef.FullName != null) { item.Item = (string)ORInvoiceLineRet.InvoiceLineRet.ItemRef.FullName.GetValue(); } } ////Get value of Desc if (ORInvoiceLineRet.InvoiceLineRet.Desc != null) { item.Desc = (string)ORInvoiceLineRet.InvoiceLineRet.Desc.GetValue(); } ////Get value of Quantity if (ORInvoiceLineRet.InvoiceLineRet.Quantity != null) { item.Quantity = (int)ORInvoiceLineRet.InvoiceLineRet.Quantity.GetValue(); } //} if (ORInvoiceLineRet.InvoiceLineRet.ClassRef != null) { ////Get value of FullName if (ORInvoiceLineRet.InvoiceLineRet.ClassRef.FullName != null) { //{ item.ClassRef = (string)ORInvoiceLineRet.InvoiceLineRet.ClassRef.FullName.GetValue(); } } //} ////Get value of Amount if (ORInvoiceLineRet.InvoiceLineRet.Amount != null) { item.Amount = (double)ORInvoiceLineRet.InvoiceLineRet.Amount.GetValue(); } invoice.AddItem(item); } } #endregion return(invoice); }
private static TransactionContext CreateTxContext(decimal amount) { var invoice = new Invoice(null); invoice.AddItem("Amount", decimal.One, amount, "", ""); return RetailSDK.CreateTransaction(invoice); }