# 🐛 Correções de Bugs - Módulo GR ## Data: 2026-01-28 ### Bug 1: Matching de Cadastros Abertos com Contratos #### Problema Relatado Na tela de contratos, dentro da coluna "Cadastros Abertos", foi criado um novo cadastro com nome "Daivid Alexandre" enquanto já existia um contrato com nome "Daivid". O sistema estava fazendo matching incorreto. #### Análise Após análise do código, verificamos que: - A lógica de matching **já estava correta**, usando `iddrivers` como identificador único - O matching é feito por `iddrivers`, não por `nome_completo` - Os dados fornecidos mostram `iddrivers` diferentes (14 vs 55), confirmando que são registros distintos #### Correção Aplicada - ✅ Adicionados comentários explicativos na lógica de `cadastrosAbertosData` em `ContractsView.jsx` - ✅ Adicionada verificação adicional para garantir que `iddrivers` não seja `null` antes de fazer o matching - ✅ Documentação clara de que o matching é feito por `iddrivers` e não por `nome_completo` #### Arquivo Modificado - `src/features/gr/views/ContractsView.jsx` (linhas 122-140) #### Código Antes ```javascript const cadastrosAbertosData = useMemo(() => { const contractDriverIds = contractsData.map(c => c.iddrivers); return registrations.filter(r => { const hasContract = contractDriverIds.includes(r.iddrivers); // ... }); }, [registrations, contractsData]); ``` #### Código Depois ```javascript // IMPORTANTE: O matching é feito por iddrivers (identificador único), NÃO por nome_completo // Isso garante que cadastros com nomes similares mas iddrivers diferentes sejam tratados corretamente const cadastrosAbertosData = useMemo(() => { // Extrair todos os iddrivers que possuem contrato criado const contractDriverIds = contractsData.map(c => c.iddrivers).filter(id => id != null); return registrations.filter(r => { // Verificar se este cadastro (por iddrivers) já possui um contrato criado const hasContract = r.iddrivers != null && contractDriverIds.includes(r.iddrivers); // ... }); }, [registrations, contractsData]); ``` --- ### Bug 2: Click Habilitado em Cards Bloqueados #### Problema Relatado Na tela de cadastros, na coluna "Aguardando Análise", cadastros com modalidade "Rentals" ou "Agregado" que estão bloqueados (aguardando contrato assinado) ainda permitiam click, permitindo: - Edição pelo painel de detalhes - Movimentação do card (que já estava bloqueada) #### Análise - O bloqueio de movimento já estava implementado corretamente - O bloqueio de click **não estava implementado** - Cards bloqueados ainda executavam o `onClick` normalmente #### Correção Aplicada - ✅ Adicionada função `handleClick` no componente `GrKanbanCard` que verifica se o card está bloqueado - ✅ Se bloqueado, o click é prevenido e não executa o `onClick` - ✅ Mantida a lógica de bloqueio de drag já existente #### Arquivo Modificado - `src/features/gr/components/GrKanbanCard.jsx` (linhas 48-61) #### Código Antes ```javascript return (