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();