SET TERM ^ ;

CREATE OR ALTER trigger ttbcaixabanco_lanc_reg_b4i for tbcaixabanco_lancamento_reg
inactive before insert position 4
AS
DECLARE VARIABLE VDATA DATE;
BEGIN

    IF (NEW.NFE_PARCELAMENTO_CONTROLE > 0) THEN
    BEGIN
        VDATA = COALESCE((SELECT FIRST 1 A.DATA_ENTRADA FROM TBNFE_PARCELAMENTO A WHERE A.CONTROLE = NEW.NFE_PARCELAMENTO_CONTROLE), NULL);
    END

    IF (NEW.NFS_PARCELAMENTO_CONTROLE > 0) THEN
    BEGIN
        VDATA = COALESCE((SELECT FIRST 1 B.DATA_EMISSAO FROM TBNFS_PARCELAMENTO B WHERE B.CONTROLE = NEW.NFS_PARCELAMENTO_CONTROLE), NULL);
    END

    IF (VDATA > NEW.DATA AND COALESCE(FN_PARAMETRO('TBUSUARIO.REG_DOC_RETROATIVO', FN_CURRENT_USER_ID()), '0') = '0') THEN
    BEGIN

        EXCEPTION "..." 'ATENCAO, A DATA BASE DA PARCELA NAO PODE SER SUPERIOR A DATA DO LANCAMENTO! DATA DO LANCAMENTO: '|| FORMATDATE(NEW.DATA) ||' DOCUMENTO FISCAL: '|| NEW.DOCUMENTO_NUMERO ||' DATA BASE: '|| FORMATDATE(VDATA);

    END
END
^

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER trigger ttbgp_fluxo_b01i for tbgp_fluxo
active before insert position 2
AS
DECLARE VARIABLE HISTORICO VARCHAR(5000);
DECLARE VARIABLE DESCRICAO_FLUXO VARCHAR(500);
BEGIN

    :HISTORICO = '';

    :DESCRICAO_FLUXO = COALESCE((SELECT FIRST 1 F.DESCRICAO FROM TBFLUXO_PRODUCAO F WHERE F.ID = NEW.FLUXO_ID), '');

    IF (NEW.GP_ID > 0) THEN
    BEGIN
        :HISTORICO = :HISTORICO||' FLUXO INCLUIDO:'||NEW.FLUXO_ID||' - '||:DESCRICAO_FLUXO;
    END

    IF (:HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBESTEIRA', NEW.GP_ID, FN_ELIPSE(:HISTORICO, 500));
    END
end
^

SET TERM ; ^

