CREATE OR REPLACE PROCEDURE muestra_avisos_emt IS CURSOR c1 IS SELECT DISTINCT seq_avisos, aviso, destinatario, fecha, to_char(to_date(fecha), 'dd/mm/yyyy') fecha_formateada, usuario FROM AVISOS_EMT order by to_date(fecha) desc; usuario VARCHAR2(50); temp NUMBER; nuevo varchar2(1); usu varchar2(100):= 'Nombre de Usuario'; var NUMBER; control NUMBER; exis_usu number; BEGIN control:=0; IF var=0 THEN htp.print(' '); var:=1; END IF; usuario:=portal.wwctx_api.get_user; FOR reg IN c1 LOOP DECLARE aux VARCHAR2(250); cont NUMBER; LONG NUMBER; BEGIN htp.print(' '); aux:=NULL; cont :=1; LONG := LENGTH(reg.destinatario); temp:=0; WHILE cont<=LONG LOOP IF ((SUBSTR(reg.destinatario,cont,1)=',') OR (SUBSTR(reg.destinatario,cont,1)='.') OR (SUBSTR(reg.destinatario,cont,1)=';') OR (SUBSTR(reg.destinatario,cont,1)=' '))THEN IF ((UPPER(aux)=usuario) OR (UPPER(aux)='TODOS')) THEN IF control=0 THEN htp.print('
(Sitúe el puntero del ratón sobre el Punto Azul para ver remitente)
'); control:=1; END IF; begin select nombre||' '||apellido_1||' '||apellido_2 into usu from info_portal_empleados where num_ident = to_number(reg.usuario); exception when no_data_found then usu:='EMPRESA'; when others then usu:='EMPRESA'; end; htp.print(''); END IF; aux:=NULL; cont := cont+1; temp:=1; ELSE aux:=aux||SUBSTR(reg.destinatario,cont,1); cont := cont+1; END IF; END LOOP; END; END LOOP; htp.print('
Enviado por
Fecha
Contenido
Eliminar
'||usu||' '||chr(38)||'nbsp;'|| reg.usuario||'
'||reg.fecha||'
'||chr(38)||'nbsp;'||UPPER(SUBSTR(reg.aviso,1,1))||LOWER(SUBSTR(reg.aviso,2,24))||'...'); select leido into nuevo from avisos_emt where seq_avisos=reg.seq_avisos; if nuevo='N' then htp.print(''); end if; htp.print('
'); IF NVL(control,0)=0 THEN htp.print('

No existen mensajes recibidos actualmente.
'); END IF; htp.print(''); END; /