/*
SCRIPT DE LIMPEZA DE PROCESSOS, DOCUMENTOS E OPERAÇÕES DE USUÁRIOS DA BASE DE DADOS DO SEI 2.6.0 (MySQL)    
	Antes de executar o script:
		1) Retirar o sistema do "AR" (derrubar todas sessões).
		2) Fazer uma cópia da base imediatamente antes de executar o script.
		3) Executar o script de limpeza. Se der erro, restaurar a base com a cópia feita no passo 2.
	
	Depois de executar o script com sucesso, sendo aconselhável conferir algumas tabelas abaixo e sequenciais de protocolo de processo na tabela "infra_sequencia":
		1) Apagar todos os arquivos e estrutura de pastas no Filesystem do SEI.
		2) Excluir os índices do Solr, conforme orientado no final do capítulo do Solr no Manual de Instalação do SEI:
			18 - Caso,  no  futuro,  seja  preciso  reindexar  todos  os  dados  é  aconselhável  limpar  antes  os  índices usando os comandos abaixo:
				http://[servidor_solr]:8080/solr/sei-protocolos/update?stream.body=<delete><query>*:*</query></delete>&commit=true
				http://[servidor_solr]:8080/solr/sei-bases-conhecimento/update?stream.body=<delete><query>*:*</query></delete>&commit=true
				http://[servidor_solr]:8080/solr/sei-publicacoes/update?stream.body=<delete><query>*:*</query></delete>&commit=true
		4) Colocar o sistema de volta ao "AR".
*/

/* Limpeza de tabelas afetas a Protocolo de Processos, de Documentos Gerados e Externos e de Operações dos Usuários */

SET FOREIGN_KEY_CHECKS=0;

truncate table anexo;
truncate table seq_anexo;

truncate table numeracao;
truncate table seq_numeracao;

truncate table acesso;
truncate table seq_acesso;

truncate table acesso_externo;
truncate table seq_acesso_externo;

truncate table acompanhamento;
truncate table seq_acompanhamento;

truncate table grupo_acompanhamento;
truncate table seq_grupo_acompanhamento;

truncate table andamento_situacao;
truncate table seq_andamento_situacao;

truncate table rel_proced_situacao_unidade;

truncate table anotacao;
truncate table seq_anotacao;

truncate table assinatura;
truncate table seq_assinatura;

truncate table estatisticas;
truncate table seq_estatisticas;

truncate table indexacao_base_conhecimento;

truncate table base_conhecimento;
truncate table seq_base_conhecimento;

truncate table rel_base_conhec_tipo_proced;

truncate table indexacao_protocolo;

truncate table indexacao_publicacao;

truncate table versao_secao_documento;
truncate table seq_versao_secao_documento;

truncate table secao_documento;
truncate table seq_secao_documento;

truncate table atributo_andamento;
truncate table seq_atributo_andamento;

truncate table retorno_programado;
truncate table seq_retorno_programado;

truncate table participante;
truncate table seq_participante;

truncate table observacao;
truncate table seq_observacao;

truncate table rel_protocolo_assunto;

truncate table rel_protocolo_protocolo;
truncate table seq_rel_protocolo_protocolo;

truncate table publicacao;
truncate table seq_publicacao;

truncate table rel_bloco_protocolo;

truncate table rel_bloco_unidade;

truncate table protocolo_modelo;
truncate table seq_protocolo_modelo;

truncate table grupo_protocolo_modelo;
truncate table seq_grupo_protocolo_modelo;

truncate table unidade_publicacao;
truncate table seq_unidade_publicacao;

truncate table serie_escolha;

truncate table serie_publicacao;
truncate table seq_serie_publicacao;

truncate table texto_padrao_interno;
truncate table seq_texto_padrao_interno;

truncate table rel_protocolo_atributo;

truncate table feed;
truncate table seq_feed;

truncate table velocidade_transferencia;

truncate table atributo_andamento_situacao;
truncate table seq_atributo_andamento_situaca;

truncate table auditoria_protocolo;
truncate table seq_auditoria_protocolo;

truncate table rel_notificacao_documento;

truncate table notificacao;
truncate table seq_notificacao;

truncate table bloco;
truncate table seq_bloco;

truncate table atividade;
truncate table seq_atividade;

truncate table documento;
truncate table seq_documento;

truncate table procedimento;

truncate table tipo_procedimento_escolha;

truncate table protocolo;
truncate table seq_protocolo;

truncate table grupo_email;
truncate table seq_grupo_email;

/* Se no banco a ser limpo tenha Grupos de E-mail Institucionais configurados na Administração do SEI, verifique a possibilidade de reconfigurá-los manualmente pela aplicação. Caso tenha necessidade de mantê-los no banco, em vez de executar os dois comandos acima, deve executar o comando abaixo para deletar apenas os Grupos de E-mail dos Usuários, não sendo possível o realinhamento dos IDs:
	delete from grupo_email where sta_tipo='U';
*/

truncate table grupo_unidade;
truncate table seq_grupo_unidade;

/* Se no banco a ser limpo tenha Grupos de Envio Institucionais configurados na Administração do SEI, verifique a possibilidade de reconfigurá-los manualmente pela aplicação. Caso tenha necessidade de mantê-los no banco, em vez de executar os dois comandos acima, deve executar o comando abaixo para deletar apenas os Grupos de Envio dos Usuários, não sendo possível o realinhamento dos IDs:
	delete from grupo_unidade where sta_tipo='U';
*/


/* Reconstrui as tabelas de log e auditoria e tabelas sequenciais correspondentes */
truncate table infra_auditoria;
truncate table seq_infra_auditoria;

truncate table infra_log;
truncate table seq_infra_log;

truncate table infra_navegador;
truncate table seq_infra_navegador;

truncate table infra_dado_usuario;

SET FOREIGN_KEY_CHECKS=1;


/* Sobre os últimos comandos abaixo, de acordo com a configuração da fórmula de numeração de protocolo de processo no SEI em Administração > Órgãos, a tabela de sequência anual de processos pode ser qualquer um dos formatos abaixo:
	seq_[ano]_org_sip_[id sip]
	seq_[ano]_org_sei_[cod sei]
	seq_[ano]_uni_sip_[id sip]
	seq_[ano]_uni_sei_[cod sei]
*/

delete from infra_sequencia where nome_tabela like 'seq_%_uni_sei_%';
delete from infra_sequencia where nome_tabela like 'seq_%_uni_sip_%';
delete from infra_sequencia where nome_tabela like 'seq_%_org_sei_%';
delete from infra_sequencia where nome_tabela like 'seq_%_org_sip_%';

update infra_sequencia set num_atual=0 where nome_tabela='infra_log';
update infra_sequencia set num_atual=0 where nome_tabela='infra_navegador';

/********************************************************************************************************************************************************/
