class Workarea::Avatax::TaxRequest::OrderLineItem

Attributes

adjustment[R]
order_item[R]
shipping[R]

Public Class Methods

new(order_item:, adjustment:, adjustment_set:, quantity: nil, shipping: nil) click to toggle source
# File lib/workarea/avatax/tax_request/order_line_item.rb, line 6
def initialize(order_item:, adjustment:, adjustment_set:, quantity: nil, shipping: nil)
  @order_item = order_item
  @adjustment = adjustment
  @adjustment_set = adjustment_set
  @quantity = quantity
  @shipping = shipping
end

Private Instance Methods

addresses() click to toggle source
# File lib/workarea/avatax/tax_request/order_line_item.rb, line 16
def addresses
  return unless address = shipping&.address

  {
    shipTo: {
      line1:      address.street,
      line2:      address.street_2,
      city:       address.city,
      region:     address.region,
      country:    address.country.alpha2,
      postalCode: address.postal_code
    }
  }
end
amount() click to toggle source
# File lib/workarea/avatax/tax_request/order_line_item.rb, line 35
def amount
  total = @adjustment_set.taxable_share_for adjustment
  if shipping.present? && shipping.partial?
    total *= quantity / order_item.quantity.to_f
  end
  total
end
description() click to toggle source
# File lib/workarea/avatax/tax_request/order_line_item.rb, line 58
def description
  return if order_item.product_attributes.empty?
  product.name
end
item_code() click to toggle source
# File lib/workarea/avatax/tax_request/order_line_item.rb, line 43
def item_code
  order_item.sku
end
product() click to toggle source
# File lib/workarea/avatax/tax_request/order_line_item.rb, line 51
def product
  @product ||= Mongoid::Factory.from_db(
    Catalog::Product,
    order_item.product_attributes
  )
end
quantity() click to toggle source
# File lib/workarea/avatax/tax_request/order_line_item.rb, line 31
def quantity
  @quantity || adjustment.quantity
end
tax_code() click to toggle source
# File lib/workarea/avatax/tax_request/order_line_item.rb, line 47
def tax_code
  adjustment.data["tax_code"]
end