lib/xeroizer/models/line_item.rb in xeroizer-2.20.0 vs lib/xeroizer/models/line_item.rb in xeroizer-3.0.0

- old
+ new

@@ -2,11 +2,11 @@ require 'xeroizer/models/line_amount_type' module Xeroizer module Record class LineItemModel < BaseModel - + set_permissions end class LineItem < Base TAX_TYPE = Account::TAX_TYPE unless defined?(TAX_TYPE) @@ -22,10 +22,12 @@ decimal :discount_amount string :line_item_id has_many :tracking, :model_name => 'TrackingCategoryChild' + validates_presence_of :description, :unless => Proc.new { |line_item| line_item.item_code.present? } + def initialize(parent) super(parent) @line_amount_set = false end @@ -40,10 +42,10 @@ 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) + BigDecimal((total * ((100 - discount_rate.to_f) / 100)).to_s).round(2) elsif discount_amount BigDecimal((total - discount_amount).to_s).round(2) else BigDecimal(total.to_s).round(2) end