package gcom.relatorio.cadastro.imovel;
import gcom.batch.Relatorio;
import gcom.cadastro.imovel.FiltroImovelPerfil;
import gcom.cadastro.imovel.Imovel;
import gcom.cadastro.imovel.ImovelPerfil;
import gcom.cadastro.imovel.bean.GerarRelatorioAnaliseImovelCorporativoGrandeHelper;
import gcom.cadastro.localidade.FiltroGerenciaRegional;
import gcom.cadastro.localidade.FiltroLocalidade;
import gcom.cadastro.localidade.FiltroSetorComercial;
import gcom.cadastro.localidade.FiltroUnidadeNegocio;
import gcom.cadastro.localidade.GerenciaRegional;
import gcom.cadastro.localidade.Localidade;
import gcom.cadastro.localidade.SetorComercial;
import gcom.cadastro.localidade.UnidadeNegocio;
import gcom.cadastro.sistemaparametro.SistemaParametro;
import gcom.fachada.Fachada;
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.Util;
import gcom.util.agendadortarefas.AgendadorTarefas;
import gcom.util.filtro.ParametroSimples;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
/**
* Este caso de uso gera relat�rio de an�lise do im�vel corporativo ou grande
*
* @author Ana Maria
* @date 06/01/09
*
*/
public class RelatorioAnaliseImovelCorporativoGrande extends TarefaRelatorio {
private static final long serialVersionUID = 1L;
public RelatorioAnaliseImovelCorporativoGrande(Usuario usuario) {
super(usuario,
ConstantesRelatorios.RELATORIO_ANALISE_IMOVEL_CORPORATIVO_GRANDE);
}
@Deprecated
public RelatorioAnaliseImovelCorporativoGrande() {
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();
// ------------------------------------
Integer idGerenciaRegional = (Integer) getParametro("idGerenciaRegional");
Integer idUnidadeNegocio = (Integer) getParametro("idUnidadeNegocio");
Integer idLocalidadeInicial = (Integer) getParametro("idLocalidadeInicial");
Integer idLocalidadeFinal = (Integer) getParametro("idLocalidadeFinal");
Integer idSetorComercialInicial = (Integer) getParametro("idSetorComercialInicial");
Integer idSetorComercialFinal = (Integer) getParametro("idSetorComercialFinal");
Integer idImovel = (Integer) getParametro("idImovelPerfil");
Integer selecionar = (Integer) getParametro("selecionar");
Integer referencia = (Integer) getParametro("referencia");
Integer idImovelPerfil = (Integer)getParametro("idImovelPerfil");
int tipoFormatoRelatorio = (Integer) getParametro("tipoFormatoRelatorio");
// valor de retorno
byte[] retorno = null;
// cole��o de beans do relat�rio
List relatorioBeans = new ArrayList();
Fachada fachada = Fachada.getInstancia();
RelatorioAnaliseImovelCorporativoGrandeBean relatorioBean = null;
Collection colecaoRelatorioAnaliseImovelCorporativoGrandeHelper = fachada.pesquisarDadosRelatorioAnaliseImovelCorporativoGrande(
idGerenciaRegional,idUnidadeNegocio, idLocalidadeInicial, idLocalidadeFinal,
idSetorComercialInicial, idSetorComercialFinal, referencia, idImovel, selecionar);
// se a cole��o de par�metros da analise n�o for vazia
if (colecaoRelatorioAnaliseImovelCorporativoGrandeHelper != null
&& !colecaoRelatorioAnaliseImovelCorporativoGrandeHelper.isEmpty()) {
// coloca a cole��o de par�metros da analise no iterator
Iterator colecaoRelatorioAnaliseImovelCorporativoGrandeHelperIterator = colecaoRelatorioAnaliseImovelCorporativoGrandeHelper
.iterator();
// la�o para criar a cole��o de par�metros da analise
while (colecaoRelatorioAnaliseImovelCorporativoGrandeHelperIterator.hasNext()) {
GerarRelatorioAnaliseImovelCorporativoGrandeHelper helper = (GerarRelatorioAnaliseImovelCorporativoGrandeHelper) colecaoRelatorioAnaliseImovelCorporativoGrandeHelperIterator
.next();
// Faz as valida��es dos campos necess�riose e formata a String
// para a forma como ir� aparecer no relat�rio
// Ger�ncia Regional
String gerenciaRegional = "";
if (helper.getIdGerenciaRegional() != null) {
gerenciaRegional = helper.getIdGerenciaRegional()
+ " - " + helper.getNomeGerenciaRegional();
}
// Unidade de Neg�cio
String unidadeNegocio = "";
if (helper.getIdUnidadeNegocio() != null) {
unidadeNegocio = helper.getIdUnidadeNegocio()
+ " - "+ helper.getNomeUnidadeNegocio();
}
// Localidade
String localidade = "";
if (helper.getIdLocalidade() != null) {
localidade = helper
.getIdLocalidade()
+ " - "
+ helper
.getNomeLocalidade();
}
// Setor Comercial
String setorComercial = "";
String idSetorComercial = "";
if (helper.getIdSetorComercial() != null) {
setorComercial = helper.getCodigoSetorComercial().toString();
idSetorComercial = helper.getIdSetorComercial().toString();
}
// Im�vel, Endere�o e Categoria
String matriculaImovel = "";
String endereco = "";
String inscricao = "";
if (helper.getIdImovel() != null) {
matriculaImovel = helper.getIdImovel().toString();
Imovel imovel = new Imovel();
imovel.setId(helper.getIdImovel());
endereco = fachada.pesquisarEndereco(helper.getIdImovel());
inscricao = fachada.pesquisarInscricaoImovel(helper.getIdImovel());
}
// Capacidade do Hidr�metro
String capacidadeHidrometro = "";
if (helper.getCapacidadeHidrometro() != null) {
capacidadeHidrometro = helper.getCapacidadeHidrometro();
}
String consumoMedio = "";
if (helper.getConsumoMedio() != null) {
consumoMedio = helper.getConsumoMedio().toString();
}
String consumoFaturado = "";
if (helper.getConsumoFaturado() != null) {
consumoFaturado = helper.getConsumoFaturado().toString();
}
String tipoLigacao = "";
if(helper.getIdTipoLigacao() != null){
if(helper.getIdTipoLigacao().equals(1)){
tipoLigacao = "�GUA";
}else{
tipoLigacao = "ESGOTO";
}
}
relatorioBean = new RelatorioAnaliseImovelCorporativoGrandeBean(
// Unidade de Neg�cio
unidadeNegocio,
// Ger�ncia Regional
gerenciaRegional,
// Localidade
localidade,
// Id do Setor Comercial
idSetorComercial,
// Setor Comercial
setorComercial,
//Inscri��o
inscricao,
// Im�vel
matriculaImovel,
// Endere�o
endereco,
// Capacidade do Hidr�metro
capacidadeHidrometro,
//Consumo M�dio
consumoMedio,
//Consumo Faturado
consumoFaturado,
//Tipo de liga��o
tipoLigacao
);
// 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("mesAno", Util.formatarAnoMesParaMesAno(referencia));
if(idUnidadeNegocio!=null){
FiltroUnidadeNegocio filtroUnidadeNegocio = new FiltroUnidadeNegocio();
filtroUnidadeNegocio.adicionarParametro(new ParametroSimples(FiltroUnidadeNegocio.ID, idUnidadeNegocio));
Collection colecaoUnidadeNegocio = fachada.pesquisar(filtroUnidadeNegocio, UnidadeNegocio.class.getName());
UnidadeNegocio unidadeNegocio = (UnidadeNegocio) Util.retonarObjetoDeColecao(colecaoUnidadeNegocio);
parametros.put("unidadeNegocio", unidadeNegocio.getNomeAbreviado() + "-" + unidadeNegocio.getNome());
}else{
parametros.put("unidadeNegocio", "");
}
if(idLocalidadeInicial!=null){
FiltroLocalidade filtroLocalidadeInicial = new FiltroLocalidade();
filtroLocalidadeInicial.adicionarParametro(new ParametroSimples(FiltroLocalidade.ID, idLocalidadeInicial));
Collection colecaoLocalidadeInicial = fachada.pesquisar(filtroLocalidadeInicial, Localidade.class.getName());
Localidade localidadeInicial = (Localidade) Util.retonarObjetoDeColecao(colecaoLocalidadeInicial);
parametros.put("localidadeInicial", localidadeInicial.getId() + "-" + localidadeInicial.getDescricao()) ;
}else{
parametros.put("localidadeInicial", "") ;
}
if(idLocalidadeInicial!=null){
FiltroLocalidade filtroLocalidadeFinal = new FiltroLocalidade();
filtroLocalidadeFinal.adicionarParametro(new ParametroSimples(FiltroLocalidade.ID, idLocalidadeInicial));
Collection colecaoLocalidadeFinal = fachada.pesquisar(filtroLocalidadeFinal, Localidade.class.getName());
Localidade localidadeFinal = (Localidade) Util.retonarObjetoDeColecao(colecaoLocalidadeFinal);
parametros.put("localidadeFinal", localidadeFinal.getId() + "-" + localidadeFinal.getDescricao()) ;
}else{
parametros.put("localidadeFinal", "") ;
}
if(idGerenciaRegional!=null){
FiltroGerenciaRegional filtroGerenciaRegional = new FiltroGerenciaRegional();
filtroGerenciaRegional.adicionarParametro(new ParametroSimples(FiltroGerenciaRegional.ID, idGerenciaRegional));
Collection colecaoGerenciaRegional = fachada.pesquisar(filtroGerenciaRegional, GerenciaRegional.class.getName());
GerenciaRegional gerenciaRegional = (GerenciaRegional) Util.retonarObjetoDeColecao(colecaoGerenciaRegional);
parametros.put("gerenciaRegional", gerenciaRegional.getNomeAbreviado() + "-" + gerenciaRegional.getNome());
}else{
parametros.put("gerenciaRegional", "");
}
if(idSetorComercialInicial!= null){
FiltroSetorComercial filtroSetorComercialInicial = new FiltroSetorComercial();
filtroSetorComercialInicial.adicionarParametro(new ParametroSimples(FiltroSetorComercial.ID, idSetorComercialInicial));
Collection colecaoSetorComercialInicial = fachada.pesquisar(filtroSetorComercialInicial, SetorComercial.class.getName());
SetorComercial setorComercialInicial = (SetorComercial) Util.retonarObjetoDeColecao(colecaoSetorComercialInicial);
parametros.put("setorComercialInicial", setorComercialInicial.getId() + "-" + setorComercialInicial.getDescricao()) ;
}else{
parametros.put("setorComercialInicial", "") ;
}
if(idSetorComercialInicial!=null){
FiltroSetorComercial filtroSetorComercialFinal = new FiltroSetorComercial();
filtroSetorComercialFinal.adicionarParametro(new ParametroSimples(FiltroSetorComercial.ID, idSetorComercialInicial));
Collection colecaoSetorComercialFinal = fachada.pesquisar(filtroSetorComercialFinal, SetorComercial.class.getName());
SetorComercial setorComercialFinal = (SetorComercial) Util.retonarObjetoDeColecao(colecaoSetorComercialFinal);
parametros.put("setorComercialFinal", setorComercialFinal.getId() + "-" + setorComercialFinal.getDescricao()) ;
}else{
parametros.put("setorComercialFinal", "") ;
}
if(idImovelPerfil!=null){
FiltroImovelPerfil filtroImovelPerfil = new FiltroImovelPerfil();
filtroImovelPerfil.adicionarParametro(new ParametroSimples(FiltroImovelPerfil.ID, idImovelPerfil));
Collection colecaoImovelPerfil = fachada.pesquisar(filtroImovelPerfil, ImovelPerfil.class.getName());
ImovelPerfil imovelPerfil = (ImovelPerfil) Util.retonarObjetoDeColecao(colecaoImovelPerfil);
parametros.put("imovelPerfil","AN�LISE DO IM�VEIS " +imovelPerfil.getDescricao().toUpperCase()+"S") ;
}else{
parametros.put("imovelPerfil", "") ;
}
parametros.put("tipoFormatoRelatorio", "R0887");
// cria uma inst�ncia do dataSource do relat�rio
RelatorioDataSource ds = new RelatorioDataSource(relatorioBeans);
retorno = gerarRelatorio(
ConstantesRelatorios.RELATORIO_ANALISE_IMOVEL_CORPORATIVO_GRANDE,
parametros, ds, tipoFormatoRelatorio);
// ------------------------------------
// Grava o relat�rio no sistema
try {
persistirRelatorioConcluido(retorno,
Relatorio.ANALISE_IMOVEL_CORPORATIVO_GRANDE,
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() {
int retorno = 0;
return retorno;
}
public void agendarTarefaBatch() {
AgendadorTarefas.agendarTarefa("RelatorioAnaliseImovelCorporativoGrande",
this);
}
}