-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- SIU-GUARANI 3
-- Version 3.0.0
-- Function: f_modalidad_cursada_comision
--
-- Retorna el nombre de las modalidades de cursadas definidas en la comision.
--  
-- Recibe:  f_modalidad_cursada_comision(integer)
--		1. ID de la comision
-- Retorna: 
--      1. Nombre modalidad cursada
-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

-- DROP FUNCTION f_modalidad_cursada_comision(integer);
CREATE OR REPLACE FUNCTION f_modalidad_cursada_comision(_comision 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_comisiones_modalidad, sga_modalidad_cursada
  	                WHERE sga_comisiones_modalidad.comision = _comision
  	                AND sga_comisiones_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_comision(integer) ++++++++++++++++

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

/*
select * from f_modalidad_cursada_comision(28541);
insert into sga_comisiones_modalidad (comision, modalidad) values (28541,'D');
*/


