Add a pause at the e-invoice creation

This commit is contained in:
Alex Sherman 2021-06-07 18:40:56 +05:00
parent c7298cde0c
commit dbda76200d
3 changed files with 16 additions and 2 deletions

View file

@ -2,6 +2,7 @@ class SendEInvoiceJob < ApplicationJob
discard_on HTTPClient::TimeoutError
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)
return unless need_to_process_invoice?(invoice: invoice, payable: payable)
@ -14,6 +15,7 @@ class SendEInvoiceJob < ApplicationJob
private
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.do_not_send_e_invoice? && payable

View file

@ -105,7 +105,7 @@ class Registrar < ApplicationRecord
.deliver_later(wait: 1.minute)
end
SendEInvoiceJob.perform_now(invoice.id, payable)
SendEInvoiceJob.set(wait: 1.minute).perform_now(invoice.id, payable)
invoice
end

View file

@ -19,6 +19,18 @@ class ReloadBalanceTaskTest < ActiveSupport::TestCase
assert_equal reload_amount, invoice.subtotal
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
registrar = registrar_with_auto_reload_enabled_and_threshold_not_reached
@ -75,4 +87,4 @@ class ReloadBalanceTaskTest < ActiveSupport::TestCase
def run_task
Rake::Task['registrars:reload_balance'].execute
end
end
end