SET TERM ^ ;

CREATE OR ALTER trigger ttbpcm_registro_cha_msg_b01i for tbpcm_registro_chamado_msg
active before insert position 0
AS
DECLARE VARIABLE STATUS_CHAMADO CHAR(1);
BEGIN

    :STATUS_CHAMADO = COALESCE((SELECT FIRST 1 C.TIPO FROM TBPCM_REGISTRO_CHAMADO A, TBPCM_SETOR B, TBPCM_SETOR_STATUS C WHERE A.ID = NEW.REGISTRO_CHAMADO_ID AND B.ID = A.SETOR_ID AND C.SETOR_ID = B.ID AND A.STATUS = C.ID), '0');
    
    IF (NEW.REMETENTE = 1 AND :STATUS_CHAMADO = '3') THEN
    BEGIN
        EXCEPTION "..." 'CHAMADO JÁ FINALIZADO. INCLUSÃO NÃO AUTORIZADA!';
    END

    IF (NEW.ID IS NULL) THEN
        NEW.ID = GEN_ID(GTBPCM_REGISTRO_CHAMADO_MSG, 1);
END
^

SET TERM ; ^

