Exemple #1
0
        public void TestInsertAndGetItemPurchase()
        {
            CrudProxy  proxy = new InvoiceProxy();
            InvoiceDto dto1  = this.GetUnpaidItemPurchase();

            proxy.Insert(dto1);

            Assert.IsTrue(dto1.Uid > 0, "Uid must be > 0 after save.");

            InvoiceDto dto2 = (InvoiceDto)proxy.GetByUid(dto1.Uid);

            AssertEqual(dto1, dto2);
        }
Exemple #2
0
        public void TestInsertAndGetServicePurchaseWithShipToContact()
        {
            CrudProxy  proxy = new InvoiceProxy();
            InvoiceDto dto1  = this.GetUnpaidServicePurchase();

            dto1.ShipToContactUid = MrSmith.Uid;

            proxy.Insert(dto1);

            Assert.IsTrue(dto1.Uid > 0, "Uid must be > 0 after save.");

            InvoiceDto dto2 = (InvoiceDto)proxy.GetByUid(dto1.Uid);

            AssertEqual(dto1, dto2);
        }
Exemple #3
0
        public void TestAutoNumberingOfPurchaseNextAvailableNumberIsAvailable()
        {
            CrudProxy proxy = new InvoiceProxy();

            var dto1 = this.GetUnpaidServicePurchase();

            proxy.Insert(dto1);

            Assert.IsTrue(dto1.Uid > 0, "Uid must be > 0 after save.");

            var savedDto = (InvoiceDto)proxy.GetByUid(dto1.Uid);

            AssertEqual(dto1, savedDto);

            Assert.IsNotNullOrEmpty(dto1.PurchaseOrderNumber);
        }
        public void Insert1()
        {
            InvoiceProxy proxy = new InvoiceProxy();
            InvoiceDto   dto1  = this.GetSale1();

            EmailMessageDto emailMessage = new EmailMessageDto();

            emailMessage.From    = ConfigurationSettings.AppSettings["NUnitTests.Email.From"];
            emailMessage.To      = ConfigurationSettings.AppSettings["NUnitTests.Email.To"];
            emailMessage.Subject = "Invoice - Sent using NetAccounts OLA REST API (TestInsertAndEmail).";
            emailMessage.Body    = "Insert Invoice then email.";

            proxy.InsertAndEmail(dto1, emailMessage);

            Assert.IsTrue(dto1.Uid > 0, "Uid must be > 0 after save.");

            //
            //	Ensure IsSent is updated.
            //
            dto1 = (InvoiceDto)proxy.GetByUid(dto1.Uid);
            Assert.IsTrue(dto1.IsSent, "Invoice should have been sent.");
        }
Exemple #5
0
        //Should select next available number after taken one.
        public void TestAutoNumberingOfPurchaseNextAvailableNumberNotAvailable()
        {
            CrudProxy proxy = new InvoiceProxy();

            var dto1 = this.GetUnpaidServicePurchase();

            proxy.Insert(dto1);

            Assert.IsTrue(dto1.Uid > 0, "Uid must be > 0 after save.");

            string alphaComponent;
            var    numericalComponentDto1 = GetNumericalComponentOfPurchaseNumber(dto1.PurchaseOrderNumber, out alphaComponent);

            Assert.IsNotNull(numericalComponentDto1, "PurchaseOrderNumber returned did not contain a numerical component");

            //manually insert an invoice.
            var nextAvailablePONumber = alphaComponent + (numericalComponentDto1 + 1).ToString();

            var dto2 = this.GetUnpaidServicePurchase(nextAvailablePONumber);

            proxy.Insert(dto2);

            Assert.IsTrue(dto2.Uid > 0, "Uid must be > 0 after save.");

            //create next auto numbering invoice.
            var dto3 = this.GetUnpaidServicePurchase();

            proxy.Insert(dto3);

            Assert.IsTrue(dto3.Uid > 0, "Uid must be > 0 after save.");

            var savedDto = (InvoiceDto)proxy.GetByUid(dto3.Uid);

            Assert.IsNotNull(savedDto.PurchaseOrderNumber);

            Assert.AreEqual(savedDto.PurchaseOrderNumber, alphaComponent + (numericalComponentDto1 + 2).ToString());
        }
Exemple #6
0
        public void TestInsertAndGetItemPurchase_Invoice_Totals_Test()
        {
            //Arange
            var proxy = new InvoiceProxy();
            var input = GetUnpaidItemPurchase();

            input.Items.Clear();

            var item = new ItemInvoiceItemDto
            {
                Quantity         = 100,
                InventoryItemUid = this.HardDisk.Uid,
                Description      = this.HardDisk.Description,
                TaxCode          = TaxCode.SaleInclGst,
                UnitPriceInclTax = 99.95M
            };

            input.Items.Add(item);

            item = new ItemInvoiceItemDto
            {
                Quantity         = 5000,
                InventoryItemUid = this.Cat5Cable.Uid,
                Description      = this.Cat5Cable.Description,
                TaxCode          = TaxCode.SaleInclGst,
                UnitPriceInclTax = 0.95M
            };

            input.Items.Add(item);

            //act
            var item1 = ((ItemInvoiceItemDto)input.Items[0]);
            var item2 = ((ItemInvoiceItemDto)input.Items[1]);

            var totalItem1 = (item1.UnitPriceInclTax * item1.Quantity);
            var totalItem2 = (item2.UnitPriceInclTax * item2.Quantity);

            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 = ((ItemInvoiceItemDto)output.Items[0]);
            var outputLineItem2 = ((ItemInvoiceItemDto)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);
        }