package gcom.relatorio.faturamento;
import gcom.batch.Relatorio;
import gcom.cadastro.sistemaparametro.SistemaParametro;
import gcom.fachada.Fachada;
import gcom.faturamento.bean.GerarRelacaoAcompanhamentoFaturamentoHelper;
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 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.util.ControladorException;
import gcom.util.Util;
import gcom.util.agendadortarefas.AgendadorTarefas;
/**
* classe respons�vel por criar o relat�rio de Acompanhamento do Faturamento
*
* @author Fernanda Paiva
* @created 09 de maio de 2006
*/
public class RelatorioAcompanhamentoFaturamento extends TarefaRelatorio {
private static final long serialVersionUID = 1L;
/**
* Construtor da classe RelatorioAnaliseFisicoQuimicaAgua
*/
public RelatorioAcompanhamentoFaturamento(Usuario usuario) {
super(usuario, ConstantesRelatorios.RELATORIO_ACOMPANHAMENTO_FATURAMENTO);
}
@Deprecated
public RelatorioAcompanhamentoFaturamento() {
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 {
// ------------------------------------
Integer idFuncionalidadeIniciada = this.getIdFuncionalidadeIniciada();
// ------------------------------------
// id da genrencia regional
String gerenciaRegional = (String)getParametro("gerenciaRegional");
// numero da quadra origem
String qudraOrigem = (String) getParametro("quadraOrigem");
// numero quadra destino
String quadraDestino = (String) getParametro("quadraDestino");
// lote origem
String loteOrigem = (String) getParametro("loteOrigem");
// lote destino
String loteDestino = (String) getParametro("loteDestino");
// cep
String cep = (String) getParametro("cep");
// id localidade origem
String localidadeOrigem = (String) getParametro("localidadeOrigem");
// id localidade destino
String localidadeDestino = (String) getParametro("localidadeDestino");
// setor comercial origem CD
String setorComercialOrigemCD = (String) getParametro("setorComercialOrigemCD");
// setor comercial destino CD
String setorComercialDestinoCD = (String) getParametro("setorComercialDestinoCD");
// cliente ID
String clienteID = (String) getParametro("clienteID");
// municipio ID
String municipioID = (String) getParametro("municipioID");
// bairro ID
String bairroID = (String) getParametro("bairroID");
// logradouro ID
String logradouroID = (String) getParametro("logradouroID");
// cliente relacao tipo ID
String clienteRelacaoTipoID = (String) getParametro("clienteRelacaoTipoID");
// cliente tipo ID
String clienteTipoID = (String) getParametro("clienteTipoID");
// imovel condominio ID
String imovelCondominioID = (String) getParametro("imovelCondominioID");
// imovel Principal ID
String imovelPrincipalID = (String) getParametro("imovelPrincipalID");
// nome Conta ID
String nomeContaID = (String) getParametro("nomeContaID");
// situacao Agua
String situacaoAgua = (String) getParametro("situacaoAgua");
// situacao Ligacao Esgoto
String situacaoLigacaoEsgoto = (String) getParametro("situacaoLigacaoEsgoto");
// consumo Minimo Inicial
String consumoMinimoInicial = (String) getParametro("consumoMinimoInicial");
// consumo Minimo Final
String consumoMinimoFinal = (String) getParametro("consumoMinimoFinal");
// consumo Minimo Fixado Esgoto Inicial
String consumoMinimoFixadoEsgotoInicial = (String) getParametro("consumoMinimoFixadoEsgotoInicial");
// consumo Minimo Fixado Esgoto Final
String consumoMinimoFixadoEsgotoFinal = (String) getParametro("consumoMinimoFixadoEsgotoFinal");
// intervalo Percentual Esgoto Inicial
String intervaloPercentualEsgotoInicial = (String) getParametro("intervaloPercentualEsgotoInicial");
// intervalor Percentual Esgoto Final
String intervaloPercentualEsgotoFinal = (String) getParametro("intervaloPercentualEsgotoFinal");
// indicador Medicao
String indicadorMedicao = (String) getParametro("indicadorMedicao");
// tipo Medicao ID
String tipoMedicaoID = (String) getParametro("tipoMedicaoID");
// intervalo Media Minima Imovel Inicial
String intervaloMediaMinimaImovelInicial = (String) getParametro("intervaloMediaMinimaImovelInicial");
// intervalo Media Minima Imovel Final
String intervaloMediaMinimaImoveFinal = (String) getParametro("intervaloMediaMinimaImoveFinal");
// intervalo Media Minima Hidrometro Inicial
String intervaloMediaMinimaHidrometroInicial = (String) getParametro("intervaloMediaMinimaHidrometroInicial");
// intervalo Media Minima Hidrometro Final
String intervaloMediaMinimaHidrometroFinal = (String) getParametro("intervaloMediaMinimaHidrometroFinal");
// perfil Imovel ID
String perfilImovelID = (String) getParametro("perfilImovelID");
// categoria Imovel ID
String categoriaImovelID = (String) getParametro("categoriaImovelID");
// sub categoria ID
String subCategoriaID = (String) getParametro("subCategoriaID");
// quantidade Economias Inicial
String quantidadeEconomiasInicial= (String) getParametro("quantidadeEconomiasInicial");
// quantidade Economias Final
String quantidadeEconomiasFinal = (String) getParametro("quantidadeEconomiasFinal");
// numero Pontos Inicial
String numeroPontosInicial = (String) getParametro("numeroPontosInicial");
// numero Pontos Final
String numeroPontosFinal = (String) getParametro("numeroPontosFinal");
// numero Moradores Inicial
String numeroMoradoresInicial = (String) getParametro("numeroMoradoresInicial");
// numero Moradoras Final
String numeroMoradoresFinal = (String) getParametro("numeroMoradoresFinal");
// area Construida Inicial
String areaConstruidaInicial = (String) getParametro("areaConstruidaInicial");
// area Construida Final
String areaConstruidaFinal = (String) getParametro("areaConstruidaFinal");
// area Construida Faixa
String areaConstruidaFaixa = (String) getParametro("areaConstruidaFaixa");
// poco Tipo ID
String pocoTipoID = (String) getParametro("pocoTipoID");
// tipo Situacao Faturamento ID
String tipoSituacaoFaturamentoID = (String) getParametro("tipoSituacaoFaturamentoID");
// tipo Situacao Especial Cobranca ID
String tipoSituacaoEspecialCobrancaID = (String) getParametro("tipoSituacaoEspecialCobrancaID");
// situacao Cobranca ID
String situacaoCobrancaID = (String) getParametro("situacaoCobrancaID");
// dia Vencimento Alternativo
String diaVencimentoAlternativo = (String) getParametro("diaVencimentoAlternativo");
// ocorrencia Cadastro
String ocorrenciaCadastro = (String) getParametro("ocorrenciaCadastro");
// tarifa Consumo
String tarifaConsumo = (String) getParametro("tarifaConsumo");
// anormalidade Elo
String anormalidadeElo = (String) getParametro("anormalidadeElo");
int tipoFormatoRelatorio = (Integer) getParametro("tipoFormatoRelatorio");
//Collection imoveisRelatoriosHelper = (Collection) getParametro("imoveisRelatoriosHelper");
// valor de retorno
byte[] retorno = null;
// chama o met�do que retorna os dados do imovel
Fachada fachada = Fachada.getInstancia();
SistemaParametro sistemaParametros = fachada
.pesquisarParametrosDoSistema();
int anoMesReferencia = sistemaParametros
.getAnoMesFaturamento();
Collection colecaoDadosRelatorio = fachada.gerarRelacaoAcompanhamentoFaturamento(
imovelCondominioID,
imovelPrincipalID,
nomeContaID,
situacaoAgua,
consumoMinimoInicial,
consumoMinimoFinal,
situacaoLigacaoEsgoto,
consumoMinimoFixadoEsgotoInicial,
consumoMinimoFixadoEsgotoFinal,
intervaloPercentualEsgotoInicial,
intervaloPercentualEsgotoFinal,
intervaloMediaMinimaImovelInicial,
intervaloMediaMinimaImoveFinal,
intervaloMediaMinimaHidrometroInicial,
intervaloMediaMinimaHidrometroFinal,
perfilImovelID,
pocoTipoID,
tipoSituacaoFaturamentoID,
situacaoCobrancaID,
tipoSituacaoEspecialCobrancaID,
anormalidadeElo,
areaConstruidaInicial,
areaConstruidaFinal,
ocorrenciaCadastro,
tarifaConsumo,
gerenciaRegional,
localidadeOrigem,
localidadeDestino,
setorComercialOrigemCD,
setorComercialDestinoCD,
qudraOrigem,
quadraDestino,
loteOrigem,
loteDestino,
cep,
logradouroID,
bairroID,
municipioID,
tipoMedicaoID,
indicadorMedicao,
subCategoriaID,
categoriaImovelID,
quantidadeEconomiasInicial,
quantidadeEconomiasFinal,
diaVencimentoAlternativo,
clienteID,
clienteTipoID,
clienteRelacaoTipoID,
numeroPontosInicial,
numeroPontosFinal,
numeroMoradoresInicial,
numeroMoradoresFinal,
areaConstruidaFaixa,
anoMesReferencia) ;
// cole��o de beans do relat�rio
List relatorioBeans = new ArrayList();
//RelatorioAcompanhamentoFaturamentoBean relatorioBean = null;
// dados para o relatorio
if(colecaoDadosRelatorio != null && !colecaoDadosRelatorio.isEmpty()){
Iterator iterator = colecaoDadosRelatorio.iterator();
while (iterator.hasNext()) {
GerarRelacaoAcompanhamentoFaturamentoHelper gerarRelacaoAcompanhamentoFaturamentoHelper= (GerarRelacaoAcompanhamentoFaturamentoHelper) iterator.next();
RelatorioAcompanhamentoFaturamentoBean relatorioAcompanhamentoFaturamentoBean
= new RelatorioAcompanhamentoFaturamentoBean(gerarRelacaoAcompanhamentoFaturamentoHelper.getInscricao(),
gerarRelacaoAcompanhamentoFaturamentoHelper.getCodigoImovel(),
gerarRelacaoAcompanhamentoFaturamentoHelper.getCategoriaPrincipal(),
gerarRelacaoAcompanhamentoFaturamentoHelper.getEndereco(),
gerarRelacaoAcompanhamentoFaturamentoHelper.getIdLocalidade(),
gerarRelacaoAcompanhamentoFaturamentoHelper.getNomeLocalidade(),
gerarRelacaoAcompanhamentoFaturamentoHelper.getIdGerenciaRegional(),
gerarRelacaoAcompanhamentoFaturamentoHelper.getNomeGerenciaRegional(),
Util.formatarMoedaReal(gerarRelacaoAcompanhamentoFaturamentoHelper.getValorFatura()),
gerarRelacaoAcompanhamentoFaturamentoHelper.getNomeAbreviadoGerencia(),
gerarRelacaoAcompanhamentoFaturamentoHelper.getValorDebito(),
gerarRelacaoAcompanhamentoFaturamentoHelper.getQuantidadeEconomias(),
gerarRelacaoAcompanhamentoFaturamentoHelper.getSituacaoAgua(),
gerarRelacaoAcompanhamentoFaturamentoHelper.getSituacaoEsgoto(),
gerarRelacaoAcompanhamentoFaturamentoHelper.getPercentualEsgoto(),
gerarRelacaoAcompanhamentoFaturamentoHelper.getEsgotoFixado(),
gerarRelacaoAcompanhamentoFaturamentoHelper.getConsumoMedio(),
gerarRelacaoAcompanhamentoFaturamentoHelper.getConsumoMes(),
gerarRelacaoAcompanhamentoFaturamentoHelper.getConsumoAnormalidade(),
gerarRelacaoAcompanhamentoFaturamentoHelper.getFatura(),
gerarRelacaoAcompanhamentoFaturamentoHelper.getAnormalidade(),
gerarRelacaoAcompanhamentoFaturamentoHelper.getMesUm(),
gerarRelacaoAcompanhamentoFaturamentoHelper.getMesDois(),
gerarRelacaoAcompanhamentoFaturamentoHelper.getMesTres(),
gerarRelacaoAcompanhamentoFaturamentoHelper.getMesQuatro(),
gerarRelacaoAcompanhamentoFaturamentoHelper.getMesCinco(),
gerarRelacaoAcompanhamentoFaturamentoHelper.getMesSeis(),
gerarRelacaoAcompanhamentoFaturamentoHelper.getMesAnoFaturamento(),
gerarRelacaoAcompanhamentoFaturamentoHelper.getDataInstalacaoHidrometro(),
gerarRelacaoAcompanhamentoFaturamentoHelper.getVariacao(),
gerarRelacaoAcompanhamentoFaturamentoHelper.getNomeClienteUsuario());
relatorioBeans.add(relatorioAcompanhamentoFaturamentoBean);
}
}
// Par�metros do relat�rio
Map parametros = new HashMap();
SistemaParametro sistemaParametro = fachada.pesquisarParametrosDoSistema();
parametros.put("imagem", sistemaParametro.getImagemRelatorio());
parametros.put("tipoFormatoRelatorio", "R0336");
RelatorioDataSource ds = new RelatorioDataSource((List) relatorioBeans);
// exporta o relat�rio em pdf e retorna o array de bytes
retorno = gerarRelatorio(
ConstantesRelatorios.RELATORIO_ACOMPANHAMENTO_FATURAMENTO,
parametros, ds, tipoFormatoRelatorio);
// ------------------------------------
// Grava o relat�rio no sistema
try {
persistirRelatorioConcluido(retorno, Relatorio.RELATORIO_ACOMPANHAMENTO_FATURAMENTO,
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() {
return 0;
}
public void agendarTarefaBatch() {
AgendadorTarefas.agendarTarefa("RelatorioAcompanhamentoFaturamento", this);
}
}