Open mario-adriano opened 3 weeks ago
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:
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.
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:
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).