mario-adriano / aliato-project-manager

0 stars 1 forks source link

[BUG] O sistema permite cadastrar clientes com o mesmo CPF ou CNPJ #4

Open mario-adriano opened 3 weeks ago

mario-adriano commented 3 weeks ago

Descrição: Atualmente, o sistema permite o cadastro de novos clientes utilizando CPF ou CNPJ já existentes no banco de dados, o que pode gerar duplicidades e inconsistências nos registros.

Passos para Reproduzir:

  1. Acesse o formulário de cadastro de pessoa física ou jurídica.
  2. Preencha o campo de CPF ou CNPJ com um valor que já existe no sistema.
  3. Salve o cadastro.

Resultado Esperado: O sistema deve exibir uma mensagem de erro informando que o CPF ou CNPJ já está cadastrado no banco de dados e impedir a duplicidade.

Resultado Atual: O sistema permite o cadastro, mesmo que o CPF ou CNPJ já esteja registrado.

Image

Image

mario-adriano commented 3 weeks ago

Especificação Técnica

Adicionar validação de único para o campo document_number no model Client.

Link:

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: Editando o Model do Cliente

Abrindo o Model:

No editor de código, pressione Ctrl + P e digite client para encontrar e abrir o arquivo app/models/client.rb. Este é o model do cliente.

O que é um Model no Rails?

No Rails, um model é uma parte fundamental da aplicação que representa e gerencia os dados do seu sistema. É o modelo que se conecta ao banco de dados, permitindo que você crie, leia, atualize e apague dados. No caso do client.rb, ele representa as informações dos clientes, como nome, CPF, CNPJ, etc. Os models são importantes porque eles garantem que a lógica dos dados seja centralizada e facilmente gerenciável.

Link de vídeos com explicações: 1 https://www.youtube.com/watch?v=MY-rQpJ_TTs 2 https://www.youtube.com/watch?v=sUx8TJBo12Q

Adicionando Validação de Unicidade: Encontre a linha que contém validates :document_number e adicione a opção uniqueness: true, como mostrado na imagem.

Image

A linha deve ficar assim:

validates :document_number, uniqueness: true

O que é validates e uniqueness?

O validates é uma forma de garantir que os dados que você está salvando no banco de dados seguem certas regras. Nesse caso, :document_number refere-se ao campo que armazena o número de CPF ou CNPJ. A opção uniqueness: true assegura que cada CPF ou CNPJ seja único, ou seja, não pode haver dois clientes diferentes com o mesmo número. Isso é importante para evitar duplicidade de registros no sistema. Salvando e Testando:

Salve as alterações feitas no arquivo. No terminal, execute o comando ./bin/dev-lite para iniciar a aplicação. Abra a aplicação no navegador e tente inserir um CPF já cadastrado ou um CNPJ para uma pessoa jurídica que já está no sistema. O sistema deve impedir a duplicidade, mostrando uma mensagem de erro.

Passo 3: Enviando as Alterações ao Repositório Git

Agora que você fez as alterações necessárias no código, é hora de enviá-las para o repositório Git, onde elas poderão ser testadas. Para isso, siga os passos 5, 6 e 7 da seção "INICIANDO A TAREFA" no PDF "TUTORIAL DE COMO DESENVOLVER NO PROJETO ALIATO". Esses passos irão guiá-lo por todo o processo de commit e push das alterações para o repositório remoto.