package gcom.relatorio.cadastro.micromedicao;
import gcom.cadastro.sistemaparametro.SistemaParametro;
import gcom.fachada.Fachada;
import gcom.relatorio.RelatorioDataSource;
import gcom.relatorio.RelatorioVazioException;
import gcom.seguranca.acesso.usuario.Usuario;
import gcom.tarefa.TarefaException;
import gcom.tarefa.TarefaRelatorio;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* [UC1180] Gerar Relat�rio de Im�veis Com Leituras
*
* @author Magno Gouveia
* @date 03/06/2011
*/
public class RelatorioImoveisComLeituras extends TarefaRelatorio {
private static final long serialVersionUID = 1L;
public RelatorioImoveisComLeituras(Usuario usuario, String constanteRelatorio) {
super(usuario, constanteRelatorio);
}
public Object executar() throws TarefaException {
Collection<? extends Object> beans = null;
FiltrarRelatorioImoveisComLeiturasHelper helper = (FiltrarRelatorioImoveisComLeiturasHelper) getParametro("filtro");
switch ((Integer) getParametro("opcaoTipoRelatorio")) {
case 1:
case 2:
case 3:
beans = Fachada.getInstancia().filtrarRelatorioImoveisComLeiturasQuantitativos(helper, (Integer) getParametro("parametroPersistirRelatorio"));
break;
case 4:
case 5:
case 6:
beans = Fachada.getInstancia().filtrarRelatorioImoveisComLeiturasRelacao(helper, (Integer) getParametro("parametroPersistirRelatorio"));
break;
case 7:
beans = Fachada.getInstancia().filtrarRelatorioImoveisComLeiturasTipo7(helper);
break;
}
// Par�metros do Relat�rio
Map<String, Object> params = new HashMap<String, Object>();
SistemaParametro sistemaParametro = Fachada.getInstancia().pesquisarParametrosDoSistema();
params.put("imagem", sistemaParametro.getImagemRelatorio());
params.put("numeroRelatorio", "R1180");
params.put("filtrosUtilizados", (String) getParametro("filtrosUtilizados"));
params.put("opcaoTipoRelatorioNome", (String) getParametro("opcaoTipoRelatorioNome"));
byte[] retorno = null;
// N�o existem dados para a exibi��o do relat�rio.
if (beans == null || beans.isEmpty()) {
throw new RelatorioVazioException("atencao.relatorio.vazio");
}
RelatorioDataSource ds = new RelatorioDataSource((List) beans);
retorno = this.gerarRelatorio(super.getNomeRelatorio(), params, ds, TarefaRelatorio.TIPO_PDF);
try {
persistirRelatorioConcluido(retorno, (Integer) getParametro("parametroPersistirRelatorio"), this.getIdFuncionalidadeIniciada());
} catch (Exception e) {
e.printStackTrace();
throw new TarefaException("Erro ao gravar relat�rio no sistema", e);
}
return retorno;
}
@Override
public int calcularTotalRegistrosRelatorio() {
return 1;
}
public void agendarTarefaBatch() {
// AgendadorTarefas.agendarTarefa("RelatorioImoveisComLeituristasQuantitativos", this);
}
}