Class: SpreeCmCommissioner::InvoiceCreator

Inherits:
BaseInteractor show all
Defined in:
app/interactors/spree_cm_commissioner/invoice_creator.rb

Instance Method Summary collapse

Instance Method Details

#callObject



5
6
7
8
# File 'app/interactors/spree_cm_commissioner/invoice_creator.rb', line 5

def call
  load_invoice_number
  create_invoice
end

#create_invoiceObject



32
33
34
35
36
37
38
39
40
# File 'app/interactors/spree_cm_commissioner/invoice_creator.rb', line 32

def create_invoice
  context.invoice = SpreeCmCommissioner::Invoice.where(
    vendor: order.line_items.first.vendor,
    order: order,
    date: order.line_items.first.to_date
  ).first_or_create do |invoice|
    invoice.invoice_number = context.invoice_number
  end
end

#load_invoice_numberObject

0412 + 000001



11
12
13
14
15
# File 'app/interactors/spree_cm_commissioner/invoice_creator.rb', line 11

def load_invoice_number
  load_prefix
  load_invoices_count
  context.invoice_number = "#{context.prefix}-#{rjust_number(context.invoices_count)}"
end

#load_invoices_countObject



22
23
24
25
26
27
28
29
30
# File 'app/interactors/spree_cm_commissioner/invoice_creator.rb', line 22

def load_invoices_count
  from = order.line_items.first.to_date.beginning_of_month
  to = order.line_items.first.to_date.end_of_month

  context.invoices_count = SpreeCmCommissioner::Invoice.where(
    vendor: order.line_items.first.vendor,
    date: from..to
  ).size
end

#load_prefixObject

04-12-2023 -> 0412



18
19
20
# File 'app/interactors/spree_cm_commissioner/invoice_creator.rb', line 18

def load_prefix
  context.prefix = order.line_items.first.to_date.strftime('%m%y')
end

#rjust_number(invoices_count) ⇒ Object

1 -> 000001



43
44
45
# File 'app/interactors/spree_cm_commissioner/invoice_creator.rb', line 43

def rjust_number(invoices_count)
  (invoices_count + 1).to_s.rjust(5, '0')
end