class RubyXmlNfe::Xml

Attributes

aut_xml_params[R]
chNFe[R]
cobr_params[R]
dest_params[R]
emit_params[R]
ide_params[R]
inf_adc_params[R]
items_params[R]
pag_params[R]
total_params[R]
transp_params[R]

Public Class Methods

new(name, params) click to toggle source
# File lib/ruby_xml_nfe/xml.rb, line 19
def initialize(name, params)
  @name = name
  @chNFe = params[:chNFe]
  @ide_params = params[:ide]
  @emit_params = params[:emit]
  @dest_params = params[:dest]
  @aut_xml_params = params[:autXML]
  @items_params = params[:items]
  @total_params = params[:total]
  @transp_params = params[:transp]
  @cobr_params = params[:cobr]
  @pag_params = params[:pag]
  @inf_adc_params = params[:infAdic]
end

Public Instance Methods

build() click to toggle source
# File lib/ruby_xml_nfe/xml.rb, line 34
def build
  builder = Nokogiri::XML::Builder.new(encoding: 'UTF-8') do |xml|
    xml.NFe(xmlns: "http://www.portalfiscal.inf.br/nfe") do
      xml.infNFe(Id: "NFe#{chNFe}", versao: "4.00") do
        ide = RubyXmlNfe::Ide.new(xml, ide_params)
        ide.build

        emit = RubyXmlNfe::Emit.new(xml, emit_params)
        emit.build

        dest = RubyXmlNfe::Dest.new(xml, dest_params)
        dest.build

        if aut_xml_params
          aut_xml = RubyXmlNfe::AutXml.new(xml, aut_xml_params)
          aut_xml.build
        end

        items = RubyXmlNfe::Items.new(xml, items_params)
        items.build

        total = RubyXmlNfe::Total.new(xml, total_params)
        total.build

        transp = RubyXmlNfe::Transp.new(xml, transp_params)
        transp.build

        if cobr_params
          cobr = RubyXmlNfe::Cobr.new(xml, cobr_params)
          cobr.build
        end

        pag = RubyXmlNfe::Pag.new(xml, pag_params)
        pag.build

        inf_adic = RubyXmlNfe::InfAdic.new(xml, inf_adc_params)
        inf_adic.build
      end
    end
  end

  builder.to_xml
end