class SunatInvoice::Invoice

Public Class Methods

new(*args) click to toggle source
Calls superclass method
# File lib/sunat_invoice/invoice.rb, line 10
def initialize(*args)
  super(*args)
  opts = args[0] || {}
  init_defaults(opts)
end

Public Instance Methods

init_defaults(opts) click to toggle source
# File lib/sunat_invoice/invoice.rb, line 16
def init_defaults(opts)
  parties_default(opts)
  @document_type = opts[:document_type] || '01'
  @document_number = opts[:document_number] || 'F001-1'
  @currency = opts[:currency] || 'PEN'
  @lines ||= []
end
parties_default(opts) click to toggle source
# File lib/sunat_invoice/invoice.rb, line 24
def parties_default(opts)
  @provider = opts[:provider] || SunatInvoice::Provider.new
  @customer = opts[:customer] || SunatInvoice::Customer.new
end
xml() click to toggle source
# File lib/sunat_invoice/invoice.rb, line 29
def xml
  build = build_xml do |xml|
    build_document_data(xml)
    build_common_content(xml)
  end

  invoice_xml = build.to_xml
  @signature.sign(invoice_xml)
end

Private Instance Methods

namespaces() click to toggle source
# File lib/sunat_invoice/invoice.rb, line 45
def namespaces
  INVOICE_NAMESPACES.merge(TRADE_NAMESPACES)
end
root_name() click to toggle source
# File lib/sunat_invoice/invoice.rb, line 41
def root_name
  'Invoice'
end