Popularity
5.2
Growing
Activity
4.6
Declining
26
2
15

Monthly Downloads: 3,928
Programming language: Elixir
License: The Unlicense
Tags: Text And Numbers    

brcpfcnpj alternatives and similar packages

Based on the "Text and Numbers" category

Do you think we are missing an alternative of brcpfcnpj or a related project?

Add another 'Text and Numbers' Package

README

Build Status Inline docs

Brcpfcnpj

Coleção de funções para validação e formatação de CPF e CNPJ. Veja a documentação online.

Como usar

Adicione ao mix.exs do seu projeto:

defp deps do
  [{:brcpfcnpj, "~> 0.2.0"}]
end

Para Elixir < 1.2 utilize a versão 0.0.11. Veja detalhes.

Para Ecto < 2 utilize a versão 0.1.2. Veja detalhes.

Validação de CPF/CNPJ

As funções recebem Strings representando o número do CPF ou CNPJ e verificam a validade destes números usando dois critérios:

  1. O formato da String, que deve seguir o padrão XX.XXX.XXX/XXXX-XXX, onde X pode ser qualquer dígito de 0 a 9, sendo os traços -, barra / e pontos . opcionais.
  2. O conteúdo numérico desta String, validado através do cálculo do módulo 11 dos dígitos que compõem a String.

A função Brcpfcnpj.cpf_valid?/1 verifica se uma String é um CPF válido:

cpf = %Cpf{number: "11144477735"}
Brcpfcnpj.cpf_valid?(cpf) # ==> true

cpf = %Cpf{number: "111.444.777-35"}
Brcpfcnpj.cpf_valid?(cpf) # ==> true

A função Brcpfcnpj.cnpj_valid?/1 verifica se uma String é um CNPJ válido:

cnpj = %Cnpj{number: "69103604000160"}
Brcpfcnpj.cnpj_valid?(cnpj)# ==> true

cnpj = %Cnpj{number: "69.103.604/0001-60"}
Brcpfcnpj.cnpj_valid?(cnpj)# ==> true

Formatando a String

As funções Brcpfcnpj.cpf_format/1 e Brcpfcnpj.cnpj_format retornam a String válida no devido formato. Se a String não for válida, as funções retornam nil.

cpf = %Cpf{number: "11144477735"}
Brcpfcnpj.cpf_format(cpf)  # ==>"111.444.777-35"

cpf = %Cpf{number: "11144477734"}
Brcpfcnpj.cpf_format(cpf)  # ==> nil

cnpj = %Cnpj{number: "69103604000160"}
Brcpfcnpj.cnpj_format(cnpj) # ==>"69.103.604/0001-60"

cnpj = %Cnpj{number: "69103604000161"}
Brcpfcnpj.cnpj_format(cnpj) # ==> nil

Gerando números CPF e CNPJ

Use as funções Brcpfcnpj.cpf_generate/1 e Brcpfcnpj.cnpj_generate/1 para gerar CPFs e CNPJs válidos. O parâmetro das funções indica se os números devem ser formatados.

Brcpfcnpj.cpf_generate true
"468.535.974-78"

Brcpfcnpj.cnpj_generate true
"45.044.251/6215-69"

Sem formatação:

Brcpfcnpj.cpf_generate
"02239513403"

Brcpfcnpj.cnpj_generate
"17463578863541"

Ecto

O modulo Brcpfcnpj.Changeset contém algumas funções que podem ser utilizadas em conjunto com a API de Changesets do Ecto.

import Brcpfcnpj.Changeset

def changeset(model, params \\ :empty) do
  model
  |> cast(params, @required_fields, @optional_fields)
  |> validate_cnpj(:cnpj)
  |> validate_cpf(:cpf)
end

Por padrão esses validadores adicionam a mensagem "Invalid CNPJ/CPF" na lista de erros. Essa mensagem pode ser configurada com o parâmetro message:

validate_cnpj(:cnpj, message: "Cnpj Inválido")

Em caso de duvida veja mais detalhes.

Contribuições

Agradecimentos

Inspirado na gem brcpfcnpj.