Module: Croatia::Invoice::Payable::InstanceMethods

Defined in:
lib/croatia/invoice/payable.rb

Instance Method Summary collapse

Instance Method Details

#payment_barcode(description: nil, model: nil, reference_number: nil, payment_purpose_code: nil) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/croatia/invoice/payable.rb', line 9

def payment_barcode(description: nil, model: nil, reference_number: nil, payment_purpose_code: nil)
  if buyer.nil? || seller.nil?
    raise ArgumentError, "Both buyer and seller must be set before generating a payment barcode"
  end

  description ||= "Račun #{number}"

  options = {
    currency: currency,
    total_cents: total_cents,
    buyer_name: buyer.name,
    buyer_address: buyer.address,
    buyer_postal_code: buyer.postal_code,
    buyer_city: buyer.city,
    seller_name: seller.name,
    seller_address: seller.address,
    seller_postal_code: seller.postal_code,
    seller_city: seller.city,
    seller_iban: seller.iban,
    model: model,
    reference_number: reference_number,
    payment_purpose_code: payment_purpose_code,
    description: description
  }

  Croatia::PaymentBarcode.new(**options)
end