package gcom.relatorio.cadastro.imovel;
import gcom.arrecadacao.bean.DebitoAutomaticoRelatoriosHelper;
import gcom.arrecadacao.debitoautomatico.DebitoAutomatico;
import gcom.cadastro.imovel.ImovelCadastroOcorrencia;
import gcom.cadastro.imovel.ImovelEloAnormalidade;
import gcom.cadastro.imovel.ImovelRamoAtividade;
import gcom.cadastro.imovel.bean.ImovelCadastroOcorrenciaRelatoriosHelper;
import gcom.cadastro.imovel.bean.ImovelCobrancaSituacaoHelper;
import gcom.cadastro.imovel.bean.ImovelEloAnormalidadeRelatoriosHelper;
import gcom.cadastro.imovel.bean.ImovelRamoAtividadeRelatoriosHelper;
import gcom.cobranca.CobrancaSituacaoHistorico;
import gcom.cobranca.bean.SituacaoEspecialCobrancaHelper;
import gcom.fachada.Fachada;
import gcom.faturamento.FaturamentoSituacaoHistorico;
import gcom.faturamento.VencimentoAlternativo;
import gcom.faturamento.bean.SituacaoEspecialFaturamentoHelper;
import gcom.gui.cadastro.imovel.ConsultarImovelActionForm;
import gcom.relatorio.ConstantesRelatorios;
import gcom.relatorio.RelatorioDataSource;
import gcom.seguranca.acesso.usuario.Usuario;
import gcom.tarefa.TarefaException;
import gcom.tarefa.TarefaRelatorio;
import gcom.util.Util;
import gcom.util.agendadortarefas.AgendadorTarefas;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
public class RelatorioDadosComplementaresImovel extends TarefaRelatorio {
private static final long serialVersionUID = 1L;
public RelatorioDadosComplementaresImovel(Usuario usuario) {
super(usuario, ConstantesRelatorios.RELATORIO_DADOS_COMPLEMENTARES_IMOVEL);
}
public Object executar() throws TarefaException {
List<RelatorioDadosComplementaresImovelBean> relatorioBeans = new ArrayList<RelatorioDadosComplementaresImovelBean>();
relatorioBeans.add( criarRelatorioBean() );
RelatorioDataSource ds = new RelatorioDataSource(relatorioBeans);
Map<String, Object> parametros = criarParametrosRelatorio();
int tipoFormatoRelatorio = (Integer) getParametro("tipoFormatoRelatorio");
return this.gerarRelatorio(ConstantesRelatorios.RELATORIO_DADOS_COMPLEMENTARES_IMOVEL, parametros,ds, tipoFormatoRelatorio);
}
/**
* Esse m�todo cria o RelatorioBean atrav�s dos parametros
* enviado a este objeto.
*
*@since 23/09/2009
*@author Marlon Patrick
*/
private RelatorioDadosComplementaresImovelBean criarRelatorioBean() {
ConsultarImovelActionForm consultarImovelForm =
(ConsultarImovelActionForm) getParametro("consultarImovelForm");
RelatorioDadosComplementaresImovelBean relatorioBean = new RelatorioDadosComplementaresImovelBean();
relatorioBean.setInscricaoImovel(consultarImovelForm.getMatriculaImovelDadosComplementares());
relatorioBean.setMatriculaImovel(consultarImovelForm.getIdImovelDadosComplementares());
relatorioBean.setSituacaoAguaImovel(consultarImovelForm.getSituacaoAguaDadosComplementares());
relatorioBean.setSituacaoEsgotoImovel(consultarImovelForm.getSituacaoEsgotoDadosComplementares());
relatorioBean.setTarifaConsumo(consultarImovelForm.getTarifaConsumoDadosComplementares());
relatorioBean.setQuantidadeRetificacoes(consultarImovelForm.getQuantidadeRetificacoesDadosComplementares());
relatorioBean.setQuantidadeParcelamento(consultarImovelForm.getQuantidadeParcelamentosDadosComplementares());
relatorioBean.setQuantidadeReparcelamento(consultarImovelForm.getQuantidadeReparcelamentoDadosComplementares());
relatorioBean.setQuantidadeReparcelamentosConsecutivos(consultarImovelForm.getQuantidadeReparcelamentoConsecutivosDadosComplementares());
relatorioBean.setSituacaoCobranca(consultarImovelForm.getSituacaoCobrancaDadosComplementares());
if(Util.verificarNaoVazio(consultarImovelForm.getIdFuncionario())
&& Util.verificarNaoVazio(consultarImovelForm.getNomeFuncionario())){
relatorioBean.setFuncionarioResponsavel(consultarImovelForm.getIdFuncionario() + " - " + consultarImovelForm.getNomeFuncionario());
}
relatorioBean.setInformacoesComplementares(consultarImovelForm.getInformacoesComplementares());
Collection<VencimentoAlternativo> colecaoVencimentosAlternativos =
(Collection<VencimentoAlternativo>) getParametro("colecaoVencimentosAlternativos");
Collection<DebitoAutomatico> colecaoDebitosAutomaticos =
(Collection<DebitoAutomatico>) getParametro("colecaoDebitosAutomaticos");
Collection<FaturamentoSituacaoHistorico> colecaoFaturamentosSituacaoHistorico =
(Collection<FaturamentoSituacaoHistorico>) getParametro("colecaoFaturamentosSituacaoHistorico");
Collection<CobrancaSituacaoHistorico> colecaoCobrancasSituacaoHistorico =
(Collection<CobrancaSituacaoHistorico>) getParametro("colecaoCobrancasSituacaoHistorico");
Collection<ImovelCadastroOcorrencia> colecaoImovelCadastroOcorrencia =
(Collection<ImovelCadastroOcorrencia>) getParametro("colecaoImovelCadastroOcorrencia");
Collection<ImovelEloAnormalidade> colecaoImovelEloAnormalidade =
(Collection<ImovelEloAnormalidade>) getParametro("colecaoImovelEloAnormalidade");
Collection<ImovelRamoAtividade> colecaoImovelRamosAtividade =
(Collection<ImovelRamoAtividade>) getParametro("colecaoImovelRamosAtividade");
Collection<ImovelCobrancaSituacaoHelper> colecaoSituacoesCobranca =
(Collection<ImovelCobrancaSituacaoHelper>)getParametro("colecaoSituacoesCobranca");
if( !Util.isVazioOrNulo(colecaoVencimentosAlternativos)){
relatorioBean.setColecaoVencimentosAlternativos(
new JRBeanCollectionDataSource( colecaoVencimentosAlternativos ));
}
if( !Util.isVazioOrNulo(colecaoDebitosAutomaticos)){
ArrayList<DebitoAutomaticoRelatoriosHelper> colecaoHelpers = new ArrayList<DebitoAutomaticoRelatoriosHelper>();
for(DebitoAutomatico debito : colecaoDebitosAutomaticos){
DebitoAutomaticoRelatoriosHelper debitoHelper = new DebitoAutomaticoRelatoriosHelper();
debitoHelper.setDebitoAutomatico(debito);
colecaoHelpers.add(debitoHelper);
}
relatorioBean.setColecaoDebitosAutomaticos(
new JRBeanCollectionDataSource( colecaoHelpers));
}
if( !Util.isVazioOrNulo(colecaoImovelCadastroOcorrencia)){
ArrayList<ImovelCadastroOcorrenciaRelatoriosHelper> colecaoHelpers = new ArrayList<ImovelCadastroOcorrenciaRelatoriosHelper>();
for(ImovelCadastroOcorrencia imovelCadastroOcorrencia : colecaoImovelCadastroOcorrencia){
ImovelCadastroOcorrenciaRelatoriosHelper imovelCOHelper = new ImovelCadastroOcorrenciaRelatoriosHelper();
imovelCOHelper.setImovelCadastroOcorrencia(imovelCadastroOcorrencia);
colecaoHelpers.add(imovelCOHelper);
}
relatorioBean.setColecaoOcorrenciaCadastro(
new JRBeanCollectionDataSource( colecaoHelpers));
}
if( !Util.isVazioOrNulo(colecaoImovelEloAnormalidade)){
ArrayList<ImovelEloAnormalidadeRelatoriosHelper> colecaoHelpers = new ArrayList<ImovelEloAnormalidadeRelatoriosHelper>();
for(ImovelEloAnormalidade imovelEloAnormalidade : colecaoImovelEloAnormalidade){
ImovelEloAnormalidadeRelatoriosHelper imovelEAHelper = new ImovelEloAnormalidadeRelatoriosHelper();
imovelEAHelper.setImovelEloAnormalidade(imovelEloAnormalidade);
colecaoHelpers.add(imovelEAHelper);
}
relatorioBean.setColecaoAnormalidadesLocalidadePolo(
new JRBeanCollectionDataSource( colecaoHelpers));
}
if( !Util.isVazioOrNulo(colecaoImovelRamosAtividade)){
ArrayList<ImovelRamoAtividadeRelatoriosHelper> colecaoHelpers = new ArrayList<ImovelRamoAtividadeRelatoriosHelper>();
for(ImovelRamoAtividade imovelRamoAtividade : colecaoImovelRamosAtividade){
ImovelRamoAtividadeRelatoriosHelper imovelRamoAtividadeHelper = new ImovelRamoAtividadeRelatoriosHelper();
imovelRamoAtividadeHelper.setImovelRamoAtividade(imovelRamoAtividade);
colecaoHelpers.add(imovelRamoAtividadeHelper);
}
relatorioBean.setColecaoRamoAtividade(
new JRBeanCollectionDataSource( colecaoHelpers));
}
if( !Util.isVazioOrNulo(colecaoFaturamentosSituacaoHistorico)){
relatorioBean.setColecaoSituacoesEspeciaisFaturamento(
new JRBeanCollectionDataSource( criarColecaoSituacaoEspecialFaturamentoHelper(colecaoFaturamentosSituacaoHistorico) ));
}
if( !Util.isVazioOrNulo(colecaoCobrancasSituacaoHistorico)){
relatorioBean.setColecaoSituacoesEspeciaisCobranca(
new JRBeanCollectionDataSource( criarColecaoSituacaoEspecialCobrancaHelper(colecaoCobrancasSituacaoHistorico)));
}
if (!Util.isVazioOrNulo(colecaoSituacoesCobranca)){
relatorioBean.setColecaoSituacoesCobranca(new JRBeanCollectionDataSource(colecaoSituacoesCobranca));
}
return relatorioBean;
}
/**
* Esse m�todo cria e retorna uma cole��o de SituacaoEspecialCobrancaHelper
* com os dados a serem exibidos no relatorio preenchidos a partir da
* cole��o recebida como par�metro.
*
*
*@since 23/09/2009
*@author Marlon Patrick
*/
private ArrayList<SituacaoEspecialCobrancaHelper> criarColecaoSituacaoEspecialCobrancaHelper(
Collection<CobrancaSituacaoHistorico> colecaoCobrancasSituacaoHistorico) {
ArrayList<SituacaoEspecialCobrancaHelper> colecaoHelpers = new ArrayList<SituacaoEspecialCobrancaHelper>();
for(CobrancaSituacaoHistorico situacaoEspecial : colecaoCobrancasSituacaoHistorico){
SituacaoEspecialCobrancaHelper situacaoEspecialHelper = new SituacaoEspecialCobrancaHelper();
if(situacaoEspecial.getCobrancaSituacaoTipo()!=null){
situacaoEspecialHelper.
setTipoSituacaoEspecialCobranca(situacaoEspecial.getCobrancaSituacaoTipo().getDescricao());
}
if(situacaoEspecial.getCobrancaSituacaoMotivo()!=null){
situacaoEspecialHelper.
setMotivoSituacaoEspecialCobranca(situacaoEspecial.getCobrancaSituacaoMotivo().getDescricao());
}
if(situacaoEspecial.getUsuario()!=null){
situacaoEspecialHelper.
setNomeUsuario(situacaoEspecial.getUsuario().getNomeUsuario());
}
if(situacaoEspecial.getAnoMesCobrancaSituacaoInicio()!=null){
situacaoEspecialHelper.setMesAnoReferenciaCobrancaInicial(
Util.formatarMesAnoReferencia(situacaoEspecial.getAnoMesCobrancaSituacaoInicio()));
}
if(situacaoEspecial.getAnoMesCobrancaSituacaoFim()!=null){
situacaoEspecialHelper.setMesAnoReferenciaCobrancaFinal(
Util.formatarMesAnoReferencia(situacaoEspecial.getAnoMesCobrancaSituacaoFim()));
}
if(situacaoEspecial.getAnoMesCobrancaRetirada()!=null){
situacaoEspecialHelper.setMesAnoCobrancaRetirada(
Util.formatarMesAnoReferencia(situacaoEspecial.getAnoMesCobrancaRetirada()));
}
colecaoHelpers.add(situacaoEspecialHelper);
}
return colecaoHelpers;
}
/**
* Esse m�todo cria e retorna uma cole��o de SituacaoEspecialFaturamentoHelper
* com os dados a serem exibidos no relatorio preenchidos a partir da
* cole��o recebida como par�metro.
*
*@since 23/09/2009
*@author Marlon Patrick
*/
private ArrayList<SituacaoEspecialFaturamentoHelper> criarColecaoSituacaoEspecialFaturamentoHelper(
Collection<FaturamentoSituacaoHistorico> colecaoFaturamentosSituacaoHistorico) {
ArrayList<SituacaoEspecialFaturamentoHelper> colecaoHelpers = new ArrayList<SituacaoEspecialFaturamentoHelper>();
for(FaturamentoSituacaoHistorico situacaoEspecial : colecaoFaturamentosSituacaoHistorico){
SituacaoEspecialFaturamentoHelper situacaoEspecialHelper = new SituacaoEspecialFaturamentoHelper();
if(situacaoEspecial.getFaturamentoSituacaoTipo()!=null){
situacaoEspecialHelper.
setTipoSituacaoEspecialFaturamento(situacaoEspecial.getFaturamentoSituacaoTipo().getDescricao());
}
if(situacaoEspecial.getFaturamentoSituacaoMotivo()!=null){
situacaoEspecialHelper.
setMotivoSituacaoEspecialFaturamento(situacaoEspecial.getFaturamentoSituacaoMotivo().getDescricao());
}
if(situacaoEspecial.getUsuario()!=null){
situacaoEspecialHelper.
setNomeUsuario(situacaoEspecial.getUsuario().getNomeUsuario());
}
if(situacaoEspecial.getAnoMesFaturamentoSituacaoInicio()!=null){
situacaoEspecialHelper.setMesAnoReferenciaFaturamentoInicial(
Util.formatarMesAnoReferencia(situacaoEspecial.getAnoMesFaturamentoSituacaoInicio()));
}
if(situacaoEspecial.getAnoMesFaturamentoSituacaoFim()!=null){
situacaoEspecialHelper.setMesAnoReferenciaFaturamentoFinal(
Util.formatarMesAnoReferencia(situacaoEspecial.getAnoMesFaturamentoSituacaoFim()));
}
if(situacaoEspecial.getAnoMesFaturamentoRetirada()!=null){
situacaoEspecialHelper.setMesAnoFaturamentoRetirada(
Util.formatarMesAnoReferencia(situacaoEspecial.getAnoMesFaturamentoRetirada()));
}
colecaoHelpers.add(situacaoEspecialHelper);
}
return colecaoHelpers;
}
// private ArrayList<ImovelCobrancaSituacaoHelper> criarColecaoSituacaoCobrancaHelper(
// Collection<ImovelCobrancaSituacaoHelper> colecaoSituacoesCobranca) {
//
// ArrayList<ImovelCobrancaSituacaoHelper> colecaoHelpers = new ArrayList<ImovelCobrancaSituacaoHelper>();
//
// for(ImovelCobrancaSituacaoHelper imovelCobrancaSituacaoHelper : colecaoSituacoesCobranca){
//
// if(imovelCobrancaSituacaoHelper.getAnoMesReferenciaInicio() != null &&
// !imovelCobrancaSituacaoHelper.getAnoMesReferenciaInicio().equals(new Integer(0))&&
// imovelCobrancaSituacaoHelper.getAnoMesReferenciaFinal() != null &&
// !imovelCobrancaSituacaoHelper.getAnoMesReferenciaFinal().equals(new Integer(0))){
//
// imovelCobrancaSituacaoHelper.setAnoMesReferencia(
// imovelCobrancaSituacaoHelper.getAnoMesReferenciaInicio() + " a "
// + imovelCobrancaSituacaoHelper.getAnoMesReferenciaFinal());
//
// imovelCobrancaSituacaoHelper.setDataImplantacaoCobrancaString(
// Util.formatarData(imovelCobrancaSituacaoHelper.getDataImplantacaoCobranca()));
//
// imovelCobrancaSituacaoHelper.setDataRetiradaCobrancaString(
// Util.formatarData(imovelCobrancaSituacaoHelper.getDataRetiradaCobranca()));
//
// imovelCobrancaSituacaoHelper.setIdClienteAlvoString(
// imovelCobrancaSituacaoHelper.getIdClienteAlvo().toString());
// }
//
//
// colecaoHelpers.add(imovelCobrancaSituacaoHelper);
//
// }
// return colecaoHelpers;
// }
/**
* Esse m�todo cria os parametros do relatorio com base
* nos parametros passados para esse objeto.
*
*@since 23/09/2009
*@author Marlon Patrick
*/
private Map<String, Object> criarParametrosRelatorio() {
ConsultarImovelActionForm consultarImovelForm =
(ConsultarImovelActionForm) getParametro("consultarImovelForm");
Map<String,Object> parametros = new HashMap<String,Object>();
parametros.put("imagem", Fachada.getInstancia().
pesquisarParametrosDoSistema().getImagemRelatorio());
if( Util.verificarNaoVazio(consultarImovelForm.getIdImovelDadosComplementares()) ){
parametros.put("idImovelFiltro",consultarImovelForm.getIdImovelDadosComplementares());
}
parametros.put("iconeFoto",getParametro("caminhoIconeFoto"));
return parametros;
}
@Override
public int calcularTotalRegistrosRelatorio() {
int retorno = 0;
return retorno;
}
public void agendarTarefaBatch() {
AgendadorTarefas.agendarTarefa("RelatorioDadosComplementaresImovel", this);
}
}