Class: BankAccount

Inherits:
ApplicationRecord show all
Defined in:
app/models/bank_account.rb

Overview

Bank account information for a given reimbursement. Defined as a separate model in the shake of cleanest.

Instance Attribute Summary collapse

Belongs to collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from ApplicationRecord

ransackable_associations, ransackable_attributes

Instance Attribute Details

#bank_nameString

Returns:

  • (String)

Validations (unless => -> { reimbursement.nil? || reimbursement.incomplete? || reimbursement.canceled? } ):



13
# File 'app/models/bank_account.rb', line 13

validates :bank_name, presence: true, unless: -> { reimbursement.nil? || reimbursement.incomplete? || reimbursement.canceled? }

#bank_postal_addressString

Returns:

  • (String)


46
# File 'db/schema.rb', line 46

t.string "bank_postal_address"

#bicString

Returns:

  • (String)

Validations (unless => -> { reimbursement.nil? || reimbursement.incomplete? || reimbursement.canceled? || !iban? } ):



15
# File 'app/models/bank_account.rb', line 15

validates :iban, :bic, presence: true, unless: -> { reimbursement.nil? || reimbursement.incomplete? || reimbursement.canceled? || !iban? }

#country_codeString

Returns:

  • (String)

Validations (unless => -> { reimbursement.nil? || reimbursement.incomplete? || reimbursement.canceled? || iban? } ):



16
# File 'app/models/bank_account.rb', line 16

validates :national_account_code, :country_code, presence: true, unless: -> { reimbursement.nil? || reimbursement.incomplete? || reimbursement.canceled? || iban? }

#created_atDateTime

Returns:

  • (DateTime)


48
# File 'db/schema.rb', line 48

t.datetime "created_at"

#formatString

Returns:

  • (String)

Validations:



14
# File 'app/models/bank_account.rb', line 14

validates :format, presence: true, inclusion: { in: %w[iban national] }

#holderString

Returns:

  • (String)

Validations (unless => -> { reimbursement.nil? || reimbursement.incomplete? || reimbursement.canceled? } ):



12
# File 'app/models/bank_account.rb', line 12

validates :holder, presence: true, unless: -> { reimbursement.nil? || reimbursement.incomplete? || reimbursement.canceled? }

#ibanString

Returns:

  • (String)

Validations (unless => -> { reimbursement.nil? || reimbursement.incomplete? || reimbursement.canceled? || !iban? } ):



15
# File 'app/models/bank_account.rb', line 15

validates :iban, :bic, presence: true, unless: -> { reimbursement.nil? || reimbursement.incomplete? || reimbursement.canceled? || !iban? }

#national_account_codeString

Returns:

  • (String)

Validations (unless => -> { reimbursement.nil? || reimbursement.incomplete? || reimbursement.canceled? || iban? } ):



16
# File 'app/models/bank_account.rb', line 16

validates :national_account_code, :country_code, presence: true, unless: -> { reimbursement.nil? || reimbursement.incomplete? || reimbursement.canceled? || iban? }

#national_bank_codeString

Returns:

  • (String)


43
# File 'db/schema.rb', line 43

t.string "national_bank_code"

#updated_atDateTime

Returns:

  • (DateTime)


49
# File 'db/schema.rb', line 49

t.datetime "updated_at"

Class Method Details

.human_format_name(format) ⇒ String

Internationalized version of an account format

Parameters:

  • format (#to_s)

    account format (iban or national)

Returns:

  • (String)

    human version of format



38
39
40
# File 'app/models/bank_account.rb', line 38

def self.human_format_name(format)
  I18n.t("activerecord.models.bank_account.formats.#{format}")
end

Instance Method Details

#human_format_nameString

Internationalized version of the format

Returns:

  • (String)

    human version of #format



45
46
47
# File 'app/models/bank_account.rb', line 45

def human_format_name
  BankAccount.human_format_name(format)
end

#iban?Boolean

Checks if the 'iban' format is selected

Returns:

  • (Boolean)

    true if format is set to 'iban'



23
24
25
# File 'app/models/bank_account.rb', line 23

def iban?
  format == 'iban'
end

#national?Boolean

Checks if the 'national' format is selected

Returns:

  • (Boolean)

    true if format is set to 'national'



30
31
32
# File 'app/models/bank_account.rb', line 30

def national?
  format == 'national'
end

#reimbursementReimbursement

The associated reimbursement

Validations:



9
# File 'app/models/bank_account.rb', line 9

belongs_to :reimbursement, inverse_of: :bank_account