package control; import dao.ClienteDao; import dao.FabricaDao; import dao.GrupoCarroDao; import dao.ReservaDao; import dao.TipoCarroDao; import domain.Acessorio; import domain.Cliente; import domain.GrupoCarro; import domain.Reserva; import domain.TipoCarro; import java.text.ParseException; import util.ConexaoException; import java.sql.*; import java.text.SimpleDateFormat; import java.util.*; import java.util.Date; import util.MinhaException; public class ControladoraReserva { private ControladoraGrupoCarro controladoraGrupoCarro = new ControladoraGrupoCarro(); private ReservaDao reservaDao; private ClienteDao clieDao; private Vector<GrupoCarro> grupoCar; private GrupoCarro gCar; private TipoCarro tCar; private TipoCarroDao tipoCarDao; private GrupoCarroDao grupoCarroDao; private Vector<Reserva> vetReservas = new Vector<Reserva>(); private Vector<Cliente> vetCliente = new Vector<Cliente>(); private int marc; public int getMarc() { return marc; } public void setMarc(int marc) { this.marc = marc; } public ControladoraReserva() { this.reservaDao = FabricaDao.getReservaDao("JDBC"); this.grupoCarroDao = FabricaDao.getGrupoCarroDao("JDBC"); this.tipoCarDao = FabricaDao.getTipoCarroDao("JDBC"); } public void inserirNovaReserva(Vector linha) throws MinhaException, SQLException, ParseException, ConexaoException { Reserva reserva = new Reserva(); this.atualizarReserva(reserva, linha); reservaDao.inserirReserva(reserva); } private void atualizarReserva(Reserva reserva, Vector linha) throws ParseException{ java.text.SimpleDateFormat formato = new java.text.SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat form = new SimpleDateFormat("yyyy-MM-dd"); java.util.Date dataLocacao = null, dataEntrega = null; String dataLoca = form.format(linha.get(3)); String dataEntre = form.format(linha.get(5)); dataLocacao = formato.parse(dataLoca); dataEntrega = formato.parse(dataEntre); SimpleDateFormat formatador = new SimpleDateFormat("HH:mm"); Date horaL = formatador.parse(linha.get(4).toString()); Date horaE = formatador.parse(linha.get(6).toString()); Time horaLoca = new Time(horaL.getTime()); Time horaEntre = new Time(horaE.getTime()); GrupoCarro codGc = new GrupoCarro(); codGc.setCodGrupoCarro(Integer.parseInt(linha.get(0).toString())); Cliente codCliente = new Cliente(); codCliente.setCodCliente(Integer.parseInt(linha.get(2).toString())); reserva.setGrupoCarro(codGc); reserva.setCliente(codCliente); reserva.setDataLocacao(dataLocacao); reserva.setHoraLocacao(horaLoca); reserva.setDataEntrega(dataEntrega); reserva.setHoraEntrega(horaEntre); reserva.setValorPrevisto(Float.parseFloat(linha.get(7).toString())); reserva.setCobertura(Boolean.valueOf(linha.get(8).toString())); reserva.setSituacao(false); } private Vector<Cliente> obterCliente(String nomeCliente) throws ConexaoException, SQLException, MinhaException { vetCliente = clieDao.obterCodCliente(nomeCliente); return vetCliente; } private Vector criarLinhaAcessorio(Acessorio acessorio) { Vector linha = new Vector(); linha.addElement(acessorio.getDescAcessorio()); return linha; } private Vector<GrupoCarro> obterGrupoCarro() throws MinhaException, SQLException, ConexaoException { grupoCar = grupoCarroDao.selecionarTodosGrupoCarro(); return grupoCar; } private GrupoCarro obterGrupoCarro(String nome) throws ConexaoException, SQLException, MinhaException { gCar = grupoCarroDao.selecionarGrupoCarro(nome); return gCar; } public Vector obertNomeGrupoCarro() throws MinhaException, SQLException, ConexaoException { Vector<GrupoCarro> grupoCarro = obterGrupoCarro(); Vector linhas = new Vector(); // Montando as linhas for (int i = 0; i < grupoCarro.size(); i++) { GrupoCarro grupoCa = grupoCarro.get(i); linhas.addElement(grupoCa.getNomeGrupo()); } return linhas; } public Vector obertGrupoCarro(String nomeGrupo) throws ConexaoException, SQLException, MinhaException { GrupoCarro grupoCarro = obterGrupoCarro(nomeGrupo); TipoCarro tipoCarro = obterTipoCarro(nomeGrupo); Vector linhas = new Vector(); linhas.addElement(grupoCarro.getNomeGrupo()); linhas.addElement(grupoCarro.getPrecoDiaria()); linhas.addElement(grupoCarro.getPrecoDiariaQuilometrada()); linhas.addElement(grupoCarro.getPrecoCobertura()); linhas.addElement(tipoCarro.getCodTipoCarro()); linhas.addElement(grupoCarro.getCodGrupoCarro()); return linhas; } private TipoCarro obterTipoCarro(String nome) throws ConexaoException, SQLException, MinhaException { tCar = tipoCarDao.selecionarTipoCarro(nome); return tCar; } public Vector obterCodCliente(String nomeCliente) throws ConexaoException, SQLException, MinhaException { Vector<Cliente> clien = obterCliente(nomeCliente); Vector linhas = new Vector(); // Montando as linhas for (int i = 0; i < clien.size(); i++) { Cliente cli = clien.get(i); linhas.addElement(cli.getCodCliente()); } return linhas; } public int quantReservasPorData(Date dataL, Date dataE, Vector grupo) throws MinhaException, SQLException, ParseException, ConexaoException{ GrupoCarro grupoCarro = new GrupoCarro(); grupoCarro = this.controladoraGrupoCarro.atualizarGrupoCarro(grupo); Vector reservasPeriodo = this.selecionarReservasPorIntervaloDeDatas(dataL, dataE, grupoCarro); int nItens = reservasPeriodo.size(); return nItens; } public Vector<Reserva> selecionarReservasPorIntervaloDeDatas(Date dataL, Date dataE, GrupoCarro grupoCarro) throws MinhaException, SQLException, ConexaoException, ParseException{ reservaDao = FabricaDao.getReservaDao("JDBC"); this.vetReservas = reservaDao.selecionarReservasPorIntervaloDeDatas(dataL, dataE, grupoCarro); return this.vetReservas; } private Vector<Reserva> obterReserva(String texto)throws SQLException, ClassNotFoundException, MinhaException, ConexaoException { this.vetReservas = reservaDao.obterReservas(texto); return vetReservas; } public Vector obterLinhasReserva(String texto) throws SQLException, ClassNotFoundException, MinhaException, ConexaoException { Vector<Reserva> reserva = this.obterReserva(texto); Vector linhasReserva = new Vector(); for(int i = 0; i < reserva.size(); i++) { Reserva reserv = reserva.get(i); linhasReserva.addElement(this.criadorLinhaReserva(reserv)); } return linhasReserva; } @SuppressWarnings({"unchecked"}) public Vector criadorLinhaReserva(Reserva res) { Vector linha = new Vector(); boolean cobertura, situacao; linha.addElement(res.getCodReserva()); linha.addElement(res.getGrupoCarro().getNomeGrupo()); linha.addElement(res.getCliente().getNome()); linha.addElement(res.getDataLocacao()); linha.addElement(res.getDataEntrega()); linha.addElement(res.getHoraLocacao()); linha.addElement(res.getHoraEntrega()); linha.addElement(res.getValorPrevisto()); cobertura = res.getCobertura(); situacao = res.getSituacao(); if (cobertura==true){ linha.addElement("Sim"); }else{ linha.addElement("Não"); } if (situacao == true){ linha.addElement("Sim"); }else{ linha.addElement("Não"); } return linha; } public void alterarStatus(Vector linha) throws ParseException, SQLException, ConexaoException, ClassNotFoundException, ClassNotFoundException, MinhaException{ Reserva reserva = new Reserva(); if (linha.get(10).toString().equals("Não")){ reserva.setSituacao(true); }else{ reserva.setSituacao(false); } reserva.setCodReserva(Integer.parseInt(linha.get(0).toString())); reservaDao.alterarStatus(reserva); } public void deletarReserva() throws SQLException, ClassNotFoundException, MinhaException, ConexaoException { Reserva res = this.vetReservas.get(marc); reservaDao.removerReserva(res); this.vetReservas.remove(marc); } public void alterarReserva(Vector linha) throws ConexaoException, SQLException, ParseException, ClassNotFoundException, MinhaException { Reserva reserva = new Reserva(); this.atualizarReserva(reserva, linha); reserva.setCodReserva(Integer.parseInt(linha.get(9).toString())); reservaDao.alterarReserva(reserva); } }