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
{
}
}