-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- SIU-GUARANI 3
-- Version 3.0.0
-- Function: f_instancias_comision
--
-- Retorna las instancias definidas para una comision
--  
-- Recibe:  f_instancias_comision(integer)
--		1. ID de la comision
-- Retorna: 
--      1. Nombre de la/s instancias/s de la comision
-- Ejemplo: Regular / Libre
-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

-- DROP FUNCTION f_instancias_comision(integer);
CREATE OR REPLACE FUNCTION f_instancias_comision(_comision 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 sga_comisiones_instancias, sga_instancias
               WHERE sga_comisiones_instancias.comision = _comision
                 AND sga_comisiones_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_comision(integer) ++++++++++++++++

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

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