-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- SIU-GUARANI 3
-- Version 3.0.0
-- Function: f_modalidad_cursada_examen
--
-- Retorna el nombre de las modalidades de cursadas definidas en la mesa de examen.
--  
-- Recibe:  f_modalidad_cursada_examen(integer)
--		1. ID de la mesa de examen
-- Retorna: 
--      1. Nombre de la/s modalidad/es de cursada definidas en la mesa de examen.
-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

-- DROP FUNCTION f_modalidad_cursada_examen(integer);
CREATE OR REPLACE FUNCTION f_modalidad_cursada_examen(_mesa_examen INTEGER) 
 RETURNS TEXT AS 
$BODY$
DECLARE 
  cnt smallint;
  modalidad_cursada  text;
  cur1 record;
        
  BEGIN
   cnt := 0;	
   modalidad_cursada := NULL;
		
  -- Recupero el nombre de las modalidades de cursada
  FOR cur1 IN SELECT sga_modalidad_cursada.nombre as nombre
  									FROM sga_mesas_examen_modalidad, sga_modalidad_cursada
  	                WHERE sga_mesas_examen_modalidad.mesa_examen = _mesa_examen
  	                AND sga_mesas_examen_modalidad.modalidad = sga_modalidad_cursada.modalidad
  LOOP
      IF cnt = 0 THEN		
         modalidad_cursada :=  cur1.nombre;
      ELSE
         modalidad_cursada :=  modalidad_cursada || '/' || cur1.nombre;
      END IF;   
      cnt := cnt + 1;
  END LOOP;
	
  RETURN modalidad_cursada;
    
  END;
$BODY$
  LANGUAGE 'plpgsql' VOLATILE;
-- ++++++++++++++++++++++++++++++ Fin Function f_modalidad_cursada_examen(integer) ++++++++++++++++

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

/*
select * from f_modalidad_cursada_examen(28541);
*/
