public static PrintLabelResult GenerateLabel( IUnitOfWork db, ILabelService labelService, IWeightService weightService, IShippingService shippingService, MailViewModel model, DateTime when, long?by) { var shippingMethod = db.ShippingMethods.GetByIdAsDto(model.ShippingMethodSelected.Value); var orderItems = model.Items.Select(i => i.GetItemDto()).ToList() ?? new List <DTOOrderItem>(); //Fill with additional data MailViewModel.FillItemsWithAdditionalInfo(db, weightService, model.OrderID, orderItems); var mailInfo = new MailLabelDTO { FromAddress = model.FromAddress.GetAddressDto(), ToAddress = model.ToAddress.GetAddressDto(), Notes = model.Notes, Instructions = model.Instructions, OrderId = model.OrderID, WeightLb = model.WeightLb, WeightOz = model.WeightOz, PackageHeight = model.PackageHeight, PackageLength = model.PackageLength, PackageWidth = model.PackageWidth, IsAddressSwitched = model.IsAddressSwitched, IsUpdateRequired = model.UpdateAmazon, IsCancelCurrentOrderLabel = model.CancelCurrentOrderLabel, IsInsured = model.IsInsured, IsSignConfirmation = model.IsSignConfirmation, TotalPrice = model.TotalPrice, TotalPriceCurrency = model.TotalPriceCurrency, ShippingMethod = shippingMethod, ShipmentProviderType = shippingMethod.ShipmentProviderType, Items = orderItems, MarketplaceCode = model.MarketplaceCode, Reason = model.ReasonCode ?? 0, BoughtInTheCountry = MarketBaseHelper.GetMarketCountry((MarketType)model.Market, model.MarketplaceId), }; return(labelService.PrintMailLabel(db, shippingService, mailInfo, when, by, AppSettings.LabelDirectory, AppSettings.TemplateDirectory, AppSettings.IsSampleLabels)); }
public void TestGetLabel(string orderId) { var weightService = new WeightService(); var companyAddress = new CompanyAddressService(_company); using (var db = _dbFactory.GetRWDb()) { var order = db.ItemOrderMappings.GetOrderWithItems(weightService, orderId, unmaskReferenceStyle: false, includeSourceItems: true); var shippingService = ShippingUtils.InitialShippingServiceIncludeUpgrade(order.InitialServiceType, order.UpgradeLevel); //order.ShippingService var orderItemInfoes = OrderHelper.BuildAndGroupOrderItems(order.Items); var sourceOrderItemInfoes = OrderHelper.BuildAndGroupOrderItems(order.SourceItems); var serviceFactory = new ServiceFactory(); var rateProviders = serviceFactory.GetShipmentProviders(_log, _time, _dbFactory, weightService, _company.ShipmentProviderInfoList, AppSettings.DefaultCustomType, AppSettings.LabelDirectory, AppSettings.LabelDirectory, AppSettings.LabelDirectory); var fimsProvider = rateProviders.FirstOrDefault(r => r.Type == ShipmentProviderType.FIMS); //var rates = fedexRateProvider.GetLocalRate( // companyAddress.GetReturnAddress(order.GetMarketId()), // companyAddress.GetPickupAddress(order.GetMarketId()), // order.GetAddressDto(), // _time.GetAppNowTime(), // order.WeightD, // order.IsInsured ? order.TotalPrice : 0, // order.IsSignConfirmation, // new OrderRateInfo() // { // ShippingService = shippingService, // InitialServiceType = order.InitialServiceType, // OrderNumber = order.OrderId, // Items = orderItemInfoes, // SourceItems = sourceOrderItemInfoes, // TotalPrice = order.TotalPrice, // Currency = order.TotalPriceCurrency, // }, // RetryModeType.Normal); var shipmentInfo = new OrderShippingInfoDTO() { OrderAmazonId = order.OrderId, WeightD = order.WeightD, IsInsured = order.IsInsured, TotalPrice = order.TotalPrice, TotalPriceCurrency = order.TotalPriceCurrency, IsSignConfirmation = order.IsSignConfirmation, Items = orderItemInfoes.Select(oi => new DTOOrderItem() { ItemOrderId = oi.ItemOrderId, ItemPrice = oi.ItemPrice, Weight = oi.Weight, Quantity = oi.Quantity, }).ToList(), ShippingMethod = new ShippingMethodDTO() { }, }; var shipDate = db.Dates.GetOrderShippingDate(null); var boughtInTheCountry = MarketBaseHelper.GetMarketCountry((MarketType)order.Market, order.MarketplaceId); //var callResult = labelProvider.CreateShipment(shipmentInfo, // returnAddress, // pickupAddress, // toAddress, // shipDate.Date, // model.Notes, // !model.ShippingMethod.IsSupportReturnToPOBox, // sampleMode, // fromUI: true); var labels = fimsProvider.CreateShipment( shipmentInfo, companyAddress.GetReturnAddress(order.GetMarketId()), companyAddress.GetPickupAddress(order.GetMarketId()), order.GetAddressDto(), boughtInTheCountry, shipDate, "", false, false, false); _log.Info("Labels: " + labels.Data.LabelFileList.Count); } }