/*
* GestionRH
*
* Copyright (C) Maisel Team
*
* GestionRH is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published
* by the Free Software Foundation; either version 2 of the License,
* or (at your option) any later version.
*
* GestionRH is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Cobertura; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
* USA
*/
package recruter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Collection;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import metier.Convocation;
import metier.Dossier;
import rendering.HtmlContent;
import systeme.Recrutement;
/**
*
*
* @version 1.0
* @author Yohann lepage
* @author Alexandre Besnard
* @author Jonathan Morfin
* @author Quentin Rousseau
*/
@WebServlet(name = "ListerDossiers", urlPatterns = {"/ListerDossiers"})
public class ListerDossiers extends HttpServlet {
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {
HtmlContent html = new HtmlContent();
out.println(html.header("Liste des dossiers"));
Recrutement r = new Recrutement();
//Change l'état du dossier si action && id existent.
if(request.getParameter("action") != null && request.getParameter("id") != null)
{
if(request.getParameter("action").equals("qualifier"))
{
try
{
r.qualifier(r.afficherDossier(Long.parseLong(request.getParameter("id"))));
} catch (Exception e) {out.println(html.error(e.getMessage()));}
}
else if (request.getParameter("action").equals("refuser"))
{
try
{
r.refuser(r.afficherDossier(Long.parseLong(request.getParameter("id"))));
} catch (Exception e) {out.println(html.error(e.getMessage()));}
}
else if (request.getParameter("action").equals("valider"))
{
try
{
r.valider(r.afficherDossier(Long.parseLong(request.getParameter("id"))));
} catch (Exception e) {out.println(html.error(e.getMessage()));}
}
}
listerDossiers(r,out);
out.println(html.footer());
} finally {
out.close();
}
}
private void listerDossiers(Recrutement r , PrintWriter out)
{
Collection<Dossier> dossiers = r.listerDossiers();
if(!dossiers.isEmpty())
{
out.println("<br/><table style=\"border: 1px solid white;border-collapse: collapse;margin: auto;\">");
out.println("<thead><tr style=\"text-align:center;\"><th>N° Dossier</th><th>Etat</th><th>Nom</th><th>Prénom</th><th>Titre de l'offre</th><th>Mission de l'offre</th><th>Salaire</th><th>Avis du recruteur</th><th>Qualifier</th><th>Convoquer</th><th>Etat Convocation</th><th>Valider</th><th>Refuser</th></tr></thead>");
for (Dossier doss : dossiers)
{
out.print("<tr style=\"text-align:center;\">");
out.print("<td style=\"border: 1px solid white;padding:0.25em;padding: 5px;\">");
out.print(doss.getId());
out.println("</td>");
out.print("<td style=\"border: 1px solid white;padding:0.25em;padding: 5px;\">");
out.print(doss.getEtat());
out.println("</td>");
out.print("<td style=\"border: 1px solid white;padding:0.25em;padding: 5px;\">");
out.print(doss.getCandidat().getNom());
out.println("</td>");
out.print("<td style=\"border: 1px solid white;padding:0.25em;padding: 5px;\">");
out.print(doss.getCandidat().getPrenom());
out.println("</td>");
out.print("<td style=\"border: 1px solid white;padding:0.25em;padding: 5px;\">");
out.print(doss.getOffre().getTitre());
out.println("</td>");
out.print("<td style=\"border: 1px solid white;padding:0.25em;\">");
out.print(doss.getOffre().getMission());
out.println("</td>");
out.print("<td style=\"border: 1px solid white;padding:0.25em;\">");
out.print(doss.getOffre().getSalaire());
out.println("</td>");
out.print("<td style=\"border: 1px solid white;padding:0.25em;\">");
out.print(doss.getAvisRecruteur());
out.println("</td>");
out.print("<td style=\"border: 1px solid white;padding:0.25em;\"><a href=\"/GestionRH-war/ListerDossiers?action=qualifier&id="+doss.getId()+"\"><img alt=\"qualifier"+doss.getId()+"\" width=\"75px\" src=\"images/emprunter.png\"/></a></td>");
//out.print("<td style=\"border: 1px solid white;padding:0.25em;\">");
if(doss.getCandidat().getConvocations().iterator().hasNext()){
out.print("<td style=\"border: 1px solid white;padding:0.25em;\"><a href=\"/GestionRH-war/ConvoquerCandidat?type=entretien&id="+doss.getCandidat().getId()+"\"><img alt=\"convoquer"+doss.getCandidat().getId()+"\" width=\"75px\" src=\"images/contacts.png\"/></a></td>");
} else {
out.print("<td style=\"border: 1px solid white;padding:0.25em;\"><a href=\"/GestionRH-war/ConvoquerCandidat?id="+doss.getCandidat().getId()+"\"><img alt=\"convoquer"+doss.getCandidat().getId()+"\" width=\"75px\" src=\"images/contacts.png\"/></a></td>");
}
//out.println("</td>");
out.print("<td style=\"border: 1px solid white;padding:0.25em;\">");
if(doss.getCandidat().getConvocations().iterator().hasNext()){
Convocation c = doss.getCandidat().getConvocations().iterator().next();
out.print(c.getType()+" : "+c.getValidation());
} else {
out.print("Non convoqué");
}
out.println("</td>");
out.print("<td style=\"border: 1px solid white;padding:0.25em;\"><a href=\"/GestionRH-war/ListerDossiers?action=valider&id="+doss.getId()+"\"><img alt=\"valider\" width=\"75px\" src=\"images/validCheckBox.png\"/></a></td>");
out.print("<td style=\"border: 1px solid white;padding:0.25em;\"><a href=\"/GestionRH-war/ListerDossiers?action=refuser&id="+doss.getId()+"\"><img width=\"75px\" src=\"images/crossCheckBox.png\"/></a></td>");
out.println("</tr>");
}
} else {HtmlContent html = new HtmlContent(); out.println(html.error("Aucun dossier disponible"));};
out.println("</table>");
}
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP <code>GET</code> method.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
processRequest(request, response);
}
/**
* Handles the HTTP <code>POST</code> method.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Returns a short description of the servlet.
* @return a String containing servlet description
*/
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}