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());
    }
Esempio n. 2
0
    /// <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)));
    }
Esempio n. 3
0
    /// <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());
    }