Package labsis.vendas.dao

Source Code of labsis.vendas.dao.DaoPedidoVenda

package labsis.vendas.dao;

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.Date;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map.Entry;

import labsis.DataBase;
import labsis.logistica.dao.DaoProduto;
import labsis.logistica.model.Produto;
import labsis.vendas.model.PedidoVenda;

public class DaoPedidoVenda {

  private Connection conn;

  public DaoPedidoVenda() throws ClassNotFoundException, SQLException {
    DataBase db = DataBase.getDb();
    Class.forName(db.getDriver());
    conn = DriverManager.getConnection(db.getUrl(), db.getUser(), db
        .getPassword());
  }

  public String novoPedido(String cpf, Float valorTotal,
      HashMap<Produto, Integer> produtos) throws SQLException {

   
    CallableStatement c = conn.prepareCall("listarCliente null,?");
    c.setString(1, cpf);
    ResultSet r = c.executeQuery();
    if (!r.next())//apeas valida se o cliente existe
      return "CPF inv�lido!";
   
    c = conn.prepareCall("exec InserirPedidoVenda ?, ?, ? ");
    c.setString(1, cpf);
    c.setTimestamp(2,new Timestamp(new java.util.Date().getTime()) );
    c.setFloat(3, valorTotal);
    c.executeUpdate();

    c = conn.prepareCall("exec listarPedidosVenda ?, null ");
    c.setString(1, cpf);
    r = c.executeQuery();

    Integer pedidoid = null;
    if (r.next())
      pedidoid = r.getInt(1);
    Iterator<Entry<Produto, Integer>> it = produtos.entrySet().iterator();
    c = conn.prepareCall("inserirPedidoVendaItem ?, ?, ?");
    while (it.hasNext()) {
      Entry<Produto, Integer> e = it.next();
      c.setInt(1, pedidoid);
      c.setInt(2, e.getKey().getId());
      c.setInt(3, e.getValue());
      c.executeUpdate();
    }
    return "Pedido Realizado com Sucesso!";
  }

  public List<PedidoVenda> listarPedidos(String cpf) throws SQLException {
    CallableStatement consultaPedido = null;

    List resultado = new ArrayList();
    try {
      consultaPedido = conn.prepareCall("exec listarPedidosVenda @CPF = ?");

      consultaPedido.setString(1, cpf);

      ResultSet result = consultaPedido.executeQuery();

      PedidoVenda pv = null;

      while (result.next()) {
        pv = new PedidoVenda();
        pv.setId(result.getInt("id"));
        pv.setCpf(result.getString("clienteCpf"));
        pv.setDataVenda(Date.valueOf(result.getString("dataVenda")
            .substring(0, 10)));
        pv.setValorTotal(Float.parseFloat(result
            .getString("valorTotal")));
        pv.setStatus(result.getString("statusid"));

        resultado.add(pv);
      }


    } catch (SQLException e) {
      e.printStackTrace();
    }
    return resultado;
  }
 
  public HashMap<Produto, Integer> listaProdutosVenda(int idVenda) throws SQLException {
    CallableStatement ct1 = conn.prepareCall("exec listarProdutosVenda ? ");
    ct1.setInt(1, idVenda);
    ResultSet rs = ct1.executeQuery();

    HashMap<Produto, Integer> produtos = new HashMap<Produto, Integer>();
    while(rs.next()) {
      Produto p = new Produto();
      p.setId(rs.getInt(1));
      p.setTipoProduto(rs.getInt(2));
      p.setNome(rs.getString(3));
      p.setDescricao(rs.getString(4));
      p.setFabricante(rs.getString(5));
      p.setPesoLiq(rs.getInt(6));
      p.setDimensao(rs.getFloat(7));
      p.setPrecoDeVenda(rs.getFloat(8));
      p.setQuantidade(rs.getInt(9));
      p.setCor(rs.getString(10));
      p.setTamanho(rs.getString(11));
      produtos.put(p, rs.getInt(12));
    }
    return produtos;
  }

  public ArrayList<PedidoVenda> listaPedidoVenda(int statusId) throws SQLException {
    CallableStatement ct = conn.prepareCall("exec listarPedidosVenda @statusid=?");
    ct.setInt(1, statusId);
    ResultSet rs = ct.executeQuery();
   
    ArrayList<PedidoVenda> listaPedidoVenda = new ArrayList<PedidoVenda>();
   
    while(rs.next()) {
      PedidoVenda pv = new PedidoVenda();
      pv.setId(rs.getInt("id"));
      pv.setCpf(rs.getString("clienteCpf"));   
      pv.setDataVenda(Date.valueOf(rs.getString("dataVenda").substring(0, 10)));
      pv.setProdutos(this.listaProdutosVenda(rs.getInt("id")));
      pv.setStatuid(rs.getInt("statusid"));
      pv.setValorTotal(rs.getFloat("valorTotal"));
     
      listaPedidoVenda.add(pv);
    }
   
    return listaPedidoVenda;
  }
 
  //fun��o que atualiza o status de um pedido de venda p
  public boolean updateStatus(PedidoVenda p)throws SQLException{
   
    //prepara a proc para se executada
    CallableStatement ct, ct2 = null;
    ct= conn.prepareCall("exec updateStatusPedidoVenda @pedidoid=?, @statusid=?");
    ct.setInt(1, p.getId());
    ct.setInt(2, p.getStatuid());
   
    // dao de inser��o no contas a paga e receber
   
    if(ct.executeUpdate() > 0){
      return true;
    }
   
    return false;
  }

}
TOP

Related Classes of labsis.vendas.dao.DaoPedidoVenda

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.