package gcom.cadastro.atualizacaocadastralsimplificado;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import gcom.cadastro.imovel.Imovel;
import gcom.seguranca.acesso.usuario.Usuario;
public class AtualizacaoCadastralSimplificadoLinha {
private Integer id;
private Integer numeroLinha;
private AtualizacaoCadastralSimplificado arquivo;
private Collection<AtualizacaoCadastralSimplificadoCritica> criticas;
private String situacaoNova;
private Imovel imovel;
private String nomeMunicipio;
private String nomeLogradouro;
private String nomeBairro;
private String numeroImovel;
private String descricaoComplemento;
private String nomeCliente;
private String numeroCPF;
private String numeroCNPJ;
private String numeroRG;
private String numeroTelefone;
private Integer situacaoAgua;
private Integer situacaoImovel;
private Integer situacaoEsgoto;
private String descricaoEconomia;
private ArrayList<String> categorias = new ArrayList<String>();
private ArrayList<String> economias = new ArrayList<String>();
private Integer tipoLocalizacaoCavelete;
private String numeroMedidor;
private Integer tipoCapacidadeMedidor;
private Integer situacaoMedidor;
private String descricaoZonaInfluencia;
private String descricaoBaciaColetora;
private Integer codigoCEP;
private String numeroInscricao;
private String numeroMedidorEnergia;
private String recadastroRealizado;
private Date ultimaAlteracao;
private transient Usuario usuario;
public AtualizacaoCadastralSimplificadoLinha() {
}
public AtualizacaoCadastralSimplificadoLinha(String[] dados, Integer numeroLinha) {
if (numeroLinha != null)
this.numeroLinha = numeroLinha;
if (dados[0] != null && !"".equals(dados[0].trim()))
situacaoNova = dados[0];
if (dados[1] != null && !"".equals(dados[1].trim())) {
if (imovel == null)
imovel = new Imovel();
imovel.setId(Integer.parseInt(dados[1]));
}
if (dados[2] != null && !"".equals(dados[2].trim()))
nomeMunicipio = dados[2];
if (dados[3] != null && !"".equals(dados[3].trim()))
nomeLogradouro = dados[3];
if (dados[4] != null && !"".equals(dados[4].trim()))
nomeBairro = dados[4];
if (dados[5] != null && !"".equals(dados[5].trim()))
numeroImovel = dados[5];
if (dados[6] != null && !"".equals(dados[6].trim()))
descricaoComplemento = dados[6];
if (dados[7] != null && !"".equals(dados[7].trim()))
nomeCliente = dados[7];
if (dados[8] != null && !"".equals(dados[8].trim()))
numeroCPF = removerCharInvalidos(dados[8]);
if (dados[9] != null && !"".equals(dados[9].trim()))
numeroCNPJ = removerCharInvalidos(dados[9]);
if (dados[10] != null && !"".equals(dados[10].trim()))
numeroRG = dados[10];
if (dados[11] != null && !"".equals(dados[11].trim()))
numeroTelefone = removerCharInvalidos(dados[11]);
if (dados[12] != null && !"".equals(dados[12].trim()))
situacaoAgua = Integer.parseInt(dados[12]);
if (dados[13] != null && !"".equals(dados[13].trim()))
situacaoImovel = Integer.parseInt(dados[13]);
if (dados[14] != null && !"".equals(dados[14].trim()))
situacaoEsgoto = Integer.parseInt(dados[14]);
if (dados[15] != null && !"".equals(dados[15].trim())) {
descricaoEconomia = dados[15];
separaCategoriaEconomias();
}
if (dados[16] != null && !"".equals(dados[16].trim()))
tipoLocalizacaoCavelete = Integer.parseInt(dados[16]);
if (dados[17] != null && !"".equals(dados[17].trim()))
numeroMedidor = dados[17];
if (dados[18] != null && !"".equals(dados[18].trim()))
tipoCapacidadeMedidor = Integer.parseInt(dados[18]);
if (dados[19] != null && !"".equals(dados[19].trim()))
situacaoMedidor = Integer.parseInt(dados[19]);
if (dados[20] != null && !"".equals(dados[20].trim()))
descricaoZonaInfluencia = dados[20];
if (dados[21] != null && !"".equals(dados[21].trim()))
descricaoBaciaColetora = dados[21];
if (dados[22] != null && !"".equals(dados[22].trim()))
codigoCEP = Integer.parseInt(removerCharInvalidos(dados[22]));
if (dados[23] != null && !"".equals(dados[23].trim()))
numeroInscricao = dados[23];
if (dados[24] != null && !"".equals(dados[24].trim()))
numeroMedidorEnergia = dados[24];
if (dados[25] != null && !"".equals(dados[25].trim()))
recadastroRealizado = dados[25];
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getNumeroLinha() {
return numeroLinha;
}
public void setNumeroLinha(Integer numeroLinha) {
this.numeroLinha = numeroLinha;
}
public AtualizacaoCadastralSimplificado getArquivo() {
return arquivo;
}
public void setArquivo(AtualizacaoCadastralSimplificado arquivo) {
this.arquivo = arquivo;
}
public Collection<AtualizacaoCadastralSimplificadoCritica> getCriticas() {
return criticas;
}
public void setCriticas(Collection<AtualizacaoCadastralSimplificadoCritica> criticas) {
this.criticas = criticas;
}
public Imovel getImovel() {
return imovel;
}
public void setImovel(Imovel imovel) {
this.imovel = imovel;
}
public String getSituacaoNova() {
return situacaoNova;
}
public void setSituacaoNova(String situacaoNova) {
this.situacaoNova = situacaoNova;
}
public Integer getNumeroLigacao() {
return imovel.getId();
}
public void setNumeroLigacao(Integer numeroLigacao) {
if (imovel == null)
imovel = new Imovel();
imovel.setId(numeroLigacao);
}
public String getNomeMunicipio() {
return nomeMunicipio;
}
public void setNomeMunicipio(String nomeMunicipio) {
this.nomeMunicipio = nomeMunicipio;
}
public String getNomeLogradouro() {
return nomeLogradouro;
}
public void setNomeLogradouro(String nomeLogradouro) {
this.nomeLogradouro = nomeLogradouro;
}
public String getNomeBairro() {
return nomeBairro;
}
public void setNomeBairro(String nomeBairro) {
this.nomeBairro = nomeBairro;
}
public String getNumeroImovel() {
return numeroImovel;
}
public void setNumeroImovel(String numeroImovel) {
this.numeroImovel = numeroImovel;
}
public String getDescricaoComplemento() {
return descricaoComplemento;
}
public void setDescricaoComplemento(String descricaoComplemento) {
this.descricaoComplemento = descricaoComplemento;
}
public String getNomeCliente() {
return nomeCliente;
}
public void setNomeCliente(String nomeCliente) {
this.nomeCliente = nomeCliente;
}
public String getNumeroCPF() {
return numeroCPF;
}
public void setNumeroCPF(String numeroCPF) {
this.numeroCPF = numeroCPF;
}
public String getNumeroCNPJ() {
return numeroCNPJ;
}
public void setNumeroCNPJ(String numeroCNPJ) {
this.numeroCNPJ = numeroCNPJ;
}
public String getNumeroRG() {
return numeroRG;
}
public void setNumeroRG(String numeroRG) {
this.numeroRG = numeroRG;
}
public String getNumeroTelefone() {
return numeroTelefone;
}
public void setNumeroTelefone(String numeroTelefone) {
this.numeroTelefone = numeroTelefone;
}
public Integer getSituacaoAgua() {
return situacaoAgua;
}
public void setSituacaoAgua(Integer situacaoAgua) {
this.situacaoAgua = situacaoAgua;
}
public Integer getSituacaoImovel() {
return situacaoImovel;
}
public void setSituacaoImovel(Integer situacaoImovel) {
this.situacaoImovel = situacaoImovel;
}
public Integer getSituacaoEsgoto() {
return situacaoEsgoto;
}
public void setSituacaoEsgoto(Integer situacaoEsgoto) {
this.situacaoEsgoto = situacaoEsgoto;
}
public String getDescricaoEconomia() {
return descricaoEconomia;
}
public void setDescricaoEconomia(String descricaoEconomia) {
this.descricaoEconomia = descricaoEconomia;
}
public ArrayList<String> getCategorias() {
return categorias;
}
public void setCategorias(ArrayList<String> categorias) {
this.categorias = categorias;
}
public ArrayList<String> getEconomias() {
return economias;
}
public void setEconomias(ArrayList<String> economias) {
this.economias = economias;
}
public Integer getTipoLocalizacaoCavelete() {
return tipoLocalizacaoCavelete;
}
public void setTipoLocalizacaoCavelete(Integer tipoLocalizacaoCavelete) {
this.tipoLocalizacaoCavelete = tipoLocalizacaoCavelete;
}
public String getNumeroMedidor() {
return numeroMedidor;
}
public void setNumeroMedidor(String numeroMedidor) {
this.numeroMedidor = numeroMedidor;
}
public Integer getTipoCapacidadeMedidor() {
return tipoCapacidadeMedidor;
}
public void setTipoCapacidadeMedidor(Integer tipoCapacidadeMedidor) {
this.tipoCapacidadeMedidor = tipoCapacidadeMedidor;
}
public Integer getSituacaoMedidor() {
return situacaoMedidor;
}
public void setSituacaoMedidor(Integer situacaoMedidor) {
this.situacaoMedidor = situacaoMedidor;
}
public String getDescricaoZonaInfluencia() {
return descricaoZonaInfluencia;
}
public void setDescricaoZonaInfluencia(String descricaoZonaInfluencia) {
this.descricaoZonaInfluencia = descricaoZonaInfluencia;
}
public String getDescricaoBaciaColetora() {
return descricaoBaciaColetora;
}
public void setDescricaoBaciaColetora(String descricaoBaciaColetora) {
this.descricaoBaciaColetora = descricaoBaciaColetora;
}
public Integer getCodigoCEP() {
return codigoCEP;
}
public void setCodigoCEP(Integer codigoCEP) {
this.codigoCEP = codigoCEP;
}
public String getNumeroInscricao() {
return numeroInscricao;
}
public void setNumeroInscricao(String numeroInscricao) {
this.numeroInscricao = numeroInscricao;
}
public String getNumeroMedidorEnergia() {
return numeroMedidorEnergia;
}
public void setNumeroMedidorEnergia(String numeroMedidorEnergia) {
this.numeroMedidorEnergia = numeroMedidorEnergia;
}
public String getRecadastroRealizado() {
return recadastroRealizado;
}
public void setRecadastroRealizado(String recadastroRealizado) {
this.recadastroRealizado = recadastroRealizado;
}
public Date getUltimaAlteracao() {
return ultimaAlteracao;
}
public void setUltimaAlteracao(Date ultimaAlteracao) {
this.ultimaAlteracao = ultimaAlteracao;
}
public Usuario getUsuario() {
return usuario;
}
public void setUsuario(Usuario usuario) {
this.usuario = usuario;
}
/**
* Separa as categorias e economias em suas respectivas cole��es.
*/
private void separaCategoriaEconomias() {
for (int i = 0; i < 29; i += 3) {
String subStringCategoria = descricaoEconomia.substring(i, i + 3);
i += 3;
String subStringEconomia = descricaoEconomia.substring(i, i + 3);
if (subStringCategoria.equals("000")
|| subStringEconomia.equals("000")) {
break;
} else {
categorias.add(subStringCategoria);
economias.add(subStringEconomia);
}
}
}
/**
* Remove caracteres inv�lidos.
*
* @param str
* String analisada e modificada
* @return String sem caracteres inv�lidos.
*/
public String removerCharInvalidos(String str) {
if (str != null) {
str = str.replace(" ", "");
str = str.replace("-", "");
str = str.replace(".", "");
}
return str;
}
public String getEconomiasFormatadas() {
StringBuilder sb = new StringBuilder();
if (categorias.size() == 0)
separaCategoriaEconomias();
for (int i = 0; i < categorias.size(); i++) {
if (i > 0)
sb.append(" ");
sb.append(categorias.get(i) + "/" +economias.get(i));
}
return sb.toString();
}
@Override
public String toString() {
StringBuffer sb = new StringBuffer();
sb
.append("------------------------------------------------------------\n");
sb.append("Nova situa��o: " + getSituacaoNova() + "\n");
sb.append("Numero Liga��o: " + getNumeroLigacao() + "\n");
sb.append("Municipio: " + getNomeMunicipio() + "\n");
sb.append("Logradouro: " + getNomeLogradouro() + "\n");
sb.append("Bairro: " + getNomeBairro() + "\n");
sb.append("Numero Imovel: " + getNumeroImovel() + "\n");
sb.append("Complemento: " + getDescricaoComplemento() + "\n");
sb.append("Nome Cliente: " + getNomeCliente() + "\n");
sb.append("Numero CPF: " + getNumeroCPF() + "\n");
sb.append("Numero CNPJ: " + getNumeroCNPJ() + "\n");
sb.append("Numero RG: " + getNumeroRG() + "\n");
sb.append("Numero Telefone: " + getNumeroTelefone() + "\n");
sb.append("Situa��o Agua: " + getSituacaoAgua() + "\n");
sb.append("Situa��o Imovel: " + getSituacaoImovel() + "\n");
sb.append("Situa��o Esgoto: " + getSituacaoEsgoto() + "\n");
sb.append("Descri��o Economia: " + getDescricaoEconomia() + "\n");
for (int i = 0; i < categorias.size(); i++)
sb.append("Categoria/Economia: " + categorias.get(i) + "/"
+ economias.get(i) + " " + "\n");
sb.append("\nLocaliza��o Cavalete: " + getTipoLocalizacaoCavelete()
+ "\n");
sb.append("Numero Medidor: " + getNumeroMedidor() + "\n");
sb.append("Capacidade Medidor: " + getTipoCapacidadeMedidor() + "\n");
sb.append("Situa��o Medidor: " + getSituacaoMedidor() + "\n");
sb.append("Zona Influencia: " + getDescricaoZonaInfluencia() + "\n");
sb.append("Bacia Coletora: " + getDescricaoBaciaColetora() + "\n");
sb.append("Numero CEP: " + getCodigoCEP() + "\n");
sb.append("Numero Inscri��o: " + getNumeroInscricao() + "\n");
sb.append("Numero Medidor Energia: " + getNumeroMedidorEnergia() + "\n");
sb.append("Recadastro Realizado: " + getRecadastroRealizado() + "\n");
sb
.append("------------------------------------------------------------\n");
return sb.toString();
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((id == null) ? 0 : id.hashCode());
result = prime * result
+ ((numeroLinha == null) ? 0 : numeroLinha.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
AtualizacaoCadastralSimplificadoLinha other = (AtualizacaoCadastralSimplificadoLinha) obj;
if (id == null) {
if (other.id != null)
return false;
} else if (!id.equals(other.id))
return false;
if (numeroLinha == null) {
if (other.numeroLinha != null)
return false;
} else if (!numeroLinha.equals(other.numeroLinha))
return false;
return true;
}
}