Package labsis.logistica.servlets

Source Code of labsis.logistica.servlets.ControllerLogistica

package labsis.logistica.servlets;

import java.io.IOException;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.Date;
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.DataBase;
import labsis.financeiro.dao.DaoFornecedor;
import labsis.financeiro.model.Fornecedor;
import labsis.logistica.dao.DaoCotacao;
import labsis.logistica.dao.DaoPedidoCompra;
import labsis.logistica.dao.DaoProduto;
import labsis.logistica.dao.DaoTipo;
import labsis.logistica.model.Cotacao;
import labsis.logistica.model.PedidoCompra;
import labsis.logistica.model.Produto;
import labsis.vendas.dao.DaoPedidoVenda;
import labsis.vendas.model.PedidoVenda;

public class ControllerLogistica extends HttpServlet {
 
  private void refreshProdutoFornecedor(HttpServletRequest request) throws SQLException {

    DaoProduto daoProduto = new DaoProduto();
    DaoFornecedor daoFornecedor = new DaoFornecedor();

    request.setAttribute("listaFornecedor", daoFornecedor.listarfornecedores());
    request.setAttribute("listaProduto", daoProduto.listaProdutos());
  }

  private void refreshPedidoVenda(HttpServletRequest request) throws ClassNotFoundException, SQLException {

    DaoPedidoVenda daoPedidoVenda = new DaoPedidoVenda();
    ArrayList<PedidoVenda> listaPedidoVendas;

    listaPedidoVendas = daoPedidoVenda.listaPedidoVenda(1); //status == pendente
    request.setAttribute("listaPedidoVendas", listaPedidoVendas);
  }

  private ArrayList<PedidoCompra> refreshPedidoCompra(HttpServletRequest request, int status) throws SQLException, ServletException, IOException {

    DaoPedidoCompra daoPedidoCompra = new DaoPedidoCompra();
    ArrayList<PedidoCompra> listaPedidoCompra;

    listaPedidoCompra = daoPedidoCompra.listaPedidosCompra(status);       
    for(PedidoCompra pc : listaPedidoCompra) {
      HashMap<Produto, Integer> produtos = pc.getProdutos();
    }
   
    request.setAttribute("listaPedidoCompras", listaPedidoCompra);
    return listaPedidoCompra;
  }

  protected void doGet(HttpServletRequest request,
      HttpServletResponse response) throws ServletException, IOException {
    doPost(request, response);
  }

  protected void doPost(HttpServletRequest request,
      HttpServletResponse response) throws ServletException, IOException {

    RequestDispatcher rd = null;
    String jspName = null;
    String message = "";

    if (request.getParameter("comm") != null) {
      jspName = request.getParameter("comm");

      // Cadastro do Produto
      if (jspName.equals("cadastroProduto")) {

        try {
          DaoTipo daoTipo = new DaoTipo();
          request.setAttribute("tiposProduto", daoTipo.listaTipos());

          String action = request.getParameter("action");
          if( action != null && action.equals("salvar")) {

            DaoProduto dProd = new DaoProduto();
            Produto produto = new Produto();

            // produto.setId(Integer.parseInt(request.getParameter("id")));
            produto.setTipoProduto(Integer.parseInt(request.getParameter("tipoProduto")));
            produto.setNome(request.getParameter("nome"));
            produto.setDescricao(request.getParameter("descricao"));
            produto.setFabricante(request.getParameter("fabricante"));
            if (!request.getParameter("pesoLiq").equals(""))
              produto.setPesoLiq(Float.parseFloat(request.getParameter("pesoLiq")));
            if (!request.getParameter("dimensao").equals(""))
              produto.setDimensao(Float.parseFloat(request.getParameter("dimensao")));
            if (!request.getParameter("precoDeVenda").equals(""))
              produto.setPrecoDeVenda(Float.parseFloat(request.getParameter("precoDeVenda")));
            produto.setCor(request.getParameter("cor"));
            produto.setTamanho(request.getParameter("tamanho"));

            if (dProd.insereProduto(produto) > 0) {
              message = "Produto: \"" + request.getParameter("nome") + "\" gravado";
            }
            else {
              message = "Erro na inser��o";
            }
          }
        } catch (SQLException e) {
          e.printStackTrace();
        }

        request.setAttribute("message", message);
        rd = request.getRequestDispatcher("/logistica/jsp/cad_produto.jsp");
        rd.forward(request, response);
      }
      // Avaliar Pedido de Compra
      if (jspName.equals("avaliarPedidoCompra")) {

        try{

          String pedidoId = request.getParameter("id");
          String action = request.getParameter("action");

          if (pedidoId == null) { //nenhum pedido foi selecionado
            refreshPedidoCompra(request, 1);

            rd = request.getRequestDispatcher("/logistica/jsp/avaliar_pedido_compra.jsp");
            rd.forward(request, response);
          }

          else if(action.equals("aprovar")) {
            DataBase db = DataBase.getDb();
            Connection conn = db.getConnection();

            CallableStatement ct = conn.prepareCall("exec updateStatusPedidoCompra @pedidoid=?, @statusid=?");
            ct.setInt(1, Integer.valueOf(pedidoId));
            ct.setInt(2, 2);
            ct.executeUpdate();

            message = "Pedido " + Integer.valueOf(pedidoId) + " aprovado";
            request.setAttribute("message", message);

            refreshPedidoCompra(request, 1);

            rd = request.getRequestDispatcher("/logistica/jsp/avaliar_pedido_compra.jsp");
            rd.forward(request, response);

          }
          else if(action.equals("rejeitar")) {
            DataBase db = DataBase.getDb();
            Connection conn = db.getConnection();

            CallableStatement ct = conn.prepareCall("exec updateStatusPedidoCompra @pedidoid=?, @statusid=?");
            ct.setInt(1, Integer.valueOf(pedidoId));
            ct.setInt(2, 4);
            ct.executeUpdate();

            message = "Pedido " + Integer.valueOf(pedidoId) + " rejeitado";
            request.setAttribute("message", message);

            refreshPedidoCompra(request, 1);

            rd = request.getRequestDispatcher("/logistica/jsp/avaliar_pedido_compra.jsp");
            rd.forward(request, response);
          }

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

      // Avaliar Pedido de Venda
      if (jspName.equals("avaliarPedidoVenda")) {
        try {//iniciar a pagina com os pedidos pendentes

          String pedidoId = request.getParameter("id");
          String action = request.getParameter("action");

          if(pedidoId == null) {
            refreshPedidoVenda(request);

            rd = request.getRequestDispatcher("/logistica/jsp/avaliar_pedido_venda.jsp");
            rd.forward(request, response);

          }
          else if(action.equals("aprovar")) {

            HashMap<Produto, Integer> produtos;
            DaoProduto daoP = new DaoProduto();
            PedidoVenda pv = new PedidoVenda();
            pv.setId(Integer.valueOf(pedidoId));
            pv.setStatuid(2);

            DaoPedidoVenda daoPv = new DaoPedidoVenda();
            daoPv.updateStatus(pv);

            produtos = daoPv.listaProdutosVenda(Integer.valueOf(pedidoId));
            for(Entry e : produtos.entrySet()) {
              Produto p = (Produto)e.getKey();
              daoP.subtractQuantidade(p.getId(), (Integer)e.getValue());
            }

            message = "Pedido " + Integer.valueOf(pedidoId) + " aprovado";
            request.setAttribute("message", message);

            refreshPedidoVenda(request);

            rd = request.getRequestDispatcher("/logistica/jsp/avaliar_pedido_venda.jsp");
            rd.forward(request, response);

          }
          else if(action.equals("rejeitar")) {

            PedidoVenda pv = new PedidoVenda();
            pv.setId(Integer.valueOf(pedidoId));
            pv.setStatuid(4);

            DaoPedidoVenda daoPv = new DaoPedidoVenda();
            daoPv.updateStatus(pv);

            message = "Pedido " + Integer.valueOf(pedidoId) + " rejeitado";
            request.setAttribute("message", message);

            refreshPedidoVenda(request);

            rd = request.getRequestDispatcher("/logistica/jsp/avaliar_pedido_venda.jsp");
            rd.forward(request, response);
          }

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

      // Criar Cota��o
      if (jspName.equals("cotacaoProduto")) {

        if(request.getParameter("listarFornecedores") != null &&
            request.getParameter("listarFornecedores").equals("true")) {

          try {
            DaoFornecedor daoFornecedor = new DaoFornecedor();
            request.setAttribute("listaFornecedor", daoFornecedor.listarfornecedores());

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

          rd = request.getRequestDispatcher("/logistica/jsp/criar_cotacao.jsp");
          rd.forward(request, response);
        }

        else if(request.getParameter("listaProdutos") != null){

          try {
            DaoFornecedor daoFornecedor = new DaoFornecedor();
            DaoCotacao daoCotacao = new DaoCotacao();

            String cnpj = request.getParameter("fornecedor");
            ArrayList<Fornecedor> fornecedores = daoFornecedor.listarfornecedores();
            Fornecedor fornecedorDosProdutos = new Fornecedor();
            for (Fornecedor fornecedor: fornecedores){
              if (fornecedor.getCnpj().equals(cnpj))
                fornecedorDosProdutos = fornecedor;
            }

            request.setAttribute("fornecedorDosProdutos", fornecedorDosProdutos);
            request.setAttribute("listaCotacao", daoCotacao.listaCotacao(fornecedorDosProdutos.getCnpj()));

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

          rd = request.getRequestDispatcher("/logistica/jsp/criar_cotacao.jsp");
          rd.forward(request, response);
        }

        else if (request.getParameter("salvarCotacao") != null){

          try {

            DaoCotacao daoCotacao = new DaoCotacao();

            Cotacao cotacao = new Cotacao();
            java.util.Date dataAtual = new java.util.Date();
            Date dateSql = new Date(dataAtual.getTime());

            DaoProduto daoProduto = new DaoProduto();
            ArrayList<Produto> produtos = (ArrayList<Produto>) daoProduto.listaProdutos();

            for (int i = 0; i < produtos.size(); i++){
              String precoDoProduto = request.getParameter("precoProduto"+produtos.get(i).getId());
              if (precoDoProduto != null && !precoDoProduto.equals("")){
                cotacao.setDataCotacao(dateSql);
                cotacao.setFornecedorCNPJ((request.getParameter("fornecedorCnpj")));
                cotacao.setProdutoId(produtos.get(i).getId());
                cotacao.setPreco(Float.parseFloat(request.getParameter("precoProduto"+produtos.get(i).getId())));
                daoCotacao.salvaCotacao(cotacao);
              }
            }

            message = "Dados gravados";
            request.setAttribute("message", message);

            rd = request.getRequestDispatcher("/logistica/jsp/criar_cotacao.jsp");
            rd.forward(request, response);

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

        else {
          rd = request.getRequestDispatcher("/logistica/jsp/cotacao.jsp");
          rd.forward(request, response);
        }
      }

      // Listar Cota��o
      if (jspName.equals("listaCotacao")) {

        String inicio = request.getParameter("inicio");
        String fim = request.getParameter("fim");

        try {
          DaoCotacao daoCotacao = new DaoCotacao();
          request.setAttribute("listaCotacao", daoCotacao.listaCotacao(inicio, fim));

          DaoFornecedor daoFornecedor = new DaoFornecedor();
          DaoProduto daoProduto = new DaoProduto();

          request.setAttribute("listaFornecedor", daoFornecedor.listarfornecedores());
          request.setAttribute("listaProduto", daoProduto.listaProdutos());

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

        rd = request.getRequestDispatcher("/logistica/jsp/listar_cotacao.jsp");
        rd.forward(request, response);

      }
    }

    // Pedido de Compra
    if (jspName.equals("pedidoCompra")){

      try {
        DaoFornecedor daoFornecedor = new DaoFornecedor();
        request.setAttribute("listaFornecedor", daoFornecedor.listarfornecedores())
      } catch (Exception e) {
        e.printStackTrace();
      }

      if(request.getParameter("listaProdutos") != null){

        try {
          DaoFornecedor daoFornecedor = new DaoFornecedor();

          String cnpj = request.getParameter("fornecedor");
          ArrayList<Fornecedor> fornecedores = daoFornecedor.listarfornecedores();
          Fornecedor fornecedorDosProdutos = new Fornecedor();

          for (Fornecedor fornecedor: fornecedores){
            if (fornecedor.getCnpj().equals(cnpj))
              fornecedorDosProdutos = fornecedor;
          }

          request.setAttribute("fornecedorDosProdutos", fornecedorDosProdutos);
          request.setAttribute("listaProdutosFornecedor", daoFornecedor.listaProdutosDeFornecedores(cnpj));

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

      else if (request.getParameter("salvarPedido") != null){

        try {
          DaoPedidoCompra daoPedidoCompra = new DaoPedidoCompra();
          DaoProduto daoProduto = new DaoProduto();
          PedidoCompra pedidoCompra = new PedidoCompra();

          ArrayList<Produto> produtos = (ArrayList<Produto>) daoProduto.listaProdutos();
          HashMap<Produto, Integer> produtosDaCompra = new HashMap<Produto, Integer>();

          pedidoCompra.setFornecedorCnpj(request.getParameter("fornecedorCnpj"));
          pedidoCompra.setValorTotal(Float.parseFloat("0"));
          java.util.Date dataAtual = new java.util.Date();
          Date dateSql = new Date(dataAtual.getTime());
          pedidoCompra.setDataCompra(dateSql);
          pedidoCompra.setStatusPedido(1);

          for (int i = 0; i < produtos.size(); i++){

            String quantidadeProduto = request.getParameter("quantidadeProduto"+produtos.get(i).getId());

            if (quantidadeProduto != null && !quantidadeProduto.equals("")){
              int qtd = Integer.parseInt(quantidadeProduto);
              Produto produto = new Produto();
              produto.setId(produtos.get(i).getId());
              produtosDaCompra.put(produto, qtd);
            }
          }

          pedidoCompra.setProdutos(produtosDaCompra);
          daoPedidoCompra.salvarPedidoDeCompra(pedidoCompra);

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

        message = "Pedido de compra efetuado";
        request.setAttribute("message", message);
      }

      rd = request.getRequestDispatcher("/logistica/jsp/pedido_compra.jsp");
      rd.forward(request, response);
    }

    if (jspName.equals("produtoFornecedor")) {

      try {
        refreshProdutoFornecedor(request);

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

      rd = request.getRequestDispatcher("/logistica/jsp/produto_fornecedor.jsp");
      rd.forward(request, response);

    }

    // Salvar produto do fornecedor
    if (jspName.equals("salvarProdutoFornecedor")) {

      try {
        DaoProduto daoProduto = new DaoProduto();

        String fornecedorCNPJ = request.getParameter("fornecedor");
        float produtoId = Float.parseFloat(request.getParameter("produto"));

        daoProduto.salvarProdutoDoFornecedor(fornecedorCNPJ, produtoId);

        message = "Dados gravados";
        request.setAttribute("message", message);

        refreshProdutoFornecedor(request);

        rd = request.getRequestDispatcher("/logistica/jsp/produto_fornecedor.jsp");
        rd.forward(request, response);

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

    //Confirmar Recebimento do produto
    if (jspName.equals("confirmarRecebimentoProduto")) {
      String action = request.getParameter("action");
      String produtoId = request.getParameter("id");
      ArrayList<PedidoCompra> listaPedidoCompra;

      if (produtoId == null) { //nenhum pedido foi selecionado
        try{
          listaPedidoCompra = refreshPedidoCompra(request, 2);
        }
        catch(SQLException e) {
          e.printStackTrace();
        }
      }
      else if(action != null && action.equals("aprovar")) {

        int pId = Integer.parseInt(produtoId);
        try{
          DataBase db = DataBase.getDb();
          Connection conn = db.getConnection();
         
          listaPedidoCompra = refreshPedidoCompra(request, 2);

          CallableStatement ct = conn.prepareCall("exec updateStatusPedidoCompra @pedidoid=?, @statusid=?");
          ct.setInt(1, pId);
          ct.setInt(2, 3);
          ct.executeUpdate();
         
          for(PedidoCompra pc : listaPedidoCompra) {
            HashMap<Produto, Integer> listaProduto = pc.getProdutos();
           
            for(Entry e : listaProduto.entrySet()) {
              DaoProduto daoP = new DaoProduto();
              Produto p = (Produto)e.getKey();
              daoP.addQuantidade(p.getId(), (Integer)e.getValue());
            }
           
           
          }
         
          listaPedidoCompra = refreshPedidoCompra(request, 2);

          message = "Pedido de id: " + pId + " aprovado";
          request.setAttribute("message", message);
        }
        catch(SQLException e) {
          e.printStackTrace();
        }
      }
      else if(action != null && action.equals("rejeitar")) {

        int pId = Integer.parseInt(produtoId);
        try{
          DataBase db = DataBase.getDb();
          Connection conn = db.getConnection();

          CallableStatement ct = conn.prepareCall("exec updateStatusPedidoCompra @pedidoid=?, @statusid=?");
          ct.setInt(1, pId);
          ct.setInt(2, 6);
          ct.executeUpdate();
         
          listaPedidoCompra = refreshPedidoCompra(request, 2);

          message = "Pedido de id: " + pId + " rejeitado";
          request.setAttribute("message", message);
        }
        catch(SQLException e) {
          e.printStackTrace();
        }
      }

      rd = request.getRequestDispatcher("/logistica/jsp/confirmar_recebimento_produto.jsp");
      rd.forward(request, response);     
    }
   
    //Reavaliar Recebimento do produto
    if (jspName.equals("reavaliarRecebimentoProduto")) {
      String action = request.getParameter("action");
      String produtoId = request.getParameter("id");
      ArrayList<PedidoCompra> listaPedidoCompra;

      if (produtoId == null) { //nenhum pedido foi selecionado
        try{
          listaPedidoCompra = refreshPedidoCompra(request, 6);
        }
        catch(SQLException e) {
          e.printStackTrace();
        }
      }
      else if(action != null && action.equals("aprovar")) {

        int pId = Integer.parseInt(produtoId);
        try{
          DataBase db = DataBase.getDb();
          Connection conn = db.getConnection();
         
          listaPedidoCompra = refreshPedidoCompra(request, 6);

          CallableStatement ct = conn.prepareCall("exec updateStatusPedidoCompra @pedidoid=?, @statusid=?");
          ct.setInt(1, pId);
          ct.setInt(2, 3);
          ct.executeUpdate();
         
          for(PedidoCompra pc : listaPedidoCompra) {
            HashMap<Produto, Integer> listaProduto = pc.getProdutos();
           
            for(Entry e : listaProduto.entrySet()) {
              DaoProduto daoP = new DaoProduto();
              Produto p = (Produto)e.getKey();
              daoP.addQuantidade(p.getId(), (Integer)e.getValue());
            }
           
           
          }
         
          listaPedidoCompra = refreshPedidoCompra(request, 6);

          message = "Pedido de id: " + pId + " aprovado";
          request.setAttribute("message", message);
        }
        catch(SQLException e) {
          e.printStackTrace();
        }
      }
      else if(action != null && action.equals("cancelar")) {

        int pId = Integer.parseInt(produtoId);
        try{
          DataBase db = DataBase.getDb();
          Connection conn = db.getConnection();

          CallableStatement ct = conn.prepareCall("exec updateStatusPedidoCompra @pedidoid=?, @statusid=?");
          ct.setInt(1, pId);
          ct.setInt(2, 5);
          ct.executeUpdate();
         
          listaPedidoCompra = refreshPedidoCompra(request, 6);

          message = "Pedido de id: " + pId + " cancelado";
          request.setAttribute("message", message);
        }
        catch(SQLException e) {
          e.printStackTrace();
        }
      }

      rd = request.getRequestDispatcher("/logistica/jsp/reavaliar_recebimento_produto.jsp");
      rd.forward(request, response);
    }

  }
}
TOP

Related Classes of labsis.logistica.servlets.ControllerLogistica

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.