Exemplo n.º 1
0
        protected void SetCouponItems(CouponScope couponScope, CouponData couponData, ItemsClientData itemsClientData)
        {
            //coupon items list
            List<CouponEntryData> items = new List<CouponEntryData>();
            List<ItemsDataClientData> includedItems = new List<ItemsDataClientData>();
            List<ItemsDataClientData> excludedItems = new List<ItemsDataClientData>();

            //get included/excluded items
            switch (couponScope)
            {
                case CouponScope.EntireBasket:
                    couponData.CouponType = EkEnumeration.CouponType.BasketLevel;
                    break;
                case CouponScope.AllApprovedItems:
                case CouponScope.MostExpensiveItem:
                case CouponScope.LeastExpensiveItem:
                    includedItems = itemsClientData.IncludedItems;
                    excludedItems = itemsClientData.ExcludedItems;
                    couponData.CouponType = EkEnumeration.CouponType.AllItems;
                    break;
            }

            includedItems = includedItems == null ? new List<ItemsDataClientData>() : includedItems;
            excludedItems = excludedItems == null ? new List<ItemsDataClientData>() : excludedItems;

            //build coupon included items list
            foreach (ItemsDataClientData item in includedItems)
            {
                if (item.MarkedForDelete == false)
                {
                    CouponEntryData includedItem = new CouponEntryData();
                    includedItem.CouponId = couponData.Id;
                    includedItem.ObjectId = item.Id;
                    switch (item.Type.ToLower())
                    {
                        case "catalog":
                            includedItem.ObjectType = EkEnumeration.CMSObjectTypes.Folder;
                            break;
                        case "taxonomy":
                            includedItem.ObjectType = EkEnumeration.CMSObjectTypes.TaxonomyNode;
                            break;
                        case "product":
                            includedItem.ObjectType = EkEnumeration.CMSObjectTypes.CatalogEntry;
                            break;
                    }
                    includedItem.IsIncluded = true;
                    items.Add(includedItem);
                }
            }
            //build coupon excluded items list
            foreach (ItemsDataClientData item in excludedItems)
            {
                if (item.MarkedForDelete == false)
                {
                    CouponEntryData excludedItem = new CouponEntryData();
                    excludedItem.CouponId = couponData.Id;
                    excludedItem.ObjectId = item.Id;
                    switch (item.Type.ToLower())
                    {
                        case "catalog":
                            excludedItem.ObjectType = EkEnumeration.CMSObjectTypes.Folder;
                            break;
                        case "taxonomy":
                            excludedItem.ObjectType = EkEnumeration.CMSObjectTypes.TaxonomyNode;
                            break;
                        case "product":
                            excludedItem.ObjectType = EkEnumeration.CMSObjectTypes.CatalogEntry;
                            break;
                    }
                    excludedItem.IsIncluded = false;
                    items.Add(excludedItem);
                }
            }

            //add items to coupon
            _CouponApi.SaveCouponApplications(couponData.Id, items);
        }
Exemplo n.º 2
0
        protected void GetCouponScopeData()
        {
            // gather scope info (from ui), and transfer into CouponData object
            Coupons.Scope.ClientData.ScopeClientData scopeData
                = (Coupons.Scope.ClientData.ScopeClientData)this.ucScopeControl.GetClientData();

            _RequestedCoupon.AppliesToQuantity = scopeData.IsApplicabletoallQuantities;
            _RequestedCoupon.IsApplicabletoSubscriptions = scopeData.IsApplicabletoSubscriptions;
            _RequestedCoupon.OnePerCustomer = scopeData.IsOnePerCustomer;
            _RequestedCoupon.MaximumUses = scopeData.MaxRedemptions;
            _RequestedCoupon.MinimumAmount = scopeData.MinBasketValue;
            _RequestedCoupon.IsCombinable = scopeData.IsCombinable;
            _RequestedCoupon.StartDate = scopeData.StartDate;
            _RequestedCoupon.ExpirationDate = scopeData.ExpirationDate;

            // determine application scope (translate enumerations):
            switch (scopeData.CouponScope)
            {
                case Ektron.Cms.Commerce.Workarea.Coupons.CouponScope.AllApprovedItems:
                    _RequestedCoupon.CouponType = EkEnumeration.CouponType.AllItems;
                    break;

                case Ektron.Cms.Commerce.Workarea.Coupons.CouponScope.EntireBasket:
                    _RequestedCoupon.CouponType = EkEnumeration.CouponType.BasketLevel;
                    break;

                case Ektron.Cms.Commerce.Workarea.Coupons.CouponScope.LeastExpensiveItem:
                    _RequestedCoupon.CouponType = EkEnumeration.CouponType.LeastExpensiveItem;
                    break;

                case Ektron.Cms.Commerce.Workarea.Coupons.CouponScope.MostExpensiveItem:
                    _RequestedCoupon.CouponType = EkEnumeration.CouponType.MostExpensiveItem;
                    break;
            }

            //set coupon scope - used by SaveCoupon()
            _CouponScope = scopeData.CouponScope;
        }