Add configurable invoice due date #2775

This commit is contained in:
Martin Lensment 2015-07-27 18:08:13 +03:00
parent 48af3e77cd
commit 95a73327db
9 changed files with 18 additions and 11 deletions

View file

@ -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,

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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)

View file

@ -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