-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- SIU-GUARANI 3
-- Version 3.0.0
-- Function: f_docentes_mesa_examen
--
-- Retorna los docents (apellido y nombre) asignados a la mesa de examen en el llamado
--  
-- Recibe:  f_docentes_mesa_examen(integer)
--		1. ID de la mesa de examen en un llamado
-- Retorna: 
--      1. Nombres de los docentes asignados a la mesa en el llamado
-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

-- DROP FUNCTION f_docentes_mesa_examen(integer);
CREATE OR REPLACE FUNCTION f_docentes_mesa_examen(_llamado_mesa INTEGER) 
 RETURNS TEXT AS 
$BODY$
DECLARE 
  cnt smallint;
  _docentes  text;
  cur1 record;
        
  BEGIN
   cnt := 0;	
   _docentes := NULL;
		
  -- Recupero el nombre de los docentes
  FOR cur1 IN SELECT mdp_personas.apellido as apellido, 
                     mdp_personas.nombres as nombre
  									FROM sga_docentes_mesa_llamado, sga_docentes, mdp_personas
  	                WHERE sga_docentes_mesa_llamado.llamado_mesa = _llamado_mesa
  	                AND sga_docentes.docente = sga_docentes_mesa_llamado.docente
  	                AND mdp_personas.persona = sga_docentes.persona
  LOOP
      IF cnt = 0 THEN		
         _docentes :=  cur1.apellido || ' ' || cur1.nombre;
      ELSE
         _docentes :=  _docentes || ', ' || cur1.apellido || ' ' || cur1.nombre;
      END IF;   
      cnt := cnt + 1;
  END LOOP;
	
  RETURN _docentes;
    
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;
-- ++++++++++++++++++++++++++++++ Fin Function f_docentes_mesa_examen(integer) ++++++++++++++++

-- REVOKE EXECUTE ON FUNCTION f_docentes_mesa_examen (integer) FROM public;
GRANT EXECUTE ON FUNCTION f_docentes_mesa_examen (integer) to public;
