示例#1
0
        public void Recount_ForeignCurrency_SuccessfullyRecounted()
        {
            // Arrange
            var item = new ReceivedInvoiceItemRecountPostModel
            {
                UnitPrice   = 100,
                Amount      = 1,
                Name        = "Test",
                Id          = 1,
                PriceType   = PriceType.WithoutVat,
                VatRateType = VatRateType.Basic
            };
            var model = new ReceivedInvoiceRecountPostModel
            {
                CurrencyId         = 2,
                ExchangeRate       = 20,
                ExchangeRateAmount = 1,
                DateOfTaxing       = DateTime.Today.SetKindUtc(),
                Items = new List <ReceivedInvoiceItemRecountPostModel> {
                    item
                }
            };

            // Act
            var result = _receivedInvoiceClient.Recount(model).AssertResult();

            // Assert
            var recountedItem = result.Items.First(x => x.ItemType == IssuedInvoiceItemType.ItemTypeNormal);

            Assert.AreEqual(1, result.ExchangeRateAmount);
            Assert.AreEqual(20, result.ExchangeRate);
            Assert.AreEqual(2, result.CurrencyId);
            Assert.AreEqual(121, recountedItem.Prices.TotalWithVat);
            Assert.AreEqual(2420, recountedItem.Prices.TotalWithVatHc);
        }
示例#2
0
        public async Task RecountAsync_SuccessfullyRecounted()
        {
            // Arrange
            var item = new ReceivedInvoiceItemRecountPostModel
            {
                UnitPrice   = 100,
                Amount      = 2,
                Name        = "Test",
                Id          = 1,
                PriceType   = PriceType.WithoutVat,
                VatRateType = VatRateType.Basic
            };
            var model = new ReceivedInvoiceRecountPostModel
            {
                CurrencyId   = 1,
                DateOfTaxing = DateTime.Today.SetKindUtc(),
                Items        = new List <ReceivedInvoiceItemRecountPostModel> {
                    item
                }
            };

            // Act
            var data = (await _receivedInvoiceClient.RecountAsync(model)).AssertResult();

            // Assert
            var recountedItem = data.Items.First(x => x.ItemType == IssuedInvoiceItemType.ItemTypeNormal);

            Assert.AreEqual(item.Id, recountedItem.Id);
            Assert.AreEqual(item.Name, recountedItem.Name);
            Assert.AreEqual(242, recountedItem.Prices.TotalWithVat);
            Assert.AreEqual(242, recountedItem.Prices.TotalWithVatHc);
            Assert.AreEqual(42, recountedItem.Prices.TotalVat);
            Assert.AreEqual(42, recountedItem.Prices.TotalVatHc);
            Assert.AreEqual(200, recountedItem.Prices.TotalWithoutVat);
            Assert.AreEqual(200, recountedItem.Prices.TotalWithoutVatHc);
        }
        /// <inheritdoc/>
        public Task <ApiResult <ReceivedInvoiceRecountGetModel> > RecountAsync(ReceivedInvoiceRecountPostModel model, CancellationToken cancellationToken = default)
        {
            var resource = $"{ResourceUrl}/Recount";

            return(PostAsync <ReceivedInvoiceRecountPostModel, ReceivedInvoiceRecountGetModel>(resource, model, cancellationToken));
        }
示例#4
0
        /// <inheritdoc/>
        public ApiResult <ReceivedInvoiceRecountGetModel> Recount(ReceivedInvoiceRecountPostModel model)
        {
            var resource = $"{ResourceUrl}/Recount";

            return(Post <ReceivedInvoiceRecountPostModel, ReceivedInvoiceRecountGetModel>(resource, model));
        }