public OrderItemEditViewModel(ListingOrderDTO item) { ItemOrderId = item.ItemOrderId; SourceItemOrderId = item.SourceItemOrderIdentifier; Quantity = item.QuantityOrdered; ListingId = item.Id; ASIN = item.ASIN; Market = item.Market; MarketplaceId = item.MarketplaceId; StyleColor = item.StyleColor; StyleSize = item.StyleSize; AvailableQuantity = item.AvailableQuantity ?? 0; StyleString = item.StyleID; StyleId = item.StyleId; StyleItemId = item.StyleItemId; SourceStyleString = item.SourceStyleString; SourceStyleItemId = item.SourceStyleItemId; SourceStyleSize = item.SourceStyleSize; SourceStyleColor = item.SourceStyleColor; NewListingId = item.Id; }
private static IEnumerable <ListingOrderDTO> GetOrdersWithItemsForPickList(IUnitOfWork db, long fbaShipmentId) { var shipmentListings = db.FBAPickListEntries.GetAllAsDto().Where(i => i.FBAPickListId == fbaShipmentId).ToList(); var listingIds = shipmentListings.Select(l => l.ListingId).ToList(); var listingInfoes = db.Listings.GetViewListingsAsDto(false).Where(l => listingIds.Contains(l.Id)).ToList(); var results = new List <ListingOrderDTO>(); foreach (var shipmentListing in shipmentListings) { var listingInfo = listingInfoes.FirstOrDefault(l => l.Id == shipmentListing.ListingId); var listing = new ListingOrderDTO() { Id = shipmentListing.Id, QuantityOrdered = shipmentListing.Quantity, ASIN = listingInfo.ASIN, ParentASIN = listingInfo.ParentASIN, SKU = listingInfo.SKU, ListingId = listingInfo.ListingId, Picture = listingInfo.ParentASIN, Size = listingInfo.Size, Color = listingInfo.Color, StyleID = listingInfo.StyleString, StyleImage = listingInfo.StyleImage, StyleSize = listingInfo.StyleSize, StyleId = listingInfo.StyleId, StyleItemId = listingInfo.StyleItemId, }; results.Add(listing); } return(results); }
public static decimal GetItemPrice(ListingOrderDTO listing) { var price = listing.ItemPrice; if (listing.QuantityOrdered != 0) { price += listing.ShippingPrice / listing.QuantityOrdered; } return(price); }
public QuantityItemViewModel(ListingOrderDTO item) { ItemOrderId = item.ItemOrderId; PictureUrl = ImageHelper.GetFirstOrDefaultPicture(item.ItemPicture); //NOTE: only Listing image, w/o style image Market = (MarketType)item.Market; MarketplaceId = item.MarketplaceId; ASIN = item.ASIN; SKU = item.SKU; ParentASIN = item.ParentASIN; StyleString = item.StyleID; Quantity = item.QuantityOrdered; Size = item.Size; }
private decimal?GetUSListingPrice(IUnitOfWork db, ListingOrderDTO item) { var styleItemId = item.SourceStyleItemId ?? item.StyleItemId; var cheapestUSListing = db.Items.GetAllViewAsDto() .Where(l => l.StyleItemId == styleItemId && l.MarketplaceId == MarketplaceKeeper.AmazonComMarketplaceId) .OrderBy(l => l.SalePrice ?? l.CurrentPrice) .FirstOrDefault(); if (cheapestUSListing != null) { var salePrice = cheapestUSListing.SalePrice ?? cheapestUSListing.CurrentPrice; if (cheapestUSListing.IsPrime) { salePrice -= AmazonPrimeHelper.GetShippingAmount(item.Weight); } return(salePrice * item.QuantityOrdered); } return(null); }
private decimal?GetUSListingPrice(IUnitOfWork db, ListingOrderDTO item) { var styleItemId = item.SourceStyleItemId ?? item.StyleItemId; var cheapestUSListing = db.Items.GetAllViewAsDto() .Where(l => l.StyleItemId == styleItemId && l.MarketplaceId == MarketplaceKeeper.AmazonComMarketplaceId) .OrderBy(l => l.CurrentPrice) .FirstOrDefault(); if (cheapestUSListing != null) { var usPrice = cheapestUSListing.SalePrice ?? cheapestUSListing.CurrentPrice; if (cheapestUSListing.IsPrime) { usPrice -= _priceService.GetPrimePart((decimal?)cheapestUSListing.Weight); } return(usPrice); } return(null); }
public ReturnQuantityItemViewModel(ListingOrderDTO item) { ItemOrderId = item.ItemOrderId; var image = item.ItemPicture; if (String.IsNullOrEmpty(image)) { image = item.StyleImage; } PictureUrl = ImageHelper.GetFirstOrDefaultPicture(image); Market = (MarketType)item.Market; MarketplaceId = item.MarketplaceId; ASIN = item.ASIN; SKU = item.SKU; ParentASIN = item.ParentASIN; StyleString = item.StyleID; ItemTitle = item.Title; Quantity = item.QuantityOrdered; Size = item.Size; DefaultLocation = item.Locations != null && item.Locations.Any() ? item.Locations.OrderByDescending(l => l.IsDefault).First() : null; PriceCurrency = PriceHelper.FormatCurrency(item.ItemPriceCurrency); ItemPrice = item.ItemPrice; ItemTax = item.ItemTax ?? 0; ItemPriceInUSD = PriceHelper.RougeConvertToUSD(PriceCurrency, item.ItemPrice); ShippingPrice = item.ShippingPrice; ShippingDiscount = item.ShippingDiscount ?? 0; ShippingTax = item.ShippingTax ?? 0; Weight = item.Weight ?? 0; StyleId = item.StyleId; StyleItemId = item.StyleItemId; InputQuantity = Quantity; InputDamagedQuantity = 0; }
private static IEnumerable <ListingOrderDTO> GetOrdersWithItemsForPickList(IUnitOfWork db, long photoshootShipmentId) { var photoshootEntries = db.PhotoshootPickListEntries.GetAllAsDto().Where(i => i.PhotoshootPickListId == photoshootShipmentId).ToList(); var styleItemIds = photoshootEntries.Select(p => p.StyleItemId).ToList(); var styleItems = db.StyleItems.GetAll().Where(si => styleItemIds.Contains(si.Id)).ToList(); var styleIds = styleItems.Select(p => p.StyleId).ToList(); var styles = db.Styles.GetAll().Where(st => styleIds.Contains(st.Id)).ToList(); var results = new List <ListingOrderDTO>(); foreach (var entry in photoshootEntries) { var styleItem = styleItems.FirstOrDefault(si => si.Id == entry.StyleItemId); var style = styles.FirstOrDefault(st => st.Id == styleItem.StyleId); var listing = new ListingOrderDTO() { Id = entry.Id, QuantityOrdered = entry.TakenQuantity, ASIN = "", ParentASIN = "", SKU = "", ListingId = "", Picture = style.Image, Size = styleItem.Size, Color = styleItem.Color, StyleID = style.StyleID, StyleImage = style.Image, StyleSize = styleItem.Size, StyleId = style.Id, StyleItemId = styleItem.Id, }; results.Add(listing); } return(results); }
private decimal?GetListingCost(IUnitOfWork db, ListingOrderDTO item) { var styleItemId = item.SourceStyleItemId ?? item.StyleItemId; return(db.StyleItemCaches.GetAll().FirstOrDefault(sic => sic.Id == styleItemId)?.Cost); }
/// <summary> /// For Named List /// </summary> /// <param name="item"></param> /// <param name="market"></param> /// <param name="isOrderOnHold"></param> /// <param name="isOrderPartial"></param> public OrderItemViewModel(ListingOrderDTO item, bool isOrderOnHold, bool isOrderPartial) { Market = item.Market; MarketplaceId = item.MarketplaceId; ListingEntityId = item.Id; ItemOrderId = item.ItemOrderId; RecordNumber = item.RecordNumber; ParentASIN = item.ParentASIN; ASIN = item.ASIN; ListingCreateDate = item.ListingCreateDate; SourceMarketId = item.SourceMarketId; OnHold = isOrderOnHold; StyleID = item.StyleID; StyleSize = item.StyleSize; Size = item.Size; Color = item.Color; StyleItemId = item.StyleItemId; SourceStyleString = item.SourceStyleString; SourceStyleSize = item.SourceStyleSize; SourceStyleColor = item.SourceStyleColor; Title = item.Title; Quantity = isOrderPartial ? item.QuantityShipped.ToString("G") + "/" + item.QuantityOrdered.ToString("G") : item.QuantityOrdered.ToString("G"); QuantityOrdered = item.QuantityOrdered; QuantityShipped = item.QuantityShipped; if (item.ItemPaid.HasValue && item.ItemPaid > 0) { ItemPrice = item.ItemPaid.Value - (item.ItemTax ?? 0); } else if (Market == (int)MarketType.eBay) { ItemPrice = item.ItemPrice * item.QuantityOrdered; } else { ItemPrice = item.ItemPrice; } RefundItemPrice = item.RefundItemPrice; ItemDiscount = item.PromotionDiscount; ItemTax = item.ItemTax; ShippingPrice = item.ShippingPrice; RefundShippingPrice = item.RefundShippingPrice; ShippingDiscount = item.ShippingDiscount; ItemPriceInUSD = item.ItemPriceInUSD; ExcessiveShipmentThreshold = StringHelper.TryGetDecimal(item.ExcessiveShipmentThreshold); FBAFee = item.FBAPerOrderFulfillmentFee + item.FBAPerUnitFulfillmentFee + item.FBAWeightBasedFee; FBAAvailableQuantity = item.AvailableQuantity; SimilarNonFBASKU = item.SimilarNonFBASKU; SimilarNonFBAPrice = item.SimilarNonFBAPrice; var image = item.ItemPicture; if (String.IsNullOrEmpty(image)) { image = item.StyleImage; } if (item.ReplaceType == (int)ItemReplaceTypes.Combined) { image = item.StyleImage; } if (item.UseStyleImage) { image = item.StyleImage; } PictureUrl = ImageHelper.GetFirstOrDefaultPicture(image); Weight = item.Weight; BayNumber = StringHelper.Substring(item.SortIsle.ToString(), 1); LocationIndex = LocationHelper.GetLocationIndex(item.SortIsle, item.SortSection, item.SortShelf); }
private static FBAPickListItemViewModel ComposeNewGroup(ListingOrderDTO item, bool hasColorVariation, Style style, IList <StyleItemDTO> styleItems) { //Add new group IList <PickListSizeInfo> allSizes = new List <PickListSizeInfo>(); //Prepare image var image = item.ItemPicture; if (String.IsNullOrEmpty(image)) { image = item.StyleImage; } var title = item.Title; if (item.SourceStyleString != item.StyleID) //NOTE: happens when item has linked style OR item style was changed { if (!String.IsNullOrEmpty(item.StyleImage)) { image = item.StyleImage; } if (style != null && !String.IsNullOrEmpty(style.Name)) { title = style.Name; } } title = SizeHelper.ExcludeSizeInfo(title); if (style != null) { allSizes = styleItems.Where(i => i.StyleId == style.Id) .Select(i => new PickListSizeInfo() { StyleSize = i.Size, StyleItemId = i.StyleItemId, Weight = i.Weight }).ToList(); } var itemPrice = item.ItemPrice; if (item.Market == (int)MarketType.Amazon || item.Market == (int)MarketType.AmazonEU || item.Market == (int)MarketType.AmazonAU) { itemPrice = item.QuantityOrdered != 0 ? item.ItemPrice / item.QuantityOrdered : 0; } var newGroup = new FBAPickListItemViewModel { StyleName = style != null ? style.Name : null, StyleId = style != null ? (long?)style.Id : null, Color = item.Color, StyleString = style != null ? style.StyleID : null, ProductName = title, Picture = image, HasColorVariation = hasColorVariation, ListingInfoes = new List <ListingInfo>() { new ListingInfo() { ASIN = item.ASIN, ParentASIN = item.ParentASIN, SourceMarketId = item.SourceMarketId, MarketplaceId = item.MarketplaceId, Market = item.Market, Quantity = item.QuantityOrdered, Rank = item.Rank, } }, SoldSizes = new List <PickListSizeInfo> { new PickListSizeInfo { Quantity = item.QuantityOrdered, Sizes = new List <string>() { item.Size }, StyleSize = item.StyleSize, StyleItemId = item.StyleItemId, Color = item.Color, Weight = item.Weight, Prices = new List <PriceInfo>() { new PriceInfo() { Price = itemPrice, Currency = PriceHelper.GetCurrencySymbol((MarketType)item.Market, item.MarketplaceId) } } } }, AllSizes = allSizes, }; return(newGroup); }
private static void UpdateExistGroup(FBAPickListItemViewModel existGroup, bool hasColorVariation, ListingOrderDTO item) { //This group always has appropriate color, only check size PickListSizeInfo existSize = null; if (hasColorVariation) { existSize = existGroup.SoldSizes.FirstOrDefault(s => s.StyleSize == item.StyleSize && s.Color == item.Color); } else { existSize = existGroup.SoldSizes.FirstOrDefault(s => s.StyleSize == item.StyleSize); } var currency = PriceHelper.GetCurrencySymbol((MarketType)item.Market, item.MarketplaceId); var itemPrice = item.ItemPrice; if (item.Market == (int)MarketType.Amazon || item.Market == (int)MarketType.AmazonEU || item.Market == (int)MarketType.AmazonAU) { itemPrice = item.QuantityOrdered != 0 ? item.ItemPrice / item.QuantityOrdered : 0; } if (existSize != null) { existSize.Quantity += item.QuantityOrdered; if (!existSize.Prices.Any(p => p.Currency == currency && Math.Abs(p.Price - itemPrice) <= 0.1M)) { existSize.Prices.Add(new PriceInfo() { Price = itemPrice, Currency = currency }); } if (existSize.Sizes.All(s => s != item.Size)) { existSize.Sizes.Add(item.Size); } } else { existGroup.SoldSizes.Add(new PickListSizeInfo { Quantity = item.QuantityOrdered, Sizes = new List <string>() { item.Size }, StyleSize = item.StyleSize, StyleItemId = item.StyleItemId, Color = item.Color, Weight = item.Weight, Prices = new List <PriceInfo>() { new PriceInfo() { Price = itemPrice, Currency = currency, } } }); } var existListing = existGroup.ListingInfoes.FirstOrDefault(l => l.ASIN == item.ASIN && l.Market == item.Market && l.MarketplaceId == item.MarketplaceId); if (existListing == null) { existGroup.ListingInfoes.Add(new ListingInfo() { ASIN = item.ASIN, ParentASIN = item.ParentASIN, SourceMarketId = item.SourceMarketId, MarketplaceId = item.MarketplaceId, Market = item.Market, Quantity = item.QuantityOrdered, Rank = item.Rank, }); } else { existListing.Quantity += item.QuantityOrdered; } }