Class: InvoicePrinter::Document
- Inherits:
-
Object
- Object
- InvoicePrinter::Document
- Defined in:
- lib/invoice_printer/document.rb,
lib/invoice_printer/document/item.rb
Overview
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',
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.
Defined Under Namespace
Classes: InvalidInput, Item
Instance Attribute Summary collapse
-
#account_iban ⇒ Object
readonly
Returns the value of attribute account_iban.
-
#account_swift ⇒ Object
readonly
Returns the value of attribute account_swift.
-
#bank_account_number ⇒ Object
readonly
Returns the value of attribute bank_account_number.
-
#due_date ⇒ Object
readonly
Returns the value of attribute due_date.
-
#issue_date ⇒ Object
readonly
Returns the value of attribute issue_date.
-
#items ⇒ Object
readonly
Returns the value of attribute items.
-
#note ⇒ Object
readonly
Returns the value of attribute note.
-
#number ⇒ Object
readonly
Returns the value of attribute number.
-
#provider_city ⇒ Object
readonly
Returns the value of attribute provider_city.
-
#provider_city_part ⇒ Object
readonly
Returns the value of attribute provider_city_part.
-
#provider_extra_address_line ⇒ Object
readonly
Returns the value of attribute provider_extra_address_line.
-
#provider_lines ⇒ Object
readonly
Returns the value of attribute provider_lines.
-
#provider_name ⇒ Object
readonly
Returns the value of attribute provider_name.
-
#provider_postcode ⇒ Object
readonly
Returns the value of attribute provider_postcode.
-
#provider_street ⇒ Object
readonly
Returns the value of attribute provider_street.
-
#provider_street_number ⇒ Object
readonly
Returns the value of attribute provider_street_number.
-
#provider_tax_id ⇒ Object
readonly
Returns the value of attribute provider_tax_id.
-
#provider_tax_id2 ⇒ Object
readonly
Returns the value of attribute provider_tax_id2.
-
#purchaser_city ⇒ Object
readonly
Returns the value of attribute purchaser_city.
-
#purchaser_city_part ⇒ Object
readonly
Returns the value of attribute purchaser_city_part.
-
#purchaser_extra_address_line ⇒ Object
readonly
Returns the value of attribute purchaser_extra_address_line.
-
#purchaser_lines ⇒ Object
readonly
Returns the value of attribute purchaser_lines.
-
#purchaser_name ⇒ Object
readonly
Returns the value of attribute purchaser_name.
-
#purchaser_postcode ⇒ Object
readonly
Returns the value of attribute purchaser_postcode.
-
#purchaser_street ⇒ Object
readonly
Returns the value of attribute purchaser_street.
-
#purchaser_street_number ⇒ Object
readonly
Returns the value of attribute purchaser_street_number.
-
#purchaser_tax_id ⇒ Object
readonly
Returns the value of attribute purchaser_tax_id.
-
#purchaser_tax_id2 ⇒ Object
readonly
Returns the value of attribute purchaser_tax_id2.
-
#subtotal ⇒ Object
readonly
Returns the value of attribute subtotal.
-
#tax ⇒ Object
readonly
Returns the value of attribute tax.
-
#tax2 ⇒ Object
readonly
Returns the value of attribute tax2.
-
#tax3 ⇒ Object
readonly
Returns the value of attribute tax3.
-
#total ⇒ Object
readonly
Returns the value of attribute total.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(number: nil, provider_name: nil, provider_tax_id: nil, provider_tax_id2: nil, provider_street: nil, provider_street_number: nil, provider_postcode: nil, provider_city: nil, provider_city_part: nil, provider_extra_address_line: nil, provider_lines: nil, purchaser_name: nil, purchaser_tax_id: nil, purchaser_tax_id2: nil, purchaser_street: nil, purchaser_street_number: nil, purchaser_postcode: nil, purchaser_city: nil, purchaser_city_part: nil, purchaser_extra_address_line: nil, purchaser_lines: nil, issue_date: nil, due_date: 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) ⇒ Document
constructor
A new instance of Document.
- #to_h ⇒ Object
- #to_json ⇒ Object
Constructor Details
#initialize(number: nil, provider_name: nil, provider_tax_id: nil, provider_tax_id2: nil, provider_street: nil, provider_street_number: nil, provider_postcode: nil, provider_city: nil, provider_city_part: nil, provider_extra_address_line: nil, provider_lines: nil, purchaser_name: nil, purchaser_tax_id: nil, purchaser_tax_id2: nil, purchaser_street: nil, purchaser_street_number: nil, purchaser_postcode: nil, purchaser_city: nil, purchaser_city_part: nil, purchaser_extra_address_line: nil, purchaser_lines: nil, issue_date: nil, due_date: 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) ⇒ Document
Returns a new instance of Document.
117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 |
# File 'lib/invoice_printer/document.rb', line 117 def initialize(number: nil, provider_name: nil, provider_tax_id: nil, provider_tax_id2: nil, provider_street: nil, provider_street_number: nil, provider_postcode: nil, provider_city: nil, provider_city_part: nil, provider_extra_address_line: nil, provider_lines: nil, purchaser_name: nil, purchaser_tax_id: nil, purchaser_tax_id2: nil, purchaser_street: nil, purchaser_street_number: nil, purchaser_postcode: nil, purchaser_city: nil, purchaser_city_part: nil, purchaser_extra_address_line: nil, purchaser_lines: nil, issue_date: nil, due_date: 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_street = String(provider_street) @provider_street_number = String(provider_street_number) @provider_postcode = String(provider_postcode) @provider_city = String(provider_city) @provider_city_part = String(provider_city_part) @provider_extra_address_line = String(provider_extra_address_line) @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_street = String(purchaser_street) @purchaser_street_number = String(purchaser_street_number) @purchaser_postcode = String(purchaser_postcode) @purchaser_city = String(purchaser_city) @purchaser_city_part = String(purchaser_city_part) @purchaser_extra_address_line = String(purchaser_extra_address_line) @purchaser_lines = String(purchaser_lines) @issue_date = String(issue_date) @due_date = String(due_date) @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 |
Instance Attribute Details
#account_iban ⇒ Object (readonly)
Returns the value of attribute account_iban.
36 37 38 |
# File 'lib/invoice_printer/document.rb', line 36 def account_iban @account_iban end |
#account_swift ⇒ Object (readonly)
Returns the value of attribute account_swift.
36 37 38 |
# File 'lib/invoice_printer/document.rb', line 36 def account_swift @account_swift end |
#bank_account_number ⇒ Object (readonly)
Returns the value of attribute bank_account_number.
36 37 38 |
# File 'lib/invoice_printer/document.rb', line 36 def bank_account_number @bank_account_number end |
#due_date ⇒ Object (readonly)
Returns the value of attribute due_date.
36 37 38 |
# File 'lib/invoice_printer/document.rb', line 36 def due_date @due_date end |
#issue_date ⇒ Object (readonly)
Returns the value of attribute issue_date.
36 37 38 |
# File 'lib/invoice_printer/document.rb', line 36 def issue_date @issue_date end |
#items ⇒ Object (readonly)
Returns the value of attribute items.
36 37 38 |
# File 'lib/invoice_printer/document.rb', line 36 def items @items end |
#note ⇒ Object (readonly)
Returns the value of attribute note.
36 37 38 |
# File 'lib/invoice_printer/document.rb', line 36 def note @note end |
#number ⇒ Object (readonly)
Returns the value of attribute number.
36 37 38 |
# File 'lib/invoice_printer/document.rb', line 36 def number @number end |
#provider_city ⇒ Object (readonly)
Returns the value of attribute provider_city.
36 37 38 |
# File 'lib/invoice_printer/document.rb', line 36 def provider_city @provider_city end |
#provider_city_part ⇒ Object (readonly)
Returns the value of attribute provider_city_part.
36 37 38 |
# File 'lib/invoice_printer/document.rb', line 36 def provider_city_part @provider_city_part end |
#provider_extra_address_line ⇒ Object (readonly)
Returns the value of attribute provider_extra_address_line.
36 37 38 |
# File 'lib/invoice_printer/document.rb', line 36 def provider_extra_address_line @provider_extra_address_line end |
#provider_lines ⇒ Object (readonly)
Returns the value of attribute provider_lines.
36 37 38 |
# File 'lib/invoice_printer/document.rb', line 36 def provider_lines @provider_lines end |
#provider_name ⇒ Object (readonly)
Returns the value of attribute provider_name.
36 37 38 |
# File 'lib/invoice_printer/document.rb', line 36 def provider_name @provider_name end |
#provider_postcode ⇒ Object (readonly)
Returns the value of attribute provider_postcode.
36 37 38 |
# File 'lib/invoice_printer/document.rb', line 36 def provider_postcode @provider_postcode end |
#provider_street ⇒ Object (readonly)
Returns the value of attribute provider_street.
36 37 38 |
# File 'lib/invoice_printer/document.rb', line 36 def provider_street @provider_street end |
#provider_street_number ⇒ Object (readonly)
Returns the value of attribute provider_street_number.
36 37 38 |
# File 'lib/invoice_printer/document.rb', line 36 def provider_street_number @provider_street_number end |
#provider_tax_id ⇒ Object (readonly)
Returns the value of attribute provider_tax_id.
36 37 38 |
# File 'lib/invoice_printer/document.rb', line 36 def provider_tax_id @provider_tax_id end |
#provider_tax_id2 ⇒ Object (readonly)
Returns the value of attribute provider_tax_id2.
36 37 38 |
# File 'lib/invoice_printer/document.rb', line 36 def provider_tax_id2 @provider_tax_id2 end |
#purchaser_city ⇒ Object (readonly)
Returns the value of attribute purchaser_city.
36 37 38 |
# File 'lib/invoice_printer/document.rb', line 36 def purchaser_city @purchaser_city end |
#purchaser_city_part ⇒ Object (readonly)
Returns the value of attribute purchaser_city_part.
36 37 38 |
# File 'lib/invoice_printer/document.rb', line 36 def purchaser_city_part @purchaser_city_part end |
#purchaser_extra_address_line ⇒ Object (readonly)
Returns the value of attribute purchaser_extra_address_line.
36 37 38 |
# File 'lib/invoice_printer/document.rb', line 36 def purchaser_extra_address_line @purchaser_extra_address_line end |
#purchaser_lines ⇒ Object (readonly)
Returns the value of attribute purchaser_lines.
36 37 38 |
# File 'lib/invoice_printer/document.rb', line 36 def purchaser_lines @purchaser_lines end |
#purchaser_name ⇒ Object (readonly)
Returns the value of attribute purchaser_name.
36 37 38 |
# File 'lib/invoice_printer/document.rb', line 36 def purchaser_name @purchaser_name end |
#purchaser_postcode ⇒ Object (readonly)
Returns the value of attribute purchaser_postcode.
36 37 38 |
# File 'lib/invoice_printer/document.rb', line 36 def purchaser_postcode @purchaser_postcode end |
#purchaser_street ⇒ Object (readonly)
Returns the value of attribute purchaser_street.
36 37 38 |
# File 'lib/invoice_printer/document.rb', line 36 def purchaser_street @purchaser_street end |
#purchaser_street_number ⇒ Object (readonly)
Returns the value of attribute purchaser_street_number.
36 37 38 |
# File 'lib/invoice_printer/document.rb', line 36 def purchaser_street_number @purchaser_street_number end |
#purchaser_tax_id ⇒ Object (readonly)
Returns the value of attribute purchaser_tax_id.
36 37 38 |
# File 'lib/invoice_printer/document.rb', line 36 def purchaser_tax_id @purchaser_tax_id end |
#purchaser_tax_id2 ⇒ Object (readonly)
Returns the value of attribute purchaser_tax_id2.
36 37 38 |
# File 'lib/invoice_printer/document.rb', line 36 def purchaser_tax_id2 @purchaser_tax_id2 end |
#subtotal ⇒ Object (readonly)
Returns the value of attribute subtotal.
36 37 38 |
# File 'lib/invoice_printer/document.rb', line 36 def subtotal @subtotal end |
#tax ⇒ Object (readonly)
Returns the value of attribute tax.
36 37 38 |
# File 'lib/invoice_printer/document.rb', line 36 def tax @tax end |
#tax2 ⇒ Object (readonly)
Returns the value of attribute tax2.
36 37 38 |
# File 'lib/invoice_printer/document.rb', line 36 def tax2 @tax2 end |
#tax3 ⇒ Object (readonly)
Returns the value of attribute tax3.
36 37 38 |
# File 'lib/invoice_printer/document.rb', line 36 def tax3 @tax3 end |
#total ⇒ Object (readonly)
Returns the value of attribute total.
36 37 38 |
# File 'lib/invoice_printer/document.rb', line 36 def total @total end |
Class Method Details
.from_json(json) ⇒ Object
77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 |
# File 'lib/invoice_printer/document.rb', line 77 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_street: json['provider_street'], provider_street_number: json['provider_street_number'], provider_postcode: json['provider_postcode'], provider_city: json['provider_city'], provider_city_part: json['provider_city_part'], provider_extra_address_line: json['provider_extra_address_line'], 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_street: json['purchaser_street'], purchaser_street_number: json['purchaser_street_number'], purchaser_postcode: json['purchaser_postcode'], purchaser_city: json['purchaser_city'], purchaser_city_part: json['purchaser_city_part'], purchaser_extra_address_line: json['purchaser_extra_address_line'], purchaser_lines: json['purchaser_lines'], issue_date: json['issue_date'], due_date: json['due_date'], 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 |
Instance Method Details
#to_h ⇒ Object
191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 |
# File 'lib/invoice_printer/document.rb', line 191 def to_h { 'number': @number, 'provider_name': @provider_name, 'provider_tax_id': @provider_tax_id, 'provider_tax_id2': @provider_tax_id2, 'provider_street': @provider_street, 'provider_street_number': @provider_street_number, 'provider_postcode': @provider_postcode, 'provider_city': @provider_city, 'provider_city_part': @provider_city_part, 'provider_extra_address_line': @provider_extra_address_line, 'provider_lines': @provider_lines, 'purchaser_name': @purchaser_name, 'purchaser_tax_id': @purchaser_tax_id, 'purchaser_tax_id2': @purchaser_tax_id2, 'purchaser_street': @purchaser_street, 'purchaser_street_number': @purchaser_street_number, 'purchaser_postcode': @purchaser_postcode, 'purchaser_city': @purchaser_city, 'purchaser_city_part': @purchaser_city_part, 'purchaser_extra_address_line': @purchaser_extra_address_line, 'purchaser_lines': @purchaser_lines, 'issue_date': @issue_date, 'due_date': @due_date, '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 ⇒ Object
229 230 231 |
# File 'lib/invoice_printer/document.rb', line 229 def to_json to_h.to_json end |