CREATE OR ALTER trigger ttbformulario_destinatario_b02i for tbformulario_destinatario
active before insert position 1
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN
    HISTORICO = '';

    IF ( NEW.ID > 0) THEN
    BEGIN
        IF( NEW.USUARIO_ID > 0) THEN
            BEGIN
                HISTORICO = HISTORICO||' USUARIO INCLUIDO: '||NEW.USUARIO_ID||' - '||(SELECT FIRST 1 U.USUARIO FROM tbusuario U WHERE U.CODIGO = NEW.USUARIO_ID);
            END

        IF( NEW.CCUSTO <> '' AND NEW.CCUSTO IS NOT NULL AND NEW.CCUSTO > 0) THEN
            BEGIN
                HISTORICO = HISTORICO||' C.CUSTO INCLUIDO: '||NEW.CCUSTO||' - '||(SELECT FIRST 1 C.DESCRICAO FROM tbcentro_de_custo C WHERE C.CODIGO = NEW.CCUSTO);
            END
    END

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


CREATE OR ALTER trigger ttbformulario_destinatario_b01d for tbformulario_destinatario
active before delete position 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN
    HISTORICO = '';

    IF ( OLD.ID > 0) THEN
    BEGIN
        IF( OLD.USUARIO_ID > 0) THEN
            BEGIN
                HISTORICO = HISTORICO||' USUARIO EXCLUIDO: '||OLD.USUARIO_ID||' - '||(SELECT FIRST 1 U.USUARIO FROM tbusuario U WHERE U.CODIGO = OLD.USUARIO_ID);
            END

        IF( OLD.CCUSTO <> '' AND OLD.CCUSTO IS NOT NULL AND OLD.CCUSTO > 0) THEN
            BEGIN
                HISTORICO = HISTORICO||' C.CUSTO EXCLUIDO: '||OLD.CCUSTO||' - '||(SELECT FIRST 1 C.DESCRICAO FROM tbcentro_de_custo C WHERE C.CODIGO = OLD.CCUSTO);
            END
    END

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


CREATE OR ALTER trigger ttbformulario_destinatario_b1u for tbformulario_destinatario
active before update position 1
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

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

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

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

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

    IF (OLD.VISUALIZA_CADASTRO <> NEW.VISUALIZA_CADASTRO) THEN
    BEGIN
       HISTORICO = HISTORICO||' VISU.CAD:'||OLD.VISUALIZA_CADASTRO||'->'||NEW.VISUALIZA_CADASTRO;
    END

     IF (HISTORICO <> '') THEN
    BEGIN
        IF( NEW.USUARIO_ID > 0) THEN
            BEGIN
                HISTORICO = ' USUARIO: '|| NEW.USUARIO_ID ||' ALTERADO: '||HISTORICO;
            END
        IF( NEW.CCUSTO <> '' AND NEW.CCUSTO IS NOT NULL AND NEW.CCUSTO > 0) THEN
            BEGIN
                HISTORICO = ' CCUSTO: '|| NEW.CCUSTO ||' ALTERADO: '||HISTORICO;
            END
        EXECUTE PROCEDURE SPI_HISTORICO('TBFORMULARIO',NEW.FORMULARIO_ID, HISTORICO);
    END
END;




