Breadcrumbs

Exclusão de notas

Introdução

Preciso excluir um documento NFCe que foi gerado indevidamente, como proceder?

Passo a passo

O uso deste script é para base de dados SQL Server

DECLARE @TEMPPROCESS TABLE
(
PROCESSID BIGINT,
PROCESSDATAID BIGINT
)
DECLARE @DOCID BIGINT, @NUMDOC BIGINT, @CNPJEMIT VARCHAR(15), @SERIE SMALLINT, @ALLOWDELETE BIT

SET @NUMDOC = 1 -- Número do documento
SET @CNPJEMIT = '01234567890123' -- CNPJ 
SET @SERIE = 201 -- Serie 
SET @ALLOWDELETE = 0 -- Indicador que o documento não foi inserido em Cold
SET @DOCID = (SELECT LOGDOCID FROM TBLOGDOCUMENT WITH (NOLOCK) WHERE DOCUMENTNUMBER = @NUMDOC AND SERIE = @SERIE AND CNPJEMIT = @CNPJEMIT AND ALLOWDELETE = @ALLOWDELETE)

DELETE FROM TBEVENT WITH (ROWLOCK) WHERE LOGDOCID = @DOCID
DELETE FROM TBLOGDOCMESSAGE WITH (ROWLOCK) WHERE LOGDOCID = @DOCID
DELETE FROM TBLOGDOCUMENTDETAIL WITH (ROWLOCK) WHERE LOGDOCID = @DOCID
DELETE FROM TBLOGDOCUMENTACTION WITH (ROWLOCK) WHERE LOGDOCID = @DOCID
DELETE FROM TBLOGFILTERDOCUMENT WITH (ROWLOCK) WHERE PROCESSID IN (SELECT PROCESSID FROM TBPROCESS WITH (NOLOCK) WHERE LOGDOCID = @DOCID)
DELETE FROM TBLOGDOCUMENTSTATUS WITH (ROWLOCK) WHERE LOGDOCID = @DOCID
INSERT INTO @TEMPPROCESS SELECT PROCESSID, PROCESSDATAID FROM TBPROCESS WHERE LOGDOCID = @DOCID
DELETE FROM TBLOGDOCUMENT WITH (ROWLOCK) WHERE LOGDOCID = @DOCID

Obs: A responsabilidade é de quem executa.

Outras informações

Fonte: Lauvir José Ribeiro Junior