formatarDocumento static method

String formatarDocumento(
  1. dynamic documento
)

Formata um documento de acordo com o seu tipo.

O parâmetro documento pode ser de qualquer tipo. O método verifica o tipo do documento e retorna uma string formatada de acordo com o tipo. Tipos:

  • date: Retorna a data formatada no padrão brasileiro.
  • ChaveNFe: Retorna a chave da NFe formatada com traços.
  • NFe: Retorna o número da NFe.
  • Estado: Retorna a UF do estado.
  • Cidade: Retorna o nome da cidade.
  • Endereco: Retorna o endereço formatado.
  • Iterable: Retorna uma string com todos os elementos formatados e separados por virgula.
  • Map: Retorna uma string com todas as chaves e valores formatados e separados por quebra de linha.
  • String: Verifica se o documento é um CPF, CNPJ, CEP, EAN, PIS, CNH, ChaveNFe, Email, IP ou Telefone e formata de acordo. Se o documento for nulo, uma string vazia é retornada.

Implementation

static String formatarDocumento(dynamic documento) {
  if (documento == null) return "";
  if (documento is date) return formatarData(documento);
  if (documento is Estado) return documento.uf;
  if (documento is Cidade) return documento.nome;
  if (documento is Endereco) return documento.toString();
  if (documento is Iterable) return documento.map((e) => formatarDocumento(e)).join(", ");
  if (documento is Map) return documento.entries.map((e) => "${flatString(e.key).isBlank ? "" : e.key.toString().pascalSplitString}: ${formatarDocumento(e.value)}").join("\r\n");

  if (validarCPF(documento)) return formatarCPF(documento);
  if (validarCNPJ(documento)) return formatarCNPJ(documento);
  if (validarCEP(documento)) return formatarCEP(documento);
  if (validarEAN(documento)) return formatarEAN(documento);
  if (validarPIS(documento)) return formatarPIS(documento);
  if (validarCNH(documento)) return formatarCNH(documento);
  if (documento.toString().isEmail) return documento.toString().toLowerCase();
  if (validarTelefone(documento)) return formatarTelefone(documento);
  return "$documento";
}