/**
   * Busca una lista de actividades dentro de un cronograma en un lapso académico
   *
   * @param lapso
   * @return List<Cronograma> Lista de elementos insertar en el cronograma
   * @throws No dispara ninguna excepción.
   */
  public List<String> historicoCronogramaActividades(LapsoAcademico lapso) {
    List<String> listaElementosAInsertar = new ArrayList<String>();
    String elementoAInsertar;
    List<Cronograma> cronogramas = iCronograma.findById_CodigoLapso(lapso.getCodigoLapso());

    for (int i = 0; i < cronogramas.size(); i++) {
      Cronograma cronograma = cronogramas.get(i);
      elementoAInsertar =
          "INSERT INTO sigarep.cronograma(codigo_lapso, id_actividad, estatus, fecha_fin, fecha_inicio, hora_inicio, lugar, observacion, id_instancia_apelada)"
              + "VALUES ('"
              + cronograma.getId().getCodigoLapso()
              + "',"
              + cronograma.getId().getIdActividad()
              + ",'"
              + cronograma.getEstatus()
              + "', '"
              + cronograma.getFechaFin()
              + "','"
              + cronograma.getFechaInicio()
              + "','"
              + cronograma.getHoraInicio()
              + "','"
              + cronograma.getLugar()
              + "','"
              + cronograma.getObservacion()
              + "','"
              + cronograma.getActividad().getInstanciaApelada().getInstanciaApelada()
              + "');";
      listaElementosAInsertar.add(elementoAInsertar);
    }
    return listaElementosAInsertar;
  }
 /**
  * Busca un cronograma haciendo filtrado por responsable, lugar y actividad
  *
  * @param responsablef, lugarf, actividadf
  * @return List<Cronograma> Lista de cronograma
  * @throws La Excepción es que las variables que entran por parametro sean null
  */
 public List<Cronograma> filtrarCronograma(String responsablef, String lugarf, String actividadf) {
   List<Cronograma> result = new ArrayList<Cronograma>();
   if (responsablef == null || lugarf == null || actividadf == null) {
     result = listadoCronograma();
   } else {
     for (Cronograma cro : listadoCronograma()) {
       if (cro.getResponsable()
               .getInstanciaApelada()
               .toLowerCase()
               .contains(responsablef.toLowerCase())
           && cro.getLugar().toLowerCase().contains(lugarf.toLowerCase())
           && cro.getActividad().getNombre().toLowerCase().contains(actividadf.toLowerCase())) {
         result.add(cro);
       }
     }
   }
   return result;
 }
 /**
  * Elimina un cronograma . Busca el id del cronograma, actualiza estatus(false) y lo guarda en
  * base de datos.
  *
  * @param id.
  * @throws No dispara ninguna excepción.
  */
 public void eliminarCronograma(CronogramaPK id) {
   Cronograma c = iCronograma.findOne(id);
   c.setEstatus(false);
   iCronograma.save(c);
 }