class ErpOrders::Taxation
Public Instance Methods
calculate_online_tax(taxed_record, ctx)
click to toggle source
for online sales tax is only applied if the item purchased is being shipped to the same state the product is being shipped from
# File lib/erp_orders/taxation.rb, line 16 def calculate_online_tax(taxed_record, ctx) # use yaml file for now, eventually needs to be updated to use tax service tax_service = YAML.load_file(File.join(Rails.root, 'config', 'taxes.yml')).symbolize_keys # if the origin state is the same as the destination state # determine taxes else taxes are 0 if ctx[:origin_address][:state] == ctx[:destination_address][:state] taxes = (tax_service[:state_tax_rate] * ctx[:amount]).round(2) taxed_record.taxed = true taxed_record.sales_tax = taxes taxed_record.save! # create a tax line to record the tax rate if taxed_record.sales_tax_lines.empty? sales_tax_line = SalesTaxLine.new sales_tax_line.taxed_record = taxed_record else sales_tax_line = taxed_record.sales_tax_lines.first end sales_tax_line.rate = tax_service[:state_tax_rate] sales_tax_line.save! else taxes = 0 taxed_record.taxed = false taxed_record.sales_tax = taxes taxed_record.save end taxes end
calculate_tax(taxed_record, ctx)
click to toggle source
# File lib/erp_orders/taxation.rb, line 6 def calculate_tax(taxed_record, ctx) if ctx[:is_online_sale] calculate_online_tax(taxed_record, ctx) end end