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

    HISTORICO = '';
    BLOB_EMAIL = '';

    IF ( OLD.DESCRICAO <> NEW.DESCRICAO) THEN
    BEGIN
        HISTORICO = HISTORICO||'Desc. '|| 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 Ini. '|| SUBSTRING(OLD.HORAINICIO FROM 1 FOR 5)||'->'||SUBSTRING(NEW.HORAINICIO FROM 1 FOR 5);
    END

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

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

    IF ( OLD.SQL_COND <> NEW.SQL_COND) THEN
    BEGIN
        HISTORICO = HISTORICO||' SQL';
    END

    IF ( OLD.email <> NEW.email) THEN
    BEGIN
        HISTORICO = HISTORICO||' Email';
    END

    IF ( OLD.link <> NEW.link) THEN
    BEGIN
        HISTORICO = HISTORICO||' Link';
    END

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

    IF ( OLD.SEG <> NEW.SEG) THEN
    BEGIN
        IF(OLD.SEG = '0' AND NEW.SEG = '1') THEN HISTORICO = HISTORICO||' Seg. '|| 'Não'||'->'||'Sim';

        IF(OLD.SEG = '1' AND NEW.SEG = '0') THEN HISTORICO = HISTORICO||' Seg. '|| 'Sim'||'->'||'Não';
    END

    IF ( OLD.TER <> NEW.TER) THEN
    BEGIN
        IF(OLD.TER = '0' AND NEW.TER = '1') THEN HISTORICO = HISTORICO||' Ter. '|| 'Não'||'->'||'Sim';

        IF(OLD.TER = '1' AND NEW.TER = '0') THEN HISTORICO = HISTORICO||' Ter. '|| 'Sim'||'->'||'Não';
    END

    IF ( OLD.QUA <> NEW.QUA) THEN
    BEGIN
        IF(OLD.QUA = '0' AND NEW.QUA = '1') THEN HISTORICO = HISTORICO||' Qua. '|| 'Não'||'->'||'Sim';

        IF(OLD.QUA = '1' AND NEW.QUA = '0') THEN HISTORICO = HISTORICO||' Qua. '|| 'Sim'||'->'||'Não';
    END

    IF ( OLD.QUI <> NEW.QUI) THEN
    BEGIN
        IF(OLD.QUI = '0' AND NEW.QUI = '1') THEN HISTORICO = HISTORICO||' Qui. '|| 'Não'||'->'||'Sim';

        IF(OLD.QUI = '1' AND NEW.QUI = '0') THEN HISTORICO = HISTORICO||' Qui. '|| 'Sim'||'->'||'Não';
    END

    IF ( OLD.SEX <> NEW.SEX) THEN
    BEGIN
        IF(OLD.SEX = '0' AND NEW.SEX = '1') THEN HISTORICO = HISTORICO||' Sex. '|| 'Não'||'->'||'Sim';

        IF(OLD.SEX = '1' AND NEW.SEX = '0') THEN HISTORICO = HISTORICO||' Sex. '|| 'Sim'||'->'||'Não';

    END

    IF ( OLD.SAB <> NEW.SAB) THEN
    BEGIN
        IF(OLD.SAB = '0' AND NEW.SAB = '1') THEN HISTORICO = HISTORICO||' Sáb. '|| 'Não'||'->'||'Sim';

        IF(OLD.SAB = '1' AND NEW.SAB = '0') THEN HISTORICO = HISTORICO||' Sáb. '|| 'Sim'||'->'||'Não';

    END

    IF ( OLD.DOM <> NEW.DOM) THEN
    BEGIN
        IF(OLD.DOM = '0' AND NEW.DOM = '1') THEN HISTORICO = HISTORICO||' Dom. '|| 'Não'||'->'||'Sim';

        IF(OLD.DOM = '1' AND NEW.DOM = '0') THEN HISTORICO = HISTORICO||' Dom. '|| 'Sim'||'->'||'Não';

    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 Ult. Exe. '|| OLD.DATAHORAULTIMOEXEC||'->'||NEW.DATAHORAULTIMOEXEC;
    END

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

    IF ( OLD.email <> NEW.EMAIL) THEN
    BEGIN
        BLOB_EMAIL = BLOB_EMAIL||' Email: '|| fn_elipses(OLD.EMAIL, 100)||'->'||fn_elipses(NEW.EMAIL, 100);
    END

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

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