module ExpenseGun class ExpenseLine < ActiveRecord::Base belongs_to :expense belongs_to :category def initialize(h = {}) super({company_part: 100}.merge(h)) end validates :expense, presence: true validates :name, presence: true validates :date, presence: true validates :category, presence: true validates :total_all_taxes, presence: true, numericality: {greater_than_or_equal_to: 1.0} validates :vat, presence: true, numericality: {greater_than_or_equal_to: 1.0} validates :company_part, presence: true, numericality: {greater_than_or_equal_to: 1.0, less_than_or_equal_to: 100.0} def employee_payback (total_all_taxes * company_part / 100) end def total_vat_deductible category.vat_deductible == true ? vat : 0.0 end end end