A792-Itens apresentando várias vezes na Escrituração após integração do Analisador Fiscal
Sumário
Sistema: Gerenciador de Aplicativos Prosoft (GAP)
Contexto: Após a integração de notas do Analisador Fiscal para o Fiscal existem notas que apresentam os itens em duplicidade e ao salvar a nota manualmente ocorre btrieve error 5 na tabela notaitemEEEEAA.
Informações Adicionais: Não se aplica.
Resolução
Esta falha ocorre devido a opção do integrity enforced estar desativa nas DSNs das empresas no Pervasive, com isso ao realizar a remoção de notas fiscais ficam gravadas na tabela lfs_nota_item_fcpAA registros sem vínculos com a tabela notaitemEEEEAA.
Para correção da falha deverá ser executados os seguintes procedimentos:
1- Ative o Integrity Enforced para as DSNS das Empresas.
2- 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;
3- 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.
1- 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;
2- 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;
3- 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;
4- 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.
5- 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;
6- Caso problema persista mesmo executando os procedimentos acima. Verifique se há registros sem vínculos na tabela lfs_nota_item_compl com relação aos registros da tabela notaitemEEEEAA
select ni.id, ntic.*
from notaitemEEEEAA ni
right join lfs_nota_item_compl ntic on ntic.ntic_fk_nota_item = ni.id
where ni.id is null;
7- Caso existam registros sem vínculos na tabela lfs_nota_item_compl realize a remoção deles:
Remove os registros sem vínculos
delete ntic from notaitemEEEEAA ni
right join lfs_nota_item_compl ntic on ntic.ntic_fk_nota_item = ni.id
where ni.id is null;