Nfse.DistributedDocument (nfse v0.1.0)

Copy Markdown View Source

Documento fiscal entregue pela distribuição do ADN.

type vem de TipoDocumento; um valor fora dos seis conhecidos vira :unknown. event_type é o TipoEvento do ADN, como "CANCELAMENTO", e é nil nas notas.

xml é o documento como o ADN o entregou. document é o mesmo documento lido como NFS-e ou evento (Nfse.Schema.V1_00.TCNFSe, Nfse.Schema.V1_01.TCEvento e assim por diante), e só os tipos :nfse e :evento são lidos; nos demais ele é nil e error também.

Um documento ilegível (base64 ou gzip inválido, versão desconhecida, XML malformado) não derruba o lote: document fica nil, xml guarda o texto quando houve algum e error traz a falha. Um NSU que não é inteiro tem o mesmo tratamento: nsu guarda o valor como o ADN o mandou e error.details é {:invalid_nsu, valor}.

generated_at é um DateTime quando DataHoraGeracao traz o deslocamento de fuso e um NaiveDateTime quando não traz, sem adivinhar o fuso. É nil quando o campo falta ou não se lê.

Summary

Types

t()

@type t() :: %Nfse.DistributedDocument{
  access_key: String.t() | nil,
  document: struct() | nil,
  error: Nfse.Error.t() | nil,
  event_type: String.t() | nil,
  generated_at: DateTime.t() | NaiveDateTime.t() | nil,
  nsu: non_neg_integer() | term(),
  type: type(),
  xml: binary() | nil
}

type()

@type type() ::
  :nfse | :evento | :dps | :pedido_registro_evento | :cnc | :nenhum | :unknown