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