Add registrar VAT rate

#623
This commit is contained in:
Artur Beljajev 2017-11-23 23:27:06 +02:00
parent 6f9ea85a95
commit c47ca77ca6
9 changed files with 105 additions and 1 deletions

View file

@ -17,10 +17,22 @@ class Registrar < ActiveRecord::Base
validates :name, :reg_no, :reference_no, :code, uniqueness: true
validates :accounting_customer_code, presence: true
validates :language, presence: true
validates :vat_rate, :vat_no, absence: true, if: :local_vat_payer?
validates :vat_rate, presence: true, if: 'foreign_vat_payer? && vat_no.blank?'
validates :vat_rate, absence: true, if: 'foreign_vat_payer? && vat_no?'
validates :vat_rate, numericality: { greater_than_or_equal_to: 0, less_than_or_equal_to: 99 }, allow_nil: true
validate :forbidden_codes
after_initialize :set_defaults
before_save do
self.vat_rate = vat_rate / 100.0 if vat_rate
end
after_find do |registrar|
registrar.vat_rate = registrar.vat_rate * 100 if registrar.vat_rate
end
def forbidden_codes
return true unless ['CID'].include? code
errors.add(:code, I18n.t(:forbidden_code))
@ -163,4 +175,12 @@ class Registrar < ActiveRecord::Base
def set_defaults
self.language = Setting.default_language unless language
end
def local_vat_payer?
country == Registry.instance.legal_address_country
end
def foreign_vat_payer?
!local_vat_payer?
end
end