Package labsis.vendas.servlets

Source Code of labsis.vendas.servlets.VendasServlet

package labsis.vendas.servlets;

import java.io.IOException;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map.Entry;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import labsis.logistica.dao.DaoProduto;
import labsis.logistica.model.Produto;
import labsis.vendas.dao.DaoCliente;
import labsis.vendas.dao.DaoPedidoVenda;
import labsis.vendas.model.Cliente;
import labsis.vendas.model.PedidoVenda;

public class VendasServlet extends HttpServlet {

  @Override
  protected void doGet(HttpServletRequest req, HttpServletResponse resp)
      throws ServletException, IOException {
    doPost(req, resp);
  }

  @Override
  protected void doPost(HttpServletRequest request,
      HttpServletResponse response) throws ServletException, IOException {
    String message = "";
    RequestDispatcher rd = null;

    // comando vazio
    if (request.getParameter("comm") == null
        || request.getParameter("comm").equals("")) {
      rd = request.getRequestDispatcher("/usuario/jsp/login.jsp");
      rd.forward(request, response);
    }

    // load para a p�gina de pedidos
    else if (request.getParameter("comm").equals("cadastrarCliente")) {
      rd = request
          .getRequestDispatcher("/vendas/jsp/cadastroCliente.jsp");
      rd.forward(request, response);
    }

    // comando de novo cliente
    else if (request.getParameter("comm").equals("novoCliente")) {
      DaoCliente cDao = null;
      String nome = request.getParameter("nome");
      String email = request.getParameter("email");
      String endereco = request.getParameter("endereco");
      String telefone = request.getParameter("fone");
      String rg = request.getParameter("rg");
      String cpf = request.getParameter("cpf");
      try {
        cDao = new DaoCliente();
      } catch (Exception e) {
        message = "Erro de conex�o ao banco de dados! Cria��o";
        e.printStackTrace();
        request.setAttribute("msg", message);
        rd = request
            .getRequestDispatcher("/vendas/jsp/cadastroCliente.jsp");
        rd.forward(request, response);
        return;
      }
      try {
        message = cDao.novoCliente(cpf, nome, rg, endereco, telefone,
            email);
      } catch (Exception e1) {
        e1.printStackTrace();
        message = "Erro de conex�o ao banco de dados! Utiliza��o";
        request.setAttribute("msg", message);
        rd = request
            .getRequestDispatcher("/vendas/jsp/cadastroCliente.jsp");
        rd.forward(request, response);
        return;
      }
      request.setAttribute("msg", message);
      rd = request
          .getRequestDispatcher("/vendas/jsp/cadastroCliente.jsp");
      rd.forward(request, response);
    }

    // load da pagina de Pedido
    else if (request.getParameter("comm").equals("novoPedido")) {
      request.getSession().setAttribute("pedidoItens",
          new HashMap<Produto, Integer>());
      ArrayList<Produto> listaProduto = new ArrayList<Produto>();

      DaoProduto produto = null;
      try {
        produto = new DaoProduto();
        // chama fun��o que lista produtos do banco de dados
        listaProduto = (ArrayList) produto.listaProdutos();
      } catch (Exception e) {
        e.printStackTrace();
      }

      request.setAttribute("listaProduto", listaProduto);
      request.setAttribute("msg", message);
      rd = request.getRequestDispatcher("/vendas/jsp/PedidoVenda.jsp");
      rd.forward(request, response);

    }

    // Grava um novo pedido de venda no banco de dadaos
    else if (request.getParameter("comm").equals("gravarPedido")) {
      HashMap<Produto, Integer> lista = (HashMap) request.getSession()
          .getAttribute("pedidoItens");
      String cpf = request.getParameter("cpf");
      float valorTotal = 0;

      DaoPedidoVenda pv = null;
      try {
        pv = new DaoPedidoVenda();
      } catch (Exception e1) {
        message = "Erro de Banco de Dados! Instanciando DAO";
        e1.printStackTrace();
        request.setAttribute("msg", message);
        rd = request.getRequestDispatcher("/usuarios/jsp/welcome.jsp");
        rd.forward(request, response);
        return;
      }

      for (Entry<Produto, Integer> e : lista.entrySet()) {
        valorTotal += e.getKey().getPrecoDeVenda() * e.getValue();
      }
      try {
        message = pv.novoPedido(cpf, valorTotal, lista);
      } catch (Exception e1) {
        message = "Erro de Banco de Dados!";
        e1.printStackTrace();
        request.setAttribute("msg", message);
        rd = request.getRequestDispatcher("/usuarios/jsp/welcome.jsp");
        rd.forward(request, response);
        return;
      }

      request.getSession().setAttribute("pedidoItens",
          new HashMap<Produto, Integer>());

      ArrayList<Produto> listaProduto = new ArrayList<Produto>();
      request.setAttribute("listaProduto", listaProduto);
      request.setAttribute("msg", message);
      rd = request.getRequestDispatcher("/usuarios/jsp/welcome.jsp");
      rd.forward(request, response);
    }

    // adiciona item de pedido
    else if (request.getParameter("comm").equals("AdicionaItemPedido")) {
      Integer produtoid = Integer.parseInt(request
          .getParameter("produtoid"));
      Integer qtde = Integer.parseInt(request.getParameter("qtde"));
      HashMap<Produto, Integer> lista = (HashMap<Produto, Integer>) request
          .getSession().getAttribute("pedidoItens");
      DaoProduto dp = null;
      ArrayList<Produto> listaProduto = new ArrayList<Produto>();
      try {
        dp = new DaoProduto();

        for (Object o : dp.listaProdutos()) {
          Produto p = (Produto) o;
          if (p.getId() == produtoid) {
            if (lista.containsKey(p)) {
              lista.put(p, lista.get(p) + qtde);
            } else {
              lista.put(p, qtde);
            }
            message = qtde + " item(s) do produto '" + p.getNome()
                + "' adicionado ao pedido!";

            break;
          }

        }
        // Seta uma lista com todos os produtos cadastrados no banco
        listaProduto = (ArrayList<Produto>) dp.listaProdutos();

        request.getSession().setAttribute("pedidoItens", lista);
        request.setAttribute("listaProduto", listaProduto);

      } catch (SQLException e) {
        e.printStackTrace();
      }

      request.setAttribute("msg", message);
      rd = request.getRequestDispatcher("/vendas/jsp/PedidoVenda.jsp");
      rd.forward(request, response);

    }

    // load da pagina de consulta � clientes
    else if (request.getParameter("comm").equals("consultaCliente")) {

      ArrayList<Cliente> listaCliente = new ArrayList<Cliente>();

      try {
        DaoCliente c = new DaoCliente();
        // lista todos os clientes do banco de dados
        listaCliente = (ArrayList) c.listarClientes();

      } catch (Exception e) {
        message = "Erro de Banco de Dados!";
        e.printStackTrace();
        request.setAttribute("msg", message);
        rd = request.getRequestDispatcher("/usuarios/jsp/welcome.jsp");
        rd.forward(request, response);
        return;
      }

      request.setAttribute("listaCliente", listaCliente);
      request.setAttribute("msg", message);
      rd = request
          .getRequestDispatcher("/vendas/jsp/consultaCliente.jsp");
      rd.forward(request, response);

    }

    // load da pagina de consulta aos pedidos
    else if (request.getParameter("comm").equals("consultaPedido")) {

      String cpf = request.getParameter("cpf");
      message = (String)request.getAttribute("msg");

      ArrayList<PedidoVenda> listaPedido = new ArrayList<PedidoVenda>();

      try {
        DaoPedidoVenda dpv = new DaoPedidoVenda();
        // lista todos os clientes do banco de dados
        listaPedido = (ArrayList) dpv.listarPedidos(cpf);

      } catch (Exception e) {
        message = "Erro de Banco de Dados!";
        e.printStackTrace();
        request.setAttribute("msg", message);
        rd = request.getRequestDispatcher("/usuarios/jsp/welcome.jsp");
        rd.forward(request, response);
        return;
      }

      request.setAttribute("listaPedido", listaPedido);
      request.setAttribute("msg", message);
      rd = request.getRequestDispatcher("/vendas/jsp/consultaPedido.jsp");
      rd.forward(request, response);

    }
    // load da pagina de consulta aos pedidos
    else if (request.getParameter("comm").equals("consultaItensPedido")) {
      HashMap<Produto, Integer> listaProdutos = new HashMap<Produto, Integer>();
      String url = "/vendas/jsp/consultaItenPedido.jsp";
      String id = request.getParameter("id");
      try {
        DaoPedidoVenda dpv = new DaoPedidoVenda();
        Integer idVenda = Integer.parseInt(id);
        listaProdutos = dpv.listaProdutosVenda(idVenda);
      } catch (ClassNotFoundException e) {
        message = "Erro de Banco de Dados! ClassNotFoundException";
        url = "/vendas?comm=consultaPedido";
        e.printStackTrace();
      } catch (SQLException e) {
        message = "Erro de Banco de Dados! SQLException";
        url = "/vendas?comm=consultaPedido";
        e.printStackTrace();
      }
      request.setAttribute("listaItensPedido", listaProdutos);
      request.setAttribute("msg", message);
      rd = request
          .getRequestDispatcher(url);
      rd.forward(request, response);
    }

    // comando de cancelar pedido
    else if (request.getParameter("comm").equals("cancelaPedido")) {
      String url = "/vendas?comm=consultaPedido";
      String id = request.getParameter("id");
     
      try {
        DaoPedidoVenda dpv = new DaoPedidoVenda();
        Integer idVenda = Integer.parseInt(id);
        PedidoVenda p = new PedidoVenda();
        p.setId(idVenda);
        p.setStatuid(5);//cancelado!
        message = "Pedido '"+idVenda+"' Cancelado com Sucesso!";
        if(!dpv.updateStatus(p)){
          message = "Erro ao cancelar pedido!";
        }
      } catch (ClassNotFoundException e) {
        message = "Erro de Banco de Dados! ClassNotFoundException";
        e.printStackTrace();
      } catch (SQLException e) {
        message = "Erro de Banco de Dados! SQLException";
        e.printStackTrace();
      }
     
      request.setAttribute("msg", message);
      rd = request
          .getRequestDispatcher(url);
      rd.forward(request, response);

    }
  }
}
TOP

Related Classes of labsis.vendas.servlets.VendasServlet

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.