diff --git a/.gitignore b/.gitignore index ce3a6a4..dbb0e1d 100644 --- a/.gitignore +++ b/.gitignore @@ -16,7 +16,7 @@ /tmp/* !/log/.keep !/tmp/.keep - +.tags # Ignore Byebug command history file. .byebug_history Gemfile.lock diff --git a/Gemfile b/Gemfile index 99b6073..bd75104 100644 --- a/Gemfile +++ b/Gemfile @@ -1,8 +1,7 @@ source 'http://rubygems.org' - # Bundle edge Rails instead: gem 'rails', github: 'rails/rails' -gem 'rails', '~> 5.1.4' +gem 'rails', '~> 5.0.0' # Use sqlite3 as the database for Active Record # gem 'sqlite3' gem 'momentjs-rails', '>= 2.9.0' @@ -10,7 +9,7 @@ gem 'bootstrap3-datetimepicker-rails', '~> 4.14.30' gem 'devise' gem 'mysql2' # Use Puma as the app server -gem 'puma', '~> 3.7' +gem 'puma', '~> 3.0' # Use SCSS for stylesheets gem 'sass-rails', '~> 5.0' # Use Uglifier as compressor for JavaScript assets @@ -31,7 +30,7 @@ gem 'jbuilder', '~> 2.5' # gem 'redis', '~> 3.0' # Use ActiveModel has_secure_password # gem 'bcrypt', '~> 3.1.7' - +gem 'cocoon' # Use Capistrano for deployment # gem 'capistrano-rails', group: :development gem 'wicked_pdf' diff --git a/app/controllers/invoices_controller.rb b/app/controllers/invoices_controller.rb index b005758..23adda8 100644 --- a/app/controllers/invoices_controller.rb +++ b/app/controllers/invoices_controller.rb @@ -1,14 +1,14 @@ # encoding: utf-8 class InvoicesController < ApplicationController def index - @invoices = Invoice.where(user_id: current_user.id) + @invoices = Invoice.where(user_id: current_user.id).order('created_at DESC') end def show @invoice = Invoice.find(params[:id]) @vats = Vat.all respond_to do |format| - format.html {@inv_format = 'html'} + format.html { @inv_format = 'html' } format.pdf do render pdf: "Faktura_VAT_#{@invoice.id}", # Excluding ".pdf" extension. disposition: 'attachment', @@ -16,21 +16,23 @@ class InvoicesController < ApplicationController encoding: 'UTF-8', page_size: 'A4', print_media_type: true, - margin: { top: 8, # default 10 (mm) - bottom: 8, - left: 8, - right: 8 }, - viewport_size: '1336x1024' + render pdf: "Faktura_VAT_#{@invoice.id}", # Excluding ".pdf" extension. + disposition: 'attachment', + layout: 'pdf', + encoding: 'UTF-8', + page_size: 'A4', + margin: { top: 8, bottom: 8, left: 8, right: 8 }, + viewport_size: '1336x1024' end end end def new @invoice = Invoice.new(date: Date.today, date_of_payment: Date.today + 14.days) - inv = Invoice.where('date > ?', Date.new(Date.today.year,1,1)).last - if !inv.blank? + inv = Invoice.where('date > ?', Date.new(Date.today.year, 1, 1)).last + unless inv.blank? nr = inv.number - new_nr = (nr.split("/")[0].to_i + 1).to_s + "/" + nr.split("/")[1] + new_nr = (nr.split('/')[0].to_i + 1).to_s + '/' + nr.split('/')[1] @invoice.number = new_nr end @invoice.invoice_products.build @@ -74,7 +76,11 @@ class InvoicesController < ApplicationController end private + def invoice_params - params.require(:invoice).permit(:number, :user_firm_id, :customer_id, :date, :date_of_payment, invoice_products_attributes: [:id, :product_id, :qty, :netto_price, :_destroy]) + params.require(:invoice) + .permit(:number, :user_firm_id, :customer_id, :date, + :date_of_payment, + invoice_products_attributes: [:id, :product_id, :qty, :netto_price, :_destroy]) end end diff --git a/app/models/invoice.rb b/app/models/invoice.rb index 19670ef..8d63e5a 100644 --- a/app/models/invoice.rb +++ b/app/models/invoice.rb @@ -2,11 +2,11 @@ class Invoice < ApplicationRecord belongs_to :user belongs_to :user_firm belongs_to :customer - has_many :invoice_products, inverse_of: :invoice + has_many :invoice_products, inverse_of: :invoice, dependent: :destroy accepts_nested_attributes_for :invoice_products, allow_destroy: true def netto_amount - 0.0 + invoice_products.sum('invoice_products.netto_price * invoice_products.qty') end def products_with_tax(vat_id) diff --git a/app/views/invoices/_show.html.erb b/app/views/invoices/_show.html.erb index 249d2b7..7904a77 100644 --- a/app/views/invoices/_show.html.erb +++ b/app/views/invoices/_show.html.erb @@ -166,7 +166,7 @@