public List<ReservaHora> reservasCliente(String rut) {
   List<ReservaHora> reservas = reservaHoraDAOImpl.listar();
   List<ReservaHora> reservasFiltro = new ArrayList<ReservaHora>();
   for (ReservaHora reservaCli : reservas) {
     if (reservaCli.getIdrutcliente().getRut().equals(rut)) {
       reservasFiltro.add(reservaCli);
     }
   }
   return reservasFiltro;
 }
 public List<ReservaHora> reservasEspecilista(String rut) {
   List<ReservaHora> reservas = reservaHoraDAOImpl.listar();
   List<ReservaHora> reservasFiltro = new ArrayList<ReservaHora>();
   DemoLogFile.info("Se han listado las reservas del especialista " + rut);
   for (ReservaHora reservaCli : reservas) {
     if (reservaCli.getIdhora().getIdrutuser().getRut().equals(rut)) {
       reservasFiltro.add(reservaCli);
     }
   }
   return reservasFiltro;
 }
 public List<ReservaHora> reservasEspecilistaF(String rut, String fecha) {
   SimpleDateFormat formato = new SimpleDateFormat("yyyy-MM-dd");
   List<ReservaHora> reservas = new ArrayList<ReservaHora>();
   reservas = reservaHoraDAOImpl.listar();
   DemoLogFile.info(
       "Se ha consultado sobre las reservas del rut " + rut + " en la fecha " + fecha);
   List<ReservaHora> reservasFiltro = new ArrayList<ReservaHora>();
   for (ReservaHora reservaCli : reservas) {
     if (reservaCli.getIdhora().getIdrutuser().getRut().equals(rut)) {
       if (formato.format(reservaCli.getIdhora().getIdcalentadrio().getFecha()).equals(fecha))
         reservasFiltro.add(reservaCli);
     }
   }
   return reservasFiltro;
 }
  public String deleteReserva(Integer id) {
    try {
      SimpleDateFormat formato = new SimpleDateFormat("yyyy-MM-dd");
      reservaHora = reservaHoraDAOImpl.find(id);
      DemoLogFile.info(
          "Se ha borrado la reserva del cliente" + reservaHora.getIdrutcliente().getRut());
      horasDsponibles = horasDsponiblesDAOImpl.find(reservaHora.getIdhora().getId());
      horasDsponibles.setEstado(true);
      horasDsponiblesDAOImpl.update(horasDsponibles);
      emailCancel =
          new Email(
              reservaHora.getIdrutcliente().getCorreo(),
              "Reserva de hora",
              "Estimado cliente se ha anulado una hora con el sicologo o especialista "
                  + reservaHora.getIdhora().getIdrutuser().getNombres()
                  + " "
                  + reservaHora.getIdhora().getIdrutuser().getApellidos()
                  + ", con un valor de $"
                  + reservaHora.getIdhora().getValor()
                  + " para el dia "
                  + formato.format(reservaHora.getIdhora().getIdcalentadrio().getFecha())
                  + " dentro del modulo "
                  + reservaHora.getIdhora().getIdmodulo().getIncio().toString().substring(10, 20)
                  + " - "
                  + reservaHora.getIdhora().getIdmodulo().getTermino().toString().substring(10, 20)
                  + ".\nSaludos estimado cliente");
      String mensajeMail = "";
      if (emailCancel.sendMail()) {
        mensajeMail =
            ", se ha enviado un correo al cliente con la informacion de la cancelacion de la hora";
      } else {
        mensajeMail =
            ", pero se registro un problema al enviar la informacion al correo del cliente";
      }
      reservaHoraDAOImpl.delete(reservaHora);

      return "Se ha borrado con exito su cita" + mensajeMail;
    } catch (Exception error) {
      DemoLogFile.error("Error al procesar el borrado de una cita");
      return "Ha existido un problema al realizar su peticion por favor intente otra vez";
    }
  }