Skip to content

Instantly share code, notes, and snippets.

@LuizHGodoy
Created February 24, 2025 16:10
Show Gist options
  • Save LuizHGodoy/50f70151747560bea03a095b132f4a58 to your computer and use it in GitHub Desktop.
Save LuizHGodoy/50f70151747560bea03a095b132f4a58 to your computer and use it in GitHub Desktop.
Documentação Trade View

Card: Alteração de Rótulos em massa - TRD-1868

Objetivo

Implementar funcionalidade para importar arquivo .xlsx que atualizará registros na tabela tradeview.posicoes.

Requisitos do Arquivo

  • Formato: .xlsx
  • Colunas obrigatórias:
    • Id da Posição* (identificador único)
    • Id da Posição Superior*
    • Rótulo da Posição*
    • Equipe ID*
    • Função ID*
    • Jornada ID*
    • Exportar Mobile (1=Verdadeiro, 0=Falso)
    • CPF do Usuário (se vazio, posição será desalocada)

Fluxo

  1. Upload: Usuário seleciona arquivo → sistema valida formato/layout
  2. Validação: Sistema verifica IDs existentes e regras de negócio
  3. Processamento:
    • Campos obrigatórios: ID Posição, Rótulo Posição
    • Campos opcionais: ID Equipe, Função, Jornada, Exporta Mobile (não altera se vazio)
    • CPF vazio = desalocar posição
  4. Feedback: Modal exibe totais (processados/sucesso/erros) com opção para download do log

Interface

  • Menu: Disponível em "Posições" quando um projeto estiver selecionado
  • Botões principais:
    • "Importar Novos Rótulos"
    • "Alteração em Massa de Rótulos" (habilita download de template e exportação)
  • Visualização de importações: Tabela com usuário, datas, arquivo, operação, status e ações
  • Log detalhado: Arquivo CSV/XLSX com status ou erro de cada registro

Validações e Regras

  • Apenas posições existentes podem ser atualizadas
  • Registros inválidos não afetam registros válidos
  • Layout do arquivo deve conter todas as colunas obrigatórias

Card: Importação em Massa de Store DNA - TRD-1697

Objetivo

Implementar funcionalidade para importação em massa de dados Store DNA (complementares) dos PDVs via arquivo CSV.

Pré-requisitos

  • Usuário associado ao projeto
  • Permissão para cadastro/edição de Store DNA
  • Projeto selecionado

Fluxo Principal

  1. Tela de Importação:

    • Botão "Modelo de Arquivo de Importação": Gera CSV modelo com formato modelo_importacao_store_dna_<projeto>.csv
    • Estrutura do modelo: idpdv;<campo1>;<campo2>;<campoN>
    • Botão "Confirmar": Desabilitado inicialmente, habilita após seleção do arquivo
  2. Processamento:

    • Após confirmação, exibe mensagem de processamento iniciado
    • Redireciona para tela de histórico de importações
  3. Histórico de Importações:

    • Tabela com colunas: Usuário, Data criação, Data término, Arquivo, Status, Ações
    • Status possíveis: Em processamento, Finalizado com sucesso, Finalizado com erro, Finalizado com falha
    • Paginação configurável
  4. Resultado da Importação:

    • Acessível via ícone na coluna "Ações"
    • Exibe resumo de PDVs alterados com sucesso
    • Detalha erros linha a linha (PDV inativo, não associado ao projeto, inexistente)

Validações

  • Arquivo deve ser CSV separado por vírgulas
  • Quantidade de colunas deve corresponder aos campos configurados por projeto
  • PDVs devem estar vinculados ao projeto selecionado
  • Dados em branco serão considerados como limpeza do campo anterior

Estrutura Técnica

  • Salvar dados em MongoDB e MySQL (nova tabela)
  • Usar tabela tradeview.pdvs_complementos (mesma estrutura do card anterior)

Navegação

Menu PDVs > Importação de Store DNA > Nova Importação

Card: Importação de Rótulos (Novos Rótulos) - TRD-1884

Objetivo

Permitir que o usuário importe um arquivo .xlsx para cadastrar posições em massa no banco tradeview_posicoes.

Fluxo Principal

  1. Upload do Arquivo

    • Usuário seleciona um .xlsx.
    • Sistema valida formato e estrutura.
  2. Validação

    • Verifica colunas obrigatórias e tipos de dados.
    • Exibe erros no modal caso o arquivo esteja incorreto.
  3. Processamento

    • Registros válidos são inseridos no banco.
    • Registros inválidos são ignorados e logados.
  4. Feedback ao Usuário

    • Exibe total de inserções e erros.
    • Disponibiliza log detalhado para download.

Regras de Negócio

  • Colunas obrigatórias: [Id da Posição Superior], [Rótulo da Posição], [EquipeID], [Função ID], [Jornada ID], [Exportar Mobile], [CPF do Usuário].
  • Validações:
    • CPF deve seguir o formato 000.000.000-00.
    • Verificar existência de chaves estrangeiras antes da inserção.
    • Impedir múltiplas alocações se aplicável.

Erros Possíveis

  • Formato de arquivo inválido → Mensagem: "Formato inválido, use .xlsx".
  • Colunas ausentes → Exibir quais estão faltando no modal.

Resultado da Importação

  • Se sucesso: Mostra total de rótulos inseridos e erro + opção de baixar log.
  • Se erro no arquivo: Informa motivo e sugere correção.

Card: Configuração de Campos Store DNA - TRD-1695

Objetivo

Implementar funcionalidade para criar, editar e excluir campos personalizados (Store DNA) nos PDVs por projeto.

Requisitos Principais

  • Migrar dados do MongoDB para MySQL
  • Permitir campos customizados por projeto
  • Suportar diferentes tipos de dados
  • Configurar opção de exportação para roteiro

Tipos de Campos Suportados

  • Número decimal
  • Número inteiro
  • Lista com seleção múltipla
  • Lista com seleção única
  • Texto
  • Booleano

Regras de Negócio

  • Projeto deve estar ativo
  • Usuário deve ter permissão apropriada
  • Campos exigem nome e tipo de dado
  • Apenas uma lista de campos personalizados por projeto
  • Listas devem ter nomes distintos dentro do mesmo projeto
  • Campos marcados como "Exportar no Roteiro" serão incluídos na exportação
  • Campos inativos não são exportados para o roteiro por padrão

Estrutura do Banco de Dados

1. tradeview.pdvs_complementos (Armazena valores dos campos)

  • projeto_id, pdv_id, campo_nome, campo_tipo, campo_valor, campo_ordem, campo_ativo, criado_em, atualizado_em

2. tradeview.pdvs_complementos_lista (Armazena listas)

  • projeto_id, lista_id, lista_nome, criado_em, atualizado_em

3. tradeview.pdvs_complementos_lista_itens (Armazena itens das listas)

  • lista_id, item_ordem, item_valor, criado_em, atualizado_em

Fluxo de Interação

  1. Acessar configuração com projeto selecionado
  2. Criar/editar campos personalizados (nome, tipo, ordem, status)
  3. Para campos tipo lista: criar lista e adicionar itens
  4. Marcar campos para exportação no roteiro conforme necessidade

Card: Visualização e Edição de Store DNA - TRD-1730

Objetivo

Implementar funcionalidade para visualizar e editar dados de Store DNA dos PDVs cadastrados.

Principais Requisitos

  • Migrar funcionalidade do MongoDB para MySQL (Tradeview)
  • Criar nova tabela tradeview.pdvs_complementos
  • Exibir opções de edição/visualização apenas quando um projeto estiver selecionado

Nova Tabela

tradeview.pdvs_complementos:

  • projeto_id (bigint, NOT NULL)
  • pdv_id (bigint, NOT NULL)
  • campo_nome (varchar, NOT NULL)
  • campo_tipo (varchar, NOT NULL)
  • campo_valor (varchar, NULL)
  • campo_ordem (integer, NOT NULL)
  • campo_ativo (boolean, NOT NULL)
  • criado_em (timestamp, NOT NULL)
  • atualizado_em (timestamp, NULL)

Fluxos de Interação

  1. Visualização:

    • Projeto selecionado → Menu PDVs → Linha do PDV → Seta → Aba "Store DNA"
    • Exibe dados da tabela tradeview.pdvs_complementos para o PDV selecionado
  2. Edição:

    • Projeto selecionado → Menu PDVs → Linha do PDV → Ações → Ícone lápis → Aba "Editar Store DNA"
    • Exibe campos edutáveis conforme configuração do projeto

Regras Importantes

  • Campos são dinâmicos conforme configuração do cadastro no projeto
  • Lista de seleção única: permite apenas um valor
  • Lista de seleção múltipla: permite múltiplos valores
  • Campos descritivos incluem: email, shopping, checkout, tipo de canal, dentro da loja, quiosque, etc.

Referências

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment