private static DiscountMethodType GetDiscountMethodType(PeriodicDiscountOfferType periodicDiscountType, int discountTypeFromDatabase) { DiscountMethodType discountMethod = DiscountMethodType.DealPrice; // ISNULL(pdmm.MIXANDMATCHDISCOUNTTYPE, ISNULL(pdmb.MULTIBUYDISCOUNTTYPE, pd.PERIODICDISCOUNTTYPE)) switch (periodicDiscountType) { case PeriodicDiscountOfferType.Offer: case PeriodicDiscountOfferType.Promotion: discountMethod = DiscountMethodType.LineSpecific; break; case PeriodicDiscountOfferType.MixAndMatch: case PeriodicDiscountOfferType.MultipleBuy: discountMethod = (DiscountMethodType)discountTypeFromDatabase; break; case PeriodicDiscountOfferType.Threshold: discountMethod = DiscountMethodType.LineSpecific; break; default: NetTracer.Warning("Unsupported discount type: {0}", discountTypeFromDatabase); break; } return(discountMethod); }
private static DiscountOfferMethod GetLineDiscountOfferMethod(PeriodicDiscountOfferType periodicDiscountType, DiscountMethodType discountMethod, int lineDiscountMethod, int lineSpecificDiscountType) { DiscountOfferMethod offerMethod = (DiscountOfferMethod)lineDiscountMethod; if (periodicDiscountType == PeriodicDiscountOfferType.MixAndMatch && discountMethod == DiscountMethodType.LineSpecific) { if (lineSpecificDiscountType == (int)DiscountMethodType.DealPrice) { offerMethod = DiscountOfferMethod.OfferPrice; } else if (lineSpecificDiscountType == (int)DiscountMethodType.DiscountPercent) { offerMethod = DiscountOfferMethod.DiscountPercent; } } return(offerMethod); }