using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace CAPI.Custom.Entities { public static class QuoteBuyoutSupplierExtensions { public static bool IsQuoteReceived(this QuoteBuyoutSupplier entity) { return BuyoutStatus.QuoteReceived == entity.Status; } } public static class QuoteItemsExtensions { public static QuoteItem FillFrom(this QuoteItem quoteItem, InventoryItemResult inventoryItem) { //quoteItem.ParentSurfaceItemId = quoteId; quoteItem.UniqueNumber = inventoryItem.UniqueNumber; quoteItem.MasterPartNumber = inventoryItem.MasterNumber; quoteItem.BinLocation = inventoryItem.BinLocation; quoteItem.Brand = inventoryItem.Brand; quoteItem.Category = inventoryItem.Category; quoteItem.Condition = inventoryItem.Condition; quoteItem.CostPrice = inventoryItem.AverageCost; quoteItem.Description = inventoryItem.Description; quoteItem.LeadTime = "STOCK"; //quoteItem.QuoteItems_QuoteItems_QuoteItemsMargin = margin; quoteItem.MinorCode = inventoryItem.MinorCode; quoteItem.PartNumber = inventoryItem.PartNumber; quoteItem.QuantityAvailable = inventoryItem.Available; quoteItem.QuantitySelected = 0; //quoteItem.QuoteItems_QuoteItems_QuoteItemsSellingPrice = sellingPrice; quoteItem.Sequence = 0; quoteItem.Subcategory = inventoryItem.SubCategory; quoteItem.Supplier = "INVENTORY"; quoteItem.SupplierCurrency = "ZAR"; quoteItem.SupplierSequence = 0; quoteItem.WarehouseLocation = inventoryItem.WarehouseLocation; quoteItem.WeightKG = inventoryItem.WeightKG; return quoteItem; } } public static class QuoteItemsFinalExtensions { /// /// Map RequestItem properties to FinalItem /// /// /// /// public static QuoteItemsFinal FillFrom(this QuoteItemsFinal finalItem, QuoteRequestItem requestItem) { finalItem.AdditionalDescription = requestItem.AdditionalDescription; // TODO: we using this field? finalItem.DimensionalDescription = string.Empty; finalItem.Sequence = requestItem.Sequence.GetValueOrDefault(); return finalItem; } /// /// Map QuoteItem properties to FinalItem /// /// /// /// public static QuoteItemsFinal FillFrom(this QuoteItemsFinal finalItem, QuoteItem quoteItem) { decimal totalPrizeZAR = quoteItem.SellingPrice.GetValueOrDefault() * quoteItem.QuantitySelected.GetValueOrDefault(); finalItem.Brand = quoteItem.Brand; finalItem.Category = quoteItem.Category; finalItem.Condition = quoteItem.Condition; finalItem.Description = quoteItem.Description; finalItem.DimensionalDescription = string.Empty; //TODO finalItem.LeadTime = quoteItem.LeadTime; finalItem.MasterPartNumber = quoteItem.MasterPartNumber; finalItem.MinorCode = quoteItem.MinorCode; finalItem.PartNumber = quoteItem.PartNumber; finalItem.QuantityAvailable = quoteItem.QuantityAvailable.GetValueOrDefault(); finalItem.QuantityRequired = quoteItem.QuantitySelected.GetValueOrDefault(); finalItem.SubCategory = quoteItem.Subcategory; finalItem.TotalPriceZAR = totalPrizeZAR; finalItem.UniqueNumber = quoteItem.UniqueNumber; finalItem.UnitPriceZAR = quoteItem.SellingPrice.GetValueOrDefault(); finalItem.WeightKG = quoteItem.WeightKG.GetValueOrDefault(); finalItem.QuoteItemsLink = quoteItem.itemID; finalItem.Supplier = quoteItem.Supplier; finalItem.Location = quoteItem.BinLocation; finalItem.WarehouseLocation = quoteItem.WarehouseLocation; return finalItem; } } public static class QuoteRequestItemsExtensions { public static QuoteRequestItem GetMatchingRequestItem(this QuoteItem quoteItem, IEnumerable requestItems) { return requestItems.Where(p => p.isActive.Value && (quoteItem.MasterPartNumber == p.MasterNumber || quoteItem.PartNumber == p.PartNumber) ).OrderByDescending(p => p.recId) .FirstOrDefault(); } public static bool MasterOrPartNumbersMatch(this QuoteRequestItem requestItem, QuoteItem quoteItem) { bool masterMatches = requestItem.MasterNumber == quoteItem.MasterPartNumber; bool partMatches = requestItem.PartNumber == quoteItem.PartNumber; return masterMatches || partMatches; } } public static class SurfaceModulePickListExtensions { } }