private void CreateTestFixedDiscountRow() { _order.AddDiscount(Item.FixedDiscount() .SetDiscountId("1") .SetAmountIncVat(100.00M) .SetDescription("FixedDiscount")); }
public void TestIncvatOrderWithFixedDiscountAsExvatOnlyHasPriceIncludingVatTrue() { CreateOrderBuilder order = CreateOnlyIncvatOrderAndFeeRowsOrder(); order. AddDiscount( Item.FixedDiscount() .SetAmountExVat(10.0M) .SetDiscountId("fixedDiscount") .SetName("fixedDiscount: 10e") ) ; const bool expectPriceIncludingVatTrue = true; CreateOrderEuRequest request = order.UseInvoicePayment().PrepareRequest(); // all order rows AssertEquals(request.CreateOrderInformation.OrderRows[0].PricePerUnit, 72.00); AssertEquals(request.CreateOrderInformation.OrderRows[0].VatPercent, 20); AssertEquals(request.CreateOrderInformation.OrderRows[0].PriceIncludingVat, expectPriceIncludingVatTrue); AssertEquals(request.CreateOrderInformation.OrderRows[1].PricePerUnit, 33.00); AssertEquals(request.CreateOrderInformation.OrderRows[1].VatPercent, 10); AssertEquals(request.CreateOrderInformation.OrderRows[1].PriceIncludingVat, expectPriceIncludingVatTrue); // all shipping fee rows AssertEquals(request.CreateOrderInformation.OrderRows[2].PricePerUnit, 17.60); AssertEquals(request.CreateOrderInformation.OrderRows[2].VatPercent, 10); AssertEquals(request.CreateOrderInformation.OrderRows[2].PriceIncludingVat, expectPriceIncludingVatTrue); // all invoice fee rows AssertEquals(request.CreateOrderInformation.OrderRows[3].PricePerUnit, 8.80); AssertEquals(request.CreateOrderInformation.OrderRows[3].VatPercent, 10); AssertEquals(request.CreateOrderInformation.OrderRows[3].PriceIncludingVat, expectPriceIncludingVatTrue); // all discount rows // expected: fixedDiscount: 10 exvat => split across 10*60/(60+30) @20% => 6.6666...7*1.20=8 and 10*30/(60+30) @10% => 3.33333...*1.20 AssertEquals(request.CreateOrderInformation.OrderRows[4].PricePerUnit, -8); //=WS AssertEquals(request.CreateOrderInformation.OrderRows[4].VatPercent, 20); AssertEquals(request.CreateOrderInformation.OrderRows[4].PriceIncludingVat, expectPriceIncludingVatTrue); AssertEquals(request.CreateOrderInformation.OrderRows[5].PricePerUnit, -3.67); //=WS AssertEquals(request.CreateOrderInformation.OrderRows[5].VatPercent, 10); AssertEquals(request.CreateOrderInformation.OrderRows[5].PriceIncludingVat, expectPriceIncludingVatTrue); // See file IntegrationTest/WebService/Payment/FixedDiscountRowsIntegrationTest for service response tests. }
public void TestMixedOrderWithFixedDiscountAsIncvatOnlyHasPriceIncludingVatFalse() { CreateOrderBuilder order = CreateMixedExvatAndIncvatOrderAndFeeRowsOrder(); order. AddDiscount( Item.FixedDiscount() .SetAmountIncVat(10.0M) //.SetVatPercent(10) .SetDiscountId("fixedDiscount") .SetName("fixedDiscount: 10i") ) ; CreateOrderEuRequest request = order.UseInvoicePayment().PrepareRequest(); // all order rows AssertEquals(request.CreateOrderInformation.OrderRows[0].PricePerUnit, 60.00); AssertEquals(request.CreateOrderInformation.OrderRows[0].VatPercent, 20); AssertEquals(request.CreateOrderInformation.OrderRows[0].PriceIncludingVat, false); AssertEquals(request.CreateOrderInformation.OrderRows[1].PricePerUnit, 30.00); AssertEquals(request.CreateOrderInformation.OrderRows[1].VatPercent, 10); AssertEquals(request.CreateOrderInformation.OrderRows[1].PriceIncludingVat, false); // all shipping fee rows AssertEquals(request.CreateOrderInformation.OrderRows[2].PricePerUnit, 16.00); AssertEquals(request.CreateOrderInformation.OrderRows[2].VatPercent, 10); AssertEquals(request.CreateOrderInformation.OrderRows[2].PriceIncludingVat, false); // all invoice fee rows AssertEquals(request.CreateOrderInformation.OrderRows[3].PricePerUnit, 8.00); AssertEquals(request.CreateOrderInformation.OrderRows[3].VatPercent, 10); AssertEquals(request.CreateOrderInformation.OrderRows[3].PriceIncludingVat, false); // all discount rows // expected: fixedDiscount: 10 incvat => split across 10i *(72/72+33) @20% + 10i *(33/72+33) @10% => 6.8571i @20% + 3.1428i @10% =>5.71 + 2.86 AssertEquals(request.CreateOrderInformation.OrderRows[4].PricePerUnit, -5.71); //=WS AssertEquals(request.CreateOrderInformation.OrderRows[4].VatPercent, 20); AssertEquals(request.CreateOrderInformation.OrderRows[4].PriceIncludingVat, false); AssertEquals(request.CreateOrderInformation.OrderRows[5].PricePerUnit, -2.86); //=WS AssertEquals(request.CreateOrderInformation.OrderRows[5].VatPercent, 10); AssertEquals(request.CreateOrderInformation.OrderRows[5].PriceIncludingVat, false); // See file IntegrationTest/WebService/Payment/FixedDiscountRowsIntegrationTest for service response tests. }
public void TestIncvatOrderWithFixedDiscountAsExvatAndVatpercentHasPriceIncludingVatFalse() { CreateOrderBuilder order = CreateOnlyIncvatOrderAndFeeRowsOrder(); order. AddDiscount( Item.FixedDiscount() .SetAmountExVat(10.0M) .SetVatPercent(10) .SetDiscountId("fixedDiscount") .SetName("fixedDiscount: 10e@10%") ) ; const bool expectingPricesIncludingVatFalse = true; CreateOrderEuRequest request = order.UseInvoicePayment().PrepareRequest(); // all order rows AssertEquals(request.CreateOrderInformation.OrderRows[0].PricePerUnit, 72.00); AssertEquals(request.CreateOrderInformation.OrderRows[0].VatPercent, 20); AssertEquals(request.CreateOrderInformation.OrderRows[0].PriceIncludingVat, expectingPricesIncludingVatFalse); AssertEquals(request.CreateOrderInformation.OrderRows[1].PricePerUnit, 33.00); AssertEquals(request.CreateOrderInformation.OrderRows[1].VatPercent, 10); AssertEquals(request.CreateOrderInformation.OrderRows[1].PriceIncludingVat, expectingPricesIncludingVatFalse); // all shipping fee rows AssertEquals(request.CreateOrderInformation.OrderRows[2].PricePerUnit, 17.60); AssertEquals(request.CreateOrderInformation.OrderRows[2].VatPercent, 10); AssertEquals(request.CreateOrderInformation.OrderRows[2].PriceIncludingVat, expectingPricesIncludingVatFalse); // all invoice fee rows AssertEquals(request.CreateOrderInformation.OrderRows[3].PricePerUnit, 8.80); AssertEquals(request.CreateOrderInformation.OrderRows[3].VatPercent, 10); AssertEquals(request.CreateOrderInformation.OrderRows[3].PriceIncludingVat, expectingPricesIncludingVatFalse); // all discount rows // expected: fixedDiscount: 10exvat @10% = -11.0M0 AssertEquals(request.CreateOrderInformation.OrderRows[4].PricePerUnit, -11.0M); AssertEquals(request.CreateOrderInformation.OrderRows[4].VatPercent, 10); AssertEquals(request.CreateOrderInformation.OrderRows[4].PriceIncludingVat, expectingPricesIncludingVatFalse); Assert.That(request.CreateOrderInformation.OrderRows.Length, Is.EqualTo(5)); // See file IntegrationTest/WebService/Payment/FixedDiscountRowsIntegrationTest for service response tests. }
public void TestMixedOrderWithFixedDiscountAsExvatOnlyHasPriceIncludingVatFalse() { CreateOrderBuilder order = CreateMixedExvatAndIncvatOrderAndFeeRowsOrder(); order. AddDiscount( Item.FixedDiscount() .SetAmountExVat(10.0M) //.SetVatPercent(10) .SetDiscountId("fixedDiscount") .SetName("fixedDiscount: 10e") ); CreateOrderEuRequest request = order.UseInvoicePayment().PrepareRequest(); // all order rows AssertEquals(request.CreateOrderInformation.OrderRows[0].PricePerUnit, 60.00); AssertEquals(request.CreateOrderInformation.OrderRows[0].VatPercent, 20); AssertEquals(request.CreateOrderInformation.OrderRows[0].PriceIncludingVat, false); AssertEquals(request.CreateOrderInformation.OrderRows[1].PricePerUnit, 30.00); AssertEquals(request.CreateOrderInformation.OrderRows[1].VatPercent, 10); AssertEquals(request.CreateOrderInformation.OrderRows[1].PriceIncludingVat, false); // all shipping fee rows AssertEquals(request.CreateOrderInformation.OrderRows[2].PricePerUnit, 16.00); AssertEquals(request.CreateOrderInformation.OrderRows[2].VatPercent, 10); AssertEquals(request.CreateOrderInformation.OrderRows[2].PriceIncludingVat, false); // all invoice fee rows AssertEquals(request.CreateOrderInformation.OrderRows[3].PricePerUnit, 8.00); AssertEquals(request.CreateOrderInformation.OrderRows[3].VatPercent, 10); AssertEquals(request.CreateOrderInformation.OrderRows[3].PriceIncludingVat, false); // all discount rows // expected: fixedDiscount: 10 exvat => split across 10e *(60/60+30) @20% + 10e *(30/60+30) @10% => 6.67e @20% + 3.33e @10% AssertEquals(request.CreateOrderInformation.OrderRows[4].PricePerUnit, -6.67); //=WS AssertEquals(request.CreateOrderInformation.OrderRows[4].VatPercent, 20); AssertEquals(request.CreateOrderInformation.OrderRows[4].PriceIncludingVat, false); AssertEquals(request.CreateOrderInformation.OrderRows[5].PricePerUnit, -3.33); //=WS AssertEquals(request.CreateOrderInformation.OrderRows[5].VatPercent, 10); AssertEquals(request.CreateOrderInformation.OrderRows[5].PriceIncludingVat, false); }