package gcom.relatorio.faturamento;
import gcom.cadastro.sistemaparametro.SistemaParametro;
import gcom.fachada.Fachada;
import gcom.faturamento.FaturamentoAtividadeCronograma;
import gcom.faturamento.FaturamentoGrupo;
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.ConstantesSistema;
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;
/**
* classe respons�vel por criar o relat�rio de bairro manter de �gua
*
* @author S�vio Luiz
* @created 11 de Julho de 2005
*/
public class RelatorioPosicaoFaturamento extends TarefaRelatorio {
private static final long serialVersionUID = 1L;
public RelatorioPosicaoFaturamento(Usuario usuario) {
super(usuario, ConstantesRelatorios.RELATORIO_POSICAO_FATURAMENTO);
}
@Deprecated
public RelatorioPosicaoFaturamento() {
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
*/
public Object executar() throws TarefaException {
Map<FaturamentoGrupo, Collection<FaturamentoAtividadeCronograma>> map = (Map<FaturamentoGrupo, Collection<FaturamentoAtividadeCronograma>>) getParametro("map");
int tipoFormatoRelatorio = (Integer) getParametro("tipoFormatoRelatorio");
// valor de retorno
byte[] retorno = null;
// cole��o de beans do relat�rio
List relatorioBeans = new ArrayList();
Fachada fachada = Fachada.getInstancia();
if (map != null && !map.isEmpty()) {
Collection<FaturamentoGrupo> colecaoFaturamentoGrupo = map.keySet();
for (FaturamentoGrupo grupo : colecaoFaturamentoGrupo) {
Collection<FaturamentoAtividadeCronograma> colecaoFaturamentoAtividadeCronograma = map
.get(grupo);
for (FaturamentoAtividadeCronograma faturamentoAtividadeCronograma : colecaoFaturamentoAtividadeCronograma) {
// Faz as valida��es dos campos necess�riose e formata a
// String
// para a forma como ir� aparecer no relat�rio
// Grupo de Faturamento / M�s/Ano
String grupoFaturamento = "";
String mesAno = "";
if (faturamentoAtividadeCronograma
.getFaturamentoGrupoCronogramaMensal() != null
&& faturamentoAtividadeCronograma
.getFaturamentoGrupoCronogramaMensal()
.getFaturamentoGrupo() != null) {
grupoFaturamento = faturamentoAtividadeCronograma
.getFaturamentoGrupoCronogramaMensal()
.getFaturamentoGrupo().getDescricao();
mesAno = Util
.formatarAnoMesParaMesAno(faturamentoAtividadeCronograma
.getFaturamentoGrupoCronogramaMensal()
.getFaturamentoGrupo()
.getAnoMesReferencia());
}
// Atividade / Predecessora / Obrigatoriedade
String atividade = "";
String predecessora = "";
String obrigatoria = "";
if (faturamentoAtividadeCronograma
.getFaturamentoAtividade() != null) {
atividade = faturamentoAtividadeCronograma
.getFaturamentoAtividade().getDescricao();
if (faturamentoAtividadeCronograma
.getFaturamentoAtividade()
.getIndicadorObrigatoriedadeAtividade().equals(
ConstantesSistema.SIM)) {
obrigatoria = "SIM";
} else {
obrigatoria = "N�O";
}
if (faturamentoAtividadeCronograma
.getFaturamentoAtividade()
.getFaturamentoAtividadePrecedente() != null) {
predecessora = faturamentoAtividadeCronograma
.getFaturamentoAtividade()
.getFaturamentoAtividadePrecedente()
.getDescricao();
}
}
// Data Previs�o / Usu�rio Previs�o
String dataPrevisao = "";
String usuarioPrevisao = "";
if (faturamentoAtividadeCronograma.getDataPrevista() != null) {
dataPrevisao = Util
.formatarData(faturamentoAtividadeCronograma
.getDataPrevista());
if (faturamentoAtividadeCronograma
.getFaturamentoGrupoCronogramaMensal() != null
&& faturamentoAtividadeCronograma
.getFaturamentoGrupoCronogramaMensal()
.getUsuario() != null) {
usuarioPrevisao = faturamentoAtividadeCronograma
.getFaturamentoGrupoCronogramaMensal()
.getUsuario().getNomeUsuario();
}
}
// Data Comando / Usu�rio Comando
String dataComando = "";
String usuarioComando = "";
if (faturamentoAtividadeCronograma.getComando() != null) {
dataComando = Util
.formatarDataComHora(faturamentoAtividadeCronograma
.getComando());
if (faturamentoAtividadeCronograma.getUsuario() != null) {
usuarioComando = faturamentoAtividadeCronograma
.getUsuario().getNomeUsuario();
}
}
// Data Realiza��o
String dataRealizacao = "";
if (faturamentoAtividadeCronograma.getDataRealizacao() != null) {
dataRealizacao = Util
.formatarDataComHora(faturamentoAtividadeCronograma
.getDataRealizacao());
}
RelatorioPosicaoFaturamentoBean relatorioBean = new RelatorioPosicaoFaturamentoBean(
// Grupo de Faturamento
grupoFaturamento,
// M�s/Ano
mesAno,
// Atividade
atividade,
// Predecessora
predecessora,
// Obrigat�ria
obrigatoria,
// Data Previs�o
dataPrevisao,
// Usu�rio Previs�o
usuarioPrevisao,
// Data Comando
dataComando,
// Usu�rio Comando
usuarioComando,
// Data Realiza��o
dataRealizacao);
// adiciona o bean a cole��o
relatorioBeans.add(relatorioBean);
}
}
}
// 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
.pesquisarParametrosDoSistema();
parametros.put("imagem", sistemaParametro.getImagemRelatorio());
// cria uma inst�ncia do dataSource do relat�rio
RelatorioDataSource ds = new RelatorioDataSource(relatorioBeans);
retorno = gerarRelatorio(
ConstantesRelatorios.RELATORIO_POSICAO_FATURAMENTO, parametros,
ds, tipoFormatoRelatorio);
// retorna o relat�rio gerado
return retorno;
}
@Override
public int calcularTotalRegistrosRelatorio() {
int retorno = 0;
return retorno;
}
public void agendarTarefaBatch() {
AgendadorTarefas.agendarTarefa("RelatorioPosicaoFaturamento", this);
}
}