class Bling::NotaFiscal

Public Class Methods

nota_fiscal(attributes = {}) click to toggle source

Busca por uma nota fiscal através de numero e número de série

Parâmetros:

apikey - API Key obrigatória para requisiçãoes na plataforma Bling

numero - (opcional)

serie - (opcional)

# File lib/bling/nota_fiscal.rb, line 25
def nota_fiscal(attributes = {})
  apikey = attributes[:apikey]
  numero = attributes[:numero].to_s
  serie  = attributes[:serie].to_s

  full_data = self.send(:get, "/notafiscal/#{numero}/#{serie}/json", { query: { apikey: apikey } } )
  get_response(full_data["retorno"])
end
notas_fiscais(attributes = {}) click to toggle source

Listagem de notas fiscais

Parâmetros:

apikey - API Key obrigatória para requisiçãoes na plataforma Bling

page - parâmetro para paginação (opcional)

data_emissao - filtro para data de emissão da nota fiscal (opcional)

data_emissao_from - filtro para data de emissão da nota fiscal (opcional)

data_emissao_to - para data de emissão da nota fiscal (deve ser utilizado sempre com o atributo ‘data_emissao_from’) (opcional)

situacao - veja em [bling.com.br/manuais.bling.php?p=manuais.api2#getNotasFiscais] as possíveis situações (opcional)

# File lib/bling/nota_fiscal.rb, line 50
def notas_fiscais(attributes = {})
  apikey      = attributes[:apikey]
  page_number = attributes[:page]
  page        = "/page=#{page_number}" if page_number
  filters     = set_filters(attributes)

  full_data = self.send(:get, "/notasfiscais#{page}/json", { query: { apikey: apikey, filters: filters } } )
  get_response(full_data["retorno"])
end
salvar_consultar_nota_fiscal(attributes = {}) click to toggle source

Salva e retorna os dados de uma nota fiscal

Parâmetros:

apikey - API Key obrigatória para requisiçãoes na plataforma Bling

number - número da nota fiscal

serie - número de série da nota fiscal

send_mail - true/false (opcional)

# File lib/bling/nota_fiscal.rb, line 88
def salvar_consultar_nota_fiscal(attributes = {})
  apikey     = attributes[:apikey]
  number     = attributes[:number].to_s
  serie      = attributes[:serie].to_s
  send_email = attributes[:send_email]

  full_data = self.send(:post, '/notafiscal/json', { query: { apikey: apikey, number: number, serie: serie, sendEmail: send_email } } )
  get_response(full_data["retorno"])
end
salvar_nota_fiscal(attributes = {}) click to toggle source

Salva uma nota fiscal

Parâmetros:

apikey - API Key obrigatória para requisiçãoes na plataforma Bling

xml - Path para XML

# File lib/bling/nota_fiscal.rb, line 68
def salvar_nota_fiscal(attributes = {})
  apikey = attributes[:apikey]
  xml    = attributes[:xml]

  full_data = self.send(:post, '/notafiscal/json', { query: { apikey: apikey, xml: xml } } )
  get_response(full_data["retorno"])
end

Private Class Methods

get_response(data) click to toggle source
# File lib/bling/nota_fiscal.rb, line 100
def get_response data
  raise(BlingError, data["erros"]["erro"]) if data["erros"]
  data["notasservico"]
end
set_filters(attributes) click to toggle source
# File lib/bling/nota_fiscal.rb, line 105
def set_filters attributes
  data_emissao_from = attributes[:data_emissao_from]
  data_emissao_to   = attributes[:data_emissao_to]
  situacao          = attributes[:situacao]
  filters           = ""

  if data_emissao_from && data_emissao_to
    filters << "dataEmissao[#{data_emissao_from} TO #{data_emissao_to}]"
  end

  filters << ";" if filters.match(/dataEmissao/) && situacao
  filters << "situacao[#{situacao}]" if situacao
  filters
end