module Rnfse::API::SpeedGov10

Public Instance Methods

cancelar_nfse(hash = {}) click to toggle source
# File lib/rnfse/api/speed_gov_1_0.rb, line 77
def cancelar_nfse(hash = {})
  raise Rnfse::Error::NotImplemented
end
consultar_lote_rps(hash = {}) click to toggle source
# File lib/rnfse/api/speed_gov_1_0.rb, line 35
def consultar_lote_rps(hash = {})
  validate_options(hash)
  validate_ascii(hash)
  header = xml_builder.build_header_xml()
  parameters = xml_builder.build_consultar_lote_rps_envio_xml(hash)
  response = self.soap_client.call(
    :consultar_lote_rps,
    soap_action: 'ConsultarLoteRps',
    message_tag: 'nfse:ConsultarLoteRps',
    message: { :'header!' => "<![CDATA[#{header}]]>",
               :'parameters!' => "<![CDATA[#{parameters}]]>" })
  parse_response(response)
end
consultar_nfse(hash = {}) click to toggle source
# File lib/rnfse/api/speed_gov_1_0.rb, line 63
def consultar_nfse(hash = {})
  validate_options(hash)
  validate_ascii(hash)
  header = xml_builder.build_header_xml()
  parameters = xml_builder.build_consultar_nfse_envio_xml(hash)
  response = self.soap_client.call(
    :consultar_nfse,
    soap_action: 'ConsultarNfse',
    message_tag: 'nfse:ConsultarNfse',
    message: { :'header!' => "<![CDATA[#{header}]]>",
               :'parameters!' => "<![CDATA[#{parameters}]]>" })
  parse_response(response)
end
consultar_nfse_por_rps(hash = {}) click to toggle source
# File lib/rnfse/api/speed_gov_1_0.rb, line 49
def consultar_nfse_por_rps(hash = {})
  validate_options(hash)
  validate_ascii(hash)
  header = xml_builder.build_header_xml()
  parameters = xml_builder.build_consultar_nfse_rps_envio_xml(hash)
  response = self.soap_client.call(
    :consultar_nfse_por_rps,
    soap_action: 'ConsultarNfsePorRps',
    message_tag: 'nfse:ConsultarNfsePorRps',
    message: { :'header!' => "<![CDATA[#{header}]]>",
               :'parameters!' => "<![CDATA[#{parameters}]]>" })
  parse_response(response)
end
consultar_situacao_lote_rps(hash = {}) click to toggle source
# File lib/rnfse/api/speed_gov_1_0.rb, line 21
def consultar_situacao_lote_rps(hash = {})
  validate_options(hash)
  validate_ascii(hash)
  header = xml_builder.build_header_xml()
  parameters = xml_builder.build_consultar_situacao_lote_rps_envio_xml(hash)
  response = self.soap_client.call(
    :consultar_situacao_lote_rps,
    soap_action: 'ConsultarSituacaoLoteRps',
    message_tag: 'nfse:ConsultarSituacaoLoteRps',
    message: { :'header!' => "<![CDATA[#{header}]]>",
               :'parameters!' => "<![CDATA[#{parameters}]]>" })
  parse_response(response)
end
recepcionar_lote_rps(hash = {}) click to toggle source
# File lib/rnfse/api/speed_gov_1_0.rb, line 5
def recepcionar_lote_rps(hash = {})
  validate_sign_options
  validate_options(hash)
  validate_ascii(hash)
  header = xml_builder.build_header_xml()
  parameters = xml_builder.build_recepcionar_lote_rps_xml(hash)
  parameters.sign!(certificate: File.read(self.certificate), key: File.read(self.key))
  response = self.soap_client.call(
    :recepcionar_lote_rps,
    soap_action: 'RecepcionarLoteRps',
    message_tag: 'nfse:RecepcionarLoteRps',
    message: { :'header!' => "<![CDATA[#{header}]]>",
               :'parameters!' => "<![CDATA[#{parameters}]]>" })
  parse_response(response)
end

Private Instance Methods

load_options_for_production(options) click to toggle source
# File lib/rnfse/api/speed_gov_1_0.rb, line 87
def load_options_for_production(options)
  provedor = provedores['producao'][options['provedor'].to_s]
  self.namespace = provedor['namespace']
  municipio = case options['municipio'].to_s
              when 'petrolina' then 'pet'
              when 'aquiraz' then 'aqz'
              else options['municipio'].to_s
              end
  self.endpoint = provedor['endpoint'] % { municipio: municipio }
  load_default_options(options)
end
parse_response(response) click to toggle source
# File lib/rnfse/api/speed_gov_1_0.rb, line 99
def parse_response(response)
  hash = Rnfse::Hash.new(response.body)
  response_key = hash.keys.select { |k| k =~ /response$/ }.first
  return_key = hash[response_key].keys.select { |k| k =~ /return$/ }.first
  if !hash[response_key].nil? and hash[response_key]
    xml = hash[response_key][return_key]
    hash[response_key][return_key] = Nori.new.parse(xml)
  end
  hash.underscore_and_symbolize_keys
end
savon_client_options() click to toggle source
# File lib/rnfse/api/speed_gov_1_0.rb, line 110
def savon_client_options
  {
    soap_version: 1,
    env_namespace: :soapenv,
    namespaces: { 'xmlns:soapenv' => 'http://schemas.xmlsoap.org/soap/envelope/',
                  'xmlns:nfse' => 'http://www.abrasf.org.br/ABRASF/arquivos/nfse.xsd',
                  'xmlns' => '' },
    namespace_identifier: nil,
    ssl_verify_mode: :peer,
    ssl_cert_file: self.certificate,
    ssl_cert_key_file: self.key,
    endpoint: self.endpoint,
    namespace: self.namespace
  }
end
validate_ascii(hash) click to toggle source
# File lib/rnfse/api/speed_gov_1_0.rb, line 83
def validate_ascii(hash)
  raise Rnfse::Error::NonASCIIEncoding unless hash.to_s.ascii_only?
end