SET TERM ^ ;

CREATE OR ALTER trigger ttbcampanha_clientes_b02d for tbcampanha_clientes
active before delete position 0
AS
DECLARE VARIABLE TEM_CONTATO INTEGER;
DECLARE VARIABLE CLIENTE_CONTATADO VARCHAR(100);
BEGIN
     TEM_CONTATO = COALESCE((SELECT FIRST 1 T.ID FROM TBCAMPANHA_CLIENTES_CONTATO T WHERE T.CAMPANHA_CLIENTE_ID = OLD.ID), 0);
     CLIENTE_CONTATADO = COALESCE((
          SELECT FIRST 1
                 FN_LPAD(A.CODIGO, 6, '0')||' - '||A.RAZAOSOCIAL AS CLIENTE
          FROM TBCAMPANHA_CLIENTES C
          INNER JOIN TBCLIENTE A ON A.CODIGO = C.CLIENTE_ID
          WHERE C.CAMPANHA_ID = OLD.CAMPANHA_ID
     ),'');

     IF(TEM_CONTATO > 0) THEN
     BEGIN
          EXCEPTION "..." 'CLIENTE '||CLIENTE_CONTATADO||' POSSUI CONTATO(S), NAO É POSSIVEL FAZER SUA EXCLUSAO!';
     END
END^

SET TERM ; ^

