wagner-goncalves/srcidadao-coletor-camara

Biblioteca para Download de XMLs dos Serviços de Dados Abertos da Câmara dos Deputados e Processamento dos XMLspara um banco de Dados MySQL.

dev-master 2018-10-29 19:17 UTC

This package is auto-updated.

Last update: 2019-12-29 05:24:02 UTC


README

Biblioteca para Download de XMLs dos Serviços de Dados Abertos da Câmara dos Deputados e Processamento dos XMLspara um banco de Dados MySQL.

Pré requisitos

  • Servidor MySql 5.6 ou superior.
  • PHP 7 ou superior.
  • Servidor Apache 2.2 ou Superior.

Onde começar

Via composer

Adicione SrCidadão ao composer.json.

$ composer require wagner-goncalves/srcidadao-coletor-camara

E atualize o composer

$ composer update

Instalação

  • Criar banco de dados "srcidadao", disponível aqui.
  • Configurar conexão com o banco de dados e a pasta onde os arquivos XML serão baixados no arquivo /src/Camara/Config/.config.
  • Conceder permissão de escrita para a pasta configurada (.config) anteriormente para receber os XMLs baixados.
  • Configurar eventuais exceções de firewall, uma vez que a biblioteca conecta-se no site remoto da Câmara dos Deputados.

Como usar

Download e processamento de dados

Inicialização

// Se instalado via composer, use este código para incluir autoloader no topo do projeto.
require 'vendor/autoload.php';

// SrCidadão namespace
use SrCidadao\Coletor\Camara\Downloader;
use SrCidadao\Coletor\Camara\Processor;

//Recupera variáveis de configuração
$dotenv = new Dotenv\Dotenv(__DIR__ . "/../src/Camara/Config/", ".config");
$dotenv->load();

//Codigo sequencial. Deve ser gerado na tabela camara_processamento antes de iniciar o download e processamento.
$codProcessamento = 1; 

$downloader = new Downloader($codProcessamento); // Passo 1, download da XMLs
$processor = new Processor($codProcessamento); // Passo 2, processa XML para banco de dados

Partidos políticos

$result = $downloader->obterPartidosCD(); //Obtém lista de partidos ativos
$result = $processor->obterPartidosCD(); //Processa para a tabela camara_partido  

Deputados

$result = $downloader->obterDeputados(); //Obtém lista de deputados ativos
$result = $processor->obterDeputados(); //Processa para a tabela camara_deputado  

Presença dos deputados

$result = $downloader->listarPresencasDia("20/09/2018", "30/09/2018"); //Obtém arquivos de presença em prenário (um XML por dia)
$result = $processor->listarPresencasDia("20/09/2018", "30/09/2018"); //Processa para a lista de presença para a tabela camara_presenca 

Proposições colocadas em votação no plenário

$result = $downloader->listarProposicoesVotadasEmPlenario(2017, 2018); //Obtém proposições (resumo) votadas em prenário (um XML por ano)
$result = $processor->listarProposicoesVotadasEmPlenario(2017, 2018); //Processa para a lista de proposições para a tabela camara_proposicaoplenario 

Detalhes de proposições

$result = $downloader->obterProposicaoPorID("20/09/2018", "30/09/2018"); //Obtém detalhes de proposições votadas entre dataInicial e dataFinal
$result = $processor->obterProposicaoPorID("20/09/2018", "30/09/2018"); //Processa detalhes de proposições para a tabela camara_proposicao

Votação de cada deputado nas proposições

$result = $downloader->obterVotacaoProposicao("20/09/2018", "30/09/2018"); //Obtém votação de cada deputado de proposições votadas entre dataInicial e dataFinal
$result = $processor->obterVotacaoProposicao("20/09/2018", "30/09/2018"); //Processa votos de cada deputado naproposição para a tabela camara_votacaoproposicao

Consulte classes de teste em /tests/DownloaderTest.php

Licença

LGPL-3.0