Sha256: 6e2ee7be55887618b68cae99e9734094997c0d4d728bf1e93e7a653798eac9ac

Contents?: true

Size: 1.03 KB

Versions: 5

Compression:

Stored size: 1.03 KB

Contents

module TaxJp
  module ConsumptionTaxes
  end
  
  class ConsumptionTax
    @@consumption_taxes = TaxJp::Utils.load_yaml('消費税.yml')

    attr_reader :valid_from
    attr_reader :national, :local, :total

    def initialize(valid_from, values)
      @valid_from = valid_from
      @national = values['national']
      @local = values['local']
      @total = values['total']
    end

    def self.all
      ret = []
      @@consumption_taxes.each do |valid_from, values|
        ret << ConsumptionTax.new(valid_from, values)
      end
      ret
    end

    def self.rate_on(date, options = {})
      if date.is_a?(String)
        date = Date.parse(date)
      end

      ret = 0
      @@consumption_taxes.reverse_each do |valid_from, rate|
        ret = rate['total']
        break if date >= valid_from
      end

      if options[:percent]
        ret *= 100
      end

      ret
    end

    def national_percent
      national * 100
    end

    def local_percent
      local * 100
    end

    def total_percent
      total * 100
    end

  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
tax_jp-1.0.1 lib/tax_jp/consumption_tax.rb
tax_jp-1.0.0 lib/tax_jp/consumption_tax.rb
tax_jp-0.6.2 lib/tax_jp/consumption_tax.rb
tax_jp-0.6.1 lib/tax_jp/consumption_tax.rb
tax_jp-0.6.0 lib/tax_jp/consumption_tax.rb