package gcom.relatorio.cobranca;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import gcom.cadastro.sistemaparametro.SistemaParametro;
import gcom.cobranca.CobrancaAcaoAtividadeCronograma;
import gcom.cobranca.FiltroCobrancaAcaoAtividadeCronograma;
import gcom.fachada.Fachada;
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;
/**
* Descri��o da classe
* Classe respons�vel pelo processamento dos
* parametros informados e consequente
* montagem dos registros exibidos posteriormente
* pelo relat�rio
*
* @author Anderson Italo
* @date 09/10/2009
*/
public class RelatorioComandosAcaoCobrancaCronograma extends TarefaRelatorio {
private static final long serialVersionUID = 1L;
public RelatorioComandosAcaoCobrancaCronograma(Usuario usuario) {
super(usuario, ConstantesRelatorios.RELATORIO_COMANDOS_ACAO_COBRANCA_CRONOGRAMA);
}
@Override
public Object executar() throws TarefaException {
Fachada fachada = Fachada.getInstancia();
Map<String, Object> parametros = new HashMap<String, Object>();
SistemaParametro sistemaParametro = Fachada.getInstancia().pesquisarParametrosDoSistema();
parametros.put("imagem", sistemaParametro.getImagemRelatorio());
Integer tipoRelatorio = (Integer) getParametro("tipoRelatorio");
List<RelatorioComandosAcaoCobrancaCronogramaBean> beans = new ArrayList<RelatorioComandosAcaoCobrancaCronogramaBean>();
FiltroCobrancaAcaoAtividadeCronograma filtroCobrancaAcaoAtividadeCronograma = (FiltroCobrancaAcaoAtividadeCronograma) getParametro("filtroCobrancaAcaoAtividadeCronograma");
filtroCobrancaAcaoAtividadeCronograma.adicionarCaminhoParaCarregamentoEntidade(FiltroCobrancaAcaoAtividadeCronograma.COBRANCA_ACAO_CRONOGRAMA);
filtroCobrancaAcaoAtividadeCronograma.adicionarCaminhoParaCarregamentoEntidade(FiltroCobrancaAcaoAtividadeCronograma.COBRANCA_GRUPO_CRONOGRAMA_MES);
filtroCobrancaAcaoAtividadeCronograma.adicionarCaminhoParaCarregamentoEntidade(FiltroCobrancaAcaoAtividadeCronograma.COBRANCA_GRUPO);
Collection colecaoCobrancaAcaoAtividade = fachada.pesquisar(filtroCobrancaAcaoAtividadeCronograma, CobrancaAcaoAtividadeCronograma.class.getName());
if (colecaoCobrancaAcaoAtividade != null){
for (Iterator colecaoCobrancaAcaoAtividadeIterator = colecaoCobrancaAcaoAtividade.iterator(); colecaoCobrancaAcaoAtividadeIterator
.hasNext();) {
CobrancaAcaoAtividadeCronograma cobrancaAcaoAtividadeCronograma = (CobrancaAcaoAtividadeCronograma) colecaoCobrancaAcaoAtividadeIterator.next();
RelatorioComandosAcaoCobrancaCronogramaBean bean = new RelatorioComandosAcaoCobrancaCronogramaBean();
bean.setGrupo(cobrancaAcaoAtividadeCronograma.getCobrancaAcaoCronograma().getCobrancaGrupoCronogramaMes().getCobrancaGrupo().getDescricao());
bean.setReferencia(Util.formatarAnoMesParaMesAno(cobrancaAcaoAtividadeCronograma.getCobrancaAcaoCronograma().getCobrancaGrupoCronogramaMes().getAnoMesReferencia()));
bean.setAcao(cobrancaAcaoAtividadeCronograma.getCobrancaAcaoCronograma().getCobrancaAcao().getDescricaoCobrancaAcao());
bean.setAtividade(cobrancaAcaoAtividadeCronograma.getCobrancaAtividade().getDescricaoCobrancaAtividade());
if (cobrancaAcaoAtividadeCronograma.getComando() != null){
bean.setDataComando(Util.formatarDataComHora(cobrancaAcaoAtividadeCronograma.getComando()));
}
if (cobrancaAcaoAtividadeCronograma.getDataPrevista() != null){
bean.setDataPrevista(Util.formatarDataComHora(cobrancaAcaoAtividadeCronograma.getDataPrevista()));
}
if (cobrancaAcaoAtividadeCronograma.getRealizacao() != null){
bean.setDataRealizacao(Util.formatarDataComHora(cobrancaAcaoAtividadeCronograma.getRealizacao()));
}
if (cobrancaAcaoAtividadeCronograma.getQuantidadeDocumentos() != null
&& !cobrancaAcaoAtividadeCronograma.getQuantidadeDocumentos().equals(0)){
bean.setQtdDocs(cobrancaAcaoAtividadeCronograma.getQuantidadeDocumentos().toString());
}
if (cobrancaAcaoAtividadeCronograma.getValorDocumentos() != null
&& !cobrancaAcaoAtividadeCronograma.getValorDocumentos().toEngineeringString().equals("0.00") ){
bean.setValor(Util.formataBigDecimal(cobrancaAcaoAtividadeCronograma.getValorDocumentos(),2,true));
}
if (cobrancaAcaoAtividadeCronograma.getQuantidadeItensCobrados() != null
&& !cobrancaAcaoAtividadeCronograma.getQuantidadeItensCobrados().equals(0)){
bean.setQtdItens(cobrancaAcaoAtividadeCronograma.getQuantidadeItensCobrados().toString());
}
beans.add(bean);
}
}
byte[] retorno = this.gerarRelatorio(ConstantesRelatorios.RELATORIO_COMANDOS_ACAO_COBRANCA_CRONOGRAMA,
parametros, new RelatorioDataSource(beans), tipoRelatorio);
return retorno;
}
@Override
public int calcularTotalRegistrosRelatorio() {
int retorno = 0;
FiltroCobrancaAcaoAtividadeCronograma filtroCobrancaAcaoAtividadeCronograma = (FiltroCobrancaAcaoAtividadeCronograma) getParametro("filtroCobrancaAcaoAtividadeCronograma");
Fachada fachada = Fachada.getInstancia();
Collection colecaoCobrancaAcaoAtividade = fachada.pesquisar(filtroCobrancaAcaoAtividadeCronograma, CobrancaAcaoAtividadeCronograma.class.getName());
if (colecaoCobrancaAcaoAtividade != null){
retorno = colecaoCobrancaAcaoAtividade.size();
}
return retorno;
}
@Override
public void agendarTarefaBatch() {
AgendadorTarefas.agendarTarefa("RelatorioComandosAcaoCobrancaCronograma", this);
}
}