private IWhereCondition GetNotStartedDiscounts() { switch (DiscountType) { case DiscountTypeEnum.CatalogDiscount: return(DiscountInfoProvider.GetDiscounts() .WhereTrue("DiscountEnabled") .WhereNotNull("DiscountValidFrom").WhereGreaterThan("DiscountValidFrom", DateTime.Now)); case DiscountTypeEnum.OrderDiscount: case DiscountTypeEnum.ShippingDiscount: return(DiscountInfoProvider.GetDiscounts() .WhereTrue("DiscountEnabled") .WhereNot(IncompleteDiscountsCondition()) .WhereNotNull("DiscountValidFrom").WhereGreaterThan("DiscountValidFrom", DateTime.Now)); case DiscountTypeEnum.ProductCoupon: return(MultiBuyDiscountInfoProvider.GetProductCouponDiscounts().Where(NotStartedMultiBuyDiscountsCondition())); case DiscountTypeEnum.MultibuyDiscount: return(MultiBuyDiscountInfoProvider.GetMultiBuyDiscounts().Where(NotStartedMultiBuyDiscountsCondition())); case DiscountTypeEnum.GiftCard: return(GiftCardInfoProvider.GetGiftCards() .WhereTrue("GiftCardEnabled") .WhereNot(IncompleteGiftCardsCondition()) .WhereNotNull("GiftCardValidFrom").WhereGreaterThan("GiftCardValidFrom", DateTime.Now)); } return(new WhereCondition()); }
/// <summary> /// Returns query to filter active discounts. /// </summary> private WhereCondition GetActiveQuery() { IWhereCondition activeQuery; if (IsMultibuy) { activeQuery = MultiBuyDiscountInfoProvider.GetRunningDiscounts(CurrentSite.SiteID, DateTime.Now); } else { activeQuery = DiscountInfoProvider.GetRunningDiscounts(CurrentSite.SiteID, DateTime.Now); } return(new WhereCondition(activeQuery.Expand(activeQuery.WhereCondition))); }
/// <summary> /// Sets discount priority according maximal value increased by 10. /// Priority is set to new discounts. /// </summary> private void SetDiscountPriority() { // Discount is new if (Discount.MultiBuyDiscountID < 1) { DataSet ds = MultiBuyDiscountInfoProvider.GetMultiBuyDiscounts(Discount.MultiBuyDiscountSiteID) .Column(new AggregatedColumn(AggregationType.Max, "MultiBuyDiscountPriority").As("MaxPriority")); if (!DataHelper.IsEmpty(ds)) { Discount.MultiBuyDiscountPriority = ValidationHelper.GetDouble(ds.Tables[0].Rows[0]["MaxPriority"], 0) + 10; } else { Discount.MultiBuyDiscountPriority = 10; } } }
private IWhereCondition GetIncompleteDiscounts() { switch (DiscountType) { // Catalog discounts can't be incomplete case DiscountTypeEnum.OrderDiscount: case DiscountTypeEnum.ShippingDiscount: return(DiscountInfoProvider.GetDiscounts().Where(IncompleteDiscountsCondition())); case DiscountTypeEnum.ProductCoupon: return(MultiBuyDiscountInfoProvider.GetProductCouponDiscounts().Where(IncompleteMultiBuyDiscountsCondition())); case DiscountTypeEnum.MultibuyDiscount: return(MultiBuyDiscountInfoProvider.GetMultiBuyDiscounts().Where(IncompleteMultiBuyDiscountsCondition())); case DiscountTypeEnum.GiftCard: return(GiftCardInfoProvider.GetGiftCards().Where(IncompleteGiftCardsCondition())); } return(new WhereCondition()); }
private IWhereCondition GetDisabledDiscounts() { switch (DiscountType) { case DiscountTypeEnum.CatalogDiscount: case DiscountTypeEnum.OrderDiscount: case DiscountTypeEnum.ShippingDiscount: return(DiscountInfoProvider.GetDiscounts().WhereFalse("DiscountEnabled")); case DiscountTypeEnum.ProductCoupon: return(MultiBuyDiscountInfoProvider.GetProductCouponDiscounts().WhereFalse("MultiBuyDiscountEnabled")); case DiscountTypeEnum.MultibuyDiscount: return(MultiBuyDiscountInfoProvider.GetMultiBuyDiscounts().WhereFalse("MultiBuyDiscountEnabled")); case DiscountTypeEnum.GiftCard: return(GiftCardInfoProvider.GetGiftCards().WhereFalse("GiftCardEnabled")); } return(new WhereCondition()); }
private IWhereCondition GetActiveDiscounts() { switch (DiscountType) { case DiscountTypeEnum.CatalogDiscount: return(DiscountInfoProvider.GetRunningDiscounts(CurrentSite.SiteID, DateTime.Now, DiscountApplicationEnum.Products)); case DiscountTypeEnum.OrderDiscount: case DiscountTypeEnum.ShippingDiscount: return(DiscountInfoProvider.GetRunningDiscounts(CurrentSite.SiteID, DateTime.Now)); case DiscountTypeEnum.ProductCoupon: return(MultiBuyDiscountInfoProvider.GetRunningProductCouponDiscounts(CurrentSite.SiteID, DateTime.Now)); case DiscountTypeEnum.MultibuyDiscount: return(MultiBuyDiscountInfoProvider.GetRunningMultiBuyDiscounts(CurrentSite.SiteID, DateTime.Now)); case DiscountTypeEnum.GiftCard: return(GiftCardInfoProvider.GetRunningGiftCards(CurrentSite.SiteID, DateTime.Now)); } return(new WhereCondition()); }