2019-01-13 07:05:54 +01:00
|
|
|
class FinancialTransactionType < ApplicationRecord
|
2017-03-04 14:15:18 +01:00
|
|
|
belongs_to :financial_transaction_class
|
|
|
|
has_many :financial_transactions, dependent: :restrict_with_exception
|
|
|
|
|
|
|
|
validates :name, presence: true
|
|
|
|
validates_uniqueness_of :name
|
2018-09-12 15:02:25 +02:00
|
|
|
validates_uniqueness_of :name_short, allow_blank: true, allow_nil: true
|
2017-03-04 14:15:18 +01:00
|
|
|
validates :financial_transaction_class, presence: true
|
|
|
|
|
|
|
|
before_destroy :restrict_deleting_last_financial_transaction_type
|
|
|
|
|
|
|
|
def self.default
|
|
|
|
first
|
|
|
|
end
|
|
|
|
|
|
|
|
def self.has_multiple_types
|
|
|
|
self.count > 1
|
|
|
|
end
|
|
|
|
|
|
|
|
protected
|
|
|
|
|
|
|
|
# check if this is the last financial transaction type and deny
|
|
|
|
def restrict_deleting_last_financial_transaction_type
|
|
|
|
raise I18n.t('model.financial_transaction_type.no_delete_last') if FinancialTransactionType.count == 1
|
|
|
|
end
|
|
|
|
end
|