Dynamics Retail Discount Interface – IDiscountUsingMarginalValueRanking
We have talked about marginal value ranking algorithm as a backup plan for dynamic programming best deal algorithm. IDiscountUsingMarginalValueRanking
is the interface that the discount needs to implement.
public interface IDiscountUsingMarginalValueRanking
{
/// <summary>
/// Gets the discount deal estimate.
/// </summary>
/// <param name="discountableItemGroups">The valid sales line items on the transaction to consider.</param>
/// <param name="remainingQuantities">The remaining quantities of each of the sales lines to consider.</param>
/// <param name="appliedDiscountApplications">Applied discount applications.</param>
/// <param name="itemsWithOverlappingDiscounts">Items with overlapping discounts.</param>
/// <param name="itemsWithOverlappingDiscountsCompoundedOnly">Hash set of overlapped item group indices, compounded only.</param>
/// <param name="priceContext">Price Context.</param>
/// <returns>Discount deal estimate.</returns>
DiscountDealEstimate GetDiscountDealEstimate(
DiscountableItemGroup[] discountableItemGroups,
decimal[] remainingQuantities,
List<AppliedDiscountApplication> appliedDiscountApplications,
HashSet<int> itemsWithOverlappingDiscounts,
HashSet<int> itemsWithOverlappingDiscountsCompoundedOnly,
PriceContext priceContext);
/// <summary>
/// Get discount application multiples fast.
/// </summary>
/// <param name="discountableItemGroups">Discountable item groups.</param>
/// <param name="remainingQuantities">Remaining quantities.</param>
/// <param name="appliedDiscountApplications">Applied discount applications.</param>
/// <param name="priceContext">Price context.</param>
/// <returns>A collection of discount application multiples.</returns>
List<DiscountApplicationMultiple> GetDiscountApplicationMultiplesFastMode(
DiscountableItemGroup[] discountableItemGroups,
decimal[] remainingQuantities,
List<AppliedDiscountApplication> appliedDiscountApplications,
PriceContext priceContext);
}
Related: Retail Discount Knapsack – Marginal Value Ranking Algorithm I
Related: Dynamics Retail Discount Concepts: Discount Deal Estimate
Related: Dynamics Retail Discount Concepts: Discountable Item Group
Related: Dynamics Retail Discount Concepts: Discount Application I