package gcom.relatorio.cadastro;
import gcom.batch.Relatorio;
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 java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
/**
* [UC1164] Gerar Resumo dos Im�veis Exclu�dos da Tarifa Social
*
* @author Vivianne Sousa
* @date 07/04/2011
*/
public class RelatorioResumoQtdeImoveisExcluidosTarifaSocial extends TarefaRelatorio {
private static final long serialVersionUID = -7034984685957706140L;
public RelatorioResumoQtdeImoveisExcluidosTarifaSocial(Usuario usuario) {
super(usuario, ConstantesRelatorios.RELATORIO_RESUMO_QTDE_IMOVEIS_EXCLUIDOS_TARIFA_SOCIAL);
}
@Deprecated
public RelatorioResumoQtdeImoveisExcluidosTarifaSocial() {
super(null, "");
}
private Collection<RelatorioResumoQtdeImoveisExcluidosTarifaSocialBean> inicializarBeanRelatorio(
Collection colecaoQtdeImoveisExcluidostarifaSocialHelper) {
Collection<RelatorioResumoQtdeImoveisExcluidosTarifaSocialBean> retorno = null;
if(colecaoQtdeImoveisExcluidostarifaSocialHelper != null && !colecaoQtdeImoveisExcluidostarifaSocialHelper.isEmpty()){
retorno = new ArrayList<RelatorioResumoQtdeImoveisExcluidosTarifaSocialBean>();
Iterator iterHelper = colecaoQtdeImoveisExcluidostarifaSocialHelper.iterator();
String descricaoLocalidadeAnterior = "";
while (iterHelper.hasNext()) {
RelatorioResumoQtdeImoveisExcluidosTarifaSocialHelper helper =
(RelatorioResumoQtdeImoveisExcluidosTarifaSocialHelper) iterHelper.next();
String descricaoLocalidade = helper.getDescricaoLocalidade();
if(descricaoLocalidade.equals(descricaoLocalidadeAnterior)){
descricaoLocalidade = "";
}
RelatorioResumoQtdeImoveisExcluidosTarifaSocialBean bean =
new RelatorioResumoQtdeImoveisExcluidosTarifaSocialBean(
helper.getDescricaoGerencia(),
helper.getIdGerencia().toString(),
descricaoLocalidade,
helper.getIdLocalidade().toString(),
helper.getDescricaoUnidadeNegocio(),
helper.getIdUnidadeNegocio().toString(),
helper.getMotivoExclusao().toString(),
helper.getQtdeCartas(),
helper.getQtdeExcluidos(),
helper.getDescricaoMotivoExclusao());
retorno.add(bean);
descricaoLocalidadeAnterior = helper.getDescricaoLocalidade();
}
}
return retorno;
}
/**
* M�todo que executa a tarefa
*
* @return Object
*
*/
public Object executar() throws TarefaException {
Integer idFuncionalidadeIniciada = this.getIdFuncionalidadeIniciada();
Fachada fachada = Fachada.getInstancia();
Integer idGerenciaRegional = (Integer)getParametro("idGerenciaRegional");
Integer idUnidadeNegocio = (Integer)getParametro("idUnidadeNegocio");
Integer idLocalidade = (Integer)getParametro("idLocalidade");
Integer anoMesPesquisaInicial = (Integer)getParametro("anoMesPesquisaInicial");
Integer anoMesPesquisaFinal = (Integer)getParametro("anoMesPesquisaFinal");
String motivoExclusao = (String)getParametro("motivoExclusao");
Integer codigoTipoCarta = 1;
String referencia = Util.formatarAnoMesParaMesAno(anoMesPesquisaInicial) + " a " + Util.formatarAnoMesParaMesAno(anoMesPesquisaFinal);
String tipoResumo = "";
if(motivoExclusao.equals("1")){
tipoResumo = "N�o Comparecimento para Atualizar Cadastro";
codigoTipoCarta = 1;
}else if(motivoExclusao.equals("2")){
tipoResumo = "Contas Vencidas";
codigoTipoCarta = 2;
}
// else if(motivoExclusao.equals("3")){
// tipoResumo = "M�dia de Consumo Superior a 10m ";
// }
Collection colecaoQtdeImoveisExcluidostarifaSocialHelper = fachada.pesquisarQtdeImoveisExcluidostarifaSocial(
codigoTipoCarta, idGerenciaRegional, idUnidadeNegocio, idLocalidade,
anoMesPesquisaInicial, anoMesPesquisaFinal);
int tipoFormatoRelatorio = (Integer) getParametro("tipoFormatoRelatorio");
// valor de retorno
byte[] retorno = null;
// Par�metros do relat�rio
Map<String, String> parametros = new HashMap();
SistemaParametro sistemaParametro = fachada.pesquisarParametrosDoSistema();
parametros.put("imagem", sistemaParametro.getImagemRelatorio());
parametros.put("imagemConta", sistemaParametro.getImagemConta());
// parametros.put("nomeEmpresa",sistemaParametro.getNomeAbreviadoEmpresa());
// parametros.put("cnpjEmpresa",sistemaParametro.getCnpjEmpresa().toString());
parametros.put("referencia",referencia);
parametros.put("tipoResumo",tipoResumo);
parametros.put("codigoTipoCarta",codigoTipoCarta.toString());
Collection dadosRelatorio = colecaoQtdeImoveisExcluidostarifaSocialHelper;
Collection<RelatorioResumoQtdeImoveisExcluidosTarifaSocialBean> colecaoBean = this
.inicializarBeanRelatorio(dadosRelatorio);
if (colecaoBean == null || colecaoBean.isEmpty()) {
// N�o existem dados para a exibi��o do relat�rio.
throw new RelatorioVazioException("atencao.relatorio.vazio");
}
RelatorioDataSource ds = new RelatorioDataSource((java.util.List) colecaoBean);
retorno = this.gerarRelatorio(ConstantesRelatorios.RELATORIO_RESUMO_QTDE_IMOVEIS_EXCLUIDOS_TARIFA_SOCIAL, parametros, ds,tipoFormatoRelatorio);
// ------------------------------------
// Grava o relat�rio no sistema
try {
persistirRelatorioConcluido(retorno, Relatorio.GERAR_RELATORIO_RESUMO_QTDE_IMOVEIS_EXCLUIDOS_TARIFA_SOCIAL,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() {
// Integer qtdeContas = (Integer) getParametro("qtdeContas");
//
// return qtdeContas;
return 0;
}
public void agendarTarefaBatch() {
AgendadorTarefas.agendarTarefa("RelatorioResumoQtdeImoveisExcluidosTarifaSocial", this);
}
}