class InvoicePrinter::Document
Invoice and receipt representation
Example:
invoice = InvoicePrinter::Document.new( number: '198900000001', provider_name: 'Business s.r.o.', provider_tax_id: '56565656', provider_tax_id2: '465454', provider_lines: "Rolnicka 1\n747 05 Opava", purchaser_name: 'Adam', purchaser_tax_id: '', purchaser_tax_id2: '', purchaser_lines: "Ostravska 2\n747 05 Opava", issue_date: '19/03/3939', due_date: '19/03/3939', variable_symbol: '198900000001', subtotal: '$ 150', tax: '$ 50', total: '$ 200', bank_account_number: '156546546465', account_iban: 'IBAN464545645', account_swift: 'SWIFT5456', items: [ InvoicePrinter::Document::Item.new, InvoicePrinter::Document::Item.new ], note: 'A note at the end.' )
+amount should equal the sum of all item's amount
, but this is not enforced.
Attributes
account_iban[R]
account_swift[R]
bank_account_number[R]
due_date[R]
issue_date[R]
items[R]
note[R]
number[R]
provider_lines[R]
provider_name[R]
provider_tax_id[R]
provider_tax_id2[R]
purchaser_lines[R]
purchaser_name[R]
purchaser_tax_id[R]
purchaser_tax_id2[R]
subtotal[R]
tax[R]
tax2[R]
tax3[R]
total[R]
variable_symbol[R]
Public Class Methods
from_json(json)
click to toggle source
# File lib/invoice_printer/document.rb, line 65 def from_json(json) new( number: json['number'], provider_name: json['provider_name'], provider_tax_id: json['provider_tax_id'], provider_tax_id2: json['provider_tax_id2'], provider_lines: json['provider_lines'], purchaser_name: json['purchaser_name'], purchaser_tax_id: json['purchaser_tax_id'], purchaser_tax_id2: json['purchaser_tax_id2'], purchaser_lines: json['purchaser_lines'], issue_date: json['issue_date'], due_date: json['due_date'], variable_symbol: json['variable_symbol'], subtotal: json['subtotal'], tax: json['tax'], tax2: json['tax2'], tax3: json['tax3'], total: json['total'], bank_account_number: json['bank_account_number'], account_iban: json['account_iban'], account_swift: json['account_swift'], note: json['note'], items: (json['items'] || []).map { |item_json| Item.from_json(item_json) } ) end
new(number: nil, provider_name: nil, provider_tax_id: nil, provider_tax_id2: nil, provider_lines: nil, purchaser_name: nil, purchaser_tax_id: nil, purchaser_tax_id2: nil, purchaser_lines: nil, issue_date: nil, due_date: nil, variable_symbol: nil, subtotal: nil, tax: nil, tax2: nil, tax3: nil, total: nil, bank_account_number: nil, account_iban: nil, account_swift: nil, items: nil, note: nil)
click to toggle source
# File lib/invoice_printer/document.rb, line 94 def initialize(number: nil, provider_name: nil, provider_tax_id: nil, provider_tax_id2: nil, provider_lines: nil, purchaser_name: nil, purchaser_tax_id: nil, purchaser_tax_id2: nil, purchaser_lines: nil, issue_date: nil, due_date: nil, variable_symbol: nil, subtotal: nil, tax: nil, tax2: nil, tax3: nil, total: nil, bank_account_number: nil, account_iban: nil, account_swift: nil, items: nil, note: nil) @number = String(number) @provider_name = String(provider_name) @provider_tax_id = String(provider_tax_id) @provider_tax_id2 = String(provider_tax_id2) @provider_lines = String(provider_lines) @purchaser_name = String(purchaser_name) @purchaser_tax_id = String(purchaser_tax_id) @purchaser_tax_id2 = String(purchaser_tax_id2) @purchaser_lines = String(purchaser_lines) @issue_date = String(issue_date) @due_date = String(due_date) @variable_symbol = String(variable_symbol) @subtotal = String(subtotal) @tax = String(tax) @tax2 = String(tax2) @tax3 = String(tax3) @total = String(total) @bank_account_number = String(bank_account_number) @account_iban = String(account_iban) @account_swift = String(account_swift) @items = items @note = String(note) raise InvalidInput, 'items are not only a type of InvoicePrinter::Document::Item' \ unless @items.select{ |i| !i.is_a?(InvoicePrinter::Document::Item) }.empty? end
Public Instance Methods
to_h()
click to toggle source
# File lib/invoice_printer/document.rb, line 144 def to_h { 'number': @number, 'provider_name': @provider_name, 'provider_tax_id': @provider_tax_id, 'provider_tax_id2': @provider_tax_id2, 'provider_lines': @provider_lines, 'purchaser_name': @purchaser_name, 'purchaser_tax_id': @purchaser_tax_id, 'purchaser_tax_id2': @purchaser_tax_id2, 'purchaser_lines': @purchaser_lines, 'issue_date': @issue_date, 'due_date': @due_date, 'variable_symbol': @variable_symbol, 'subtotal': @subtotal, 'tax': @tax, 'tax2': @tax2, 'tax3': @tax3, 'total': @total, 'bank_account_number': @bank_account_number, 'account_iban': @account_iban, 'account_swift': @account_swift, 'items': @items.map(&:to_h), 'note': @note } end
to_json()
click to toggle source
# File lib/invoice_printer/document.rb, line 171 def to_json to_h.to_json end