Sha256: 145daf36ffdf5b33e64d3d9c3aa9d8e0ffd219457737ef547f474144e3c76bb4

Contents?: true

Size: 645 Bytes

Versions: 10

Compression:

Stored size: 645 Bytes

Contents

class TaxCategory < ActiveRecord::Base
  validates :name, :presence => true, :uniqueness => true

  has_many :tax_rates

  before_save :set_default_category

  def set_default_category
    #set existing default tax category to false if this one has been marked as default

    if is_default && tax_category = TaxCategory.find(:first, :conditions => {:is_default => true})
      tax_category.update_attribute(:is_default, false)
    end
  end

  def effective_amount(address=nil)
    address ||= Address.new(:country_id => Spree::Config[:default_country_id])

    self.tax_rates.detect{|rate| rate.zone.include? address }.try(:amount) 
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
spree_core-0.70.7 app/models/tax_category.rb
spree_core-0.70.6 app/models/tax_category.rb
spree_core-0.70.5 app/models/tax_category.rb
spree_core-0.70.4 app/models/tax_category.rb
spree_core-0.70.3 app/models/tax_category.rb
spree_core-0.70.2 app/models/tax_category.rb
spree_core-0.70.1 app/models/tax_category.rb
spree_core-0.70.0 app/models/tax_category.rb
spree_core-0.70.0.rc2 app/models/tax_category.rb
spree_core-0.70.RC1 app/models/tax_category.rb