Class: Teodoro::ArquivoXML

Inherits:
Object
  • Object
show all
Defined in:
lib/teodoro/arquivo_xml.rb

Constant Summary collapse

TIPOS_DE_EVENTO_PROCESSAVEIS =
%w[
  S1000
  S1005
  S1010
  S1020
  S1030
  S1040
  S1050
  S1070
  S2190
  S2200
  S2205
  S2206
  S2230
  S2250
  S2299
  S2300
  S2306
  S2399
  S3000
].freeze

Instance Method Summary collapse

Instance Method Details

#momento_de_processamento_pelo_e_socialObject



50
51
52
53
54
55
56
# File 'lib/teodoro/arquivo_xml.rb', line 50

def momento_de_processamento_pelo_e_social
  # otimizacao do gerenciamento de memoria
  carregar_xml
    .then { |xml| Nokogiri::XML(xml.css('eSocial/retornoProcessamentoDownload/recibo/*').to_s) }
    .then { |xml_do_recibo| XML.new(xml_do_recibo) }
    .then { |recibo| recibo['retornoEvento/processamento/dhProcessamento'] }
end

#nomeObject



58
59
60
# File 'lib/teodoro/arquivo_xml.rb', line 58

def nome
  @nome ||= File.basename(caminho, '.xml')
end

#processarObject



62
63
64
65
66
# File 'lib/teodoro/arquivo_xml.rb', line 62

def processar
  dar_feedback_para_o_usuario
  validar_versao_do_leiaute
  processar_arquivo
end

#processavel?Boolean

Returns:

  • (Boolean)


46
47
48
# File 'lib/teodoro/arquivo_xml.rb', line 46

def processavel?
  TIPOS_DE_EVENTO_PROCESSAVEIS.include?(tipo_de_evento)
end