class SunatInvoice::XmlDocument

Constants

CUSTOMIZATION
UBL_VERSION

Attributes

currency[RW]
date[RW]
lines[RW]
provider[RW]
signature[RW]

Public Class Methods

new(*args) click to toggle source
Calls superclass method SunatInvoice::Model::new
# File lib/sunat_invoice/xml_document.rb, line 15
def initialize(*args)
  super(*args)
  @date ||= Date.today
end

Public Instance Methods

build_ext(xml) { |xml| ... } click to toggle source
# File lib/sunat_invoice/xml_document.rb, line 31
def build_ext(xml, &block)
  xml['ext'].UBLExtensions do
    yield(xml) if block
    @signature.signature_ext(xml)
  end
end
build_lines_xml(xml) click to toggle source
# File lib/sunat_invoice/xml_document.rb, line 46
def build_lines_xml(xml)
  lines&.each_with_index do |line, index|
    line.xml(xml, index, currency)
  end
end
build_number(xml) click to toggle source
# File lib/sunat_invoice/xml_document.rb, line 38
def build_number(xml)
  xml['cbc'].ID document_number
end
build_xml() { |xml| ... } click to toggle source
# File lib/sunat_invoice/xml_document.rb, line 20
def build_xml(&block)
  Nokogiri::XML::Builder.new do |xml|
    xml.send(root_name, namespaces) do
      build_ext(xml)
      xml['cbc'].UBLVersionID UBL_VERSION
      xml['cbc'].CustomizationID CUSTOMIZATION
      yield(xml) if block
    end
  end
end
formatted_date(date) click to toggle source
# File lib/sunat_invoice/xml_document.rb, line 42
def formatted_date(date)
  date.strftime('%Y-%m-%d')
end