public void TestInvoiceWithFixedDiscountWithUneavenAmount() { CreateOrderEuRequest request = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig()) .AddOrderRow(Item.OrderRow() .SetArticleNumber("1") .SetQuantity(1) .SetAmountExVat(240.00M) .SetDescription("CD") .SetVatPercent(25)) .AddDiscount(Item.FixedDiscount() .SetAmountIncVat(101.50M) .SetDescription("FixedDiscount") .SetDiscountId("1")) .AddCustomerDetails(Item.IndividualCustomer() .SetNationalIdNumber(TestingTool.DefaultTestIndividualNationalIdNumber)) .SetCountryCode(TestingTool.DefaultTestCountryCode) .SetCustomerReference(TestingTool.DefaultTestCustomerReferenceNumber) .SetOrderDate(TestingTool.DefaultTestDate) .SetCurrency(TestingTool.DefaultTestCurrency) .UseInvoicePayment() .PrepareRequest(); Assert.That(request.CreateOrderInformation.OrderRows[1].ArticleNumber, Is.EqualTo("1")); Assert.That(request.CreateOrderInformation.OrderRows[1].Description, Is.EqualTo("FixedDiscount (25%)")); Assert.That(request.CreateOrderInformation.OrderRows[1].PricePerUnit, Is.EqualTo(-81.2)); Assert.That(request.CreateOrderInformation.OrderRows[1].NumberOfUnits, Is.EqualTo(1)); Assert.That(request.CreateOrderInformation.OrderRows[1].Unit, Is.EqualTo("")); Assert.That(request.CreateOrderInformation.OrderRows[1].VatPercent, Is.EqualTo(25)); Assert.That(request.CreateOrderInformation.OrderRows[1].DiscountPercent, Is.EqualTo(0)); }
/// <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 TestInvoiceRequestObjectWithCreateOrderInformation() { CreateOrderEuRequest request = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig()) .AddOrderRow(TestingTool.CreateExVatBasedOrderRow("1")) .AddOrderRow(TestingTool.CreateExVatBasedOrderRow("2")) .AddFee(TestingTool.CreateExVatBasedShippingFee()) .AddCustomerDetails(TestingTool.CreateIndividualCustomer()) .AddCustomerDetails(Item.CompanyCustomer() .SetNationalIdNumber(TestingTool.DefaultTestCompanyNationalIdNumber) .SetAddressSelector("ad33") .SetEmail("*****@*****.**") .SetPhoneNumber("999999") .SetIpAddress("123.123.123") .SetStreetAddress("Gatan", "23") .SetCoAddress("c/o Eriksson") .SetZipCode("2222") .SetLocality("Stan")) .SetCustomerReference(TestingTool.DefaultTestCustomerReferenceNumber) .SetCountryCode(TestingTool.DefaultTestCountryCode) .SetOrderDate(TestingTool.DefaultTestDate) .SetClientOrderNumber(TestingTool.DefaultTestClientOrderNumber) .SetCurrency(TestingTool.DefaultTestCurrency) .UseInvoicePayment() .PrepareRequest(); Assert.That(request.CreateOrderInformation.OrderDate, Is.EqualTo(TestingTool.DefaultTestDate)); Assert.That(request.CreateOrderInformation.ClientOrderNumber, Is.EqualTo("33")); Assert.That(request.CreateOrderInformation.OrderType, Is.EqualTo(OrderType.Invoice)); Assert.That(request.CreateOrderInformation.CustomerReference, Is.EqualTo("ref33")); Assert.That(request.CreateOrderInformation.AddressSelector, Is.EqualTo("ad33")); }
public void TestInvoiceRequestObjectForCustomerIdentityIndividualFromNl() { CreateOrderEuRequest request = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig()) .AddOrderRow(TestingTool.CreateExVatBasedOrderRow("1")) .AddCustomerDetails(TestingTool.CreateIndividualCustomer(CountryCode.NL)) .AddOrderRow(TestingTool.CreateExVatBasedOrderRow("2")) .SetCountryCode(CountryCode.NL) .SetOrderDate(TestingTool.DefaultTestDate) .SetClientOrderNumber(TestingTool.DefaultTestClientOrderNumber) .SetCurrency(TestingTool.DefaultTestCurrency) .UseInvoicePayment() .PrepareRequest(); Assert.That(request.CreateOrderInformation.CustomerIdentity.Email, Is.EqualTo("*****@*****.**")); Assert.That(request.CreateOrderInformation.CustomerIdentity.PhoneNumber, Is.EqualTo("999999")); Assert.That(request.CreateOrderInformation.CustomerIdentity.IpAddress, Is.EqualTo("123.123.123.123")); Assert.That(request.CreateOrderInformation.CustomerIdentity.FullName, Is.EqualTo("Sneider Boasman")); Assert.That(request.CreateOrderInformation.CustomerIdentity.Street, Is.EqualTo("Gate")); Assert.That(request.CreateOrderInformation.CustomerIdentity.CoAddress, Is.EqualTo("138")); Assert.That(request.CreateOrderInformation.CustomerIdentity.ZipCode, Is.EqualTo("1102 HG")); Assert.That(request.CreateOrderInformation.CustomerIdentity.HouseNumber, Is.EqualTo("42")); Assert.That(request.CreateOrderInformation.CustomerIdentity.Locality, Is.EqualTo("BARENDRECHT")); Assert.That(request.CreateOrderInformation.CustomerIdentity.CountryCode, Is.EqualTo(CountryCode.NL.ToString().ToUpper())); Assert.That(request.CreateOrderInformation.CustomerIdentity.CustomerType, Is.EqualTo(CustomerType.Individual)); Assert.That(request.CreateOrderInformation.CustomerIdentity.IndividualIdentity.FirstName, Is.EqualTo("Sneider")); Assert.That(request.CreateOrderInformation.CustomerIdentity.IndividualIdentity.LastName, Is.EqualTo("Boasman")); Assert.That(request.CreateOrderInformation.CustomerIdentity.IndividualIdentity.Initials, Is.EqualTo("SB")); Assert.That(request.CreateOrderInformation.CustomerIdentity.IndividualIdentity.BirthDate, Is.EqualTo("19550307")); }
public void Test_CreateOrder_NO_WithAllCustomerDetailsSet_ShouldNotSetIndividualIdentity() { CreateOrderBuilder createOrderBuilder = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig()) .AddOrderRow(TestingTool.CreateExVatBasedOrderRow("1")) .AddOrderRow(TestingTool.CreateExVatBasedOrderRow("2")) .AddCustomerDetails(Item.IndividualCustomer() .SetNationalIdNumber("17054512066") // NO test individual "Ola Norrmann" // below taken from docs, not accurate .SetBirthDate("19460509") //Required for individual customers in NL and DE .SetName("Tess", "Testson") //Required for individual customers in NL and DE .SetInitials("SB") //Required for individual customers in NL .SetStreetAddress("Gatan", "23") //Required in NL and DE .SetCoAddress("c/o Eriksson") //Optional .SetZipCode("9999") //Required in NL and DE .SetLocality("Stan") //Required in NL and DE .SetPhoneNumber("999999") //Optional .SetEmail("*****@*****.**") //Optional but desirable .SetIpAddress("123.123.123") //Optional but desirable ) .SetCountryCode(CountryCode.NO) // NO .SetOrderDate(TestingTool.DefaultTestDate) .SetClientOrderNumber("33308") // NO Invoice .SetCurrency(TestingTool.DefaultTestCurrency) ; CreateOrderEuRequest request = createOrderBuilder.UseInvoicePayment().PrepareRequest(); Assert.IsNull(request.CreateOrderInformation.CustomerIdentity.IndividualIdentity); CreateOrderEuResponse order = createOrderBuilder.UseInvoicePayment().DoRequest(); Assert.IsTrue(order.Accepted); }
public void TestInvoiceRequestObjectForCustomerIdentityCompanyFromNl() { CreateOrderEuRequest request = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig()) .AddOrderRow(TestingTool.CreateExVatBasedOrderRow("1")) .AddCustomerDetails(TestingTool.CreateCompanyCustomer(CountryCode.NL)) .AddOrderRow(TestingTool.CreateExVatBasedOrderRow("2")) .SetCountryCode(CountryCode.NL) .SetOrderDate(TestingTool.DefaultTestDate) .SetClientOrderNumber(TestingTool.DefaultTestClientOrderNumber) .SetCurrency(TestingTool.DefaultTestCurrency) .UseInvoicePayment() .PrepareRequest(); Assert.That(request.CreateOrderInformation.CustomerIdentity.Email, Is.EqualTo("*****@*****.**")); Assert.That(request.CreateOrderInformation.CustomerIdentity.PhoneNumber, Is.EqualTo("999999")); Assert.That(request.CreateOrderInformation.CustomerIdentity.IpAddress, Is.EqualTo("123.123.123.123")); Assert.That(request.CreateOrderInformation.CustomerIdentity.FullName, Is.EqualTo("Svea bakkerij 123")); Assert.That(request.CreateOrderInformation.CustomerIdentity.Street, Is.EqualTo("broodstraat")); Assert.That(request.CreateOrderInformation.CustomerIdentity.CoAddress, Is.EqualTo("236")); Assert.That(request.CreateOrderInformation.CustomerIdentity.ZipCode, Is.EqualTo("1111 CD")); Assert.That(request.CreateOrderInformation.CustomerIdentity.HouseNumber, Is.EqualTo("1")); Assert.That(request.CreateOrderInformation.CustomerIdentity.Locality, Is.EqualTo("BARENDRECHT")); Assert.That(request.CreateOrderInformation.CustomerIdentity.CountryCode, Is.EqualTo(CountryCode.NL.ToString().ToUpper())); Assert.That(request.CreateOrderInformation.CustomerIdentity.CustomerType, Is.EqualTo(CustomerType.Company)); }
public void TestInvoiceRequestUsingAmountIncVatWithVatPercent() { CreateOrderEuRequest request = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig()) .AddCustomerDetails(Item.CompanyCustomer() .SetNationalIdNumber(TestingTool.DefaultTestCompanyNationalIdNumber) .SetAddressSelector("ad33") .SetEmail("*****@*****.**") .SetPhoneNumber("999999") .SetIpAddress("123.123.123") .SetStreetAddress("Gatan", "23") .SetCoAddress("c/o Eriksson") .SetZipCode("2222") .SetLocality("Stan")) .AddOrderRow(TestingTool.CreateIncVatBasedOrderRow()) .AddFee(TestingTool.CreateIncVatBasedShippingFee()) .AddFee(TestingTool.CreateIncVatBasedInvoiceFee()) .SetCountryCode(TestingTool.DefaultTestCountryCode) .SetOrderDate(TestingTool.DefaultTestDate) .SetClientOrderNumber(TestingTool.DefaultTestClientOrderNumber) .SetCurrency(TestingTool.DefaultTestCurrency) .UseInvoicePayment() .PrepareRequest(); var orderRow1 = request.CreateOrderInformation.OrderRows[0]; Assert.That(orderRow1.ArticleNumber, Is.EqualTo("1")); Assert.That(orderRow1.Description, Is.EqualTo("Prod: Specification")); Assert.That(orderRow1.PricePerUnit, Is.EqualTo(125.00M)); Assert.That(orderRow1.NumberOfUnits, Is.EqualTo(2)); Assert.That(orderRow1.Unit, Is.EqualTo("st")); Assert.That(orderRow1.VatPercent, Is.EqualTo(25)); Assert.That(orderRow1.DiscountPercent, Is.EqualTo(0)); Assert.That(orderRow1.PriceIncludingVat, Is.True); var orderRow2 = request.CreateOrderInformation.OrderRows[1]; Assert.That(orderRow2.ArticleNumber, Is.EqualTo("33")); Assert.That(orderRow2.Description, Is.EqualTo("shipping: Specification")); Assert.That(orderRow2.PricePerUnit, Is.EqualTo(62.50M)); Assert.That(orderRow2.NumberOfUnits, Is.EqualTo(1)); Assert.That(orderRow2.Unit, Is.EqualTo("st")); Assert.That(orderRow2.VatPercent, Is.EqualTo(25)); Assert.That(orderRow2.DiscountPercent, Is.EqualTo(0)); Assert.That(orderRow2.PriceIncludingVat, Is.True); var orderRow3 = request.CreateOrderInformation.OrderRows[2]; Assert.That(orderRow3.ArticleNumber, Is.EqualTo("")); Assert.That(orderRow3.Description, Is.EqualTo("Svea fee: Fee for invoice")); Assert.That(orderRow3.PricePerUnit, Is.EqualTo(62.50M)); Assert.That(orderRow3.NumberOfUnits, Is.EqualTo(1)); Assert.That(orderRow3.Unit, Is.EqualTo("st")); Assert.That(orderRow3.VatPercent, Is.EqualTo(25)); Assert.That(orderRow3.DiscountPercent, Is.EqualTo(0)); Assert.That(orderRow3.PriceIncludingVat, Is.True); }
public void TestBuildOrderWithCompanyCustomer() { CreateOrderEuRequest request = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig()) .AddOrderRow(TestingTool.CreateExVatBasedOrderRow()) .AddCustomerDetails(TestingTool.CreateCompanyCustomer()) .SetCountryCode(TestingTool.DefaultTestCountryCode) .SetCustomerReference(TestingTool.DefaultTestCustomerReferenceNumber) .SetOrderDate(TestingTool.DefaultTestDate) .SetCurrency(TestingTool.DefaultTestCurrency) .UseInvoicePayment() .PrepareRequest(); Assert.That(request.CreateOrderInformation.CustomerIdentity.NationalIdNumber, Is.EqualTo("164608142222")); }
public void TestPaymentPlanRequestObjectSpecifics() { CreateOrderEuRequest request = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig()) .AddOrderRow(TestingTool.CreateExVatBasedOrderRow()) .AddFee(TestingTool.CreateExVatBasedShippingFee()) .AddCustomerDetails(TestingTool.CreateIndividualCustomer()) .SetCountryCode(TestingTool.DefaultTestCountryCode) .SetOrderDate(TestingTool.DefaultTestDate) .SetClientOrderNumber(TestingTool.DefaultTestClientOrderNumber) .SetCurrency(TestingTool.DefaultTestCurrency) .UsePaymentPlanPayment(1337L) .PrepareRequest(); Assert.That(request.CreateOrderInformation.CreatePaymentPlanDetails.CampaignCode, Is.EqualTo(1337L)); Assert.That(request.CreateOrderInformation.CreatePaymentPlanDetails.SendAutomaticGiroPaymentForm, Is.False); }
/// <summary> /// DoRequest /// </summary> /// <exception cref="SveaWebPayValidationException"></exception> /// <returns>CreateOrderEuRequest</returns> public CreateOrderEuResponse DoRequest() { CreateOrderEuRequest request = PrepareRequest(); Soapsc = new ServiceSoapClient(new BasicHttpBinding { Name = "ServiceSoap", Security = new BasicHttpSecurity { Mode = BasicHttpSecurityMode.Transport } }, new EndpointAddress( CrOrderBuilder.GetConfig().GetEndPoint(PayType))); return(Soapsc.CreateOrderEu(request)); }
/// <summary> /// DoRequest /// </summary> /// <exception cref="SveaWebPayValidationException"></exception> /// <returns>CreateOrderEuRequest</returns> public async Task <CreateOrderEuResponse> DoRequest() { CreateOrderEuRequest request = PrepareRequest(); Soapsc = new ServiceSoapClient(new BasicHttpBinding { Name = "ServiceSoap", //Security = new BasicHttpSecurity // { // Mode = BasicHttpSecurityMode.Transport // } }, new EndpointAddress(CrOrderBuilder.GetConfig().GetEndPoint(PayType))); var createOrderEuResponse = await Soapsc.CreateOrderEuAsync(request); return(createOrderEuResponse); }
public void TestCompanyIdRequest() { CreateOrderEuRequest request = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig()) .AddOrderRow(TestingTool.CreateExVatBasedOrderRow()) .AddCustomerDetails(Item.CompanyCustomer() .SetNationalIdNumber("4354kj")) .SetCountryCode(TestingTool.DefaultTestCountryCode) .SetClientOrderNumber( TestingTool.DefaultTestClientOrderNumber) .SetOrderDate(TestingTool.DefaultTestDate) .SetCurrency(TestingTool.DefaultTestCurrency) .UseInvoicePayment() .PrepareRequest(); Assert.That(request.Auth.ClientNumber, Is.EqualTo(79021)); Assert.That(request.CreateOrderInformation.CustomerIdentity.NationalIdNumber, Is.EqualTo("4354kj")); }
public void TestInvoiceRequestObjectForCustomerIdentityCompanyFromSe() { CreateOrderEuRequest request = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig()) .AddOrderRow(TestingTool.CreateExVatBasedOrderRow("1")) .AddCustomerDetails(TestingTool.CreateMiniCompanyCustomer()) .AddOrderRow(TestingTool.CreateExVatBasedOrderRow("2")) .SetCountryCode(TestingTool.DefaultTestCountryCode) .SetOrderDate(TestingTool.DefaultTestDate) .SetClientOrderNumber(TestingTool.DefaultTestClientOrderNumber) .SetCurrency(TestingTool.DefaultTestCurrency) .UseInvoicePayment() .PrepareRequest(); Assert.That(request.CreateOrderInformation.CustomerIdentity.NationalIdNumber, Is.EqualTo("2345234")); Assert.That(request.CreateOrderInformation.CustomerIdentity.CountryCode, Is.EqualTo(CountryCode.SE.ToString().ToUpper())); Assert.That(request.CreateOrderInformation.CustomerIdentity.CustomerType, Is.EqualTo(CustomerType.Company)); }
public void TestInvoiceRequestObjectWithPeppolId() { CreateOrderEuRequest request = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig()) .AddOrderRow(TestingTool.CreateExVatBasedOrderRow("1")) .AddOrderRow(TestingTool.CreateExVatBasedOrderRow("2")) .AddCustomerDetails(Item.CompanyCustomer() .SetNationalIdNumber(TestingTool.DefaultTestCompanyNationalIdNumber) .SetIpAddress("123.123.123")) .SetCountryCode(TestingTool.DefaultTestCountryCode) .SetOrderDate(TestingTool.DefaultTestDate) .SetPeppolId("1234:asdf") .SetClientOrderNumber(TestingTool.DefaultTestClientOrderNumber) .SetCurrency(TestingTool.DefaultTestCurrency) .UseInvoicePayment() .PrepareRequest(); Assert.That(request.CreateOrderInformation.PeppolId, Is.EqualTo("1234:asdf")); }
public void TestSetAuth() { CreateOrderEuRequest request = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig()) .AddOrderRow(TestingTool.CreateExVatBasedOrderRow("1")) .AddOrderRow(TestingTool.CreateExVatBasedOrderRow("2")) .AddCustomerDetails(Item.IndividualCustomer() .SetNationalIdNumber(TestingTool.DefaultTestIndividualNationalIdNumber)) .SetCountryCode(TestingTool.DefaultTestCountryCode) .SetOrderDate(TestingTool.DefaultTestDate) .SetClientOrderNumber(TestingTool.DefaultTestClientOrderNumber) .SetCurrency(TestingTool.DefaultTestCurrency) .UseInvoicePayment() .PrepareRequest(); Assert.That(request.Auth.ClientNumber, Is.EqualTo(79021)); Assert.That(request.Auth.Username, Is.EqualTo("sverigetest")); Assert.That(request.Auth.Password, Is.EqualTo("sverigetest")); }
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 TestInvoiceRequestObjectWithFixedDiscountOnDifferentProductVat() { CreateOrderEuRequest request = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig()) .AddOrderRow(Item.OrderRow() .SetArticleNumber("1") .SetQuantity(1) .SetAmountExVat(240.00M) .SetDescription("CD") .SetVatPercent(25)) .AddOrderRow(Item.OrderRow() .SetArticleNumber("1") .SetQuantity(1) .SetAmountExVat(188.68M) .SetDescription("Bok") .SetVatPercent(6)) .AddDiscount(Item.FixedDiscount() .SetDiscountId("1") .SetAmountIncVat(100.00M) .SetDescription("FixedDiscount")) .AddCustomerDetails(TestingTool.CreateIndividualCustomer()) .AddCustomerDetails(TestingTool.CreateCompanyCustomer()) .SetCountryCode(TestingTool.DefaultTestCountryCode) .SetOrderDate(TestingTool.DefaultTestDate) .SetClientOrderNumber(TestingTool.DefaultTestClientOrderNumber) .SetCurrency(TestingTool.DefaultTestCurrency) .UseInvoicePayment() .PrepareRequest(); Assert.That(request.CreateOrderInformation.OrderRows[2].ArticleNumber, Is.EqualTo("1")); Assert.That(request.CreateOrderInformation.OrderRows[2].Description, Is.EqualTo("FixedDiscount (25%)")); Assert.That(request.CreateOrderInformation.OrderRows[3].Description, Is.EqualTo("FixedDiscount (6%)")); var combinedPrice = request.CreateOrderInformation.OrderRows[2].PricePerUnit + request.CreateOrderInformation.OrderRows[3].PricePerUnit; Assert.That(combinedPrice, Is.EqualTo(-85.74)); Assert.That(request.CreateOrderInformation.OrderRows[2].NumberOfUnits, Is.EqualTo(1)); Assert.That(request.CreateOrderInformation.OrderRows[2].VatPercent, Is.EqualTo(25)); Assert.That(request.CreateOrderInformation.OrderRows[3].VatPercent, Is.EqualTo(6)); Assert.That(request.CreateOrderInformation.OrderRows[2].DiscountPercent, Is.EqualTo(0)); }
public void Test_CreateOrder_NO_WithOnlyNationalIdNumber_ShouldNotSetIndividualIdentity() { CreateOrderBuilder createOrderBuilder = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig()) .AddOrderRow(TestingTool.CreateExVatBasedOrderRow("1")) .AddOrderRow(TestingTool.CreateExVatBasedOrderRow("2")) .AddCustomerDetails(Item.IndividualCustomer() .SetNationalIdNumber("17054512066")) // NO test individual "Ola Norrmann" .SetCountryCode(CountryCode.NO) // NO .SetOrderDate(TestingTool.DefaultTestDate) .SetClientOrderNumber("33308") // NO Invoice .SetCurrency(TestingTool.DefaultTestCurrency) ; CreateOrderEuRequest request = createOrderBuilder.UseInvoicePayment().PrepareRequest(); Assert.IsNull(request.CreateOrderInformation.CustomerIdentity.IndividualIdentity); CreateOrderEuResponse order = createOrderBuilder.UseInvoicePayment().DoRequest(); Assert.IsTrue(order.Accepted); }
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); }
public void TestBuildOrderRowList() { var orderRows = new List <OrderRowBuilder> { TestingTool.CreateExVatBasedOrderRow("1"), TestingTool.CreateExVatBasedOrderRow("2") }; CreateOrderEuRequest request = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig()) .AddOrderRows(orderRows) .AddCustomerDetails(TestingTool.CreateCompanyCustomer()) .SetCountryCode(TestingTool.DefaultTestCountryCode) .SetCustomerReference(TestingTool.DefaultTestCustomerReferenceNumber) .SetOrderDate(TestingTool.DefaultTestDate) .SetCurrency(TestingTool.DefaultTestCurrency) .UseInvoicePayment() .PrepareRequest(); Assert.That(request.CreateOrderInformation.CustomerIdentity.NationalIdNumber, Is.EqualTo("194608142222")); Assert.That(request.CreateOrderInformation.OrderRows[0].ArticleNumber, Is.EqualTo("1")); Assert.That(request.CreateOrderInformation.OrderRows[1].ArticleNumber, Is.EqualTo("2")); }
/// <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 TestInvoiceRequestUsingAmountIncVatWithAmountExVat() { CreateOrderEuRequest request = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig()) .AddOrderRow(TestingTool.CreateIncAndExVatOrderRow()) .AddFee(TestingTool.CreateIncAndExVatShippingFee()) .AddFee(TestingTool.CreateIncAndExVatInvoiceFee()) .AddCustomerDetails(Item.IndividualCustomer() .SetNationalIdNumber(TestingTool.DefaultTestIndividualNationalIdNumber)) .SetCountryCode(TestingTool.DefaultTestCountryCode) .SetOrderDate(TestingTool.DefaultTestDate) .SetCurrency(TestingTool.DefaultTestCurrency) .UseInvoicePayment() .PrepareRequest(); Assert.That(request.CreateOrderInformation.OrderRows[0].ArticleNumber, Is.EqualTo("1")); Assert.That(request.CreateOrderInformation.OrderRows[0].Description, Is.EqualTo("Prod: Specification")); Assert.That(request.CreateOrderInformation.OrderRows[0].PricePerUnit, Is.EqualTo(125.00M)); Assert.That(request.CreateOrderInformation.OrderRows[0].NumberOfUnits, Is.EqualTo(2)); Assert.That(request.CreateOrderInformation.OrderRows[0].Unit, Is.EqualTo("st")); Assert.That(request.CreateOrderInformation.OrderRows[0].VatPercent, Is.EqualTo(25)); Assert.That(request.CreateOrderInformation.OrderRows[0].DiscountPercent, Is.EqualTo(0)); Assert.That(request.CreateOrderInformation.OrderRows[1].ArticleNumber, Is.EqualTo("33")); Assert.That(request.CreateOrderInformation.OrderRows[1].Description, Is.EqualTo("shipping: Specification")); Assert.That(request.CreateOrderInformation.OrderRows[1].PricePerUnit, Is.EqualTo(62.5M)); Assert.That(request.CreateOrderInformation.OrderRows[1].NumberOfUnits, Is.EqualTo(1)); Assert.That(request.CreateOrderInformation.OrderRows[1].Unit, Is.EqualTo("st")); Assert.That(request.CreateOrderInformation.OrderRows[1].VatPercent, Is.EqualTo(25)); Assert.That(request.CreateOrderInformation.OrderRows[1].DiscountPercent, Is.EqualTo(0)); Assert.That(request.CreateOrderInformation.OrderRows[2].ArticleNumber, Is.EqualTo("")); Assert.That(request.CreateOrderInformation.OrderRows[2].Description, Is.EqualTo("Svea fee: Fee for invoice")); Assert.That(request.CreateOrderInformation.OrderRows[2].PricePerUnit, Is.EqualTo(62.5M)); Assert.That(request.CreateOrderInformation.OrderRows[2].NumberOfUnits, Is.EqualTo(1)); Assert.That(request.CreateOrderInformation.OrderRows[2].Unit, Is.EqualTo("st")); Assert.That(request.CreateOrderInformation.OrderRows[2].VatPercent, Is.EqualTo(25)); Assert.That(request.CreateOrderInformation.OrderRows[2].DiscountPercent, Is.EqualTo(0)); }
public void TestInvoiceRequestObjectForSEorderOnOneProductRow() { CreateOrderEuRequest request = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig()) .AddOrderRow(TestingTool.CreateExVatBasedOrderRow()) .AddFee(TestingTool.CreateExVatBasedShippingFee()) .AddFee(TestingTool.CreateExVatBasedInvoiceFee()) .AddCustomerDetails(TestingTool.CreateIndividualCustomer()) .SetCountryCode(TestingTool.DefaultTestCountryCode) .SetOrderDate(TestingTool.DefaultTestDate) .SetClientOrderNumber(TestingTool.DefaultTestClientOrderNumber) .SetCurrency(TestingTool.DefaultTestCurrency) .UseInvoicePayment() .PrepareRequest(); Assert.That(request.CreateOrderInformation.OrderRows[0].ArticleNumber, Is.EqualTo("1")); Assert.That(request.CreateOrderInformation.OrderRows[0].Description, Is.EqualTo("Prod: Specification")); Assert.That(request.CreateOrderInformation.OrderRows[0].PricePerUnit, Is.EqualTo(100.00)); Assert.That(request.CreateOrderInformation.OrderRows[0].NumberOfUnits, Is.EqualTo(2)); Assert.That(request.CreateOrderInformation.OrderRows[0].Unit, Is.EqualTo("st")); Assert.That(request.CreateOrderInformation.OrderRows[0].VatPercent, Is.EqualTo(25)); Assert.That(request.CreateOrderInformation.OrderRows[0].DiscountPercent, Is.EqualTo(0)); Assert.That(request.CreateOrderInformation.OrderRows[1].ArticleNumber, Is.EqualTo("33")); Assert.That(request.CreateOrderInformation.OrderRows[1].Description, Is.EqualTo("shipping: Specification")); Assert.That(request.CreateOrderInformation.OrderRows[1].PricePerUnit, Is.EqualTo(50)); Assert.That(request.CreateOrderInformation.OrderRows[1].NumberOfUnits, Is.EqualTo(1)); Assert.That(request.CreateOrderInformation.OrderRows[1].Unit, Is.EqualTo("st")); Assert.That(request.CreateOrderInformation.OrderRows[1].VatPercent, Is.EqualTo(25)); Assert.That(request.CreateOrderInformation.OrderRows[1].DiscountPercent, Is.EqualTo(0)); Assert.That(request.CreateOrderInformation.OrderRows[2].ArticleNumber, Is.EqualTo("")); Assert.That(request.CreateOrderInformation.OrderRows[2].Description, Is.EqualTo("Svea fee: Fee for invoice")); Assert.That(request.CreateOrderInformation.OrderRows[2].PricePerUnit, Is.EqualTo(50)); Assert.That(request.CreateOrderInformation.OrderRows[2].NumberOfUnits, Is.EqualTo(1)); Assert.That(request.CreateOrderInformation.OrderRows[2].Unit, Is.EqualTo("st")); Assert.That(request.CreateOrderInformation.OrderRows[2].VatPercent, Is.EqualTo(25)); Assert.That(request.CreateOrderInformation.OrderRows[2].DiscountPercent, Is.EqualTo(0)); }
public void TestIncvatOrderRowAndShippingFeesOnlyHasPriceIncludingVatTrue() { CreateOrderBuilder order = CreateOnlyIncvatOrderAndFeeRowsOrder(); 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, true); AssertEquals(request.CreateOrderInformation.OrderRows[1].PricePerUnit, 33.00); AssertEquals(request.CreateOrderInformation.OrderRows[1].VatPercent, 10); AssertEquals(request.CreateOrderInformation.OrderRows[1].PriceIncludingVat, true); // 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, true); // 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, true); // See file IntegrationTest/WebService/Payment/FixedDiscountRowsIntegrationTest for service response tests. }
public void TestFormatShippingFeeRows() { CreateOrderEuRequest request = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig()) .AddOrderRow(Item.OrderRow() .SetArticleNumber("1") .SetQuantity(2) .SetAmountExVat(100.00M) .SetDescription("Specification") .SetName("Prod") .SetVatPercent(0) .SetDiscountPercent(0)) .AddFee(Item.ShippingFee() .SetShippingId("0") .SetName("Tess") .SetDescription("Tester") .SetAmountExVat(4) .SetVatPercent(25) .SetUnit("st")) .AddCustomerDetails(Item.IndividualCustomer() .SetNationalIdNumber(TestingTool.DefaultTestIndividualNationalIdNumber)) .SetCountryCode(TestingTool.DefaultTestCountryCode) .SetOrderDate(TestingTool.DefaultTestDate) .SetClientOrderNumber(TestingTool.DefaultTestClientOrderNumber) .SetCurrency(TestingTool.DefaultTestCurrency) .SetCustomerReference(TestingTool.DefaultTestCustomerReferenceNumber) .UseInvoicePayment() .PrepareRequest(); Assert.That(request.CreateOrderInformation.OrderRows[1].ArticleNumber, Is.EqualTo("0")); Assert.That(request.CreateOrderInformation.OrderRows[1].Description, Is.EqualTo("Tess: Tester")); Assert.That(request.CreateOrderInformation.OrderRows[1].PricePerUnit, Is.EqualTo(4.0)); Assert.That(request.CreateOrderInformation.OrderRows[1].VatPercent, Is.EqualTo(25.0)); Assert.That(request.CreateOrderInformation.OrderRows[1].DiscountPercent, Is.EqualTo(0)); Assert.That(request.CreateOrderInformation.OrderRows[1].NumberOfUnits, Is.EqualTo(1)); Assert.That(request.CreateOrderInformation.OrderRows[1].Unit, Is.EqualTo("st")); }