mirror of
https://github.com/internetee/registry.git
synced 2025-05-17 09:57:23 +02:00
Add configurable invoice due date #2775
This commit is contained in:
parent
48af3e77cd
commit
95a73327db
9 changed files with 18 additions and 11 deletions
|
@ -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,
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue