package ManejoBD;
import GeneracionHorarios.Curso;
import GeneracionHorarios.Profesor;
import GeneracionHorarios.Salon;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
public class SalonBD {
private Salon salon;
public SalonBD(Salon salon) {
this.salon =salon;
}
public static void agregarSalon(Salon nuevoSalon, String dia) throws SQLException{
String cadAgregar = "INSERT INTO SALON (salon,dia,horaIni,horaFin,tipo,capacidad,disponible) VALUES (?,?,?,?,?,?,?)";
PreparedStatement pst = AccesoBD.conn.prepareStatement(cadAgregar);
pst.setString(1,nuevoSalon.getNombre());
pst.setString(2,dia);
pst.setInt(3,nuevoSalon.getHoraIni());
pst.setInt(4,nuevoSalon.getHoraFin());
pst.setString(5,nuevoSalon.getTipo());
pst.setInt(6,nuevoSalon.getCapacidad());
pst.setInt(7,1);
pst.executeUpdate();
pst.close();
}
// public static void actualizarSalon(Salon salon) throws SQLException {
// String cadActualizar = "UPDATE SALON SET horaini=?,horafin=?,disponible=? WHERE salon=?";
// PreparedStatement pst = AccesoBD.conn.prepareStatement(cadActualizar);
// pst.setInt(1,salon.getHoraIni());
// pst.setInt(2,salon.getHoraFin());
// pst.setBoolean(3,salon.getDisponible());
// pst.setInt(4,salon.getCodSalon());
// pst.executeUpdate();
// pst.close();
// }
// public static ArrayList<Salon> obtSalonesDisp(Curso curso, int horasAProgramar, int maxSalones,
// String diaClaseAnterior) throws SQLException {
// String dispProfe = " SELECT D.dia, D.horaIni, D.horaFin FROM Dia D WHERE D.codProfesor = ? AND D.disponible =1 order by 1";
// PreparedStatement pst = AccesoBD.conn.prepareStatement(dispProfe);
// ArrayList<Salon> arrSalones = new ArrayList<Salon>();
// String dia;
// int horaI;
// int horaF;
// pst.setString(1,curso.getProfesor().getCodigo());
// ResultSet rs = pst.executeQuery();
// while (rs.next()){
// dia= rs.getString(1);
// horaI= rs.getInt(2);
// horaF= rs.getInt(3);
// Salon salon = new Salon (dia,horaI,horaF);
// arrSalones.add(salon);
// }
//
//
//
// while (rs.next()){
// Salon salon = new Salon (rs.getInt(1),rs.getString(2),rs.getString(3),rs.getInt(4),rs.getString(5),rs.getInt(6),
// rs.getInt(7),rs.getBoolean(8),rs.getInt(9),rs.getInt(10),rs.getInt(11));
// arrSalones.add(salon);
// }
// rs.close();
// pst.close();
// return arrSalones;
// }
// public static Salon buscarSalon(int codSalon) throws SQLException {
// String cadBuscar = "SELECT nombre,tipo, capacidad, dia,horaIni, horaFin,disponible FROM Salon WHERE codSalon = ?;";
// PreparedStatement pst = AccesoBD.conn.prepareStatement(cadBuscar);
// pst.setInt(1,codSalon);
// ResultSet rs = pst.executeQuery();
// rs.next();
// Salon salonBuscado = new Salon(rs.getInt(1),rs.getString(2),rs.getString(3),rs.getInt(4),rs.getString(5),rs.getInt(6),
// rs.getInt(7),rs.getBoolean(8));
// pst.close();
// rs.close();
// return salonBuscado;
// }
static Salon buscarSalon(String nombre,String dia) throws SQLException{
String cadBuscar = "SELECT salon,tipo, capacidad, dia,horaIni, horaFin FROM Salon WHERE salon = ? and dia=?;";
PreparedStatement pst = AccesoBD.conn.prepareStatement(cadBuscar);
pst.setString(1,nombre);
pst.setString(2,dia);
ResultSet rs = pst.executeQuery();
rs.next();
Salon salonBuscado = new Salon(rs.getString(1),rs.getString(2),rs.getInt(3),rs.getString(4),rs.getInt(5),
rs.getInt(6));
pst.close();
rs.close();
return salonBuscado;
}
public static ArrayList<Salon> obtenerDisponibilidad(String nombre) throws SQLException{
String cadBuscar = "SELECT salon,tipo, capacidad, dia,horaIni, horaFin FROM Salon WHERE salon =?;";
PreparedStatement pst = AccesoBD.conn.prepareStatement(cadBuscar);
pst.setString(1,nombre);
ResultSet rs = pst.executeQuery();
ArrayList<Salon> arrDisponibilidad = new ArrayList<Salon>();
Salon salon;
while (rs.next()){
salon = new Salon(rs.getString(1),rs.getString(2),rs.getInt(3),rs.getString(4),rs.getInt(5),
rs.getInt(6));
arrDisponibilidad.add(salon);
}
pst.close();
rs.close();
return arrDisponibilidad;
}
public static ArrayList<String> listarSalones() throws SQLException {
String cadListar = "SELECT distinct(salon) FROM Salon;";
Statement st = AccesoBD.conn.createStatement();
ResultSet rs = st.executeQuery(cadListar);
ArrayList<String> arrSalones = new ArrayList<String>();
while (rs.next()){
arrSalones.add(rs.getString(1));
}
st.close();
rs.close();
return arrSalones;
}
}