Skip to content

Instantly share code, notes, and snippets.

@alganet
Created February 11, 2013 18:47
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save alganet/4756580 to your computer and use it in GitHub Desktop.
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.
/*********************************************
*
* 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