コード例 #1
0
        public InvoiceDto GetServiceSale()
        {
            InvoiceDto dto = new InvoiceDto(TransactionType.Sale, InvoiceLayout.Service);

            dto.Date = DateTime.Parse("30-Sep-05");
            dto.ContactUid = this.MrSmith.Uid;
            dto.Summary = "Test POST sale";
            dto.Notes = "From REST";
            dto.DueOrExpiryDate = DateTime.Parse("1-Dec-05");
            dto.Status = "I";
            dto.InvoiceNumber = "<Auto Number>";
            dto.PurchaseOrderNumber = "PO222";
            dto.IsSent = false;

            ServiceInvoiceItemDto item = new ServiceInvoiceItemDto();
            item.Description = "Design & Development of REST WS";
            item.AccountUid = this.IncomeService.Uid;
            item.TaxCode = TaxCode.SaleInclGst;
            item.TotalAmountInclTax = 2132.51M;
            dto.Items.Add(item);

            item = new ServiceInvoiceItemDto();
            item.Description = "Subscription to XYZ";
            item.AccountUid = this.IncomeSubscription.Uid;
            item.TaxCode = TaxCode.SaleInclGst;
            item.TotalAmountInclTax = 11.22M;
            dto.Items.Add(item);

            QuickPaymentDto payment = new QuickPaymentDto();
            payment.DatePaid = dto.Date;
            payment.BankedToAccountUid = this.Westpac.Uid;
            payment.Reference = "CASH";
            payment.Summary = "Quick payment from NUnitTests.";
            payment.Amount = 100;

            dto.QuickPayment = payment;

            return dto;
        }
コード例 #2
0
        public void InsertAndGetItemSale_Invoice_Totals_Test()
        {
            //Arange
            var proxy = new InvoiceProxy();
            var input = GetServiceSaleTotalsTest();

            var item = new ServiceInvoiceItemDto
                           {
                               Description = "Design & Development of REST WS",
                               AccountUid = this.IncomeService.Uid,
                               TaxCode = TaxCode.SaleInclGst,
                               TotalAmountInclTax = 2500.65m
                           };

            input.Items.Add(item);

            item = new ServiceInvoiceItemDto
                       {
                           Description = "Subscription to XYZ",
                           AccountUid = this.IncomeSubscription.Uid,
                           TaxCode = TaxCode.SaleInclGst,
                           TotalAmountInclTax = 11.96m
                       };

            input.Items.Add(item);

            //act
            var totalItem1 = ((ServiceInvoiceItemDto)input.Items[0]).TotalAmountInclTax;
            var totalItem2 = ((ServiceInvoiceItemDto)input.Items[1]).TotalAmountInclTax;
            var totalTax1 = totalItem1 - (Math.Round(totalItem1 / (1 + 0.100000m), 2, MidpointRounding.AwayFromZero));
            var totalTax2 = totalItem2 - (Math.Round(totalItem2 / (1 + 0.100000m), 2, MidpointRounding.AwayFromZero));

            proxy.Insert(input);

            var output = (InvoiceDto)proxy.GetByUid(input.Uid);
            var outputLineItem1 = ((ServiceInvoiceItemDto)output.Items[0]);
            var outputLineItem2 = ((ServiceInvoiceItemDto)output.Items[1]);

            //assert

            //Test Line Item Totals.
            Assert.AreEqual(outputLineItem1.TotalAmountInclTax, totalItem1);
            Assert.AreEqual(outputLineItem1.TotalTaxAmount, totalTax1);
            Assert.AreEqual(outputLineItem1.TotalAmountExclTax, outputLineItem1.TotalAmountInclTax - totalTax1);

            Assert.AreEqual(outputLineItem2.TotalAmountInclTax, totalItem2);
            Assert.AreEqual(outputLineItem2.TotalTaxAmount, totalTax2);
            Assert.AreEqual(outputLineItem2.TotalAmountExclTax, outputLineItem2.TotalAmountInclTax - totalTax2);

            //Test Invoice Totals.
            Assert.AreEqual(output.TotalAmountInclTax, outputLineItem1.TotalAmountInclTax + outputLineItem2.TotalAmountInclTax);
            Assert.AreEqual(output.TotalTaxAmount, outputLineItem1.TotalTaxAmount + outputLineItem2.TotalTaxAmount);
            Assert.AreEqual(output.TotalAmountExclTax, outputLineItem1.TotalAmountExclTax + outputLineItem2.TotalAmountExclTax);
        }
コード例 #3
0
        public InvoiceDto GetUnpaidServiceSale()
        {
            InvoiceDto dto = new InvoiceDto(TransactionType.Sale, InvoiceLayout.Service);

            dto.Date = DateTime.Parse("30-Sep-05");
            dto.ContactUid = this.MrsSmith.Uid;
            dto.Summary = "Test POST sale";
            dto.Notes = "From REST";
            dto.DueOrExpiryDate = DateTime.Parse("1-Dec-05");
            dto.InvoiceNumber = "<Auto Number>";
            dto.PurchaseOrderNumber = "PO222";

            ServiceInvoiceItemDto item = new ServiceInvoiceItemDto();
            item.Description = "Design & Development of REST WS";
            item.AccountUid = this.IncomeHardwareSales.Uid;
            item.TaxCode = "G1";
            item.TotalAmountInclTax = 2132.51M;
            dto.Items.Add(item);

            item = new ServiceInvoiceItemDto();
            item.Description = "Testing";
            item.AccountUid = this.IncomeMisc.Uid;
            item.TaxCode = "G1,G3";
            item.TotalAmountInclTax = 11.22M;
            dto.Items.Add(item);

            return dto;
        }
コード例 #4
0
        public InvoiceDto GetServiceSale2()
        {
            InvoiceDto dto = new InvoiceDto(TransactionType.Sale, InvoiceLayout.Service);

            dto.Date = DateTime.Parse("15-Sep-05");
            dto.ContactUid = this.MrsSmith.Uid;
            dto.Summary = "Service Sale 2";
            dto.DueOrExpiryDate = DateTime.Parse("15-Dec-05");
            dto.InvoiceNumber = "<Auto Number>";
            dto.PurchaseOrderNumber = "PO123456789";

            ServiceInvoiceItemDto item = new ServiceInvoiceItemDto();
            item.Description = "LINE 1 LINE 1 LINE 1";
            item.AccountUid = this.IncomeService.Uid;
            item.TaxCode = TaxCode.SaleExports;
            item.TotalAmountInclTax = 12345.12M;
            dto.Items.Add(item);

            item = new ServiceInvoiceItemDto();
            item.Description = "Testing";
            item.AccountUid = this.IncomeHardwareSales.Uid;
            item.TaxCode = TaxCode.SaleAdjustments;
            item.TotalAmountInclTax = -123.9M;
            dto.Items.Add(item);

            item = new ServiceInvoiceItemDto();
            item.Description = "Testing";
            item.AccountUid = this.IncomeShipping.Uid;
            item.TaxCode = TaxCode.SaleInclGst;
            item.TotalAmountInclTax = 569.66M;
            dto.Items.Add(item);

            return dto;
        }
コード例 #5
0
        public InvoiceDto GetAdjustmentNote()
        {
            InvoiceDto dto = new InvoiceDto(TransactionType.Sale, InvoiceLayout.Service);

            dto.Date = DateTime.Parse("30-Sep-05");
            dto.ContactUid = this.MrSmith.Uid;
            dto.Summary = "Test Adjustment Note";
            dto.Notes = "From REST";
            dto.DueOrExpiryDate = DateTime.Parse("31-Jan-2012");
            // Don't set the status. Use InvoiceType instead. Eventually, InvoiceStatus will be deprecated and replaced with InvoiceType.
            dto.InvoiceType = InvoiceType.AdjustmentNote;
            dto.InvoiceNumber = "<Auto Number>";
            dto.PurchaseOrderNumber = "PO222";
            dto.IsSent = false;

            ServiceInvoiceItemDto item = new ServiceInvoiceItemDto();
            item.Description = "Refund";
            item.AccountUid = this.IncomeService.Uid;
            item.TaxCode = TaxCode.SaleInclGst;
            item.TotalAmountInclTax = -1000M;
            dto.Items.Add(item);

            QuickPaymentDto payment = new QuickPaymentDto();
            payment.DatePaid = dto.Date;
            payment.BankedToAccountUid = this.Westpac.Uid;
            payment.Reference = "CASH";
            payment.Summary = "Quick payment from NUnitTests.";
            payment.Amount = -1000;

            dto.QuickPayment = payment;

            return dto;
        }
コード例 #6
0
        private InvoiceDto GetUnpaidServicePurchase(string PONumber = null)
        {
            InvoiceDto dto = new InvoiceDto(TransactionType.Purchase, InvoiceLayout.Service);

            dto.Date				= DateTime.Today.Date;
            dto.ContactUid			= this.MrSmith.Uid;
            dto.Summary				= "Test POST Purchase";
            dto.Notes				= "From REST";
            dto.DueOrExpiryDate		= dto.Date.AddMonths(1);
            dto.Status				= InvoiceStatus.Order;
            dto.PurchaseOrderNumber = "<Auto Number>";

            if (!string.IsNullOrWhiteSpace(PONumber))
            {
                dto.PurchaseOrderNumber = PONumber.Trim();
            }

            ServiceInvoiceItemDto item	= new ServiceInvoiceItemDto();
            item.Description			= "Purchase - Line Item 1";
            item.AccountUid				= this.ExpenseOffice.Uid;
            item.TaxCode				= TaxCode.ExpInclGst;
            item.TotalAmountInclTax		= 123.45M;
            dto.Items.Add(item);

            item						= new ServiceInvoiceItemDto();
            item.Description			= "Purchase - Line Item 2";
            item.AccountUid				= this.ExpenseMisc.Uid;
            // item.TaxCode				= TaxCode.ExpInclGstPrivateNonDeductable;
            item.TotalAmountInclTax		= 678.90M;
            dto.Items.Add(item);

            return dto;
        }
コード例 #7
0
        private InvoiceDto GetServicePurchase()
        {
            var dto = new InvoiceDto(TransactionType.Purchase, InvoiceLayout.Service);

            dto.Date = DateTime.Today.Date;
            dto.ContactUid = MrSmith.Uid;
            dto.Summary = "Test POST Purchase";
            dto.Notes = "From REST";
            dto.DueOrExpiryDate = dto.Date.AddMonths(1);
            dto.Status = InvoiceStatus.Order;
            dto.PurchaseOrderNumber = "<Auto Number>";

            var item = new ServiceInvoiceItemDto();
            item.Description = "Purchase - Line Item 1";
            item.AccountUid = ExpenseOffice.Uid;
            item.TaxCode = TaxCode.ExpInclGst;
            item.TotalAmountInclTax = 123.45M;
            dto.Items.Add(item);

            item = new ServiceInvoiceItemDto();
            item.Description = "Purchase - Line Item 2";
            item.AccountUid = ExpenseMisc.Uid;
            // item.TaxCode				= TaxCode.ExpInclGstPrivateNonDeductable;
            item.TotalAmountInclTax = 678.90M;
            dto.Items.Add(item);

            return dto;
        }
コード例 #8
0
        public InvoiceDto GetServiceSale()
        {
            var dto = new InvoiceDto(TransactionType.Sale, InvoiceLayout.Service);

            dto.Date = DateTime.Parse("30-Sep-05");
            dto.ContactUid = MrSmith.Uid;
            dto.Summary = "Test POST sale";
            dto.Notes = "From REST";
            dto.DueOrExpiryDate = DateTime.Parse("1-Dec-05");
            dto.Status = "I";
            dto.InvoiceNumber = "<Auto Number>";
            dto.PurchaseOrderNumber = "PO222";
            dto.IsSent = false;

            var item = new ServiceInvoiceItemDto();
            item.Description = "Design & Development of REST WS";
            item.AccountUid = IncomeService.Uid;
            item.TaxCode = TaxCode.SaleInclGst;
            item.TotalAmountInclTax = 2132.51M;
            dto.Items.Add(item);

            return dto;
        }
コード例 #9
0
 protected static void AssertEqual(ServiceInvoiceItemDto expected, ServiceInvoiceItemDto actual, int index)
 {
     string msg = "Item index: " + index.ToString() + ". Different ";
     Assert.AreEqual(expected.Description, actual.Description, msg + "description.");
     Assert.AreEqual(expected.AccountUid, actual.AccountUid, msg + "account uid.");
     Assert.AreEqual(expected.TaxCode, actual.TaxCode, msg + "tax code.");
     Assert.AreEqual(expected.TotalAmountInclTax, actual.TotalAmountInclTax, msg + "totalAmountInclTax.");
 }