-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- SIU-GUARANI 3
-- Version 3.0.0
-- Function: f_horario_comision
--
-- Retorna los dias y horarios de las bandas horarias asignadas a una comision
--  
-- Recibe:  f_horario_comision(integer)
--   1. Comision
-- Retorna: 
--   1. Dias y Horarios de las asignacions de la comision
-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

-- DROP FUNCTION f_horario_comision(integer);
CREATE OR REPLACE FUNCTION f_horario_comision(pComision 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_comisiones_bh,
          sga_asignaciones
      WHERE sga_comisiones_bh.comision = pComision
        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_comision ++++++++++++++++

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

