Class: QuickbooksCustomerResolverJob

Inherits:
ApplicationJob show all
Defined in:
app/jobs/quickbooks_customer_resolver_job.rb

Overview

QuickbooksCustomerResolverJob processes individual QuickBooks customers

This job is responsible for:

  1. Resolving a QuickBooks customer into our internal customer model

  2. Creating or updating the customer record

  3. Creating or updating the customer-by-company association

This job is typically enqueued by QuickbooksCustomersPollJob for each customer retrieved from QuickBooks.

Example usage:

QuickbooksCustomerResolverJob.perform_later(
  company_id: 123,
  suffix_code: 'QB',
  quickbooks_customer: quickbooks_customer_hash
)

Instance Method Summary collapse

Instance Method Details

#perform(company_id:, suffix_code:, quickbooks_customer:) ⇒ void

This method returns an undefined value.

Performs the customer resolution process

Parameters:

  • company_id (Integer)

    The ID of the company

  • suffix_code (String)

    The prefix/suffix code to use for customer codes

  • quickbooks_customer (Hash)

    The customer data from QuickBooks



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'app/jobs/quickbooks_customer_resolver_job.rb', line 28

def perform(company_id:, suffix_code:, quickbooks_customer:)
  # resolve customer
  customer_id = resolve_customer(
    company_id: company_id,
    suffix_code: suffix_code,
    quickbooks_customer: quickbooks_customer
  )

  # resolve customer_by_company
  resolve_customer_by_company(
    company_id: company_id,
    customer_id: customer_id,
    quickbooks_customer: quickbooks_customer
  )
end