A258-Cadastro de terceiros com CNPJ CPF duplicado
Sumário
Sistema: Gerenciador de Aplicativos Prosoft (GAP)
...
Scroll Only |
---|
Autor do artigo: atualizado por Joao.Fonseca (Não remova esse quadro) |
Quando a falha ocorre?
O objetivo deste artigo é auxiliar na correção do cadastro de terceiros com o CNPJ CPF duplicado.
Informações Adicionais: Não se aplica.
...
...
...
4- Acesse a tabela prg_terceiro_btr.
5- Execute o comando abaixo para remover índices da tabela prg_terceiro_btr:
DROP INDEX "prg_terceiro_btr"."iprg_terceiro_btr1";
DROP INDEX "prg_terceiro_btr"."iprg_terceiro_btr2";
DROP INDEX "prg_terceiro_btr"."iprg_terceiro_btr3";
DROP INDEX "prg_terceiro_btr"."iprg_terceiro_btr4";
DROP INDEX "prg_terceiro_btr"."iprg_terceiro_btr5";
DROP INDEX "prg_terceiro_btr"."iprg_terceiro_btr6";
DROP INDEX "prg_terceiro_btr"."iprg_terceiro_btr7";
6- Acesse a tabela prg_terceiro_compl.
7- Execute o comando abaixo para remover remover índices e relacionamentos da tabela prg_terceiro_compl:
DROP INDEX "prg_terceiro_compl"."iprg_terceiro_compl1";
ALTER TABLE "prg_terceiro_compl"(
DROP CONSTRAINT cterceiro_compl00,
DROP CONSTRAINT cterceiro_compl01);
8- Acesse a tabela prg_endereco.
9- Execute o comando abaixo para remover relacionamentos da tabela prg_endereco:
ALTER TABLE "prg_endereco"(
DROP CONSTRAINT cendereco01,
DROP CONSTRAINT cendereco02,
DROP CONSTRAINT cendereco03,
DROP CONSTRAINT cendereco00 );
10- Após a remoção dos índices da tabela prg_terceiro_btr, prg_terceiro_compl e prg_endereco execute o seguinte comando abaixo:
select cnpjcpf from prg_terceiro_btr group by cnpjcpf having count (cnpjcpf)>1;
Aviso |
---|
...
Este comando retornará todos os registros com cnpj e cpf duplicados na base de dados da tabela prg_terceiro_btr. |
...
...
...
...
14- Execute o comando abaixo para criar índices da tabela prg_terceiro_btr:
CREATE UNIQUE NOT MODIFIABLE INDEX "iprg_terceiro_btr1" USING 0 ON "prg_terceiro_btr"("codigobtr");
CREATE UNIQUE INDEX "iprg_terceiro_btr2" USING 1 ON "prg_terceiro_btr"("cnpjcpf");
CREATE UNIQUE INDEX "iprg_terceiro_btr3" USING 2 ON "prg_terceiro_btr"("razsoc", "codigobtr");
CREATE UNIQUE INDEX "iprg_terceiro_btr4" USING 3 ON "prg_terceiro_btr"("apelido", "codigobtr");
CREATE UNIQUE INDEX "iprg_terceiro_btr5" USING 4 ON "prg_terceiro_btr"("personalidad", "cnpjcpf");
CREATE UNIQUE INDEX "iprg_terceiro_btr6" USING 5 ON "prg_terceiro_btr"("personalidad", "razsoc", "codigobtr");
CREATE UNIQUE INDEX "iprg_terceiro_btr7" USING 6 ON "prg_terceiro_btr"("personalidad", "codigobtr");
15- Execute o comando abaixo para criar índices e relacionamentos da tabela prg_terceiro_compl:
CREATE UNIQUE INDEX "iprg_terceiro_compl1" USING 1 ON "prg_terceiro_compl"("codigo");
ALTER TABLE prg_terceiro_compl ADD CONSTRAINT cterceiro_compl00 FOREIGN KEY ("fk_cnae_id") REFERENCES prg_cnae2007 ON UPDATE RESTRICT ON DELETE RESTRICT;
ALTER TABLE prg_terceiro_compl ADD CONSTRAINT cterceiro_compl01 FOREIGN KEY ("fk_cnae_ant") REFERENCES prg_cnae ON UPDATE RESTRICT ON DELETE RESTRICT;
16 - Execute o comando abaixo para criar relacionamentos da tabela prg_endereco:
ALTER TABLE prg_endereco ADD CONSTRAINT cendereco01 FOREIGN KEY ("fk_muni_id") REFERENCES prg_municipio ON UPDATE RESTRICT ON DELETE RESTRICT ;
ALTER TABLE prg_endereco ADD CONSTRAINT cendereco02 FOREIGN KEY ("fk_pais_id") REFERENCES prg_pais ON UPDATE RESTRICT ON DELETE RESTRICT ;
ALTER TABLE prg_endereco ADD CONSTRAINT cendereco03 FOREIGN KEY ("fk_terceiro_id") REFERENCES prg_terceiro_compl ON UPDATE RESTRICT ON DELETE RESTRICT ;
ALTER TABLE prg_endereco ADD CONSTRAINT cendereco00 FOREIGN KEY ("fk_sigla_uf") REFERENCES prg_uf
...
Scroll Only |
---|
(Não remova esse quadro) |
HTML |
---|
<div id="text-end"></div>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-193974933-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag2(){dataLayer.push(arguments);}
gtag2('js', new Date());
gtag2('config', 'UA-193974933-1');
function gtagevents (action,category) {
console.log(category + ':' + action);
gtag2('event',action,{event_category:category,event_label: document.title});
};
</script>
<script src="https://player.vimeo.com/api/player.js"></script>
<script>
(function(){
// RASTREIO DE USO DO VÍDEO
function gtagvideo(action){
gtagevents(action,'Video')
}
var iframe = document.querySelector('iframe');
var player = new Vimeo.Player(iframe);
var seeking = false;
var priorTime = 0;
var currentTime = 0;
var reportouFinalDoConteudo = false;
// se pausar o play é acionado também.
player.on('play', function(data) {
if(data.seconds == 0){
gtagvideo('video-iniciado');
}
priorTime = data.seconds;
});
player.on('ended', function() {
gtagvideo('video-finalizado');
});
//seeking e timeupdate são disparados juntos, logo o tempo dos 2 é atualizado também. Preciso garantir que a variavel starttime seja atualizada ordenadamente (sempre antes ou após o seeking).
// pra isso preciso setar uma variavel no timeupdate e ler no seeking para garantir a ordem. Se ela estiver false será alterada na próxima iteração.
player.on('seeking', function(data) {
seeking = true;
});
player.on('pause',function(data){
gtagvideo('video-pausado');
});
player.on('timeupdate', function(data) {
if(seeking){
if(currentTime < priorTime){
gtagvideo('video-voltando');
}
if(currentTime > priorTime){
gtagvideo('video-avancando')
}
seeking = false;
}
priorTime = currentTime;
currentTime = data.seconds;
var finalDoConteudo = (data.duration - data.seconds) < 5;
if(finalDoConteudo && !reportouFinalDoConteudo){
gtagvideo('conteudo-finalizado')
reportouFinalDoConteudo = true;
}
});
player.on('fullscreenchange', function() {
gtagvideo('video-fullscreen');
});
})();
</script>
<script>
// RASTREIO DO USO DE AUDIO
(function(){
function gtagaudio(action){
gtagevents(action,'Audio')
}
var audio = document.querySelector("audio");
var seeking = false;
var priorTime = 0;
var currentTime = 0;
audio.addEventListener('play',function(){
if(audio.currentTime == 0){
gtagaudio('audio-iniciado');
}
priorTime = audio.currentTime;
});
audio.addEventListener('ended',function(){
gtagaudio('audio-finalizado');
});
audio.addEventListener('pause',function(){
gtagaudio('audio-pausado');
});
audio.addEventListener('seeking', function(data) {
seeking = true;
});
audio.addEventListener('timeupdate', function(data) {
if(seeking){
if(currentTime < priorTime){
gtagaudio('audio-voltando');
}
if(currentTime > priorTime){
gtagaudio('audio-avancando')
}
seeking = false;
}
priorTime = currentTime;
currentTime = audio.currentTime;
});
})();
</script>
<script>
(function(){
var terminou = false;
//RASTREIO DE LEITURA ATÉ O FINAL DA PÁGINA
document.addEventListener('scroll',() => {
if(document.getElementById('text-end').getBoundingClientRect().top < window.innerHeight){
if(!terminou){
terminou = true;
gtagevents('artigo-lido','Pagina')
}
}else{
terminou = false;
}
});
})();
</script>
|