示例#1
0
        public virtual ServiceProvider.OrderSvc.Order_V01 ConvertToDistributorrOrder(InvoiceModel invoice, string memberId,
                                                                                     string countryCode, ServiceProvider.OrderSvc.Address address, string warehouseCode, string shippingMethodId, decimal discoount)
        {
            var distributorOrder = new ServiceProvider.OrderSvc.Order_V01
            {
                DistributorID       = memberId,
                CountryOfProcessing = countryCode,
                OrderMonth          = DateUtils.GetCurrentLocalTime(countryCode).ToString("yyMM"),
                InputMethod         = ServiceProvider.OrderSvc.InputMethodType.Internet,
                ReceivedDate        = DateUtils.GetCurrentLocalTime(countryCode),
                OrderCategory       = ServiceProvider.OrderSvc.OrderCategoryType.RSO,
                UseSlidingScale     = true,
                DiscountPercentage  = discoount,
                OrderItems          = new ServiceProvider.OrderSvc.OrderItems()
            };

            foreach (var distributorOrderItem in invoice.InvoiceLines.OrderByDescending(i => i.Quantity).Select(invoiceLine => new ServiceProvider.OrderSvc.OrderItem_V01
            {
                Quantity = invoiceLine.Quantity,
                SKU = invoiceLine.Sku
            }))
            {
                distributorOrder.OrderItems.Add(distributorOrderItem);
            }

            distributorOrder.Shipment = GetDistributorShippingInfo(address, warehouseCode, invoice, shippingMethodId);
            return(distributorOrder);
        }
示例#2
0
        public virtual ServiceProvider.OrderSvc.Order_V01 ConvertToOrderForModifiedPrice(InvoiceModel invoice, string memberId,
                                                                                         string countryCode, ServiceProvider.OrderSvc.Address address, string warehouseCode, string shippingMethodId)
        {
            var distributorOrder = new ServiceProvider.OrderSvc.Order_V01
            {
                DistributorID       = memberId,
                CountryOfProcessing = countryCode,
                OrderMonth          = DateUtils.GetCurrentLocalTime(countryCode).ToString("yyMM"),
                InputMethod         = ServiceProvider.OrderSvc.InputMethodType.Internet,
                ReceivedDate        = DateUtils.GetCurrentLocalTime(countryCode),
                OrderCategory       = ServiceProvider.OrderSvc.OrderCategoryType.RSO,
                UseSlidingScale     = true,
                OrderItems          = new ServiceProvider.OrderSvc.OrderItems()
            };

            foreach (var distributorOrderItem in invoice.InvoiceLines.Select(invoiceLine => new ServiceProvider.OrderSvc.OrderItem_V03
            {
                RetailPrice = invoice.Type == "Distributor" ? invoiceLine.RetailPrice : invoiceLine.EarnBase,
                Quantity = invoiceLine.Quantity,
                SKU = invoiceLine.Sku,
                DiscountAmount = (invoiceLine.RetailPrice * invoiceLine.Quantity) - (invoiceLine.CalcDiscountedAmount * invoiceLine.Quantity),
                FreightCharge = invoiceLine.FreightCharge,
                TaxCategory = invoiceLine.ProductCategory,
                StockingSKU = invoiceLine.StockingSku,
                PackageHandlingCharge = 0,
                Description = string.Empty
            }))
            {
                distributorOrder.OrderItems.Add(distributorOrderItem);
            }

            distributorOrder.Shipment = GetDistributorShippingInfo(address, warehouseCode, invoice, shippingMethodId);
            return(distributorOrder);
        }
示例#3
0
        public virtual CalculateTaxResponse CallModifiedPricing(ServiceProvider.OrderSvc.Order_V01 order)
        {
            var request = new ServiceProvider.OrderSvc.CalculateTaxRequest_V01()
            {
                Order = order
            };

            try
            {
                var proxy    = ServiceClientProvider.GetOrderServiceProxy();
                var response = proxy.CalculateTax(new CalculateTaxRequest1(request)).CalculateTaxResult;
                return(response);
            }
            catch (Exception ex)
            {
                LoggerHelper.Error(
                    string.Format(
                        "OrderService - InvoiceProvider: An error occured while Calling CalculateTax service method {0}",
                        ex.Message));
            }
            return(null);
        }
示例#4
0
 public virtual ServiceProvider.OrderSvc.OrderTotals_V01 CallDistributorPricing(ServiceProvider.OrderSvc.Order_V01 order, bool useHmsCalc)
 {
     try
     {
         string errorCode;
         return(ShoppingCartProvider.GetQuote(order, QuotePartType.Freight, useHmsCalc, out errorCode));
     }
     catch (Exception ex)
     {
         LoggerHelper.Error(
             string.Format(
                 "OrderService - InvoiceProvider: An error occured while Calling CallDistributorPricing service method {0}",
                 ex.Message));
     }
     return(null);
 }