33 lines
995 B
Ruby
33 lines
995 B
Ruby
class HipayVirement < ActiveRecord::Base
|
|
belongs_to :devise
|
|
belongs_to :annonce_account
|
|
belongs_to :commission
|
|
has_many :hipay_virement_histories
|
|
validates :hipay_email, :presence => true, :format => /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\z/i
|
|
|
|
def generate_token
|
|
self.token = loop do
|
|
|
|
token = SecureRandom.hex(6)
|
|
break token unless Virement.exists?(token: token)
|
|
end
|
|
|
|
self.token
|
|
end
|
|
|
|
|
|
before_validation do
|
|
if self.annonce_account.hipay_virements.where("sended is null").count >= 1 or self.annonce_account.virements.where("sended is null").count >= 1
|
|
errors.add(:amount_ht, "Vous ne pouvez pas avoir plus d'un virements en attente d'execution.")
|
|
end
|
|
|
|
|
|
if self.amount_ht.to_f < 5 or self.amount_ht.to_f > self.annonce_account.max_virement(self.devise_id)
|
|
errors.add(:amount_ht, "Le montant doit être compris entre 5 € et #{self.annonce_account.max_hipay_virement(self.devise_id).to_i} €")
|
|
|
|
end
|
|
end
|
|
|
|
|
|
end
|