37 lines
889 B
Ruby
37 lines
889 B
Ruby
class Order < ActiveRecord::Base
|
|
|
|
validates :name, :presence => true
|
|
validates :firstname, :presence => true
|
|
|
|
|
|
validates :street1, :presence => true
|
|
validates :cityname, :presence => true
|
|
validates :country, :presence => true
|
|
|
|
|
|
validates :email, :presence => true, :format => /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\z/i
|
|
has_many :order_products, :dependent => :destroy
|
|
#validates :cgv,:acceptance => {:message => "Vous devez accepter les conditions générales de vente."}
|
|
attr_accessor :cgv
|
|
before_save do
|
|
self.total = 0.0
|
|
self.order_products.each do |order_product|
|
|
|
|
self.total = self.total + order_product.price.to_d
|
|
|
|
end
|
|
end
|
|
|
|
before_create do
|
|
self.generate_token
|
|
end
|
|
|
|
def generate_token
|
|
begin
|
|
self[:token] = SecureRandom.urlsafe_base64
|
|
end while Order.exists?(:token => self[token])
|
|
end
|
|
|
|
|
|
end
|