internetee-registry/app/models/bank_statement.rb
Karl Erik Õunapuu b5668ea494
Fix some CC issues
2020-09-07 13:11:40 +03:00

41 lines
911 B
Ruby

class BankStatement < ApplicationRecord
include Versions
has_many :bank_transactions
accepts_nested_attributes_for :bank_transactions
validates :bank_code, :iban, presence: true
FULLY_BINDED = 'fully_binded'.freeze
PARTIALLY_BINDED = 'partially_binded'.freeze
NOT_BINDED = 'not_binded'.freeze
# TODO: Cache this to database so it can be used for searching
def status
if bank_transactions.unbinded.count == bank_transactions.count
NOT_BINDED
elsif bank_transactions.unbinded.count.zero?
FULLY_BINDED
else
PARTIALLY_BINDED
end
end
def not_binded?
status == NOT_BINDED
end
def partially_binded?
status == PARTIALLY_BINDED
end
def fully_binded?
status == FULLY_BINDED
end
def bind_invoices(manual: false)
bank_transactions.unbinded.each do |transaction|
transaction.autobind_invoice(manual: manual)
end
end
end