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

    HISTORICO = '';

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

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

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

    HISTORICO = '';
    
    IF (OLD.VEICULO_ID <> NEW.VEICULO_ID) THEN
    BEGIN
        HISTORICO = HISTORICO||' Veiculo: '||OLD.VEICULO_ID||' -> '||NEW.VEICULO_ID;
    END
    IF (OLD.DATA <> NEW.DATA or OLD.HORA <> NEW.HORA) THEN
    BEGIN
        HISTORICO = HISTORICO||', Data/Hora(Abastecimento): '||FN_DATE_TO_STRING(OLD.DATA)||' '||OLD.HORA||' -> '||FN_DATE_TO_STRING(NEW.DATA)||' '||NEW.HORA;
    END
    IF (OLD.QUILOMETRAGEM <> NEW.QUILOMETRAGEM) THEN
    BEGIN
        HISTORICO = HISTORICO||', Quilometragem: '||OLD.QUILOMETRAGEM||' -> '||NEW.QUILOMETRAGEM;
    END
    IF (OLD.QUANTIDADE <> NEW.QUANTIDADE) THEN
    BEGIN
        HISTORICO = HISTORICO||', Qtd: '||OLD.QUANTIDADE||'L'||' -> '||NEW.QUANTIDADE||'L';
    END
    IF (OLD.PRODUTO_ID <> NEW.PRODUTO_ID) THEN
    BEGIN
        HISTORICO = HISTORICO||', Combustivel Cód.: '||OLD.PRODUTO_ID||' -> '||NEW.PRODUTO_ID;
    END
    IF (OLD.OBSERVACAO <> NEW.OBSERVACAO) THEN
    BEGIN
        HISTORICO = HISTORICO||', Observacao Alterada.';
    END
    IF (OLD.VALOR_UNITARIO <> NEW.VALOR_UNITARIO) THEN
    BEGIN
        HISTORICO = HISTORICO||', Vlr. Unitario: '||OLD.VALOR_UNITARIO||' -> '||NEW.VALOR_UNITARIO;
    END
    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBVEICULO_ABASTECIMENTO', NEW.ID, HISTORICO);
    END
END;

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

    HISTORICO = '';

    IF (OLD.ID > 0) THEN
    BEGIN
        HISTORICO = HISTORICO||'Registro de Abastecimento excluido';
    END

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


