SET TERM ^ ;

CREATE OR ALTER trigger ttbpdv_cfe_b01i for tbpdv_cfe
active before insert position 0
AS
BEGIN
    IF(NEW.ID IS NULL) THEN
    BEGIN
        NEW.ID = GEN_ID(GTBPDV_CFE,1);
    END

    IF(COALESCE(NEW.PDV_CAIXA_ID, 0) = 0) THEN
    BEGIN
        NEW.PDV_CAIXA_ID = COALESCE((SELECT FIRST 1 M.PDV_CAIXA_ID FROM TBPDV_MOVIMENTO_CAIXA M WHERE M.ID = NEW.PDV_MOVIMENTO_CAIXA_ID), 0);
    END

END
^

SET TERM ; ^

