Ejemplo n.º 1
0
 /// <summary>
 /// Create Shopping cart with item by customer
 /// </summary>
 /// <param name="customerAddressID"></param>
 /// <param name="txtQty"></param>
 private void CreateShoppingCartByCustomer(SKUInfo product, int customerAddressID, int productQty, double skuPrice)
 {
     try
     {
         var customerAddress = AddressInfoProvider.GetAddressInfo(customerAddressID);
         if (!DataHelper.DataSourceIsEmpty(product))
         {
             ShoppingCartInfo cart = new ShoppingCartInfo();
             cart.ShoppingCartSiteID     = CurrentSite.SiteID;
             cart.ShoppingCartCustomerID = customerAddressID;
             cart.ShoppingCartCurrencyID = CurrencyInfoProvider.GetMainCurrency(CurrentSite.SiteID).CurrencyID;
             cart.SetValue("ShoppingCartCampaignID", ProductCampaignID);
             cart.SetValue("ShoppingCartProgramID", ProductProgramID);
             cart.SetValue("ShoppingCartDistributorID", customerAddressID);
             cart.SetValue("ShoppingCartInventoryType", ProductType);
             cart.User = CurrentUser;
             cart.ShoppingCartShippingAddress  = customerAddress;
             cart.ShoppingCartShippingOptionID = ProductShippingID;
             ShoppingCartInfoProvider.SetShoppingCartInfo(cart);
             ShoppingCartItemParameters parameters = new ShoppingCartItemParameters(product.SKUID, productQty);
             parameters.CustomParameters.Add("CartItemCustomerID", customerAddressID);
             ShoppingCartItemInfo cartItem = cart.SetShoppingCartItem(parameters);
             cartItem.SetValue("CartItemPrice", skuPrice);
             cartItem.SetValue("CartItemDistributorID", customerAddressID);
             cartItem.SetValue("CartItemCampaignID", ProductCampaignID);
             cartItem.SetValue("CartItemProgramID", ProductProgramID);
             ShoppingCartItemInfoProvider.SetShoppingCartItemInfo(cartItem);
             cart.InvalidateCalculations();
         }
     }
     catch (Exception ex)
     {
         EventLogProvider.LogException("CustomerCartOperations.ascx.cs", "CreateShoppingCartByCustomer()", ex);
     }
 }
Ejemplo n.º 2
0
        public static ShoppingCartInfo GetGroupBuyShoppingCart(int groupbuyId, string productSkuId, int buyAmount)
        {
            ShoppingCartItemInfo info5         = new ShoppingCartItemInfo();
            ShoppingCartInfo     info          = new ShoppingCartInfo();
            MemberInfo           currentMember = MemberProcessor.GetCurrentMember();
            ShoppingCartItemInfo info3         = new ShoppingCartDao().GetCartItemInfo(currentMember, productSkuId, buyAmount, 0);

            if (info3 == null)
            {
                return(null);
            }
            GroupBuyInfo groupBuy = GroupBuyBrowser.GetGroupBuy(groupbuyId);

            if (((groupBuy == null) || (groupBuy.StartDate > DateTime.Now)) || (groupBuy.Status != GroupBuyStatus.UnderWay))
            {
                return(null);
            }
            int     count = groupBuy.Count;
            decimal price = groupBuy.Price;

            info5.SkuId           = info3.SkuId;
            info5.ProductId       = info3.ProductId;
            info5.SKU             = info3.SKU;
            info5.Name            = info3.Name;
            info5.MemberPrice     = info5.AdjustedPrice = price;
            info5.SkuContent      = info3.SkuContent;
            info5.Quantity        = info5.ShippQuantity = buyAmount;
            info5.Weight          = info3.Weight;
            info5.ThumbnailUrl40  = info3.ThumbnailUrl40;
            info5.ThumbnailUrl60  = info3.ThumbnailUrl60;
            info5.ThumbnailUrl100 = info3.ThumbnailUrl100;
            info.LineItems.Add(info5);
            return(info);
        }
Ejemplo n.º 3
0
    protected void AddToCart(object sender, EventArgs e)
    {
        string              productId           = Request.QueryString["ProductId"];
        ServiceAccess       serviceLoader       = ServiceAccess.GetInstance();
        ShoppingCartService shoppingCartService = serviceLoader.GetShoppingCart();
        bool success = true;

        try
        {
            ShoppingCartItemInfo cartInfo = new ShoppingCartItemInfo();
            cartInfo.ProductId = productId;
            if (IsAgentRole)
            {
                cartInfo.UserId = ((RegistrationService.LoginInfo)Session["loginInfo"]).UserId;
            }
            else
            {
                cartInfo.UserId = Convert.ToInt32(Request.QueryString["userId"]);
            }
            cartInfo.Quantity = 1;
            success           = shoppingCartService.InsertCartItem(cartInfo, ((RegistrationService.LoginInfo)Session["loginInfo"]).UserId);
            RedirectToShoppingCart();
        }
        catch (Exception ex)
        {
            success           = false;
            ErrorLiteral.Text = "Unable to add product to cart. Please try later";
            log.Error("Error adding product to cart", ex);
        }
    }
 private static void SetCustomName(ShoppingCartItemInfo cartItem, string customName)
 {
     if (!string.IsNullOrEmpty(customName))
     {
         cartItem.CartItemText = customName;
     }
 }
Ejemplo n.º 5
0
        public static ShoppingCartInfo GetShoppingCart(string productSkuId, int buyAmount)
        {
            int               num;
            int               num2;
            string            str2;
            ProductSaleStatus status;
            ShoppingCartInfo  info             = new ShoppingCartInfo();
            DataTable         productInfoBySku = ShoppingProcessor.GetProductInfoBySku(productSkuId);

            if ((productInfoBySku == null) || (productInfoBySku.Rows.Count <= 0))
            {
                return(null);
            }
            string skuContent = string.Empty;

            foreach (DataRow row in productInfoBySku.Rows)
            {
                if (!((((row["AttributeName"] == DBNull.Value) || string.IsNullOrEmpty((string)row["AttributeName"])) || (row["ValueStr"] == DBNull.Value)) || string.IsNullOrEmpty((string)row["ValueStr"])))
                {
                    object obj2 = skuContent;
                    skuContent = string.Concat(new object[] { obj2, row["AttributeName"], ":", row["ValueStr"], "; " });
                }
            }
            ShoppingCartItemInfo info2 = ShoppingProvider.Instance().GetCartItemInfo(HiContext.Current.User as Member, (int)productInfoBySku.Rows[0]["ProductId"], productSkuId, skuContent, buyAmount, out status, out str2, out num, out num2);

            if ((((info2 == null) || (status != ProductSaleStatus.OnSale)) || (num <= 0)) || (num < num2))
            {
                return(null);
            }
            info.LineItems.Add(productSkuId, info2);
            if (!HiContext.Current.User.IsAnonymous)
            {
                int               num3;
                int               num4;
                string            str3;
                string            str4;
                decimal           num5;
                DiscountValueType type;
                bool              flag;
                bool              flag2;
                bool              flag3;
                ShoppingProvider.Instance().GetPromotionsWithAmount(info.GetAmount(), out num3, out str3, out num5, out type, out num4, out str4, out flag, out flag2, out flag3);
                if (!((num3 <= 0) || string.IsNullOrEmpty(str3)))
                {
                    info.DiscountActivityId = num3;
                    info.DiscountName       = str3;
                    info.DiscountValue      = num5;
                    info.DiscountValueType  = type;
                }
                if (!((num4 <= 0) || string.IsNullOrEmpty(str4)))
                {
                    info.FeeFreeActivityId = num4;
                    info.FeeFreeName       = str4;
                    info.EightFree         = flag;
                    info.ProcedureFeeFree  = flag3;
                    info.OrderOptionFree   = flag2;
                }
            }
            return(info);
        }
Ejemplo n.º 6
0
 /// <summary>
 /// 加入购物车
 /// </summary>
 /// <param name="cartItems"></param>
 /// <param name="memberId"></param>
 public void AddToCart(IEnumerable <ShoppingCartItem> cartItems, long memberId)
 {
     using (List <ShoppingCartItem> .Enumerator enumerator = cartItems.ToList <ShoppingCartItem>().GetEnumerator())
     {
         while (enumerator.MoveNext())
         {
             ShoppingCartItem cartItem = enumerator.Current;
             this.CheckCartItem(cartItem.SkuId, cartItem.Quantity, memberId);
             ShoppingCartItemInfo info = base.Context.ShoppingCartItemInfo.FirstOrDefault <ShoppingCartItemInfo>(item => ((item.UserId == memberId) && (item.SkuId == cartItem.SkuId)) && !item.ShopBranchId.HasValue);
             if (info != null)
             {
                 info.Quantity += cartItem.Quantity;
             }
             else
             {
                 long num = long.Parse(cartItem.SkuId.Split(new char[] { '_' })[0]);
                 ShoppingCartItemInfo entity = new ShoppingCartItemInfo
                 {
                     UserId    = memberId,
                     Quantity  = cartItem.Quantity,
                     SkuId     = cartItem.SkuId,
                     ProductId = num,
                     AddTime   = DateTime.Now
                 };
                 base.Context.ShoppingCartItemInfo.Add(entity);
             }
         }
     }
     base.Context.SaveChanges();
     Cache.Remove(CacheKeyCollection.CACHE_CART(memberId));
 }
Ejemplo n.º 7
0
        public List <ShoppingCartInfo> GetShoppingCartAviti(MemberInfo member, int type)
        {
            List <ShoppingCartInfo> list = new List <ShoppingCartInfo>();
            DataTable shoppingCategoryId = this.GetShoppingCategoryId(member, type);
            DataTable table2             = new DataTable();

            for (int i = 0; i < shoppingCategoryId.Rows.Count; i++)
            {
                ShoppingCartInfo item = new ShoppingCartInfo
                {
                    CategoryId = int.Parse(shoppingCategoryId.Rows[i]["CategoryId"].ToString())
                };
                table2 = this.GetShopping(item.CategoryId.ToString(), member, type);
                for (int j = 0; j < table2.Rows.Count; j++)
                {
                    ShoppingCartItemInfo info2 = this.GetCartItemInfo(member, table2.Rows[j]["SkuId"].ToString(), int.Parse(table2.Rows[j]["Quantity"].ToString()), type);
                    if (info2 != null)
                    {
                        item.LineItems.Add(info2);
                    }
                }
                list.Add(item);
            }
            return(list);
        }
Ejemplo n.º 8
0
        public ShoppingCartInfo GetShoppingCart(int userId)
        {
            ShoppingCartInfo shoppingCartInfo = new ShoppingCartInfo();
            DbCommand        sqlStringCommand = this.database.GetSqlStringCommand("SELECT * FROM Ecshop_ShoppingCarts WHERE UserId = @UserId;SELECT * FROM Ecshop_GiftShoppingCarts gc JOIN Ecshop_Gifts g ON gc.GiftId = g.GiftId WHERE gc.UserId = @UserId");

            this.database.AddInParameter(sqlStringCommand, "UserId", DbType.Int32, userId);
            using (IDataReader dataReader = this.database.ExecuteReader(sqlStringCommand))
            {
                Member member = HiContext.Current.User as Member;
                while (dataReader.Read())
                {
                    int storeId = 0;
                    if (dataReader["storeId"] != System.DBNull.Value)
                    {
                        storeId = (int)dataReader["storeId"];
                    }
                    ShoppingCartItemInfo cartItemInfo = this.GetCartItemInfo(member, (string)dataReader["SkuId"], (int)dataReader["Quantity"], storeId);
                    if (cartItemInfo != null)
                    {
                        shoppingCartInfo.LineItems.Add(cartItemInfo);
                    }
                }
                dataReader.NextResult();
                while (dataReader.Read())
                {
                    ShoppingCartGiftInfo shoppingCartGiftInfo = DataMapper.PopulateGiftCartItem(dataReader);
                    shoppingCartGiftInfo.Quantity = (int)dataReader["Quantity"];
                    shoppingCartInfo.LineGifts.Add(shoppingCartGiftInfo);
                }
            }
            return(shoppingCartInfo);
        }
Ejemplo n.º 9
0
 /// <summary>
 /// 加入购物车
 /// </summary>
 /// <param name="skuId"></param>
 /// <param name="count"></param>
 /// <param name="memberId"></param>
 public void AddToCart(string skuId, int count, long memberId)
 {
     if (count != 0)
     {
         this.CheckCartItem(skuId, count, memberId);
         ShoppingCartItemInfo info = base.Context.ShoppingCartItemInfo.FirstOrDefault <ShoppingCartItemInfo>(item => ((item.UserId == memberId) && (item.SkuId == skuId)) && !item.ShopBranchId.HasValue);
         if (info != null)
         {
             info.Quantity += count;
         }
         else if (count > 0)
         {
             long num = long.Parse(skuId.Split(new char[] { '_' })[0]);
             ShoppingCartItemInfo entity = new ShoppingCartItemInfo
             {
                 UserId    = memberId,
                 Quantity  = count,
                 SkuId     = skuId,
                 ProductId = num,
                 AddTime   = DateTime.Now
             };
             base.Context.ShoppingCartItemInfo.Add(entity);
         }
         base.Context.SaveChanges();
         Cache.Remove(CacheKeyCollection.CACHE_CART(memberId));
     }
 }
Ejemplo n.º 10
0
        /// <summary>
        /// 获取购物车列表 新增了对giftList的支持
        /// </summary>
        /// <param name="member"></param>
        /// <returns></returns>
        public List <ShoppingCartInfo> GetShoppingCartList(MemberInfo member)
        {
            List <ShoppingCartInfo> list = new List <ShoppingCartInfo>();
            ShoppingCartInfo        info = new ShoppingCartInfo();
            DbCommand sqlStringCommand   = this.database.GetSqlStringCommand("SELECT * FROM Hishop_ShoppingCarts WHERE UserId = @UserId;SELECT * FROM Hishop_GiftShoppingCarts gc JOIN Hishop_Gifts g ON gc.GiftId = g.GiftId WHERE gc.UserId = @UserId");

            this.database.AddInParameter(sqlStringCommand, "UserId", DbType.Int32, member.UserId);
            using (IDataReader reader = this.database.ExecuteReader(sqlStringCommand))
            {
                while (reader.Read())
                {
                    ShoppingCartItemInfo item = this.GetCartItemInfo(member, (string)reader["SkuId"], (int)reader["Quantity"]);
                    if (item != null)
                    {
                        info.LineItems.Add(item);
                    }
                }
                reader.NextResult();
                while (reader.Read())
                {
                    ShoppingCartGiftInfo info3 = DataMapper.PopulateGiftCartItem(reader);
                    info3.Quantity = (int)reader["Quantity"];
                    info.LineGifts.Add(info3);
                }
                list.Add(info);
            }
            return(list);
        }
Ejemplo n.º 11
0
 /// <summary>
 /// Removing Shopping Cart and cart items by cart id
 /// </summary>
 /// <param name="shoppingCartID"></param>
 private void RemovingProductFromShoppingCart(SKUInfo product, int shoppingCartID)
 {
     try
     {
         if (!DataHelper.DataSourceIsEmpty(product))
         {
             ShoppingCartItemInfo item = null;
             ShoppingCartInfo     cart = ShoppingCartInfoProvider.GetShoppingCartInfo(shoppingCartID);
             cart.User = CurrentUser;
             item      = cart.CartItems.Where(g => g.SKUID == product.SKUID).FirstOrDefault();
             if (!DataHelper.DataSourceIsEmpty(item))
             {
                 ShoppingCartInfoProvider.RemoveShoppingCartItem(cart, item.CartItemID);
                 ShoppingCartItemInfoProvider.DeleteShoppingCartItemInfo(item);
                 if (cart.CartItems.Count == 0)
                 {
                     ShoppingCartInfoProvider.DeleteShoppingCartInfo(shoppingCartID);
                 }
                 cart.InvalidateCalculations();
             }
         }
     }
     catch (Exception ex)
     {
         EventLogProvider.LogException("CustomerCartOperations.ascx.cs", "RemovingProductFromShoppingCart()", ex);
     }
 }
Ejemplo n.º 12
0
        public ShoppingCartInfo GetCartLineItems(int userId, IProduct product)
        {
            ShoppingCartInfo            cartInfo  = new ShoppingCartInfo();
            List <ShoppingCartItemInfo> cartItems = new List <ShoppingCartItemInfo>();
            ShoppingCartItemInfo        cartItem;

            SqlParameter[] sqlParam = new SqlParameter[] { new SqlParameter("@user_id", SqlDbType.Int) };
            sqlParam[0].Value = userId;
            using (SqlDataReader reader = SQLHelper.ExecuteReader(SQLHelper.CONNECTION_STRING,
                                                                  CommandType.StoredProcedure, SQLHelper.GetSQLStatement("ShoppingCart", "SP_GET_CARTITEMS"),
                                                                  sqlParam))
            {
                while (reader.Read())
                {
                    cartItem             = new ShoppingCartItemInfo();
                    cartItem.ProductId   = (string)reader["product_id"];
                    cartItem.Price       = Math.Round((decimal)reader["price"], 2);
                    cartItem.Quantity    = (int)reader["quantity"];
                    cartItem.Description = product.GetProductDetails(cartItem.ProductId).BriefDescWithQuantity;
                    cartItem.TotalPrice  = cartItem.Quantity * cartItem.Price;
                    cartItem.UserId      = userId;
                    cartItems.Add(cartItem);
                    cartInfo.Tax = Math.Round(Convert.ToDecimal(reader["Tax"]), 2);
                }
            }
            cartInfo.CartItems = cartItems;

            return(cartInfo);
        }
Ejemplo n.º 13
0
        public bool InsertCartItem(ShoppingCartItemInfo cartInfo, int ownerId)
        {
            bool success = false;

            SqlParameter[] messageParameters = GetCartItemParams();
            messageParameters[0].Value = cartInfo.UserId;
            messageParameters[1].Value = cartInfo.ProductId;
            messageParameters[2].Value = cartInfo.Quantity;

            using (SqlConnection conn = new SqlConnection(SQLHelper.CONNECTION_STRING))
            {
                conn.Open();
                using (SqlTransaction sqlTran = conn.BeginTransaction())
                {
                    try
                    {
                        int noOfRecords = SQLHelper.ExecuteNonQuery(sqlTran, CommandType.StoredProcedure,
                                                                    SQLHelper.GetSQLStatement("ShoppingCart", "SP_INSERT_CARTITEM"), messageParameters);
                        AuditEntryInfo auditEntry = new AuditEntryInfo(Module.ShoppingCart, cartInfo.ProductId,
                                                                       "Inserted cart item", cartInfo.UserId, ownerId);
                        AuditTrail.WriteEntry(auditEntry, sqlTran);
                        success = (noOfRecords > 0);
                        sqlTran.Commit();
                    }
                    catch
                    {
                        sqlTran.Rollback();
                        throw;
                    }
                }
            }
            return(success);
        }
Ejemplo n.º 14
0
 public void AddToCart(string skuId, int count, long memberId)
 {
     if (count != 0)
     {
         CheckCartItem(skuId, count, memberId);
         ShoppingCartItemInfo shoppingCartItemInfo = context.ShoppingCartItemInfo.FirstOrDefault((ShoppingCartItemInfo item) => item.UserId == memberId && (item.SkuId == skuId));
         if (shoppingCartItemInfo != null)
         {
             ShoppingCartItemInfo quantity = shoppingCartItemInfo;
             quantity.Quantity = quantity.Quantity + count;
         }
         else if (count > 0)
         {
             string str      = skuId;
             char[] chrArray = new char[] { '\u005F' };
             long   num      = long.Parse(str.Split(chrArray)[0]);
             DbSet <ShoppingCartItemInfo> shoppingCartItemInfos = context.ShoppingCartItemInfo;
             ShoppingCartItemInfo         shoppingCartItemInfo1 = new ShoppingCartItemInfo()
             {
                 UserId    = memberId,
                 Quantity  = count,
                 SkuId     = skuId,
                 ProductId = num,
                 AddTime   = DateTime.Now
             };
             shoppingCartItemInfos.Add(shoppingCartItemInfo1);
         }
         context.SaveChanges();
     }
 }
        public static ShoppingCartInfo GetCountDownShoppingCart(string productSkuId, int buyAmount)
        {
            ShoppingCartInfo     info  = new ShoppingCartInfo();
            Member               user  = HiContext.Current.User as Member;
            ShoppingCartItemInfo info2 = ShoppingProvider.Instance().GetCartItemInfo(user, productSkuId, buyAmount);

            if (info2 == null)
            {
                return(null);
            }
            CountDownInfo countDownInfo = ProductBrowser.GetCountDownInfo(info2.ProductId);

            if (countDownInfo == null)
            {
                return(null);
            }
            ShoppingCartItemInfo info4 = new ShoppingCartItemInfo();

            info4.SkuId           = info2.SkuId;
            info4.ProductId       = info2.ProductId;
            info4.SKU             = info2.SKU;
            info4.Name            = info2.Name;
            info4.MemberPrice     = info4.AdjustedPrice = countDownInfo.CountDownPrice;
            info4.SkuContent      = info2.SkuContent;
            info4.Quantity        = info4.ShippQuantity = buyAmount;
            info4.Weight          = info2.Weight;
            info4.ThumbnailUrl40  = info2.ThumbnailUrl40;
            info4.ThumbnailUrl60  = info2.ThumbnailUrl60;
            info4.ThumbnailUrl100 = info2.ThumbnailUrl100;
            info.LineItems.Add(productSkuId, info4);
            return(info);
        }
Ejemplo n.º 16
0
 public void AddToCart(IEnumerable <ShoppingCartItem> cartItems, long memberId)
 {
     foreach (ShoppingCartItem list in cartItems.ToList())
     {
         CheckCartItem(list.SkuId, list.Quantity, memberId);
         ShoppingCartItemInfo shoppingCartItemInfo = context.ShoppingCartItemInfo.FirstOrDefault((ShoppingCartItemInfo item) => item.UserId == memberId && (item.SkuId == list.SkuId));
         if (shoppingCartItemInfo == null)
         {
             string skuId    = list.SkuId;
             char[] chrArray = new char[] { '\u005F' };
             long   num      = long.Parse(skuId.Split(chrArray)[0]);
             DbSet <ShoppingCartItemInfo> shoppingCartItemInfos = context.ShoppingCartItemInfo;
             ShoppingCartItemInfo         shoppingCartItemInfo1 = new ShoppingCartItemInfo()
             {
                 UserId    = memberId,
                 Quantity  = list.Quantity,
                 SkuId     = list.SkuId,
                 ProductId = num,
                 AddTime   = DateTime.Now
             };
             shoppingCartItemInfos.Add(shoppingCartItemInfo1);
         }
         else
         {
             ShoppingCartItemInfo quantity = shoppingCartItemInfo;
             quantity.Quantity = quantity.Quantity + list.Quantity;
         }
     }
     context.SaveChanges();
 }
Ejemplo n.º 17
0
 private static void SetMailingList(ShoppingCartItemInfo cartItem, MailingList mailingList)
 {
     if (mailingList != null)
     {
         cartItem.SetValue("MailingListName", mailingList.Name);
         cartItem.SetValue("MailingListGuid", mailingList.Id);
     }
 }
        private ShoppingCartItemInfo GetCartItemInfo(string skuId, int quantity)
        {
            ShoppingCartItemInfo info = null;
            DbCommand            storedProcCommand = this.database.GetStoredProcCommand("ss_ShoppingCart_GetItemInfo");

            this.database.AddInParameter(storedProcCommand, "Quantity", DbType.Int32, quantity);
            this.database.AddInParameter(storedProcCommand, "UserId", DbType.Int32, 0);
            this.database.AddInParameter(storedProcCommand, "SkuId", DbType.String, skuId);
            this.database.AddInParameter(storedProcCommand, "GradeId", DbType.Int32, 0);
            using (IDataReader reader = this.database.ExecuteReader(storedProcCommand))
            {
                if (!reader.Read())
                {
                    return(info);
                }
                info           = new ShoppingCartItemInfo();
                info.SkuId     = skuId;
                info.ProductId = (int)reader["ProductId"];
                info.Name      = reader["ProductName"].ToString();
                if (DBNull.Value != reader["Weight"])
                {
                    info.Weight = (int)reader["Weight"];
                }
                info.MemberPrice = info.AdjustedPrice = (decimal)reader["SalePrice"];
                if (DBNull.Value != reader["ThumbnailUrl40"])
                {
                    info.ThumbnailUrl40 = reader["ThumbnailUrl40"].ToString();
                }
                if (DBNull.Value != reader["ThumbnailUrl60"])
                {
                    info.ThumbnailUrl60 = reader["ThumbnailUrl60"].ToString();
                }
                if (DBNull.Value != reader["ThumbnailUrl100"])
                {
                    info.ThumbnailUrl100 = reader["ThumbnailUrl100"].ToString();
                }
                if (reader["SKU"] != DBNull.Value)
                {
                    info.SKU = (string)reader["SKU"];
                }
                info.Quantity = info.ShippQuantity = quantity;
                string str = string.Empty;
                if (reader.NextResult())
                {
                    while (reader.Read())
                    {
                        if (!((((reader["AttributeName"] == DBNull.Value) || string.IsNullOrEmpty((string)reader["AttributeName"])) || (reader["ValueStr"] == DBNull.Value)) || string.IsNullOrEmpty((string)reader["ValueStr"])))
                        {
                            object obj2 = str;
                            str = string.Concat(new object[] { obj2, reader["AttributeName"], ":", reader["ValueStr"], "; " });
                        }
                    }
                }
                info.SkuContent = str;
            }
            return(info);
        }
Ejemplo n.º 19
0
    /// <summary>
    /// Function for building the GroupedEnumerable. Returns the key according to which the hierarchy is build. If it is a top level item it returns 0.
    /// </summary>
    protected object GetKey(ShoppingCartItemInfo Item)
    {
        if (!(Item.IsProductOption || Item.IsBundleItem))
        {
            return(0);
        }

        return(Item.CartItemParentGUID);
    }
Ejemplo n.º 20
0
        /// <summary>
        /// Initializes a new instance of the <see cref="ShoppingCartItem"/> class.
        /// </summary>
        /// <param name="originalCartItem"><see cref="ShoppingCartItemInfo"/> object representing an original Kentico shopping cart item info object from which the model is created.</param>
        public ShoppingCartItem(ShoppingCartItemInfo originalCartItem)
        {
            if (originalCartItem == null)
            {
                throw new ArgumentNullException(nameof(originalCartItem));
            }

            OriginalCartItem = originalCartItem;
        }
    private void SaveCartItem(ShoppingCartItemInfo scii)
    {
        // Set new cart
        if (ShoppingCart.ShoppingCartID == 0)
        {
            ShoppingCartInfoProvider.SetShoppingCartInfo(ShoppingCart);
        }

        ShoppingCartItemInfoProvider.SetShoppingCartItemInfo(scii);
    }
Ejemplo n.º 22
0
        public void DeleteCartItem(string skuId, long memberId)
        {
            ShoppingCartItemInfo model = context.ShoppingCartItemInfo_.FindById <ShoppingCartItemInfo>(long.Parse(skuId));

            if (model != null)
            {
                context.ShoppingCartItemInfo_.Remove(model);
                context.SaveChanges();
            }
        }
Ejemplo n.º 23
0
        public void RemoveCartAfterOrder(long userid, long productid)
        {
            ShoppingCartItemInfo model = context.ShoppingCartItemInfo_.FirstOrDefault(q => q.UserId == userid && q.ProductId == productid);

            if (model != null)
            {
                context.ShoppingCartItemInfo_.Remove(model);
                context.SaveChanges();
            }
        }
Ejemplo n.º 24
0
 private void LoadCartProduct(ShoppingCartInfo cartInfo, Dictionary <string, int> productQuantityList, IList <string> skuIds, Dictionary <string, int> storeIdList)
 {
     foreach (string current in skuIds)
     {
         ShoppingCartItemInfo cartItemInfo = this.GetCartItemInfo(current, productQuantityList[current], storeIdList[current]);
         if (cartItemInfo != null)
         {
             cartInfo.LineItems.Add(cartItemInfo);
         }
     }
 }
Ejemplo n.º 25
0
 void LoadCartProduct(ShoppingCartInfo cartInfo, Dictionary <string, int> productQuantityList, IList <string> skuIds, Dictionary <string, int> productIdList)
 {
     foreach (string str in skuIds)
     {
         ShoppingCartItemInfo info = this.GetCartItemInfo(productIdList[str], str, productQuantityList[str]);
         if (info != null)
         {
             cartInfo.LineItems.Add(str, info);
         }
     }
 }
Ejemplo n.º 26
0
 private void LoadCartProduct(ShoppingCartInfo cartInfo, Dictionary <string, int> productQuantityList, IList <string> skuIds)
 {
     foreach (string skuId in skuIds)
     {
         ShoppingCartItemInfo cartItemInfo = this.GetCartItemInfo(skuId, productQuantityList[skuId]);
         if (cartItemInfo != null)
         {
             cartInfo.LineItems.Add(cartItemInfo);
         }
     }
 }
Ejemplo n.º 27
0
        //public void AddToCartNew(string skuId, int count, long memberId)
        public void AddToCartNew(long productid, string packingunit, string purity, int productnum, decimal prodcutprice, string cointype, long memberId, long shopid, string speclevel,
                                 string distributiontype, decimal distributioncost, DateTime deliverydate, int regionid, string deliveryaddress, string paymode,
                                 decimal Insurancefee, int InvoiceType = 0, string InvoiceTitle = "", string InvoiceContext = "")
        {
            if (productid != 0)
            {
                ShoppingCartItemInfo shoppingCartItemInfo =
                    context.ShoppingCartItemInfo_.FirstOrDefault(
                        (ShoppingCartItemInfo item) => item.UserId == memberId &&
                        item.ProductId == productid && item.PackingUnit.Equals(packingunit) && item.Purity.Equals(purity) &&
                        item.Quantity.Equals(productnum) && item.ProductTotalAmount == prodcutprice && item.CoinType.Equals(cointype)
                        );

                if (shoppingCartItemInfo != null)
                {
                    ShoppingCartItemInfo quantity = shoppingCartItemInfo;
                    quantity.Quantity           = quantity.Quantity + productnum;
                    quantity.ProductTotalAmount = quantity.ProductTotalAmount + prodcutprice;
                }
                else
                {
                    ChemCloud.Service.Order.Business.OrderBO _orderBO = new ChemCloud.Service.Order.Business.OrderBO();
                    long orderid = _orderBO.GenerateOrderNumber();

                    DbSet <ShoppingCartItemInfo> shoppingCartItemInfos = context.ShoppingCartItemInfo_;
                    ShoppingCartItemInfo         shoppingCartItemInfo1 = new ShoppingCartItemInfo()
                    {
                        UserId             = memberId,
                        ProductId          = productid,
                        Quantity           = productnum,
                        AddTime            = DateTime.Now,
                        PackingUnit        = packingunit,
                        Purity             = purity,
                        ProductTotalAmount = prodcutprice,
                        CoinType           = cointype,
                        ShopId             = shopid,
                        SpecLevel          = speclevel,
                        ExpressCompanyName = distributiontype,
                        Freight            = distributioncost,
                        ShippingDate       = deliverydate,
                        RegionId           = regionid,
                        ShippingAddress    = deliveryaddress,
                        PaymentTypeName    = paymode,
                        Insurancefee       = Insurancefee,
                        CartNo             = orderid,
                        InvoiceType        = InvoiceType,
                        InvoiceTitle       = InvoiceTitle,
                        InvoiceContext     = InvoiceContext
                    };
                    shoppingCartItemInfos.Add(shoppingCartItemInfo1);
                }
                context.SaveChanges();
            }
        }
Ejemplo n.º 28
0
        public ShoppingCartInfo GetShoppingCart(Member member)
        {
            ShoppingCartInfo shoppingCartInfo = new ShoppingCartInfo();

            DbCommand sqlStringCommand = this.database.GetSqlStringCommand(@"SELECT * FROM Ecshop_ShoppingCarts WHERE UserId = @UserId;SELECT * FROM Ecshop_GiftShoppingCarts gc JOIN Ecshop_Gifts g ON gc.GiftId = g.GiftId WHERE gc.UserId = @UserId;
select pp.ProductId as PromotionProductId, s.SkuId,ppp.ProductId,pro.ProductName,s.SKU,0 as ShipmentQuantity,s.CostPrice,s.SalePrice as ItemListPrice,0 as ItemAdjustedPrice,'' as SKUContent,
s.FactStock,p.ActivityId as PromotionId,p.Name as PromotionName,p.IsAscend,case when isnull(p.IsAscend,0) = 0 then p.DiscountValue when p.IsAscend = 1 then c.Quantity /p.Condition *  p.DiscountValue end  as DiscountValue,pro.ThumbnailUrl40,0 as storeId,pro.SupplierId,sp.SupplierName,sp.ShopName,sp.ShopOwner 
from Ecshop_PromotionProductsPresent   ppp 
inner join Ecshop_Promotions p  on ppp.ActivityId = p.ActivityId 
inner join Ecshop_PromotionProducts pp on ppp.ActivityId = pp.ActivityId 
left join Ecshop_SKUs s on s.ProductId = ppp.ProductId 
left join Ecshop_Skus ss on ss.ProductId = pp.ProductId 
left join Ecshop_Products pro on pro.ProductId = ppp.ProductId 
left join Ecshop_Supplier sp on pro.SupplierId = sp.SupplierId 
inner join Ecshop_ShoppingCarts  c on c.skuid = ss.skuid and userid =@UserId ");

            this.database.AddInParameter(sqlStringCommand, "UserId", DbType.Int32, member.UserId);
            using (IDataReader dataReader = this.database.ExecuteReader(sqlStringCommand))
            {
                //Member member = HiContext.Current.User as Member;
                while (dataReader.Read())
                {
                    int storeId = 0;
                    if (dataReader["storeId"] != System.DBNull.Value)
                    {
                        storeId = (int)dataReader["storeId"];
                    }
                    ShoppingCartItemInfo cartItemInfo = this.GetCartItemInfo(member, (string)dataReader["SkuId"], (int)dataReader["Quantity"], storeId);
                    if (cartItemInfo != null)
                    {
                        shoppingCartInfo.LineItems.Add(cartItemInfo);
                    }
                }
                dataReader.NextResult();
                while (dataReader.Read())
                {
                    ShoppingCartGiftInfo shoppingCartGiftInfo = DataMapper.PopulateGiftCartItem(dataReader);
                    shoppingCartGiftInfo.Quantity = (int)dataReader["Quantity"];
                    shoppingCartInfo.LineGifts.Add(shoppingCartGiftInfo);
                }
                // 促销活动(商品)中的赠送商品
                if (dataReader.NextResult())
                {
                    while (dataReader.Read())
                    {
                        ShoppingCartPresentInfo present = DataMapper.PopulatePresentCartItem(dataReader);
                        shoppingCartInfo.LinePresentPro.Add(present);
                    }
                }
            }
            return(shoppingCartInfo);
        }
Ejemplo n.º 29
0
        public static ShoppingCartInfo GetShoppingCart(string productSkuId, int buyAmount)
        {
            ShoppingCartInfo     shoppingCartInfo = new ShoppingCartInfo();
            Member               member           = HiContext.Current.User as Member;
            ShoppingCartItemInfo cartItemInfo     = ShoppingProvider.Instance().GetCartItemInfo(member, productSkuId, buyAmount);
            ShoppingCartInfo     result;

            if (cartItemInfo == null)
            {
                result = null;
            }
            else
            {
                shoppingCartInfo.LineItems.Add(productSkuId, cartItemInfo);
                if (member != null)
                {
                    decimal       reducedPromotionAmount = 0m;
                    PromotionInfo reducedPromotion       = ShoppingProvider.Instance().GetReducedPromotion(member, shoppingCartInfo.GetAmount(), shoppingCartInfo.GetQuantity(), out reducedPromotionAmount);
                    if (reducedPromotion != null)
                    {
                        shoppingCartInfo.ReducedPromotionId     = reducedPromotion.ActivityId;
                        shoppingCartInfo.ReducedPromotionName   = reducedPromotion.Name;
                        shoppingCartInfo.ReducedPromotionAmount = reducedPromotionAmount;
                        shoppingCartInfo.IsReduced = true;
                    }
                    PromotionInfo sendPromotion = ShoppingProvider.Instance().GetSendPromotion(member, shoppingCartInfo.GetTotal(), PromoteType.FullAmountSentGift);
                    if (sendPromotion != null)
                    {
                        shoppingCartInfo.SendGiftPromotionId   = sendPromotion.ActivityId;
                        shoppingCartInfo.SendGiftPromotionName = sendPromotion.Name;
                        shoppingCartInfo.IsSendGift            = true;
                    }
                    PromotionInfo sendPromotion2 = ShoppingProvider.Instance().GetSendPromotion(member, shoppingCartInfo.GetTotal(), PromoteType.FullAmountSentTimesPoint);
                    if (sendPromotion2 != null)
                    {
                        shoppingCartInfo.SentTimesPointPromotionId   = sendPromotion2.ActivityId;
                        shoppingCartInfo.SentTimesPointPromotionName = sendPromotion2.Name;
                        shoppingCartInfo.IsSendTimesPoint            = true;
                        shoppingCartInfo.TimesPoint = sendPromotion2.DiscountValue;
                    }
                    PromotionInfo sendPromotion3 = ShoppingProvider.Instance().GetSendPromotion(member, shoppingCartInfo.GetTotal(), PromoteType.FullAmountSentFreight);
                    if (sendPromotion3 != null)
                    {
                        shoppingCartInfo.FreightFreePromotionId   = sendPromotion3.ActivityId;
                        shoppingCartInfo.FreightFreePromotionName = sendPromotion3.Name;
                        shoppingCartInfo.IsFreightFree            = true;
                    }
                }
                result = shoppingCartInfo;
            }
            return(result);
        }
Ejemplo n.º 30
0
        private void RefreshPrice(ShoppingCartItemInfo cartItem, TreeNode document)
        {
            var dynamicUnitPrice = dynamicPrices.GetDynamicPrice(document.DocumentID, cartItem.CartItemUnits);

            if (dynamicUnitPrice == decimal.MinusOne)
            {
                throw new ArgumentException(resources.GetResourceString("Kadena.Product.QuantityOutOfRange"));
            }

            if (dynamicUnitPrice > decimal.Zero)
            {
                cartItem.CartItemPrice = decimal.ToDouble(dynamicUnitPrice);
            }
        }
    /// <summary>
    /// Adds custom discount to the given shopping cart item if another product is also in the cart.
    /// </summary>
    /// <param name="item">Shoppping cart item</param>
    /// <param name="discounts">Discounts of the shopping cart item</param>
    /// <param name="anotherItemName">SKU number of another product which must be in the cart to apply the discount</param>
    private void AddDiscountForBundledPurchase(ShoppingCartItemInfo item, List<IItemDiscount> discounts, string anotherItemName)
    {
        // Add discount to the product if product B is also in the cart
        ShoppingCartItemInfo itemB = GetShoppingCartItem(item.ShoppingCartObj, anotherItemName);
        if (itemB != null)
        {
            // Create custom 20% discount
            ItemDiscount discount = new ItemDiscount()
            {
                ItemDiscountID = "DISCOUNT_AB",
                ItemDiscountDisplayName = string.Format("Discount for bundled purchase of product '{0}' and '{1}'", item.SKUObj.SKUName, itemB.SKUObj.SKUName),
                ItemDiscountValue = 20,
                ItemDiscountedUnits = itemB.CartItemUnits
            };

            // Add custom discount to discounts to be applied to the product
            discounts.Add(discount);
        }
    }
    /// <summary>
    /// Returns list of all discounts which should be applied to the specified shopping cart item.
    /// </summary>
    /// <param name="item">Shopping cart item</param>       
    protected override List<IItemDiscount> GetDiscountsInternal(ShoppingCartItemInfo item)
    {
        // SKU number of product A
        string skuA = "A";

        // Get default discounts
        List<IItemDiscount> discounts =  base.GetDiscountsInternal(item);

        // Add extra discounts to product A
        if (item.SKUObj.SKUNumber.ToLower() == skuA.ToLower())
        {
            // Add extra discount if product B is also in the cart
            AddDiscountForBundledPurchase(item, discounts, "B");

            // Add another extra discount if user is in VIP role
            AddDiscountForVIPRole(item, discounts, "VIP");
        }

        return discounts;
    }
    /// <summary>
    /// Adds custom discount to the given shopping cart item if user is member of specified role.
    /// </summary>
    /// <param name="item">Shoppping cart item</param>
    /// <param name="discounts">Discounts of the shopping cart item</param>
    /// <param name="roleName">Name of the role the user must be member of to apply the discount</param>
    private void AddDiscountForVIPRole(ShoppingCartItemInfo item, List<IItemDiscount> discounts, string roleName)
    {
        UserInfo user = item.ShoppingCartObj.UserInfoObj;

        // Add discount to the product if user is member of the role
        if ((user != null) && user.IsInRole(roleName, item.ShoppingCartObj.SiteName))
        {
            // Create custom 10% discount
            ItemDiscount discount = new ItemDiscount()
            {
                ItemDiscountID = "DISCOUNT_VIP",
                ItemDiscountDisplayName = string.Format("Discount for VIP customers", item.SKUObj.SKUName),
                ItemDiscountValue = 10,
                ItemDiscountedUnits = item.CartItemUnits
            };

            // Add custom discount to discounts to be applied to the product
            discounts.Add(discount);
        }
    }
    /// <summary>
    /// Function for building the GroupedEnumerable. Returns the key according to which the hierarchy is build. If it is a top level item it returns 0.
    /// </summary>
    protected object GetKey(ShoppingCartItemInfo Item)
    {
        if (!(Item.IsProductOption || Item.IsBundleItem))
        {
            return 0;
        }

        return Item.CartItemParentGUID;
    }
 /// <summary>
 /// Function for building the GroupedEnumerable. Returns the level on which the item should be placed in the object.
 /// </summary>
 protected int GetLevel(ShoppingCartItemInfo Item)
 {
     return (Item.IsProductOption || Item.IsBundleItem) ? 1 : 0;
 }
Ejemplo n.º 36
0
    /// <summary>
    /// Removes product from shopping cart. Called when the "Remove product from shopping cart" button is pressed.
    /// Expects the AddProductToShopping cart method to be run first.
    /// </summary>
    private bool RemoveProductFromShoppingCart()
    {
        // Get current shopping cart
        ShoppingCartInfo cart = ECommerceContext.CurrentShoppingCart;

        // Prepare the parameters
        string where = "SKUName LIKE N'MyNewProduct%' AND SKUOptionCategoryID IS NULL";
        SKUInfo product = null;

        // Get the data
        DataSet products = SKUInfoProvider.GetSKUs(where, null);
        if (!DataHelper.DataSourceIsEmpty(products))
        {
            // Create object from DataRow
            product = new SKUInfo(products.Tables[0].Rows[0]);
        }

        if ((cart != null) && (product != null))
        {
            // Prepare the parameters
            where = "SKUID = " + product.SKUID + " AND ShoppingCartID = " + cart.ShoppingCartID;

            ShoppingCartItemInfo item = null;

            DataSet items = ShoppingCartItemInfoProvider.GetShoppingCartItems(where, null);
            if (!DataHelper.DataSourceIsEmpty(items))
            {
                // Create object from DataRow
                item = new ShoppingCartItemInfo(items.Tables[0].Rows[0]);
            }

            if (item != null)
            {
                // Remove item from cart object
                cart.RemoveShoppingCartItem(item.CartItemID);

                // Remove item form database
                ShoppingCartItemInfoProvider.DeleteShoppingCartItemInfo(item);

                return true;
            }

            return false;
        }

        return false;
    }