ALTER TABLE TBCASO_USUARIOS
    ADD TIPO INTEGER DEFAULT 0;

COMMENT ON COLUMN TBCASO_USUARIOS.TIPO IS
'0 - Usuario Padrao;
1 - Gestor/Supervisor;
2 - Suporte;';

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

UPDATE TBCASO_USUARIOS
    SET TIPO = 0
    WHERE TIPO IS NULL;
	
/************************************************/
/************************************************/

CREATE INDEX ITBCASO_USUARIOS_04
ON TBCASO_USUARIOS (RESPONSAVEL);

CREATE INDEX ITBCASO_USUARIOS_03
ON TBCASO_USUARIOS (TIPO);

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

SET TERM ^ ;

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

HISTORICO = '';
USUARIO = COALESCE((SELECT FIRST 1 FN_LPAD(A.CODIGO,4,0)||'-'||A.USUARIO FROM TBUSUARIO A WHERE A.CODIGO = NEW.USUARIO_ID),'');

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

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

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

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

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

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

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

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

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

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

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


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

SET TERM ; ^

