summaryrefslogtreecommitdiff
path: root/app/models
diff options
context:
space:
mode:
Diffstat (limited to 'app/models')
-rw-r--r--app/models/product_cart.rb7
1 files changed, 7 insertions, 0 deletions
diff --git a/app/models/product_cart.rb b/app/models/product_cart.rb
index 09e7a25..d4232cb 100644
--- a/app/models/product_cart.rb
+++ b/app/models/product_cart.rb
@@ -8,10 +8,17 @@ class ProductCart < ApplicationRecord
validates :quantity, presence: true, comparison: { greater_than: 0 }
validate :sole_product_in_cart
+ validate :product_quantity
def sole_product_in_cart
return if cart.nil? || cart.products.find_by(id: product_id).nil?
errors.add(:product_id, "cart already has product with id #{product_id}")
end
+
+ def product_quantity
+ return if product.nil? || product.available_quantity > quantity
+
+ errors.add(:product_id, 'not enough in existence')
+ end
end