CREATE TRIGGER TTBREFERENCIA_LINHA_B02I FOR TBREFERENCIA_LINHA
ACTIVE BEFORE INSERT POSITION 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

    IF ( NEW.ID > 0) THEN
    BEGIN
        HISTORICO = HISTORICO||'Registro incluido';
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBREFERENCIA_LINHA',NEW.ID, HISTORICO);
    END
END;

CREATE TRIGGER TTBREFERENCIA_LINHA_B01U FOR TBREFERENCIA_LINHA
ACTIVE BEFORE UPDATE POSITION 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

    IF (OLD.DESCRICAO <> NEW.DESCRICAO) THEN
    BEGIN
        HISTORICO = HISTORICO||' Descricao no ID: '||OLD.ID||', Alterado: '|| OLD.DESCRICAO||'->'||NEW.DESCRICAO;
    END

    IF (OLD.PRODUTO_DESCRICAO <> NEW.PRODUTO_DESCRICAO) THEN
    BEGIN
        HISTORICO = HISTORICO||' Descricao Produto no ID: '||OLD.ID||', Alterada: '|| OLD.PRODUTO_DESCRICAO||'->'||NEW.PRODUTO_DESCRICAO;
    END

    IF (OLD.PRECO <> NEW.PRECO) THEN
    BEGIN
        HISTORICO = HISTORICO||' Preco no ID: '||OLD.ID||', Alterado: '|| OLD.PRECO||'->'||NEW.PRECO;
    END

    IF (OLD.VALOR_TRANSFERENCIA <> NEW.VALOR_TRANSFERENCIA) THEN
    BEGIN
        HISTORICO = HISTORICO||' Cargo no ID: '||OLD.ID||', Alterado: '|| OLD.VALOR_TRANSFERENCIA||'->'||NEW.VALOR_TRANSFERENCIA;
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBREFERENCIA_LINHA', NEW.ID, HISTORICO);
    END
END;

CREATE TRIGGER TTBREFERENCIA_LINHA_B01D FOR TBREFERENCIA_LINHA
ACTIVE BEFORE DELETE POSITION 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

    IF (OLD.ID > 0) THEN
    BEGIN
        HISTORICO = HISTORICO||'Registro Excluido: '||OLD.ID;
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBREFERENCIA_LINHA',OLD.ID, HISTORICO);
    END
END;