package gcom.relatorio.cadastro.imovel;
import gcom.batch.Relatorio;
import gcom.cadastro.imovel.bean.ImovelRelatorioHelper;
import gcom.cadastro.sistemaparametro.SistemaParametro;
import gcom.fachada.Fachada;
import gcom.gui.ActionServletException;
import gcom.relatorio.ConstantesRelatorios;
import gcom.relatorio.RelatorioDataSource;
import gcom.relatorio.RelatorioVazioException;
import gcom.seguranca.acesso.usuario.Usuario;
import gcom.tarefa.TarefaException;
import gcom.tarefa.TarefaRelatorio;
import gcom.util.ControladorException;
import gcom.util.agendadortarefas.AgendadorTarefas;
import java.text.NumberFormat;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
/**
* classe respons�vel por criar o relat�rio de im�vel manter
*
* @author Rafael Corr�a
* @created 11 de Julho de 2005
*/
public class RelatorioImovelEndereco extends TarefaRelatorio {
private static final long serialVersionUID = 1L;
/**
* Construtor da classe RelatorioAnaliseFisicoQuimicaAgua
*/
public RelatorioImovelEndereco(Usuario usuario) {
super(usuario,
ConstantesRelatorios.RELATORIO_IMOVEL_ENDERECO);
}
@Deprecated
public RelatorioImovelEndereco() {
super(null, "");
}
/**
* <<Descri��o do m�todo>>
*
* @param bairros
* Description of the Parameter
* @param bairroParametros
* Description of the Parameter
* @return Descri��o do retorno
* @exception RelatorioVazioException
* Descri��o da exce��o
*/
public Object executar() throws TarefaException {
// ------------------------------------
Integer idFuncionalidadeIniciada = this.getIdFuncionalidadeIniciada();
// ------------------------------------
int tipoFormatoRelatorio = (Integer) getParametro("tipoFormatoRelatorio");
// Recupera os par�metros utilizados na forma��o da query
// id da genrencia regional
String gerenciaRegionalPesquisa = (String) getParametro("gerenciaRegional");
// id da unidade negocio
String idUnidadeNegoio = (String) getParametro("unidadeNegocio");
// numero da quadra origem
String qudraOrigem = (String) getParametro("quadraOrigem");
// numero quadra destino
String quadraDestino = (String) getParametro("quadraDestino");
// lote origem
String loteOrigem = (String) getParametro("loteOrigem");
// lote destino
String loteDestino = (String) getParametro("loteDestino");
// cep
String cep = (String) getParametro("cep");
// id localidade origem
String localidadeOrigem = (String) getParametro("localidadeOrigem");
// id localidade destino
String localidadeDestino = (String) getParametro("localidadeDestino");
// setor comercial origem CD
String setorComercialOrigemCD = (String) getParametro("setorComercialOrigemCD");
// setor comercial destino CD
String setorComercialDestinoCD = (String) getParametro("setorComercialDestinoCD");
// cliente ID
String clienteID = (String) getParametro("clienteID");
// municipio ID
String municipioID = (String) getParametro("municipioID");
// bairro ID
String bairroID = (String) getParametro("bairroID");
// logradouro ID
String logradouroID = (String) getParametro("logradouroID");
// cliente relacao tipo ID
String clienteRelacaoTipoID = (String) getParametro("clienteRelacaoTipoID");
// cliente tipo ID
String clienteTipoID = (String) getParametro("clienteTipoID");
// imovel condominio ID
String imovelCondominioID = (String) getParametro("imovelCondominioID");
// imovel Principal ID
String imovelPrincipalID = (String) getParametro("imovelPrincipalID");
// nome Conta ID
// String nomeContaID = (String) getParametro("nomeContaID");
// situacao Agua
String situacaoAgua = (String) getParametro("situacaoAgua");
// situacao Ligacao Esgoto
String situacaoLigacaoEsgoto = (String) getParametro("situacaoLigacaoEsgoto");
// consumo Minimo Inicial
String consumoMinimoInicial = (String) getParametro("consumoMinimoInicial");
// consumo Minimo Final
String consumoMinimoFinal = (String) getParametro("consumoMinimoFinal");
// consumo Minimo Fixado Esgoto Inicial
String consumoMinimoFixadoEsgotoInicial = (String) getParametro("consumoMinimoFixadoEsgotoInicial");
// consumo Minimo Fixado Esgoto Final
String consumoMinimoFixadoEsgotoFinal = (String) getParametro("consumoMinimoFixadoEsgotoFinal");
// intervalo Percentual Esgoto Inicial
String intervaloPercentualEsgotoInicial = (String) getParametro("intervaloPercentualEsgotoInicial");
// intervalor Percentual Esgoto Final
String intervaloPercentualEsgotoFinal = (String) getParametro("intervaloPercentualEsgotoFinal");
// indicador Medicao
String indicadorMedicaoPesquisa = (String) getParametro("indicadorMedicao");
// tipo Medicao ID
String tipoMedicaoID = (String) getParametro("tipoMedicaoID");
// intervalo Media Minima Imovel Inicial
String intervaloMediaMinimaImovelInicial = (String) getParametro("intervaloMediaMinimaImovelInicial");
// intervalo Media Minima Imovel Final
String intervaloMediaMinimaImoveFinal = (String) getParametro("intervaloMediaMinimaImoveFinal");
// intervalo Media Minima Hidrometro Inicial
String intervaloMediaMinimaHidrometroInicial = (String) getParametro("intervaloMediaMinimaHidrometroInicial");
// intervalo Media Minima Hidrometro Final
String intervaloMediaMinimaHidrometroFinal = (String) getParametro("intervaloMediaMinimaHidrometroFinal");
// perfil Imovel ID
String perfilImovelID = (String) getParametro("perfilImovelID");
// categoria Imovel ID
String categoriaImovelID = (String) getParametro("categoriaImovelID");
// sub categoria ID
String subCategoriaID = (String) getParametro("subCategoriaID");
// quantidade Economias Inicial
String quantidadeEconomiasInicial = (String) getParametro("quantidadeEconomiasInicial");
// quantidade Economias Final
String quantidadeEconomiasFinal = (String) getParametro("quantidadeEconomiasFinal");
// numero Pontos Inicial
String numeroPontosInicial = (String) getParametro("numeroPontosInicial");
// numero Pontos Final
String numeroPontosFinal = (String) getParametro("numeroPontosFinal");
// numero Moradores Inicial
String numeroMoradoresInicial = (String) getParametro("numeroMoradoresInicial");
// numero Moradoras Final
String numeroMoradoresFinal = (String) getParametro("numeroMoradoresFinal");
// area Construida Inicial
String areaConstruidaInicial = (String) getParametro("areaConstruidaInicial");
// area Construida Final
String areaConstruidaFinal = (String) getParametro("areaConstruidaFinal");
// area Construida Faixa
String areaConstruidaFaixa = (String) getParametro("areaConstruidaFaixa");
// poco Tipo ID
String pocoTipoID = (String) getParametro("pocoTipoID");
// tipo Situacao Faturamento ID
String tipoSituacaoFaturamentoID = (String) getParametro("tipoSituacaoFaturamentoID");
// tipo Situacao Especial Cobranca ID
String tipoSituacaoEspecialCobrancaID = (String) getParametro("tipoSituacaoEspecialCobrancaID");
// situacao Cobranca ID
String situacaoCobrancaID = (String) getParametro("situacaoCobrancaID");
// dia Vencimento Alternativo
String diaVencimentoAlternativo = (String) getParametro("diaVencimentoAlternativo");
// ocorrencia Cadastro
String ocorrenciaCadastro = (String) getParametro("ocorrenciaCadastro");
// tarifa Consumo
String tarifaConsumo = (String) getParametro("tarifaConsumo");
// anormalidade Elo
String anormalidadeElo = (String) getParametro("anormalidadeElo");
// numero da sequencia da rota inicial
String seqRotaInicial = (String) getParametro("sequencialRotaInicial");
// numero da sequencia da rota final
String seqRotaFinal = (String) getParametro("sequencialRotaFinal");
//Ordenacao do Relatorio
String ordenacaoRelatorio = (String) getParametro("ordenacaoRelatorio");
// Rota Inicial
String rotaInicial = (String) getParametro("rotaInicial");
// Rota Final
String rotaFinal = (String) getParametro("rotaFinal");
Fachada fachada = Fachada.getInstancia();
Collection imoveisRelatoriosHelper = fachada
.gerarRelatorioImovelEnderecoOutrosCriterios(imovelCondominioID,
imovelPrincipalID, situacaoAgua, consumoMinimoInicial,
consumoMinimoFinal, situacaoLigacaoEsgoto,
consumoMinimoFixadoEsgotoInicial,
consumoMinimoFixadoEsgotoFinal,
intervaloPercentualEsgotoInicial,
intervaloPercentualEsgotoFinal,
intervaloMediaMinimaImovelInicial,
intervaloMediaMinimaImoveFinal,
intervaloMediaMinimaHidrometroInicial,
intervaloMediaMinimaHidrometroFinal, perfilImovelID,
pocoTipoID, tipoSituacaoFaturamentoID,
situacaoCobrancaID, tipoSituacaoEspecialCobrancaID,
anormalidadeElo, areaConstruidaInicial,
areaConstruidaFinal, ocorrenciaCadastro, tarifaConsumo,
gerenciaRegionalPesquisa, localidadeOrigem,
localidadeDestino, setorComercialOrigemCD,
setorComercialDestinoCD, qudraOrigem, quadraDestino,
loteOrigem, loteDestino, cep, logradouroID, bairroID,
municipioID, tipoMedicaoID, indicadorMedicaoPesquisa,
subCategoriaID, categoriaImovelID,
quantidadeEconomiasInicial, quantidadeEconomiasFinal,
diaVencimentoAlternativo, clienteID, clienteTipoID,
clienteRelacaoTipoID, numeroPontosInicial,
numeroPontosFinal, numeroMoradoresInicial,
numeroMoradoresFinal, areaConstruidaFaixa,idUnidadeNegoio,
seqRotaInicial, seqRotaFinal, rotaInicial,
rotaFinal, ordenacaoRelatorio);
// valor de retorno
byte[] retorno = null;
// cole��o de beans do relat�rio
List relatorioBeans = new ArrayList();
RelatorioImovelEnderecoBean relatorioBean = null;
// se a cole��o de par�metros da analise n�o for vazia
if (imoveisRelatoriosHelper != null
&& !imoveisRelatoriosHelper.isEmpty()) {
// coloca a cole��o de par�metros da analise no iterator
Iterator imovelRelatorioIterator = imoveisRelatoriosHelper
.iterator();
// la�o para criar a cole��o de par�metros da analise
while (imovelRelatorioIterator.hasNext()) {
ImovelRelatorioHelper helper = (ImovelRelatorioHelper) imovelRelatorioIterator.next();
relatorioBean = new RelatorioImovelEnderecoBean();
// C�digo da Ger�ncia Regional
relatorioBean.setIdGerenciaRegional(X(helper.getIdGerenciaRegional()));
// Descri��o da Ger�ncia Regional
relatorioBean.setNomeGerenciaRegional(X(helper.getDescricaoGerenciaRegional()));
// C�digo da Localidade
relatorioBean.setIdLocalidade(X(helper.getIdLocalidade()));
// Descri��o da Localidade
relatorioBean.setNomeLocalidade(X(helper.getDescricaoLocalidade()));
// C�digo do Setor Comercial
relatorioBean.setIdSetorComercial(X(helper.getCodigoSetorComercial()));
// Descri��o do Setor Comercial
relatorioBean.setNomeSetorComercial(X(helper.getDescricaoSetorComercial()));
// Endere�o
relatorioBean.setEndereco(helper.getEndereco());
// Matr�cula do Im�vel
relatorioBean.setMatricula(X(helper.getMatriculaImovel()));
// Nome do Cliente Usu�rio
relatorioBean.setNomeCliente(X(helper.getClienteUsuarioNome()));
// Quadra.Lote.SubLote
relatorioBean.setQuadraLoteSubLote(format(helper.getNumeroQuadra(), 4) + "." + format(helper.getNumeroLote(), 4) + "." + format(helper.getNumeroSubLote(), 3));
//Quadra.Lote.SubLote.Rota.SequenciaRota
//relatorioBean.setQuadraLoteSubLoteRotaSegRota(fachada.pesquisarInscricaoImovel(helper.getMatriculaImovel()));
if (helper.getNumeroSequencialRota() != null){
relatorioBean.setQuadraLoteSubLoteRotaSegRota(format(helper.getNumeroQuadra(), 4) + "." + format(helper.getNumeroLote(), 4)
+ "." + format(helper.getNumeroSubLote(), 3) + "." + format(helper.getCodigoRota(), 2) + "." + format(helper.getNumeroSequencialRota(),4));
}else{
relatorioBean.setQuadraLoteSubLoteRotaSegRota(format(helper.getNumeroQuadra(), 4) + "." + format(helper.getNumeroLote(), 4)
+ "." + format(helper.getNumeroSubLote(), 3) + "." + format(helper.getCodigoRota(), 2) + "." + format(0, 4));
}
// Categoria
relatorioBean.setCategoria(X(helper.getDescricaoAbreviadaCategoria()));
// Economias
relatorioBean.setEconomias(X(helper.getQuantidadeEconomia()));
// Situa��o da Liga��o de �gua
relatorioBean.setSituacaoAgua(X(helper.getLigacaoAguaSituacao()));
// Situa��o da Liga��o de Esgoto
relatorioBean.setSituacaoEsgoto(X(helper.getLigacaoEsgotoSituacao()));
// Indicador Medido de Esgoto
relatorioBean.setIndicadorMedidoEsgoto(X(helper.getIndicadorExistenciaHidrometro() == 1 ? "SIM" : "N�O"));
// Percentual de Esgoto
relatorioBean.setPercentualEsgoto(X(helper.getPercentual()));
// Consumo M�nimo Fixado de Esgoto
relatorioBean.setConsumoMinimoEsgoto(X(helper.getConsumoMinimoFixadoLigacaoEsgoto()));
// adiciona o bean a cole��o
relatorioBeans.add(relatorioBean);
}
}
// Par�metros do relat�rio
Map parametros = new HashMap();
// adiciona os par�metros do relat�rio
// adiciona o laudo da an�lise
SistemaParametro sistemaParametro = fachada.pesquisarParametrosDoSistema();
parametros.put("imagem", sistemaParametro.getImagemRelatorio());
parametros.put("tipoFormatoRelatorio", "R0608");
RelatorioDataSource ds = new RelatorioDataSource((List) relatorioBeans);
// exporta o relat�rio em pdf e retorna o array de bytes
retorno = gerarRelatorio(ConstantesRelatorios.RELATORIO_IMOVEL_ENDERECO, parametros, ds, tipoFormatoRelatorio);
// Grava o relat�rio no sistema
try {
persistirRelatorioConcluido(retorno, Relatorio.IMOVEL_ENDERECO, idFuncionalidadeIniciada);
} catch (ControladorException e) {
e.printStackTrace();
throw new TarefaException("Erro ao gravar relat�rio no sistema", e);
}
// retorna o relat�rio gerado
return retorno;
}
@Override
public int calcularTotalRegistrosRelatorio() {
// id da genrencia regional
String gerenciaRegionalPesquisa = (String) getParametro("gerenciaRegional");
// id da unidade negocio
String idUnidadeNegoio = (String) getParametro("unidadeNegocio");
// numero da quadra origem
String qudraOrigem = (String) getParametro("quadraOrigem");
// numero quadra destino
String quadraDestino = (String) getParametro("quadraDestino");
// lote origem
String loteOrigem = (String) getParametro("loteOrigem");
// lote destino
String loteDestino = (String) getParametro("loteDestino");
// cep
String cep = (String) getParametro("cep");
// id localidade origem
String localidadeOrigem = (String) getParametro("localidadeOrigem");
// id localidade destino
String localidadeDestino = (String) getParametro("localidadeDestino");
// setor comercial origem CD
String setorComercialOrigemCD = (String) getParametro("setorComercialOrigemCD");
// setor comercial destino CD
String setorComercialDestinoCD = (String) getParametro("setorComercialDestinoCD");
// cliente ID
String clienteID = (String) getParametro("clienteID");
// municipio ID
String municipioID = (String) getParametro("municipioID");
// bairro ID
String bairroID = (String) getParametro("bairroID");
// logradouro ID
String logradouroID = (String) getParametro("logradouroID");
// cliente relacao tipo ID
String clienteRelacaoTipoID = (String) getParametro("clienteRelacaoTipoID");
// cliente tipo ID
String clienteTipoID = (String) getParametro("clienteTipoID");
// imovel condominio ID
String imovelCondominioID = (String) getParametro("imovelCondominioID");
// imovel Principal ID
String imovelPrincipalID = (String) getParametro("imovelPrincipalID");
// nome Conta ID
// String nomeContaID = (String) getParametro("nomeContaID");
// situacao Agua
String situacaoAgua = (String) getParametro("situacaoAgua");
// situacao Ligacao Esgoto
String situacaoLigacaoEsgoto = (String) getParametro("situacaoLigacaoEsgoto");
// consumo Minimo Inicial
String consumoMinimoInicial = (String) getParametro("consumoMinimoInicial");
// consumo Minimo Final
String consumoMinimoFinal = (String) getParametro("consumoMinimoFinal");
// consumo Minimo Fixado Esgoto Inicial
String consumoMinimoFixadoEsgotoInicial = (String) getParametro("consumoMinimoFixadoEsgotoInicial");
// consumo Minimo Fixado Esgoto Final
String consumoMinimoFixadoEsgotoFinal = (String) getParametro("consumoMinimoFixadoEsgotoFinal");
// intervalo Percentual Esgoto Inicial
String intervaloPercentualEsgotoInicial = (String) getParametro("intervaloPercentualEsgotoInicial");
// intervalor Percentual Esgoto Final
String intervaloPercentualEsgotoFinal = (String) getParametro("intervaloPercentualEsgotoFinal");
// indicador Medicao
String indicadorMedicaoPesquisa = (String) getParametro("indicadorMedicao");
// tipo Medicao ID
String tipoMedicaoID = (String) getParametro("tipoMedicaoID");
// intervalo Media Minima Imovel Inicial
String intervaloMediaMinimaImovelInicial = (String) getParametro("intervaloMediaMinimaImovelInicial");
// intervalo Media Minima Imovel Final
String intervaloMediaMinimaImoveFinal = (String) getParametro("intervaloMediaMinimaImoveFinal");
// intervalo Media Minima Hidrometro Inicial
String intervaloMediaMinimaHidrometroInicial = (String) getParametro("intervaloMediaMinimaHidrometroInicial");
// intervalo Media Minima Hidrometro Final
String intervaloMediaMinimaHidrometroFinal = (String) getParametro("intervaloMediaMinimaHidrometroFinal");
// perfil Imovel ID
String perfilImovelID = (String) getParametro("perfilImovelID");
// categoria Imovel ID
String categoriaImovelID = (String) getParametro("categoriaImovelID");
// sub categoria ID
String subCategoriaID = (String) getParametro("subCategoriaID");
// quantidade Economias Inicial
String quantidadeEconomiasInicial = (String) getParametro("quantidadeEconomiasInicial");
// quantidade Economias Final
String quantidadeEconomiasFinal = (String) getParametro("quantidadeEconomiasFinal");
// numero Pontos Inicial
String numeroPontosInicial = (String) getParametro("numeroPontosInicial");
// numero Pontos Final
String numeroPontosFinal = (String) getParametro("numeroPontosFinal");
// numero Moradores Inicial
String numeroMoradoresInicial = (String) getParametro("numeroMoradoresInicial");
// numero Moradoras Final
String numeroMoradoresFinal = (String) getParametro("numeroMoradoresFinal");
// area Construida Inicial
String areaConstruidaInicial = (String) getParametro("areaConstruidaInicial");
// area Construida Final
String areaConstruidaFinal = (String) getParametro("areaConstruidaFinal");
// area Construida Faixa
String areaConstruidaFaixa = (String) getParametro("areaConstruidaFaixa");
// poco Tipo ID
String pocoTipoID = (String) getParametro("pocoTipoID");
// tipo Situacao Faturamento ID
String tipoSituacaoFaturamentoID = (String) getParametro("tipoSituacaoFaturamentoID");
// tipo Situacao Especial Cobranca ID
String tipoSituacaoEspecialCobrancaID = (String) getParametro("tipoSituacaoEspecialCobrancaID");
// situacao Cobranca ID
String situacaoCobrancaID = (String) getParametro("situacaoCobrancaID");
// dia Vencimento Alternativo
String diaVencimentoAlternativo = (String) getParametro("diaVencimentoAlternativo");
// ocorrencia Cadastro
String ocorrenciaCadastro = (String) getParametro("ocorrenciaCadastro");
// tarifa Consumo
String tarifaConsumo = (String) getParametro("tarifaConsumo");
// anormalidade Elo
String anormalidadeElo = (String) getParametro("anormalidadeElo");
// Rota Inicial
String rotaInicial = (String) getParametro("rotaInicial");
// Rota Final
String rotaFinal = (String) getParametro("rotaFinal");
//Ordenacao do Relatorio
String ordenacaoRelatorio = (String) getParametro("ordenacaoRelatorio");
//numero da sequencia da rota inicial
String seqRotaInicial = (String) getParametro("sequencialRotaInicial");
// numero da sequencia da rota final
String seqRotaFinal = (String) getParametro("sequencialRotaFinal");
Integer retorno = Fachada.getInstancia().gerarRelatorioImovelEnderecoOutrosCriteriosCount(
imovelCondominioID,
imovelPrincipalID, situacaoAgua, consumoMinimoInicial,
consumoMinimoFinal, situacaoLigacaoEsgoto,
consumoMinimoFixadoEsgotoInicial,
consumoMinimoFixadoEsgotoFinal,
intervaloPercentualEsgotoInicial,
intervaloPercentualEsgotoFinal,
intervaloMediaMinimaImovelInicial,
intervaloMediaMinimaImoveFinal,
intervaloMediaMinimaHidrometroInicial,
intervaloMediaMinimaHidrometroFinal, perfilImovelID,
pocoTipoID, tipoSituacaoFaturamentoID,
situacaoCobrancaID, tipoSituacaoEspecialCobrancaID,
anormalidadeElo, areaConstruidaInicial,
areaConstruidaFinal, ocorrenciaCadastro, tarifaConsumo,
gerenciaRegionalPesquisa, localidadeOrigem,
localidadeDestino, setorComercialOrigemCD,
setorComercialDestinoCD, qudraOrigem, quadraDestino,
loteOrigem, loteDestino, cep, logradouroID, bairroID,
municipioID, tipoMedicaoID, indicadorMedicaoPesquisa,
subCategoriaID, categoriaImovelID,
quantidadeEconomiasInicial, quantidadeEconomiasFinal,
diaVencimentoAlternativo, clienteID, clienteTipoID,
clienteRelacaoTipoID, numeroPontosInicial,
numeroPontosFinal, numeroMoradoresInicial,
numeroMoradoresFinal, areaConstruidaFaixa,idUnidadeNegoio,
rotaInicial, rotaFinal, ordenacaoRelatorio,seqRotaInicial, seqRotaFinal);
if (retorno == 0) {
// Caso a pesquisa n�o retorne nenhum resultado comunica ao
// usu�rio;
throw new ActionServletException("atencao.pesquisa.nenhumresultado");
}
return retorno;
}
public void agendarTarefaBatch() {
AgendadorTarefas.agendarTarefa("RelatorioImovelEndereco", this);
}
private String X(Object o) {
return o == null ? "" : o.toString();
}
private String format(Number number, int integer) {
String retorno = "";
if (number != null){
NumberFormat format = NumberFormat.getIntegerInstance();
format.setMinimumIntegerDigits(integer);
format.setMaximumIntegerDigits(integer);
retorno = format.format(number).replace(".","");
}
return retorno;
}
}