Sistema de gestão ELIGO

Limpeza da base para migração definitiva dos dados

ELIGO.FAQ-23692
Cenário:

O roteiro é:

CREATE TABLE t_PRODUTOS (
  id integer, 
  CONSTRAINT pk_tPRODUTOS PRIMARY KEY (id)
);

INSERT INTO T_PRODUTOS(ID)
SELECT ID FROM PRODUTOS WHERE TIPO_PRODUTO_ID=16301;

delete from custos_produtos;
delete from movimentos_estoques;
delete from historicos_produtos h where not exists (select 1 from t_produtos where id=h.produto_id);
delete from alteracoes_itens_colecoes;
delete from itens_colecoes;
delete from importacoes_nfe_entrada;
delete from operacoes_fiscais_itens_documento;
delete from itens_doc_entradas_saidas;
delete from pedidos_titulos;
delete from operacoes_fiscais_documentos;
delete from doc_entradas_saidas;
delete from itens_pedidos;
delete from anexos_pedidos;
delete from modos_pagamentos;
delete from historicos_pedidos;
delete from pedidos_financeiros;
delete from pedidos;
delete from estoques_produtos;
delete from saldos_mensais_est_prod;
delete from similaridades_produto;
delete from codigos_barras;
delete from arquivos_anexos_produtos;
delete from AP_TRIB_PROPRIOS_AJUSTES_DOCUMENTOS;
delete from COLABORADORES;
delete from COMPONENTES_PRODUTOS;
delete from CONTRATOS_SERVICOS;
delete from CONTRATOS_SERVICOS_PRODUTOS;
delete from COTISTAS_PRODUTO;
delete from EQUIPAMENTOS_VEICULOS;
delete from ESTOQUES_PRODUTOS;
delete from ESTOQUES_PRODUTOS_SALDOS;
delete from EVENTOS_ARQUIVOS_EXPORTACOES;
delete from GARANTIAS;
delete from HISTORICOS_PEDIDOS;
delete from ITENS_ACERVO;
delete from ITENS_CARREGAMENTOS;
delete from ITENS_COTACOES_PRODUTOS_COMPRA;
delete from ITENS_DOC_ENTRADAS_SAIDAS;
delete from ITENS_ORDENS_SERVICO;
delete from ITENS_PEDIDOS;
delete from MODELOS_FATURAMENTOS_PEDIDOS_ITENS;
delete from MOVIMENTOS_ESTOQUES;
delete from MOVIMENTOS_PRODUTOS_COTISTAS;
delete from OPERACOES_TITULOS;
delete from PRODUTOS_CONTADOS;
delete from PRODUTOS_CUSTOS_ESTABELECIMENTOS;
delete from RECURSOS_ATIVIDADES;
delete from REGRAS_COMISSIONAMENTO where produto_id is not null;
delete from RESULTADOS_CONTAGENS;
delete from RESUMO_DIVISAO_COTAS;
delete from SALDOS_DIARIOS_ESTOQUES;
delete from SALDOS_MENSAIS_EST_PROD;
delete from SESSOES_SALAS_CINEMAS;
delete from TIPOS_ATIVIDADES where produto_id is not null;
delete from UNIDADES_PRODUTOS_DOC;
delete from VEICULOS_CONTRATO;
delete from ARQUIVOS_ANEXOS_PRODUTOS;
delete from CARACTERISTICAS_PRODUTOS;
delete from CODIGOS_BARRAS;
delete from COMPONENTES_PRODUTOS;
delete from CONFIGURACOES_PRODUTOS;
delete from COTISTAS_PRODUTO;
delete from CUSTOS_PRODUTOS;
delete from ENDERECOS_PRODUTOS;
delete from ETIQUETAS;
delete from GARANTIAS_PRODUTOS;
delete from HISTORICOS_PRODUTOS;
delete from ITENS_COLECOES;
delete from PRODUTO_METRICAS;
delete from PRODUTOS_RELACIONADOS;
delete from PRODUTOS_SERVICOS_ATIVIDADES;
delete from PRODUTOS_VH;
delete from REFERENCIAS_PRODUTOS_PESSOAS;
delete from SIMILARIDADES_PRODUTO;
delete from TAGS_PRODUTOS;
delete from TRIBUTACOES_PRODUTOS where produto_id is not null;
-- delete from produtos where id > 19000;
delete from produtos p
  where not exists (select 1 from t_produtos where id=p.id);

CREATE TABLE t_pessoas
(
  id integer, 
  CONSTRAINT pk_tpessoas PRIMARY KEY (id)
) ;
insert into t_pessoas (id)
select * from (
select estabelecimento_id as pessoa_id
from estabelecimentos
  union
select representante_legal_id as pessoa_id
from estabelecimentos
  union
select empresa_id as pessoa_id
from empresas
  union
select pessoa_id from usuarios
  union
select banco_id from contas_correntes
  union
select id from bancos
) q
where pessoa_id is not null
;

select * from t_pessoas;

delete from pessoas_doc_entradas_saidas;

delete from documentos_pessoas where pessoa_id not in
  (select id from t_pessoas);

update pessoas set endereco_principal_id = null where id not in
  (select id from t_pessoas);

delete from finalidades_enderecos where pessoa_id not in
  (select id from t_pessoas);

delete from enderecos where pessoa_id not in
  (select id from t_pessoas);

delete from enderecos where pessoa_id not in
  (select id from t_pessoas);

delete from fornecedores
 where id not in   (select id from t_pessoas);

delete from lancamentos;
delete from movimentos_financeiros;
delete from titulos;

delete from historicos_vendedores_cliente;
delete from clientes
  where id not in   (select id from t_pessoas);

delete from proprietarios_veiculos;
delete from ordens_servicos_veiculos;
delete from veiculos;
delete from categorias_pessoas where pessoa_id not in (select id from t_pessoas);
delete from acessos_caixas p where pessoa_id not in (select id from t_pessoas);

update clientes set vendedor_id = null where vendedor_id not in (select id from t_pessoas);

delete from vendedores
  where id not in   (select id from t_pessoas);
delete from pessoas p where id not in (select id from t_pessoas);