package control; import dao.FabricaDao; import dao.LocacaoDao; import domain.Carro; import domain.Cliente; import domain.GrupoCarro; import domain.Locacao; import java.sql.SQLException; import java.sql.Time; import java.text.DecimalFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Vector; import util.ConexaoException; import util.MinhaException; public class ControladoraLocacao { private int marc; private Vector<Locacao> vetLocacao = new Vector<Locacao>(); public int getMarc() { return marc; } public void setMarc(int marc) { this.marc = marc; } public Vector<Locacao> getVetLocacao() { return vetLocacao; } public Vector linhaLocacaoCompleto(Locacao locacao){ Vector linha = new Vector(); String cobertura; SimpleDateFormat formatoHora = new SimpleDateFormat("HH:mm"); DecimalFormat decimalFormat = new DecimalFormat("#.00"); if (locacao.getCobertura() == true) { cobertura = "Sim"; } else { cobertura = "Não"; } linha.addElement(locacao.getCodLocacao()); linha.addElement(locacao.getCliente().getCodCliente()); linha.addElement(locacao.getCliente().getNome()); linha.addElement(locacao.getCliente().getCpf()); linha.addElement(locacao.getCarro().getCodCarro()); linha.addElement(locacao.getCarro().getModelo()); linha.addElement(locacao.getCarro().getPlaca()); linha.addElement(locacao.getDateLocacao()); linha.addElement(formatoHora.format(locacao.getHoraLocacao())); linha.addElement(locacao.getDataEntrega()); linha.addElement(formatoHora.format(locacao.getHoraEntrega())); linha.addElement(locacao.getQuilometragemInicial()); linha.addElement(locacao.getQuilometragemPrevista()); linha.addElement(cobertura); linha.addElement(decimalFormat.format(locacao.getValorPrevisto())); linha.addElement(locacao.getPlano()); linha.addElement(locacao.getCarro().getChassi()); return linha; } private Vector linhaLocacao(Locacao locacao) { Vector linha = new Vector(); String cobertura; SimpleDateFormat formatoData = new SimpleDateFormat("dd/MM/yyyy"); DecimalFormat decimalFormat = new DecimalFormat("#.00"); if (locacao.getCobertura() == true) { cobertura = "Sim"; } else { cobertura = "Não"; } linha.addElement(locacao.getCodLocacao()); linha.addElement(locacao.getCliente().getNome()); linha.addElement(locacao.getCarro().getModelo()); linha.addElement(locacao.getCarro().getPlaca()); linha.addElement(formatoData.format(locacao.getDateLocacao())); linha.addElement(locacao.getHoraLocacao()); linha.addElement(formatoData.format(locacao.getDataEntrega())); linha.addElement(locacao.getHoraEntrega()); linha.addElement(locacao.getQuilometragemInicial()); linha.addElement(locacao.getQuilometragemPrevista()); linha.addElement(cobertura); linha.addElement(decimalFormat.format(locacao.getValorPrevisto())); return linha; } public void alterarLocacao(Vector locacao) throws MinhaException, SQLException, ParseException, ConexaoException { Locacao loc = this.vetLocacao.get(marc); this.montarLocacao(locacao, loc); LocacaoDao locacaoDao = FabricaDao.getLocacaoDao("JDBC"); locacaoDao.alterarLocacao(loc); } public void inserirLocacao(Vector locacao) throws MinhaException, SQLException, ParseException, ConexaoException { Locacao loc = new Locacao(); this.montarLocacao(locacao, loc); LocacaoDao locacaoDao = FabricaDao.getLocacaoDao("JDBC"); locacaoDao.inserirLocacao(loc); } public void removerLocacao() throws MinhaException, SQLException, ConexaoException { Locacao loc = this.vetLocacao.get(this.marc); LocacaoDao locacaoDao = FabricaDao.getLocacaoDao("JDBC"); locacaoDao.removerLocacao(loc); this.vetLocacao.remove(this.marc); } public Locacao selecionarLocacao(Locacao locacao) { return null; } public Vector<Locacao> selecionarTodasLocacoes() throws MinhaException, SQLException, ConexaoException { LocacaoDao locacaoDao = FabricaDao.getLocacaoDao("JDBC"); this.vetLocacao = locacaoDao.selecionarTodasLocacoes(); return this.vetLocacao; } public Vector obterLinhasLocacao() throws MinhaException, SQLException, ConexaoException { Vector<Locacao> locs = this.selecionarTodasLocacoes(); Vector linhas = new Vector(); for (int i = 0; i < locs.size(); i++) { linhas.add(this.linhaLocacao(locs.get(i))); } return linhas; } private Locacao montarLocacao(Vector locacao, Locacao loc) throws ParseException { SimpleDateFormat formato = new SimpleDateFormat("HH:mm"); Carro carro = new Carro(); Cliente cliente = new Cliente(); GrupoCarro grupoCarro = new GrupoCarro(); Vector client = new Vector((Vector) locacao.get(5)); int codCliente = Integer.parseInt(client.get(0).toString()); Vector car = new Vector((Vector) locacao.get(3)); int codCarro = Integer.parseInt(car.get(0).toString()); cliente.setCodCliente(codCliente); carro.setCodCarro(codCarro); Vector grupo = new Vector((Vector)locacao.get(13)); int codGrupo = Integer.parseInt(grupo.get(0).toString()); grupoCarro.setCodGrupoCarro(codGrupo); carro.setGrupoCarro(grupoCarro); Date dataLocacao = (Date) locacao.get(1); Date dataEntrega = (Date) locacao.get(2); String horaLocacao = (String) locacao.get(6); String horaEntrega = (String) locacao.get(7); Date dL = formato.parse(horaLocacao); Time horaL = new Time(dL.getTime()); Date dE = formato.parse(horaEntrega); Time horaE = new Time(dE.getTime()); int qInicial = Integer.parseInt(car.get(4).toString()); int qPrevista = Integer.parseInt(locacao.get(12).toString()); boolean cobertura; if (locacao.get(9).toString().equals("Sim")) { cobertura = true; } else { cobertura = false; } double val = 0; String valorPrevisto = locacao.get(4).toString(); String valor2 = valorPrevisto.replace(",", "."); val = Double.parseDouble(valor2); loc.setPlano(locacao.get(14).toString()); loc.setDateLocacao(dataLocacao); loc.setDataEntrega(dataEntrega); loc.setHoraLocacao(horaL); loc.setHoraEntrega(horaE); loc.setCobertura(cobertura); loc.setQuilometragemInicial(qInicial); loc.setQuilometragemPrevista(qPrevista); loc.setCarro(carro); loc.setCliente(cliente); loc.setValorPrevisto(val); return loc; } }