/rede-cnpj

Visualização gráfica de relacionamentos entre sócios e empresas com dados públicos de CNPJ.

Primary LanguageJavaScriptMIT LicenseMIT

REDE-DADOS-CNPJ - Visualização de dados públicos de CNPJ

Vídeo no youtube

youtube


Outros vídeos de utilização:
Opção básicas dos botões: https://youtu.be/-Ug6ToTRnE4
Criar uma ligação no gráfico: https://youtu.be/8I0oNb4U9Rw
Aumentar tamanho da ligação: https://youtu.be/7hy74LE8e7A
Exportar dados como json: https://youtu.be/WKn02G9yHbQ
Arrastar células do Excel: https://youtu.be/Oxze-d4V7kE
A rotina possibilita visualizar de forma gráfica os relacionamentos entre empresas e sócios, a partir da base de dados públicos de cnpj da Receita Federal.
Foi testada nos navegadores Firefox, Edge e Chrome. NÃO FUNCIONA no Internet Explorer.
A base de dados é o arquivo CNPJ_full.db, banco de dados no formato sqlite. Para exemplificar o funcionamento da rotina, este repositório tem o arquivo com cerca de mil registros com dados fictícios de empresas e de sócios.

Versão online com base completa de dados públicos de CNPJ:

http://168.138.150.250/rede/
Leia as informações iniciais, e digite "TESTE", CNPJ, Razão Social Completa, Nome Completo de Sócio ou Radical do CNPJ. Pode-se inserir vários CNPJs de uma só vez, separando-os por (;). Funciona parcialmente em celular, com menu errático.

Versão em python:

É preciso ter instalado no computador, um interpretador de linguagem python (versão 3.7 ou posterior) como a distribuída pelo Anaconda ou WinPython.
Para iniciar esse script, em um console DOS digite
python rede.py
A rotina abrirá o endereço http://127.0.0.1:5000/rede/ no navegador padrão. Se der algum erro como “module <nome do módulo> not found”, instale o módulo pelo comando pip install <nome do módulo>.
As opções por linha de comando são exibidas fazendo python rede.py -h

Versão executável:

Para iniciar a versão executável, primeiro descompacte o arquivo rede-cnpj-exe.7z. Para executar a rotina, clique duas vezes em rede.exe. Obs: a versão executável foi criada por pyinstaller para funcionar no windows. É possível que falte alguma dll para funcionar corretamente.
A rotina abrirá o endereço http://127.0.0.1:5000/rede/ no navegador padrão e um console do DOS. Para parar a execução, feche o console.
Esta versão antiga executável só irá funcionar com a base de testes que está no arquivo compactado.

Como utilizar o Banco de dados públicos de cnpj:

A pasta contém um arquivo CNPJ_teste.db, que é o banco de dados com poucos dados apenas para testar o funcionamento da rotina. Substitua esse arquivo pela base CNPJ.db em sqlite que pode ser obtido no Google Drive https://drive.google.com/drive/folders/1Gkeq27aHv6UgT8m30fc4hZWMPqdhEHWr?usp=sharing (base da SRF de 16/7/2021), alterando o arquivo de configuração rede.ini, mudando o nome do banco na linha para
base_receita = CNPJ.db

OBSERVAÇÃO IMPORTANTE em março de 2021:

A partir de 2021 os dados da Receita Federal estão disponíveis no link https://www.gov.br/receitafederal/pt-br/assuntos/orientacao-tributaria/cadastros/consultas/dados-publicos-cnpj em formato csv. Observação: A versão antiga utilizava um arquivo sqlite gerado a partir do script do Fabio Serpa (https://github.com/fabioserpa/CNPJ-full). A versão atual só vai funcionar com o CNPJ.db que está no Google Drive.
Em https://github.com/rictom/cnpj-sqlite coloquei um script em python para converter os arquivos zipados do site da Receita para sqlite, para ser utilizado neste projeto.

Opções:

A roda do mouse expande ou diminui o tamanho da exibição.
Fazendo click duplo em um ícone, a rotina expande as ligações.
Apertando SHIFT, é possível selecionar mais de um ícone.
Pressionando CTRL e arrastando na tela, adiciona a seleção os itens da área. Clicar no botão do meio do mouse (roda) faz aparecer janela para editar uma Nota, que aparece numa terceira linha abaixo do ícone.

Outras opções da rede estão no menu contextual do mouse (botão direito), sendo configuradas teclas de atalho correspondentes aos comandos:

Tecla – Descrição do comando.

  • TECLAS de 1 a 9 - Inserir camadas correspondente ao número sobre o nó selecionado;

  • I - Inserir CNPJ, Razão Social completa ou nome completo de sócio. Poderão ser colocados vários CNPJs ao mesmo tempo, separados por ponto e vírgula (;).

  • U - Criar item novo (que não seja PF ou PJ) e ligar aos itens selecionados;

  • E - Editar dados do item (que não seja PF ou PJ) selecionado;

  • CRTL+Z – Desfaz Inserção;

  • SubMenu Ligar:

  • U - Ligar para novo item;

  • L - Ligar itens selecionados, ligação tipo estrela (o primeiro ligado aos demais);

  • SHIFT+L - Remover ligação entre os itens selecionados;

  • Remover Ligacoes - Remove todas as ligações dos itens selecionados;

  • K - Ligar itens selecionados, ligação tipo fila (o primeiro ligado ao segundo, o segundo ao terceiro, etc);

  • SubMenu Visualização:

  • A - Gráfico em Nova Aba - Abre aba com os itens selecionados;

  • SHIFT+A - Abre uma nova Aba vazia;

  • Dividar o gráfico em partes;

  • P - Fixar o nó na posição;

  • SubMenu Visualização>Rótulos:

  • N - Rótulo - Exibe apenas o primeiro nome;

  • Alterar Ícone;

  • C - Colorir os nós selecionados;

  • Escolher Cor;

  • D – Abre um popup com dados;

  • SHIFT+D – Abre numa nova aba com Dados;

  • CTRL+D – Lista ids dos itens selecionados;

  • Escala Inicial - Coloca a exibição sem zoom, na escala inicial.

  • Barra de Espaço - Parar/reiniciar leiaute (se a tela tiver muitos nós, os comandos funcionam melhor se o leiaute estiver parado);

  • F - Localizar - Localizar na Tela Nome, CNPJ ou CPF;

  • SHIFT+F - Localizar apenas na seleção;

  • J – Seleciona itens adjacentes;

  • SHIFT+J – Seleciona árvores dos itens selecionados;

  • Itens com mais ligações - Opção para selecionar os itens do gráfico com mais ligações;

  • SubMenu - Busca em sites:

  • G – Abre o nó numa aba do site Google;

  • SHIFT+G – Abre o endereço no Google Maps (só CNPJs);

  • Jusbrasil - Busca no site Jusbrasil

  • Portal da Transparência - Busca no Portal da Transparência;

  • SubMenu Salvar/Abrir:

  • Salvar dados em Excel;

  • Salvar imagem em formato SVG;

  • Salvar Arquivo Json - salva dados do gráfico no formato json;

  • Abrir Arquivo Json;

  • Exportar/Importar JSON ao Servidor - Exportar ou importar dados do gráfico em formato JSON carregados no servidor;

  • SubMenu Excluir

  • DEL – Excluir itens selecionados.

  • SHIFT+DEL – Excluir todos os itens.

  • Excluir Nó mantendo Link;

  • Simplifica Gráfico - Remove itens nas bordas do gráfico que não tenham destaque;

  • Excluir itens isolados - Remove itens sem ligação.

Os comandos valem para o último nó selecionado ou nós selecionados, que ficam em destaque com a animação no contorno ods ícones. Pressionando SHIFT e click, é possível selecionar mais de um ícone para fazer Exclusão ou para Expansão de vínculos. Pode-se arrastar células com listas de CNPJs do Excel para a janela, ou arrastar arquivos csv ou json.

Fonte dos dados:

Base de CNPJ. A base de dados públicos de CNPJ da Receita Federal tem informação de Capital Social de empresas. A tabela de sócios contém apenas os sócios ativos de empresas, com CPF descaracterizado e nome completo do sócio.
https://www.gov.br/receitafederal/pt-br/assuntos/orientacao-tributaria/cadastros/consultas/dados-publicos-cnpj

Arquivo CNPJ.db completo, referência 16/7/2021, já no formato sqlite, dividido em cinco blocos, foi copiado no Google Drive:
https://drive.google.com/drive/folders/1Gkeq27aHv6UgT8m30fc4hZWMPqdhEHWr?usp=sharing
Para juntar os blocos, abra o primeiro (CNPJ.7z.001) no 7zip. Os arquivos compactados têm o tamanho de 5GB. O arquivo descompactado tem 24GB.

Outras referências:

Biblioteca em javascript para visualização:
https://github.com/anvaka/VivaGraphJS

Menu Contextual:
https://www.cssscript.com/beautiful-multi-level-context-menu-with-pure-javascript-and-css3/

Histórico de versões

versão 0.7.1 (agosto/2021)

  • opção para dividir gráficos em outras abas (tecla Q);
  • correção de erro quando se apertava tecla CTRL;
  • opção para selecionar itens adjacentes aos selecionados (tecla J);
  • opção para selecionar árvore que contém o item (tecla SHIFT+J);
  • opção para listar itens com mais links (tecla CTRL+J)
  • opção para selecionar itens com mais ligações para ícones coloridos;
  • opção "Nova Aba" (tecla A) abre nova aba com mais de um item selecionado;
  • troca de nomes no menu de exportar json para salvar json;
  • opção para exportar dados para banco de dados local (só funciona na máquina local);
  • opção para exportar para json apenas itens selecionados;
  • opção para ocultar rótulos de ligações (SHIFT+N);
  • opção para remover todas as ligações dos itens selecionados;
  • opção simplifica gráfico (remove itens que não são coloridos ou com comentário que tem apenas uma ligação).

versão 0.6.3 (julho/2021)

  • melhoria para dar clique duplo em ícones;
  • correção de erro de ligação para empresa no exterior sem cnpj;
  • somente o ícone pode ser clicado;
  • mensagem de alerta para utilizar caractere curinga;
  • mudança nas tabelas temporárias;
  • todas as tabelas de códigos (cnae, natureza jurídica, etc) foram incorporados ao arquivo sqlite;
  • OBSERVAÇÃO. A versão 0.6.3 só vai funcionar com a versão mais atualizada do arquivo cnpj.db referência 16/7/2021.

versão 0.5.1 (junho/2021)

  • atualização da tabela sqlite cnpj.db com dados públicos de 18/06/2021.

versão 0.5 (abril/2021)

  • alteração do código para layout novo das tabelas;
  • busca por Radical de CNPJ ou CPF de sócio (busca somente pelo miolo do CPF);

versão 0.4 (janeiro/2021)

  • usando lock para evitar erro de consulta em requisições simultâneas;
  • opção para fazer busca do termo no Portal da Transparência da CGU;
  • correção de link para google search.

versão 0.3.4 (janeiro/2021)

  • Possibilita ver o texto do lado direito do ícone;
  • diagramas de tabela hierárquica;
  • ver diagramas de arquivo com código em python;
  • mais opções por linha de comando.

versão 0.3 (janeiro/2021)

  • Opção para inserção de novos itens para elaboração de mapas mentais;
  • Opções para inserir itens novos como link para sites e arquivos locais.
  • Opção para arrastar células do excel, leitura de arquivo csv;
  • Opções de leitura de entrada por linha de comando;
  • Itens selecionados ficam em destaque com linha animada;
  • Alteração no formato do arquivo de configuração rede.ini.

versão 0.2 (dezembro/2020)

  • Suporte para busca por parte do nome na base de empresas;
  • Exportação/importação de gráfico no formato json para o servidor.

versão 0.1 (setembro/2020)

  • Primeira versão