CREATE OR ALTER TRIGGER TTBPERFIL_B03D FOR TBPERFIL
ACTIVE BEFORE DELETE POSITION 1
AS
declare variable CONTROLEU INTEGER;
declare variable CONTROLE2 VARCHAR(50);
begin
   IF(OLD.TABELA = 'COR') THEN
   BEGIN
      CONTROLEU = COALESCE((SELECT FIRST 1 A.CODIGO FROM TBCOR A WHERE A.PERFIL = OLD.ID),0);
      IF(CONTROLEU > 0)THEN
      begin
          EXCEPTION "..."  'PERFIL JÁ UTILIZADO NO CADASTRO DE CORES, EXCLUSÃO CANCELADA!';
      end
   END

   IF(OLD.TABELA = 'GP') THEN
   BEGIN
      CONTROLEU = COALESCE((SELECT FIRST 1 B.ID FROM TBGP B WHERE B.PERFIL = OLD.ID),0);
      IF(CONTROLEU > 0)THEN
      begin
          EXCEPTION "..."  'PERFIL JÁ UTILIZADO NO CADASTRO DE GRUPOS DE PRODUCAO, EXCLUSÃO CANCELADA!';
      end
   END

   IF(OLD.TABELA = 'UP') THEN
   BEGIN
      CONTROLEU = COALESCE((SELECT FIRST 1 C.ID FROM TBUP C WHERE C.PERFIL = OLD.ID),0);
      IF(CONTROLEU > 0)THEN
      begin
          EXCEPTION "..."  'PERFIL JÁ UTILIZADO NO CADASTRO DE UNIDADES PRODUTIVAS, EXCLUSÃO CANCELADA!';
      end
   END 

   IF(OLD.TABELA = 'MOD') THEN
   BEGIN
      CONTROLEU = COALESCE((SELECT FIRST 1 D.CODIGO FROM TBMODELO D WHERE D.CLASSIFICACAO = OLD.ID),0);
      IF(CONTROLEU > 0)THEN
      begin
          EXCEPTION "..."  'PERFIL JÁ UTILIZADO NO CADASTRO DE MODELOS, EXCLUSÃO CANCELADA!';
      end
   END 

   IF(OLD.TABELA = 'NF') THEN
   BEGIN
      CONTROLEU = COALESCE((SELECT FIRST 1 E.CONTROLE FROM TBNFS E WHERE E.CLASSIFICACAO = OLD.ID),0);

      IF(CONTROLEU = 0)THEN
      BEGIN
         CONTROLEU = COALESCE((SELECT FIRST 1 E.CONTROLE FROM TBNFE E WHERE E.CLASSIFICACAO = OLD.ID),0);
      END

      IF(CONTROLEU > 0)THEN
      begin
          EXCEPTION "..."  'PERFIL JÁ UTILIZADO NOS DOCUMENTOS FISCAIS, EXCLUSÃO CANCELADA!';
      end
   END 

   IF(OLD.TABELA = 'PED') THEN
   BEGIN
      CONTROLEU = COALESCE((SELECT FIRST 1 F.PEDIDO FROM TBPEDIDO F WHERE F.CLASSIFICACAO = OLD.ID),0);
      IF(CONTROLEU > 0)THEN
      begin
          EXCEPTION "..."  'PERFIL JÁ UTILIZADO NOS PEDIDOS, EXCLUSÃO CANCELADA!';
      end
   END  

   IF(OLD.TABELA = 'SKU') THEN
   BEGIN
      CONTROLEU = COALESCE((SELECT FIRST 1 G.MODELO_ID FROM TBMODELO_BLOQUEIO G WHERE G.PERFIL = OLD.ID),0);
      IF(CONTROLEU > 0)THEN
      begin
          EXCEPTION "..."  'PERFIL JÁ UTILIZADO NOS SKUS DE MODELOS, EXCLUSÃO CANCELADA!';
      end
   END  

   IF(OLD.TABELA = 'OC') THEN
   BEGIN
      CONTROLEU = COALESCE((SELECT FIRST 1 H.OC FROM TBOC H WHERE H.CLASSIFICACAO = OLD.ID),0);
      IF(CONTROLEU > 0)THEN
      begin
          EXCEPTION "..."  'PERFIL JÁ UTILIZADO NAS ORDENS DE COMPRA, EXCLUSÃO CANCELADA!';
      end
   END    

   IF(OLD.TABELA = 'CONT') THEN
   BEGIN
      CONTROLE2 = COALESCE((SELECT FIRST 1 I.CONTA FROM TBCONTACONTABIL I WHERE I.PERFIL = OLD.ID),'');
      IF(CONTROLE2 <> '')THEN
      begin
          EXCEPTION "..."  'PERFIL JÁ UTILIZADO NAS CONTAS CONTABEIS, EXCLUSÃO CANCELADA!';
      end
   END

   IF(OLD.TABELA = 'BAN') THEN
   BEGIN
      CONTROLEU = COALESCE((SELECT FIRST 1 J.CODIGO FROM TBCAIXABANCO J WHERE J.CLASSIFICACAO = OLD.ID),0);
      IF(CONTROLEU > 0)THEN
      begin
          EXCEPTION "..."  'PERFIL JÁ UTILIZADO NOS CAIXAS/BANCOS, EXCLUSÃO CANCELADA!';
      end
   END
end