-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- SIU-GUARANI 3
-- Version 3.0.0
-- Function: f_instancias_insc_cursada
--
-- Retorna las instancias en las que esta inscripto un alumno para cursar.
--  
-- Recibe:  f_instancias_insc_cursada(integer)
--		1. ID de la inscripcion a cursada
-- Retorna: 
--      1. Nombre de la/s instancias/s de la inscripcion a cursada
-- Ejemplo: Regularizar / Promocionar
-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

-- DROP FUNCTION f_instancias_insc_cursada(integer);
CREATE OR REPLACE FUNCTION f_instancias_insc_cursada(_inscripcion integer) 
 RETURNS TEXT AS 
$BODY$
DECLARE 
  cnt smallint;
  _retorno  text;
  cur1 record;
        
BEGIN
   cnt := 0;	
   _retorno := NULL;

  -- Recupero el nombre de las modalidades de cursada
  FOR cur1 IN SELECT sga_instancias.nombre as nombre
                FROM vw_insc_cursada_instancias, sga_instancias
               WHERE vw_insc_cursada_instancias.inscripcion = _inscripcion
                 AND vw_insc_cursada_instancias.instancia = sga_instancias.instancia
  LOOP
      IF cnt = 0 THEN		
         _retorno :=  cur1.nombre;
      ELSE
         _retorno :=  _retorno || '/' || cur1.nombre;
      END IF;   
      cnt := cnt + 1;
  END LOOP;

  RETURN _retorno;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;
-- ++++++++++++++++++++++++++++++ Fin Function f_instancias_insc_cursada(integer) ++++++++++++++++

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