package gcom.relatorio.cadastro.imovel;
import gcom.batch.Relatorio;
import gcom.cadastro.cliente.ClienteImovel;
import gcom.cadastro.imovel.Imovel;
import gcom.cadastro.imovel.ImovelInscricaoAlterada;
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.List;
import java.util.Map;
/**
* classe respons�vel por criar o Im�veis com Altera��o de Inscri��o Via Batch
*
* [UC1121] Gerar Relat�rio de Im�veis com Altera��o de Inscri��o Via Batch
*
* @author Hugo Leonardo
*
* @date 19/01/2011
*/
public class RelatorioImoveisAlteracaoInscricaoViaBatch extends TarefaRelatorio {
private static final long serialVersionUID = 1L;
public RelatorioImoveisAlteracaoInscricaoViaBatch(Usuario usuario) {
super(usuario, ConstantesRelatorios.RELATORIO_IMOVEIS_ALTERACAO_INSCRICAO_VIA_BATCH);
}
@Deprecated
public RelatorioImoveisAlteracaoInscricaoViaBatch() {
super(null, "");
}
/**
* < <Descri��o do m�todo>>
*
*/
public Object executar() throws TarefaException {
// valor de retorno
byte[] retorno = null;
// ------------------------------------
Integer idFuncionalidadeIniciada = this.getIdFuncionalidadeIniciada();
// ------------------------------------
FiltrarRelatorioImoveisAlteracaoInscricaoViaBatchHelper relatorioHelper =
(FiltrarRelatorioImoveisAlteracaoInscricaoViaBatchHelper) getParametro("filtrarRelatorioImoveisAlteracaoInscricaoViaBatchHelper");
int tipoFormatoRelatorio = (Integer) getParametro("tipoFormatoRelatorio");
String periodo = (String) getParametro("periodo");
String localidadeInicial = (String) getParametro("localidadeInicial");
String localidadeFinal = (String) getParametro("localidadeFinal");
String setorComercialInicial = (String) getParametro("setorComercialInicial");
String setorComercialFinal = (String) getParametro("setorComercialFinal");
String quadraIncial = (String) getParametro("quadraIncial");
String quadraFinal = (String) getParametro("quadraFinal");
String loteInicial = (String) getParametro("loteInicial");
String loteFinal = (String) getParametro("loteFinal");
String subLoteInicial = (String) getParametro("subLoteInicial");
String subLoteFinal = (String) getParametro("subLoteFinal");
// cole��o de beans do relat�rio
List relatorioBeans = new ArrayList();
Fachada fachada = Fachada.getInstancia();
RelatorioImoveisAlteracaoInscricaoViaBatchBean relatorioBean = null;
Collection<ImovelInscricaoAlterada> colecao = fachada.pesquisarRelatorioImoveisAlteracaoInscricaoViaBatch(relatorioHelper);
// se a cole��o de par�metros da analise n�o for vazia
if (colecao != null && !colecao.isEmpty()) {
Imovel imovelAnterior = null;
Imovel imovelAtual = null;
// la�o para criar a cole��o de par�metros da analise
for (ImovelInscricaoAlterada helper : colecao) {
// Inscri��o Anterior
imovelAnterior = new Imovel();
imovelAnterior.setLocalidade(helper.getLocalidadeAnterior());
imovelAnterior.setSetorComercial(helper.getSetorComercialAnterior());
imovelAnterior.setQuadra(helper.getQuadraAnterior());
imovelAnterior.setLote(helper.getLoteAnterior());
imovelAnterior.setSubLote(helper.getSubLoteAnterior());
String inscricaoAnterior = imovelAnterior.getInscricaoFormatada();
// Inscri��o Atual
imovelAtual = new Imovel();
imovelAtual.setLocalidade(helper.getLocalidadeAtual());
imovelAtual.setSetorComercial(helper.getSetorComercialAtual());
imovelAtual.setQuadra(helper.getQuadraAtual());
imovelAtual.setLote(helper.getLoteAtual());
imovelAtual.setSubLote(helper.getSubLoteAtual());
String inscricaoAtual = imovelAtual.getInscricaoFormatada();
// Data Altera��o
String dataAlteracao = "";
if (helper.getDataAlteracaoBatch() != null ){
dataAlteracao = Util.formatarData(helper.getDataAlteracaoBatch());
}
// Matricula
String matricula = "";
if(helper.getImovel() != null){
matricula = helper.getImovel().getMatriculaFormatada();
}
// Cliente Usu�rio
String clienteUsuario = "";
if(helper.getImovel().getClienteImoveis() != null){
ClienteImovel clienteImovel = (ClienteImovel) helper.getImovel().getClienteImoveis().iterator().next();
clienteUsuario = clienteImovel.getCliente().getNome();
}
// Indicador Autorizado
Short indicadorAutorizado = null;
String autorizado = "";
if(helper.getIndicadorAutorizado() != null){
indicadorAutorizado = helper.getIndicadorAutorizado();
if (indicadorAutorizado == 1){
autorizado = "SIM";
} else {
autorizado = "N�O";
}
}
relatorioBean =
new RelatorioImoveisAlteracaoInscricaoViaBatchBean(
inscricaoAnterior,
inscricaoAtual,
dataAlteracao,
matricula,
clienteUsuario,
autorizado);
relatorioBeans.add(relatorioBean);
}
}else{
throw new RelatorioVazioException("atencao.relatorio.vazio");
}
// __________________________________________________________________
// Par�metros do relat�rio
Map parametros = new HashMap();
// adiciona os par�metros do relat�rio
SistemaParametro sistemaParametro = fachada.pesquisarParametrosDoSistema();
parametros.put("imagem", sistemaParametro.getImagemRelatorio());
String titulo = "";
if(relatorioHelper.getEscolhaRelatorio().intValue() == 1){
titulo = "Im�veis alterados com sucesso.";
}else if(relatorioHelper.getEscolhaRelatorio().intValue() == 2){
titulo = "Im�veis sem altera��o devido a erro.";
}else if(relatorioHelper.getEscolhaRelatorio().intValue() == 3){
titulo = "Im�veis pendentes de altera��o.";
}
parametros.put("titulo", titulo);
parametros.put("periodo", periodo);
parametros.put("localidadeInicial", localidadeInicial);
parametros.put("localidadeFinal", localidadeFinal);
parametros.put("setorComercialInicial", setorComercialInicial);
parametros.put("setorComercialFinal", setorComercialFinal);
parametros.put("quadraIncial", quadraIncial);
parametros.put("quadraFinal", quadraFinal);
parametros.put("loteInicial", loteInicial);
parametros.put("loteFinal", loteFinal);
parametros.put("subLoteInicial", subLoteInicial);
parametros.put("subLoteFinal", subLoteFinal);
// cria uma inst�ncia do dataSource do relat�rio
RelatorioDataSource ds = new RelatorioDataSource(relatorioBeans);
retorno = gerarRelatorio(ConstantesRelatorios.RELATORIO_IMOVEIS_ALTERACAO_INSCRICAO_VIA_BATCH,
parametros, ds, tipoFormatoRelatorio);
// ------------------------------------
// Grava o relat�rio no sistema
try {
persistirRelatorioConcluido(retorno, Relatorio.RELATORIO_IMOVEIS_ALTERACAO_INSCRICAO_VIA_BATCH,
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() {
int retorno = 0;
retorno = Fachada.getInstancia().countTotalRelatorioImoveisAlteracaoInscricaoViaBatch(
(FiltrarRelatorioImoveisAlteracaoInscricaoViaBatchHelper)
getParametro("filtrarRelatorioImoveisAlteracaoInscricaoViaBatchHelper"));
if (retorno == 0) {
// Caso a pesquisa n�o retorne nenhum resultado comunica ao
// usu�rio;
throw new RelatorioVazioException("atencao.relatorio.vazio");
}
return retorno;
}
public void agendarTarefaBatch() {
AgendadorTarefas.agendarTarefa("RelatorioImoveisAlteracaoInscricaoViaBatch", this);
}
}