SET TERM ^ ;

CREATE OR ALTER TRIGGER TTBTABELA_PRECO_B01D FOR TBTABELA_PRECO
ACTIVE BEFORE DELETE POSITION 0
AS
DECLARE VARIABLE COUNT_REGISTERS_MODELO INTEGER;
DECLARE VARIABLE COUNT_REGISTERS_PRODUTO INTEGER;
DECLARE VARIABLE COUNT_REGISTERS_PREPEDIDO INTEGER;

BEGIN

    SELECT COUNT(T.ID) FROM TBMODELO_PRECO T WHERE T.TABELA_ID = OLD.ID INTO :COUNT_REGISTERS_MODELO;
    
    IF(:COUNT_REGISTERS_MODELO > 0) THEN
    BEGIN
        EXCEPTION "..." 'TABELA DE PRECO JA VINCULADA EM MODELOS. EXCLUSAO CANCELADA!';
    END

    SELECT COUNT(T.ID) FROM TBPRODUTO_PRECO T WHERE T.TABELA_ID = OLD.ID INTO :COUNT_REGISTERS_PRODUTO;
    IF(:COUNT_REGISTERS_PRODUTO > 0) THEN
    BEGIN
        EXCEPTION "..." 'TABELA DE PRECO JA VINCULADA EM PRODUTOS. EXCLUSAO CANCELADA!';
    END

    SELECT COUNT(ZT.ID) FROM TBCLIENTE_MODELO_PRECO ZT WHERE ZT.TABELA_ID = OLD.ID INTO :COUNT_REGISTERS_MODELO;

    --EXCEPTION "..." ' ENCONTRADOS '||:COUNT_REGISTERS_MODELO;
    
    IF(:COUNT_REGISTERS_MODELO > 0) THEN
    BEGIN
        EXCEPTION "..." 'TABELA DE PRECO JA VINCULADA EM MODELOS. EXCLUSAO CANCELADA!';
    END

    SELECT COUNT(XT.ID) FROM TBCLIENTE_PRODUTO_PRECO XT WHERE XT.TABELA_ID = OLD.ID INTO :COUNT_REGISTERS_PRODUTO;
    --EXCEPTION "..." ' ENCONTRADOS '||:COUNT_REGISTERS_PRODUTO;
    IF(:COUNT_REGISTERS_PRODUTO > 0) THEN
    BEGIN
        EXCEPTION "..." 'TABELA DE PRECO JA VINCULADA EM PRODUTOS. EXCLUSAO CANCELADA!';
    END

    SELECT COUNT(XT.ID) FROM TBCLIENTE_SUBTIPO XT WHERE XT.PRECO_NF_CF_ID = OLD.ID INTO :COUNT_REGISTERS_PREPEDIDO;
    --EXCEPTION "..." ' ENCONTRADOS '||:COUNT_REGISTERS_PRODUTO;
    IF(:COUNT_REGISTERS_PREPEDIDO > 0) THEN
    BEGIN
        EXCEPTION "..." 'TABELA DE PRECO JA VINCULADA EM TIPOS DE PEDIDOS. EXCLUSAO CANCELADA!';
    END 

    SELECT COUNT(XT.ID) FROM TBPDV_CONFERENCIA XT WHERE XT.TABELA_PRECO_ID = OLD.ID INTO :COUNT_REGISTERS_PREPEDIDO;
    --EXCEPTION "..." ' ENCONTRADOS '||:COUNT_REGISTERS_PRODUTO;
    IF(:COUNT_REGISTERS_PREPEDIDO > 0) THEN
    BEGIN
        EXCEPTION "..." 'TABELA DE PRECO JA VINCULADA EM PRE PEDIDOS. EXCLUSAO CANCELADA!';
    END 

    SELECT COUNT(XT.PEDIDO) FROM TBPEDIDO XT WHERE XT.PRECO_NF_CF_ID = OLD.ID INTO :COUNT_REGISTERS_PREPEDIDO;
    --EXCEPTION "..." ' ENCONTRADOS '||:COUNT_REGISTERS_PRODUTO;
    IF(:COUNT_REGISTERS_PREPEDIDO > 0) THEN
    BEGIN
        EXCEPTION "..." 'TABELA DE PRECO JA VINCULADA EM PEDIDOS. EXCLUSAO CANCELADA!';
    END 

    SELECT COUNT(XT.ID) FROM TBPDV_CFE XT WHERE XT.TABELA_PRECO_ID = OLD.ID INTO :COUNT_REGISTERS_PREPEDIDO;
    --EXCEPTION "..." ' ENCONTRADOS '||:COUNT_REGISTERS_PRODUTO;
    IF(:COUNT_REGISTERS_PREPEDIDO > 0) THEN
    BEGIN
        EXCEPTION "..." 'TABELA DE PRECO JA VINCULADA EM DOCUMENTOS FISCAIS VIA PDV. EXCLUSAO CANCELADA!';
    END

    SELECT COUNT(XT.ID) FROM TBPDV_CAIXA_PRECO XT WHERE XT.TABELA_PRECO_ID = OLD.ID INTO :COUNT_REGISTERS_PREPEDIDO;
    --EXCEPTION "..." ' ENCONTRADOS '||:COUNT_REGISTERS_PRODUTO;
    IF(:COUNT_REGISTERS_PREPEDIDO > 0) THEN
    BEGIN
        EXCEPTION "..." 'TABELA DE PRECO JA VINCULADA EM MOVIMENTACOES DO PDV. EXCLUSAO CANCELADA!';
    END
END
^

SET TERM ; ^

