Created
February 11, 2013 18:47
-
-
Save alganet/4756580 to your computer and use it in GitHub Desktop.
This herculous, monstruous SQL script imported, in a single shot, incrementally if stoped, a legacy database into a clean new one normalized. Some names were changed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/********************************************* | |
* | |
* Importação de dados Acme-Acme | |
* | |
* Autores: Alexandre Gomes Gaigalas | |
* Atilio Serafim | |
* Criação: 01/12/2008 | |
* Alteração: 04/12/2008 | |
* | |
*********************************************/ | |
/********************************************* | |
* | |
* Inserção de Informações Básicas | |
* | |
*********************************************/ | |
-- Insere Brasil | |
IF (NOT EXISTS (SELECT Codigo FROM Acme.Localidade.Pais WHERE Codigo = 'BR')) | |
BEGIN | |
PRINT 'Inserindo País Brasil' | |
INSERT INTO Acme.Localidade.Pais (Codigo, Nome) VALUES ('BR', 'Brasil') | |
END | |
--Insere Acme em várias tabelas | |
IF (NOT EXISTS ( | |
SELECT TOP 1 | |
Numero | |
FROM | |
Acme.Pessoa.Pessoa | |
WHERE | |
Numero = '06326025000166' | |
)) | |
BEGIN | |
PRINT 'Inserindo Numero da Acme na Pessoa' | |
INSERT INTO Acme.Pessoa.Pessoa (Numero, Pais) VALUES ('06326025000166', 'BR') | |
PRINT 'Inserindo Numero da Acme na Pessoa_Juridica' | |
INSERT INTO Acme.Pessoa.Pessoa_Juridica (Numero) VALUES ('06326025000166') | |
END | |
/********************************************* | |
* | |
* Tabela Acme.dbo.Estados | |
* | |
*********************************************/ | |
--Atualiza Estados | |
PRINT 'Atualizando Estados' | |
INSERT INTO | |
Acme.Localidade.Estado | |
( | |
Codigo, | |
Nome, | |
Pais | |
) | |
SELECT DISTINCT | |
UFE_SGL, | |
MAX(UFE_NOM), | |
'BR' | |
FROM | |
Acme.dbo.Estados | |
WHERE | |
UFE_NOM IS NOT NULL | |
AND NOT EXISTS ( | |
SELECT TOP 1 | |
Codigo | |
FROM | |
Acme.Localidade.Estado | |
WHERE Codigo = UFE_SGL | |
) | |
GROUP BY | |
UFE_SGL | |
/********************************************* | |
* | |
* Tabela Acme.dbo.Categoria_Funcionario | |
* | |
*********************************************/ | |
--Atualiza Cargos | |
PRINT 'Atualizando Cargos' | |
INSERT INTO | |
Acme.Pessoa.Cargo | |
( | |
Codigo, | |
Descricao | |
) | |
SELECT DISTINCT | |
( | |
SELECT | |
COALESCE(MAX(Codigo),0) | |
FROM | |
Acme.Pessoa.Cargo | |
) + catf_cd_categ AS Codigo, | |
catf_ds_categ AS Descricao | |
FROM | |
Acme.Acme.Categoria_Funcionario | |
WHERE | |
NOT EXISTS ( | |
SELECT TOP 1 | |
Descricao | |
FROM | |
Acme.Pessoa.Cargo | |
WHERE | |
Descricao = catf_ds_categ | |
) | |
/********************************************* | |
* | |
* Tabela Monitora.dbo.Funcionarios | |
* | |
*********************************************/ | |
PRINT 'Inserindo Cargo de Funcionarios...' | |
INSERT INTO | |
Acme.Pessoa.Cargo | |
( | |
Codigo, | |
Descricao | |
) | |
SELECT | |
(SELECT COALESCE(MAX(Codigo),0) FROM Acme.Pessoa.Cargo) + ROW_NUMBER() OVER (ORDER BY Funcao), | |
Funcao | |
FROM | |
Monitora.dbo.Funcionarios | |
WHERE | |
Funcao <> '' | |
AND Funcao IS NOT NULL | |
AND NOT EXISTS | |
( | |
SELECT TOP 1 Descricao | |
FROM Acme.Pessoa.Cargo | |
WHERE Descricao=Funcao | |
) | |
GROUP BY | |
Funcao | |
ORDER BY | |
Funcao | |
/********************************************* | |
* | |
* Tabela Cadastros Básicos | |
* | |
*********************************************/ | |
--Insere tipo de cadastro Acme | |
PRINT 'Inserindo Origens de Cadastro' | |
IF NOT EXISTS ( | |
SELECT TOP 1 | |
Codigo | |
FROM | |
Acme.Pessoa.Origem_de_Cadastro | |
WHERE | |
Descricao = 'Acme' | |
) | |
BEGIN | |
INSERT INTO Acme.Pessoa.Origem_de_Cadastro (Descricao) VALUES ('Acme') | |
END | |
--Insere tipo de cadastro Monitora | |
IF NOT EXISTS ( | |
SELECT TOP 1 | |
Codigo | |
FROM | |
Acme.Pessoa.Origem_de_Cadastro | |
WHERE | |
Descricao = 'Monitora' | |
) | |
BEGIN | |
INSERT INTO Acme.Pessoa.Origem_de_Cadastro (Descricao) VALUES ('Monitora') | |
END | |
PRINT 'Inserindo Tipos de Cliente' | |
IF NOT EXISTS ( | |
SELECT TOP 1 | |
Codigo | |
FROM | |
Acme.Pessoa.Tipo_de_Cliente | |
WHERE | |
Descricao = 'Segurado' | |
) | |
BEGIN | |
INSERT INTO Acme.Pessoa.Tipo_de_Cliente (Descricao) VALUES ('Segurado') | |
END | |
IF NOT EXISTS ( | |
SELECT TOP 1 | |
Codigo | |
FROM | |
Acme.Pessoa.Tipo_de_Cliente | |
WHERE | |
Descricao = 'Gerenciado' | |
) | |
BEGIN | |
INSERT INTO Acme.Pessoa.Tipo_de_Cliente (Descricao) VALUES ('Gerenciado') | |
END | |
IF NOT EXISTS ( | |
SELECT TOP 1 | |
Codigo | |
FROM | |
Acme.Pessoa.Tipo_de_Cliente | |
WHERE | |
Descricao = 'Corretado' | |
) | |
BEGIN | |
INSERT INTO Acme.Pessoa.Tipo_de_Cliente (Descricao) VALUES ('Corretado') | |
END | |
PRINT 'Insere cores' | |
--Cores | |
INSERT INTO | |
Acme.Veiculo.Cor | |
( | |
Codigo, | |
Descricao | |
) | |
SELECT | |
(SELECT TOP 1 COALESCE(MAX(Codigo),0) FROM Acme.Veiculo.Cor) + ROW_NUMBER() OVER(ORDER BY vei_cor), | |
vei_cor | |
FROM ( | |
SELECT DISTINCT | |
RTRIM(LTRIM(vei_cor)) vei_cor | |
FROM | |
Acme.Acme.Veiculos | |
) Cores | |
WHERE | |
NOT EXISTS( | |
SELECT TOP 1 | |
Descricao | |
FROM | |
Acme.Veiculo.Cor | |
WHERE | |
Descricao = vei_cor | |
) | |
PRINT 'Insere Marcas de Veículos' | |
--Marcas | |
INSERT INTO | |
Acme.Veiculo.Fabricante | |
( | |
Codigo, | |
Descricao | |
) | |
SELECT | |
(SELECT COALESCE(MAX(Codigo),0) FROM Acme.Veiculo.Fabricante) + ROW_NUMBER() OVER(ORDER BY vei_marca), | |
vei_marca | |
FROM ( | |
SELECT DISTINCT | |
LTRIM(RTRIM(vei_marca)) vei_marca | |
FROM | |
Acme.Acme.Veiculos | |
) Marcas | |
WHERE | |
vei_marca IS NOT NULL | |
AND NOT EXISTS( | |
SELECT TOP 1 | |
Descricao | |
FROM | |
Acme.Veiculo.Fabricante | |
WHERE | |
Descricao = vei_marca | |
) | |
PRINT 'Inserindo Modelos de Veículos' | |
--Modelos | |
INSERT INTO | |
Acme.Veiculo.Modelo | |
( | |
Codigo, | |
Fabricante, | |
Nome | |
) | |
SELECT | |
(SELECT COALESCE(MAX(Codigo),0) FROM Acme.Veiculo.Modelo) + ROW_NUMBER() OVER(ORDER BY vei_marca), | |
(SELECT Codigo FROM Acme.Veiculo.Fabricante WHERE Descricao = vei_marca), | |
vei_modelo | |
FROM ( | |
SELECT DISTINCT | |
LTRIM(RTRIM(vei_modelo)) vei_modelo, | |
LTRIM(RTRIM(vei_marca)) vei_marca | |
FROM | |
Acme.Acme.Veiculos | |
) Modelos | |
WHERE | |
vei_marca IS NOT NULL | |
AND vei_modelo IS NOT NULL | |
AND NOT EXISTS( | |
SELECT | |
Nome | |
FROM | |
Acme.Veiculo.Modelo | |
WHERE | |
Nome = vei_modelo | |
AND Fabricante = (SELECT TOP 1 Codigo FROM Acme.Veiculo.Fabricante WHERE Descricao = vei_marca) | |
) | |
PRINT 'Inserindo Veiculo Tipo Carroceria Caminhao (Monitora)...' | |
INSERT INTO | |
Acme.Veiculo.Tipo_de_Carroceria | |
( | |
Codigo, | |
Descricao | |
) | |
SELECT | |
(SELECT COALESCE(MAX(Codigo),0) FROM Acme.Veiculo.Tipo_de_Carroceria) + ROW_NUMBER() OVER (ORDER BY TCA_Descricao), | |
TCA_Descricao | |
FROM | |
Monitora.dbo.MON_TipoCarroceria | |
WHERE | |
TCA_Codigo IN | |
( | |
SELECT DISTINCT | |
Tip_Carroceria | |
FROM | |
Monitora.dbo.Caminhao | |
) | |
AND NOT EXISTS | |
( | |
SELECT | |
Codigo | |
FROM | |
Acme.Veiculo.Tipo_de_Carroceria | |
WHERE | |
Descricao COLLATE Latin1_General_CI_AS = TCA_Descricao | |
) | |
/********************************************* | |
* | |
* Tabela Acme.Acme.Seguradoras | |
* | |
*********************************************/ | |
--Importa Seguradoras da Acme para tabela pessoa | |
PRINT 'Importando Seguradoras do Informações para tabela Pessoa' | |
INSERT INTO | |
Acme.Pessoa.Pessoa | |
( | |
Numero, | |
Pais | |
) | |
SELECT DISTINCT | |
Acme.dbo.FNC_Remove_Pontuacao(seg_cgc) AS Numero, | |
'BR' AS Pais | |
FROM | |
Acme.Acme.Seguradoras | |
WHERE | |
ISNUMERIC(Acme.dbo.FNC_Remove_Pontuacao(seg_cgc)) = 1 | |
AND Acme.dbo.FNC_Valida_CNPJ(Acme.dbo.FNC_Remove_Pontuacao(seg_cgc)) = 'S' | |
AND NOT EXISTS ( | |
SELECT TOP 1 | |
Numero | |
FROM | |
Acme.Pessoa.Pessoa | |
WHERE | |
Numero = Acme.dbo.FNC_Remove_Pontuacao(seg_cgc) | |
) | |
--Importa Corretoras da Acme para tabela pessoa | |
PRINT 'Importando Corretoras do Informações para tabela Pessoa Juridica' | |
INSERT INTO | |
Acme.Pessoa.Pessoa_Juridica | |
( | |
Numero | |
) | |
SELECT DISTINCT | |
Acme.dbo.FNC_Remove_Pontuacao(seg_cgc) AS Numero | |
FROM | |
Acme.Acme.Seguradoras | |
INNER JOIN | |
Acme.Pessoa.Pessoa | |
ON Pessoa.Numero = Acme.dbo.FNC_Remove_Pontuacao(seg_cgc) | |
WHERE | |
NOT EXISTS ( | |
SELECT TOP 1 | |
Numero | |
FROM | |
Acme.Pessoa.Pessoa_Juridica | |
WHERE | |
Numero = Acme.dbo.FNC_Remove_Pontuacao(seg_cgc) | |
) | |
--Importa Codigos | |
PRINT 'Associando Seguradoras importados aos seus respectivos codigos' | |
INSERT INTO | |
Acme.Pessoa.Codigos | |
( | |
Pessoa, | |
Seguradora_Informacoes | |
) | |
SELECT DISTINCT | |
Acme.dbo.FNC_Remove_Pontuacao(seg_cgc) AS Pessoa, | |
MAX(seg_cd_seguradora) AS Seguradora_Informacoes | |
FROM | |
Acme.Acme.Seguradoras | |
INNER JOIN | |
Acme.Pessoa.Pessoa_Juridica | |
ON Pessoa_Juridica.Numero = Acme.dbo.FNC_Remove_Pontuacao(seg_cgc) | |
WHERE NOT EXISTS ( | |
SELECT TOP 1 | |
Pessoa | |
FROM | |
Acme.Pessoa.Codigos | |
WHERE | |
Pessoa = Acme.dbo.FNC_Remove_Pontuacao(seg_cgc) | |
) | |
GROUP BY | |
seg_cgc | |
--Atualiza Códigos que estão desatualizados | |
PRINT 'Associando códigos possivelmente desatualizados (Standard)' | |
UPDATE | |
Acme.Pessoa.Codigos | |
SET | |
Seguradora_Informacoes = Seguradoras.seg_cd_seguradora | |
FROM | |
Acme.Acme.Seguradoras | |
INNER JOIN | |
Acme.Pessoa.Pessoa_Juridica | |
ON Pessoa_Juridica.Numero = Acme.dbo.FNC_Remove_Pontuacao(seg_cgc) | |
WHERE | |
Codigos.Pessoa = Acme.dbo.FNC_Remove_Pontuacao(seg_cgc) | |
--Insere dados de pessoa | |
PRINT 'Inserindo Cadastro de Novos Seguradoras' | |
INSERT INTO | |
Acme.Pessoa.Inscricao_Estadual | |
( | |
Pessoa, | |
Data, | |
Razao_Social, | |
Origem_de_Cadastro, | |
Pais, | |
Estado | |
) | |
SELECT DISTINCT | |
Acme.dbo.FNC_Remove_Pontuacao(seg_cgc) AS Pessoa, | |
seg_dt_cadastro AS Data, | |
seg_nm_seguradora AS Razao_Social, | |
( | |
SELECT TOP 1 | |
Codigo | |
FROM | |
Acme.Pessoa.Origem_de_Cadastro | |
WHERE | |
Descricao = 'Acme' | |
) AS Origem_de_Cadastro, | |
'BR' AS Pais, | |
(SELECT TOP 1 Codigo FROM Acme.Localidade.Estado WHERE Codigo = seg_estado) | |
FROM | |
Acme.Acme.Seguradoras | |
INNER JOIN | |
Acme.Pessoa.Pessoa_Juridica | |
ON Pessoa_Juridica.Numero = Acme.dbo.FNC_Remove_Pontuacao(seg_cgc) | |
WHERE NOT EXISTS ( | |
SELECT TOP 1 | |
Pessoa | |
FROM | |
Acme.Pessoa.Inscricao_Estadual | |
WHERE | |
Data = seg_dt_cadastro | |
AND Pessoa = Acme.dbo.FNC_Remove_Pontuacao(seg_cgc) | |
) | |
/********************************************* | |
* | |
* Tabela Acme.Acme.Corretoras | |
* | |
*********************************************/ | |
--Importa corretoras da Acme para tabela pessoa | |
PRINT 'Importando corretoras do Informações para tabela Pessoa' | |
INSERT INTO | |
Acme.Pessoa.Pessoa | |
( | |
Numero, | |
Pais | |
) | |
SELECT DISTINCT | |
Acme.dbo.FNC_Remove_Pontuacao(cor_cgc) AS Numero, | |
'BR' AS Pais | |
FROM | |
Acme.Acme.Corretoras | |
WHERE | |
ISNUMERIC(Acme.dbo.FNC_Remove_Pontuacao(cor_cgc)) = 1 | |
AND Acme.dbo.FNC_Valida_CNPJ(Acme.dbo.FNC_Remove_Pontuacao(cor_cgc)) = 'S' | |
AND NOT EXISTS ( | |
SELECT TOP 1 | |
Numero | |
FROM | |
Acme.Pessoa.Pessoa | |
WHERE | |
Numero = Acme.dbo.FNC_Remove_Pontuacao(cor_cgc) | |
) | |
--Importa Corretoras da Acme para tabela pessoa | |
PRINT 'Importando Corretoras do Informações para tabela Pessoa Juridica' | |
INSERT INTO | |
Acme.Pessoa.Pessoa_Juridica | |
( | |
Numero | |
) | |
SELECT DISTINCT | |
Acme.dbo.FNC_Remove_Pontuacao(cor_cgc) AS Numero | |
FROM | |
Acme.Acme.Corretoras | |
INNER JOIN | |
Acme.Pessoa.Pessoa | |
ON Pessoa.Numero = Acme.dbo.FNC_Remove_Pontuacao(cor_cgc) | |
WHERE NOT EXISTS ( | |
SELECT TOP 1 | |
Numero | |
FROM | |
Acme.Pessoa.Pessoa_Juridica | |
WHERE | |
Numero = Acme.dbo.FNC_Remove_Pontuacao(cor_cgc) | |
) | |
--Importa Codigos | |
PRINT 'Associando Corretoras importados aos seus respectivos codigos' | |
INSERT INTO | |
Acme.Pessoa.Codigos | |
( | |
Pessoa, | |
Corretora_Informacoes | |
) | |
SELECT DISTINCT | |
Acme.dbo.FNC_Remove_Pontuacao(cor_cgc) AS Pessoa, | |
MAX(cor_cd_corretora) AS Corretora_Informacoes | |
FROM | |
Acme.Acme.Corretoras | |
INNER JOIN | |
Acme.Pessoa.Pessoa_Juridica | |
ON Pessoa_Juridica.Numero = Acme.dbo.FNC_Remove_Pontuacao(cor_cgc) | |
WHERE NOT EXISTS ( | |
SELECT TOP 1 | |
Pessoa | |
FROM | |
Acme.Pessoa.Codigos | |
WHERE | |
Pessoa = Acme.dbo.FNC_Remove_Pontuacao(cor_cgc) | |
) | |
GROUP BY | |
cor_cgc | |
--Atualiza Códigos que estão desatualizados | |
PRINT 'Associando códigos possivelmente desatualizados (Standard)' | |
UPDATE | |
Acme.Pessoa.Codigos | |
SET | |
Corretora_Informacoes = Corretoras.cor_cd_corretora | |
FROM | |
Acme.Acme.Corretoras | |
INNER JOIN | |
Acme.Pessoa.Pessoa_Juridica | |
ON Pessoa_Juridica.Numero = Acme.dbo.FNC_Remove_Pontuacao(cor_cgc) | |
WHERE | |
Codigos.Pessoa = Acme.dbo.FNC_Remove_Pontuacao(cor_cgc) | |
--Insere dados de pessoa | |
PRINT 'Inserindo Cadastro de Novos Corretoras' | |
INSERT INTO | |
Acme.Pessoa.Inscricao_Estadual | |
( | |
Pessoa, | |
Data, | |
Razao_Social, | |
Origem_de_Cadastro, | |
Pais, | |
Estado | |
) | |
SELECT DISTINCT | |
Acme.dbo.FNC_Remove_Pontuacao(cor_cgc) AS Pessoa, | |
cor_dt_cadastro AS Data, | |
cor_nm_corretora AS Razao_Social, | |
( | |
SELECT TOP 1 | |
Codigo | |
FROM | |
Acme.Pessoa.Origem_de_Cadastro | |
WHERE | |
Descricao = 'Acme' | |
) AS Origem_de_Cadastro, | |
'BR' AS Pais, | |
(SELECT TOP 1 Codigo FROM Acme.Localidade.Estado WHERE Codigo = cor_estado) | |
FROM | |
Acme.Acme.Corretoras | |
INNER JOIN ( | |
SELECT MAX(cor_cd_corretora) AS Codigo | |
FROM Acme.Acme.Corretoras | |
GROUP BY cor_cgc | |
) Clientes_Unico | |
ON cor_cd_corretora = Codigo | |
INNER JOIN | |
Acme.Pessoa.Pessoa_Juridica | |
ON Pessoa_Juridica.Numero = Acme.dbo.FNC_Remove_Pontuacao(cor_cgc) | |
WHERE | |
NOT EXISTS ( | |
SELECT TOP 1 | |
Pessoa | |
FROM | |
Acme.Pessoa.Inscricao_Estadual | |
WHERE | |
Data = cor_dt_cadastro | |
AND Pessoa = Acme.dbo.FNC_Remove_Pontuacao(cor_cgc) | |
) | |
/********************************************* | |
* | |
* Tabela Acme.Acme.Clientes | |
* | |
*********************************************/ | |
--Importa clientes da Acme para tabela pessoa | |
PRINT 'Importando clientes do Informações para tabela Pessoa' | |
INSERT INTO | |
Acme.Pessoa.Pessoa | |
( | |
Numero, | |
Pais | |
) | |
SELECT DISTINCT | |
Acme.dbo.FNC_Remove_Pontuacao(cli_cgc) AS Numero, | |
'BR' AS Pais | |
FROM | |
Acme.Acme.Clientes | |
WHERE | |
ISNUMERIC(Acme.dbo.FNC_Remove_Pontuacao(cli_cgc)) = 1 | |
AND Acme.dbo.FNC_Valida_CNPJ(Acme.dbo.FNC_Remove_Pontuacao(cli_cgc)) = 'S' | |
AND NOT EXISTS ( | |
SELECT TOP 1 | |
Numero | |
FROM | |
Acme.Pessoa.Pessoa | |
WHERE | |
Numero = Acme.dbo.FNC_Remove_Pontuacao(cli_cgc) | |
) | |
--Importa clientes da Acme para tabela pessoa | |
PRINT 'Importando clientes do Informações para tabela Pessoa Juridica' | |
INSERT INTO | |
Acme.Pessoa.Pessoa_Juridica | |
( | |
Numero | |
) | |
SELECT DISTINCT | |
Acme.dbo.FNC_Remove_Pontuacao(cli_cgc) AS Numero | |
FROM | |
Acme.Acme.Clientes | |
INNER JOIN | |
Acme.Pessoa.Pessoa | |
ON Pessoa.Numero = Acme.dbo.FNC_Remove_Pontuacao(cli_cgc) | |
WHERE | |
NOT EXISTS ( | |
SELECT TOP 1 | |
Numero | |
FROM | |
Acme.Pessoa.Pessoa_Juridica | |
WHERE | |
Numero = Acme.dbo.FNC_Remove_Pontuacao(cli_cgc) | |
) | |
--Importa Clientes | |
PRINT 'Associando clientes importados ao CNPJ da Acme (Primeiro Cadastro)' | |
INSERT INTO | |
Acme.Pessoa.Cliente | |
( | |
Contratante, | |
Contratado, | |
Data, | |
Tipo | |
) | |
SELECT DISTINCT | |
Acme.dbo.FNC_Remove_Pontuacao(cli_cgc) AS Contratante, | |
'06326025000166' AS Contratado, | |
cli_dt_cadastro AS Data, | |
( | |
SELECT TOP 1 | |
Codigo | |
FROM | |
Acme.Pessoa.Tipo_de_Cliente | |
WHERE | |
Descricao = 'Gerenciado' | |
) AS Tipo_de_Cliente | |
FROM | |
Acme.Acme.Clientes | |
INNER JOIN | |
Acme.Pessoa.Pessoa_Juridica | |
ON Pessoa_Juridica.Numero = Acme.dbo.FNC_Remove_Pontuacao(cli_cgc) | |
WHERE | |
NOT EXISTS ( | |
SELECT | |
Contratante | |
FROM | |
Acme.Pessoa.Cliente | |
WHERE | |
Tipo = ( | |
SELECT TOP 1 | |
Codigo | |
FROM | |
Acme.Pessoa.Tipo_de_Cliente | |
WHERE | |
Descricao = 'Gerenciado' | |
) | |
AND | |
Data = cli_dt_cadastro | |
AND Contratante = Acme.dbo.FNC_Remove_Pontuacao(cli_cgc) | |
AND Contratado = '06326025000166' | |
) | |
--Importa Clientes | |
PRINT 'Associando clientes importados ao CNPJ da Acme (Ultimo Cadastro)' | |
INSERT INTO | |
Acme.Pessoa.Cliente | |
( | |
Contratante, | |
Contratado, | |
Data, | |
Tipo | |
) | |
SELECT DISTINCT | |
Acme.dbo.FNC_Remove_Pontuacao(cli_cgc) AS Contratante, | |
'06326025000166' AS Contratado, | |
cli_dt_alteracao AS Data, | |
( | |
SELECT TOP 1 | |
Codigo | |
FROM | |
Acme.Pessoa.Tipo_de_Cliente | |
WHERE | |
Descricao = 'Gerenciado' | |
) AS Tipo_de_Cliente | |
FROM | |
Acme.Acme.Clientes | |
INNER JOIN | |
Acme.Pessoa.Pessoa_Juridica | |
ON Pessoa_Juridica.Numero = Acme.dbo.FNC_Remove_Pontuacao(cli_cgc) | |
WHERE | |
NOT EXISTS ( | |
SELECT | |
Contratante | |
FROM | |
Acme.Pessoa.Cliente | |
WHERE | |
Tipo = ( | |
SELECT TOP 1 | |
Codigo | |
FROM | |
Acme.Pessoa.Tipo_de_Cliente | |
WHERE | |
Descricao = 'Gerenciado' | |
) | |
AND | |
Data = cli_dt_alteracao | |
AND Contratante = Acme.dbo.FNC_Remove_Pontuacao(cli_cgc) | |
AND Contratado = '06326025000166' | |
) | |
--Importa Corretoras | |
PRINT 'Associando clientes importados as suas corretoras' | |
INSERT INTO | |
Acme.Pessoa.Cliente | |
( | |
Contratante, | |
Contratado, | |
Data, | |
Tipo | |
) | |
SELECT DISTINCT | |
Acme.dbo.FNC_Remove_Pontuacao(cli_cgc) AS Contratante, | |
Acme.dbo.FNC_Remove_Pontuacao(cor_cgc) AS Contratado, | |
cli_dt_alteracao AS Data , | |
( | |
SELECT TOP 1 | |
Codigo | |
FROM | |
Acme.Pessoa.Tipo_de_Cliente | |
WHERE | |
Descricao = 'Corretado' | |
) AS Tipo_de_Cliente | |
FROM | |
Acme.Acme.Clientes | |
INNER JOIN | |
Acme.Pessoa.Pessoa_Juridica | |
ON Pessoa_Juridica.Numero = Acme.dbo.FNC_Remove_Pontuacao(cli_cgc) | |
LEFT JOIN | |
Acme.Acme.Corretoras | |
ON Clientes.cli_cor_cd_corretora = Corretoras.cor_cd_corretora | |
INNER JOIN | |
Acme.Pessoa.Pessoa_Juridica J2 | |
ON J2.Numero = Acme.dbo.FNC_Remove_Pontuacao(cor_cgc) | |
WHERE | |
NOT EXISTS ( | |
SELECT | |
Contratante | |
FROM | |
Acme.Pessoa.Cliente | |
WHERE | |
Tipo = ( | |
SELECT TOP 1 | |
Codigo | |
FROM | |
Acme.Pessoa.Tipo_de_Cliente | |
WHERE | |
Descricao = 'Corretado' | |
) | |
AND Data = cli_dt_alteracao | |
AND Contratante = Acme.dbo.FNC_Remove_Pontuacao(cli_cgc) | |
AND Contratado = Acme.dbo.FNC_Remove_Pontuacao(cor_cgc) | |
) | |
--Importa Seguradoras | |
PRINT 'Associando clientes importados as suas Seguradoras' | |
INSERT INTO | |
Acme.Pessoa.Cliente | |
( | |
Contratante, | |
Contratado, | |
Data, | |
Tipo | |
) | |
SELECT DISTINCT | |
Acme.dbo.FNC_Remove_Pontuacao(cli_cgc) AS Contratante, | |
Acme.dbo.FNC_Remove_Pontuacao(seg_cgc) AS Contratado, | |
cli_dt_alteracao AS Data , | |
( | |
SELECT TOP 1 | |
Codigo | |
FROM | |
Acme.Pessoa.Tipo_de_Cliente | |
WHERE | |
Descricao = 'Segurado' | |
) AS Tipo_de_Cliente | |
FROM | |
Acme.Acme.Clientes | |
INNER JOIN | |
Acme.Pessoa.Pessoa_Juridica | |
ON Pessoa_Juridica.Numero = Acme.dbo.FNC_Remove_Pontuacao(cli_cgc) | |
INNER JOIN | |
Acme.Acme.Seguradoras | |
ON Clientes.cli_seg_cd_seg = Seguradoras.seg_cd_seguradora | |
INNER JOIN | |
Acme.Pessoa.Pessoa_Juridica J2 | |
ON J2.Numero = Acme.dbo.FNC_Remove_Pontuacao(seg_cgc) | |
WHERE | |
NOT EXISTS ( | |
SELECT TOP 1 | |
Contratante | |
FROM | |
Acme.Pessoa.Cliente | |
WHERE | |
Tipo = ( | |
SELECT TOP 1 | |
Codigo | |
FROM | |
Acme.Pessoa.Tipo_de_Cliente | |
WHERE | |
Descricao = 'Segurado' | |
) | |
AND Data = cli_dt_alteracao | |
AND Contratante = Acme.dbo.FNC_Remove_Pontuacao(cli_cgc) | |
AND Contratado = Acme.dbo.FNC_Remove_Pontuacao(seg_cgc) | |
) | |
--Importa Codigos | |
PRINT 'Associando clientes importados aos seus respectivos codigos' | |
INSERT INTO | |
Acme.Pessoa.Codigos | |
( | |
Pessoa, | |
Cliente_Informacoes, | |
Cliente_Informacoes_Plus | |
) | |
SELECT DISTINCT | |
Acme.dbo.FNC_Remove_Pontuacao(cli_cgc) AS Pessoa, | |
MIN(cli_cd_cliente) AS Cliente_Informacoes, | |
MAX(cli_cd_cliente) AS Cliente_Informacoes_Plus | |
FROM | |
Acme.Acme.Clientes | |
INNER JOIN | |
Acme.Pessoa.Pessoa_Juridica | |
ON Pessoa_Juridica.Numero = Acme.dbo.FNC_Remove_Pontuacao(cli_cgc) | |
WHERE | |
NOT EXISTS ( | |
SELECT TOP 1 | |
Pessoa | |
FROM | |
Acme.Pessoa.Codigos | |
WHERE | |
Pessoa = Acme.dbo.FNC_Remove_Pontuacao(cli_cgc) | |
) | |
GROUP BY | |
cli_cgc | |
--Atualiza Códigos que estão desatualizados | |
PRINT 'Associando códigos possivelmente desatualizados (Standard)' | |
UPDATE | |
Acme.Pessoa.Codigos | |
SET | |
Cliente_Informacoes = Clientes.cli_cd_cliente | |
FROM | |
Acme.Acme.Clientes | |
INNER JOIN | |
Acme.Pessoa.Pessoa_Juridica | |
ON Pessoa_Juridica.Numero = Acme.dbo.FNC_Remove_Pontuacao(cli_cgc) | |
INNER JOIN ( | |
SELECT MIN(cli_cd_cliente) AS Codigo | |
FROM Acme.Acme.Clientes | |
GROUP BY cli_cgc | |
) Clientes_Unico | |
ON cli_cd_cliente = Codigo | |
WHERE | |
Codigos.Pessoa = Acme.dbo.FNC_Remove_Pontuacao(cli_cgc) | |
--Atualiza Códigos que estão desatualizados | |
PRINT 'Associando códigos possivelmente desatualizados (Plus)' | |
UPDATE | |
Acme.Pessoa.Codigos | |
SET | |
Cliente_Informacoes_Plus = Clientes.cli_cd_cliente | |
FROM | |
Acme.Acme.Clientes | |
INNER JOIN ( | |
SELECT MAX(cli_cd_cliente) AS Codigo | |
FROM Acme.Acme.Clientes | |
GROUP BY cli_cgc | |
) Clientes_Unico | |
ON cli_cd_cliente = Codigo | |
INNER JOIN | |
Acme.Pessoa.Pessoa_Juridica | |
ON Pessoa_Juridica.Numero = Acme.dbo.FNC_Remove_Pontuacao(cli_cgc) | |
WHERE | |
Codigos.Pessoa = Acme.dbo.FNC_Remove_Pontuacao(cli_cgc) | |
--Insere dados de pessoa | |
PRINT 'Inserindo Cadastro de Novos Clientes' | |
INSERT INTO | |
Acme.Pessoa.Inscricao_Estadual | |
( | |
Pessoa, | |
Data, | |
Numero, | |
Nome_Fantasia, | |
Razao_Social, | |
Origem_de_Cadastro, | |
Pais, | |
Estado | |
) | |
SELECT DISTINCT | |
Acme.dbo.FNC_Remove_Pontuacao(cli_cgc) AS Pessoa, | |
cli_dt_alteracao AS Data, | |
REPLACE(REPLACE(REPLACE(cli_inscr_est,'-',''),'/',''),'.','') AS Numero, | |
cli_nm_fantasia AS Nome_Fantasia, | |
cli_ds_razao_social AS Razao_Social, | |
( | |
SELECT TOP 1 | |
Codigo | |
FROM | |
Acme.Pessoa.Origem_de_Cadastro | |
WHERE | |
Descricao = 'Acme' | |
) AS Origem_de_Cadastro, | |
'BR' AS Pais, | |
(SELECT TOP 1 Codigo FROM Acme.Localidade.Estado WHERE Codigo = cli_estado) | |
FROM | |
Acme.Acme.Clientes | |
INNER JOIN ( | |
SELECT MIN(cli_cd_cliente) AS Codigo | |
FROM Acme.Acme.Clientes | |
GROUP BY cli_cgc | |
) Clientes_Unico | |
ON cli_cd_cliente = Codigo | |
INNER JOIN | |
Acme.Pessoa.Pessoa_Juridica | |
ON Pessoa_Juridica.Numero = Acme.dbo.FNC_Remove_Pontuacao(cli_cgc) | |
WHERE | |
NOT EXISTS ( | |
SELECT TOP 1 | |
Pessoa | |
FROM | |
Acme.Pessoa.Inscricao_Estadual | |
WHERE | |
Data = cli_dt_alteracao | |
AND Pessoa = Acme.dbo.FNC_Remove_Pontuacao(cli_cgc) | |
) | |
--Insere dados de pessoa | |
PRINT 'Inserindo Cadastro de Novos Clientes (Primeiro Cadastro)' | |
INSERT INTO | |
Acme.Pessoa.Inscricao_Estadual | |
( | |
Pessoa, | |
Data, | |
Numero, | |
Nome_Fantasia, | |
Razao_Social, | |
Origem_de_Cadastro, | |
Pais, | |
Estado | |
) | |
SELECT DISTINCT | |
Acme.dbo.FNC_Remove_Pontuacao(cli_cgc) AS Pessoa, | |
cli_dt_cadastro AS Data, | |
REPLACE(REPLACE(REPLACE(cli_inscr_est,'-',''),'/',''),'.','') AS Numero, | |
cli_nm_fantasia AS Nome_Fantasia, | |
cli_ds_razao_social AS Razao_Social, | |
( | |
SELECT TOP 1 | |
Codigo | |
FROM | |
Acme.Pessoa.Origem_de_Cadastro | |
WHERE | |
Descricao = 'Acme' | |
) AS Origem_de_Cadastro, | |
'BR' AS Pais, | |
(SELECT TOP 1 Codigo FROM Acme.Localidade.Estado WHERE Codigo = cli_estado) | |
FROM | |
Acme.Acme.Clientes | |
INNER JOIN ( | |
SELECT MIN(cli_cd_cliente) AS Codigo | |
FROM Acme.Acme.Clientes | |
GROUP BY cli_cgc | |
) Clientes_Unico | |
ON cli_cd_cliente = Codigo | |
INNER JOIN | |
Acme.Pessoa.Pessoa_Juridica | |
ON Pessoa_Juridica.Numero = Acme.dbo.FNC_Remove_Pontuacao(cli_cgc) | |
WHERE | |
NOT EXISTS ( | |
SELECT TOP 1 | |
Pessoa | |
FROM | |
Acme.Pessoa.Inscricao_Estadual | |
WHERE | |
Data = cli_dt_cadastro | |
AND Pessoa = Acme.dbo.FNC_Remove_Pontuacao(cli_cgc) | |
) | |
/********************************************* | |
* | |
* Tabela Acme.Acme.Funcionarios | |
* | |
*********************************************/ | |
--Importa profissionais do Acme para pesssoas | |
PRINT 'Importando profissionais do Informações para tabela Pessoa' | |
INSERT INTO | |
Acme.Pessoa.Pessoa | |
( | |
Numero, | |
Pais | |
) | |
SELECT DISTINCT | |
Acme.dbo.FNC_Remove_Pontuacao(fun_cpf) AS Numero, | |
'BR' AS Pais | |
FROM | |
Acme.Acme.Funcionarios | |
WHERE | |
ISNUMERIC(Acme.dbo.FNC_Remove_Pontuacao(fun_cpf)) = 1 | |
AND Acme.dbo.FNC_Valida_CPF(Acme.dbo.FNC_Remove_Pontuacao(fun_cpf)) = 'S' | |
AND NOT EXISTS ( | |
SELECT TOP 1 | |
Numero | |
FROM | |
Acme.Pessoa.Pessoa | |
WHERE | |
Numero = Acme.dbo.FNC_Remove_Pontuacao(fun_cpf) | |
) | |
--Importa profissionais do Informações para tabela pessoa | |
PRINT 'Importando profissionais do Informações para tabela Pessoa Física' | |
INSERT INTO | |
Acme.Pessoa.Pessoa_Fisica | |
( | |
Numero | |
) | |
SELECT DISTINCT | |
Acme.dbo.FNC_Remove_Pontuacao(fun_cpf) AS Numero | |
FROM | |
Acme.Acme.Funcionarios | |
INNER JOIN | |
Acme.Pessoa.Pessoa | |
ON Pessoa.Numero = Acme.dbo.FNC_Remove_Pontuacao(fun_cpf) | |
WHERE | |
NOT EXISTS ( | |
SELECT TOP 1 | |
Numero | |
FROM | |
Acme.Pessoa.Pessoa_Fisica | |
WHERE | |
Numero = Acme.dbo.FNC_Remove_Pontuacao(fun_cpf) | |
) | |
--Importa Codigos | |
PRINT 'Associando profissionais importados aos seus respectivos codigos' | |
INSERT INTO | |
Acme.Pessoa.Codigos | |
( | |
Pessoa, | |
Funcionario_Informacoes | |
) | |
SELECT DISTINCT | |
Acme.dbo.FNC_Remove_Pontuacao(fun_cpf) AS Pessoa, | |
MAX(fun_cd_func) AS Funcionario_Informacoes | |
FROM | |
Acme.Acme.Funcionarios | |
INNER JOIN | |
Acme.Pessoa.Pessoa_Fisica | |
ON Pessoa_Fisica.Numero = Acme.dbo.FNC_Remove_Pontuacao(fun_cpf) | |
WHERE NOT EXISTS ( | |
SELECT TOP 1 | |
Pessoa | |
FROM | |
Acme.Pessoa.Codigos | |
WHERE | |
Pessoa = Acme.dbo.FNC_Remove_Pontuacao(fun_cpf) | |
) | |
GROUP BY | |
Acme.dbo.FNC_Remove_Pontuacao(fun_cpf) | |
--Atualiza Códigos que estão desatualizados | |
PRINT 'Associando códigos possivelmente desatualizados' | |
UPDATE | |
Acme.Pessoa.Codigos | |
SET | |
Funcionario_Informacoes = Funcionarios.fun_cd_func | |
FROM | |
Acme.Acme.Funcionarios | |
INNER JOIN | |
Acme.Pessoa.Pessoa_Fisica | |
ON Pessoa_Fisica.Numero = Acme.dbo.FNC_Remove_Pontuacao(fun_cpf) | |
WHERE | |
Codigos.Pessoa = Acme.dbo.FNC_Remove_Pontuacao(fun_cpf) | |
AND Funcionarios.fun_cd_func < Funcionario_Informacoes | |
--Insere dados de pessoa | |
PRINT 'Inserindo Cadastro de Novos Funcionarios (Ultimo Cadastro)' | |
INSERT INTO | |
Acme.Pessoa.Registro_Geral | |
( | |
Pessoa, | |
Data, | |
Numero, | |
Nome, | |
Origem_de_Cadastro, | |
Pais, | |
Estado, | |
Emissao, | |
Nome_da_Mae, | |
Nome_do_Pai, | |
Nascimento | |
) | |
SELECT DISTINCT | |
Acme.dbo.FNC_Remove_Pontuacao(fun_cpf) AS Pessoa, | |
fun_dt_cadastro AS Data, | |
Acme.dbo.FNC_Remove_Pontuacao(fun_rg) AS Numero, | |
fun_nm_func AS Nome, | |
( | |
SELECT TOP 1 | |
Codigo | |
FROM | |
Acme.Pessoa.Origem_de_Cadastro | |
WHERE | |
Descricao = 'Acme' | |
) AS Origem_de_Cadastro, | |
'BR' AS Pais, | |
(SELECT TOP 1 Codigo FROM Acme.Localidade.Estado WHERE Codigo = fun_rg_ssp), | |
fun_rg_dt_emissao, | |
fun_nm_mae, | |
fun_nm_pai, | |
fun_dt_nasc | |
FROM | |
Acme.Acme.Funcionarios | |
INNER JOIN | |
Acme.Pessoa.Pessoa_Fisica | |
ON Pessoa_Fisica.Numero = Acme.dbo.FNC_Remove_Pontuacao(fun_cpf) | |
INNER JOIN | |
( | |
SELECT | |
MAX(fun_cd_func) AS Codigo | |
FROM | |
Acme.Acme.Funcionarios | |
WHERE | |
fun_dt_cadastro IS NOT NULL | |
GROUP BY | |
Acme.dbo.FNC_Remove_Pontuacao(fun_cpf) | |
) Unico_Cadastro | |
ON fun_cd_func = Unico_Cadastro.Codigo | |
WHERE | |
fun_dt_cadastro IS NOT NULL | |
AND NOT EXISTS ( | |
SELECT TOP 1 | |
Pessoa | |
FROM | |
Acme.Pessoa.Registro_Geral | |
WHERE | |
Data = fun_dt_cadastro | |
AND Pessoa = Acme.dbo.FNC_Remove_Pontuacao(fun_cpf) | |
) | |
--Insere dados de pessoa | |
PRINT 'Inserindo Cadastro de Novos Funcionarios (Ultimo Cadastro)' | |
INSERT INTO | |
Acme.Pessoa.Registro_Geral | |
( | |
Pessoa, | |
Data, | |
Numero, | |
Nome, | |
Origem_de_Cadastro, | |
Pais, | |
Estado, | |
Emissao, | |
Nome_da_Mae, | |
Nome_do_Pai, | |
Nascimento | |
) | |
SELECT DISTINCT | |
Acme.dbo.FNC_Remove_Pontuacao(fun_cpf) AS Pessoa, | |
fun_dt_alt_cad AS Data, | |
Acme.dbo.FNC_Remove_Pontuacao(fun_rg) AS Numero, | |
fun_nm_func AS Nome, | |
( | |
SELECT TOP 1 | |
Codigo | |
FROM | |
Acme.Pessoa.Origem_de_Cadastro | |
WHERE | |
Descricao = 'Acme' | |
) AS Origem_de_Cadastro, | |
'BR' AS Pais, | |
(SELECT TOP 1 Codigo FROM Acme.Localidade.Estado WHERE Codigo = fun_rg_ssp), | |
fun_rg_dt_emissao, | |
fun_nm_mae, | |
fun_nm_pai, | |
fun_dt_nasc | |
FROM | |
Acme.Acme.Funcionarios | |
INNER JOIN | |
Acme.Pessoa.Pessoa_Fisica | |
ON Pessoa_Fisica.Numero = Acme.dbo.FNC_Remove_Pontuacao(fun_cpf) | |
INNER JOIN | |
( | |
SELECT | |
MAX(fun_cd_func) AS Codigo | |
FROM | |
Acme.Acme.Funcionarios | |
GROUP BY | |
Acme.dbo.FNC_Remove_Pontuacao(fun_cpf) | |
) Unico_Cadastro | |
ON fun_cd_func = Unico_Cadastro.Codigo | |
WHERE | |
fun_dt_alt_cad IS NOT NULL | |
AND NOT EXISTS ( | |
SELECT TOP 1 | |
Pessoa | |
FROM | |
Acme.Pessoa.Registro_Geral | |
WHERE | |
Data = fun_dt_alt_cad | |
AND Pessoa = Acme.dbo.FNC_Remove_Pontuacao(fun_cpf) | |
) | |
/********************************************* | |
* | |
* Tabela Acme.Acme.Proprietarios | |
* | |
*********************************************/ | |
--Importa proprietários do Acme para pesssoas | |
PRINT 'Importando proprietários do Informações para tabela Pessoa' | |
INSERT INTO | |
Acme.Pessoa.Pessoa | |
( | |
Numero, | |
Pais | |
) | |
SELECT DISTINCT | |
Acme.dbo.FNC_Remove_Pontuacao(prop_cpf_cgc) AS Numero, | |
'BR' AS Pais | |
FROM | |
Acme.Acme.Proprietarios | |
WHERE | |
ISNUMERIC(Acme.dbo.FNC_Remove_Pontuacao(prop_cpf_cgc)) = 1 | |
AND ( | |
Acme.dbo.FNC_Valida_CPF(Acme.dbo.FNC_Remove_Pontuacao(prop_cpf_cgc)) = 'S' | |
OR Acme.dbo.FNC_Valida_CNPJ(Acme.dbo.FNC_Remove_Pontuacao(prop_cpf_cgc)) = 'S' | |
) | |
AND NOT EXISTS ( | |
SELECT TOP 1 | |
Numero | |
FROM | |
Acme.Pessoa.Pessoa | |
WHERE | |
Numero = Acme.dbo.FNC_Remove_Pontuacao(prop_cpf_cgc) | |
) | |
--Importa proprietários do Informações para tabela pessoa | |
PRINT 'Importando proprietários do Informações para tabela Pessoa Física' | |
INSERT INTO | |
Acme.Pessoa.Pessoa_Fisica | |
( | |
Numero | |
) | |
SELECT DISTINCT | |
Acme.dbo.FNC_Remove_Pontuacao(prop_cpf_cgc) AS Numero | |
FROM | |
Acme.Acme.Proprietarios | |
INNER JOIN | |
Acme.Pessoa.Pessoa_Fisica | |
ON Pessoa_Fisica.Numero = Acme.dbo.FNC_Remove_Pontuacao(prop_cpf_cgc) | |
WHERE NOT EXISTS ( | |
SELECT TOP 1 | |
Numero | |
FROM | |
Acme.Pessoa.Pessoa_Fisica | |
WHERE | |
Numero = Acme.dbo.FNC_Remove_Pontuacao(prop_cpf_cgc) | |
) | |
--Importa proprietários do Informações para tabela pessoa | |
PRINT 'Importando proprietários do Informações para tabela Pessoa Jurídica' | |
INSERT INTO | |
Acme.Pessoa.Pessoa_Juridica | |
( | |
Numero | |
) | |
SELECT DISTINCT | |
Acme.dbo.FNC_Remove_Pontuacao(prop_cpf_cgc) AS Numero | |
FROM | |
Acme.Acme.Proprietarios | |
INNER JOIN | |
Acme.Pessoa.Pessoa_Juridica | |
ON Pessoa_Juridica.Numero = Acme.dbo.FNC_Remove_Pontuacao(prop_cpf_cgc) | |
WHERE NOT EXISTS ( | |
SELECT TOP 1 | |
Numero | |
FROM | |
Acme.Pessoa.Pessoa_Juridica | |
WHERE | |
Numero = Acme.dbo.FNC_Remove_Pontuacao(prop_cpf_cgc) | |
) | |
--Importa Codigos | |
PRINT 'Associando proprietários importados aos seus respectivos codigos' | |
INSERT INTO | |
Acme.Pessoa.Codigos | |
( | |
Pessoa, | |
Funcionario_Informacoes | |
) | |
SELECT DISTINCT | |
Acme.dbo.FNC_Remove_Pontuacao(prop_cpf_cgc) AS Pessoa, | |
MAX(prop_cd_proprietario) AS Funcionario_Informacoes | |
FROM | |
Acme.Acme.Proprietarios | |
INNER JOIN | |
Acme.Pessoa.Pessoa | |
ON Pessoa.Numero = Acme.dbo.FNC_Remove_Pontuacao(prop_cpf_cgc) | |
WHERE | |
NOT EXISTS ( | |
SELECT TOP 1 | |
Pessoa | |
FROM | |
Acme.Pessoa.Codigos | |
WHERE | |
Pessoa = Acme.dbo.FNC_Remove_Pontuacao(prop_cpf_cgc) | |
) | |
GROUP BY | |
Acme.dbo.FNC_Remove_Pontuacao(prop_cpf_cgc) | |
--Atualiza Códigos que estão desatualizados | |
PRINT 'Associando códigos possivelmente desatualizados' | |
UPDATE | |
Acme.Pessoa.Codigos | |
SET | |
Proprietario_Informacoes = Proprietarios.prop_cd_proprietario | |
FROM | |
Acme.Acme.Proprietarios | |
INNER JOIN | |
Acme.Pessoa.Pessoa | |
ON Pessoa.Numero = Acme.dbo.FNC_Remove_Pontuacao(prop_cpf_cgc) | |
WHERE | |
Codigos.Pessoa = Acme.dbo.FNC_Remove_Pontuacao(prop_cpf_cgc) | |
--Insere dados de pessoa | |
PRINT 'Inserindo Cadastro de Novos Proprietários (Ultimo Cadastro)' | |
INSERT INTO | |
Acme.Pessoa.Registro_Geral | |
( | |
Pessoa, | |
Data, | |
Numero, | |
Nome, | |
Origem_de_Cadastro, | |
Pais, | |
Estado | |
) | |
SELECT DISTINCT | |
Acme.dbo.FNC_Remove_Pontuacao(prop_cpf_cgc) AS Pessoa, | |
prop_dt_cadastro AS Data, | |
Acme.dbo.FNC_Remove_Pontuacao(prop_rg_ie) AS Numero, | |
prop_nm_raz_soc_proprietario AS Nome, | |
( | |
SELECT TOP 1 | |
Codigo | |
FROM | |
Acme.Pessoa.Origem_de_Cadastro | |
WHERE | |
Descricao = 'Acme' | |
) AS Origem_de_Cadastro, | |
'BR' AS Pais, | |
prop_ssp | |
FROM | |
Acme.Acme.Proprietarios | |
INNER JOIN ( | |
SELECT MAX(prop_cd_proprietario) AS Codigo | |
FROM Acme.Acme.Proprietarios | |
GROUP BY prop_cpf_cgc,prop_dt_cadastro | |
) Clientes_Unico | |
ON prop_cd_proprietario = Codigo | |
INNER JOIN | |
Acme.Pessoa.Pessoa_Fisica | |
ON Pessoa_Fisica.Numero = Acme.dbo.FNC_Remove_Pontuacao(prop_cpf_cgc) | |
WHERE NOT EXISTS ( | |
SELECT TOP 1 | |
Pessoa | |
FROM | |
Acme.Pessoa.Registro_Geral | |
WHERE | |
Data = prop_dt_cadastro | |
AND Pessoa = Acme.dbo.FNC_Remove_Pontuacao(prop_cpf_cgc) | |
) | |
AND EXISTS ( | |
SELECT TOP 1 | |
Codigo | |
FROM | |
Acme.Localidade.Estado | |
WHERE | |
Codigo = prop_ssp | |
) | |
--Insere dados de pessoa | |
PRINT 'Inserindo Cadastro de Novos Proprietarios' | |
INSERT INTO | |
Acme.Pessoa.Inscricao_Estadual | |
( | |
Pessoa, | |
Data, | |
Numero, | |
Razao_Social, | |
Origem_de_Cadastro, | |
Pais, | |
Estado | |
) | |
SELECT DISTINCT | |
Acme.dbo.FNC_Remove_Pontuacao(prop_cpf_cgc) AS Pessoa, | |
prop_dt_cadastro AS Data, | |
Acme.dbo.FNC_Remove_Pontuacao(prop_rg_ie) AS Numero, | |
prop_nm_raz_soc_proprietario AS Razao_Social, | |
( | |
SELECT TOP 1 | |
Codigo | |
FROM | |
Acme.Pessoa.Origem_de_Cadastro | |
WHERE | |
Descricao = 'Acme' | |
) AS Origem_de_Cadastro, | |
'BR' AS Pais, | |
(SELECT TOP 1 Codigo FROM Acme.Localidade.Estado WHERE Codigo = prop_ssp) | |
FROM | |
Acme.Acme.Proprietarios | |
INNER JOIN ( | |
SELECT MAX(prop_cd_proprietario) AS Codigo | |
FROM Acme.Acme.Proprietarios | |
GROUP BY prop_cpf_cgc,prop_dt_cadastro | |
) Clientes_Unico | |
ON prop_cd_proprietario = Codigo | |
INNER JOIN | |
Acme.Pessoa.Pessoa_Juridica | |
ON Pessoa_Juridica.Numero = Acme.dbo.FNC_Remove_Pontuacao(prop_cpf_cgc) | |
WHERE NOT EXISTS ( | |
SELECT TOP 1 | |
Pessoa | |
FROM | |
Acme.Pessoa.Inscricao_Estadual | |
WHERE | |
Data = prop_dt_cadastro | |
AND Pessoa = Acme.dbo.FNC_Remove_Pontuacao(prop_cpf_cgc) | |
) | |
/********************************************* | |
* | |
* Tabela Acme.Acme.Log_Funcionarios_Clientes_Xrefs | |
* | |
*********************************************/ | |
--Importa Funcionários | |
PRINT 'Associando funcionários importados aos clientes (Ultimo Cadastro)' | |
INSERT INTO | |
Acme.Pessoa.Funcionario | |
( | |
Contratante, | |
Contratado, | |
Data, | |
Cargo | |
) | |
SELECT DISTINCT | |
Acme.dbo.FNC_Remove_Pontuacao(cli_cgc) AS Contratante, | |
Acme.dbo.FNC_Remove_Pontuacao(fun_cpf) AS Contratado, | |
fcx_dt_alt_cad AS Data, | |
( | |
SELECT TOP 1 | |
Codigo | |
FROM | |
Acme.Pessoa.Cargo | |
WHERE | |
Descricao = Categoria_Funcionario.catf_ds_categ | |
) AS Cargo | |
FROM | |
Acme.Acme.Log_Funcionarios_Clientes_Xrefs | |
INNER JOIN | |
Acme.Acme.Categoria_Funcionario | |
ON Log_Funcionarios_Clientes_Xrefs.fcx_catf_cd_categ = Categoria_Funcionario.catf_cd_categ | |
INNER JOIN | |
Acme.Acme.Funcionarios | |
ON Log_Funcionarios_Clientes_Xrefs.fcx_fun_cd_func = Funcionarios.fun_cd_func | |
INNER JOIN | |
Acme.Acme.Clientes | |
ON Log_Funcionarios_Clientes_Xrefs.fcx_cli_cd_cliente = Clientes.cli_cd_cliente | |
INNER JOIN | |
Acme.Pessoa.Pessoa_Fisica | |
ON Pessoa_Fisica.Numero = Acme.dbo.FNC_Remove_Pontuacao(fun_cpf) | |
INNER JOIN | |
Acme.Pessoa.Pessoa_Juridica | |
ON Pessoa_Juridica.Numero = Acme.dbo.FNC_Remove_Pontuacao(cli_cgc) | |
WHERE fcx_dt_alt_cad IS NOT NULL | |
AND fcx_catf_cd_categ IS NOT NULL | |
AND NOT EXISTS ( | |
SELECT TOP 1 | |
Contratante, Contratado, Data | |
FROM | |
Acme.Pessoa.Funcionario | |
WHERE | |
Data = fcx_dt_alt_cad | |
AND Contratante = Acme.dbo.FNC_Remove_Pontuacao(cli_cgc) | |
AND Contratado = Acme.dbo.FNC_Remove_Pontuacao(fun_cpf)) | |
/********************************************* | |
* | |
* Tabela Acme.Acme.Veiculos | |
* | |
*********************************************/ | |
--Importa Veículos | |
PRINT 'Importando Veículos' | |
INSERT INTO Acme.Veiculo.Veiculo | |
( | |
Pais, | |
Placa, | |
Cor, | |
Modelo, | |
Ano, | |
Ano_de_Fabricacao, | |
Chassi, | |
Renavam | |
) | |
SELECT DISTINCT | |
'BR' Pais, | |
vei_placas AS Placa, | |
(SELECT TOP 1 Codigo FROM Acme.Veiculo.Cor WHERE Descricao = LTRIM(RTRIM(vei_cor))) as Cor, | |
(SELECT TOP 1Codigo FROM Acme.Veiculo.Modelo WHERE Nome = LTRIM(RTRIM(vei_modelo)) AND Fabricante = (SELECT Codigo FROM Acme.Veiculo.Fabricante WHERE Descricao = LTRIM(RTRIM(vei_marca)))) AS Modelo, | |
vei_ano AS Ano, | |
vei_ano AS Ano_de_Fabricacao, | |
vei_chassi AS Chassi, | |
vei_renavam AS Renavam | |
FROM | |
( | |
SELECT DISTINCT vei_placas,vei_cor,vei_modelo,vei_marca,vei_ano,vei_chassi,vei_renavam FROM Acme.Acme.Veiculos AS VX | |
WHERE vei_dt_cadastro = | |
(SELECT TOP 1 vei_dt_cadastro FROM Acme.Acme.Veiculos WHERE vei_placas = VX.vei_placas ORDER BY vei_dt_cadastro DESC) | |
AND vei_cd_veiculo = | |
(SELECT TOP 1 vei_cd_veiculo FROM Acme.Acme.Veiculos WHERE vei_placas = VX.vei_placas ORDER BY vei_dt_cadastro DESC) | |
AND vei_chassi = | |
(SELECT TOP 1 vei_chassi FROM Acme.Acme.Veiculos WHERE vei_placas = VX.vei_placas ORDER BY vei_dt_cadastro DESC) | |
AND vei_placas LIKE '[A-Z][A-Z][A-Z][0-9][0-9][0-9][0-9]' | |
) Veic | |
WHERE | |
NOT EXISTS | |
( | |
SELECT TOP 1 | |
Placa | |
FROM | |
Acme.Veiculo.Veiculo | |
WHERE | |
Placa = vei_placas | |
AND Pais = 'BR' | |
) | |
--Atualiza Veículos | |
PRINT 'Atualizando Veículos' | |
UPDATE Acme.Veiculo.Veiculo SET | |
Cor = (SELECT Codigo FROM Acme.Veiculo.Cor WHERE Descricao = LTRIM(RTRIM(vei_cor))), | |
Modelo = (SELECT Codigo FROM Acme.Veiculo.Modelo WHERE Nome = LTRIM(RTRIM(vei_modelo)) AND Fabricante = (SELECT Codigo FROM Acme.Veiculo.Fabricante WHERE Descricao = LTRIM(RTRIM(vei_marca)))), | |
Ano = vei_ano, | |
Ano_de_Fabricacao = vei_ano, | |
Chassi = vei_chassi, | |
Renavam = vei_renavam | |
FROM | |
( | |
SELECT DISTINCT vei_placas,vei_cor,vei_modelo,vei_marca,vei_ano,vei_chassi,vei_renavam FROM Acme.Acme.Veiculos AS VX | |
WHERE vei_dt_cadastro = | |
(SELECT TOP 1 vei_dt_cadastro FROM Acme.Acme.Veiculos WHERE vei_placas = VX.vei_placas ORDER BY vei_dt_cadastro DESC) | |
AND vei_cd_veiculo = | |
(SELECT TOP 1 vei_cd_veiculo FROM Acme.Acme.Veiculos WHERE vei_placas = VX.vei_placas ORDER BY vei_dt_cadastro DESC) | |
AND vei_chassi = | |
(SELECT TOP 1 vei_chassi FROM Acme.Acme.Veiculos WHERE vei_placas = VX.vei_placas ORDER BY vei_dt_cadastro DESC) | |
AND vei_placas LIKE '[A-Z][A-Z][A-Z][0-9][0-9][0-9][0-9]' | |
) Veic | |
WHERE | |
Placa = vei_placas AND Pais = 'BR' | |
/********************************************* | |
* | |
* Tabela Acme.Acme.Veiculos_Proprietarios_Xrefs | |
* | |
*********************************************/ | |
--Importa Funcionários | |
PRINT 'Associando veículos importados aos proprietários' | |
INSERT INTO | |
Acme.Veiculo.Proprietario | |
( | |
Pais, | |
Veiculo, | |
Data, | |
Pessoa | |
) | |
SELECT DISTINCT | |
'BR', | |
vei_placas, | |
vpx_dt_cadastro AS Data, | |
MAX(Acme.dbo.FNC_Remove_Pontuacao(fun_cpf)) AS Contratado | |
FROM | |
Acme.Acme.Veiculos_Proprietarios_Xrefs | |
INNER JOIN | |
Acme.Acme.Veiculos | |
ON Veiculos_Proprietarios_Xrefs.vpx_vei_cd_veiculo = Veiculos.vei_cd_veiculo | |
INNER JOIN | |
Acme.Acme.Funcionarios | |
ON Veiculos_Proprietarios_Xrefs.vpx_fun_cd_func = Funcionarios.fun_cd_func | |
INNER JOIN | |
Acme.Pessoa.Pessoa_Fisica | |
ON Pessoa_Fisica.Numero = Acme.dbo.FNC_Remove_Pontuacao(fun_cpf) | |
WHERE | |
vei_placas LIKE '[A-Z][A-Z][A-Z][0-9][0-9][0-9][0-9]' | |
AND vpx_dt_cadastro IS NOT NULL | |
AND NOT EXISTS ( | |
SELECT TOP 1 | |
Veiculo,Pessoa,Data | |
FROM | |
Acme.Veiculo.Proprietario | |
WHERE | |
Pais = 'BR' | |
AND Data = vpx_dt_cadastro | |
AND Veiculo = vei_placas | |
) | |
GROUP BY | |
vei_placas, | |
vpx_dt_cadastro | |
/********************************************* | |
* | |
* Tabela Monitora.dbo.Client_Empresas | |
* | |
*********************************************/ | |
PRINT 'Inserindo pessoas...' | |
INSERT INTO | |
Acme.Pessoa.Pessoa | |
( | |
Numero, | |
Pais | |
) | |
SELECT DISTINCT | |
Acme.dbo.FNC_Remove_Pontuacao(CNPJCPF), | |
'BR' | |
FROM | |
Monitora.dbo.Client_Empresas | |
WHERE | |
( | |
Acme.dbo.FNC_Valida_CNPJ(Acme.dbo.FNC_Remove_Pontuacao(CNPJCPF))COLLATE Latin1_General_CI_AS = 'S' | |
OR Acme.dbo.FNC_Valida_CPF(Acme.dbo.FNC_Remove_Pontuacao(CNPJCPF))COLLATE Latin1_General_CI_AS = 'S' | |
) | |
AND NOT EXISTS | |
( | |
SELECT TOP 1 | |
Numero | |
FROM | |
Acme.Pessoa.Pessoa | |
WHERE | |
Numero COLLATE Latin1_General_CI_AS = Acme.dbo.FNC_Remove_Pontuacao(CNPJCPF) | |
) | |
PRINT 'Inserindo Pessoas Físicas...' | |
INSERT INTO | |
Acme.Pessoa.Pessoa_Fisica | |
( | |
Numero | |
) | |
SELECT DISTINCT | |
Acme.dbo.FNC_Remove_Pontuacao(CNPJCPF) | |
FROM | |
Monitora.dbo.Client_Empresas | |
WHERE ( | |
Acme.dbo.FNC_Valida_CNPJ(Acme.dbo.FNC_Remove_Pontuacao(CNPJCPF))COLLATE Latin1_General_CI_AS = 'N' | |
AND Acme.dbo.FNC_Valida_CPF(Acme.dbo.FNC_Remove_Pontuacao(CNPJCPF))COLLATE Latin1_General_CI_AS = 'S' | |
) | |
AND NOT EXISTS | |
( | |
SELECT TOP 1 Numero | |
FROM Acme.Pessoa.Pessoa_Fisica | |
WHERE Numero COLLATE Latin1_General_CI_AS = Acme.dbo.FNC_Remove_Pontuacao(CNPJCPF) | |
) | |
PRINT 'Inserindo Pessoas Jurídicas...' | |
INSERT INTO | |
Acme.Pessoa.Pessoa_Juridica | |
( | |
Numero | |
) | |
SELECT DISTINCT | |
Acme.dbo.FNC_Remove_Pontuacao(CNPJCPF) | |
FROM | |
Monitora.dbo.Client_Empresas | |
WHERE ( | |
Acme.dbo.FNC_Valida_CNPJ(Acme.dbo.FNC_Remove_Pontuacao(CNPJCPF))COLLATE Latin1_General_CI_AS = 'S' | |
AND Acme.dbo.FNC_Valida_CPF(Acme.dbo.FNC_Remove_Pontuacao(CNPJCPF))COLLATE Latin1_General_CI_AS = 'N' | |
) | |
AND NOT EXISTS | |
( | |
SELECT TOP 1 Numero | |
FROM Acme.Pessoa.Pessoa_Juridica | |
WHERE Numero COLLATE Latin1_General_CI_AS = Acme.dbo.FNC_Remove_Pontuacao(CNPJCPF) | |
) | |
PRINT 'Inserindo Codigos do Monitora...' | |
INSERT INTO | |
Acme.Pessoa.Codigos | |
( | |
Pessoa, | |
Cliente_Monitora | |
) | |
SELECT DISTINCT | |
Acme.dbo.FNC_Remove_Pontuacao(CNPJCPF), | |
MAX(CONVERT(INT, Codigo)) | |
FROM | |
Monitora.dbo.Client_Empresas | |
WHERE ( | |
Acme.dbo.FNC_Valida_CNPJ(Acme.dbo.FNC_Remove_Pontuacao(CNPJCPF))COLLATE Latin1_General_CI_AS = 'S' | |
OR Acme.dbo.FNC_Valida_CPF(Acme.dbo.FNC_Remove_Pontuacao(CNPJCPF))COLLATE Latin1_General_CI_AS = 'S' | |
) | |
AND Qualifica <> 'MATRIZ' | |
AND NOT EXISTS | |
( | |
SELECT TOP 1 Cliente_Monitora | |
FROM Acme.Pessoa.Codigos | |
WHERE Pessoa COLLATE Latin1_General_CI_AS = Acme.dbo.FNC_Remove_Pontuacao(CNPJCPF) | |
) | |
GROUP BY | |
Acme.dbo.FNC_Remove_Pontuacao(CNPJCPF) | |
PRINT 'Atualizando Codigos Monitora...' | |
UPDATE | |
Acme.Pessoa.Codigos | |
SET | |
Cliente_Monitora = Codigo | |
FROM | |
Monitora.dbo.Client_Empresas | |
INNER JOIN ( | |
SELECT | |
MAX(Codigo) AS MaxCodigo | |
FROM | |
Monitora.dbo.Client_Empresas | |
GROUP BY | |
Acme.dbo.FNC_Remove_Pontuacao(CNPJCPF) | |
) Codigo2 | |
ON Client_Empresas.Codigo = Codigo2.MaxCodigo | |
WHERE | |
Codigos.Pessoa = Acme.dbo.FNC_Remove_Pontuacao(Client_Empresas.CNPJCPF) | |
AND Acme.dbo.FNC_Valida_CNPJ(Acme.dbo.FNC_Remove_Pontuacao(CNPJCPF)) = 'S' | |
PRINT 'Atualizando Codigos Para as Matrizes...' | |
UPDATE | |
Acme.Pessoa.Codigos | |
SET | |
Cliente_Monitora = Codigo | |
FROM | |
Monitora.dbo.Client_Empresas | |
WHERE | |
Codigos.Pessoa = Acme.dbo.FNC_Remove_Pontuacao(Client_Empresas.CNPJCPF) | |
AND Acme.dbo.FNC_Valida_CNPJ(Acme.dbo.FNC_Remove_Pontuacao(CNPJCPF)) = 'S' | |
AND Client_Empresas.Qualifica = 'MATRIZ' | |
PRINT 'Inserindo Inscricao Estadual (Monitora)...' | |
INSERT INTO | |
Acme.Pessoa.Inscricao_Estadual | |
( | |
Pessoa, | |
Data, | |
Numero, | |
Razao_Social | |
) | |
SELECT DISTINCT | |
Acme.dbo.FNC_Remove_Pontuacao(Client_Empresas.CNPJCPF), | |
Client_Empresas.DtaCadastro, | |
MAX(Acme.dbo.FNC_Remove_Pontuacao(Client_Empresas.ISCEstadual)), | |
MAX(Raz_Social) | |
FROM | |
Monitora.dbo.Client_Empresas | |
INNER JOIN Acme.Pessoa.Pessoa_Juridica | |
ON Acme.Pessoa.Pessoa_Juridica.Numero = Acme.dbo.FNC_Remove_Pontuacao(Client_Empresas.CNPJCPF) | |
WHERE | |
DtaCadastro IS NOT NULL | |
AND NOT EXISTS | |
( | |
SELECT TOP 1 | |
Pessoa | |
FROM | |
Acme.Pessoa.Inscricao_Estadual | |
WHERE | |
Pessoa = Acme.dbo.FNC_Remove_Pontuacao(Client_Empresas.CNPJCPF) | |
AND Data = Client_Empresas.DtaCadastro | |
) | |
GROUP BY | |
Acme.dbo.FNC_Remove_Pontuacao(Client_Empresas.CNPJCPF), Client_Empresas.DtaCadastro | |
PRINT 'Inserindo Pessoa Cliente (Clientes Acme)...' | |
INSERT INTO | |
Acme.Pessoa.Cliente | |
( | |
Contratante, | |
Contratado, | |
Data, | |
Tipo | |
) | |
SELECT DISTINCT | |
Acme.dbo.FNC_Remove_Pontuacao(CNPJCPF), | |
'06326025000166', | |
DtaCadastro, | |
( | |
SELECT TOP 1 | |
Codigo | |
FROM | |
Acme.Pessoa.Tipo_de_Cliente | |
WHERE | |
Descricao = 'Gerenciado' | |
) | |
FROM | |
Monitora.dbo.Client_Empresas | |
WHERE | |
Acme.dbo.FNC_Valida_CNPJ(Acme.dbo.FNC_Remove_Pontuacao(CNPJCPF))COLLATE Latin1_General_CI_AS = 'S' | |
AND DtaCadastro IS NOT NULL | |
AND NOT EXISTS( | |
SELECT TOP 1 | |
Contratante | |
FROM | |
Acme.Pessoa.Cliente | |
WHERE | |
Contratante = Acme.dbo.FNC_Remove_Pontuacao(CNPJCPF) | |
AND Contratado = '06326025000166' | |
AND Data = DtaCadastro | |
AND Tipo = ( | |
SELECT TOP 1 | |
Codigo | |
FROM | |
Acme.Pessoa.Tipo_de_Cliente | |
WHERE | |
Descricao = 'Gerenciado' | |
) | |
) | |
/********************************************* | |
* | |
* Tabela Monitora.dbo.Motorista | |
* | |
*********************************************/ | |
PRINT 'Inserindo Pessoas (Motoristas)...' | |
INSERT INTO | |
Acme.Pessoa.Pessoa | |
( | |
Numero, | |
Pais | |
) | |
SELECT DISTINCT | |
Acme.dbo.FNC_Remove_Pontuacao(CPF), | |
'BR' | |
FROM | |
Monitora.dbo.Motorista | |
WHERE | |
Nacionalidade = 'S' | |
AND Acme.dbo.FNC_Valida_CPF(Acme.dbo.FNC_Remove_Pontuacao(CPF)) COLLATE Latin1_General_CI_AS ='S' | |
AND NOT EXISTS | |
( | |
SELECT TOP 1 | |
Numero | |
FROM | |
Acme.Pessoa.Pessoa | |
WHERE | |
Numero COLLATE Latin1_General_CI_AS=Acme.dbo.FNC_Remove_Pontuacao(CPF) | |
) | |
PRINT 'Inserido Pessoas Fisicas (Motoristas)...' | |
INSERT INTO | |
Acme.Pessoa.Pessoa_Fisica | |
( | |
Numero | |
) | |
SELECT DISTINCT | |
Acme.dbo.FNC_Remove_Pontuacao(CPF) | |
FROM | |
Monitora.dbo.Motorista | |
WHERE | |
Nacionalidade = 'S' | |
AND Acme.dbo.FNC_Valida_CPF(Acme.dbo.FNC_Remove_Pontuacao(CPF)) COLLATE Latin1_General_CI_AS ='S' | |
AND NOT EXISTS | |
( | |
SELECT TOP 1 Numero | |
FROM Acme.Pessoa.Pessoa_Fisica | |
WHERE Numero COLLATE Latin1_General_CI_AS=Acme.dbo.FNC_Remove_Pontuacao(CPF) | |
) | |
PRINT 'Inserindo Registro Geral (Motoristas)...' | |
INSERT INTO | |
Acme.Pessoa.Registro_Geral | |
( | |
Pessoa, | |
Data, | |
Numero, | |
Nome, | |
Origem_de_Cadastro | |
) | |
SELECT | |
Acme.dbo.FNC_Remove_Pontuacao(CPF), | |
Motorista.Data, | |
Acme.dbo.FNC_Remove_Pontuacao(RG), | |
Motorista.Nome, | |
( | |
SELECT TOP 1 | |
Codigo | |
FROM | |
Acme.Pessoa.Origem_de_Cadastro | |
WHERE | |
Descricao = 'Monitora' | |
) | |
FROM | |
Monitora.dbo.Motorista | |
INNER JOIN | |
( | |
SELECT DISTINCT | |
MAX(Codigo) AS CODIGO | |
FROM | |
Monitora.dbo.Motorista | |
GROUP BY | |
Acme.dbo.FNC_Remove_Pontuacao(CPF) | |
) MotUnicos | |
ON MotUnicos.Codigo = Motorista.Codigo | |
INNER JOIN Acme.Pessoa.Pessoa_Fisica | |
ON Pessoa_Fisica.Numero = Acme.dbo.FNC_Remove_Pontuacao(CPF) | |
LEFT JOIN Acme.Pessoa.Registro_Geral | |
ON Registro_Geral.Pessoa = Acme.dbo.FNC_Remove_Pontuacao(CPF) | |
AND Registro_Geral.Data = Motorista.Data | |
WHERE | |
Registro_Geral.Pessoa IS NULL | |
AND Motorista.Data IS NOT NULL | |
AND LEN(RG) > 0 | |
/********************************************* | |
* | |
* Tabela Monitora.dbo.Caminhao | |
* | |
*********************************************/ | |
PRINT 'Inserindo Veiculos Caminhões (Monitora)...' | |
INSERT INTO | |
Acme.Veiculo.Veiculo | |
( | |
Pais, | |
Placa, | |
Tipo_de_Carroceria, | |
Ano, | |
Ano_de_Fabricacao, | |
Chassi, | |
Tonelagem | |
) | |
SELECT DISTINCT | |
'BR', | |
REPLACE(Placa_Cam,'-',''), | |
( | |
SELECT TOP 1 | |
Codigo | |
FROM | |
Acme.Veiculo.Tipo_de_Carroceria | |
WHERE | |
Descricao COLLATE Latin1_General_CI_AS = Monitora.dbo.MON_TipoCarroceria.TCA_Descricao | |
), | |
CASE ISNUMERIC(Acme.dbo.FNC_Remove_Pontuacao(Ano_Modelo)) | |
WHEN 1 THEN Acme.dbo.FNC_Remove_Pontuacao(Ano_Modelo) | |
ELSE NULL | |
END, | |
CASE ISNUMERIC(Acme.dbo.FNC_Remove_Pontuacao(Ano_Fab)) | |
WHEN 1 THEN Acme.dbo.FNC_Remove_Pontuacao(Ano_Fab) | |
ELSE NULL | |
END, | |
Chassi, | |
CASE ISNUMERIC(Acme.dbo.FNC_Remove_Pontuacao(Lim_Tonelagem)) | |
WHEN 1 THEN Acme.dbo.FNC_Remove_Pontuacao(Lim_Tonelagem) | |
ELSE NULL | |
END | |
FROM Monitora.dbo.Caminhao | |
LEFT JOIN Monitora.dbo.MON_TipoCarroceria | |
ON Monitora.dbo.Caminhao.TIP_Carroceria = Monitora.dbo.MON_TipoCarroceria.TCA_Codigo | |
INNER JOIN ( | |
SELECT | |
MAX(Codigo) AS MaxCodigo | |
FROM | |
Monitora.dbo.Caminhao | |
WHERE | |
Placa_Cam LIKE '[A-Z][A-Z][A-Z]-[0-9][0-9][0-9][0-9]' | |
GROUP BY | |
Placa_Cam | |
) CaminhaoCheroso --XOXOTOSO | |
ON Monitora.dbo.Caminhao.Codigo = CaminhaoCheroso.MaxCodigo | |
WHERE | |
Placa_Cam LIKE '[A-Z][A-Z][A-Z]-[0-9][0-9][0-9][0-9]' | |
AND NOT EXISTS | |
( | |
SELECT | |
Placa | |
FROM | |
Acme.Veiculo.Veiculo | |
WHERE | |
Placa = REPLACE(Placa_Cam,'-','') | |
AND Pais = 'BR' | |
) | |
PRINT 'Atualizando Tipos de Carroceria' | |
UPDATE | |
Acme.Veiculo.Veiculo | |
SET | |
Tipo_de_Carroceria = ( | |
SELECT TOP 1 Codigo | |
FROM Acme.Veiculo.Tipo_de_Carroceria | |
WHERE Descricao COLLATE Latin1_General_CI_AS = Monitora.dbo.MON_TipoCarroceria.TCA_Descricao | |
) | |
FROM | |
Monitora.dbo.Caminhao | |
INNER JOIN Monitora.dbo.MON_TipoCarroceria | |
ON Monitora.dbo.Caminhao.TIP_Carroceria = Monitora.dbo.MON_TipoCarroceria.TCA_Codigo | |
INNER JOIN ( | |
SELECT | |
MAX(Codigo) AS MaxCodigo | |
FROM | |
Monitora.dbo.Caminhao | |
WHERE | |
Placa_Cam LIKE '[A-Z][A-Z][A-Z]-[0-9][0-9][0-9][0-9]' | |
GROUP BY | |
Placa_Cam | |
) CaminhaoCheroso --XOXOTOSO | |
ON Monitora.dbo.Caminhao.Codigo = CaminhaoCheroso.MaxCodigo | |
WHERE | |
Placa = REPLACE(Placa_Cam,'-','') AND Pais = 'BR' | |
AND Placa_Cam LIKE '[A-Z][A-Z][A-Z]-[0-9][0-9][0-9][0-9]' | |
PRINT 'Atualizando anos dos veículos' | |
UPDATE | |
Acme.Veiculo.Veiculo | |
SET | |
Ano = CASE ISNUMERIC(Acme.dbo.FNC_Remove_Pontuacao(Ano_Modelo)) | |
WHEN 1 THEN Acme.dbo.FNC_Remove_Pontuacao(Ano_Modelo) | |
ELSE NULL | |
END, | |
Ano_de_Fabricacao = CASE ISNUMERIC(Acme.dbo.FNC_Remove_Pontuacao(Ano_Fab)) | |
WHEN 1 THEN Acme.dbo.FNC_Remove_Pontuacao(Ano_Fab) | |
ELSE NULL | |
END | |
FROM | |
Monitora.dbo.Caminhao | |
INNER JOIN ( | |
SELECT | |
MAX(Codigo) AS MaxCodigo | |
FROM | |
Monitora.dbo.Caminhao | |
WHERE | |
Placa_Cam LIKE '[A-Z][A-Z][A-Z]-[0-9][0-9][0-9][0-9]' | |
GROUP BY | |
Placa_Cam | |
) CaminhaoCheroso --XOXOTOSO | |
ON Monitora.dbo.Caminhao.Codigo = CaminhaoCheroso.MaxCodigo | |
WHERE | |
Placa = REPLACE(Placa_Cam,'-','') AND Pais = 'BR' | |
AND Placa_Cam LIKE '[A-Z][A-Z][A-Z]-[0-9][0-9][0-9][0-9]' | |
AND (Ano IS NULL OR Ano_de_Fabricacao IS NULL OR LEN(Ano) <> 4 OR LEN(Ano_de_Fabricacao) <>4) | |
PRINT 'Atualizando chassis dos veículos' | |
UPDATE | |
Acme.Veiculo.Veiculo | |
SET | |
Chassi = Caminhao.Chassi | |
FROM | |
Monitora.dbo.Caminhao | |
INNER JOIN ( | |
SELECT | |
MAX(Codigo) AS MaxCodigo | |
FROM | |
Monitora.dbo.Caminhao | |
WHERE | |
Placa_Cam LIKE '[A-Z][A-Z][A-Z]-[0-9][0-9][0-9][0-9]' | |
GROUP BY | |
Placa_Cam | |
) CaminhaoCheroso --XOXOTOSO | |
ON Monitora.dbo.Caminhao.Codigo = CaminhaoCheroso.MaxCodigo | |
WHERE | |
Placa = REPLACE(Placa_Cam,'-','') AND Pais = 'BR' | |
AND Placa_Cam LIKE '[A-Z][A-Z][A-Z]-[0-9][0-9][0-9][0-9]' | |
AND Veiculo.Chassi IS NULL | |
PRINT 'Atualizando tonelagens dos veículos' | |
UPDATE | |
Acme.Veiculo.Veiculo | |
SET | |
Tonelagem = CASE ISNUMERIC(Acme.dbo.FNC_Remove_Pontuacao(Lim_Tonelagem)) | |
WHEN 1 THEN Acme.dbo.FNC_Remove_Pontuacao(Lim_Tonelagem) | |
ELSE NULL | |
END | |
FROM | |
Monitora.dbo.Caminhao | |
INNER JOIN ( | |
SELECT | |
MAX(Codigo) AS MaxCodigo | |
FROM | |
Monitora.dbo.Caminhao | |
WHERE | |
Placa_Cam LIKE '[A-Z][A-Z][A-Z]-[0-9][0-9][0-9][0-9]' | |
GROUP BY | |
Placa_Cam | |
) CaminhaoCheroso --XOXOTOSO | |
ON Monitora.dbo.Caminhao.Codigo = CaminhaoCheroso.MaxCodigo | |
WHERE | |
Placa = REPLACE(Placa_Cam,'-','') AND Pais = 'BR' | |
AND Placa_Cam LIKE '[A-Z][A-Z][A-Z]-[0-9][0-9][0-9][0-9]' | |
AND Tonelagem IS NULL | |
/********************************************* | |
* | |
* Início das Validações | |
* | |
*********************************************/ | |
/* | |
PRINT 'Clientes Não Importados' | |
SELECT | |
CASE | |
WHEN | |
cli_cgc NOT LIKE '[0-9][0-9].[0-9][0-9][0-9].[0-9][0-9][0-9]/[0-9][0-9][0-9][0-9]-[0-9][0-9]' | |
OR Acme.dbo.FNC_Valida_CNPJ(Acme.dbo.FNC_Remove_Pontuacao(cli_cgc)) <> 'S' | |
THEN | |
'CNPJ Inválido' | |
END Motivo, | |
cli_cd_cliente AS Codigo_Cliente_Informacoes, | |
cli_cgc AS CNPJ, | |
cli_nm_fantasia AS Cliente_nao_Importado, | |
cli_dt_cadastro AS Data | |
FROM | |
Acme.Acme.Clientes | |
LEFT JOIN | |
Acme.Pessoa.Pessoa_Juridica | |
ON Acme.dbo.FNC_Remove_Pontuacao(cli_cgc) = Pessoa_Juridica.Numero | |
WHERE | |
Pessoa_Juridica.Numero IS NULL | |
PRINT 'Corretoras Não Importadas' | |
SELECT | |
CASE | |
WHEN | |
cor_cgc NOT LIKE '[0-9][0-9].[0-9][0-9][0-9].[0-9][0-9][0-9]/[0-9][0-9][0-9][0-9]-[0-9][0-9]' | |
OR Acme.dbo.FNC_Valida_CNPJ(Acme.dbo.FNC_Remove_Pontuacao(cor_cgc)) <> 'S' | |
THEN | |
'CNPJ Inválido' | |
END Motivo, | |
cor_cd_corretora AS Codigo_Corretora_Informacoes, | |
cor_cgc AS CNPJ, | |
cor_nm_corretora AS Corretora_Nao_Importada, | |
cor_dt_cadastro AS Data | |
FROM | |
Acme.Acme.Corretoras | |
LEFT JOIN | |
Acme.Pessoa.Pessoa_Juridica | |
ON Acme.dbo.FNC_Remove_Pontuacao(cor_cgc) = Pessoa_Juridica.Numero | |
WHERE | |
Pessoa_Juridica.Numero IS NULL | |
PRINT 'Seguradoras Não Importadas' | |
SELECT | |
CASE | |
WHEN | |
seg_cgc NOT LIKE '[0-9][0-9].[0-9][0-9][0-9].[0-9][0-9][0-9]/[0-9][0-9][0-9][0-9]-[0-9][0-9]' | |
OR Acme.dbo.FNC_Valida_CNPJ(Acme.dbo.FNC_Remove_Pontuacao(seg_cgc)) <> 'S' | |
THEN | |
'CNPJ Inválido' | |
END Motivo, | |
seg_cd_seguradora AS Codigo_Seguradora_Informacoes, | |
seg_cgc AS CNPJ, | |
seg_nm_seguradora AS Seguradora_Nao_Importada, | |
seg_dt_cadastro AS Data | |
FROM | |
Acme.Acme.Seguradoras | |
LEFT JOIN | |
Acme.Pessoa.Pessoa_Juridica | |
ON Acme.dbo.FNC_Remove_Pontuacao(seg_cgc) = Pessoa_Juridica.Numero | |
WHERE | |
Pessoa_Juridica.Numero IS NULL | |
PRINT 'Funcionários Não Importados' | |
SELECT | |
CASE | |
WHEN | |
fun_cpf NOT LIKE '[0-9][0-9][0-9].[0-9][0-9][0-9].[0-9][0-9][0-9]-[0-9][0-9]' | |
OR Acme.dbo.FNC_Valida_CPF(Acme.dbo.FNC_Remove_Pontuacao(fun_cpf)) <> 'S' | |
THEN | |
'CPF Inválido' | |
END Motivo, | |
fun_cd_func AS Codigo_Funcionario_Inf, | |
fun_cpf AS CPF, | |
fun_nm_func AS Funcionario_Nao_Importado, | |
fun_dt_cadastro AS Data | |
FROM | |
Acme.Acme.Funcionarios | |
LEFT JOIN | |
Acme.Pessoa.Pessoa_Fisica | |
ON Acme.dbo.FNC_Remove_Pontuacao(fun_cpf) = Pessoa_Fisica.Numero | |
WHERE | |
Pessoa_Fisica.Numero IS NULL | |
PRINT 'Proprietários Não Importados' | |
SELECT | |
CASE | |
WHEN | |
(prop_cpf_cgc NOT LIKE '[0-9][0-9][0-9].[0-9][0-9][0-9].[0-9][0-9][0-9]-[0-9][0-9]' | |
OR Acme.dbo.FNC_Valida_CPF(Acme.dbo.FNC_Remove_Pontuacao(prop_cpf_cgc)) <> 'S') | |
AND (prop_cpf_cgc NOT LIKE '[0-9][0-9].[0-9][0-9][0-9].[0-9][0-9][0-9]/[0-9][0-9][0-9][0-9]-[0-9][0-9]' | |
OR Acme.dbo.FNC_Valida_CNPJ(Acme.dbo.FNC_Remove_Pontuacao(prop_cpf_cgc)) <> 'S') | |
THEN | |
'Documento Inválido' | |
END Motivo, | |
prop_cpf_cgc AS Documento, | |
MAX(prop_nm_raz_soc_proprietario) AS Proprietario_Nao_Importado, | |
MAX(prop_dt_cadastro) AS Data, | |
COUNT(*) AS Quantidade_de_Historicos | |
FROM | |
Acme.Acme.Proprietarios | |
LEFT JOIN | |
Acme.Pessoa.Pessoa | |
ON Acme.dbo.FNC_Remove_Pontuacao(prop_cpf_cgc) = Pessoa.Numero | |
WHERE | |
Pessoa.Numero IS NULL | |
GROUP BY | |
prop_cpf_cgc | |
PRINT 'Cadastro de Funcionários Não Importados' | |
SELECT | |
NULL AS Motivo, | |
fun_cpf AS CPF, | |
fun_nm_func AS Funcionario_Nao_Importado, | |
fun_dt_cadastro AS Data | |
FROM | |
Acme.Acme.Funcionarios | |
INNER JOIN | |
Acme.Pessoa.Pessoa_Fisica | |
ON Acme.dbo.FNC_Remove_Pontuacao(fun_cpf) = Pessoa_Fisica.Numero | |
LEFT JOIN | |
Acme.Pessoa.Registro_Geral | |
ON Acme.dbo.FNC_Remove_Pontuacao(fun_cpf) = Registro_Geral.Pessoa | |
WHERE | |
Registro_Geral.Pessoa IS NULL | |
PRINT 'Cadastro de Empresas Não Importados' | |
SELECT | |
NULL AS Motivo, | |
cli_cgc AS CNPJ, | |
cli_nm_fantasia AS Empresa_Nao_Importada, | |
cli_dt_cadastro AS Data | |
FROM | |
Acme.Acme.Clientes | |
INNER JOIN | |
Acme.Pessoa.Pessoa_Juridica | |
ON Acme.dbo.FNC_Remove_Pontuacao(cli_cgc) = Pessoa_Juridica.Numero | |
LEFT JOIN | |
Acme.Pessoa.Inscricao_Estadual | |
ON Acme.dbo.FNC_Remove_Pontuacao(cli_cgc) = Inscricao_Estadual.Pessoa | |
WHERE | |
Inscricao_Estadual.Pessoa IS NULL | |
*/ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment