/// <summary> /// PrepareRequest /// </summary> /// <exception cref="SveaWebPayValidationException"></exception> /// <returns>CreateOrderEuRequest</returns> public CreateOrderEuRequest PrepareRequest() { var errors = ValidateOrder(); if (errors.Length > 0) { throw new SveaWebPayValidationException(errors); } var sveaOrder = new CreateOrderEuRequest {Auth = GetPasswordBasedAuthorization()}; var formatter = new WebServiceRowFormatter<CreateOrderBuilder>(CrOrderBuilder); List<OrderRow> formattedOrderRows = formatter.FormatRows(); // make order rows and put in CreateOrderInformation OrderInfo = new CreateOrderInformation { CustomerIdentity = CrOrderBuilder.GetSoapPurifiedCustomer(), ClientOrderNumber = CrOrderBuilder.GetClientOrderNumber(), CreatePaymentPlanDetails = CrOrderBuilder.GetCampaignCode() != null ? new CreatePaymentPlanDetails { CampaignCode = CrOrderBuilder.GetCampaignCode(), SendAutomaticGiroPaymentForm = CrOrderBuilder.GetSendAutomaticGiroPaymentForm() } : null, OrderDate = CrOrderBuilder.GetOrderDate(), CustomerReference = CrOrderBuilder.GetCustomerReference(), OrderRows = formattedOrderRows.ToArray() }; sveaOrder.CreateOrderInformation = SetOrderType(OrderInfo); return sveaOrder; }
public void FillMissingValuesInconsistentThrowsOnlyVat() { var order = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig()) .AddOrderRow(Item.OrderRow() .SetVatPercent(10)); var result = WebServiceRowFormatter <CreateOrderBuilder> .FillMissingOrderRowValues(new WebServiceRowFormatter <CreateOrderBuilder> .Order(order)); }
public void TestFormatFixedDiscountRowsAmountExVatAndVatPercentWithSingleVatRatePresent() { CreateOrderBuilder order = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig()) .AddOrderRow(Item.OrderRow() .SetAmountExVat(4.0M) .SetVatPercent(25) .SetQuantity(1)) .AddDiscount(Item.FixedDiscount() .SetDiscountId("0") .SetName("Tess") .SetDescription("Tester") .SetAmountExVat(1.0M) .SetVatPercent(25) .SetUnit("st")); List <OrderRow> newRows = new WebServiceRowFormatter <CreateOrderBuilder>(order).FormatRows(); OrderRow newRow = newRows[1]; Assert.That(newRow.ArticleNumber, Is.EqualTo("0")); Assert.That(newRow.Description, Is.EqualTo("Tess: Tester")); Assert.That(newRow.PricePerUnit, Is.EqualTo(-1.0M)); Assert.That(newRow.VatPercent, Is.EqualTo(25)); Assert.That(newRow.DiscountPercent, Is.EqualTo(0)); Assert.That(newRow.NumberOfUnits, Is.EqualTo(1)); Assert.That(newRow.Unit, Is.EqualTo("st")); }
public void TestFormatFixedDiscountRowsAmountExVatAndVatPercentWithDifferentVatRatesPresent() { CreateOrderBuilder order = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig()) .AddOrderRow(Item.OrderRow() .SetAmountExVat(100.00M) .SetVatPercent(25) .SetQuantity(2)) .AddOrderRow(Item.OrderRow() .SetAmountExVat(100.00M) .SetVatPercent(6) .SetQuantity(1)) .AddDiscount(Item.FixedDiscount() .SetDiscountId("42") .SetName(".SetAmountIncVat(100)") .SetDescription("testFormatFixedDiscountRowsWithDifferentVatRatesPresent") .SetAmountExVat(111) .SetVatPercent(25) .SetUnit("st")); List <OrderRow> newRows = new WebServiceRowFormatter <CreateOrderBuilder>(order).FormatRows(); // 100 @25% vat = -80 excl. vat OrderRow newRow = newRows[2]; Assert.That(newRow.ArticleNumber, Is.EqualTo("42")); Assert.That(newRow.Description, Is.EqualTo(".SetAmountIncVat(100): testFormatFixedDiscountRowsWithDifferentVatRatesPresent")); Assert.That(newRow.PricePerUnit, Is.EqualTo(-111.00M)); Assert.That(newRow.VatPercent, Is.EqualTo(25)); Assert.That(newRow.DiscountPercent, Is.EqualTo(0)); Assert.That(newRow.NumberOfUnits, Is.EqualTo(1)); Assert.That(newRow.Unit, Is.EqualTo("st")); }
public void TestFormatRelativeDiscountRowsWithSingleVatRatePresent() { CreateOrderBuilder order = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig()) .AddOrderRow(Item.OrderRow() .SetAmountExVat(100.00M) .SetVatPercent(12) .SetQuantity(1)) .AddDiscount(Item.RelativeDiscount() .SetDiscountId("0") .SetName(".SetDiscountPercent(20)") .SetDescription("TestFormatRelativeDiscountRowsWithSingleVatRatePresent") .SetDiscountPercent(20) .SetUnit("st")); List <OrderRow> newRows = new WebServiceRowFormatter <CreateOrderBuilder>(order).FormatRows(); OrderRow newRow = newRows[1]; Assert.That(newRow.ArticleNumber, Is.EqualTo("0")); Assert.That(newRow.Description, Is.EqualTo(".SetDiscountPercent(20): TestFormatRelativeDiscountRowsWithSingleVatRatePresent")); Assert.That(newRow.PricePerUnit, Is.EqualTo(-20.00M)); Assert.That(newRow.VatPercent, Is.EqualTo(12)); Assert.That(newRow.DiscountPercent, Is.EqualTo(0)); // not the same thing as in our WebPayItem... Assert.That(newRow.NumberOfUnits, Is.EqualTo(1)); Assert.That(newRow.Unit, Is.EqualTo("st")); }
public void TestFormatFixedDiscountRowsAmountExVatAndVatPercentWithDifferentVatRatesPresent() { CreateOrderBuilder order = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig()) .AddOrderRow(Item.OrderRow() .SetAmountExVat(100.00M) .SetVatPercent(25) .SetQuantity(2)) .AddOrderRow(Item.OrderRow() .SetAmountExVat(100.00M) .SetVatPercent(6) .SetQuantity(1)) .AddDiscount(Item.FixedDiscount() .SetDiscountId("42") .SetName(".SetAmountIncVat(100)") .SetDescription("testFormatFixedDiscountRowsWithDifferentVatRatesPresent") .SetAmountExVat(111) .SetVatPercent(25) .SetUnit("st")); List<OrderRow> newRows = new WebServiceRowFormatter<CreateOrderBuilder>(order).FormatRows(); // 100 @25% vat = -80 excl. vat OrderRow newRow = newRows[2]; Assert.That(newRow.ArticleNumber, Is.EqualTo("42")); Assert.That(newRow.Description, Is.EqualTo(".SetAmountIncVat(100): testFormatFixedDiscountRowsWithDifferentVatRatesPresent")); Assert.That(newRow.PricePerUnit, Is.EqualTo(-111.00M)); Assert.That(newRow.VatPercent, Is.EqualTo(25)); Assert.That(newRow.DiscountPercent, Is.EqualTo(0)); Assert.That(newRow.NumberOfUnits, Is.EqualTo(1)); Assert.That(newRow.Unit, Is.EqualTo("st")); }
public void ConvertOrderBuilderToOrder() { var orderBuilder = new CreateOrderBuilder(SveaConfig.GetDefaultConfig()); var order = WebServiceRowFormatter <CreateOrderBuilder> .ConvertToOrder(orderBuilder); Assert.That(order.Original, Is.SameAs(orderBuilder)); }
public void FillMissingValuesInconsistentThrowsExZeroIncSomething() { var order = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig()) .AddOrderRow(Item.OrderRow() .SetAmountIncVat(10M) .SetAmountExVat(0)); var result = WebServiceRowFormatter <CreateOrderBuilder> .FillMissingOrderRowValues(new WebServiceRowFormatter <CreateOrderBuilder> .Order(order)); }
public void FillMissingValuesAllValuesSetButInconsistently() { var order = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig()) .AddOrderRow(Item.OrderRow() .SetVatPercent(10) .SetAmountExVat(33) .SetAmountIncVat(110)); var result = WebServiceRowFormatter <CreateOrderBuilder> .FillMissingOrderRowValues(new WebServiceRowFormatter <CreateOrderBuilder> .Order(order)); }
public void AllPricesAreSpecifiedIncVatForSingleRowIncVat() { var orderBuilder = new CreateOrderBuilder(SveaConfig.GetDefaultConfig()); orderBuilder.AddOrderRow(Item.OrderRow().SetAmountIncVat(12.23M)); var order = new WebServiceRowFormatter <CreateOrderBuilder> .Order(orderBuilder); var resultOrder = WebServiceRowFormatter <CreateOrderBuilder> .CheckIfRowsIncVat(true)(order); Assert.That(resultOrder.AllPricesAreSpecifiedIncVat, Is.True); }
public void FillMissingValuesGivenIncAndExVatBothZero() { var order = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig()) .AddOrderRow(Item.OrderRow() .SetAmountExVat(0) .SetAmountIncVat(0)); var result = WebServiceRowFormatter <CreateOrderBuilder> .FillMissingOrderRowValues(new WebServiceRowFormatter <CreateOrderBuilder> .Order(order)); AssertVat(result, 0, 0); AssertAmountEx(result, 0, 0); AssertAmountInc(result, 0, 0); }
public void FillMissingValuesExVatIncVatAndVatGivenConsistently() { var order = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig()) .AddOrderRow(Item.OrderRow() .SetAmountIncVat(125.00M) .SetAmountExVat(100.00M) .SetVatPercent(25)); var result = WebServiceRowFormatter <CreateOrderBuilder> .FillMissingOrderRowValues(new WebServiceRowFormatter <CreateOrderBuilder> .Order(order)); AssertVat(result, 0, 25); AssertAmountEx(result, 0, 100M); AssertAmountInc(result, 0, 125M); }
public void SumByVatSingleRow() { var orderBuilder = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig()); var order = new WebServiceRowFormatter <CreateOrderBuilder> .Order(orderBuilder); order.NewOrderRows.Add(Item.OrderRow() .SetVatPercent(25) .SetQuantity(1) .SetAmountExVat(100) .SetAmountIncVat(125)); var result = WebServiceRowFormatter <CreateOrderBuilder> .CalculateOrderRowTotals(order); Assert.That(result.TotalAmountExVat, Is.EqualTo(100)); Assert.That(result.TotalAmountIncVat, Is.EqualTo(125)); Assert.That(result.TotalVatAsAmount, Is.EqualTo(25)); Assert.That(result.TotalAmountPerVatRateIncVat[25], Is.EqualTo(125)); Assert.That(result.TotalAmountPerVatRateIncVat.Keys.Count, Is.EqualTo(1)); }
public void TestFormatFixedDiscountRowsMixedItemVatSpecAmountIncVatWithDifferentVatRatesPresent() { CreateOrderBuilder order = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig()) .AddOrderRow(Item.OrderRow() .SetAmountExVat(100.00M) .SetAmountIncVat(125.00M) .SetQuantity(2)) .AddOrderRow(Item.OrderRow() .SetAmountIncVat(106.00M) .SetVatPercent(6) .SetQuantity(1)) .AddDiscount(Item.FixedDiscount() .SetDiscountId("42") .SetName(".SetAmountIncVat(100)") .SetDescription("testFormatFixedDiscountRowsWithDifferentVatRatesPresent") .SetAmountIncVat(100) .SetUnit("st")); List <OrderRow> newRows = new WebServiceRowFormatter <CreateOrderBuilder>(order).FormatRows(); Assert.That(newRows[2].ArticleNumber, Is.EqualTo("42")); // 100*250/356 = 70.22 incl. 25% vat => 14.04 vat as amount OrderRow newRow = newRows[2]; Assert.That(newRow.ArticleNumber, Is.EqualTo("42")); Assert.That(newRow.Description, Is.EqualTo(".SetAmountIncVat(100): testFormatFixedDiscountRowsWithDifferentVatRatesPresent (25%)")); Assert.That(newRow.PricePerUnit, Is.EqualTo(-70.22M)); Assert.That(newRow.VatPercent, Is.EqualTo(25)); Assert.That(newRow.DiscountPercent, Is.EqualTo(0)); Assert.That(newRow.NumberOfUnits, Is.EqualTo(1)); Assert.That(newRow.Unit, Is.EqualTo("st")); // 100*106/356 = 29.78 incl. 6% vat => 1.69 vat as amount newRow = newRows[3]; Assert.That(newRow.ArticleNumber, Is.EqualTo("42")); Assert.That(newRow.Description, Is.EqualTo(".SetAmountIncVat(100): testFormatFixedDiscountRowsWithDifferentVatRatesPresent (6%)")); Assert.That(newRow.PricePerUnit, Is.EqualTo(-29.78M)); Assert.That(newRow.VatPercent, Is.EqualTo(6)); Assert.That(newRow.DiscountPercent, Is.EqualTo(0)); Assert.That(newRow.NumberOfUnits, Is.EqualTo(1)); Assert.That(newRow.Unit, Is.EqualTo("st")); }
public void TestFormatInvoiceFeeRows() { CreateOrderBuilder order = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig()) .AddFee(Item.InvoiceFee() .SetDescription("Tester") .SetAmountExVat(4) .SetVatPercent(25) .SetUnit("st")); List <OrderRow> newRows = new WebServiceRowFormatter <CreateOrderBuilder>(order).FormatRows(); Assert.That(newRows[0].ArticleNumber, Is.Empty); Assert.That(newRows[0].Description, Is.EqualTo("Tester")); Assert.That(newRows[0].PricePerUnit, Is.EqualTo(4.0)); Assert.That(newRows[0].VatPercent, Is.EqualTo(25.0)); Assert.That(newRows[0].DiscountPercent, Is.EqualTo(0)); Assert.That(newRows[0].NumberOfUnits, Is.EqualTo(1)); Assert.That(newRows[0].Unit, Is.EqualTo("st")); }
private DeliverOrderEuRequest PrepareRequestInternal(bool useIncVatRequestIfPossible) { var errors = ValidateOrder(); if (errors.Length > 0) { throw new SveaWebPayValidationException(errors); } var formatter = new WebServiceRowFormatter <DeliverOrderBuilder>(_order, useIncVatRequestIfPossible); DeliverInvoiceDetails deliverInvoiceDetails = null; if (_order.GetOrderType() == CONST.OrderType.INVOICE) { deliverInvoiceDetails = new DeliverInvoiceDetails { InvoiceDistributionType = ConvertInvoiceDistributionType(_order.GetInvoiceDistributionType()), InvoiceIdToCredit = _order.GetCreditInvoice(), IsCreditInvoice = _order.GetCreditInvoice().HasValue, NumberOfCreditDays = _order.GetNumberOfCreditDays(), OrderRows = formatter.FormatRows().ToArray() }; } _orderInformation = new DeliverOrderInformation { DeliverInvoiceDetails = deliverInvoiceDetails, OrderType = ConvertOrderType(_order.GetOrderType()), SveaOrderId = _order.GetOrderId() }; _sveaDeliverOrder = new DeliverOrderEuRequest { Auth = GetStoreAuthorization(), DeliverOrderInformation = _orderInformation }; return(_sveaDeliverOrder); }
/// <summary> /// PrepareRequest /// </summary> /// <exception cref="SveaWebPayValidationException"></exception> /// <returns>CreateOrderEuRequest</returns> public CreateOrderEuRequest PrepareRequest() { var errors = ValidateOrder(); if (errors.Length > 0) { throw new SveaWebPayValidationException(errors); } var sveaOrder = new CreateOrderEuRequest { Auth = GetPasswordBasedAuthorization() }; var formatter = new WebServiceRowFormatter <CreateOrderBuilder>(CrOrderBuilder); List <OrderRow> formattedOrderRows = formatter.FormatRows(); // make order rows and put in CreateOrderInformation OrderInfo = new CreateOrderInformation { CustomerIdentity = CrOrderBuilder.GetSoapPurifiedCustomer(), ClientOrderNumber = CrOrderBuilder.GetClientOrderNumber(), CreatePaymentPlanDetails = CrOrderBuilder.GetCampaignCode() != null ? new CreatePaymentPlanDetails { CampaignCode = CrOrderBuilder.GetCampaignCode(), SendAutomaticGiroPaymentForm = CrOrderBuilder.GetSendAutomaticGiroPaymentForm() } : null, OrderDate = CrOrderBuilder.GetOrderDate(), CustomerReference = CrOrderBuilder.GetCustomerReference(), OrderRows = formattedOrderRows.ToArray(), PeppolId = CrOrderBuilder.GetPeppolId() }; sveaOrder.CreateOrderInformation = SetOrderType(OrderInfo); return(sveaOrder); }
public void TestFormatRelativeDiscountRowsWithDifferentVatRatesPresent() { CreateOrderBuilder order = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig()) .AddOrderRow(Item.OrderRow() .SetAmountExVat(100.00M) .SetVatPercent(25) .SetQuantity(2)) .AddOrderRow(Item.OrderRow() .SetAmountExVat(100.00M) .SetVatPercent(6) .SetQuantity(1)) .AddDiscount(Item.RelativeDiscount() .SetDiscountId("42") .SetName(".SetDiscountPercent(10)") .SetDescription("TestFormatRelativeDiscountRowsWithDifferentVatRatesPresent") .SetDiscountPercent(10) .SetUnit("st")); List <OrderRow> newRows = new WebServiceRowFormatter <CreateOrderBuilder>(order).FormatRows(); OrderRow newRow = newRows[2]; Assert.That(newRow.ArticleNumber, Is.EqualTo("42")); Assert.That(newRow.Description, Is.EqualTo(".SetDiscountPercent(10): TestFormatRelativeDiscountRowsWithDifferentVatRatesPresent (25%)")); Assert.That(newRow.PricePerUnit, Is.EqualTo(-20.00M)); Assert.That(newRow.VatPercent, Is.EqualTo(25)); Assert.That(newRow.NumberOfUnits, Is.EqualTo(1)); // 1 "discount unit" Assert.That(newRow.Unit, Is.EqualTo("st")); newRow = newRows[3]; Assert.That(newRow.ArticleNumber, Is.EqualTo("42")); Assert.That(newRow.Description, Is.EqualTo(".SetDiscountPercent(10): TestFormatRelativeDiscountRowsWithDifferentVatRatesPresent (6%)")); Assert.That(newRow.PricePerUnit, Is.EqualTo(-10.00)); Assert.That(newRow.VatPercent, Is.EqualTo(6)); Assert.That(newRow.NumberOfUnits, Is.EqualTo(1)); // 1 "discount unit" Assert.That(newRow.Unit, Is.EqualTo("st")); }
/// <summary> /// PrepareRequest /// </summary> /// <exception cref="SveaWebPayValidationException"></exception> /// <returns>SveaRequest</returns> public DeliverOrderEuRequest PrepareRequest() { var errors = ValidateOrder(); if (errors.Length > 0) { throw new SveaWebPayValidationException(errors); } var formatter = new WebServiceRowFormatter<DeliverOrderBuilder>(_order); DeliverInvoiceDetails deliverInvoiceDetails = null; if (_order.GetOrderType() == OrderType.INVOICE) { deliverInvoiceDetails = new DeliverInvoiceDetails { InvoiceDistributionType = ConvertInvoiceDistributionType(_order.GetInvoiceDistributionType()), InvoiceIdToCredit = _order.GetCreditInvoice(), IsCreditInvoice = _order.GetCreditInvoice().HasValue, NumberOfCreditDays = _order.GetNumberOfCreditDays(), OrderRows = formatter.FormatRows().ToArray() }; } _orderInformation = new DeliverOrderInformation { DeliverInvoiceDetails = deliverInvoiceDetails, OrderType = ConvertOrderType(_order.GetOrderType()), SveaOrderId = _order.GetOrderId() }; _sveaDeliverOrder = new DeliverOrderEuRequest { Auth = GetStoreAuthorization(), DeliverOrderInformation = _orderInformation }; return _sveaDeliverOrder; }
public void TestFormatRelativeDiscountRows() { CreateOrderBuilder order = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig()) .AddOrderRow(Item.OrderRow() .SetAmountExVat(4) .SetVatPercent(25) .SetQuantity(1)) .AddDiscount(Item.RelativeDiscount() .SetDiscountId("0") .SetName("Tess") .SetDescription("Tester") .SetDiscountPercent(10) .SetUnit("st")); List <OrderRow> newRows = new WebServiceRowFormatter <CreateOrderBuilder>(order).FormatRows(); Assert.That(newRows[1].ArticleNumber, Is.EqualTo("0")); Assert.That(newRows[1].Description, Is.EqualTo("Tess: Tester (25%)")); Assert.That(newRows[1].PricePerUnit, Is.EqualTo(-0.4)); Assert.That(newRows[1].VatPercent, Is.EqualTo(25)); Assert.That(newRows[1].NumberOfUnits, Is.EqualTo(1)); Assert.That(newRows[1].Unit, Is.EqualTo("st")); }
public void TestFormatFixedDiscountRows() { CreateOrderBuilder order = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig()) .AddOrderRow(Item.OrderRow() .SetAmountExVat(4) .SetVatPercent(25) .SetQuantity(1)) .AddDiscount(Item.FixedDiscount() .SetDiscountId("0") .SetName("Tess") .SetDescription("Tester") .SetAmountIncVat(1) .SetUnit("st")); List<OrderRow> newRows = new WebServiceRowFormatter<CreateOrderBuilder>(order).FormatRows(); Assert.That(newRows[1].ArticleNumber, Is.EqualTo("0")); Assert.That(newRows[1].Description, Is.EqualTo("Tess: Tester")); Assert.That(newRows[1].PricePerUnit, Is.EqualTo(-0.8M)); Assert.That(newRows[1].VatPercent, Is.EqualTo(25.0M)); Assert.That(newRows[1].DiscountPercent, Is.EqualTo(0)); Assert.That(newRows[1].NumberOfUnits, Is.EqualTo(1)); Assert.That(newRows[1].Unit, Is.EqualTo("st")); }
public void TestFormatRelativeDiscountRowsWithSingleVatRatePresent() { CreateOrderBuilder order = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig()) .AddOrderRow(Item.OrderRow() .SetAmountExVat(100.00M) .SetVatPercent(12) .SetQuantity(1)) .AddDiscount(Item.RelativeDiscount() .SetDiscountId("0") .SetName(".SetDiscountPercent(20)") .SetDescription("TestFormatRelativeDiscountRowsWithSingleVatRatePresent") .SetDiscountPercent(20) .SetUnit("st")); List<OrderRow> newRows = new WebServiceRowFormatter<CreateOrderBuilder>(order).FormatRows(); OrderRow newRow = newRows[1]; Assert.That(newRow.ArticleNumber, Is.EqualTo("0")); Assert.That(newRow.Description, Is.EqualTo(".SetDiscountPercent(20): TestFormatRelativeDiscountRowsWithSingleVatRatePresent")); Assert.That(newRow.PricePerUnit, Is.EqualTo(-20.00M)); Assert.That(newRow.VatPercent, Is.EqualTo(12)); Assert.That(newRow.DiscountPercent, Is.EqualTo(0)); // not the same thing as in our WebPayItem... Assert.That(newRow.NumberOfUnits, Is.EqualTo(1)); Assert.That(newRow.Unit, Is.EqualTo("st")); }
public void TestFormatFixedDiscountRowsMixedItemVatSpecAmountIncVatWithDifferentVatRatesPresent() { CreateOrderBuilder order = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig()) .AddOrderRow(Item.OrderRow() .SetAmountExVat(100.00M) .SetAmountIncVat(125.00M) .SetQuantity(2)) .AddOrderRow(Item.OrderRow() .SetAmountIncVat(106.00M) .SetVatPercent(6) .SetQuantity(1)) .AddDiscount(Item.FixedDiscount() .SetDiscountId("42") .SetName(".SetAmountIncVat(100)") .SetDescription("testFormatFixedDiscountRowsWithDifferentVatRatesPresent") .SetAmountIncVat(100) .SetUnit("st")); List<OrderRow> newRows = new WebServiceRowFormatter<CreateOrderBuilder>(order).FormatRows(); // 100*250/356 = 70.22 incl. 25% vat => 14.04 vat as amount OrderRow newRow = newRows[2]; Assert.That(newRow.ArticleNumber, Is.EqualTo("42")); Assert.That(newRow.Description, Is.EqualTo(".SetAmountIncVat(100): testFormatFixedDiscountRowsWithDifferentVatRatesPresent (25%)")); Assert.That(newRow.PricePerUnit, Is.EqualTo(-56.18M)); Assert.That(newRow.VatPercent, Is.EqualTo(25)); Assert.That(newRow.DiscountPercent, Is.EqualTo(0)); Assert.That(newRow.NumberOfUnits, Is.EqualTo(1)); Assert.That(newRow.Unit, Is.EqualTo("st")); // 100*106/356 = 29.78 incl. 6% vat => 1.69 vat as amount newRow = newRows[3]; Assert.That(newRow.ArticleNumber, Is.EqualTo("42")); Assert.That(newRow.Description, Is.EqualTo(".SetAmountIncVat(100): testFormatFixedDiscountRowsWithDifferentVatRatesPresent (6%)")); Assert.That(newRow.PricePerUnit, Is.EqualTo(-28.09M)); Assert.That(newRow.VatPercent, Is.EqualTo(6)); Assert.That(newRow.DiscountPercent, Is.EqualTo(0)); Assert.That(newRow.NumberOfUnits, Is.EqualTo(1)); Assert.That(newRow.Unit, Is.EqualTo("st")); }
public void TestFormatInvoiceFeeRows() { CreateOrderBuilder order = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig()) .AddFee(Item.InvoiceFee() .SetDescription("Tester") .SetAmountExVat(4) .SetVatPercent(25) .SetUnit("st")); List<OrderRow> newRows = new WebServiceRowFormatter<CreateOrderBuilder>(order).FormatRows(); Assert.That(newRows[0].ArticleNumber, Is.Empty); Assert.That(newRows[0].Description, Is.EqualTo("Tester")); Assert.That(newRows[0].PricePerUnit, Is.EqualTo(4.0)); Assert.That(newRows[0].VatPercent, Is.EqualTo(25.0)); Assert.That(newRows[0].DiscountPercent, Is.EqualTo(0)); Assert.That(newRows[0].NumberOfUnits, Is.EqualTo(1)); Assert.That(newRows[0].Unit, Is.EqualTo("st")); }
private void AssertVat(WebServiceRowFormatter <CreateOrderBuilder> .Order result, int item, int vat) { Assert.That(result.NewOrderRows[item].GetVatPercent(), Is.EqualTo(vat)); }
private void AssertAmountEx(WebServiceRowFormatter <CreateOrderBuilder> .Order result, int item, decimal amount) { Assert.That(result.NewOrderRows[item].GetAmountExVat(), Is.EqualTo(amount)); }