mirror of
https://github.com/internetee/registry.git
synced 2025-07-27 21:16:12 +02:00
44 lines
1,017 B
Ruby
44 lines
1,017 B
Ruby
class AccountActivity < ApplicationRecord
|
|
include Versions
|
|
belongs_to :account, required: true
|
|
belongs_to :bank_transaction
|
|
belongs_to :invoice
|
|
belongs_to :price, class_name: 'Billing::Price'
|
|
|
|
CREATE = 'create'.freeze
|
|
RENEW = 'renew'.freeze
|
|
ADD_CREDIT = 'add_credit'.freeze
|
|
UPDATE_CREDIT = 'update_credit'.freeze
|
|
|
|
after_create :update_balance
|
|
|
|
def update_balance
|
|
account.balance += sum
|
|
account.save
|
|
|
|
self.new_balance = account.balance
|
|
save
|
|
end
|
|
|
|
def as_csv_row
|
|
[account.registrar.try(:code), description, I18n.t(activity_type), I18n.l(created_at), sum]
|
|
end
|
|
|
|
class << self
|
|
def ransackable_associations(*)
|
|
authorizable_ransackable_associations
|
|
end
|
|
|
|
def ransackable_attributes(*)
|
|
authorizable_ransackable_attributes
|
|
end
|
|
|
|
def types_for_select
|
|
[CREATE, RENEW, ADD_CREDIT, UPDATE_CREDIT].map { |x| [I18n.t(x), x] }
|
|
end
|
|
|
|
def csv_header
|
|
['Registrar', 'Description', 'Activity Type', 'Receipt Date', 'Sum']
|
|
end
|
|
end
|
|
end
|