Pular para o conteúdo principal

Níveis Organizacionais

Tela para montagem da árvore de níveis e processos (locais operacionais) da empresa. Esses níveis alimentam filtros, mapas, inventários e movimentações.

Tela Níveis Organizacionais

Como acessar

  • Rota: /niveis-organizacionais
  • Permissão necessária: niveis_organizacionais

Modos de Visualização

A tela oferece dois modos complementares para gerenciar a hierarquia:

Modo Hierárquico (Padrão)

Tela Níveis - Modo Hierárquico

  • Visualização: árvore expansível com níveis aninhados.
  • Seleção: toggle HIERÁRQUICA no topo (com fundo mais claro).
  • Botões principais:
    • EXPANDIR TODOS: expande toda a árvore em uma única ação.
    • COLAPSAR TODOS: contrai toda a árvore para visualizar apenas os níveis raiz.
  • Estrutura: mostra a hierarquia como "Centro de Distribuição > Área A > Prateleira 1", indicando o caminho completo.
  • Menu de ações por nó: (ícone três pontos) com opções Cadastrar Nível, Editar, Mover Nível e Excluir.

Tela Níveis - Expandir Todos

Modo Tabela

Tela Níveis - Modo Tabela

  • Visualização: tabela com paginação.
  • Seleção: toggle TABELA no topo.
  • Colunas:
    • Nome: nome do nível.
    • Caminho Completo: hierarquia em formato texto (ex: "Centro de Distribuição > Área A > Prateleira 1").
    • Pontos de Leitura Associados: lista de processos vinculados (ex: chips com "Recebimento", "Estoque", "Expedição").
    • Ações: menu três pontos para editar/excluir.
  • Busca: campo "Pesquisar Nível" filtra por nome ou caminho completo.
  • Paginação: controles de página no rodapé.

O que você pode fazer

  • Visualizar a hierarquia de níveis em modo Hierárquico ou Tabela com alternância rápida.
  • Pesquisar por nome ou caminho completo (no modo Tabela).
  • Criar novo nível raiz (nível superior sem pai) ou subnível (filho de um nível existente).
  • Editar nome, descrição e informações do nível existente.
  • Mover um nível para uma nova posição na árvore (mudar pai).
  • Excluir nível (com validação se tem filhos).
  • Criar, editar e visualizar processos (pontos de leitura/locais) vinculados a um nível.
  • Acessar a tela de Mapas via botão dedicado para posicionar pontos nas plantas.

Fluxo de Operações

Criar Novo Nível Raiz

Tela Níveis - Criar Nível

  1. Clique em ADICIONAR (botão azul no topo direito).
  2. Modal Criar Novo Nível abre com campo obrigatório.
  3. Informe o Nome do Nível (ex: "Centro de Distribuição").
  4. Clique em CRIAR para confirmar.
  5. O novo nível aparece como raiz na árvore Hierárquica.

Criar Subnível (Nível Filho)

Tela Níveis - Criar Subnível

  1. Na tela Hierárquica, abra o menu (ícone três pontos) do nível pai.
  2. Clique em Cadastrar Nível.
  3. Modal Criar Subnível abre mostrando o pai (ex: "Pai: Área A").
  4. Informe o Nome do Subnível (ex: "Prateleira 1").
  5. Clique em CRIAR para confirmar.
  6. O subnível aparece aninhado dentro do pai na árvore.

Editar Nível

  1. Abra o menu (ícone três pontos) do nível desejado.
  2. Clique em Editar.
  3. Modal de edição abre com os dados atuais.
  4. Modifique nome, descrição ou informações.
  5. Clique em SALVAR para confirmar.

Mover Nível na Árvore

  1. Abra o menu (ícone três pontos) do nível a mover.
  2. Clique em Mover Nível.
  3. Modal apresenta seletor de novo pai (ou "sem pai" para torná-lo raiz).
  4. Selecione o novo nível pai.
  5. Clique em MOVER para confirmar.
  6. A hierarquia é atualizada automaticamente.

Excluir Nível

  1. Abra o menu (ícone três pontos) do nível a excluir.
  2. Clique em Excluir (texto em vermelho).
  3. Modal de confirmação aparece alertando sobre dependências.
  4. Se houver filhos, será solicitado confirmar exclusão em cascata ou reatribuição.
  5. Clique em CONFIRMAR EXCLUSÃO.
  6. O nível é removido da árvore.

Tela Níveis - Menu de Ações

Opções disponíveis por nó:

  • + Cadastrar Nível: cria um subnível dentro deste nó.
  • ✎ Editar: abre modal de edição.
  • ⇄ Mover Nível: rearranja o nó na hierarquia.
  • ✕ Excluir: remove o nó (com confirmação).

Campos e Estrutura de Dados

Campos de um Nível

  • ID (nivel_id): identificador único do nível (gerado automaticamente).
  • Nome: obrigatório, texto livre (ex: "Centro de Distribuição", "Área A", "Prateleira 1").
  • Descrição: opcional, detalhe adicional do nível.
  • parent_id: referência ao nível pai (define a hierarquia). Se vazio/nulo, o nível é raiz.
  • empresa_id: vinculado à empresa do usuário logado.
  • filhos: subníveis aninhados (apenas em modo Hierárquico).

Campos de Processo (Ponto de Leitura)

  • ID (processo_id): identificador único.
  • Nome: ex: "Recebimento", "Estoque", "Expedição".
  • Vinculação: associado a um ou mais níveis.
  • Descrição: detalhes sobre o processo.
  • Visualização: aparece como chip colorido no nível (modo Tabela) e abaixo do nível (modo Hierárquico).

Caminho Completo

Exemplo: "Centro de Distribuição > Área A > Prateleira 1"

  • Construído a partir da hierarquia de pais.
  • Exibido na coluna "Caminho Completo" (modo Tabela).
  • Mostrado como breadcrumb abaixo do nível (modo Hierárquico).

Regras e Comportamentos

  • A página é protegida por permissão niveis_organizacionais.
  • Todos os níveis criados são vinculados à empresa do usuário logado.
  • Um nível pode ter múltiplos filhos, mas apenas um pai.
  • Um nível raiz (sem parent_id) aparece no topo da hierarquia.
  • Processos (pontos de leitura) podem ser associados a qualquer nível.
  • Ao mover um nível, toda sua subárvore o acompanha.
  • Ao excluir um nível com filhos, há duas opções: excluir em cascata ou reatribuir filhos a novo pai.
  • A busca no modo Tabela é case-insensitive e busca por nome ou caminho completo.
  • Expandir/Colapsar todos afeta apenas o nível de profundidade inicial (não anida mudanças em sub-árvores abertas).

Estados de Retorno Esperados

  • Criação com sucesso: novo nível aparece na hierarquia.
  • Edição com sucesso: nível atualizado com novos dados.
  • Movimento com sucesso: nível reaparece em nova posição.
  • Exclusão com sucesso: nível removido e filhos tratados conforme opção escolhida.
  • Erro de validação: alerta indicando campos obrigatórios não preenchidos.
  • Erro de dependência: tentativa de excluir nível com filhos sem confirmação.