public ApprovedCartModel ValidateCart(UserProfile user, UserSelectedContext catalogInfo, Guid cartId, string orderNumber) { ApprovedCartModel ret = new ApprovedCartModel(); bool isCart = cartId != null && cartId != Guid.Empty ? true : false; if (isCart == true) { Core.Models.ShoppingCart.ShoppingCart currentCart = new Core.Models.ShoppingCart.ShoppingCart(); } else { Core.Models.Orders.Order existingOrder = new Core.Models.Orders.Order(); } try { MinimumOrderAmountModel minimumOrderAmount = _minimumAmountRepo.GetMinimumOrderAmount(catalogInfo.CustomerId, catalogInfo.BranchId); decimal subtotal = 0; ret.ApprovedAmount = minimumOrderAmount.ApprovedAmount; if (isCart == true) { currentCart = _shoppingCartLogic.ReadCart(user, catalogInfo, cartId); subtotal = (decimal)PricingHelper.CalculateCartSubtotal(currentCart.Items); } else { existingOrder = _orderLogic.ReadOrder(user, catalogInfo, orderNumber, false); subtotal = (decimal)existingOrder.OrderTotal; } ret.Approved = ret.ApprovedAmount <= subtotal; ret.RemainingAmount = ret.ApprovedAmount - subtotal > 0 ? ret.ApprovedAmount - subtotal : 0; if (ret.Approved == false) { throw new Exception("The cart total does not meet or exceed the minimum approved amount. Please contact your DSR for more information."); } } catch (Exception ex) { _log.WriteErrorLog("ValidateCart", ex); ret.Message = ex.Message; ret.Approved = false; } return(ret); }
public MinimumOrderAmountModel GetMinimumOrderAmount(string customerNumber, string branchId) { MinimumOrderAmountModel results = connection.Query <MinimumOrderAmountModel>(@" SELECT Value AS ApprovedAmount FROM Customers.CustomerOptions WHERE CustomerNumber = @CustomerNumber AND BranchId = @BranchId" , new { CustomerNumber = customerNumber, BranchId = branchId }).FirstOrDefault(); return(results); }