-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- SIU-GUARANI 3
-- Version 3.0.0
-- Function: f_nombre_entidad
--
--
-- Recibe:  
--	f_nombre_entidad(integer)
--		1.- ID entidad
--
-- Retorna: varchar - Nombre de la entidad
-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

-- DROP FUNCTION f_nombre_entidad(integer);
CREATE OR REPLACE FUNCTION f_nombre_entidad(_entidad INTEGER) 
  RETURNS CHARACTER VARYING AS 
$BODY$
DECLARE 
	_nombre_tabla text;
	_nombre_entidad text;
	rs RECORD;
  BEGIN
  	-- Obtengo nombre de la tabla del subtipo de la entidad
  	SELECT 	tabla 
	INTO 	_nombre_tabla
  	 FROM 	sga_g3entidades, 
		sga_g3entidades_subtipos 
  	 WHERE 	sga_g3entidades.entidad_subtipo = sga_g3entidades_subtipos.entidad_subtipo 
  	 AND 	sga_g3entidades.entidad = _entidad;

	-- Obtengo el nombre de la entidad
	FOR rs IN
	 EXECUTE 'SELECT 	nombre 
		FROM 	' || _nombre_tabla || '
		WHERE 	entidad = ' || _entidad
	   LOOP
	     _nombre_entidad := rs.nombre;
	END LOOP;
  	
    -- Retorno el nombre de la entidad
    RETURN _nombre_entidad;
  END;
$BODY$
  LANGUAGE 'plpgsql' VOLATILE;
-- ++++++++++++++++++++++++++++++ Fin Function f_nombre_entidad(integer) ++++++++++++++++

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

/*
select * from f_nombre_entidad(2)
select * from sga_g3entidades where entidad > 20057
*/


