Class: Edi::CreditMemoEventProcessor

Inherits:
BaseService show all
Defined in:
app/services/edi/credit_memo_event_processor.rb

Instance Method Summary collapse

Methods inherited from BaseService

#initialize, #log_debug, #log_error, #log_info, #log_warning, #logger, #options, #tagged_logger

Constructor Details

This class inherits a constructor from BaseService

Instance Method Details

#load_orchestrator(customer_id) ⇒ Object



21
22
23
# File 'app/services/edi/credit_memo_event_processor.rb', line 21

def load_orchestrator(customer_id)
  Edi::BaseOrchestrator.orchestrator_for_customer_id(customer_id)
end

#process(credit_memo, event, options = {}) ⇒ Object



5
6
7
8
9
10
# File 'app/services/edi/credit_memo_event_processor.rb', line 5

def process(credit_memo, event, options = {})
  case event
  when :created
    process_creation(credit_memo, options)
  end
end

#process_creation(credit_memo, _options = {}) ⇒ Object



12
13
14
15
16
17
18
19
# File 'app/services/edi/credit_memo_event_processor.rb', line 12

def process_creation(credit_memo, _options = {})
  return unless credit_memo.invoice&.order&.edi_transaction_id # Order doesn't come from EDI
  return unless o = load_orchestrator(credit_memo.customer_id)

  logger.info "Edi -> Processing creation event for credit_memo id #{credit_memo.id}"
  # Here we use the invoice 810 message processor for credit memos with strategic negative amounts and reference numbers
  o.invoice_message_processor.create_credit_memo(credit_memo) if o.invoice_message_enabled?
end