CREATE OR ALTER TRIGGER TTBEMPRESA_B04I FOR TBEMPRESA
ACTIVE BEFORE INSERT POSITION 0
AS
DECLARE VARIABLE ID VARCHAR(6);
DECLARE VARIABLE EMPRESA VARCHAR(20);
DECLARE VARIABLE TIPO_EMPRESA VARCHAR(20);

DECLARE VARIABLE PARAMETRO_USUARIO_193 CHAR(1);
DECLARE VARIABLE USUARIO_ID INTEGER;
DECLARE VARIABLE USUARIO_NOME VARCHAR(20);
BEGIN

    USUARIO_NOME = (SELECT MON$USER FROM MON$ATTACHMENTS WHERE MON$ATTACHMENT_ID = CURRENT_CONNECTION);
    USUARIO_ID = COALESCE((SELECT FIRST 1 U.CODIGO FROM TBUSUARIO U WHERE U.USUARIO = :USUARIO_NOME AND U.STATUS = '1'),0);
    PARAMETRO_USUARIO_193 = COALESCE((SELECT FIRST 1 C.VALOR_EXT FROM TBCONTROLE_USUARIO C WHERE C.ID = 193 AND C.USUARIO_ID = :USUARIO_ID),'0');

    IF (:PARAMETRO_USUARIO_193 <> '1') THEN
    BEGIN

        IF (NEW.UF <> 'EX') THEN
        BEGIN

            ID           = COALESCE((SELECT FIRST 1 FN_LPAD(E.CODIGO, 6, '0') FROM TBEMPRESA E WHERE E.CNPJ = NEW.CNPJ AND E.STATUS = '1' AND E.UF <> 'EX'),0);
            EMPRESA      = COALESCE((SELECT FIRST 1 E.NOMEFANTASIA FROM TBEMPRESA E WHERE E.CNPJ = NEW.CNPJ AND E.STATUS = '1' AND E.UF <> 'EX'),0);
            TIPO_EMPRESA = '';

            IF(NEW.HABILITA_CLIENTE = '1' AND TIPO_EMPRESA = '')THEN
            BEGIN
              :TIPO_EMPRESA = 'CLIENTE';
            END

            IF(NEW.HABILITA_FORNECEDOR = '1' AND TIPO_EMPRESA = '')THEN
            BEGIN
              :TIPO_EMPRESA = 'FORNECEDOR';
            END

            IF(NEW.HABILITA_REPRESENTANTE = '1' AND TIPO_EMPRESA = '')THEN
            BEGIN
              :TIPO_EMPRESA = 'REPRESENTANTE';
            END

            IF(NEW.HABILITA_TRANSPORTADORA = '1' AND TIPO_EMPRESA = '')THEN
            BEGIN
               :TIPO_EMPRESA = 'TRANSPORTADORA';
            END
        
            IF(ID > 0)THEN
            BEGIN
                EXCEPTION "..." :TIPO_EMPRESA||' JA CADASTRADO COM ESTE CPF/CNPJ. '||:TIPO_EMPRESA||': '||ID||' - '||EMPRESA;
            END

        END

    END
END