-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -- SIU-GUARANI 3 -- Version 3.0.0 -- Function: get_entidad_id_nombre -- Dado el valor de una entidad, devuelve el nombre del campo de los parametros de contexto, el id que corresponde a la entidad -- y el nombre de dicha entidad. -- -- Recibe: get_entidad_id_nombre(integer) -- 1.- ID entidad (sga_g3entidades.entidad) -- -- Retorna: -- 1. Nombre del parametro de contexto + id de la entidad que corresponde + nombre de la entidad + subtipo de la entidad -- Ejemplo: "elemento,2050,Fisica II,50" -- "certificado,38,Técnico Dental,20" -- "elemento,2014,Ciclo básico,3" -- "propuesta,548,Ingeniería Industrial,200" -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -- DROP FUNCTION get_entidad_id_nombre(integer); CREATE OR REPLACE FUNCTION get_entidad_id_nombre(pEntidad INTEGER) RETURNS TEXT AS $BODY$ DECLARE _retorno text; _parametro_contexto text; _query text; _query2 text; _subtipo integer; rs RECORD; BEGIN _retorno := ',,,'; -- Obtengo nombre de la tabla del subtipo de la entidad SELECT sga_g3entidades.entidad_subtipo, sga_g3entidades_subtipos.tabla_id, sga_g3entidades_subtipos.query_id_nombre INTO _subtipo, _parametro_contexto, _query FROM sga_g3entidades, sga_g3entidades_subtipos WHERE sga_g3entidades.entidad_subtipo = sga_g3entidades_subtipos.entidad_subtipo AND sga_g3entidades.entidad = pEntidad; -- Obtengo el nombre de la entidad FOR rs IN EXECUTE _query || pEntidad::text LOOP _retorno := _parametro_contexto || ',' || rs.id::text || ',' || rs.nombre || ',' || _subtipo::text ; END LOOP; -- Retorno el nombre de la entidad RETURN _retorno; END; $BODY$ LANGUAGE 'plpgsql' VOLATILE; -- ++++++++++++++++++++++++++++++ Fin Function get_entidad_id_nombre ++++++++++++++++ -- REVOKE EXECUTE ON FUNCTION get_entidad_id_nombre (integer) FROM public; GRANT EXECUTE ON FUNCTION get_entidad_id_nombre (integer) to public;