@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
YFEmployee user = (YFEmployee) req.getSession().getAttribute("user");
YFTable table = new YFTable();
table.setRestaurant(user.getRestaurant());
boolean isOk = true;
if (req.getParameter("id") != null && !req.getParameter("id").isEmpty()) {
try {
if (user.getRestaurant() != null) {
// On récupère déjà l'utilisateur pour voir s'il est dans le restaurant du connecté
table = tableService.getTable(Long.parseLong(req.getParameter("id")), user.getRestaurant().getId());
if (table == null) {
req.setAttribute("idError", "Une erreur est survenue lors de la mise à jour de la table");
isOk = false;
}
} else {
req.setAttribute("idError", "Une erreur est survenue lors de la mise à jour de la table");
isOk = false;
}
req.setAttribute("isTableEdition", true);
} catch (Exception e) {
System.out.println("ID en chaine de caractères.");
req.setAttribute("idError", "Une erreur est survenue lors de la mise à jour de la table");
isOk = false;
}
}
YFArea area = null;
if (req.getParameter("area") != null && !req.getParameter("area").isEmpty()) {
try {
// Vérifier que le secteur appartient bien au restaurant
area = areaService.getArea(Long.parseLong(req.getParameter("area")), user.getRestaurant().getId());
if (area != null) {
table.setArea(area);
} else {
req.setAttribute("areaError", "Le secteur n'existe pas.");
isOk = false;
}
} catch (Exception e) {
req.setAttribute("areaError", "Le secteur n'existe pas.");
isOk = false;
}
} else {
req.setAttribute("areaError", "Ne doit pas être vide.");
isOk = false;
}
if (req.getParameter("name") == null || req.getParameter("name").isEmpty()) {
req.setAttribute("nameError", "Ne doit pas être vide.");
isOk = false;
} else {
table.setName(req.getParameter("name"));
}
if (req.getParameter("seatNumber") == null || req.getParameter("seatNumber").isEmpty()) {
req.setAttribute("seatNumberError", "Ne doit pas être vide.");
isOk = false;
} else {
try {
table.setSeatNumber(Integer.parseInt(req.getParameter("seatNumber")));
} catch (Exception e) {
isOk = false;
req.setAttribute("seatNumberError", "Doit être un nombre.");
}
}
if (isOk) {
if (table.getId() == null || table.getId() == 0) {
table.setState(YFTableState.AVAILABLE);
tableService.createTable(table);
} else {
tableService.updateTable(table);
}