invoice_keeper/app/models/invoice.rb

29 lines
894 B
Ruby

class Invoice < ApplicationRecord
belongs_to :user
belongs_to :user_firm
belongs_to :customer
has_many :invoice_products, inverse_of: :invoice
accepts_nested_attributes_for :invoice_products, allow_destroy: true
def netto_amount
0.0
end
def products_with_tax(vat_id)
self.invoice_products.joins(:product => :vat).where('vats.id = ?',vat_id)
end
def products_with_tax_sum_arr(vat_id)
sum = 0.0
vat = 0.0
total = 0.0
for invoice_product in self.invoice_products.joins(:product => :vat).where('vats.id = ?',vat_id)
sum += invoice_product.netto_price * invoice_product.qty
vat += (invoice_product.netto_price * (invoice_product.product.vat.tax_rate/100)) * invoice_product.qty
total += (invoice_product.netto_price * (invoice_product.product.vat.tax_rate/100 + 1)) * invoice_product.qty
end
return [sum,vat,total]
end
end