package control; import dao.*; import domain.*; import java.text.ParseException; import util.ConexaoException; import java.sql.*; import java.text.DecimalFormat; import java.text.SimpleDateFormat; import java.util.*; import java.util.Date; import util.MinhaException; public class ControladoraEntrega { private EntregaDao entregaDao; private CarroDao carroDao; Vector<Entrega> vetEntregas = new Vector(); private int marc; public int getMarc() { return marc; } public int obterUltimaEntrega() throws SQLException, ConexaoException, ClassNotFoundException, MinhaException { this.vetEntregas = entregaDao.obterEntrega(); return this.vetEntregas.get(0).getCodEntrega(); } public void setMarc(int marc) { this.marc = marc; } public ControladoraEntrega() { this.entregaDao = FabricaDao.getEntregaDao("JDBC"); this.carroDao = FabricaDao.getCarroDao("JDBC"); } public void inserirNovaEntrega(Vector linha) throws MinhaException, SQLException, ParseException, ConexaoException { Entrega entrega = new Entrega(); this.atualizarEntrega(entrega, linha); entregaDao.inserirEntrega(entrega); carroDao.alterarKMDisponibilidade(linha); } private void atualizarEntrega(Entrega entrega, Vector linha) throws ParseException { SimpleDateFormat formatador = new SimpleDateFormat("HH:mm"); Date horaE = formatador.parse(linha.get(3).toString()); Time horaEntre = new Time(horaE.getTime()); java.text.SimpleDateFormat formato = new java.text.SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat form = new SimpleDateFormat("yyyy-MM-dd"); java.util.Date data = null; String entregas = form.format(linha.get(2)); data = formato.parse(entregas); Locacao loca = new Locacao(); loca.setCodLocacao(Integer.parseInt(linha.get(0).toString())); entrega.setLocacao(loca); entrega.setQuilometragemFinal(Integer.parseInt(linha.get(1).toString())); entrega.setDataEntrega(data); entrega.setHoraEntrega(horaEntre); entrega.setValorTotal(Integer.parseInt(linha.get(4).toString())); } private Vector<Entrega> obterEntrega(String texto)throws SQLException, ClassNotFoundException, MinhaException, ConexaoException { this.vetEntregas = entregaDao.obterEntrega(texto); return vetEntregas; } private Vector<Entrega> obterEntrega()throws SQLException, ClassNotFoundException, MinhaException, ConexaoException { this.vetEntregas = entregaDao.obterEntrega(); return vetEntregas; } public Vector obterLinhasEntrega() throws SQLException, ClassNotFoundException, MinhaException, ConexaoException { Vector<Entrega> entrega = this.obterEntrega(); Vector linhasReserva = new Vector(); for(int i = 0; i < entrega.size(); i++) { Entrega entre = entrega.get(i); linhasReserva.addElement(this.criadorLinhaEntrega(entre)); } return linhasReserva; } public Vector obterLinhasEntrega(String texto) throws SQLException, ClassNotFoundException, MinhaException, ConexaoException { Vector<Entrega> entrega = this.obterEntrega(texto); Vector linhasReserva = new Vector(); for(int i = 0; i < entrega.size(); i++) { Entrega entre = entrega.get(i); linhasReserva.addElement(this.criadorLinhaEntrega(entre)); } return linhasReserva; } @SuppressWarnings({"unchecked"}) private Vector criadorLinhaEntrega(Entrega entre) { Vector linha = new Vector(); linha.addElement(entre.getCodEntrega()); linha.addElement(entre.getLocacao().getCodLocacao()); linha.addElement(entre.getQuilometragemFinal()); linha.addElement(entre.getDataEntrega()); linha.addElement(entre.getHoraEntrega()); linha.addElement(entre.getValorTotal()); return linha; } public Vector obterCliente(String cpf) throws ConexaoException, SQLException, MinhaException { Vector client = new Vector(); Cliente cli = this.selecionarClientePorCpf(cpf); client.addElement(cli.getCodCliente()); client.addElement(cli.getNome()); client.addElement(cli.getCpf()); client.addElement(cli.getDataNasc()); client.addElement(cli.getEndereco().getNomeRua()); client.addElement(cli.getEndereco().getNumero()); client.addElement(cli.getEndereco().getNomeBairro()); client.addElement(cli.getEmail()); client.addElement(cli.getTelefone()); client.addElement(cli.getCartaoCredito()); return client; } public Vector obterClientePelaLocacao(String codLocacao) throws ConexaoException, SQLException, MinhaException { Vector consulta = this.selecionarClientePelaLocacao(codLocacao); return consulta; } private Vector criarLinhaAcessorio(Acessorio acessorio) { Vector linha = new Vector(); linha.addElement(acessorio.getDescAcessorio()); return linha; } private Cliente selecionarClientePorCpf(String cpf) throws MinhaException, SQLException, ConexaoException { ClienteDao clientDao = FabricaDao.getClienteDao("JDBC"); Cliente client = clientDao.selecionarClientePorCpf(cpf); return client; } private Vector selecionarClientePelaLocacao(String codLocacao) throws MinhaException, SQLException, ConexaoException { ClienteDao clientDao = FabricaDao.getClienteDao("JDBC"); Vector consult = clientDao.selecionarClientePelaLocacao(codLocacao); return consult; } public Vector obterCarro(String cpf) throws ConexaoException, SQLException, MinhaException { Vector carroCliente = this.selecionarCarroPorCpf(cpf); return carroCliente; } private Vector selecionarCarroPorCpf(String cpf) throws MinhaException, SQLException, ConexaoException { LocacaoDao locacaoDao = FabricaDao.getLocacaoDao("JDBC"); GrupoCarroDao grupoCarroDao = FabricaDao.getGrupoCarroDao("JDBC"); CarroDao carDao = FabricaDao.getCarroDao("JDBC"); Locacao loca = locacaoDao.selecionarCarroPorCpf(cpf); int codCar = loca.getCarro().getCodCarro(); GrupoCarro grupoCar = grupoCarroDao.selecionarGrupoCarroPorCod(codCar); Carro car = carDao.selecionarCarro(codCar); Vector carroCliente = new Vector(); carroCliente.addElement(car.getPlaca()); //0 carroCliente.addElement(grupoCar.getNomeGrupo()); //1 carroCliente.addElement(car.getMarca()); //2 carroCliente.addElement(loca.getQuilometragemInicial()); //3 carroCliente.addElement(loca.getCobertura()); //4 carroCliente.addElement(loca.getValorPrevisto()); //5 carroCliente.addElement(loca.getDateLocacao()); //6 carroCliente.addElement(loca.getDataEntrega()); //7 carroCliente.addElement(grupoCar.getPrecoDiaria()); //8 carroCliente.addElement(grupoCar.getPrecoQuilometroAdicional()); //9 carroCliente.addElement(codCar); //10 carroCliente.addElement(loca.getCodLocacao()); //11 carroCliente.addElement(loca.getPlano()); //12 carroCliente.addElement(grupoCar.getPrecoDiariaQuilometrada()); //13 carroCliente.addElement(grupoCar.getPrecoCobertura()); //14 carroCliente.addElement(car.getModelo()); //15 return carroCliente; } public void deletarEntrega() throws SQLException, ClassNotFoundException, MinhaException, ConexaoException { Entrega entre = this.vetEntregas.get(marc); entregaDao.removerEntrega(entre); this.vetEntregas.remove(marc); } public void alterarEntrega(Vector linha) throws ConexaoException, SQLException, ParseException, ClassNotFoundException, MinhaException { Entrega entre = new Entrega(); this.atualizarEntrega(entre, linha); entre.setCodEntrega(Integer.parseInt(linha.get(6).toString())); entregaDao.alterarEntrega(entre); } }