SET TERM ^ ;

CREATE OR ALTER trigger ttbempresa_b04i for tbempresa
active before insert position 0
AS
DECLARE VARIABLE ID VARCHAR(10);
DECLARE VARIABLE 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);
        
            IF(ID > 0)THEN
            BEGIN
                EXCEPTION "..." 'CLIENTE JA CADASTRADO COM ESTE CPF/CNPJ. CLIENTE: '||ID||' - '||EMPRESA;
            END

        END

    END
END
^

SET TERM ; ^

UPDATE OR INSERT INTO TBPARAMETRO (TABELA, CODIGO, DESCRICAO, VALOR, OBSERVACAO, GRUPO, DATAHORA, USUARIO_ID)
                           VALUES ('SISTEMA', 'VALIDADE_MASCARA', 'tempo de validade das mascaras', '3', 'TEMPO DE VALIDADE DAS MASCARAS', 'WEB22120', '2021-06-15 15:53:34', 186)
                         MATCHING (TABELA, CODIGO);

