package com.ebiznext.sbt.sample.reception.webapp;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.ebiznext.sbt.sample.ServiceLocator;
import com.ebiznext.sbt.sample.reception.service.ReceptionService;
import com.ebiznext.sbt.sample.reception.vo.CommandeAReceptionner;
import com.ebiznext.sbt.sample.reception.vo.UserToken;
import com.ebiznext.sbt.sample.utils.Utils;
/**
* Servlet implementation class RechercherCommandeServlet
*/
public class RechercherDetailCommandeAReceptionnerServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private static final Logger LOGGER = Logger.getLogger(RechercherDetailCommandeAReceptionnerServlet.class.getName());
/**
* @see HttpServlet#HttpServlet()
*/
public RechercherDetailCommandeAReceptionnerServlet() {
super();
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
* response)
*/
@SuppressWarnings("unchecked")
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException,
IOException {
final String numeroCommande = request.getParameter("numeroCommande");
final List<String> services = (List<String>) request.getAttribute("services");
List<CommandeAReceptionner> commandesAReceptionner = new ArrayList<CommandeAReceptionner>();
try {
final String service = "edifice.reception";
if(services.contains(service)){
UserToken userToken = (UserToken) request.getAttribute(service);
final ReceptionService receptionService = ServiceLocator.instance().getReceptionService();
final CommandeAReceptionner[] commandes = receptionService.rechercherDetailCommandeAReceptionner(
userToken.getLogin(), userToken.getPassword(), numeroCommande);
List<CommandeAReceptionner> cmds = Arrays.asList(commandes);
commandesAReceptionner.addAll(cmds);
}
Collections.sort(commandesAReceptionner, new Comparator<CommandeAReceptionner>(){
@Override
public int compare(CommandeAReceptionner o1, CommandeAReceptionner o2) {
final long date1 = o1.getLignes() != null && o1.getLignes().length > 0 ? o1
.getLignes()[0].getDateLivraison().getTime() : 0;
final long date2 = o2.getLignes() != null && o2.getLignes().length > 0 ? o2
.getLignes()[0].getDateLivraison().getTime() : 0;
long compare = date1 - date2;
return (int) compare;
}
});
String json = Utils.jsonOutput(commandesAReceptionner);
LOGGER.info("responseValue=" + json);
response.setContentType("application/json");
final ServletOutputStream outputStream = response.getOutputStream();
outputStream.print(json);
outputStream.flush();
} catch (Exception e) {
LOGGER.log(Level.WARNING, e.getMessage(), e);
LOGGER.info("responseValue=" + HttpServletResponse.SC_BAD_REQUEST);
((HttpServletResponse) response).sendError(HttpServletResponse.SC_BAD_REQUEST);
}
}
}