String richiestaFerie(Richiesta r) {String esito = null, query = "INSERT INTO ferie (idDipendente, dataInizio, dataFine, numGiorni, stato) values (?,?,?,?,?)";PreparedStatement pst = conn.prepareStatement(query);pst.setInt(1, r.getMatricola());pst.setDate(2, new java.sql.Date(r.getDataInizio().getTime()));pst.setDate(3, new java.sql.Date(r.getDataFine().getTime()));pst.setInt(4, r.getNrTotGG());pst.setString(5, r.getStato());pst.executeUpdate();esito = "Richiesta ferie inserita correttamente per il dipendente con matricola "+r.getMatricola();return esito;}
String visualizzaResiduo(String ricevuto) {String esito=null;
String query="SELECT residuoFerie FROM dipendenti WHERE idDipendente=?";
PreparedStatement pst=conn.prepareStatement(query);
pst.setInt(1, Integer.parseInt(ricevuto));
ResultSet rs=pst.executeQuery();
while(rs.next()){esito="Le ferie residue del dipendente con matricola "+ricevuto+" sono pari a "+rs.getInt("residuoFerie");}
return esito;}
ArrayList<Richiesta> ferieDaApprovare() {ArrayList<Richiesta> ferie=new ArrayList<Richiesta>();
String query="SELECT * FROM ferie WHERE stato='Da approvare'";
int matricola,numGiorni;
Date dataInizio,dataFine;
try {PreparedStatement pst=conn.prepareStatement(query);
ResultSet rs=pst.executeQuery();
ResultSetMetaData rsmd=rs.getMetaData();
while(rs.next()){System.out.println("Sono nel while, quindi rs has next");
Richiesta r=new Richiesta(rs.getInt("idDipendente"),rs.getDate("dataInizio"),rs.getDate("dataFine"),rs.getInt("numGiorni"),rs.getString("stato"));ferie.add(r);}} catch (SQLException ex) {return ferie;}return ferie;}
String approvaFerie(Integer matricola) {String esito="";
String query="UPDATE dipendenti SET residuoFerie=residuoFerie-(SELECT numGiorni FROM FERIE where idDipendente=? AND stato='Da approvare') WHERE idDipendente=?";
String query2="UPDATE ferie SET stato='approvato' WHERE idDipendente=?";
try {PreparedStatement pst=conn.prepareStatement(query);
PreparedStatement pst2=conn.prepareStatement(query2);
pst.setInt(1, matricola);
pst.setInt(2, matricola);
pst2.setInt(1, matricola);
pst.executeUpdate();
pst2.executeUpdate();
esito="Ferie approvate correttamente per il dipendente con matricola "+matricola;} catch (SQLException ex) {esito="Errore durante l'approvazione "+ex;}return esito;}
ArrayList<Dipendente> stampaAssenti(String msgricevuto) {ArrayList<Dipendente> lista=new ArrayList<Dipendente>();
String query="SELECT d.* FROM dipendenti d, ferie f WHERE d.idDipendente=f.idDipendente AND dataInizio<=? AND dataFine>=? AND f.stato='approvato'";
try {PreparedStatement pst=conn.prepareStatement(query);
pst.setString(1, msgricevuto);pst.setString(2, msgricevuto);
ResultSet rs=pst.executeQuery();
ResultSetMetaData rsmd=rs.getMetaData();
while(rs.next()){System.out.println("Sono nel while, quindi rs has next");
Dipendente d=new Dipendente(rs.getString("codFiscale"),rs.getString("nome"),rs.getString("cognome"),rs.getInt("idDipendente"),0,0);lista.add(d);}} catch (SQLException ex) {return lista;}return lista;}