package gcom.cadastro.imovel;
import java.math.BigDecimal;
import gcom.cadastro.atualizacaocadastral.command.AtualizacaoCadastral;
import gcom.cadastro.atualizacaocadastral.command.AtualizacaoCadastralImovel;
import gcom.cadastro.endereco.FiltroLogradouroTipo;
import gcom.cadastro.endereco.LogradouroTipo;
import gcom.fachada.Fachada;
import gcom.util.Util;
import gcom.util.filtro.ParametroSimples;
public class ImovelAtualizacaoCadastralBuilder {
private int matricula;
private ImovelAtualizacaoCadastral imovelAtualizacaoCadastral;
private AtualizacaoCadastralImovel atualizacaoCadastralImovel;
private AtualizacaoCadastral atualizacaoCadastral;
private int tipoOperacao;
public ImovelAtualizacaoCadastralBuilder(int matricula,AtualizacaoCadastral atualizacaoCadastral, AtualizacaoCadastralImovel atualizacaoCadastralImovel, int tipoOperacao){
this.matricula = matricula;
this.imovelAtualizacaoCadastral = new ImovelAtualizacaoCadastral();
this.atualizacaoCadastralImovel = atualizacaoCadastralImovel;
this.atualizacaoCadastral = atualizacaoCadastral;
this.tipoOperacao = tipoOperacao;
buildImovel();
}
public ImovelAtualizacaoCadastral getImovelAtualizacaoCadastral() {
return imovelAtualizacaoCadastral;
}
public void buildImovel(){
// Linha 2
imovelAtualizacaoCadastral.setIdImovel(matricula);
imovelAtualizacaoCadastral.setTipoOperacao(tipoOperacao);
String inscricao = atualizacaoCadastralImovel.getLinhaImovel("inscricao");
imovelAtualizacaoCadastral.setIdLocalidade(Integer.parseInt(inscricao.substring(0, 3)));
imovelAtualizacaoCadastral.setCodigoSetorComercial(Integer.parseInt(inscricao.substring(3, 6)));
imovelAtualizacaoCadastral.setNumeroQuadra(Integer.parseInt(inscricao.substring(6, 10)));
imovelAtualizacaoCadastral.setLote(Short.parseShort(inscricao.substring(10, 14)));
imovelAtualizacaoCadastral.setSubLote(Short.parseShort(inscricao.substring(14, 17)));
imovelAtualizacaoCadastral.setIdRota(atualizacaoCadastral.getIdRota());
imovelAtualizacaoCadastral.setCodigoMunicipio(Integer.parseInt(atualizacaoCadastralImovel.getLinhaImovel("codigoMunicipio")));
imovelAtualizacaoCadastral.setNumeroIptu(atualizacaoCadastralImovel.getLinhaImovel("numeroIPTU"));
String contratoEnergia = atualizacaoCadastralImovel.getLinhaImovel("numeroCelpa");
if (contratoEnergia.equals("")) {
imovelAtualizacaoCadastral.setNumeroContratoEnergia(null);
} else {
try {
imovelAtualizacaoCadastral.setNumeroContratoEnergia(Long.parseLong(contratoEnergia));
} catch (NumberFormatException e) {
imovelAtualizacaoCadastral.setNumeroContratoEnergia(null);
}
}
imovelAtualizacaoCadastral.setNumeroPontosUtilizacao(Short.parseShort(atualizacaoCadastralImovel.getLinhaImovel("numeroPontosUteis")) == 0 ? null : Short.parseShort(atualizacaoCadastralImovel.getLinhaImovel("numeroPontosUteis")));
imovelAtualizacaoCadastral.setNumeroMorador(Short.parseShort(atualizacaoCadastralImovel.getLinhaImovel("numeroOcupantes")) == 0 ? null : Short.parseShort(atualizacaoCadastralImovel.getLinhaImovel("numeroOcupantes")));
imovelAtualizacaoCadastral.setIdLogradouroTipo(Integer.parseInt(atualizacaoCadastralImovel.getLinhaImovel("idTipoLogradouroImovel")));
imovelAtualizacaoCadastral.setDsLogradouroTipo(getDescricaoLogradouro(Integer.parseInt(atualizacaoCadastralImovel.getLinhaImovel("idTipoLogradouroImovel"))));
imovelAtualizacaoCadastral.setDescricaoLogradouro(atualizacaoCadastralImovel.getLinhaImovel("logradouroImovel"));
imovelAtualizacaoCadastral.setNumeroImovel(atualizacaoCadastralImovel.getLinhaImovel("numeroImovel"));
imovelAtualizacaoCadastral.setComplementoEndereco(atualizacaoCadastralImovel.getLinhaImovel("complementoImovel"));
imovelAtualizacaoCadastral.setNomeBairro(atualizacaoCadastralImovel.getLinhaImovel("bairro"));
imovelAtualizacaoCadastral.setCodigoCep(Integer.parseInt(atualizacaoCadastralImovel.getLinhaImovel("cep")));
imovelAtualizacaoCadastral.setNomeMunicipio(atualizacaoCadastralImovel.getLinhaImovel("municipio"));
imovelAtualizacaoCadastral.setIdLogradouro(Integer.parseInt(atualizacaoCadastralImovel.getLinhaImovel("codigoLogradouro")));
imovelAtualizacaoCadastral.setIdFonteAbastecimento(Integer.parseInt(atualizacaoCadastralImovel.getLinhaImovel("fonteAbastecimento")) == 0 ? null : Integer.parseInt(atualizacaoCadastralImovel.getLinhaImovel("fonteAbastecimento")));
if (Util.isPositivo(atualizacaoCadastralImovel.getLinhaImovel("classeSocial"))){
imovelAtualizacaoCadastral.setClasseSocial(Short.parseShort(atualizacaoCadastralImovel.getLinhaImovel("classeSocial")));
}
if (Util.isPositivo(atualizacaoCadastralImovel.getLinhaImovel("quantidadeAnimaisDomesticos"))){
imovelAtualizacaoCadastral.setQuantidadeAnimaisDomesticos(Short.parseShort(atualizacaoCadastralImovel.getLinhaImovel("quantidadeAnimaisDomesticos")));
}
if (Util.isBigDecimal(atualizacaoCadastralImovel.getLinhaImovel("areaConstruida"))){
imovelAtualizacaoCadastral.setAreaConstruida(new BigDecimal(atualizacaoCadastralImovel.getLinhaImovel("areaConstruida")));
}
if (Util.isBigDecimal(atualizacaoCadastralImovel.getLinhaImovel("volPiscina"))){
imovelAtualizacaoCadastral.setVolumePiscina(new BigDecimal(atualizacaoCadastralImovel.getLinhaImovel("volPiscina")));
}
if (Util.isBigDecimal(atualizacaoCadastralImovel.getLinhaImovel("volCisterna"))){
imovelAtualizacaoCadastral.setVolumeCisterna(new BigDecimal(atualizacaoCadastralImovel.getLinhaImovel("volCisterna")));
}
if (Util.isBigDecimal(atualizacaoCadastralImovel.getLinhaImovel("volCxDagua"))){
imovelAtualizacaoCadastral.setVolumeCaixaDagua(new BigDecimal(atualizacaoCadastralImovel.getLinhaImovel("volCxDagua")));
}
if (Util.isPositivo(atualizacaoCadastralImovel.getLinhaImovel("tipoUso"))){
imovelAtualizacaoCadastral.setTipoUso(Short.parseShort(atualizacaoCadastralImovel.getLinhaImovel("tipoUso")));
}
if (Util.isPositivo(atualizacaoCadastralImovel.getLinhaImovel("acessoHidrometro"))){
imovelAtualizacaoCadastral.setAcessoHidrometro(Short.parseShort(atualizacaoCadastralImovel.getLinhaImovel("acessoHidrometro")));
}
if (Util.isPositivo(atualizacaoCadastralImovel.getLinhaImovel("quantidadeEconomiasSocial"))){
imovelAtualizacaoCadastral.setQuantidadeEconomiasSocial(Integer.parseInt(atualizacaoCadastralImovel.getLinhaImovel("quantidadeEconomiasSocial")));
}
if (Util.isPositivo(atualizacaoCadastralImovel.getLinhaImovel("quantidadeEconomiasOutra"))){
imovelAtualizacaoCadastral.setQuantidadeEconomiasOutra(Integer.parseInt(atualizacaoCadastralImovel.getLinhaImovel("quantidadeEconomiasOutra")));
}
if (Util.isPositivo(atualizacaoCadastralImovel.getLinhaImovel("percentualAbastecimento"))){
imovelAtualizacaoCadastral.setPercentualAbastecimento(Short.parseShort(atualizacaoCadastralImovel.getLinhaImovel("percentualAbastecimento")));
}
// Linha 4
imovelAtualizacaoCadastral.setIdLigacaoAguaSituacao(Integer.parseInt(atualizacaoCadastralImovel.getLinhaServicos("ligacaoAguaSituacao")) == 0 ? null : Integer.parseInt(atualizacaoCadastralImovel.getLinhaServicos("ligacaoAguaSituacao")));
imovelAtualizacaoCadastral.setIdLigacaoEsgotoSituacao(Integer.parseInt(atualizacaoCadastralImovel.getLinhaServicos("ligacaoEsgotoSituacao")) == 0 ? null : Integer.parseInt(atualizacaoCadastralImovel.getLinhaServicos("ligacaoEsgotoSituacao")));
imovelAtualizacaoCadastral.setIdLocalInstalacaoRamal(Integer.parseInt(atualizacaoCadastralImovel.getLinhaServicos("localInstalacaoRamal")) == 0 ? null : Integer.parseInt(atualizacaoCadastralImovel.getLinhaServicos("localInstalacaoRamal")));
// Linha 5
if (atualizacaoCadastralImovel.isExisteMedidor()) {
imovelAtualizacaoCadastral.setNumeroHidrometro(atualizacaoCadastralImovel.getLinhaMedidor("numeroHidrometro"));
imovelAtualizacaoCadastral.setIdMarcaHidrometro(Integer.parseInt(atualizacaoCadastralImovel.getLinhaMedidor("marcaHidrometro")) == 0 ? null : Integer.parseInt(atualizacaoCadastralImovel.getLinhaMedidor("marcaHidrometro")));
imovelAtualizacaoCadastral.setIdCapacidadeHidrometro(Integer.parseInt(atualizacaoCadastralImovel.getLinhaMedidor("capacidadeHidrometro")) == 0 ? null : Integer.parseInt(atualizacaoCadastralImovel.getLinhaMedidor("capacidadeHidrometro")));
imovelAtualizacaoCadastral.setIdProtecaoHidrometro(Integer.parseInt(atualizacaoCadastralImovel.getLinhaMedidor("tipoCaixaProtecaoHidrometro")) == 0 ? null : Integer.parseInt(atualizacaoCadastralImovel.getLinhaMedidor("tipoCaixaProtecaoHidrometro")));
}
// Linha 6
imovelAtualizacaoCadastral.setIdCadastroOcorrencia(Integer.parseInt(atualizacaoCadastralImovel.getLinhaAnormalidade("codigoAnormalidade")) == 0 ? null : Integer.parseInt(atualizacaoCadastralImovel.getLinhaAnormalidade("codigoAnormalidade")));
imovelAtualizacaoCadastral.setDescricaoOutrasInformacoes(atualizacaoCadastralImovel.getLinhaAnormalidade("comentario").trim());
imovelAtualizacaoCadastral.setCoordenadaX(atualizacaoCadastralImovel.getLinhaAnormalidade("latitude"));
imovelAtualizacaoCadastral.setCoordenadaY(atualizacaoCadastralImovel.getLinhaAnormalidade("longitude"));
imovelAtualizacaoCadastral.setTipoEntrevistado(atualizacaoCadastralImovel.getLinhaAnormalidade("tipoEntrevistado"));
}
public String getDescricaoLogradouro(int idTipoLogradouro) {
FiltroLogradouroTipo filtro = new FiltroLogradouroTipo();
filtro.adicionarParametro(new ParametroSimples(FiltroLogradouroTipo.ID, idTipoLogradouro));
LogradouroTipo logradouroTipo = (LogradouroTipo) (Fachada.getInstancia().pesquisar(filtro, LogradouroTipo.class.getName()).iterator().next());
return logradouroTipo.getDescricao();
}
}