Class: GOBL::Bill::Invoice

Inherits:
Object show all
Includes:
Extensions::Bill::InvoiceHelper
Defined in:
lib/generated/gobl/bill/invoice.rb

Overview

Invoice represents a payment claim for goods or services supplied under conditions agreed between the supplier and the customer.

Constant Summary collapse

SCHEMA_ID =

The Schema ID of the GOBL Invoice structure

'https://gobl.org/draft-0/bill/invoice'
TYPE_ENUM =

Enumeration of possible values for #type with their corresponding descriptions

{
  'standard' => 'A regular commercial invoice document between a supplier and customer.',
  'proforma' => 'For a clients validation before sending a final invoice.',
  'corrective' => 'Corrected invoice that completely *replaces* the preceding document.',
  'credit-note' => 'Reflects a refund either partial or complete of the preceding document. A 
credit note effectively *extends* the previous document.',
  'debit-note' => 'An additional set of charges to be added to the preceding document.',
  'other' => 'Any other type of invoice that does not fit into the standard categories and implies
that any scenarios defined in tax regimes or addons will not be applied.

This is useful for being able to create invoices with custom types in extensions,
but is not recommend for general use.'
}.freeze

Instance Attribute Summary collapse

Method Summary

Methods included from Extensions::Bill::InvoiceHelper

included, #regime

Methods inherited from Object

new

Methods inherited from Struct

#as_json, from_data, from_json!, #to_json

Instance Attribute Details

#$addons($addons) ⇒ Array<GOBL::CBC::Key> (readonly)

Addons defines a list of keys used to identify tax addons that apply special normalization, scenarios, and validation rules to a document.

Returns:



43
# File 'lib/generated/gobl/bill/invoice.rb', line 43

property :$addons, [GOBL::CBC::Key]

#$regime($regime) ⇒ GOBL::L10n::TaxCountryCode (readonly)



37
# File 'lib/generated/gobl/bill/invoice.rb', line 37

property :$regime, GOBL::L10n::TaxCountryCode

#$tags($tags) ⇒ Array<GOBL::CBC::Key> (readonly)

Tags are used to help identify specific tax scenarios or requirements that will apply changes to the contents of the invoice. Tags by design should always be optional, it should always be possible to build a valid invoice without any tags.

Returns:



48
# File 'lib/generated/gobl/bill/invoice.rb', line 48

property :$tags, [GOBL::CBC::Key]

#chargesArray<Charge> (readonly)

Charges or surcharges applied to the complete invoice

Returns:



146
# File 'lib/generated/gobl/bill/invoice.rb', line 146

property :charges, [Charge]

#codeGOBL::CBC::Code (readonly)

Sequential code used to identify this invoice in tax declarations.

Returns:



84
# File 'lib/generated/gobl/bill/invoice.rb', line 84

property :code, GOBL::CBC::Code

#complementsArray<GOBL::Schema::Object> (readonly)

Additional complementary objects that add relevant information to the invoice.

Returns:



181
# File 'lib/generated/gobl/bill/invoice.rb', line 181

property :complements, [GOBL::Schema::Object]

#currencyGOBL::Currency::Code (readonly)

Currency for all invoice totals.



105
# File 'lib/generated/gobl/bill/invoice.rb', line 105

property :currency, GOBL::Currency::Code

#customerGOBL::Org::Party (readonly)

Legal entity receiving the goods or services, may be nil in certain circumstances such as simplified invoices.

Returns:



131
# File 'lib/generated/gobl/bill/invoice.rb', line 131

property :customer, GOBL::Org::Party

#deliveryDelivery (readonly)

Specific details on delivery of the goods referenced in the invoice.

Returns:



166
# File 'lib/generated/gobl/bill/invoice.rb', line 166

property :delivery, Delivery

#discountsArray<Discount> (readonly)

Discounts or allowances applied to the complete invoice

Returns:



141
# File 'lib/generated/gobl/bill/invoice.rb', line 141

property :discounts, [Discount]

#exchange_ratesArray<GOBL::Currency::ExchangeRate> (readonly)

Exchange rates to be used when converting the invoices monetary values into other currencies.

Returns:



110
# File 'lib/generated/gobl/bill/invoice.rb', line 110

property :exchange_rates, [GOBL::Currency::ExchangeRate]

#issue_dateGOBL::Cal::Date (readonly)

When the invoice was created.

Returns:



90
# File 'lib/generated/gobl/bill/invoice.rb', line 90

property :issue_date, GOBL::Cal::Date

#linesArray<Line> (readonly)

List of invoice lines representing each of the items sold to the customer.

Returns:



136
# File 'lib/generated/gobl/bill/invoice.rb', line 136

property :lines, [Line]

#metaGOBL::CBC::Meta (readonly)

Additional semi-structured data that doesn’t fit into the body of the invoice.

Returns:



186
# File 'lib/generated/gobl/bill/invoice.rb', line 186

property :meta, GOBL::CBC::Meta

#notesArray<GOBL::CBC::Note> (readonly)

Unstructured information that is relevant to the invoice, such as correction or additional legal details.

Returns:



176
# File 'lib/generated/gobl/bill/invoice.rb', line 176

property :notes, [GOBL::CBC::Note]

#op_dateGOBL::Cal::Date (readonly)

Date when the operation defined by the invoice became effective.

Returns:



95
# File 'lib/generated/gobl/bill/invoice.rb', line 95

property :op_date, GOBL::Cal::Date

#orderingOrdering (readonly)

Ordering details including document references and buyer or seller parties.

Returns:



156
# File 'lib/generated/gobl/bill/invoice.rb', line 156

property :ordering, Ordering

#outlaysArray<Outlay> (readonly)

Expenses paid for by the supplier but invoiced directly to the customer.

Returns:



151
# File 'lib/generated/gobl/bill/invoice.rb', line 151

property :outlays, [Outlay]

#paymentPayment (readonly)

Information on when, how, and to whom the invoice should be paid.

Returns:



161
# File 'lib/generated/gobl/bill/invoice.rb', line 161

property :payment, Payment

#precedingArray<GOBL::Org::DocumentRef> (readonly)

Key information regarding previous invoices and potentially details as to why they were corrected.

Returns:



115
# File 'lib/generated/gobl/bill/invoice.rb', line 115

property :preceding, [GOBL::Org::DocumentRef]

#seriesGOBL::CBC::Code (readonly)

Used as a prefix to group codes.

Returns:



79
# File 'lib/generated/gobl/bill/invoice.rb', line 79

property :series, GOBL::CBC::Code

#supplierGOBL::Org::Party (readonly)

The taxable entity supplying the goods or services.

Returns:



125
# File 'lib/generated/gobl/bill/invoice.rb', line 125

property :supplier, GOBL::Org::Party

#taxTax (readonly)

Special tax configuration for billing.

Returns:



120
# File 'lib/generated/gobl/bill/invoice.rb', line 120

property :tax, Tax

#totalsTotals (readonly)

Summary of all the invoice totals, including taxes (calculated).

Returns:



171
# File 'lib/generated/gobl/bill/invoice.rb', line 171

property :totals, Totals

#typeGOBL::CBC::Key (readonly)

Type of invoice document subject to the requirements of the local tax regime.

Returns:



73
# File 'lib/generated/gobl/bill/invoice.rb', line 73

property :type, GOBL::CBC::Key

#uuidString (readonly)

Universally Unique Identifier.

Returns:

  • (String)


53
# File 'lib/generated/gobl/bill/invoice.rb', line 53

property :uuid, String

#value_dateGOBL::Cal::Date (readonly)

When the taxes of this invoice become accountable, if none set, the issue date is used.

Returns:



100
# File 'lib/generated/gobl/bill/invoice.rb', line 100

property :value_date, GOBL::Cal::Date