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.

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)

- 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.

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

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

- Na tela Hierárquica, abra o menu (ícone três pontos) do nível pai.
- Clique em Cadastrar Nível.
- Modal Criar Subnível abre mostrando o pai (ex: "Pai: Área A").
- Informe o Nome do Subnível (ex: "Prateleira 1").
- Clique em CRIAR para confirmar.
- O subnível aparece aninhado dentro do pai na árvore.
Editar Nível
- Abra o menu (ícone três pontos) do nível desejado.
- Clique em Editar.
- Modal de edição abre com os dados atuais.
- Modifique nome, descrição ou informações.
- Clique em SALVAR para confirmar.
Mover Nível na Árvore
- Abra o menu (ícone três pontos) do nível a mover.
- Clique em Mover Nível.
- Modal apresenta seletor de novo pai (ou "sem pai" para torná-lo raiz).
- Selecione o novo nível pai.
- Clique em MOVER para confirmar.
- A hierarquia é atualizada automaticamente.
Excluir Nível
- Abra o menu (ícone três pontos) do nível a excluir.
- Clique em Excluir (texto em vermelho).
- Modal de confirmação aparece alertando sobre dependências.
- Se houver filhos, será solicitado confirmar exclusão em cascata ou reatribuição.
- Clique em CONFIRMAR EXCLUSÃO.
- O nível é removido da árvore.
Menu de Ações (Ícone Três Pontos)
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.