-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -- SIU-GUARANI 3 -- Version 3.0.0 -- Function: f_horario_subcomision -- -- Retorna los dias y horarios de las bandas horarias asignadas a la subcomision -- -- Recibe: f_horario_subcomision(integer) -- 1. Subcomision -- Retorna: -- 1. Dias y Horarios de las asignacions de la subcomision -- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -- DROP FUNCTION f_horario_subcomision(integer); CREATE OR REPLACE FUNCTION f_horario_subcomision(_subcomision Integer) RETURNS text AS $BODY$ DECLARE _horario text; i smallint; cur_bh record; BEGIN _horario := ''; i := 0; FOR cur_bh IN ( SELECT sga_asignaciones.dia_semana as dia_semana, to_char(sga_asignaciones.hora_inicio, 'HH24:MI') as inicio, to_char(sga_asignaciones.hora_finalizacion, 'HH24:MI') as fin FROM sga_subcomisiones_bh, sga_comisiones_bh, sga_asignaciones WHERE sga_subcomisiones_bh.subcomision = _subcomision AND sga_comisiones_bh.banda_horaria = sga_subcomisiones_bh.banda_horaria AND sga_asignaciones.asignacion = sga_comisiones_bh.asignacion ) LOOP IF i > 0 THEN _horario := _horario || ' - ' ; END IF; _horario := _horario || substring(cur_bh.dia_semana from 1 for 3) || ' ' || cur_bh.inicio || ' a ' || cur_bh.fin; i := i + 1; END LOOP; -- Retorno los dias y horarios de la subcomision RETURN _horario; END; $BODY$ LANGUAGE 'plpgsql' VOLATILE; -- ++++++++++++++++++++++++++++++ Fin Function f_horario_subcomision ++++++++++++++++ -- REVOKE EXECUTE ON FUNCTION f_horario_subcomision (integer) FROM public; GRANT EXECUTE ON FUNCTION f_horario_subcomision (integer) to public;