class Xeroizer::Record::LineItem
Constants
- TAX_TYPE
Public Class Methods
new(parent)
click to toggle source
Calls superclass method
# File lib/xeroizer/models/line_item.rb, line 27 def initialize(parent) super(parent) @line_amount_set = false end
Public Instance Methods
line_amount(summary_only = false)
click to toggle source
Calculate the line_total (if there is a quantity and unit_amount). Description-only lines have been allowed since Xero V2.09.
# File lib/xeroizer/models/line_item.rb, line 39 def line_amount(summary_only = false) return attributes[:line_amount] if summary_only || @line_amount_set if quantity && unit_amount total = coerce_numeric(quantity) * coerce_numeric(unit_amount) if discount_rate.nonzero? BigDecimal((total * ((100 - discount_rate) / 100)).to_s).round(2) elsif discount_amount BigDecimal((total - discount_amount).to_s).round(2) else BigDecimal(total.to_s).round(2) end end end
line_amount=(line_amount)
click to toggle source
# File lib/xeroizer/models/line_item.rb, line 32 def line_amount=(line_amount) @line_amount_set = true attributes[:line_amount] = line_amount end
Private Instance Methods
coerce_numeric(number)
click to toggle source
# File lib/xeroizer/models/line_item.rb, line 56 def coerce_numeric(number) return number if number.is_a? Numeric BigDecimal(number) end