mirror of
https://github.com/internetee/registry.git
synced 2025-05-16 09:27:19 +02:00
Add reference numbers to registrars
This commit is contained in:
parent
d61ea17fea
commit
065df13805
7 changed files with 48 additions and 4 deletions
|
@ -11,6 +11,29 @@ class Registrar < ActiveRecord::Base
|
||||||
validates :name, :reg_no, :country_code, :email, presence: true
|
validates :name, :reg_no, :country_code, :email, presence: true
|
||||||
validates :name, :reg_no, uniqueness: true
|
validates :name, :reg_no, uniqueness: true
|
||||||
validate :set_code, if: :new_record?
|
validate :set_code, if: :new_record?
|
||||||
|
|
||||||
|
before_create :generate_iso_11649_reference_no
|
||||||
|
def generate_iso_11649_reference_no
|
||||||
|
return if reference_no.present?
|
||||||
|
|
||||||
|
loop do
|
||||||
|
base = nil
|
||||||
|
loop do
|
||||||
|
base = SecureRandom.random_number.to_s.last(8)
|
||||||
|
break if base.length == 8
|
||||||
|
end
|
||||||
|
|
||||||
|
control_base = (base + '2715' + '00').to_i
|
||||||
|
reminder = control_base % 97
|
||||||
|
check_digits = 98 - reminder
|
||||||
|
|
||||||
|
check_digits = check_digits < 10 ? "0#{check_digits}" : check_digits.to_s
|
||||||
|
|
||||||
|
self.reference_no = "RF#{check_digits}#{base}"
|
||||||
|
break unless self.class.exists?(reference_no: reference_no)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
after_save :touch_domains_version
|
after_save :touch_domains_version
|
||||||
|
|
||||||
validates :email, :billing_email, format: /@/, allow_blank: true
|
validates :email, :billing_email, format: /@/, allow_blank: true
|
||||||
|
|
|
@ -30,6 +30,9 @@
|
||||||
%dt= t('vat_no')
|
%dt= t('vat_no')
|
||||||
%dd= @registrar.vat_no
|
%dd= @registrar.vat_no
|
||||||
|
|
||||||
|
%dt= t('reference_no')
|
||||||
|
%dd= @registrar.reference_no
|
||||||
|
|
||||||
.col-md-6
|
.col-md-6
|
||||||
.panel.panel-default
|
.panel.panel-default
|
||||||
.panel-heading
|
.panel-heading
|
||||||
|
|
|
@ -369,7 +369,7 @@ en:
|
||||||
registrar_added: 'Registrar added!'
|
registrar_added: 'Registrar added!'
|
||||||
failed_to_add_registrar: 'Failed to add registrar'
|
failed_to_add_registrar: 'Failed to add registrar'
|
||||||
registrar_details: 'Registrar details'
|
registrar_details: 'Registrar details'
|
||||||
vat_no: 'Vat no'
|
vat_no: 'VAT no'
|
||||||
edit_registrar: 'Edit registrar'
|
edit_registrar: 'Edit registrar'
|
||||||
back_to_registrar: 'Back to registrar'
|
back_to_registrar: 'Back to registrar'
|
||||||
registrar_updated: 'Registrar updated'
|
registrar_updated: 'Registrar updated'
|
||||||
|
@ -684,11 +684,11 @@ en:
|
||||||
queried_at: 'Queried at'
|
queried_at: 'Queried at'
|
||||||
import_file_path: 'Import file path'
|
import_file_path: 'Import file path'
|
||||||
bank_code: 'Bank code'
|
bank_code: 'Bank code'
|
||||||
reference_no: 'Reference number'
|
reference_no: 'Reference no'
|
||||||
currency: 'Currency'
|
currency: 'Currency'
|
||||||
buyer_name: 'Buyer name'
|
buyer_name: 'Buyer name'
|
||||||
buyer_iban: 'Buyer IBAN'
|
buyer_iban: 'Buyer IBAN'
|
||||||
buyer_bank_code: 'Buyer bank code'
|
buyer_bank_code: 'Buyer bank code'
|
||||||
bank_reference: 'Bank reference'
|
bank_reference: 'Bank reference'
|
||||||
document_no: 'Document number'
|
document_no: 'Document no'
|
||||||
import_file: 'Import file'
|
import_file: 'Import file'
|
||||||
|
|
10
db/migrate/20150414092249_add_reference_no_to_registrar.rb
Normal file
10
db/migrate/20150414092249_add_reference_no_to_registrar.rb
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
class AddReferenceNoToRegistrar < ActiveRecord::Migration
|
||||||
|
def change
|
||||||
|
add_column :registrars, :reference_no, :string
|
||||||
|
|
||||||
|
Registrar.all.each do |x|
|
||||||
|
x.generate_iso_11649_reference_no
|
||||||
|
x.save
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
|
@ -11,7 +11,7 @@
|
||||||
#
|
#
|
||||||
# It's strongly recommended that you check this file into your version control system.
|
# It's strongly recommended that you check this file into your version control system.
|
||||||
|
|
||||||
ActiveRecord::Schema.define(version: 20150413115829) do
|
ActiveRecord::Schema.define(version: 20150414092249) do
|
||||||
|
|
||||||
# These are extensions that must be enabled in order to support this database
|
# These are extensions that must be enabled in order to support this database
|
||||||
enable_extension "plpgsql"
|
enable_extension "plpgsql"
|
||||||
|
@ -699,6 +699,7 @@ ActiveRecord::Schema.define(version: 20150413115829) do
|
||||||
t.string "directo_handle"
|
t.string "directo_handle"
|
||||||
t.boolean "vat"
|
t.boolean "vat"
|
||||||
t.integer "legacy_id"
|
t.integer "legacy_id"
|
||||||
|
t.string "reference_no"
|
||||||
end
|
end
|
||||||
|
|
||||||
add_index "registrars", ["code"], name: "index_registrars_on_code", using: :btree
|
add_index "registrars", ["code"], name: "index_registrars_on_code", using: :btree
|
||||||
|
|
|
@ -92,6 +92,13 @@ namespace :import do
|
||||||
|
|
||||||
Registrar.import registrars, validate: false
|
Registrar.import registrars, validate: false
|
||||||
|
|
||||||
|
puts "-----> Generating reference numbers"
|
||||||
|
|
||||||
|
Registrar.all.each do |x|
|
||||||
|
x.generate_iso_11649_reference_no
|
||||||
|
x.save(validate: false)
|
||||||
|
end
|
||||||
|
|
||||||
puts "-----> Imported #{count} new registrars in #{(Time.zone.now.to_f - start).round(2)} seconds"
|
puts "-----> Imported #{count} new registrars in #{(Time.zone.now.to_f - start).round(2)} seconds"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue