package gcom.gerencial.cobranca.bean;
import java.math.BigDecimal;
/**
* Classe respons�vel por ajudar Gerar Resumo da Pendencia Por Ano
*
* @author Fernando Fontelles Filho
* @date 25/03/2010
*/
public class ResumoPendenciaContasGerencialPorAnoHelper {
private Integer idGerenciaRegional;
private Integer idUnidadeNegocio;
private Integer idElo;
private Integer idLocalidade;
private Integer idSetorComercial;
private Integer codigoSetorComercial;
private Integer idPerfilImovel;
private Integer idSituacaoLigacaoAgua;
private Integer idSituacaoLigacaoEsgoto;
private Integer idPrincipalCategoriaImovel;
private Integer idPrincipalSubCategoriaImovel;
private Integer idEsferaPoder;
private Integer idHidrometro;
private Integer idTipoDocumento;
private Integer anoMesReferenciaDocumento;
private Integer idReferenciaVencimentoConta;
private Integer quantidadeLigacoes = 0;
private Integer quantidadeDocumentos = 1;
private BigDecimal valorPendenteAgua = new BigDecimal(0);
private BigDecimal valorPendenteEsgoto = new BigDecimal(0);
private BigDecimal valorPendenteDebito = new BigDecimal(0);
private BigDecimal valorPendenteCredito = new BigDecimal(0);
private BigDecimal valorPendenteImposto = new BigDecimal(0);
public Integer getAnoMesReferenciaDocumento() {
return anoMesReferenciaDocumento;
}
public void setAnoMesReferenciaDocumento(Integer anoMesReferenciaDocumento) {
this.anoMesReferenciaDocumento = anoMesReferenciaDocumento;
}
public Integer getCodigoSetorComercial() {
return codigoSetorComercial;
}
public void setCodigoSetorComericial(Integer codigoSetorComericial) {
this.codigoSetorComercial = codigoSetorComericial;
}
public Integer getIdElo() {
return idElo;
}
public void setIdElo(Integer idElo) {
this.idElo = idElo;
}
public Integer getIdEsferaPoder() {
return idEsferaPoder;
}
public void setIdEsferaPoder(Integer idEsferaPoder) {
this.idEsferaPoder = idEsferaPoder;
}
public Integer getIdGerenciaRegional() {
return idGerenciaRegional;
}
public void setIdGerenciaRegional(Integer idGerenciaRegional) {
this.idGerenciaRegional = idGerenciaRegional;
}
public Integer getIdLocalidade() {
return idLocalidade;
}
public void setIdLocalidade(Integer idLocalidade) {
this.idLocalidade = idLocalidade;
}
public Integer getIdPerfilImovel() {
return idPerfilImovel;
}
public void setIdPerfilImovel(Integer idPerfilImovel) {
this.idPerfilImovel = idPerfilImovel;
}
public Integer getIdPrincipalCategoriaImovel() {
return idPrincipalCategoriaImovel;
}
public void setIdPrincipalCategoriaImovel(Integer idPrincipalCategoriaImovel) {
this.idPrincipalCategoriaImovel = idPrincipalCategoriaImovel;
}
public Integer getIdPrincipalSubCategoriaImovel() {
return idPrincipalSubCategoriaImovel;
}
public void setIdPrincipalSubCategoriaImovel(Integer idPrincipalSubCategoriaImovel) {
this.idPrincipalSubCategoriaImovel = idPrincipalSubCategoriaImovel;
}
public Integer getIdReferenciaVencimentoConta() {
return idReferenciaVencimentoConta;
}
public void setIdReferenciaVencimentoConta(Integer idReferenciaVencimentoConta) {
this.idReferenciaVencimentoConta = idReferenciaVencimentoConta;
}
public Integer getIdSetorComercial() {
return idSetorComercial;
}
public void setIdSetorComercial(Integer idSetorComercial) {
this.idSetorComercial = idSetorComercial;
}
public Integer getIdSituacaoLigacaoAgua() {
return idSituacaoLigacaoAgua;
}
public void setIdSituacaoLigacaoAgua(Integer idSituacaoLigacaoAgua) {
this.idSituacaoLigacaoAgua = idSituacaoLigacaoAgua;
}
public Integer getIdSituacaoLigacaoEsgoto() {
return idSituacaoLigacaoEsgoto;
}
public void setIdSituacaoLigacaoEsgoto(Integer idSituacaoLigacaoEsgoto) {
this.idSituacaoLigacaoEsgoto = idSituacaoLigacaoEsgoto;
}
public Integer getIdTipoDocumento() {
return idTipoDocumento;
}
public void setIdTipoDocumento(Integer idTipoDocumento) {
this.idTipoDocumento = idTipoDocumento;
}
public Integer getIdUnidadeNegocio() {
return idUnidadeNegocio;
}
public void setIdUnidadeNegocio(Integer idUnidadeNegocio) {
this.idUnidadeNegocio = idUnidadeNegocio;
}
public Integer getQuantidadeDocumentos() {
return quantidadeDocumentos;
}
public void setQuantidadeDocumentos(Integer quantidadeDocumentos) {
this.quantidadeDocumentos = quantidadeDocumentos;
}
public Integer getQuantidadeLigacoes() {
return quantidadeLigacoes;
}
public void setQuantidadeLigacoes(Integer quantidadeLigacoes) {
this.quantidadeLigacoes = quantidadeLigacoes;
}
public BigDecimal getValorPendenteAgua() {
return valorPendenteAgua;
}
public void setValorPendenteAgua(BigDecimal valorPendenteAgua) {
if (valorPendenteAgua != null ){
this.valorPendenteAgua = valorPendenteAgua;
}
}
public BigDecimal getValorPendenteCredito() {
return valorPendenteCredito;
}
public void setValorPendenteCredito(BigDecimal valorPendenteCredito) {
if (valorPendenteCredito != null ){
this.valorPendenteCredito = valorPendenteCredito;
}
}
public BigDecimal getValorPendenteDebito() {
return valorPendenteDebito;
}
public void setValorPendenteDebito(BigDecimal valorPendenteDebito) {
if ( valorPendenteDebito != null ){
this.valorPendenteDebito = valorPendenteDebito;
}
}
public BigDecimal getValorPendenteEsgoto() {
return valorPendenteEsgoto;
}
public void setValorPendenteEsgoto(BigDecimal valorPendenteEsgoto) {
if ( valorPendenteEsgoto != null){
this.valorPendenteEsgoto = valorPendenteEsgoto;
}
}
public BigDecimal getValorPendenteImposto() {
return valorPendenteImposto;
}
public void setValorPendenteImposto(BigDecimal valorPendenteImposto) {
if ( valorPendenteImposto != null ){
this.valorPendenteImposto = valorPendenteImposto;
}
}
/**
* Construtor com os campos iniciais do objeto
*
* @param idGerenciaRegional
* @param idUnidadeNegocio
* @param idElo
* @param idLocalidade
* @param idSetorComercial
* @param codigoSetorComericial
* @param idPerfilImovel
* @param idSituacaoLigacaoAgua
* @param idSituacaoLigacaoEsgoto
* @param idTipoDocumento
* @param anoMesReferenciaDocumento
* @param idReferenciaVencimentoConta
*/
public ResumoPendenciaContasGerencialPorAnoHelper(
Integer idGerenciaRegional, //0
Integer idUnidadeNegocio, //1
Integer idElo, //2
Integer idLocalidade, //3
Integer idSetorComercial, //4
Integer codigoSetorComercial, //5
Integer idPerfilImovel, //6
Integer idSituacaoLigacaoAgua, //7
Integer idSituacaoLigacaoEsgoto, //8
Integer idHidrometro, //9
Integer idTipoDocumento, //10
Integer anoMesReferenciaDocumento, //11
Integer idReferenciaVencimentoConta, //12
BigDecimal valorPendenteAgua, //13
BigDecimal valorPendenteEsgoto, //14
BigDecimal valorPendenteDebito, //15
BigDecimal valorPendenteCredito, //16
BigDecimal valorPendenteImposto //17
) {
this.idGerenciaRegional = idGerenciaRegional;
this.idUnidadeNegocio = idUnidadeNegocio;
this.idElo = idElo;
this.idLocalidade = idLocalidade;
this.idSetorComercial = idSetorComercial;
this.codigoSetorComercial = codigoSetorComercial;
this.idPerfilImovel = idPerfilImovel;
this.idSituacaoLigacaoAgua = idSituacaoLigacaoAgua;
this.idSituacaoLigacaoEsgoto = idSituacaoLigacaoEsgoto;
this.idHidrometro = idHidrometro;
this.idTipoDocumento = idTipoDocumento;
this.anoMesReferenciaDocumento = anoMesReferenciaDocumento;
this.idReferenciaVencimentoConta = idReferenciaVencimentoConta;
this.valorPendenteAgua = ( valorPendenteAgua == null ? new BigDecimal(0) : valorPendenteAgua );
this.valorPendenteEsgoto = ( valorPendenteEsgoto == null ? new BigDecimal(0) : valorPendenteEsgoto );
this.valorPendenteDebito = ( valorPendenteDebito == null ? new BigDecimal(0) : valorPendenteDebito );
this.valorPendenteCredito = ( valorPendenteCredito == null ? new BigDecimal(0) : valorPendenteCredito );
this.valorPendenteImposto = ( valorPendenteImposto == null ? new BigDecimal(0) : valorPendenteImposto );
}
/**
* Compara duas properiedades Integereiras, comparando
* seus valores para descobrirmos se sao iguais
* @param pro1 Primeira propriedade
* @param pro2 Segunda propriedade
* @return Se iguais, retorna true
*/
private boolean propriedadesIguais( Integer pro1, Integer pro2 ){
if ( pro2 != null ){
if ( !pro2.equals( pro1 ) ){
return false;
}
} else if ( pro1 != null ){
return false;
}
// Se chegou ate aqui quer dizer que as propriedades sao iguais
return true;
}
/**
* Compara dois objetos levando em consideracao apenas as propriedades
* que identificam o agrupamento
*
* @param obj Objeto a ser comparado com a instancia deste objeto
*/
public boolean equals( Object obj ){
if ( !( obj instanceof ResumoPendenciaContasGerencialPorAnoHelper ) ){
return false;
} else {
ResumoPendenciaContasGerencialPorAnoHelper resumoTemp =
( ResumoPendenciaContasGerencialPorAnoHelper ) obj;
// Verificamos se todas as propriedades que identificam o objeto sao iguais
boolean retorno =
propriedadesIguais( this.idGerenciaRegional, resumoTemp.idGerenciaRegional ) &&
propriedadesIguais( this.idUnidadeNegocio, resumoTemp.idUnidadeNegocio ) &&
propriedadesIguais( this.idLocalidade, resumoTemp.idLocalidade ) &&
propriedadesIguais( this.idElo, resumoTemp.idElo ) &&
propriedadesIguais( this.idSetorComercial, resumoTemp.idSetorComercial ) &&
propriedadesIguais( this.codigoSetorComercial, resumoTemp.codigoSetorComercial ) &&
propriedadesIguais( this.idPerfilImovel, resumoTemp.idPerfilImovel ) &&
propriedadesIguais( this.idEsferaPoder, resumoTemp.idEsferaPoder ) &&
propriedadesIguais( this.idSituacaoLigacaoAgua, resumoTemp.idSituacaoLigacaoAgua ) &&
propriedadesIguais( this.idSituacaoLigacaoEsgoto, resumoTemp.idSituacaoLigacaoEsgoto ) &&
propriedadesIguais( this.idPrincipalCategoriaImovel, resumoTemp.idPrincipalCategoriaImovel ) &&
propriedadesIguais( this.idPrincipalSubCategoriaImovel, resumoTemp.idPrincipalSubCategoriaImovel ) &&
propriedadesIguais( this.idHidrometro, resumoTemp.idHidrometro ) &&
propriedadesIguais( this.idTipoDocumento, resumoTemp.idTipoDocumento ) &&
propriedadesIguais( this.anoMesReferenciaDocumento, resumoTemp.anoMesReferenciaDocumento ) &&
propriedadesIguais( this.idReferenciaVencimentoConta, resumoTemp.idReferenciaVencimentoConta ) &&
propriedadesIguais( this.getIdFaixaValorTotalPendente(), resumoTemp.getIdFaixaValorTotalPendente() );
if ( retorno == true ){
System.out.println("stop");
}
return retorno;
}
}
public Integer getIdHidrometro() {
return idHidrometro;
}
public void setIdHidrometro(Integer idHidrometro) {
this.idHidrometro = idHidrometro;
}
public void setCodigoSetorComercial(Integer codigoSetorComercial) {
this.codigoSetorComercial = codigoSetorComercial;
}
public Integer getIdFaixaValorTotalPendente() {
Integer retorno = 0;
BigDecimal valorPendente =
this.valorPendenteAgua
.add( this.valorPendenteEsgoto )
.add( this.valorPendenteDebito )
.add(this.valorPendenteImposto)
.subtract( this.valorPendenteCredito );
if ( valorPendente.doubleValue() <= 50 ){
retorno = 1;
} else if ( valorPendente.doubleValue() <= 500 ){
retorno = 2;
} else if ( valorPendente.doubleValue() <= 1000 ){
retorno = 3;
} else {
retorno = 4;
}
return retorno;
}
}