/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package control;
import dao.ClienteDao;
import dao.FabricaDao;
import domain.Cidade;
import domain.Cliente;
import domain.Endereco;
import java.sql.SQLException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Vector;
import util.ConexaoException;
import util.MinhaException;
/**
*
* @author aluno-info3
*/
public class ControladoraCliente {
private Vector<Cliente> vetClientes = new Vector<Cliente>();
private int marc;
private SimpleDateFormat formatoData = new SimpleDateFormat("dd/MM/yyyy");
public int getMarc() {
return marc;
}
public void setMarc(int marc) {
this.marc = marc;
}
public Vector<Cliente> getVetClientes() {
return vetClientes;
}
public void setVetClientes(Vector<Cliente> vetClientes) {
this.vetClientes = vetClientes;
}
public Vector montarLinhasClientes(Cliente cliente){
Vector novaLinha = new Vector();
String data = formatoData.format(cliente.getDataNasc());
novaLinha.addElement(cliente.getCodCliente());
novaLinha.addElement(cliente.getNome());
novaLinha.addElement(cliente.getCpf());
novaLinha.addElement(cliente.getEmail());
novaLinha.addElement(cliente.getTelefone());
novaLinha.addElement(data);
novaLinha.addElement(cliente.getEndereco().getNomeRua());
novaLinha.addElement(cliente.getEndereco().getNumero());
novaLinha.addElement(cliente.getEndereco().getNomeBairro());
novaLinha.addElement(cliente.getEndereco().getCidade().getNomeCidade());
novaLinha.addElement(cliente.getEndereco().getCidade().getUF().getUF());
return novaLinha;
}
public Vector montarLinhaClienteCompleto(Cliente cliente){
Vector linha = new Vector();
String data = formatoData.format(cliente.getDataNasc());
linha.addElement(cliente.getCodCliente());
linha.addElement(cliente.getNome());
linha.addElement(cliente.getCpf());
linha.addElement(cliente.getEmail());
linha.addElement(cliente.getTelefone());
linha.addElement(data);
linha.addElement(cliente.getLogin());
linha.addElement(cliente.getSenha());
linha.addElement(cliente.getCartaoCredito());
linha.addElement(cliente.getEndereco().getNomeRua());
linha.addElement(cliente.getEndereco().getNumero());
linha.addElement(cliente.getEndereco().getNomeBairro());
linha.addElement(cliente.getEndereco().getCidade().getNomeCidade());
linha.addElement(cliente.getEndereco().getCidade().getUF().getUF());
linha.addElement(cliente.getEndereco().getCidade().getUF().getNomeUF());
return linha;
}
public void criaCliente(Cliente cliente, Vector novoCliente, ControladoraCidade controladoraCidade) throws ParseException, MinhaException, SQLException
{
String novaData = novoCliente.get(2).toString();
java.sql.Date data = new java.sql.Date(formatoData.parse(novaData).getTime());
int numCasa = Integer.parseInt(novoCliente.get(4).toString());
Cidade cidade = new Cidade();
cidade = controladoraCidade.getVetCidades().get(controladoraCidade.getMarc());
Endereco endereco = new Endereco();
endereco.setNomeRua(novoCliente.get(3).toString());
endereco.setNumero(numCasa);
endereco.setNomeBairro(novoCliente.get(5).toString());
endereco.setCidade(cidade);
cliente.setNome(novoCliente.get(0).toString());
cliente.setCpf(novoCliente.get(1).toString());
cliente.setDataNasc(data);
cliente.setEndereco(endereco);
cliente.setEmail(novoCliente.get(8).toString());
cliente.setTelefone(novoCliente.get(9).toString());
cliente.setCartaoCredito(novoCliente.get(10).toString());
cliente.setLogin(novoCliente.get(11).toString());
cliente.setSenha(novoCliente.get(12).toString());
}
public void inserirCliente(Vector novoCliente, ControladoraCidade controladoraCidade) throws ParseException, SQLException, MinhaException, ConexaoException
{
Cliente cliente = new Cliente();
this.criaCliente(cliente, novoCliente, controladoraCidade);
ClienteDao clienteDao = FabricaDao.getClienteDao("JDBC");
clienteDao.inserirCliente(cliente);
}
public void alterarCliente (Vector alteracaoCliente, ControladoraCidade controladoraCidade) throws ParseException, MinhaException, SQLException, ConexaoException
{
Cliente cliente = this.vetClientes.get(getMarc());
this.criaCliente(cliente, alteracaoCliente, controladoraCidade);
ClienteDao clienteDao = FabricaDao.getClienteDao("JDBC");
clienteDao.alterarCliente(cliente);
}
public void removerCliente () throws MinhaException, SQLException, ConexaoException
{
Cliente cliente = this.vetClientes.get(getMarc());
ClienteDao clienteDao = FabricaDao.getClienteDao("JDBC");
clienteDao.removerCliente(cliente);
this.vetClientes.remove(marc);
}
public Vector<Cliente> selecionarTodosClientes () throws MinhaException, SQLException, ConexaoException
{
ClienteDao clienteDao = FabricaDao.getClienteDao("JDBC");
this.vetClientes = clienteDao.selecionarTodosClientes();
return this.vetClientes;
}
public Cliente selecionarClientePorCpf(String cpf) throws SQLException, MinhaException, ConexaoException
{
ClienteDao clienteDao = FabricaDao.getClienteDao("JDBC");
Cliente cliente = clienteDao.selecionarClientePorCpf(cpf);
return cliente;
}
public Vector obterCliente(String cpf) throws SQLException, MinhaException, ConexaoException
{
Vector clienteBuscado = new Vector();
Cliente cliente = this.selecionarClientePorCpf(cpf);
clienteBuscado.addElement(cliente.getCodCliente());
clienteBuscado.addElement(cliente.getNome());
clienteBuscado.addElement(cliente.getCpf());
clienteBuscado.addElement(cliente.getDataNasc());
clienteBuscado.addElement(cliente.getEndereco().getNomeRua());
clienteBuscado.addElement(cliente.getEndereco().getNumero());
clienteBuscado.addElement(cliente.getEndereco().getNomeBairro());
clienteBuscado.addElement(cliente.getEmail());
clienteBuscado.addElement(cliente.getTelefone());
clienteBuscado.addElement(cliente.getCartaoCredito());
clienteBuscado.addElement(cliente.getEndereco().getCidade().getCodCidade());
clienteBuscado.addElement(cliente.getEndereco().getCidade().getNomeCidade());
clienteBuscado.addElement(cliente.getEndereco().getCidade().getUF().getUF());
return clienteBuscado;
}
public Vector obterLinhasClientes() throws MinhaException, SQLException, ConexaoException
{
Vector<Cliente> clientes = this.selecionarTodosClientes();
Vector linhas = new Vector();
for(int i = 0; i < clientes.size(); i++){
Cliente cliente = clientes.get(i);
linhas.addElement(this.montarLinhasClientes(cliente));
}
return linhas;
}
}