internetee-registry/lib/tasks/registrars/reload_balance.rake
2019-06-26 12:03:07 +03:00

32 lines
No EOL
1.1 KiB
Ruby

namespace :registrars do
desc 'Reloads balance of registrars'
task reload_balance: :environment do
include ActionView::Helpers::NumberHelper
invoiced_registrar_count = 0
Registrar.transaction do
Registrar.all.each do |registrar|
balance_auto_reload_setting = registrar.settings['balance_auto_reload']
next unless balance_auto_reload_setting
reload_pending = balance_auto_reload_setting['pending']
threshold_reached = registrar.balance <= balance_auto_reload_setting['type']['threshold']
reload_amount = balance_auto_reload_setting['type']['amount']
next if reload_pending || !threshold_reached
Registrar.transaction do
registrar.issue_prepayment_invoice(reload_amount)
registrar.settings['balance_auto_reload']['pending'] = true
registrar.save!
end
puts %(Registrar "#{registrar}" got #{number_to_currency(reload_amount, unit: 'EUR')})
invoiced_registrar_count += 1
end
end
puts "Invoiced total: #{invoiced_registrar_count}"
end
end