SET TERM ^ ;

CREATE OR ALTER trigger ttbcaso_registro_b02i for tbcaso_registro
active after insert position 0
AS
    declare variable tipo integer;
    declare variable descricao varchar(500);
    declare variable PAINEL varchar(500);
    declare variable USUARIO_CAD varchar(500);
    declare variable monitor varchar(500);
    declare variable motivo varchar(500);
    declare variable valor varchar(5000);
    declare variable corpo varchar(8000);
    declare variable html1 varchar(4000);
    declare variable html2 varchar(4000);
begin
    
    PAINEL      = coalesce((select first 1 FN_LPAD(C.ID, 4, '0')||' - '||C.TITULO from tbcaso_painel c where c.id = new.painel_id), '');
    USUARIO_CAD = coalesce((select first 1 u.nome from tbcaso_historico h, tbusuario u where h.caso_id = new.id and h.painel_id = new.painel_id and u.codigo = h.usuario_id),'');

    monitor = coalesce((SELECT first 1 p.email_monitor FROM tbcaso_painel p where p.id = new.painel_id), '');

    html1 = (SELECT first 1 p.html FROM tbcaso_html p where p.id = 1);
    html2 = (SELECT first 1 p.html FROM tbcaso_html p where p.id = 2);

--    corpo = '<html><body><p><a href="https://gc.delfa.com.br/_11150/'||new.painel_id||'/'||new.id||'" target="_blank">Abrir '||new.id||' na web</a></p>';
    corpo = '<html><body><p><a href="'|| fn_parametro('SISTEMA.URL_SERVER') ||'/_11160/'||new.painel_id||'?CASO_ID='||new.id||'" target="_blank">Abrir '||new.id||' na web</a></p>';
    corpo = corpo || html1;
    corpo = corpo || '<p><u>Painel:</u>: '||:PAINEL||'</p><br>';
    corpo = corpo || '<p><u>Data</u>: '||formatdatetime(current_timestamp)||'</p>';
    corpo = corpo || '<p><u>Aberto por:</u>: '||:USUARIO_CAD||'</p>';

    for
       select
            TIPO,
            DESCRICAO,
            coalesce(VALOR,'&nbsp;') as VALOR
       from CASO_DETALHE_V2(new.painel_id, new.id)
    into
        :tipo,
        :descricao,
        :valor
    do
    begin
        corpo = corpo||'<p><u>'||descricao||'</u>: '||:valor||'</p>';

        if(descricao = 'Motivo')then
        begin
            motivo = valor;
        end
    end

    corpo = corpo || html2;

	/* Removido dia 21/12/2023 para solucao do caso de duplicidade de envio de emails para os monitores de casos */
--    insert into tbemail (status, email, assunto, corpo, usuario_id, cc, cco, painel_id)
--    values (
--        0,
--        :monitor,
--        FN_ELIPSE(('NOVO - [CASO:'|| FN_LPAD(NEW.id, 8, '0') ||'] Aberto : '|| :motivo), 300),
--        :corpo,
--        0,
--        coalesce((select first 1 coalesce(c.email_monitor, '') from TBCASO_PAINEL c where c.id = new.painel_id), ''), --(select u.email from tbusuario u where u.codigo = new.usuario_id),
--        '',
--        new.painel_id
--    );

end
^

SET TERM ; ^

