package gcom.relatorio.cobranca;
import gcom.batch.Relatorio;
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.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.Util;
import gcom.util.agendadortarefas.AgendadorTarefas;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
/**
* classe respons�vel por criar o relat�rio
*
* @author R�mulo Aur�lio
* @created 23/03/2009
*/
public class RelatorioImoveisComAcordo extends TarefaRelatorio {
private static final long serialVersionUID = 1L;
public RelatorioImoveisComAcordo(Usuario usuario) {
super(usuario, ConstantesRelatorios.RELATORIO_IMOVEIS_COM_ACORDO);
}
@Deprecated
public RelatorioImoveisComAcordo() {
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
*/
@SuppressWarnings("static-access")
public Object executar() throws TarefaException {
// ------------------------------------
Integer idFuncionalidadeIniciada = this.getIdFuncionalidadeIniciada();
// ------------------------------------
UnidadeNegocio unidadeNegocio = (UnidadeNegocio) getParametro("unidadeNegocio");
GerenciaRegional gerenciaRegional = (GerenciaRegional) getParametro("gerenciaRegional");
Localidade localidadeInicial = (Localidade) getParametro("localidadeInicial");
Localidade localidadeFinal = (Localidade) getParametro("localidadeFinal");
SetorComercial setorComercialInicial = (SetorComercial) getParametro("setorComercialInicial");
SetorComercial setorComercialFinal = (SetorComercial) getParametro("setorComercialFinal");
String rotaInicial = (String) getParametro("rotaInicial");
String rotaFinal = (String) getParametro("rotaFinal");
String sequencialRotaInicial = (String) getParametro("sequencialRotaInicial");
String sequencialRotaFinal = (String) getParametro("sequencialRotaFinal");
Date dataInicial = (Date) getParametro("dataInicial");
Date dataFinal = (Date) getParametro("dataFinal");
@SuppressWarnings("unused")
String opcaoEmissao = (String) getParametro("opcaoRelatorio");
int tipoFormatoRelatorio = (Integer) getParametro("tipoFormatoRelatorio");
// valor de retorno
byte[] retorno = null;
// cole��o de beans do relat�rio
List relatorioBeans = new ArrayList();
Collection colecaoRelatorioImoveisComAcordoBean = Fachada
.getInstancia().pesquisarDadosGerarRelatorioImoveisComAcordo(
unidadeNegocio == null ? null : unidadeNegocio.getId(),
localidadeInicial == null ? null : localidadeInicial
.getId(),
localidadeFinal == null ? null : localidadeFinal
.getId(),
gerenciaRegional == null ? null : gerenciaRegional
.getId(),
dataInicial,
dataFinal,
rotaInicial == null || rotaInicial.equals("") ? null
: Integer.parseInt(rotaInicial),
rotaFinal == null || rotaFinal.equals("") ? null
: Integer.parseInt(rotaFinal),
sequencialRotaInicial == null
|| sequencialRotaInicial.equals("") ? null
: Integer.parseInt(sequencialRotaInicial),
sequencialRotaFinal == null
|| sequencialRotaFinal.equals("") ? null
: Integer.parseInt(sequencialRotaFinal),
setorComercialInicial == null ? null
: setorComercialInicial.getCodigo(),
setorComercialFinal == null ? null
: setorComercialFinal.getCodigo());
if (colecaoRelatorioImoveisComAcordoBean != null
&& !colecaoRelatorioImoveisComAcordoBean.isEmpty()) {
Iterator it = colecaoRelatorioImoveisComAcordoBean.iterator();
while (it.hasNext()) {
RelatorioImoveisComAcordoBean relatorioImoveisComAcordoBean = (RelatorioImoveisComAcordoBean) it
.next();
try {
relatorioImoveisComAcordoBean.setEndereco(Fachada
.getInstancia().pesquisarEnderecoAbreviadoCAER(
Integer.parseInt(relatorioImoveisComAcordoBean
.getIdImovel())));
} catch (NumberFormatException e) {
e.printStackTrace();
}
relatorioImoveisComAcordoBean.setNomeCliente(Fachada
.getInstancia().pesquisarNomeClientePorImovel(
Integer.parseInt(relatorioImoveisComAcordoBean
.getIdImovel())));
relatorioImoveisComAcordoBean.setInscricao(Fachada
.getInstancia().pesquisarInscricaoImovel(
Integer.parseInt(relatorioImoveisComAcordoBean
.getIdImovel())));
}
relatorioBeans.addAll(colecaoRelatorioImoveisComAcordoBean);
} else {
throw new ActionServletException("");
}
// __________________________________________________________________
// 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.getInstancia()
.pesquisarParametrosDoSistema();
parametros.put("imagem", sistemaParametro.getImagemRelatorio());
if (unidadeNegocio != null) {
parametros.put("idUnidadeNegocio", unidadeNegocio.getId());
parametros.put("nomeUnidadeNegocio", unidadeNegocio.getNome());
} else {
parametros.put("nomeUnidadeNegocio", "");
}
if (gerenciaRegional != null) {
parametros.put("idGerenciaRegional", gerenciaRegional.getId());
parametros.put("nomeGerenciaRegional", gerenciaRegional.getNome());
} else {
parametros.put("nomeGerenciaRegional", "");
}
if (sequencialRotaInicial != null && !sequencialRotaInicial.equals("")) {
parametros.put("sequencialRotaInicial", sequencialRotaInicial);
} else {
parametros.put("sequencialRotaInicial", "");
}
if (sequencialRotaFinal != null && !sequencialRotaFinal.equals("")) {
parametros.put("sequencialRotaFinal", sequencialRotaFinal);
} else {
parametros.put("sequencialRotaFinal", "");
}
if (rotaInicial != null && !rotaInicial.equals("")) {
parametros.put("rotaInicial", rotaInicial);
} else {
parametros.put("rotaInicial", "");
}
if (rotaInicial != null && !rotaInicial.equals("")) {
parametros.put("rotaFinal", rotaFinal);
} else {
parametros.put("rotaFinal", "");
}
if (localidadeInicial != null) {
parametros.put("idLocalidadeInicial", localidadeInicial.getId());
parametros.put("nomeLocalidadeInicial", localidadeInicial
.getDescricao());
} else {
parametros.put("nomeLocalidadeInicial", "");
}
if (localidadeFinal != null) {
parametros.put("idLocalidadeFinal", localidadeFinal.getId());
parametros.put("nomeLocalidadeFinal", localidadeFinal
.getDescricao());
} else {
parametros.put("nomeLocalidadeFinal", "");
}
parametros.put("dataInicial", Util.formatarData(dataInicial));
parametros.put("dataFinal", Util.formatarData(dataFinal));
parametros.put("tipoRelatorio", "R0891");
// cria uma inst�ncia do dataSource do relat�rio
RelatorioDataSource ds = new RelatorioDataSource(relatorioBeans);
retorno = gerarRelatorio(
ConstantesRelatorios.RELATORIO_IMOVEIS_COM_ACORDO, parametros,
ds, tipoFormatoRelatorio);
// ------------------------------------
// Grava o relat�rio no sistema
try {
persistirRelatorioConcluido(retorno,
Relatorio.RELATORIO_IMOVEIS_COM_ACORDO,
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;
UnidadeNegocio unidadeNegocio = (UnidadeNegocio) getParametro("unidadeNegocio");
GerenciaRegional gerenciaRegional = (GerenciaRegional) getParametro("gerenciaRegional");
Localidade localidadeInicial = (Localidade) getParametro("localidadeInicial");
Localidade localidadeFinal = (Localidade) getParametro("localidadeFinal");
SetorComercial setorComercialInicial = (SetorComercial) getParametro("setorComercialInicial");
SetorComercial setorComercialFinal = (SetorComercial) getParametro("setorComercialFinal");
String rotaInicial = (String) getParametro("rotaInicial");
String rotaFinal = (String) getParametro("rotaFinal");
String sequencialRotaInicial = (String) getParametro("sequencialRotaInicial");
String sequencialRotaFinal = (String) getParametro("sequencialRotaFinal");
Date dataInicial = (Date) getParametro("dataInicial");
Date dataFinal = (Date) getParametro("dataFinal");
retorno = Fachada.getInstancia()
.pesquisarDadosGerarRelatorioImoveisComAcordoCount(
unidadeNegocio == null ? null : unidadeNegocio.getId(),
localidadeInicial == null ? null
: localidadeInicial.getId(),
localidadeFinal == null ? null : localidadeFinal.getId(),
gerenciaRegional == null ? null : gerenciaRegional.getId(),
dataInicial,
dataFinal,
rotaInicial == null || rotaInicial.equals("") ? null
: Integer.parseInt(rotaInicial),
rotaFinal == null || rotaFinal.equals("") ? null
: Integer.parseInt(rotaFinal),
sequencialRotaInicial == null
|| sequencialRotaInicial.equals("") ? null
: Integer.parseInt(sequencialRotaInicial),
sequencialRotaFinal == null
|| sequencialRotaFinal.equals("") ? null
: Integer.parseInt(sequencialRotaFinal),
setorComercialInicial == null ? null
: setorComercialInicial.getCodigo(),
setorComercialFinal == null ? null
: setorComercialFinal.getCodigo());
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("RelatorioImovelComAcordo", this);
}
}