Actions.ValiderCommandeAction.java Source code

Java tutorial

Introduction

Here is the source code for Actions.ValiderCommandeAction.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package Actions;

import com.google.gson.JsonObject;
import com.insa.gustatif.metier.modele.Client;
import com.insa.gustatif.metier.modele.Commande;
import com.insa.gustatif.metier.modele.Livreur;
import com.insa.gustatif.metier.modele.Restaurant;
import com.insa.gustatif.metier.service.ServiceMetier;
import java.io.IOException;
import java.io.PrintWriter;
import static java.lang.Long.parseLong;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

/**
 *
 * @author wth
 */
public class ValiderCommandeAction extends Action {

    @Override
    public void execute(HttpServletRequest request, HttpServletResponse reponse) {
        // Recupere les datas de commande
        System.out.println("Je suis dans action ValiderCommandeAction");
        ConnectionSession connectionSession = ConnectionSession.INSTANCE;
        HttpSession session = request.getSession(true);
        Client client = connectionSession.getUser(request.getSession().getId());
        //Commande commande = connectionSession.getCommandeByClient(client.getId());
        Commande commande = (Commande) session.getAttribute("commande");
        System.out.println(commande);

        //pour trouver si il y un livreur disponible
        List<Livreur> livreurs = ServiceMetier.findAllLivreurs();
        boolean livreurDisponi = false;
        for (Livreur livreur : livreurs) {
            if (livreur.getCmdeEnCours() == null) {
                livreurDisponi = true;
                break;
            }
        }
        System.out.println("livreurDisponi:" + livreurDisponi);

        reponse.setContentType("text/html;charset=UTF-8");
        JsonObject jsonMessage = new JsonObject();
        PrintWriter out = null;
        try {
            out = reponse.getWriter();
        } catch (IOException ex) {
            Logger.getLogger(GetRestaurantsAction.class.getName()).log(Level.SEVERE, null, ex);
        }
        if (livreurDisponi) {
            ServiceMetier.traiterCommande(commande);
            jsonMessage.addProperty("info", "Votre commande est bien valid");
            out.println(jsonMessage);
            out.close();
        } else {
            System.out.println("Dans le cas pas de livreur disponible");
            ServiceMetier.traiterCommande(commande);
            jsonMessage.addProperty("info",
                    "Aucun livreur n'est actuellement disponible pour traiter votre commande. Veuillez ressayer ultrieurement.");
            out.println(jsonMessage);
            out.close();
        }
        session.setAttribute("commande", commande);
        //connectionSession.enregistrerCommande(request.getSession().getId(),commande.getNumCommande());
    }
}