Module: FocusNfe::Recursos::Concerns::Inutilizavel

Included in:
Nfce, Nfe
Defined in:
lib/focus_nfe/recursos/concerns/inutilizavel.rb

Overview

Comportamento de inutilização de numeração: criação (+POST //inutilizacao+, devolvendo um Modelos::Inutilizacao) e consulta das já criadas (+GET //inutilizacoes+, devolvendo uma lista de Modelos::Inutilizacao). É uma operação de coleção — sem ref por documento.

Constant Summary collapse

CAMINHO_INUTILIZACAO =

Returns segmento do caminho de criação (singular).

Returns:

  • (String)

    segmento do caminho de criação (singular)

"inutilizacao"
CAMINHO_INUTILIZACOES =

Returns segmento do caminho de consulta (plural).

Returns:

  • (String)

    segmento do caminho de consulta (plural)

"inutilizacoes"
JUSTIFICATIVA_MINIMA =

Returns tamanho mínimo da justificativa exigido pela SEFAZ.

Returns:

  • (Integer)

    tamanho mínimo da justificativa exigido pela SEFAZ

15

Instance Method Summary collapse

Instance Method Details

#consultar_inutilizacoes(**filtros) ⇒ Array<FocusNfe::Modelos::Inutilizacao>

Consulta as inutilizações já registradas, aplicando os filtros como query string.

Parameters:

  • filtros (Hash)

    filtros aceitos pela API (ex.: cnpj:, cpf:, numero_inicial:)

Returns:

Raises:



46
47
48
49
50
# File 'lib/focus_nfe/recursos/concerns/inutilizavel.rb', line 46

def consultar_inutilizacoes(**filtros)
  response = connection.get("#{caminho_base}/#{CAMINHO_INUTILIZACOES}", params: filtros)
  itens = response.body.is_a?(Array) ? response.body : []
  itens.map { |item| Modelos::Inutilizacao.from_item(item) }
end

#inutilizar(cnpj:, serie:, numero_inicial:, numero_final:, justificativa:) ⇒ FocusNfe::Modelos::Inutilizacao

Inutiliza uma faixa de numeração não utilizada.

Parameters:

  • cnpj (String)

    CNPJ do emitente

  • serie (String, Integer)

    série da numeração

  • numero_inicial (String, Integer)

    número inicial da faixa

  • numero_final (String, Integer)

    número final da faixa

  • justificativa (String)

    motivo da inutilização (mínimo 15 caracteres)

Returns:

Raises:



31
32
33
34
35
36
37
38
39
# File 'lib/focus_nfe/recursos/concerns/inutilizavel.rb', line 31

def inutilizar(cnpj:, serie:, numero_inicial:, numero_final:, justificativa:)
  validar_justificativa!(justificativa)
  validar_faixa!(numero_inicial, numero_final)

  body = { cnpj: cnpj, serie: serie, numero_inicial: numero_inicial,
           numero_final: numero_final, justificativa: justificativa }
  response = connection.post("#{caminho_base}/#{CAMINHO_INUTILIZACAO}", body: body)
  Modelos::Inutilizacao.from_response(response)
end