SET TERM ^ ;

CREATE trigger ttbpdv_cfe_b14i for tbpdv_cfe
active before insert position 14
AS
DECLARE VARIABLE GENERATOR_MFE VARCHAR(100);
BEGIN
    /* DEFINIR SESSAO PARA CUPOM FISCAL MFE */
    IF(NEW.PDV_CAIXA_ID > 0 AND NEW.TIPO = 0 AND NEW.OFFLINE_ID = 0) THEN
    BEGIN
        :GENERATOR_MFE = COALESCE((SELECT FIRST 1 M.GENERATOR_MFE FROM TBPDV_MFE_CAIXA T, TBPDV_MFE M WHERE T.PDV_MFE_ID = M.ID AND T.PDV_CAIXA_ID = NEW.PDV_CAIXA_ID), '');

        IF(:GENERATOR_MFE <> '') THEN
        BEGIN
            NEW.NUMERO_SESSAO_CFE = FN_EXECUTE_SQL('GEN_ID('||:GENERATOR_MFE||', 1)');
        END
    END
END
^

SET TERM ; ^

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(NEW.PDV_CAIXA_ID = 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 ; ^

