package labsis.logistica.dao;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.Date;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import labsis.DataBase;
import labsis.logistica.model.Cotacao;
public class DaoCotacao {
private Connection conn;
public DaoCotacao() throws SQLException {
DataBase db = DataBase.getDb();
conn = db.getConnection();
}
public ArrayList<Cotacao> listaCotacao(String cnpj){
ArrayList<Cotacao> resultado = new ArrayList<Cotacao>();
try {
CallableStatement consultaCotacao = null;
consultaCotacao = conn.prepareCall("exec listarCotacao ?, ?, ?");
consultaCotacao.setString("@cnpj", cnpj);
consultaCotacao.setDate("@dataInicio", null);
consultaCotacao.setDate("@dataFim", null);
ResultSet result = consultaCotacao.executeQuery();
Cotacao cotacao = null;
while (result.next()){
cotacao = new Cotacao();
cotacao.setDataCotacao(result.getDate("dataCotacao"));
cotacao.setFornecedorCNPJ(result.getString("fornecedorCnpj"));
cotacao.setPreco(result.getFloat("preco"));
cotacao.setId(result.getInt("id"));
cotacao.setProdutoId(result.getInt("produtoId"));
cotacao.setNomeProduto(result.getString(3));
cotacao.setNomeFornecedor(result.getString(5));
resultado.add(cotacao);
}
consultaCotacao.close();
}catch (SQLException e) {
e.printStackTrace();
}
return resultado;
}
public ArrayList<Cotacao> listaCotacao(String cnpj, int produtoId){
ArrayList<Cotacao> resultado = new ArrayList<Cotacao>();
try {
CallableStatement consultaCotacao = null;
consultaCotacao = conn.prepareCall("exec listarCotacao ?, ?");
consultaCotacao.setString(1, cnpj);
consultaCotacao.setInt(2, produtoId);
ResultSet result = consultaCotacao.executeQuery();
Cotacao cotacao = null;
while (result.next()){
cotacao = new Cotacao();
cotacao.setDataCotacao(result.getDate("dataCotacao"));
cotacao.setFornecedorCNPJ(result.getString("fornecedorCnpj"));
cotacao.setPreco(result.getFloat("preco"));
cotacao.setId(result.getInt("id"));
cotacao.setProdutoId(result.getInt("produtoId"));
cotacao.setNomeProduto(result.getString(3));
cotacao.setNomeFornecedor(result.getString(5));
resultado.add(cotacao);
}
consultaCotacao.close();
}catch (SQLException e) {
e.printStackTrace();
}
return resultado;
}
public ArrayList<Cotacao> listaCotacao(String inicio, String fim){
ArrayList<Cotacao> resultado = new ArrayList<Cotacao>();
try {
CallableStatement consultaCotacao = null;
consultaCotacao = conn.prepareCall("exec listarCotacao ?, ?, ?");
consultaCotacao.setString("@cnpj", null);
consultaCotacao.setDate("@dataInicio", Date.valueOf(inicio));
consultaCotacao.setDate("@dataFim", Date.valueOf(fim));
ResultSet result = consultaCotacao.executeQuery();
Cotacao cotacao = null;
while (result.next()){
cotacao = new Cotacao();
cotacao.setDataCotacao(result.getDate("dataCotacao"));
cotacao.setFornecedorCNPJ(result.getString("fornecedorCnpj"));
cotacao.setPreco(result.getFloat("preco"));
cotacao.setId(result.getInt("id"));
cotacao.setProdutoId(result.getInt("produtoId"));
cotacao.setNomeProduto(result.getString(3));
cotacao.setNomeFornecedor(result.getString(5));
resultado.add(cotacao);
}
consultaCotacao.close();
}catch (SQLException e) {
e.printStackTrace();
}
return resultado;
}
public void salvaCotacao(Cotacao cotacao){
try{
CallableStatement cstmt = conn.prepareCall("exec inserirCotacao ?,?,?,?");
cstmt.setInt(1,cotacao.getProdutoId());
cstmt.setString(2, cotacao.getFornecedorCNPJ());
cstmt.setFloat(3, cotacao.getPreco());
cstmt.setDate(4, cotacao.getDataCotacao());
cstmt.executeUpdate();
cstmt.close();
}catch (SQLException e) {
e.printStackTrace();
}
}
}