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