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

    HISTORICO = '';

    IF ( NEW.ID > 0) THEN
    BEGIN
        HISTORICO = HISTORICO||'Registro incluído ID: '||NEW.ID;
    END

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

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

    HISTORICO = '';
    
    IF (OLD.DATA_ORIGEM <> NEW.DATA_ORIGEM) THEN
    BEGIN
        HISTORICO = HISTORICO||' Data Origem no ID: '||OLD.ID||', Alterada: '|| OLD.DATA_ORIGEM||'->'||NEW.DATA_ORIGEM;
    END

    IF (OLD.DATA_DESTINO <> NEW.DATA_DESTINO) THEN
    BEGIN
        HISTORICO = HISTORICO||' Data Destino no ID: '||OLD.ID||', Alterada: '|| OLD.DATA_DESTINO||'->'||NEW.DATA_DESTINO;
    END

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

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

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

    HISTORICO = '';

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

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


