invoice_keeper/app/models/invoice.rb

29 lines
987 B
Ruby

class Invoice < ApplicationRecord
belongs_to :user
belongs_to :user_firm
belongs_to :customer
has_many :invoice_products, inverse_of: :invoice, dependent: :destroy
accepts_nested_attributes_for :invoice_products, allow_destroy: true
def netto_amount
invoice_products.sum('invoice_products.netto_price * invoice_products.qty')
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