DECLARE @DATA DATETIME


SELECT @DATA = CONVERT(datetime,'01/01/2018',103)




DECLARE @TRANSACAO_ESTOQUE TABLE(COD_TRANSACAO_ESTOQUE INT NOT NULL PRIMARY KEY)


INSERT INTO @TRANSACAO_ESTOQUE SELECT T.COD_TRANSACAO_ESTOQUE FROM TRANSACAO_ESTOQUE T WHERE T.DATA < @DATA




DELETE I


FROM TRANSACAO_ESTOQUE_ITEM I


INNER JOIN @TRANSACAO_ESTOQUE T ON T.COD_TRANSACAO_ESTOQUE = I.COD_TRANSACAO_ESTOQUE




DELETE S


FROM TRANSACAO_ESTOQUE_STATUS S


INNER JOIN @TRANSACAO_ESTOQUE T ON T.COD_TRANSACAO_ESTOQUE = S.COD_TRANSACAO_ESTOQUE




DELETE S


FROM TRANSACAO_ESTOQUE_TRANSF S


INNER JOIN @TRANSACAO_ESTOQUE T ON T.COD_TRANSACAO_ESTOQUE = S.COD_TRANSACAO_ESTOQUE




DELETE S


FROM TRANSACAO_ESTOQUE_MOVIMENTO S


INNER JOIN @TRANSACAO_ESTOQUE T ON T.COD_TRANSACAO_ESTOQUE = S.COD_TRANSACAO_ESTOQUE




DELETE S


FROM TRANSACAO_ESTOQUE S


INNER JOIN @TRANSACAO_ESTOQUE T ON T.COD_TRANSACAO_ESTOQUE = S.COD_TRANSACAO_ESTOQUE




DECLARE @CAIXA_PDV TABLE(COD_CAIXA_PDV INT NOT NULL PRIMARY KEY)


INSERT INTO @CAIXA_PDV SELECT T.COD_CAIXA_PDV FROM CAIXA_PDV T WHERE T.DATA < @DATA




DELETE S


FROM CAIXA_PDV_MOVIMENTO S


INNER JOIN @CAIXA_PDV T ON T.COD_CAIXA_PDV = S.COD_CAIXA_PDV




DELETE S


FROM CAIXA_PDV S


INNER JOIN @CAIXA_PDV T ON T.COD_CAIXA_PDV = S.COD_CAIXA_PDV




DECLARE @MOVIVIMENTO TABLE(COD_MOVIMENTO INT NOT NULL PRIMARY KEY)


INSERT INTO @MOVIVIMENTO SELECT T.COD_MOVIMENTO FROM MOVIMENTO T WHERE T.DATA_LANCAMENTO < @DATA




DELETE S


FROM DOCUMENTO S


INNER JOIN NFE N ON N.COD_GPR_DOCUMENTO = S.COD_GPR_DOCUMENTO


INNER JOIN @MOVIVIMENTO T ON T.COD_MOVIMENTO = N.COD_MOVIMENTO




DELETE S


FROM DOCUMENTO S


INNER JOIN NFE N ON N.COD_CANCELAMENTO = S.COD_GPR_DOCUMENTO


INNER JOIN @MOVIVIMENTO T ON T.COD_MOVIMENTO = N.COD_MOVIMENTO




DELETE FROM GPR_DOCUMENTO WHERE COD_GPR_DOCUMENTO NOT IN(SELECT COD_GPR_DOCUMENTO FROM DOCUMENTO)



update NFE SET COD_GPR_DOCUMENTO = NULL WHERE COD_GPR_DOCUMENTO NOT IN(SELECT COD_GPR_DOCUMENTO FROM DOCUMENTO)

update NFE SET COD_CANCELAMENTO = NULL WHERE COD_CANCELAMENTO NOT IN(SELECT COD_GPR_DOCUMENTO FROM DOCUMENTO)

update PRODUTO_SERVICO SET COD_GPR_DOCUMENTO = NULL WHERE COD_GPR_DOCUMENTO NOT IN(SELECT COD_GPR_DOCUMENTO FROM DOCUMENTO)


DELETE S


FROM VENDA_CARTAO S


INNER JOIN @MOVIVIMENTO T ON T.COD_MOVIMENTO = S.COD_MOVIMENTO




DELETE S


FROM TRANSACAO_ESTOQUE_MOVIMENTO S


INNER JOIN @MOVIVIMENTO T ON T.COD_MOVIMENTO = S.COD_MOVIMENTO




DELETE S


FROM TITULO_MOVIMENTO S


INNER JOIN @MOVIVIMENTO T ON T.COD_MOVIMENTO = S.COD_MOVIMENTO




DELETE S


FROM NFE_REF S


INNER JOIN @MOVIVIMENTO T ON T.COD_MOVIMENTO = S.COD_MOVIMENTO




DELETE S


FROM HISTORICO_NFE S


INNER JOIN @MOVIVIMENTO T ON T.COD_MOVIMENTO = S.COD_MOVIMENTO



DELETE S

FROM CARTA_CORRECAO_NFE S

INNER JOIN @MOVIVIMENTO T ON T.COD_MOVIMENTO = S.COD_MOVIMENTO


DELETE S

FROM NFE S

INNER JOIN @MOVIVIMENTO T ON T.COD_MOVIMENTO = S.COD_MOVIMENTO


DELETE S


FROM VENDA S


INNER JOIN @MOVIVIMENTO T ON T.COD_MOVIMENTO = S.COD_MOVIMENTO






DELETE S


FROM NF_COMPRA S


INNER JOIN @MOVIVIMENTO T ON T.COD_MOVIMENTO = S.COD_MOVIMENTO




DELETE S


FROM MOVIMENTO_POS_VENDA S


INNER JOIN @MOVIVIMENTO T ON T.COD_MOVIMENTO = S.COD_MOVIMENTO




DELETE S


FROM MOVIMENTO_ITEM S


INNER JOIN @MOVIVIMENTO T ON T.COD_MOVIMENTO = S.COD_MOVIMENTO






DELETE S


FROM MOVIMENTO_FINANCEIRO S


INNER JOIN @MOVIVIMENTO T ON T.COD_MOVIMENTO = S.COD_MOVIMENTO




DELETE S


FROM MOVIMENTO_CONTA_TRANSACAO S


INNER JOIN @MOVIVIMENTO T ON T.COD_MOVIMENTO = S.COD_MOVIMENTO




DELETE S


FROM MOVIMENTO_CONCILIACAO S


INNER JOIN @MOVIVIMENTO T ON T.COD_MOVIMENTO = S.COD_MOVIMENTO




DELETE S


FROM FECHAMENTO_MOVIMENTO S


INNER JOIN @MOVIVIMENTO T ON T.COD_MOVIMENTO = S.COD_MOVIMENTO






DELETE S


FROM ENTREGA S


INNER JOIN @MOVIVIMENTO T ON T.COD_MOVIMENTO = S.COD_MOVIMENTO




DELETE S

FROM MOVIMENTO S

INNER JOIN @MOVIVIMENTO T ON T.COD_MOVIMENTO = S.COD_MOVIMENTO




DELETE FROM AUDITORIA WHERE DATA < @DATA