diff --git a/app/controllers/admin/settings_controller.rb b/app/controllers/admin/settings_controller.rb index 7c91bcbb0..b2e5c98b6 100644 --- a/app/controllers/admin/settings_controller.rb +++ b/app/controllers/admin/settings_controller.rb @@ -43,6 +43,7 @@ class Admin::SettingsController < AdminController settings[k] = v.to_i if Setting[k].class == Fixnum settings[k] = v.to_f if Setting[k].class == Float settings[k] = (v == 'true' ? true : false) if [TrueClass, FalseClass].include?(Setting[k].class) + settings[k] = v if Setting[k].class == String end settings end diff --git a/app/models/invoice.rb b/app/models/invoice.rb index aa5a8c430..7c05e6cf0 100644 --- a/app/models/invoice.rb +++ b/app/models/invoice.rb @@ -19,7 +19,7 @@ class Invoice < ActiveRecord::Base def set_invoice_number last_no = Invoice.order(number: :desc).where('number IS NOT NULL').limit(1).pluck(:number).first - if last_no + if last_no && last_no >= Setting.invoice_number_min.to_i self.number = last_no + 1 else self.number = Setting.invoice_number_min.to_i @@ -40,7 +40,7 @@ class Invoice < ActiveRecord::Base cr_at = Time.zone.now - Setting.days_to_keep_overdue_invoices_active.days invoices = Invoice.unbinded.where( - 'due_date < ? AND created_at < ? AND cancelled_at IS NULL', Time.zone.now, cr_at + 'due_date < ? AND cancelled_at IS NULL', cr_at ) count = invoices.update_all(cancelled_at: Time.zone.now) diff --git a/config/initializers/initial_settings.rb b/config/initializers/initial_settings.rb index 824cf0fcc..3f63f3ecd 100644 --- a/config/initializers/initial_settings.rb +++ b/config/initializers/initial_settings.rb @@ -28,8 +28,8 @@ if con.present? && con.table_exists?('settings') Setting.save_default(:eis_bank, 'LHV Pank') Setting.save_default(:eis_swift, 'LHVBEE22') Setting.save_default(:eis_invoice_contact, 'Martti Õigus') - Setting.save_default(:invoice_number_min, '131050') - Setting.save_default(:invoice_number_max, '149999') + Setting.save_default(:invoice_number_min, 131050) + Setting.save_default(:invoice_number_max, 149999) Setting.save_default(:days_to_keep_overdue_invoices_active, 30) Setting.save_default(:days_to_renew_domain_before_expire, 90) Setting.save_default(:expire_warning_period, 15) diff --git a/spec/models/invoice_spec.rb b/spec/models/invoice_spec.rb index 54a640d2d..b4f1d3908 100644 --- a/spec/models/invoice_spec.rb +++ b/spec/models/invoice_spec.rb @@ -71,7 +71,7 @@ describe Invoice do end it 'should cancel overdue invoices' do - Fabricate(:invoice, created_at: Time.zone.now - 35.days, due_date: Time.zone.now - 1.days) + Fabricate(:invoice, created_at: Time.zone.now - 35.days, due_date: Time.zone.now - 30.days) Invoice.cancel_overdue_invoices Invoice.where(cancelled_at: nil).count.should == 1 end