/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package dao;
import controller.operating.Strings;
import model.Empresa;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import javax.swing.JOptionPane;
import model.Endereco;
import model.Pessoa;
/**
*
* @author aluno
*/
public class EmpresaDAO {
public Empresa getEmpresa(String codigo) {
Connection conexao = Conexao.getSqlConnection();
Empresa empresa = new Empresa();
try {
Statement statement = conexao.createStatement();
statement.executeQuery("SELECT * " +
"FROM empresa INNER JOIN pessoa ON (empresa.codigoPessoa = pessoa.codigoPessoa)" +
"LEFT JOIN endereco ON (endereco.codigoPessoa = pessoa.codigoPessoa) " +
"WHERE empresa.codigoPessoa = " + codigo);
ResultSet resultSet = statement.getResultSet();
while (resultSet.next()) {
Pessoa pessoa = new Pessoa();
pessoa.setCodigoPessoa(resultSet.getInt("empresa.codigoPessoa"));
Endereco endereco = new Endereco(
resultSet.getString("logradouro"),
resultSet.getString("numero"),
resultSet.getString("bairro"),
resultSet.getString("cep"),
resultSet.getString("complemento"),
resultSet.getString("nomeCidade"),
resultSet.getString("uf"),
pessoa);
empresa = new Empresa();
empresa.setCodigoEmpresa(resultSet.getInt("empresa.codigoPessoa"));
empresa.setCodigoPessoa(resultSet.getInt("codigoEmpresa"));
empresa.setNome(resultSet.getString("nomePessoa"));
empresa.setEmail(resultSet.getString("email"));
empresa.setTelefone(resultSet.getString("telefone"));
empresa.setCelular(resultSet.getString("celular"));
empresa.setRazaosocial(resultSet.getString("fantasia"));
empresa.setCnpj(resultSet.getString("cnpj"));
empresa.setIe(resultSet.getString("ie"));
empresa.setFax(resultSet.getString("fax"));
empresa.setObservacao(resultSet.getString("observacoes"));
empresa.setEndereco(endereco);
}
resultSet.close();
statement.close();
} catch (Exception erro) {
JOptionPane.showMessageDialog(null, Strings.getMensagemErroRecuperacao("Empresa", erro.getMessage()), Strings.tituloMessageErro, JOptionPane.ERROR_MESSAGE);
}
return empresa;
}
public ArrayList<Empresa> getEmpresas() {
Connection conexao = Conexao.getSqlConnection();
ArrayList<Empresa> listaDeEmpresas = new ArrayList<Empresa>();
try {
Statement statement = conexao.createStatement();
statement.executeQuery("SELECT * " +
"FROM empresa INNER JOIN pessoa ON (empresa.codigoPessoa = pessoa.codigoPessoa)" +
"LEFT JOIN endereco ON (endereco.codigoPessoa = pessoa.codigoPessoa)");
ResultSet resultSet = statement.getResultSet();
Empresa empresa;
while (resultSet.next()) {
Pessoa pessoa = new Pessoa();
pessoa.setCodigoPessoa(resultSet.getInt("empresa.codigoPessoa"));
Endereco endereco = new Endereco(
resultSet.getString("logradouro"),
resultSet.getString("numero"),
resultSet.getString("bairro"),
resultSet.getString("cep"),
resultSet.getString("complemento"),
resultSet.getString("nomeCidade"),
resultSet.getString("uf"),
pessoa);
empresa = new Empresa();
empresa.setCodigoEmpresa(resultSet.getInt("empresa.codigoPessoa"));
empresa.setCodigoPessoa(resultSet.getInt("codigoEmpresa"));
empresa.setNome(resultSet.getString("nomePessoa"));
empresa.setEmail(resultSet.getString("email"));
empresa.setTelefone(resultSet.getString("telefone"));
empresa.setCelular(resultSet.getString("celular"));
empresa.setRazaosocial(resultSet.getString("fantasia"));
empresa.setCnpj(resultSet.getString("cnpj"));
empresa.setIe(resultSet.getString("ie"));
empresa.setFax(resultSet.getString("fax"));
empresa.setObservacao(resultSet.getString("observacoes"));
empresa.setEndereco(endereco);
listaDeEmpresas.add(empresa);
}
resultSet.close();
statement.close();
} catch (Exception erro) {
JOptionPane.showMessageDialog(null, Strings.getMensagemErroRecuperacao("Empresas", erro.getMessage()), Strings.tituloMessageErro, JOptionPane.ERROR_MESSAGE);
}
return listaDeEmpresas;
}
public boolean salvar(Empresa pEmpresa) {
Connection conexao = Conexao.getSqlConnection();
try {
Statement statement = conexao.createStatement();
statement.execute( "INSERT INTO empresa " +
"(fantasia, cnpj, ie, fax, observacoes, codigoPessoa) " +
"VALUES('" + pEmpresa.getRazaosocial() + "', '" + pEmpresa.getCnpj() +
"', '" + pEmpresa.getIe() + "', '" + pEmpresa.getFax() + "', '" + pEmpresa.getObservacao() +
"', " + pEmpresa.getCodigoPessoa() + ")");
statement.close();
return true;
} catch (Exception erro) {
JOptionPane.showMessageDialog(null, Strings.getMensagemErroPersitencia("Empresa", erro.getMessage()), Strings.tituloMessageErro, JOptionPane.ERROR_MESSAGE);
return false;
}
}
public boolean atualizar(Empresa pEmpresa) {
Connection conexao = Conexao.getSqlConnection();
try {
Statement statement = conexao.createStatement();
statement.execute("UPDATE empresa " +
"SET fantasia = '" + pEmpresa.getRazaosocial() +
"', cnpj = '" + pEmpresa.getCnpj() +
"', ie = '" + pEmpresa.getIe() +
"', fax = '" + pEmpresa.getFax() +
"', observacoes = '" + pEmpresa.getObservacao() +
"' WHERE codigoPessoa = " + pEmpresa.getCodigoPessoa());
statement.close();
return true;
} catch (Exception erro) {
JOptionPane.showMessageDialog(null, Strings.getMensagemErroEdicao("Empresa", 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 empresa WHERE codigoPessoa = " + codigo);
statement.execute("DELETE FROM pessoa WHERE codigoPessoa = " + codigo);
statement.close();
return true;
} catch (Exception erro) {
JOptionPane.showMessageDialog(null, Strings.getMensagemErroExclusao("Empresa", 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(codigoPessoa) AS codigo FROM pessoa");
ResultSet resultSet = statement.getResultSet();
while (resultSet.next()) {
intCodigo = resultSet.getInt("codigo");
}
resultSet.close();
statement.close();
} catch (Exception erro) {
JOptionPane.showMessageDialog(null, Strings.getMensagemErroNovoCodigo("Empresa", erro.getMessage()), Strings.tituloMessageErro, JOptionPane.ERROR_MESSAGE);
}
return intCodigo;
}
}