SET TERM ^ ;

CREATE OR ALTER trigger ttbempresa_grupo_contas_b03i for tbempresa_grupo_contas
active before insert position 1
AS
DECLARE VARIABLE EMPRESA_ID INTEGER;
DECLARE VARIABLE TIPO VARCHAR(1);
DECLARE VARIABLE RAZAOSOCIAL VARCHAR(100);
BEGIN

  FOR
      SELECT FIRST 1
        EMPRESA_ID
      FROM TBEMPRESA_GRUPO_CONTAS T
      WHERE T.EMPRESA_ID = NEW.EMPRESA_ID
      

   INTO
    :EMPRESA_ID

  DO BEGIN
    IF(EMPRESA_ID IS NOT NULL OR EMPRESA_ID > 0) THEN
        BEGIN
            TIPO = COALESCE((SELECT FIRST 1 E.TIPO FROM TBEMPRESA_GRUPO E WHERE E.ID = NEW.EMPRESA_GRUPO_ID), '');
            RAZAOSOCIAL = COALESCE((SELECT FIRST 1 EMP.RAZAOSOCIAL FROM TBEMPRESA EMP WHERE EMP.CODIGO = NEW.EMPRESA_ID), '');

            IF(TIPO = 'C') THEN
            BEGIN
                EXCEPTION "..."'CLIENTE '||FN_LPAD(NEW.EMPRESA_ID, 6, '0')||' - '||RAZAOSOCIAL||' JÁ VINCULADO A OUTRO GRUPO';
            END

            IF(TIPO = 'F') THEN
            BEGIN
                EXCEPTION "..."'FORNECEDOR '||FN_LPAD(NEW.EMPRESA_ID, 6, '0')||' - '||RAZAOSOCIAL||' JÁ VINCULADO A OUTRO GRUPO';
            END
        END
  END
END
^

SET TERM ; ^

