CREATE OR ALTER TRIGGER TTBAGENDAMENTO_SQL_B01I FOR TBAGENDAMENTO_SQL
ACTIVE BEFORE INSERT POSITION 0
as
begin
  if (new.id is null) then
    new.id = gen_id(gtbagendamento_sql,1);
end;

CREATE OR ALTER TRIGGER TTBAGENDAMENTO_SQL_B02I FOR TBAGENDAMENTO_SQL
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('TBAGENDAMENTO_SQL',NEW.ID, HISTORICO);
    END
end;

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

    HISTORICO = '';

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

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

    IF ( OLD.HORAINICIO <> NEW.HORAINICIO) THEN
    BEGIN
        HISTORICO = HISTORICO||'Hora Inicio:'|| OLD.HORAINICIO||'->'||NEW.HORAINICIO;
    END

    IF ( OLD.HORAFIM <> NEW.HORAFIM) THEN
    BEGIN
        HISTORICO = HISTORICO||'Hora Fim:'|| OLD.HORAFIM||'->'||NEW.HORAFIM;
    END

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

    IF ( OLD.SQL_ID <> NEW.SQL_ID) THEN
    BEGIN
        HISTORICO = HISTORICO||'ID do SQL:'|| OLD.SQL_ID||'->'||NEW.SQL_ID;
    END

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

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

    IF ( OLD.TER <> NEW.TER) THEN
    BEGIN
        HISTORICO = HISTORICO||'Terca-Feira:'|| OLD.TER||'->'||NEW.TER;
    END

    IF ( OLD.QUA <> NEW.QUA) THEN
    BEGIN
        HISTORICO = HISTORICO||'Quarta-Feira:'|| OLD.QUA||'->'||NEW.QUA;
    END

    IF ( OLD.QUI <> NEW.QUI) THEN
    BEGIN
        HISTORICO = HISTORICO||'Quinta-Feira:'|| OLD.QUI||'->'||NEW.QUI;
    END

    IF ( OLD.SEX <> NEW.SEX) THEN
    BEGIN
        HISTORICO = HISTORICO||'Sexta-Feira:'|| OLD.SEX||'->'||NEW.SEX;
    END

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

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

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

    IF ( OLD.DATAHORAULTIMOEXEC <> NEW.DATAHORAULTIMOEXEC) THEN
    BEGIN
        HISTORICO = HISTORICO||'Data Hora Ultima Execucao:'|| OLD.DATAHORAULTIMOEXEC||'->'||NEW.DATAHORAULTIMOEXEC;
    END

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

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

CREATE TRIGGER TTBAGENDAMENTO_SQL_B01D FOR TBAGENDAMENTO_SQL
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('TBAGENDAMENTO_SQL',old.ID, HISTORICO);
    END
end;