Scroll Only |
---|
Autor do artigo: joao.fonseca |
Quando a falha ocorre?
Ao escriturar uma nota é identificado que os itens são exibidos de forma duplicada
2-Na rotina de escrituração faça a exclusão da nota com os itens duplicados
5-Efetue novamente a importação da nota com os itens duplicados. Caso a falha ainda ocorra efetue os passos abaixo.
6- Realize o acesso na base da empresa para verificar os registros na tabela lfs_nota_item_fcpAA (AA é o ano de movimento) que estão sem vínculos com a tabela notaitemEEEEAA.
Exibe os registros na tabela lfs_nota_item_fcpAA que não possuem vínculo com a notaitemEEEEAA
select ni.id, nifcp.*
from notaitemEEEEAA ni
right join lfs_nota_item_fcpAA nifcp on nifcp.nif_fk_nota_item = ni.id
where ni.id is null;
7- Identificando que existem registros na consulta acima é necessário realizar a remoção dos mesmos conforme script abaixo:
Remove os registros da tabela lfs_nota_item_fcp18 que não possuem vínculo com a notaitem017718
delete nifcp from notaitemEEEEAA ni
right join lfs_nota_item_fcpAA nifcp on nifcp.nif_fk_nota_item = ni.id
where ni.id is null;
Caso o problema persista mesmo executando os procedimentos acima pode ser outra tabela que apresente registros que não possuem vínculo com a tabela notaitemEEEEAA.
8- Acesse a tabela notaitem_icmsst_AA e verifique se ela possui a Constraint cnit_nis_fk_notaitAA criada, abaixo segue o comando de criação:
Cria a Constraint na tabela notaitem_icmsst_AA
alter table notaitem_icmsst_aa add constraint cnit_nis_fk_notait19
foreign key ("nis_fk_notaitem") references notaitemeeeeaa on update restrict on delete cascade;
Verifique se há registros sem vínculos na tabela notaitem_icmsst_AA com relação aos registros da tabela notaitemEEEEAA
Exibe os registros sem vínculos
select ni.id, nis.*
from notaitemEEEEAA ni
right join notaitem_icmsst_AA nis on nis.nis_fk_notaitem = ni.id
where ni.id is null;
9- Caso existam registros sem vínculos na tabela notaitem_icmsst_AA realize a remoção deles:
Remove os registros sem vinculos
delete nis from notaitemEEEEAA ni
right join notaitem_icmsst_AA nis on nis.nis_fk_notaitem = ni.id
where ni.id is null;
10- Após a execução dos procedimentos acima realize a exclusão das notas que apresentaram os itens repetidos e faça a escrituração/importação/integração novamente dessas notas.
11- Caso o problema persista mesmo executando os procedimentos acima pode ser devido a ausência da Constraint na tabela notaitem_icmsst_AA:
(AA - Ano de movimento em uso / EEEE - Código da Empresa)
--Abaixo o script de criação da Constraint na tabela notaitem_icmsst_AA
ALTER TABLE notaitem_icmsst_AA ADD CONSTRAINT cnit_nis_fk_notaitAA FOREIGN KEY ("nis_fk_notaitem") REFERENCES notaitemEEEEAA ON UPDATE RESTRICT ON DELETE CASCADE;
12- Caso a falha persista efetue o procedimento: A1037-Como efetuar a transferência da base de dados de uma empresa com movimentação fiscal
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> |