-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- 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;

