public void TestDeliverInvoice()
        {
            DeliverOrderEuRequest request = null;

            Assert.DoesNotThrow(() =>
            {
                request = _order.AddOrderRow(TestingTool.CreateExVatBasedOrderRow())
                          .AddFee(TestingTool.CreateExVatBasedShippingFee())
                          .AddDiscount(Item.FixedDiscount()
                                       .SetAmountIncVat(10))
                          .SetInvoiceDistributionType(InvoiceDistributionType.POST)
                          .SetOrderId(54086L)
                          .SetNumberOfCreditDays(1)
                          .SetCreditInvoice(117L)
                          .SetCountryCode(TestingTool.DefaultTestCountryCode)
                          .DeliverInvoiceOrder()
                          .PrepareRequest();
            }
                                );
            //First order row is a product

            var invoiceDetails = request.DeliverOrderInformation.DeliverInvoiceDetails;

            var firstOrderRow = invoiceDetails.OrderRows[0];

            // First row
            Assert.That(firstOrderRow.ArticleNumber, Is.EqualTo("1"));
            Assert.That(firstOrderRow.Description, Is.EqualTo("Prod: Specification"));
            Assert.That(firstOrderRow.PricePerUnit, Is.EqualTo(100.00M));

            Assert.That(request.DeliverOrderInformation.DeliverInvoiceDetails.OrderRows[0].NumberOfUnits, Is.EqualTo(2));
            Assert.That(request.DeliverOrderInformation.DeliverInvoiceDetails.OrderRows[0].Unit, Is.EqualTo("st"));
            Assert.That(request.DeliverOrderInformation.DeliverInvoiceDetails.OrderRows[0].VatPercent, Is.EqualTo(25));
            Assert.That(request.DeliverOrderInformation.DeliverInvoiceDetails.OrderRows[0].DiscountPercent, Is.EqualTo(0));

            //Second order row is shipment
            Assert.That(request.DeliverOrderInformation.DeliverInvoiceDetails.OrderRows[1].ArticleNumber, Is.EqualTo("33"));
            Assert.That(request.DeliverOrderInformation.DeliverInvoiceDetails.OrderRows[1].Description, Is.EqualTo("shipping: Specification"));
            Assert.That(request.DeliverOrderInformation.DeliverInvoiceDetails.OrderRows[1].PricePerUnit, Is.EqualTo(50));
            Assert.That(request.DeliverOrderInformation.DeliverInvoiceDetails.OrderRows[1].NumberOfUnits, Is.EqualTo(1));
            Assert.That(request.DeliverOrderInformation.DeliverInvoiceDetails.OrderRows[1].Unit, Is.EqualTo("st"));
            Assert.That(request.DeliverOrderInformation.DeliverInvoiceDetails.OrderRows[1].VatPercent, Is.EqualTo(25));
            Assert.That(request.DeliverOrderInformation.DeliverInvoiceDetails.OrderRows[1].DiscountPercent, Is.EqualTo(0));
            //discount
            Assert.That(request.DeliverOrderInformation.DeliverInvoiceDetails.OrderRows[2].PricePerUnit, Is.EqualTo(-8.0));

            Assert.That(request.DeliverOrderInformation.DeliverInvoiceDetails.NumberOfCreditDays, Is.EqualTo(1));

            Assert.That(invoiceDetails.InvoiceDistributionType, Is.EqualTo(WebpayWS.InvoiceDistributionType.Post));


            Assert.That(request.DeliverOrderInformation.DeliverInvoiceDetails.IsCreditInvoice, Is.True);
            Assert.That(request.DeliverOrderInformation.DeliverInvoiceDetails.InvoiceIdToCredit, Is.EqualTo(117L));
            Assert.That(request.DeliverOrderInformation.SveaOrderId, Is.EqualTo(54086L));
            Assert.That(request.DeliverOrderInformation.OrderType, Is.EqualTo(OrderType.Invoice));
        }
Example #2
0
        public void TestDeliverPaymentPlanOrder()
        {
            DeliverOrderEuRequest request = _order
                                            .SetOrderId(54086L)
                                            .SetCountryCode(TestingTool.DefaultTestCountryCode)
                                            .DeliverPaymentPlanOrder()
                                            .PrepareRequest();

            Assert.That(request.DeliverOrderInformation.SveaOrderId, Is.EqualTo(54086L));
            Assert.That(request.DeliverOrderInformation.OrderType, Is.EqualTo(OrderType.PaymentPlan));
        }
        public void test_deliverOrder_deliverInvoiceOrder_with_order_rows_goes_against_DeliverOrderEU()
        {
            var fakeSveaOrderId           = 987654;
            DeliverOrderEuRequest request = WebpayConnection.DeliverOrder(SveaConfig.GetDefaultConfig())
                                            .AddOrderRow(TestingTool.CreateExVatBasedOrderRow("1"))
                                            .SetOrderId(fakeSveaOrderId)
                                            .SetCountryCode(CountryCode.SE)
                                            .SetInvoiceDistributionType(DistributionType.POST)
                                            .DeliverInvoiceOrder()
                                            .PrepareRequest()
            ;

            Assert.IsInstanceOf <DeliverOrderEuRequest>(request);
        }
Example #4
0
        private async Task <DeliverOrderEuResponse> DoRequestInternal(DeliverOrderEuRequest request)
        {
            _soapsc = new ServiceSoapClient(new BasicHttpBinding
            {
                Name = "ServiceSoap",
                //Security =  new BasicHttpSecurity
                //    {
                //        Mode = BasicHttpSecurityMode.Transport
                //    }
            },
                                            new EndpointAddress(
                                                _order.GetConfig()
                                                .GetEndPoint(_order.GetOrderType() == CONST.OrderType.INVOICE
                                        ? PaymentType.INVOICE
                                        : PaymentType.PAYMENTPLAN)));

            var deliverOrderEuResponse = await _soapsc.DeliverOrderEuAsync(request);

            return(deliverOrderEuResponse);
        }
Example #5
0
        private DeliverOrderEuResponse DoRequestInternal(DeliverOrderEuRequest request)
        {
            _soapsc = new ServiceSoapClient(new BasicHttpBinding
            {
                Name     = "ServiceSoap",
                Security = new BasicHttpSecurity
                {
                    Mode = BasicHttpSecurityMode.Transport
                }
            },
                                            new EndpointAddress(
                                                _order.GetConfig()
                                                .GetEndPoint(_order.GetOrderType() == OrderType.INVOICE
                                                                       ? PaymentType.INVOICE
                                                                       : PaymentType.PAYMENTPLAN)))
            ;

            var deliverOrderEuResponse = _soapsc.DeliverOrderEu(request);

            return(deliverOrderEuResponse);
        }
Example #6
0
        private DeliverOrderEuRequest PrepareRequestInternal(bool useIncVatRequestIfPossible)
        {
            var errors = ValidateOrder();

            if (errors.Length > 0)
            {
                throw new SveaWebPayValidationException(errors);
            }

            var formatter = new WebServiceRowFormatter <DeliverOrderBuilder>(_order, useIncVatRequestIfPossible);

            DeliverInvoiceDetails deliverInvoiceDetails = null;

            if (_order.GetOrderType() == CONST.OrderType.INVOICE)
            {
                deliverInvoiceDetails = new DeliverInvoiceDetails
                {
                    InvoiceDistributionType = ConvertInvoiceDistributionType(_order.GetInvoiceDistributionType()),
                    InvoiceIdToCredit       = _order.GetCreditInvoice(),
                    IsCreditInvoice         = _order.GetCreditInvoice().HasValue,
                    NumberOfCreditDays      = _order.GetNumberOfCreditDays(),
                    OrderRows = formatter.FormatRows().ToArray()
                };
            }

            _orderInformation = new DeliverOrderInformation
            {
                DeliverInvoiceDetails = deliverInvoiceDetails,
                OrderType             = ConvertOrderType(_order.GetOrderType()),
                SveaOrderId           = _order.GetOrderId()
            };

            _sveaDeliverOrder = new DeliverOrderEuRequest
            {
                Auth = GetStoreAuthorization(),
                DeliverOrderInformation = _orderInformation
            };

            return(_sveaDeliverOrder);
        }
        /// <summary>
        /// PrepareRequest
        /// </summary>
        /// <exception cref="SveaWebPayValidationException"></exception>
        /// <returns>SveaRequest</returns>
        public DeliverOrderEuRequest PrepareRequest()
        {
            var errors = ValidateOrder();
            if (errors.Length > 0)
            {
                throw new SveaWebPayValidationException(errors);
            }

            var formatter = new WebServiceRowFormatter<DeliverOrderBuilder>(_order);

            DeliverInvoiceDetails deliverInvoiceDetails = null;
            if (_order.GetOrderType() == OrderType.INVOICE)
            {
                deliverInvoiceDetails = new DeliverInvoiceDetails
                    {
                        InvoiceDistributionType = ConvertInvoiceDistributionType(_order.GetInvoiceDistributionType()),
                        InvoiceIdToCredit = _order.GetCreditInvoice(),
                        IsCreditInvoice = _order.GetCreditInvoice().HasValue,
                        NumberOfCreditDays = _order.GetNumberOfCreditDays(),
                        OrderRows = formatter.FormatRows().ToArray()
                    };
            }

            _orderInformation = new DeliverOrderInformation
                {
                    DeliverInvoiceDetails = deliverInvoiceDetails,
                    OrderType = ConvertOrderType(_order.GetOrderType()),
                    SveaOrderId = _order.GetOrderId()
                };

            _sveaDeliverOrder = new DeliverOrderEuRequest
                {
                    Auth = GetStoreAuthorization(),
                    DeliverOrderInformation = _orderInformation
                };

            return _sveaDeliverOrder;
        }