package control;
import dao.FabricaDao;
import dao.GrupoCarroDao;
import dao.GrupoCarroJDBCDao;
import domain.Acessorio;
import domain.Carro;
import domain.GrupoCarro;
import domain.TipoCarro;
import java.sql.SQLException;
import java.text.DecimalFormat;
import java.text.ParseException;
import java.util.Vector;
import util.ConexaoException;
import util.MinhaException;
public class ControladoraGrupoCarro {
private GrupoCarro gc = new GrupoCarro();
private Vector<GrupoCarro> vetGrupos = new Vector<GrupoCarro>();
private int marc;
public int getMarc() {
return marc;
}
public void setMarc(int marc) {
this.marc = marc;
}
public Vector<GrupoCarro> getVetGrupos() {
return vetGrupos;
}
public void setVetGrupos(Vector<GrupoCarro> vetGrupos) {
this.vetGrupos = vetGrupos;
}
public GrupoCarro atualizarGrupoCarro(Vector linhaGrupo) throws ParseException
{
GrupoCarro grupo = new GrupoCarro();
DecimalFormat dF = new DecimalFormat();
int codGrupo = Integer.parseInt(linhaGrupo.get(0).toString());
double diaria = (Double) linhaGrupo.get(2);//dF.parse(linhaGrupo.get(2).toString());
double diariaQuilometrada = (Double) linhaGrupo.get(3);//dF.parse(linhaGrupo.get(3).toString());
double cobertura = (Double) linhaGrupo.get(4);//dF.parse(linhaGrupo.get(4).toString());
grupo.setCodGrupoCarro(codGrupo);
grupo.setNomeGrupo(linhaGrupo.get(1).toString());
grupo.setPrecoDiaria(diaria);
grupo.setPrecoDiariaQuilometrada(diariaQuilometrada);
grupo.setPrecoCobertura(cobertura);
//grupo.setTipoCarro(val);
//grupo.setAcessorios(linhaGrupo);
return grupo;
}
private GrupoCarro criaGrupo(Vector grupo, ControladoraTipoCarro controladoraTipoCarro, Vector acessorios) throws ParseException{
DecimalFormat dff = (DecimalFormat) DecimalFormat.getInstance();
GrupoCarro grp = new GrupoCarro();
TipoCarro tipo = controladoraTipoCarro.getVetTipoCarro().get(controladoraTipoCarro.getMarc());
Vector<Acessorio> acc = new Vector<Acessorio>();
for(int i = 0; i < acessorios.size(); i++){
acc.addElement((Acessorio) acessorios.get(i));
}
String sDiaria = grupo.get(1).toString();
sDiaria.replace(",", ".");
String sDiariaQuilometrada = grupo.get(1).toString();
sDiariaQuilometrada.replace(",", ".");
String cob = grupo.get(1).toString();
cob.replace(",", ".");
String adicional = grupo.get(1).toString();
adicional.replace(",", ".");
Number diaria = dff.parse(sDiaria);
Number diariaQuilometrada = dff.parse(sDiariaQuilometrada);
Number cobertura = dff.parse(cob);
Number adicionalQuilometro = dff.parse(adicional);
grp.setNomeGrupo(grupo.get(0).toString());
grp.setPrecoDiaria((Double)diaria);
grp.setPrecoDiariaQuilometrada((Double)diariaQuilometrada);
grp.setPrecoCobertura((Double)cobertura);
grp.setPrecoQuilometroAdicional((Double)adicionalQuilometro);
grp.setTipoCarro(tipo);
grp.setAcessorios(acc);
return grp;
}
public Vector montarLinhaGrupoCarro(GrupoCarro gc){
DecimalFormat format = new DecimalFormat("#.00");
Vector linha = new Vector();
linha.add(gc.getCodGrupoCarro());
linha.add(gc.getNomeGrupo());
linha.add(gc.getTipoCarro().getNomeTipoCarro());
linha.add(format.format(gc.getPrecoDiaria()));
linha.add(format.format(gc.getPrecoDiariaQuilometrada()));
linha.add(format.format(gc.getPrecoCobertura()));
linha.add(format.format(gc.getPrecoQuilometroAdicional()));
return linha;
}
public void inserirGrupoCarro(Vector grupo, ControladoraTipoCarro controladoraTipoCarro, Vector acessorios ) throws MinhaException, SQLException, ParseException, ConexaoException{
GrupoCarro grupoCarro = this.criaGrupo(grupo, controladoraTipoCarro, acessorios);
GrupoCarroDao grupoCarroDao = FabricaDao.getGrupoCarroDao("JDBC");
grupoCarroDao.inserirGrupoCarro(grupoCarro);
}
public void alterarGrupoCarro(Vector grupo, ControladoraTipoCarro controladoraTipoCarro, Vector acessorios ) throws MinhaException, SQLException{
}
public void removerGrupoCarro() throws MinhaException, SQLException, ConexaoException{
GrupoCarroDao grupoCarroDao = FabricaDao.getGrupoCarroDao("JDBC");
grupoCarroDao.removerGrupoCarro(this.vetGrupos.get(marc));
this.vetGrupos.remove(marc);
}
public Vector dadosGrupo(Vector carro) throws SQLException, MinhaException, ConexaoException{
this.selecionarGrupoCarroPorCarro(carro);
Vector grupo = new Vector();
grupo.add(gc.getCodGrupoCarro());
grupo.add(gc.getNomeGrupo());
return grupo;
}
private Vector<GrupoCarro> obterGrupoCarro() throws MinhaException, SQLException, ConexaoException {
GrupoCarroDao grupoCarroDao = FabricaDao.getGrupoCarroDao("JDBC");
this.vetGrupos = grupoCarroDao.selecionarTodosGrupoCarro();
return this.vetGrupos;
}
public Vector selecionarTodosGruposCarro() throws MinhaException, SQLException, ConexaoException{
Vector<GrupoCarro> grupos = this.obterGrupoCarro();
Vector linhas = new Vector();
for(int i = 0; i < grupos.size(); i++){
linhas.addElement(this.montarLinhaGrupoCarro(grupos.get(i)));
}
return linhas;
}
public Vector obterLinhasGrupoCarro() throws MinhaException, SQLException, ConexaoException {
Vector<GrupoCarro> grupos = this.obterGrupoCarro();
Vector linhas = new Vector();
for (int i = 0; i < grupos.size(); i++) {
linhas.addElement(grupos.get(i).getNomeGrupo());
}
return linhas;
}
public Vector obterGrupo()
{
Vector linha = new Vector();
linha.add(this.vetGrupos.get(marc).getCodGrupoCarro());
linha.add(this.vetGrupos.get(marc).getNomeGrupo());
linha.add(this.vetGrupos.get(marc).getPrecoDiaria());
linha.add(this.vetGrupos.get(marc).getPrecoDiariaQuilometrada());
linha.add(this.vetGrupos.get(marc).getPrecoCobertura());
linha.add(this.vetGrupos.get(marc).getTipoCarro());
linha.add(this.vetGrupos.get(marc).getAcessorios());
return linha;
}
public void selecionarGrupoCarroPorCarro(Vector carro) throws SQLException, MinhaException, ConexaoException{
Carro car = new Carro();
int codCarro = Integer.parseInt(carro.get(0).toString());
car.setCodCarro(codCarro);
car.setModelo(carro.get(1).toString());
GrupoCarroJDBCDao carroJDBCDao = new GrupoCarroJDBCDao();
this.gc = carroJDBCDao.selecionarGrupoCarroPorCarro(car);
}
}