예제 #1
0
        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;
        }
예제 #3
0
        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"));
        }
예제 #4
0
        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"));
        }
예제 #5
0
        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);
        }
예제 #6
0
        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));
        }
예제 #7
0
        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"));
        }
예제 #9
0
        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));
        }
예제 #11
0
        /// <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);
        }
예제 #12
0
        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"));
        }
예제 #13
0
        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"));
        }
예제 #15
0
        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.
        }
예제 #17
0
        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));
        }
예제 #18
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);
        }
예제 #22
0
        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);
        }
예제 #24
0
        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));
        }
예제 #25
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.
        }
예제 #27
0
        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"));
        }