CREATE trigger ttbveiculo_viagem_b0i1 for tbveiculo_viagem
active before insert position 0
AS
BEGIN
  IF (NEW.ID IS NULL) THEN
    NEW.ID = GEN_ID(GTBVEICULO_VIAGEM_ID,1);
END;

CREATE trigger ttbveiculo_viagem_b02i for tbveiculo_viagem
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('TBVEICULO_VIAGEM',NEW.ID,HISTORICO);
    END
end;

CREATE OR ALTER trigger ttbveiculo_viagem_b0u1 for tbveiculo_viagem
active before update position 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

    IF ( OLD.VEICULO_ID <> NEW.VEICULO_ID) THEN
    BEGIN
        HISTORICO = HISTORICO||'VEIC: '|| OLD.VEICULO_ID||'->'||NEW.VEICULO_ID;
    END

    IF ( OLD.MOTORISTA_ID <> NEW.MOTORISTA_ID) THEN
    BEGIN
        HISTORICO = HISTORICO||' COND: '|| OLD.MOTORISTA_ID||'->'||NEW.MOTORISTA_ID;
    END

    IF ( OLD.LOCAL <> NEW.LOCAL) THEN
    BEGIN
        HISTORICO = HISTORICO||' LOC: '|| OLD.LOCAL||'->'||NEW.LOCAL;
    END

    IF ( OLD.DESTINO <> NEW.DESTINO) THEN
    BEGIN
        HISTORICO = HISTORICO||' DEST: '|| OLD.DESTINO||'->'||NEW.DESTINO;
    END

    IF ( OLD.DATAHORA_SAIDA <> NEW.DATAHORA_SAIDA) THEN
    BEGIN
        HISTORICO = HISTORICO||' DT.SAI: '|| FORMATDATETIME(OLD.DATAHORA_SAIDA)||'->'||FORMATDATETIME(NEW.DATAHORA_SAIDA);
    END

    IF ( OLD.DATAHORA_CHEGADA <> NEW.DATAHORA_CHEGADA) THEN
    BEGIN
        HISTORICO = HISTORICO||' DT.CHEG: '|| FORMATDATETIME(OLD.DATAHORA_CHEGADA)||'->'||FORMATDATETIME(NEW.DATAHORA_CHEGADA);
    END

    IF ( OLD.QUILOMETRAGEM_SAIDA <> NEW.QUILOMETRAGEM_SAIDA) THEN
    BEGIN
        HISTORICO = HISTORICO||' KM.SAI: '|| OLD.QUILOMETRAGEM_SAIDA||'->'||NEW.QUILOMETRAGEM_SAIDA;
    END

    IF ( OLD.QUILOMETRAGEM_CHEGADA <> NEW.QUILOMETRAGEM_CHEGADA) THEN
    BEGIN
        HISTORICO = HISTORICO||' KM.CHEG: '|| OLD.QUILOMETRAGEM_CHEGADA||'->'||NEW.QUILOMETRAGEM_CHEGADA;
    END

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

CREATE trigger ttbveiculo_viagem_b0d1 for tbveiculo_viagem
active before delete position 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

    IF ( OLD.ID > 0) THEN
    BEGIN
        HISTORICO = HISTORICO||'REGISTRO EXCLUIDO';
    END

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

ALTER TABLE TBVEICULO_VIAGEM DROP TIPO;