mirror of
https://github.com/internetee/registry.git
synced 2025-06-07 13:15:40 +02:00
32 lines
1.1 KiB
Ruby
32 lines
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
|