ALTER TABLE TBCASO_PAINEL
    ADD VISUALIZACAO_WORKFOW INTEGER DEFAULT 0;

COMMENT ON COLUMN TBCASO_PAINEL.VISUALIZACAO_WORKFOW IS
'0 - PERCENTUAL GERAL;
1 - PROXIMA TAREFA PENDENTE;';


UPDATE TBCASO_PAINEL
    SET VISUALIZACAO_WORKFOW = 0
    WHERE VISUALIZACAO_WORKFOW IS NULL;


/******************************************************************************************************/
/******************************************************************************************************/

SET TERM ^ ;

CREATE OR ALTER trigger ttbcaso_painel_b01u for tbcaso_painel
active before update position 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(5000);
BEGIN

    HISTORICO = '';

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

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

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

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

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

     IF ( OLD.STATUS <> NEW.STATUS) THEN
    BEGIN
        HISTORICO = HISTORICO||' STATUS:'|| OLD.STATUS||'->'||NEW.STATUS;
        UPDATE TBMENU SET TIPO = NEW.STATUS WHERE CONTROLE = 99000 + NEW.ID;    -- MODIFICA O TIPO DA TBMENU DE ACORDO COM O STATUS DO PAINEL
    END

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

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

     IF ( OLD.EMAIL_PASS <> NEW.EMAIL_PASS) THEN
    BEGIN
        HISTORICO = HISTORICO||' EMAIL SENHA:'||'SENHA ALTERADA';
    END

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

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

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

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

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

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

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

     IF ( OLD.SQL_EMAIL_CONTATO <> NEW.SQL_EMAIL_CONTATO) THEN
    BEGIN
        HISTORICO = HISTORICO||' SQL EMAIL CONTATO:'|| OLD.SQL_EMAIL_CONTATO||'->'||NEW.SQL_EMAIL_CONTATO;
    END

    IF ( OLD.CAMPO_NOME_CONTATO <> NEW.CAMPO_NOME_CONTATO) THEN
    BEGIN
        HISTORICO = HISTORICO||' CAMPO NOME CONTATO:'|| OLD.CAMPO_NOME_CONTATO||'->'||NEW.CAMPO_NOME_CONTATO;
    END

    IF ( OLD.REQUER_DESC_TECNICA <> NEW.REQUER_DESC_TECNICA) THEN
    BEGIN
        HISTORICO = HISTORICO||' REQUER DESC.TECNICA:'|| OLD.REQUER_DESC_TECNICA||'->'||NEW.REQUER_DESC_TECNICA;
    END

    IF ( OLD.REQUER_SOLUCAO_CASO <> NEW.REQUER_SOLUCAO_CASO) THEN
    BEGIN
        HISTORICO = HISTORICO||' REQUER SOLUC.CASO:'|| OLD.REQUER_SOLUCAO_CASO||'->'||NEW.REQUER_SOLUCAO_CASO;
    END

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

    IF (HISTORICO <> '') THEN
    BEGIN
        HISTORICO = 'REGISTRO ALTERADO:'||HISTORICO;
        EXECUTE PROCEDURE SPI_HISTORICO('TBCASO_PAINEL',NEW.ID, FN_ELIPSE(HISTORICO, 500));
    END
END
^

SET TERM ; ^


/******************************************************************************************************/
/******************************************************************************************************/

SET TERM ^ ;

CREATE OR ALTER trigger ttbworkflow_item_historico_b02i for tbworkflow_item_historico
active before insert position 1
AS
DECLARE VARIABLE FEED_ID INTEGER;
DECLARE VARIABLE HISTORICO VARCHAR(5000);
DECLARE VARIABLE ASSUNTO VARCHAR(3000);
DECLARE VARIABLE CASO_ID INTEGER;
DECLARE VARIABLE PAINEL_ID INTEGER;
BEGIN

    :FEED_ID = 0;
    :HISTORICO = '';

    :CASO_ID = COALESCE((SELECT FIRST 1
                            T.ID
                        FROM TBCASO_REGISTRO T
                        INNER JOIN TBCASO_REGISTRO_WORKFLOWS A ON A.PAINEL_ID = T.PAINEL_ID AND A.REGISTRO_ID = T.ID
                        INNER JOIN TBCASO_WORKFLOWS B ON B.PAINEL_ID = A.PAINEL_ID
                        INNER JOIN TBWORKFLOW_ITEM C ON C.ID = A.WORKFLOW_ITEM_ID AND C.WORKFLOW_ID = B.MODELO_WORKFLOW_ID
                        WHERE C.ID = NEW.WORKFLOW_ITEM_ID), 0);
    :PAINEL_ID = COALESCE((SELECT FIRST 1
                                T.PAINEL_ID
                            FROM TBCASO_REGISTRO T
                            INNER JOIN TBCASO_REGISTRO_WORKFLOWS A ON A.PAINEL_ID = T.PAINEL_ID AND A.REGISTRO_ID = T.ID
                            INNER JOIN TBCASO_WORKFLOWS B ON B.PAINEL_ID = A.PAINEL_ID
                            INNER JOIN TBWORKFLOW_ITEM C ON C.ID = A.WORKFLOW_ITEM_ID AND C.WORKFLOW_ID = B.MODELO_WORKFLOW_ID
                            WHERE C.ID = NEW.WORKFLOW_ITEM_ID), 0);

    IF (COALESCE(:CASO_ID, 0) > 0 AND COALESCE(:PAINEL_ID, 0) > 0) THEN
    BEGIN

        :HISTORICO = '<p> '||NEW.HISTORICO||' </p>';
        :ASSUNTO   = 'Historico: [CASO: '||FN_LPAD(:CASO_ID, 8, '0')||'] - WORKFLOW '||FN_LPAD(NEW.WORKFLOW_ITEM_ID, 6, '0')||'';


        :FEED_ID = GEN_ID(GTBCASO_FEED, 1);
    
        INSERT INTO TBCASO_FEED (ID, DE, PARA, EM_COPIA, EM_COPIA_OCULTA, MENSAGEM, ASSUNTO, PAINEL_ID, CASO_ID, FILES, SUBFEED, TIPO, USUARIO_ID, COMENTARIO, LISTA_FILE, WORKFLOW_ITEM_ID)
            VALUES (:FEED_ID, '', '', '', '', :HISTORICO, FN_ELIPSE(:ASSUNTO, 300), :PAINEL_ID, :CASO_ID, 1, 0, 2, NEW.USUARIO_ID, 0, '', NEW.WORKFLOW_ITEM_ID);

    END
END
^

SET TERM ; ^

/******************************************************************************************************/
/******************************************************************************************************/

ALTER TABLE TBCASO_CAMPO_CONSULTA
    ADD CAMPO_AUTO_INC_TELA VARCHAR(100) CHARACTER SET UTF8 DEFAULT '' COLLATE UTF8,
    ADD CAMPO_AUTO_INC_VINCULO VARCHAR(100) CHARACTER SET UTF8 DEFAULT '' COLLATE UTF8,
	ADD CAMPO_AUTO_INC_VINC_BASE VARCHAR(100) CHARACTER SET UTF8 DEFAULT '' COLLATE UTF8;


COMMENT ON COLUMN TBCASO_CAMPO_CONSULTA.CAMPO_AUTO_INC_TELA IS
'ID da tela que tera vinculo com o campo registrado no CAMPO_AUTO_INC';

COMMENT ON COLUMN TBCASO_CAMPO_CONSULTA.CAMPO_AUTO_INC_VINCULO IS
'Campo de vinculo na consulta na tela que tera vinculo no CAMPO_AUTO_INC_TELA com o campo registrado no CAMPO_AUTO_INC';

COMMENT ON COLUMN TBCASO_CAMPO_CONSULTA.CAMPO_AUTO_INC_VINC_BASE IS
'Campo de vinculo na consulta na consulta da tela que tera vinculo no CAMPO_AUTO_INC_VINCULO, na tela do CAMPO_AUTO_INC_TELA com o campo registrado no CAMPO_AUTO_INC';


UPDATE TBCASO_CAMPO_CONSULTA
    SET CAMPO_AUTO_INC_TELA = ''
    WHERE CAMPO_AUTO_INC_TELA IS NULL;

UPDATE TBCASO_CAMPO_CONSULTA
    SET CAMPO_AUTO_INC_VINCULO = ''
    WHERE CAMPO_AUTO_INC_VINCULO IS NULL;

UPDATE TBCASO_CAMPO_CONSULTA
    SET CAMPO_AUTO_INC_VINC_BASE = ''
    WHERE CAMPO_AUTO_INC_VINC_BASE IS NULL;

/******************************************************************************************************/
/******************************************************************************************************/

