Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

chovlan

Não executa a mensagem do goto error (raiserror)

Recommended Posts

Boa Tarde Pessoal, conseguem me ajudar?

NO IF onde verifico se retorna algum registro, o select do do mesmo retorna 1 registro, porem não sai do select do iff, não entra no begin para ir para o goto error.

Grifado de vermelho

ALTER TRIGGER [DBO].[LXD_LOJA_VENDA] ON [DBO].[LOJA_VENDA] FOR DELETE NOT FOR REPLICATION AS
/* DELETE trigger on LOJA_VENDA */
/* default body for LXD_LOJA_VENDA */
BEGIN
DECLARE @NUMROWS INT,
@NULLCNT INT,
@VALIDCNT INT,
@INSCODIGO_FILIAL CHAR(6),
@INSTICKET CHAR(8),
@INSDATA_VENDA DATETIME,
@ERRNO INT,
@ERRMSG VARCHAR(255),
@USUARIOS_AUT VARCHAR(MAX)
SELECT @NUMROWS = @@ROWCOUNT
/*-- Verifica Movimentacao Estoque PA ---------------------------------------------------------------------------------*/
DECLARE @XDATASALDO DATETIME
SELECT @XDATASALDO='18000101'
SELECT @XDATASALDO=ISNULL(CONVERT(DATETIME,VALOR_ATUAL,103),'18000101')
FROM PARAMETROS
WHERE PARAMETRO='DATA_BLOQUEIO_MOV_PA'
IF
(
SELECT Count(*)
FROM DELETED
WHERE DATA_VENDA <= @XDATASALDO ) > 0
BEGIN
SELECT @ERRNO=30002,
@ERRMSG='Nao e possivel Excluir Movimentacao de Estoque anterior a '+CONVERT(CHAR(10),@XDATASALDO,103)+' !' GOTO ERROR
END
--declare @USUARIOS_AUT VARCHAR(MAX), @ERRMSG VARCHAR(MAX), @ERRNO INT
IF Suser_sname() NOT IN ('SA')
BEGIN
--RAISERROR('NÃO TEM PERMISSAO',0,42)
IF EXISTS
(
SELECT *
FROM DELETED,
LOJA_VENDA_PRODUTO,
ESTOQUE_PRODUTOS,
LOJAS_VAREJO
WHERE DELETED.CODIGO_FILIAL = LOJA_VENDA_PRODUTO.CODIGO_FILIAL
AND DELETED.TICKET = LOJA_VENDA_PRODUTO.TICKET
AND DELETED.DATA_VENDA = LOJA_VENDA_PRODUTO.DATA_VENDA
AND DELETED.CODIGO_FILIAL=LOJAS_VAREJO.CODIGO_FILIAL
AND ESTOQUE_PRODUTOS.FILIAL=LOJAS_VAREJO.FILIAL
AND ESTOQUE_PRODUTOS.PRODUTO=LOJA_VENDA_PRODUTO.PRODUTO
AND ESTOQUE_PRODUTOS.COR_PRODUTO=LOJA_VENDA_PRODUTO.COR_PRODUTO
AND DELETED.DATA_VENDA < ESTOQUE_PRODUTOS.DATA_AJUSTE )
OR
EXISTS
(
SELECT *
FROM DELETED,
LOJA_VENDA_TROCA,
ESTOQUE_PRODUTOS,
LOJAS_VAREJO
WHERE DELETED.CODIGO_FILIAL = LOJA_VENDA_TROCA.CODIGO_FILIAL
AND DELETED.TICKET = LOJA_VENDA_TROCA.TICKET
AND DELETED.DATA_VENDA = LOJA_VENDA_TROCA.DATA_VENDA
AND DELETED.CODIGO_FILIAL=LOJAS_VAREJO.CODIGO_FILIAL
AND ESTOQUE_PRODUTOS.FILIAL=LOJAS_VAREJO.FILIAL
AND ESTOQUE_PRODUTOS.PRODUTO=LOJA_VENDA_TROCA.PRODUTO
AND ESTOQUE_PRODUTOS.COR_PRODUTO=LOJA_VENDA_TROCA.COR_PRODUTO
AND DELETED.DATA_VENDA < ESTOQUE_PRODUTOS.DATA_AJUSTE )
BEGIN
SELECT @ERRNO=30002,
@ERRMSG='NAO E POSSIVEL EXCLUIR MOVIMENTACAO DE ESTOQUE ANTERIOR AO AJUSTE !' GOTO ERROR
END
END

ELSE
--SELECT * FROM TT_REPROCES_ESTOQUE_PROD
BEGIN
--RAISERROR('TEM PERMISSAO',0,42)
INSERT TT_REPROCES_ESTOQUE_PROD
SELECT ESTOQUE_PRODUTOS.PRODUTO,
DELETED.CODIGO_FILIAL,
DELETED.DATA_VENDA,
ESTOQUE_PRODUTOS.DATA_AJUSTE,
NULL DATA_REPROSS
FROM DELETED,
LOJA_VENDA_PRODUTO,
ESTOQUE_PRODUTOS,
LOJAS_VAREJO
WHERE DELETED.CODIGO_FILIAL = LOJA_VENDA_PRODUTO.CODIGO_FILIAL
AND DELETED.TICKET = LOJA_VENDA_PRODUTO.TICKET
AND DELETED.DATA_VENDA = LOJA_VENDA_PRODUTO.DATA_VENDA
AND DELETED.CODIGO_FILIAL=LOJAS_VAREJO.CODIGO_FILIAL
AND ESTOQUE_PRODUTOS.FILIAL=LOJAS_VAREJO.FILIAL
AND ESTOQUE_PRODUTOS.PRODUTO=LOJA_VENDA_PRODUTO.PRODUTO
AND ESTOQUE_PRODUTOS.COR_PRODUTO=LOJA_VENDA_PRODUTO.COR_PRODUTO
AND DELETED.DATA_VENDA < ESTOQUE_PRODUTOS.DATA_AJUSTE
UNION
SELECT ESTOQUE_PRODUTOS.PRODUTO,
DELETED.CODIGO_FILIAL,
DELETED.DATA_VENDA,
ESTOQUE_PRODUTOS.DATA_AJUSTE,
NULL DATA_REPROSS
FROM DELETED,
LOJA_VENDA_TROCA,
ESTOQUE_PRODUTOS,
LOJAS_VAREJO
WHERE DELETED.CODIGO_FILIAL = LOJA_VENDA_TROCA.CODIGO_FILIAL
AND DELETED.TICKET = LOJA_VENDA_TROCA.TICKET
AND DELETED.DATA_VENDA = LOJA_VENDA_TROCA.DATA_VENDA
AND DELETED.CODIGO_FILIAL=LOJAS_VAREJO.CODIGO_FILIAL
AND ESTOQUE_PRODUTOS.FILIAL=LOJAS_VAREJO.FILIAL
AND ESTOQUE_PRODUTOS.PRODUTO=LOJA_VENDA_TROCA.PRODUTO
AND ESTOQUE_PRODUTOS.COR_PRODUTO=LOJA_VENDA_TROCA.COR_PRODUTO
AND DELETED.DATA_VENDA < ESTOQUE_PRODUTOS.DATA_AJUSTE
END
/*---------------------------------------------------------------------------------------------------------------------*/
/* LOJA_VENDA R/2684 LOJA_VENDA_VENDEDORES ON PARENT DELETE CASCADE */
DELETE LOJA_VENDA_VENDEDORES
FROM LOJA_VENDA_VENDEDORES,
DELETED
WHERE LOJA_VENDA_VENDEDORES.CODIGO_FILIAL = DELETED.CODIGO_FILIAL
AND LOJA_VENDA_VENDEDORES.TICKET = DELETED.TICKET
AND LOJA_VENDA_VENDEDORES.DATA_VENDA = DELETED.DATA_VENDA
/* LOJA_VENDA R/1222 LOJA_VENDA_PRODUTO ON PARENT DELETE CASCADE */
DELETE LOJA_VENDA_PRODUTO
FROM LOJA_VENDA_PRODUTO,
DELETED
WHERE LOJA_VENDA_PRODUTO.CODIGO_FILIAL = DELETED.CODIGO_FILIAL
AND LOJA_VENDA_PRODUTO.TICKET = DELETED.TICKET
AND LOJA_VENDA_PRODUTO.DATA_VENDA = DELETED.DATA_VENDA
/* LOJA_VENDA R/975 LOJA_VENDA_TROCA ON PARENT DELETE CASCADE */
DELETE LOJA_VENDA_TROCA
FROM LOJA_VENDA_TROCA,
DELETED
WHERE LOJA_VENDA_TROCA.CODIGO_FILIAL = DELETED.CODIGO_FILIAL
AND LOJA_VENDA_TROCA.TICKET = DELETED.TICKET
AND LOJA_VENDA_TROCA.DATA_VENDA = DELETED.DATA_VENDA
RETURN ERROR:
RAISERROR @ERRNO @ERRMSG
ROLLBACK TRANSACTION
END

ALTER TRIGGER [DBO].[LXD_LOJA_VENDA] ON [DBO].[LOJA_VENDA] FOR DELETE NOT FOR REPLICATION AS
/* DELETE trigger on LOJA_VENDA */
/* default body for LXD_LOJA_VENDA */
BEGIN
DECLARE @NUMROWS INT,
@NULLCNT INT,
@VALIDCNT INT,
@INSCODIGO_FILIAL CHAR(6),
@INSTICKET CHAR(8),
@INSDATA_VENDA DATETIME,
@ERRNO INT,
@ERRMSG VARCHAR(255),
@USUARIOS_AUT VARCHAR(MAX)
SELECT @NUMROWS = @@ROWCOUNT
/*-- Verifica Movimentacao Estoque PA ---------------------------------------------------------------------------------*/
DECLARE @XDATASALDO DATETIME
SELECT @XDATASALDO='18000101'
SELECT @XDATASALDO=ISNULL(CONVERT(DATETIME,VALOR_ATUAL,103),'18000101')
FROM PARAMETROS
WHERE PARAMETRO='DATA_BLOQUEIO_MOV_PA'
IF
(
SELECT Count(*)
FROM DELETED
WHERE DATA_VENDA <= @XDATASALDO ) > 0
BEGIN
SELECT @ERRNO=30002,
@ERRMSG='Nao e possivel Excluir Movimentacao de Estoque anterior a '+CONVERT(CHAR(10),@XDATASALDO,103)+' !' GOTO ERROR
END
--declare @USUARIOS_AUT VARCHAR(MAX), @ERRMSG VARCHAR(MAX), @ERRNO INT
IF Suser_sname() NOT IN ('SA')
BEGIN
--RAISERROR('NÃO TEM PERMISSAO',0,42)
IF EXISTS
(
SELECT *
FROM DELETED,
LOJA_VENDA_PRODUTO,
ESTOQUE_PRODUTOS,
LOJAS_VAREJO
WHERE DELETED.CODIGO_FILIAL = LOJA_VENDA_PRODUTO.CODIGO_FILIAL
AND DELETED.TICKET = LOJA_VENDA_PRODUTO.TICKET
AND DELETED.DATA_VENDA = LOJA_VENDA_PRODUTO.DATA_VENDA
AND DELETED.CODIGO_FILIAL=LOJAS_VAREJO.CODIGO_FILIAL
AND ESTOQUE_PRODUTOS.FILIAL=LOJAS_VAREJO.FILIAL
AND ESTOQUE_PRODUTOS.PRODUTO=LOJA_VENDA_PRODUTO.PRODUTO
AND ESTOQUE_PRODUTOS.COR_PRODUTO=LOJA_VENDA_PRODUTO.COR_PRODUTO
AND DELETED.DATA_VENDA < ESTOQUE_PRODUTOS.DATA_AJUSTE )
OR
EXISTS
(
SELECT *
FROM DELETED,
LOJA_VENDA_TROCA,
ESTOQUE_PRODUTOS,
LOJAS_VAREJO
WHERE DELETED.CODIGO_FILIAL = LOJA_VENDA_TROCA.CODIGO_FILIAL
AND DELETED.TICKET = LOJA_VENDA_TROCA.TICKET
AND DELETED.DATA_VENDA = LOJA_VENDA_TROCA.DATA_VENDA
AND DELETED.CODIGO_FILIAL=LOJAS_VAREJO.CODIGO_FILIAL
AND ESTOQUE_PRODUTOS.FILIAL=LOJAS_VAREJO.FILIAL
AND ESTOQUE_PRODUTOS.PRODUTO=LOJA_VENDA_TROCA.PRODUTO
AND ESTOQUE_PRODUTOS.COR_PRODUTO=LOJA_VENDA_TROCA.COR_PRODUTO
AND DELETED.DATA_VENDA < ESTOQUE_PRODUTOS.DATA_AJUSTE )
BEGIN
SELECT @ERRNO=30002,
@ERRMSG='NAO E POSSIVEL EXCLUIR MOVIMENTACAO DE ESTOQUE ANTERIOR AO AJUSTE !' GOTO ERROR
END
END
ELSE
--SELECT * FROM TT_REPROCES_ESTOQUE_PROD
BEGIN
--RAISERROR('TEM PERMISSAO',0,42)
INSERT TT_REPROCES_ESTOQUE_PROD
SELECT ESTOQUE_PRODUTOS.PRODUTO,
DELETED.CODIGO_FILIAL,
DELETED.DATA_VENDA,
ESTOQUE_PRODUTOS.DATA_AJUSTE,
NULL DATA_REPROSS
FROM DELETED,
LOJA_VENDA_PRODUTO,
ESTOQUE_PRODUTOS,
LOJAS_VAREJO
WHERE DELETED.CODIGO_FILIAL = LOJA_VENDA_PRODUTO.CODIGO_FILIAL
AND DELETED.TICKET = LOJA_VENDA_PRODUTO.TICKET
AND DELETED.DATA_VENDA = LOJA_VENDA_PRODUTO.DATA_VENDA
AND DELETED.CODIGO_FILIAL=LOJAS_VAREJO.CODIGO_FILIAL
AND ESTOQUE_PRODUTOS.FILIAL=LOJAS_VAREJO.FILIAL
AND ESTOQUE_PRODUTOS.PRODUTO=LOJA_VENDA_PRODUTO.PRODUTO
AND ESTOQUE_PRODUTOS.COR_PRODUTO=LOJA_VENDA_PRODUTO.COR_PRODUTO
AND DELETED.DATA_VENDA < ESTOQUE_PRODUTOS.DATA_AJUSTE
UNION
SELECT ESTOQUE_PRODUTOS.PRODUTO,
DELETED.CODIGO_FILIAL,
DELETED.DATA_VENDA,
ESTOQUE_PRODUTOS.DATA_AJUSTE,
NULL DATA_REPROSS
FROM DELETED,
LOJA_VENDA_TROCA,
ESTOQUE_PRODUTOS,
LOJAS_VAREJO
WHERE DELETED.CODIGO_FILIAL = LOJA_VENDA_TROCA.CODIGO_FILIAL
AND DELETED.TICKET = LOJA_VENDA_TROCA.TICKET
AND DELETED.DATA_VENDA = LOJA_VENDA_TROCA.DATA_VENDA
AND DELETED.CODIGO_FILIAL=LOJAS_VAREJO.CODIGO_FILIAL
AND ESTOQUE_PRODUTOS.FILIAL=LOJAS_VAREJO.FILIAL
AND ESTOQUE_PRODUTOS.PRODUTO=LOJA_VENDA_TROCA.PRODUTO
AND ESTOQUE_PRODUTOS.COR_PRODUTO=LOJA_VENDA_TROCA.COR_PRODUTO
AND DELETED.DATA_VENDA < ESTOQUE_PRODUTOS.DATA_AJUSTE
END
/*---------------------------------------------------------------------------------------------------------------------*/
/* LOJA_VENDA R/2684 LOJA_VENDA_VENDEDORES ON PARENT DELETE CASCADE */
DELETE LOJA_VENDA_VENDEDORES
FROM LOJA_VENDA_VENDEDORES,
DELETED
WHERE LOJA_VENDA_VENDEDORES.CODIGO_FILIAL = DELETED.CODIGO_FILIAL
AND LOJA_VENDA_VENDEDORES.TICKET = DELETED.TICKET
AND LOJA_VENDA_VENDEDORES.DATA_VENDA = DELETED.DATA_VENDA
/* LOJA_VENDA R/1222 LOJA_VENDA_PRODUTO ON PARENT DELETE CASCADE */
DELETE LOJA_VENDA_PRODUTO
FROM LOJA_VENDA_PRODUTO,
DELETED
WHERE LOJA_VENDA_PRODUTO.CODIGO_FILIAL = DELETED.CODIGO_FILIAL
AND LOJA_VENDA_PRODUTO.TICKET = DELETED.TICKET
AND LOJA_VENDA_PRODUTO.DATA_VENDA = DELETED.DATA_VENDA
/* LOJA_VENDA R/975 LOJA_VENDA_TROCA ON PARENT DELETE CASCADE */
DELETE LOJA_VENDA_TROCA
FROM LOJA_VENDA_TROCA,
DELETED
WHERE LOJA_VENDA_TROCA.CODIGO_FILIAL = DELETED.CODIGO_FILIAL
AND LOJA_VENDA_TROCA.TICKET = DELETED.TICKET
AND LOJA_VENDA_TROCA.DATA_VENDA = DELETED.DATA_VENDA
RETURN ERROR:
RAISERROR @ERRNO @ERRMSG
ROLLBACK TRANSACTION
END

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.