Skip to content

Instantly share code, notes, and snippets.

@msevestre
Created June 13, 2012 18:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save msevestre/2925678 to your computer and use it in GitHub Desktop.
Save msevestre/2925678 to your computer and use it in GitHub Desktop.
Override TaxRate
Spree::TaxRate.class_eval do
attr_accessible :name
# Creates necessary tax adjustments for the order.
def adjust(order)
label = create_label
if included_in_price
if Zone.default_tax.contains? order.tax_zone
order.line_items.each { |line_item| create_adjustment(label, line_item, line_item) }
else
amount = -1 * calculator.compute(order)
label = I18n.t(:refund) + label
order.adjustments.create({:amount => amount,
:source => order,
:originator => self,
:locked => true,
:label => label}, :without_protection => true)
end
else
create_adjustment(label, order, order)
end
end
private
def create_label
"#{name.presence||tax_category.name} #{amount * 100}%"
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment