Module: FocusNfe::Recursos::Concerns::CorrigivelCte

Included in:
FocusNfe::Recursos::Cte, FocusNfe::Recursos::CteOs
Defined in:
lib/focus_nfe/recursos/concerns/corrigivel_cte.rb

Overview

Comportamento de Carta de Correção Eletrônica (CC-e) do CT-e/CT-e OS: +POST ///carta_correcao+ com a correção por campo no corpo — diferente da CC-e de texto livre da NF-e (Corrigivel). Devolve o Modelos::Documento com o estado fiscal da CC-e.

Instance Method Summary collapse

Instance Method Details

#corrigir(ref, campo_corrigido:, valor_corrigido:, grupo_corrigido: nil, numero_item_grupo_corrigido: nil, campo_api: nil) ⇒ FocusNfe::Modelos::Documento

Emite uma Carta de Correção Eletrônica corrigindo um campo do documento.

São aceitas até 20 correções por documento, cada uma em uma requisição; vale apenas a última correção enviada. Variáveis tributárias, dados de remetente/ destinatário e datas de emissão/saída não podem ser corrigidos.

Parameters:

  • ref (String)

    referência do documento

  • campo_corrigido (String)

    nome do campo a corrigir

  • valor_corrigido (String)

    novo valor do campo

  • grupo_corrigido (String, nil) (defaults to: nil)

    grupo que contém o campo (ex.: "cargas")

  • numero_item_grupo_corrigido (String, nil) (defaults to: nil)

    índice do item, quando o campo está numa lista (inicia em 1)

  • campo_api (Integer, String, nil) (defaults to: nil)

    1 para nomes de campo da API (padrão), 0 para tags XML

Returns:

Raises:

  • (ArgumentError)

    se a ref, campo_corrigido ou valor_corrigido forem inválidos

  • (FocusNfe::Errors::HttpError)

    em respostas não-2xx



26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/focus_nfe/recursos/concerns/corrigivel_cte.rb', line 26

def corrigir(ref, campo_corrigido:, valor_corrigido:, grupo_corrigido: nil,
             numero_item_grupo_corrigido: nil, campo_api: nil)
  validar_referencia!(ref)
  validar_campos_correcao!(campo_corrigido, valor_corrigido)

  body = {
    campo_corrigido: campo_corrigido, valor_corrigido: valor_corrigido,
    grupo_corrigido: grupo_corrigido, numero_item_grupo_corrigido: numero_item_grupo_corrigido,
    campo_api: campo_api
  }.compact
  response = connection.post("#{caminho_referencia(ref)}/carta_correcao", body: body)
  Modelos::Documento.from_response(response, ref: ref)
end