diff --git a/app/controllers/admin/settings_controller.rb b/app/controllers/admin/settings_controller.rb index 805c983f4..7cdcf323b 100644 --- a/app/controllers/admin/settings_controller.rb +++ b/app/controllers/admin/settings_controller.rb @@ -53,6 +53,7 @@ class Admin::SettingsController < AdminController :transfer_wait_time, :invoice_number_min, :invoice_number_max, + :days_to_keep_invoices_active, :days_to_keep_overdue_invoices_active, :days_to_renew_domain_before_expire, :expire_warning_period, diff --git a/app/models/registrar.rb b/app/models/registrar.rb index 1da3f2d20..d5ba8bd9a 100644 --- a/app/models/registrar.rb +++ b/app/models/registrar.rb @@ -72,10 +72,11 @@ class Registrar < ActiveRecord::Base end # rubocop:disable Metrics/MethodLength + # rubocop:disable Metrics/AbcSize def issue_prepayment_invoice(amount, description = nil) invoices.create( invoice_type: 'DEB', - due_date: Time.zone.now.to_date + 1.day, + due_date: (Time.zone.now.to_date + Setting.days_to_keep_invoices_active.days).end_of_day, payment_term: 'prepayment', description: description, currency: 'EUR', @@ -117,6 +118,7 @@ class Registrar < ActiveRecord::Base ] ) end + # rubocop:enable Metrics/AbcSize # rubocop:enable Metrics/MethodLength def cash_account diff --git a/app/views/admin/invoices/index.haml b/app/views/admin/invoices/index.haml index 837300133..a79c66f5d 100644 --- a/app/views/admin/invoices/index.haml +++ b/app/views/admin/invoices/index.haml @@ -24,10 +24,10 @@ - if x.cancelled? %td.text-grey= t(:cancelled) - else - %td= l(x.due_date) + %td= l(x.due_date, format: :date_long) - if x.binded? - %td= l(x.receipt_date) + %td= l(x.receipt_date, format: :date_long) - elsif x.cancelled? %td.text-grey= t(:cancelled) - else diff --git a/app/views/admin/settings/index.haml b/app/views/admin/settings/index.haml index b47a23384..7b727146d 100644 --- a/app/views/admin/settings/index.haml +++ b/app/views/admin/settings/index.haml @@ -65,6 +65,7 @@ %tbody = render 'setting_row', var: :invoice_number_min = render 'setting_row', var: :invoice_number_max + = render 'setting_row', var: :days_to_keep_invoices_active = render 'setting_row', var: :days_to_keep_overdue_invoices_active = render 'setting_row', var: :registry_billing_email = render 'setting_row', var: :registry_invoice_contact diff --git a/app/views/registrar/invoices/index.haml b/app/views/registrar/invoices/index.haml index e20158ea7..ed543f381 100644 --- a/app/views/registrar/invoices/index.haml +++ b/app/views/registrar/invoices/index.haml @@ -61,13 +61,13 @@ %tr %td= link_to(x, [:registrar, x]) - if x.receipt_date - %td= l(x.receipt_date) + %td= l(x.receipt_date, format: :date_long) - elsif x.cancelled? %td.text-grey= t(:cancelled) - else %td{class: 'text-danger'}= t(:unpaid) - %td= l(x.due_date) + %td= l(x.due_date, format: :date_long) %td= x.sum .row .col-md-12 diff --git a/app/views/registrar/invoices/partials/_details.haml b/app/views/registrar/invoices/partials/_details.haml index 07a2d0761..0b897ce7f 100644 --- a/app/views/registrar/invoices/partials/_details.haml +++ b/app/views/registrar/invoices/partials/_details.haml @@ -2,21 +2,21 @@ %hr %dl.dl-horizontal %dt= t(:issue_date) - %dd= l(@invoice.created_at) + %dd= l(@invoice.created_at, format: :date_long) - if @invoice.cancelled? %dt= t(:cancel_date) - %dd= l(@invoice.cancelled_at) + %dd= l(@invoice.cancelled_at, format: :date_long) %dt= t(:due_date) - if @invoice.cancelled? %dd.text-grey= t(:cancelled) - else - %dd= l(@invoice.due_date) + %dd= l(@invoice.due_date, format: :date_long) %dt= t(:receipt_date) - if @invoice.binded? - %dd= l(@invoice.receipt_date) + %dd= l(@invoice.receipt_date, format: :date_long) - elsif @invoice.cancelled? %dd.text-grey= t(:cancelled) - else diff --git a/config/initializers/initial_settings.rb b/config/initializers/initial_settings.rb index 1417ef7e3..9fbea8343 100644 --- a/config/initializers/initial_settings.rb +++ b/config/initializers/initial_settings.rb @@ -27,6 +27,7 @@ if con.present? && con.table_exists?('settings') Setting.save_default(:invoice_number_min, 131050) Setting.save_default(:invoice_number_max, 149999) + Setting.save_default(:days_to_keep_invoices_active, 30) 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/registrar_spec.rb b/spec/models/registrar_spec.rb index 98219bf85..e754664ac 100644 --- a/spec/models/registrar_spec.rb +++ b/spec/models/registrar_spec.rb @@ -122,11 +122,13 @@ describe Registrar do end it 'should be able to issue a prepayment invoice' do + Setting.days_to_keep_invoices_active = 30 Fabricate(:registrar, name: 'EIS', reg_no: '90010019') @registrar.issue_prepayment_invoice(200, 'add some money') @registrar.invoices.count.should == 1 i = @registrar.invoices.first i.sum.should == BigDecimal.new('240.0') + i.due_date.should be_within(0.1).of((Time.zone.now + 30.days).end_of_day) i.description.should == 'add some money' end diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb index c36859300..fc25543f2 100644 --- a/spec/rails_helper.rb +++ b/spec/rails_helper.rb @@ -49,8 +49,8 @@ def create_settings Setting.client_side_status_editing_enabled = true # speedup and easier to create fabrications - @fixed_registrar = - Registrar.find_by_name('fixed registrar') || + @fixed_registrar = + Registrar.find_by_name('fixed registrar') || Fabricate(:registrar, name: 'fixed registrar', code: 'FIXED') end