29 lines
894 B
Ruby
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
|