mirror of
https://github.com/internetee/registry.git
synced 2025-07-27 21:16:12 +02:00
34 lines
913 B
Ruby
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
|