mario-adriano / aliato-project-manager

0 stars 1 forks source link

[Melhoria] CPF e CNPJ nas tabelas de pessoa física e jurídica devem mostrar valor com formatação #3

Open mario-adriano opened 3 weeks ago

mario-adriano commented 3 weeks ago

Descrição: Atualmente, ao cadastrar um CPF para pessoa física ou um CNPJ para pessoa jurídica sem adicionar formatação, o sistema grava o valor com todos os caracteres grudados, sem formatação. Isso afeta a legibilidade dos dados nas tabelas.

Passos para Reproduzir:

  1. Acesse o formulário de cadastro de pessoa física ou jurídica.
  2. Preencha os campos de CPF ou CNPJ sem adicionar a formatação correta (apenas os números).
  3. Salve o cadastro.
  4. Verifique a tabela onde os dados são exibidos.

Resultado Esperado: Mesmo que o valor seja salvo sem formatação, ele deve ser exibido na tabela com a formatação adequada (ex: 123.456.789-09 para CPF e 12.345.678/0001-99 para CNPJ).

Resultado Atual: Se o valor for adicionado sem formatação, ele é exibido na tabela sem formatação (ex: 12345678909 para CPF e 12345678000199 para CNPJ).

Image

Image

mario-adriano commented 2 weeks ago

Solução

Passo 1: Iniciando a Tarefa

Para começar uma nova tarefa de desenvolvimento, siga os passos descritos na seção "INICIANDO A TAREFA" do PDF "TUTORIAL DE COMO DESENVOLVER NO PROJETO ALIATO". Essa seção guiará você na criação da branch correta para o desenvolvimento da nova funcionalidade ou correção de bug.

Passo 2: Acessando o Model Client

O que é um Model? O model é uma parte do código em Rails que representa e gerencia dados da aplicação. Ele é responsável por se comunicar com o banco de dados, salvar e carregar informações, além de aplicar regras de negócio, como validações. No caso do model Client, ele é responsável por tudo relacionado aos dados dos clientes, como CPF, CNPJ, nome, etc.

Adicionar a linha normalizes: Depois de abrir o model Client, você vai adicionar a seguinte linha de código:

normalizes :document_number, with: ->(document_number) { document_number.gsub(/\D/, "") }

Imagem: Image

O que essa linha faz? normalizes: É uma função que serve para transformar (ou normalizar) o valor de um atributo antes de ele ser salvo no banco de dados. document_number: Esse é o atributo que queremos normalizar, que pode ser o CPF ou o CNPJ. ->(document_number) { document_number.gsub(/\D/, "") }: Essa parte define como vamos normalizar o valor. Estamos dizendo que queremos remover todos os caracteres que não são números (\D), como pontos e traços, para que o CPF ou CNPJ seja salvo apenas com os números.

Por que no model Client e não no Individual ou Company? Herança: No Rails, o model Client é a classe "pai", e os models Individual e Company são classes "filhas" que herdam (ou seja, pegam emprestado) todas as funções e comportamentos do model Client. Isso significa que qualquer coisa que você colocar no Client vai automaticamente funcionar no Individual e no Company. Então, ao adicionar essa normalização no Client, você está garantindo que tanto o CPF do Individual quanto o CNPJ do Company sejam normalizados corretamente.

Vendo nos models Individual e Company, você verá o < Client, que indica a herança, ou seja, que ambos estão herdando todas as funcionalidades e comportamentos do model Client.