internetee-registry/app/models/deposit.rb
2019-05-02 21:34:26 +03:00

38 lines
979 B
Ruby

class Deposit
include ActiveModel::Validations
include ActiveModel::Conversion
extend ActiveModel::Naming
attr_accessor :description, :registrar, :registrar_id
attr_writer :amount
validates :amount, :registrar, presence: true
validate :validate_amount
def validate_amount
minimum_allowed_amount = [0.01, Setting.minimum_deposit].max
return if amount >= minimum_allowed_amount
errors.add(:amount, I18n.t(:is_too_small_minimum_deposit_is, amount: minimum_allowed_amount,
currency: 'EUR'))
end
def initialize(attributes = {})
attributes.each do |name, value|
send("#{name}=", value)
end
end
def persisted?
false
end
def amount
return BigDecimal('0.0') if @amount.blank?
BigDecimal(@amount.to_s.tr(',', '.'), 10)
end
def issue_prepayment_invoice
return unless valid?
registrar.issue_prepayment_invoice(amount, description)
end
end