internetee-registry/app/jobs/directo_invoice_forward_job.rb
2022-10-12 09:59:21 +03:00

34 lines
913 B
Ruby

class DirectoInvoiceForwardJob < ApplicationJob
def perform(dry: false)
data = collect_receipts_data
EisBilling::SendDataToDirecto.send_request(object_data: data, monthly: false, dry: dry)
end
def collect_receipts_data
unsent_invoices = Invoice.where(in_directo: false).non_cancelled
collected_data = []
unsent_invoices.each do |invoice|
unless valid_invoice_conditions?(invoice)
Rails.logger.info "[DIRECTO] Invoice #{invoice.number} has been skipped"
next
end
collected_data << invoice.as_directo_json
end
collected_data
end
def valid_invoice_conditions?(invoice)
if invoice.account_activity.nil? || invoice.account_activity.bank_transaction.nil? ||
invoice.account_activity.bank_transaction.sum.nil? ||
invoice.account_activity.bank_transaction.sum != invoice.total
return false
end
true
end
end