Pular para o conteúdo principal

Modal de Trocar Representante

Descrição

Modal implementado em estabelecimentos_novo.php que permite trocar o representante de um estabelecimento comercial.

Fluxo de Funcionamento

Regras de Negócio

  1. Usuário com White Label vinculado:

    • Deve ser admin
    • Deve ter permissão estabelecimentos.trocar_representante
    • Verá apenas usuários ativos vinculados ao seu white label
  2. Usuário sem White Label vinculado:

    • Deve ser admin
    • Deve ter permissão estabelecimentos.trocar_representante
    • Verá todos os usuários ativos do sistema

Arquivos Criados/Modificados

Novos Arquivos

  1. config/estabelecimentos/buscar_usuarios_trocar_representante.php

    • Endpoint para buscar usuários disponíveis
    • Aplica filtros baseados em white label e permissões
  2. config/estabelecimentos/trocar_representante.php

    • Endpoint para processar a troca de representante
    • Atualiza o estabelecimento
    • Registra log da alteração
  3. database/migrations/create_logs_troca_representante.sql

    • Script SQL para criar tabela de logs
    • Registra histórico de trocas de representante

Arquivos Modificados

  1. dashboard/gestao/estabelecimentos_novo.php

    • Adicionado modal HTML
    • Adicionado CSS para estilização
    • Adicionado JavaScript para controle do modal
    • Adicionado botão na tabela de estabelecimentos
    • Adicionada permissão na variável de permissões
  2. config/permissoes/verificar_permissoes_estabelecimentos.php

    • Adicionada verificação da permissão estabelecimentos.trocar_representante

Como Usar

  1. Configurar Permissão:

    • Adicionar permissão estabelecimentos.trocar_representante no banco de dados
    • Vincular permissão ao perfil/usuário desejado
  2. Executar Migration:

    -- Execute o arquivo SQL para criar a tabela de logs
    source database/migrations/create_logs_troca_representante.sql
  3. Usar o Modal:

    • Acesse a página de estabelecimentos
    • Clique no ícone de trocar representante (ícone de usuário com lápis)
    • Selecione o novo representante
    • Confirme a troca

Estrutura da Tabela de Logs

logs_troca_representante
├── id (PK)
├── estabelecimento_id (FK -> estabelecimentos)
├── antigo_representante_id (FK -> usuarios)
├── novo_representante_id (FK -> usuarios)
├── usuario_alteracao_id (FK -> usuarios)
└── data_alteracao (DATETIME)

Segurança

  • Validação de permissões no backend
  • Validação de sessão
  • Transações SQL para garantir integridade
  • Logs de auditoria