Merge pull request #1203 from internetee/add-registrar-iban

Add registrar IBAN
This commit is contained in:
Timo Võhmar 2019-06-12 13:37:27 +03:00 committed by GitHub
commit 09a6a3f769
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
17 changed files with 90 additions and 4 deletions

View file

@ -3,6 +3,7 @@ module Admin
load_and_authorize_resource load_and_authorize_resource
before_action :set_registrar, only: [:show, :edit, :update, :destroy] before_action :set_registrar, only: [:show, :edit, :update, :destroy]
helper_method :registry_vat_rate helper_method :registry_vat_rate
helper_method :iban_max_length
def index def index
@q = Registrar.joins(:accounts).ordered.search(params[:q]) @q = Registrar.joins(:accounts).ordered.search(params[:q])
@ -73,11 +74,16 @@ module Admin
:vat_rate, :vat_rate,
:accounting_customer_code, :accounting_customer_code,
:billing_email, :billing_email,
:iban,
:language) :language)
end end
def registry_vat_rate def registry_vat_rate
Registry.current.vat_rate Registry.current.vat_rate
end end
def iban_max_length
Iban.max_length
end
end end
end end

View file

@ -1,6 +1,7 @@
class Registrar class Registrar
class AccountController < BaseController class AccountController < BaseController
skip_authorization_check skip_authorization_check
helper_method :iban_max_length
def show; end def show; end
@ -18,7 +19,11 @@ class Registrar
private private
def registrar_params def registrar_params
params.require(:registrar).permit(:billing_email) params.require(:registrar).permit(:billing_email, :iban)
end
def iban_max_length
Iban.max_length
end end
end end
end end

5
app/models/iban.rb Normal file
View file

@ -0,0 +1,5 @@
class Iban
def self.max_length
34
end
end

View file

@ -67,6 +67,16 @@
</div> </div>
<% end %> <% end %>
</div> </div>
<div class="form-group">
<div class="col-md-4 control-label">
<%= f.label :iban %>
</div>
<div class="col-md-7">
<%= f.text_field :iban, maxlength: iban_max_length, class: 'form-control' %>
<span class="help-block"><%= t '.iban_hint' %></span>
</div>
</div>
</div> </div>
</div> </div>
</div> </div>

View file

@ -19,6 +19,9 @@
<dt><%= Registrar.human_attribute_name :reference_no %></dt> <dt><%= Registrar.human_attribute_name :reference_no %></dt>
<dd><%= registrar.reference_no %></dd> <dd><%= registrar.reference_no %></dd>
<dt><%= Registrar.human_attribute_name :iban %></dt>
<dd><%= registrar.iban %></dd>
</dl> </dl>
</div> </div>
</div> </div>

View file

@ -7,6 +7,9 @@
<dl class="dl-horizontal"> <dl class="dl-horizontal">
<dt><%= Registrar.human_attribute_name :billing_email %></dt> <dt><%= Registrar.human_attribute_name :billing_email %></dt>
<dd><%= registrar.billing_email %></dd> <dd><%= registrar.billing_email %></dd>
<dt><%= Registrar.human_attribute_name :iban %></dt>
<dd><%= registrar.iban %></dd>
</dl> </dl>
</div> </div>

View file

@ -11,6 +11,17 @@
</div> </div>
</div> </div>
<div class="form-group">
<div class="col-sm-2 control-label">
<%= f.label :iban %>
</div>
<div class="col-sm-4">
<%= f.text_field :iban, maxlength: iban_max_length, class: 'form-control' %>
<span class="help-block"><%= t '.iban_hint' %></span>
</div>
</div>
<hr> <hr>
<div class="row"> <div class="row">

View file

@ -3,13 +3,13 @@
</div> </div>
<div class="row"> <div class="row">
<div class="col-sm-5"> <div class="col-sm-6">
<%= render 'details', registrar: current_registrar_user.registrar %> <%= render 'details', registrar: current_registrar_user.registrar %>
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-sm-5"> <div class="col-sm-6">
<%= render 'linked_users', linked_users: current_registrar_user.linked_users %> <%= render 'linked_users', linked_users: current_registrar_user.linked_users %>
</div> </div>
</div> </div>

View file

@ -63,6 +63,7 @@ en:
registry's rate of %{registry_vat_rate} will be applied in this case. registry's rate of %{registry_vat_rate} will be applied in this case.
no_reference_number_hint: Reference number will be generated automatically no_reference_number_hint: Reference number will be generated automatically
disabled_reference_number_hint: Reference number cannot be changed disabled_reference_number_hint: Reference number cannot be changed
iban_hint: Used for e-invoices
preferences: preferences:
header: Preferences header: Preferences

View file

@ -692,3 +692,4 @@ en:
ipv4: IPv4 ipv4: IPv4
ipv6: IPv6 ipv6: IPv6
reference_no: Reference number reference_no: Reference number
iban: IBAN

View file

@ -8,6 +8,7 @@ en:
header: Edit your account header: Edit your account
form: form:
iban_hint: Required for sending e-invoices to the bank
submit_btn: Save changes submit_btn: Save changes
update: update:

View file

@ -0,0 +1,5 @@
class AddRegistrarsIban < ActiveRecord::Migration
def change
add_column :registrars, :iban, :string
end
end

View file

@ -2200,7 +2200,8 @@ CREATE TABLE public.registrars (
reference_no character varying NOT NULL, reference_no character varying NOT NULL,
test_registrar boolean DEFAULT false, test_registrar boolean DEFAULT false,
language character varying NOT NULL, language character varying NOT NULL,
vat_rate numeric(4,3) vat_rate numeric(4,3),
iban character varying
); );
@ -4966,5 +4967,7 @@ INSERT INTO schema_migrations (version) VALUES ('20190510090240');
INSERT INTO schema_migrations (version) VALUES ('20190510102549'); INSERT INTO schema_migrations (version) VALUES ('20190510102549');
INSERT INTO schema_migrations (version) VALUES ('20190515113153');
INSERT INTO schema_migrations (version) VALUES ('20190520093231'); INSERT INTO schema_migrations (version) VALUES ('20190520093231');

View file

@ -11,6 +11,7 @@ bestnames:
billing_email: billing@bestnames.test billing_email: billing@bestnames.test
website: https://bestnames.test website: https://bestnames.test
reference_no: 13 reference_no: 13
iban: GB33BUKB20201555555555
goodnames: goodnames:
name: Good Names name: Good Names

View file

@ -0,0 +1,20 @@
require 'test_helper'
class AdminAreaRegistrarsIntegrationTest < ActionDispatch::IntegrationTest
include Devise::Test::IntegrationHelpers
setup do
@registrar = registrars(:bestnames)
sign_in users(:admin)
end
def test_updates_registrar_optional_attributes
new_iban = 'GB94BARC10201530093459'
assert_not_equal new_iban, @registrar.iban
patch admin_registrar_path(@registrar), registrar: { iban: new_iban }
@registrar.reload
assert_equal new_iban, @registrar.iban
end
end

7
test/models/iban_test.rb Normal file
View file

@ -0,0 +1,7 @@
require 'test_helper'
class IbanTest < ActiveSupport::TestCase
def test_returns_max_length
assert_equal 34, Iban.max_length
end
end

View file

@ -8,15 +8,19 @@ class RegistrarAccountTest < ApplicationSystemTestCase
def test_updates_account def test_updates_account
new_billing_email = 'new@registrar.test' new_billing_email = 'new@registrar.test'
new_iban = 'GB77BARC20201530093459'
assert_not_equal new_billing_email, @registrar.billing_email assert_not_equal new_billing_email, @registrar.billing_email
assert_not_equal new_iban, @registrar.iban
visit registrar_account_path visit registrar_account_path
click_on 'Edit' click_on 'Edit'
fill_in 'Billing email', with: new_billing_email fill_in 'Billing email', with: new_billing_email
fill_in 'IBAN', with: new_iban
click_on 'Save changes' click_on 'Save changes'
assert_text 'Your account has been updated' assert_text 'Your account has been updated'
assert_text new_billing_email assert_text new_billing_email
assert_text new_iban
end end
end end