Improve settings #2670

This commit is contained in:
Martin Lensment 2015-06-30 11:49:52 +03:00
parent cce185cf9d
commit 731eb2aad4
4 changed files with 88 additions and 31 deletions

View file

@ -37,14 +37,45 @@ class Admin::SettingsController < AdminController
params.require(:setting_group).permit(settings_attributes: [:value, :id])
end
def casted_settings
def casted_settings # rubocop:disable Metrics/MethodLength
settings = {}
ints = [
:admin_contacts_min_count,
:admin_contacts_max_count,
:tech_contacts_min_count,
:tech_contacts_max_count,
:ds_algorithm,
:dnskeys_min_count,
:dnskeys_max_count,
:ns_min_count,
:ns_max_count,
:transfer_wait_time,
:invoice_number_min,
:invoice_number_max,
:days_to_keep_overdue_invoices_active,
:days_to_renew_domain_before_expire,
:expire_warning_period,
:redemption_grace_period
]
floats = [:registry_vat_prc]
booleans = [
:ds_data_allowed,
:key_data_allowed,
:client_side_status_editing_enabled,
:registrar_ip_whitelist_enabled,
:api_ip_whitelist_enabled
]
params[:settings].each do |k, v|
settings[k] = v.to_i if Setting[k].class == Fixnum
settings[k] = v.to_f if Setting[k].class == Float
settings[k] = (v == 'true' ? true : false) if [TrueClass, FalseClass].include?(Setting[k].class)
settings[k] = v if Setting[k].class == String
settings[k] = v
settings[k] = v.to_i if ints.include?(k.to_sym)
settings[k] = v.to_f if floats.include?(k.to_sym)
settings[k] = (v == 'true' ? true : false) if booleans.include?(k.to_sym)
end
settings
end
end

View file

@ -73,35 +73,30 @@ class Registrar < ActiveRecord::Base
end
end
# rubocop:disable Metrics/AbcSize
# rubocop:disable Metrics/MethodLength
def issue_prepayment_invoice(amount, description = nil)
# Currently only EIS can issue invoices
eis = self.class.eis
invoices.create(
invoice_type: 'DEB',
due_date: Time.zone.now.to_date + 1.day,
payment_term: 'prepayment',
description: description,
currency: 'EUR',
vat_prc: 0.2,
seller_id: eis.id,
seller_name: eis.name,
seller_reg_no: eis.reg_no,
seller_iban: Setting.eis_iban,
seller_bank: Setting.eis_bank,
seller_swift: Setting.eis_swift,
seller_vat_no: eis.vat_no,
seller_country_code: eis.country_code,
seller_state: eis.state,
seller_street: eis.street,
seller_city: eis.city,
seller_zip: eis.zip,
seller_phone: eis.phone,
seller_url: eis.url,
seller_email: eis.email,
seller_contact_name: Setting.eis_invoice_contact,
vat_prc: Setting.registry_vat_prc,
seller_name: Setting.registry_juridical_name,
seller_reg_no: Setting.registry_reg_no,
seller_iban: Setting.registry_iban,
seller_bank: Setting.registry_bank,
seller_swift: Setting.registry_swift,
seller_vat_no: Setting.registry_vat_no,
seller_country_code: Setting.registry_country_code,
seller_state: Setting.registry_state,
seller_street: Setting.registry_street,
seller_city: Setting.registry_city,
seller_zip: Setting.registry_zip,
seller_phone: Setting.registry_phone,
seller_url: Setting.registry_url,
seller_email: Setting.registry_email,
seller_contact_name: Setting.registry_invoice_contact,
buyer_id: id,
buyer_name: name,
buyer_reg_no: reg_no,
@ -124,7 +119,6 @@ class Registrar < ActiveRecord::Base
]
)
end
# rubocop:enable Metrics/AbcSize
# rubocop:enable Metrics/MethodLength
def cash_account

View file

@ -46,10 +46,24 @@
%th{class: 'col-xs-6'}= t(:setting)
%th{class: 'col-xs-6'}= t(:value)
%tbody
= render 'setting_row', var: :eis_iban
= render 'setting_row', var: :eis_bank
= render 'setting_row', var: :eis_swift
= render 'setting_row', var: :eis_invoice_contact
= render 'setting_row', var: :registry_juridical_name
= render 'setting_row', var: :registry_reg_no
= render 'setting_row', var: :registry_email
= render 'setting_row', var: :registry_billing_email
= render 'setting_row', var: :registry_phone
= render 'setting_row', var: :registry_country_code
= render 'setting_row', var: :registry_state
= render 'setting_row', var: :registry_street
= render 'setting_row', var: :registry_city
= render 'setting_row', var: :registry_zip
= render 'setting_row', var: :registry_vat_no
= render 'setting_row', var: :registry_url
= render 'setting_row', var: :registry_vat_prc
= render 'setting_row', var: :registry_iban
= render 'setting_row', var: :registry_bank
= render 'setting_row', var: :registry_swift
= render 'setting_row', var: :registry_invoice_contact
= render 'setting_row', var: :invoice_number_min
= render 'setting_row', var: :invoice_number_max
= render 'setting_row', var: :days_to_keep_overdue_invoices_active