SET TERM ^ ;

CREATE OR ALTER trigger ttbfolhapagamento_b01i for tbfolhapagamento
active before insert position 0
AS
DECLARE VARIABLE FOLHAPAGAMENTO_ID INTEGER;
BEGIN
    
    FOLHAPAGAMENTO_ID = COALESCE((SELECT FIRST 1 A.ID FROM TBFOLHAPAGAMENTO A WHERE A.ESTABELECIMENTO_ID = NEW.ESTABELECIMENTO_ID AND A.DATA_FOLHA = NEW.DATA_FOLHA AND A.FOLPAG_CONTABIL_ID = NEW.FOLPAG_CONTABIL_ID), 0);

    IF (FOLHAPAGAMENTO_ID > 0) THEN
    BEGIN
        EXCEPTION "..." 'FOLHA:'||FN_LPAD(FOLHAPAGAMENTO_ID, 4, '0')||' JA REGISTRADA NO ESTABELECIMENTO, DATA E FOLHA DE PAGAMENTO INFORMADOS. OPERACAO ABORTADA!';
    END

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

SET TERM ; ^

