sideplace_app/app/models/hipay_virement.rb

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