Example #1
0
        private static void AssertDefault(CreditNotePostModel creditNote)
        {
            Assert.IsNotEmpty(creditNote.AccountNumber);
            Assert.IsNotNull(creditNote.ConstantSymbolId);
            Assert.AreEqual(CreditedIssuedInvoiceId, creditNote.CreditedInvoiceId, 0);
            Assert.IsEmpty(creditNote.CreditNoteReason);
            Assert.Greater(creditNote.CurrencyId, 0);
            Assert.IsNotNull(creditNote.DateOfIssue);
            Assert.IsNotNull(creditNote.DateOfMaturity);
            Assert.IsNotNull(creditNote.DateOfPayment);
            Assert.IsNotNull(creditNote.DateOfTaxing);
            Assert.IsNotNull(creditNote.DateOfVatApplication);
            Assert.IsNull(creditNote.DateOfVatClaim);
            Assert.IsNotEmpty(creditNote.Description);
            Assert.Greater(creditNote.DocumentSerialNumber, 0);
            Assert.AreEqual(1, creditNote.ExchangeRate);
            Assert.AreEqual(1, creditNote.ExchangeRateAmount);
            Assert.Greater(creditNote.Items.Count, 0);

            foreach (var creditNoteItem in creditNote.Items)
            {
                AssertDefaultItem(creditNoteItem);
            }

            Assert.IsEmpty(creditNote.ItemsTextPrefix);
            Assert.IsEmpty(creditNote.ItemsTextSuffix);
            Assert.IsEmpty(creditNote.Note);
            Assert.IsEmpty(creditNote.NoteForCreditNote);
            Assert.Greater(creditNote.NumericSequenceId, 0);
            Assert.Greater(creditNote.PartnerId, 0);
            Assert.IsNotNull(creditNote.ReportLanguage);
            Assert.IsNotEmpty(creditNote.VariableSymbol);
        }
Example #2
0
        public void Default_SuccessfullyReturned()
        {
            // Act
            _creditNotePostModel = CreditNoteClient.Default(CreditedIssuedInvoiceId).AssertResult();

            // Assert
            AssertDefault(_creditNotePostModel);
        }
Example #3
0
        private static void ComparePostAndGetModels(CreditNotePostModel postModel, CreditNoteListGetModel getModel, bool offset)
        {
            Assert.IsEmpty(getModel.Attachments);
            Assert.AreEqual(postModel.ConstantSymbolId, getModel.ConstantSymbolId);
            Assert.AreEqual(postModel.CreditedInvoiceId, getModel.CreditedInvoiceId);
            Assert.AreEqual(postModel.CreditNoteReason, getModel.CreditNoteReason);
            Assert.AreEqual(postModel.CurrencyId, getModel.CurrencyId);
            Assert.AreEqual(postModel.DateOfIssue.Date, getModel.DateOfIssue.Date);
            Assert.AreEqual(postModel.DateOfMaturity.Date, getModel.DateOfMaturity.Date);

            if (offset)
            {
                Assert.IsNotNull(getModel.DateOfPayment.Date);
            }
            else
            {
                Assert.AreEqual(postModel.DateOfPayment.GetValueOrDefault().Date, getModel.DateOfPayment.Date);
            }

            Assert.AreEqual(postModel.DateOfTaxing.Date, getModel.DateOfTaxing.Date);
            Assert.AreEqual(postModel.DateOfVatClaim, getModel.DateOfVatClaim.Date);
            Assert.AreEqual(postModel.Description, getModel.Description);
            Assert.AreEqual(postModel.DiscountPercentage, getModel.DiscountPercentage);
            Assert.Greater(getModel.DocumentSerialNumber, 0);
            Assert.AreEqual(postModel.EetResponsibility, getModel.EetResponsibility);
            Assert.AreEqual(postModel.ExchangeRate, getModel.ExchangeRate);
            Assert.AreEqual(postModel.ExchangeRateAmount, getModel.ExchangeRateAmount);
            Assert.AreEqual(postModel.IsEet, getModel.IsEet);
            Assert.AreEqual(postModel.IsIncomeTax, getModel.IsIncomeTax);
            Assert.AreEqual(postModel.ItemsTextPrefix, getModel.ItemsTextPrefix);
            Assert.AreEqual(postModel.ItemsTextSuffix, getModel.ItemsTextSuffix);
            Assert.AreEqual(postModel.AccountNumber, getModel.MyAddress.AccountNumber);
            Assert.AreEqual(postModel.Iban, getModel.MyAddress.Iban);
            Assert.AreEqual(postModel.Swift, getModel.MyAddress.Swift);
            Assert.AreEqual(postModel.Note, getModel.Note);
            Assert.AreEqual(postModel.NoteForCreditNote, getModel.NoteForCreditNote);
            Assert.AreEqual(postModel.OrderNumber, getModel.OrderNumber);
            Assert.AreEqual(postModel.PartnerId, getModel.PartnerId);

            if (!offset)
            {
                Assert.AreEqual(postModel.PaymentOptionId, getModel.PaymentOptionId);
            }

            Assert.IsNotNull(getModel.Prices);
            Assert.NotZero(getModel.Prices.TotalWithVat);
            Assert.AreEqual(postModel.ReportLanguage, getModel.ReportLanguage);
            Assert.AreEqual(postModel.SalesPosEquipmentId, getModel.SalesPosEquipmentId);
            Assert.AreEqual(postModel.VariableSymbol, getModel.VariableSymbol);
            Assert.AreEqual(postModel.VatOnPayStatus, getModel.VatOnPayStatus);
            Assert.AreEqual(postModel.VatReverseChargeCodeId, getModel.VatReverseChargeCodeId);
        }
Example #4
0
        public void OffsetNewCreditNote_SuccessfullyOffset()
        {
            // Arrange
            _creditNoteToOffsetPostModel = CreditNoteClient.Default(CreditedIssuedInvoiceId).AssertResult();
            CreatePostModel(_creditNoteToOffsetPostModel);

            // Act
            var offsetCreditNote = CreditNoteClient.Offset(_creditNoteToOffsetPostModel).AssertResult();

            _offsetCreditNoteId = offsetCreditNote.Id;

            // Assert
            Assert.AreEqual(_offsetCreditNoteId, offsetCreditNote.Id);
            ComparePostAndGetModels(_creditNoteToOffsetPostModel, offsetCreditNote, true);
            ComparePostAndGetItems(_creditNoteToOffsetPostModel.Items, offsetCreditNote.Items.Cast <CreditNoteItemListGetModel>().ToList());
            Assert.IsNotNull(offsetCreditNote.DateOfPayment);
        }
Example #5
0
 /// <inheritdoc />
 public ApiResult <CreditNoteGetModel> Post(CreditNotePostModel model)
 {
     return(Post <CreditNotePostModel, CreditNoteGetModel>(model));
 }
Example #6
0
        /// <summary>
        /// Creates new credit note and offsets it with invoice. Credit note should contain only items with ItemTypeNormal.
        /// </summary>
        /// <param name="model">Credit note to be created.</param>
        /// <returns><see cref="ApiResult{CreditNoteGetModel}"/> instance.</returns>
        public ApiResult <CreditNoteGetModel> Offset(CreditNotePostModel model)
        {
            var resource = $"{ResourceUrl}/Offset";

            return(Post <CreditNotePostModel, CreditNoteGetModel>(resource, model));
        }
 /// <inheritdoc/>
 public Task <ApiResult <CreditNoteGetModel> > PostAsync(CreditNotePostModel model, CancellationToken cancellationToken = default)
 {
     return(PostAsync <CreditNotePostModel, CreditNoteGetModel>(model, cancellationToken));
 }
        /// <summary>
        /// Creates new credit note and offsets it with invoice. Credit note should contain only items with ItemTypeNormal.
        /// </summary>
        /// <param name="model">Credit note to be created.</param>
        /// <param name="cancellationToken">Cancellation token.</param>
        /// <returns><see cref="ApiResult{CreditNoteGetModel}"/> instance.</returns>
        public Task <ApiResult <CreditNoteGetModel> > OffsetAsync(CreditNotePostModel model, CancellationToken cancellationToken = default)
        {
            var resource = $"{ResourceUrl}/Offset";

            return(PostAsync <CreditNotePostModel, CreditNoteGetModel>(resource, model, cancellationToken));
        }
Example #9
0
 private static void CreatePostModel(CreditNotePostModel postModel)
 {
     postModel.CreditNoteReason  = "reason";
     postModel.DateOfVatClaim    = postModel.DateOfVatApplication;
     postModel.DeliveryAddressId = DeliveryAddressId1;
 }