mirror of
https://github.com/internetee/registry.git
synced 2025-06-12 07:34:45 +02:00
Add a pause at the e-invoice creation
This commit is contained in:
parent
c7298cde0c
commit
dbda76200d
3 changed files with 16 additions and 2 deletions
|
@ -2,6 +2,7 @@ class SendEInvoiceJob < ApplicationJob
|
||||||
discard_on HTTPClient::TimeoutError
|
discard_on HTTPClient::TimeoutError
|
||||||
|
|
||||||
def perform(invoice_id, payable = true)
|
def perform(invoice_id, payable = true)
|
||||||
|
logger.info "Started to process e-invoice for invoice_id #{invoice_id}"
|
||||||
invoice = Invoice.find_by(id: invoice_id)
|
invoice = Invoice.find_by(id: invoice_id)
|
||||||
return unless need_to_process_invoice?(invoice: invoice, payable: payable)
|
return unless need_to_process_invoice?(invoice: invoice, payable: payable)
|
||||||
|
|
||||||
|
@ -14,6 +15,7 @@ class SendEInvoiceJob < ApplicationJob
|
||||||
private
|
private
|
||||||
|
|
||||||
def need_to_process_invoice?(invoice:, payable:)
|
def need_to_process_invoice?(invoice:, payable:)
|
||||||
|
logger.info "Checking if need to process e-invoice #{invoice}, payable: #{payable}"
|
||||||
return false if invoice.blank?
|
return false if invoice.blank?
|
||||||
return false if invoice.do_not_send_e_invoice? && payable
|
return false if invoice.do_not_send_e_invoice? && payable
|
||||||
|
|
||||||
|
|
|
@ -105,7 +105,7 @@ class Registrar < ApplicationRecord
|
||||||
.deliver_later(wait: 1.minute)
|
.deliver_later(wait: 1.minute)
|
||||||
end
|
end
|
||||||
|
|
||||||
SendEInvoiceJob.perform_now(invoice.id, payable)
|
SendEInvoiceJob.set(wait: 1.minute).perform_now(invoice.id, payable)
|
||||||
|
|
||||||
invoice
|
invoice
|
||||||
end
|
end
|
||||||
|
|
|
@ -19,6 +19,18 @@ class ReloadBalanceTaskTest < ActiveSupport::TestCase
|
||||||
assert_equal reload_amount, invoice.subtotal
|
assert_equal reload_amount, invoice.subtotal
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_issues_invoice_when_auto_reload_is_enabled_and_threshold_reached
|
||||||
|
reload_amount = 100
|
||||||
|
registrar = registrar_with_auto_reload_enabled_and_threshold_reached(reload_amount)
|
||||||
|
|
||||||
|
assert_difference -> { registrar.invoices.count } do
|
||||||
|
capture_io { run_task }
|
||||||
|
end
|
||||||
|
|
||||||
|
invoice = registrar.invoices.last
|
||||||
|
assert_equal Time.zone.today, invoice.e_invoice_sent_at.to_date
|
||||||
|
end
|
||||||
|
|
||||||
def test_skips_issuing_invoice_when_threshold_is_not_reached
|
def test_skips_issuing_invoice_when_threshold_is_not_reached
|
||||||
registrar = registrar_with_auto_reload_enabled_and_threshold_not_reached
|
registrar = registrar_with_auto_reload_enabled_and_threshold_not_reached
|
||||||
|
|
||||||
|
@ -75,4 +87,4 @@ class ReloadBalanceTaskTest < ActiveSupport::TestCase
|
||||||
def run_task
|
def run_task
|
||||||
Rake::Task['registrars:reload_balance'].execute
|
Rake::Task['registrars:reload_balance'].execute
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue