/// <summary> /// Calculate points /// </summary> /// <param name="basketItem">Basket Item</param> /// <returns>Points earned</returns> private decimal CalculatePointsEarned(OrderBasketItem basketItem) { ProductDetails pd = _productDetailsList.Where(d => d.ProductId == basketItem.ProductId).FirstOrDefault(); if (pd == null) { throw new CustomExceptions("Invalid Product Id!"); } PointsPromotion pp = _pointsPromotionList.Where(d => d.Category == pd.Category).FirstOrDefault(); if (pp != null) { // apply discount if (IsTimeInRange(pp.StartDate, pp.EndDate, OrderRequest.TransactionDate)) { return(basketItem.UnitPrice * basketItem.Quantity * pp.ForEachDollarSpent); } } else { pp = _pointsPromotionList.Where(d => d.Category == "Any").FirstOrDefault(); if (IsTimeInRange(pp.StartDate, pp.EndDate, OrderRequest.TransactionDate)) { return(basketItem.UnitPrice * basketItem.Quantity * pp.ForEachDollarSpent); } } return(0); }
public void DeleteOrderBasketItem(OrderBasketItem basketItem, string retailerDbKey) { Execute("usp_DelteOrderBasketItem", new { @OrderBasketId = basketItem.OrderBasketId, @OrderBasketItemId = basketItem.RetailerOrderBasketItemId }, retailerDbKey); }
public void UpdateOrderBasketItem(OrderBasketItem basketItem, string retailerDbKey) { Execute("usp_UpdateOrderItem", new { @OrderBasketId = basketItem.OrderBasketId, @OrderBasketItemId = basketItem.RetailerOrderBasketItemId, @NumberOfUnits = basketItem.NumberOfUnits, @TotalPrice = basketItem.TotalPrice }, retailerDbKey); }
public bool RemoveFromBasket(int basketId, int productId) { if (db.OrderBaskets.FirstOrDefault(b => b.Id == basketId) != null && db.Products.FirstOrDefault(p => p.Id == productId) != null) { OrderBasketItem basketItem = db.OrderBasketItems.FirstOrDefault(bi => bi.OrderBasketId == basketId && bi.ProductId == productId); if (basketItem != null) { db.OrderBasketItems.Remove(basketItem); db.SaveChanges(); return(true); } } return(false); }
public void AddOrderBasketItem(OrderBasketItem basketItem, string retailerDbKey) { Execute("usp_InsertOrderBasketItem", new { @OrderBasketId = basketItem.OrderBasketId, @ProductId = basketItem.ProductId, @ProductName = basketItem.ProductName, @ProductCode = basketItem.ProductCode, @BarCode = basketItem.BarCode, @UnitOfMeasure = basketItem.UnitOfMeasure, @NumberOfUnits = basketItem.NumberOfUnits, @PricePerUnit = basketItem.PricePerUnit, @TotalPrice = basketItem.TotalPrice }, retailerDbKey); }
/// <summary> /// Calculate discount /// </summary> /// <param name="basketItem">asket Item</param> /// <returns>Total discount applied</returns> private decimal CalculateDiscount(OrderBasketItem basketItem) { DiscountPromotionProducts dpp = _discountPromotionProductsList.Where(d => d.ProductId == basketItem.ProductId).FirstOrDefault(); if (dpp != null) { DiscountPromotion dp = _discountPromotionList.Where(d => d.DiscountPromotionId == dpp.DiscountPromotionId).FirstOrDefault(); if (dp != null) { // apply discount if (IsTimeInRange(dp.StartDate, dp.EndDate, OrderRequest.TransactionDate)) { return((basketItem.UnitPrice * basketItem.Quantity * dp.DiscountPercent) / 100); } } } return(0); }
public void DeleteOrderBasketItem(OrderBasketItem basketItem, int retailerId) { orderBasketRepository.DeleteOrderBasketItem(basketItem, databaseConfigAdapter.GetRetailerDatabaseConfigKey(retailerId)); }
public void AddOrderBasketItem(int retailerId, OrderBasketItem basketItem) { orderBasketRepository.AddOrderBasketItem(basketItem, databaseConfigAdapter.GetRetailerDatabaseConfigKey(retailerId)); }
/// <summary> /// Calculate total amount before discount /// </summary> /// <param name="basketItem">Basket Item</param> /// <returns>Total amount of cost</returns> private decimal CalculateTotalAmount(OrderBasketItem basketItem) { return(basketItem.UnitPrice * basketItem.Quantity); }