From 732afd8cbfd3f4e1fe75671915e0989b11c71306 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Thu, 3 Sep 2020 13:36:34 +0300 Subject: [PATCH] Reinit Directo client by function --- app/jobs/directo_invoice_forward_job.rb | 26 +++++++++++-------------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/app/jobs/directo_invoice_forward_job.rb b/app/jobs/directo_invoice_forward_job.rb index d017e9df2..705dcf480 100644 --- a/app/jobs/directo_invoice_forward_job.rb +++ b/app/jobs/directo_invoice_forward_job.rb @@ -2,15 +2,16 @@ class DirectoInvoiceForwardJob < Que::Job def run(monthly: false, dry: false) @dry = dry (@month = Time.zone.now - 1.month) if monthly - api_url = ENV['directo_invoice_url'] - sales_agent = Setting.directo_sales_agent - payment_term = Setting.directo_receipt_payment_term - @prepayment_product_id = Setting.directo_receipt_product_name - @client = DirectoApi::Client.new(api_url, sales_agent, payment_term) + @client = new_directo_client monthly ? send_monthly_invoices : send_receipts end + def new_directo_client + DirectoApi::Client.new(ENV['directo_invoice_url'], Setting.directo_sales_agent, + Setting.directo_receipt_payment_term) + end + def send_receipts unsent_invoices = Invoice.where(in_directo: false).non_cancelled @@ -28,22 +29,17 @@ class DirectoInvoiceForwardJob < Que::Job def send_monthly_invoices Registrar.where.not(test_registrar: true).find_each do |registrar| - @client = DirectoApi::Client.new(api_url, sales_agent, payment_term) - fetch_monthly_summary(registrar: registrar) + next unless registrar.cash_account + + @client = new_directo_client + summary = registrar.monthly_summary(month: @month) + @client.invoices.add_with_schema(invoice: summary, schema: 'summary') unless summary.nil? next unless @client.invoices.count.positive? sync_with_directo end end - def fetch_monthly_summary(registrar:) - return unless registrar.cash_account - - Rails.logger.info "Fetching monthly summary for registrar #{registrar.name}" - summary = registrar.monthly_summary(month: @month) - @client.invoices.add_with_schema(invoice: summary, schema: 'summary') unless summary.nil? - end - def assign_monthly_numbers if directo_counter_exceedable?(@client.invoices.count) raise 'Directo Counter is going to be out of period!'