/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package dao;
import controller.operating.Strings;
import model.Contato;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import javax.swing.JOptionPane;
import model.Pessoa;
import controller.PessoaController;
import util.Data;
/**
*
* @author Consult
*/
public class ContatoDAO {
public Contato getContato(String codigo) {
Connection conexao = Conexao.getSqlConnection();
Contato contato = new Contato();
try {
Statement statement = conexao.createStatement();
statement.executeQuery("SELECT * FROM contato " +
"WHERE codigoContato = " + codigo);
ResultSet resultSet = statement.getResultSet();
while (resultSet.next()) {
PessoaController pessoaCtrl = new PessoaController();
Pessoa pessoa = new Pessoa();
pessoa = pessoaCtrl.getPessoa(String.valueOf(resultSet.getInt("codigoPessoa")));
contato = new Contato();
contato.setCodigoContato(resultSet.getInt("codigoContato"));
contato.setHorario(resultSet.getString("horario"));
contato.setTermino(resultSet.getString("termino"));
contato.setData(Data.converteDataMysqlBr(resultSet.getString("data")));
contato.setAssunto(resultSet.getString("assunto"));
contato.setObjetivo(resultSet.getString("objetivo"));
contato.setCanalContato(resultSet.getString("canal"));
contato.setCategoria(resultSet.getString("categoria"));
contato.setPessoa(pessoa);
}
resultSet.close();
statement.close();
} catch (Exception erro) {
JOptionPane.showMessageDialog(null, Strings.getMensagemErroRecuperacao("Contato", erro.getMessage()), Strings.tituloMessageErro, JOptionPane.ERROR_MESSAGE);
}
return contato;
}
public ArrayList<Contato> getContatos() {
Connection conexao = Conexao.getSqlConnection();
ArrayList<Contato> listaDeContatos = new ArrayList<Contato>();
try {
Statement objSTM = conexao.createStatement();
objSTM.executeQuery("SELECT * FROM contato");
ResultSet resultSet = objSTM.getResultSet();
Contato contato;
while (resultSet.next()) {
PessoaController pessoaCtrl = new PessoaController();
Pessoa pessoa = new Pessoa();
pessoa = pessoaCtrl.getPessoa(String.valueOf(resultSet.getInt("codigoPessoa")));
contato = new Contato();
contato.setCodigoContato(resultSet.getInt("codigoContato"));
contato.setHorario(resultSet.getString("horario"));
contato.setTermino(resultSet.getString("termino"));
contato.setData(Data.converteDataMysqlBr(resultSet.getString("data")));
contato.setAssunto(resultSet.getString("assunto"));
contato.setObjetivo(resultSet.getString("objetivo"));
contato.setCanalContato(resultSet.getString("canal"));
contato.setCategoria(resultSet.getString("categoria"));
contato.setPessoa(pessoa);
listaDeContatos.add(contato);
}
resultSet.close();
objSTM.close();
} catch (Exception erro) {
JOptionPane.showMessageDialog(null, Strings.getMensagemErroRecuperacao("Contatos", erro.getMessage()), Strings.tituloMessageErro, JOptionPane.ERROR_MESSAGE);
}
return listaDeContatos;
}
public boolean salvar(Contato pContato) {
Connection conexao = Conexao.getSqlConnection();
try {
Statement statement = conexao.createStatement();
statement.execute(
"INSERT INTO contato " +
"(canal, categoria, horario, data, assunto, objetivo, termino, nomePessoa, codigoPessoa) " +
"VALUES('" + pContato.getCanalContato() + "', '" + pContato.getCategoria() +
"', '" + pContato.getHorario() +
"', '" + Data.converteDataBrMysql(pContato.getData()) +
"', '" + pContato.getAssunto() + "', '" + pContato.getObjetivo() +
"', '" + pContato.getTermino() + "', '" + pContato.getPessoa().getNome() +
"', " + pContato.getPessoa().getCodigoPessoa() + ")");
statement.close();
return true;
} catch (Exception erro) {
JOptionPane.showMessageDialog(null, Strings.getMensagemErroPersitencia("Contato", erro.getMessage()), Strings.tituloMessageErro, JOptionPane.ERROR_MESSAGE);
return false;
}
}
public boolean atualizar(Contato pContato) {
Connection conexao = Conexao.getSqlConnection();
try {
Statement statement = conexao.createStatement();
statement.execute("UPDATE contato " +
"SET canal = '" + pContato.getCanalContato() +
"', categoria = '" + pContato.getCategoria() +
"', data = '" + Data.converteDataBrMysql(pContato.getData()) +
"', horario = '" + pContato.getHorario() +
"', assunto = '" + pContato.getAssunto() +
"', objetivo = '" + pContato.getObjetivo() +
"', termino = '" + pContato.getTermino() +
"', nomePessoa = '" + pContato.getObjetivo() +
"' WHERE codigoPessoa = " + pContato.getPessoa().getCodigoPessoa());
statement.close();
return true;
} catch (Exception erro) {
JOptionPane.showMessageDialog(null, Strings.getMensagemErroEdicao("Contato", erro.getMessage()), Strings.tituloMessageErro, JOptionPane.ERROR_MESSAGE);
return false;
}
}
public boolean excluir(String codigo) {
Connection conexao = Conexao.getSqlConnection();
try {
Statement statement = conexao.createStatement();
statement.execute("DELETE FROM contato WHERE codigoContato = " + codigo);
statement.close();
return true;
} catch (Exception erro) {
JOptionPane.showMessageDialog(null, Strings.getMensagemErroExclusao("Contato", erro.getMessage()), Strings.tituloMessageErro, JOptionPane.ERROR_MESSAGE);
return false;
}
}
public int getMaiorCodigo() {
Connection conexao = Conexao.getSqlConnection();
int intCodigo = 0;
try {
Statement statement = conexao.createStatement();
statement.executeQuery("SELECT MAX(codigoContato) AS codigo FROM contato");
ResultSet resultSet = statement.getResultSet();
while (resultSet.next()) {
intCodigo = resultSet.getInt("codigo");
}
resultSet.close();
statement.close();
} catch (Exception erro) {
JOptionPane.showMessageDialog(null, Strings.getMensagemErroNovoCodigo("Contato", erro.getMessage()), Strings.tituloMessageErro, JOptionPane.ERROR_MESSAGE);
}
return intCodigo;
}
}