Sha256: da9bca145aab192c4b9d44b063d8296512343e41ce5045dc7c6ec1167f95bd52

Contents?: true

Size: 1.06 KB

Versions: 12

Compression:

Stored size: 1.06 KB

Contents

module Piggybak
  class TaxCalculator::Percent
    KEYS = ["state_id", "rate"]

    def self.available?(method, object)
      id = method.metadata.detect { |t| t.key == "state_id" }.value

      if object.is_a?(Cart)
        if object.extra_data[:state_id] != ""
          state = State.find(object.extra_data[:state_id])
          return state.id == id.to_i if state
        end
      else
        if object.billing_address && object.billing_address.state 
          return object.billing_address.state.id == id.to_i
        end
      end
      return false
    end

    def self.rate(method, object)
      taxable_total = object.subtotal
      if object.is_a?(::Piggybak::Order)
        Piggybak.config.line_item_types.each do |k, v|
          if v.has_key?(:reduce_tax_subtotal) && v[:reduce_tax_subtotal]
            taxable_total += object.send("#{k}_charge")
          end
        end
      else
        taxable_total += object.extra_data[:reduce_tax_subtotal].to_f
      end
      (method.metadata.detect { |m| m.key == "rate" }.value.to_f * taxable_total).to_c
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
piggybak-0.6.34 app/models/piggybak/tax_calculator/percent.rb
piggybak-0.6.33 app/models/piggybak/tax_calculator/percent.rb
piggybak-0.6.32 app/models/piggybak/tax_calculator/percent.rb
piggybak-0.6.31 app/models/piggybak/tax_calculator/percent.rb
piggybak-0.6.30 app/models/piggybak/tax_calculator/percent.rb
piggybak-0.6.29 app/models/piggybak/tax_calculator/percent.rb
piggybak-0.6.28 app/models/piggybak/tax_calculator/percent.rb
piggybak-0.6.27 app/models/piggybak/tax_calculator/percent.rb
piggybak-0.6.26 app/models/piggybak/tax_calculator/percent.rb
piggybak-0.6.25 app/models/piggybak/tax_calculator/percent.rb
piggybak-0.6.24 app/models/piggybak/tax_calculator/percent.rb
piggybak-0.6.23 app/models/piggybak/tax_calculator/percent.rb