package gcom.micromedicao;
import gcom.atendimentopublico.ligacaoagua.LigacaoAgua;
import gcom.atendimentopublico.ligacaoagua.LigacaoAguaSituacao;
import gcom.atendimentopublico.ligacaoesgoto.LigacaoEsgotoSituacao;
import gcom.batch.UnidadeProcessamento;
import gcom.cadastro.empresa.Empresa;
import gcom.cadastro.endereco.Logradouro;
import gcom.cadastro.endereco.LogradouroBairro;
import gcom.cadastro.endereco.LogradouroTipo;
import gcom.cadastro.endereco.LogradouroTitulo;
import gcom.cadastro.geografico.Bairro;
import gcom.cadastro.imovel.Categoria;
import gcom.cadastro.imovel.Imovel;
import gcom.cadastro.imovel.ImovelPerfil;
import gcom.cadastro.imovel.Subcategoria;
import gcom.cadastro.localidade.GerenciaRegional;
import gcom.cadastro.localidade.Localidade;
import gcom.cadastro.localidade.Quadra;
import gcom.cadastro.localidade.SetorComercial;
import gcom.cadastro.sistemaparametro.SistemaParametro;
import gcom.faturamento.FaturamentoGrupo;
import gcom.faturamento.FaturamentoSituacaoTipo;
import gcom.micromedicao.consumo.LigacaoTipo;
import gcom.micromedicao.hidrometro.Hidrometro;
import gcom.micromedicao.hidrometro.HidrometroCapacidade;
import gcom.micromedicao.hidrometro.HidrometroInstalacaoHistorico;
import gcom.micromedicao.hidrometro.HidrometroMarca;
import gcom.micromedicao.leitura.LeituraTipo;
import gcom.micromedicao.medicao.MedicaoHistorico;
import gcom.micromedicao.medicao.MedicaoTipo;
import gcom.util.ConstantesSistema;
import gcom.util.ControladorException;
import gcom.util.ErroRepositorioException;
import gcom.util.IoUtil;
import gcom.util.Util;
import gcom.util.filtro.ParametroSimples;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.Iterator;
import javax.ejb.EJBException;
import javax.ejb.SessionBean;
/**
* Controlador Faturamento CAER
*
* @author S�vio Luiz
* @date 25/07/2006
*/
public class ControladorMicromedicaoCAERSEJB extends ControladorMicromedicao
implements SessionBean {
private static final long serialVersionUID = 1L;
// ==============================================================================================================
// M�TODOS EXCLUSIVOS DA CAER
// ==============================================================================================================
/**
* [UC00083] Gerar Dados para Leitura
*
* [SB0005] Gerar Rela��o(ROL) em TXT - CAER
*
* @author S�vio Luiz
* @date 13/08/2007
*
* @param idRota
* @param idLeituraTipo
*
* @throws ErroRepositorioException
*/
protected void gerarArquivoConvencional(Integer anoMesCorrente,
Integer idGrupoFaturamentoRota, StringBuilder arquivoTxtLinha,
Integer idRota, boolean ehSistemaLegado)
throws ControladorException {
FiltroRota filtroRota = new FiltroRota();
filtroRota.adicionarCaminhoParaCarregamentoEntidade("setorComercial");
filtroRota.adicionarParametro(new ParametroSimples(FiltroRota.ID_ROTA, idRota));
Collection colecaoRota = this.getControladorUtil().pesquisar(filtroRota, Rota.class.getName());
Rota rota = (Rota) Util.retonarObjetoDeColecao(colecaoRota);
String codigoSetorComercial = Util.adicionarZerosEsquedaNumero(2,
String.valueOf(rota.getSetorComercial().getCodigo()));
String codigoRota = Util.adicionarZerosEsquedaNumero(2,
String.valueOf(rota.getCodigo()));
try {
String nomeZipRol = null;
if (ehSistemaLegado) {
nomeZipRol = "Rt";
}
String idGrupoFaturamentoRotaFormatado;
if(idGrupoFaturamentoRota.intValue() < 10){
idGrupoFaturamentoRotaFormatado = "0"+idGrupoFaturamentoRota;
}else{
idGrupoFaturamentoRotaFormatado = idGrupoFaturamentoRota.toString();
}
/*
* Alterado por Raphael Rossiter em 30/03/2007
* OBJ: Gerar apenas um arquivo para todas as rotas
*/
if (idRota != null) {
nomeZipRol = nomeZipRol+"_"+"G"+idGrupoFaturamentoRotaFormatado+"_"+codigoSetorComercial+"_"+codigoRota;
} else {
nomeZipRol = nomeZipRol+"_"+"G"+idGrupoFaturamentoRotaFormatado+ "_"+anoMesCorrente+"-";
}
/*
* N�O SER� GERADO ARQUIVO COM EXTENS�O .ZIP
*/
//File compactadoTipoRol = new File(nomeZipRol + ".zip");
//File leituraTipoRol = File.createTempFile(nomeZipRol, ".txt");
File leituraTipoRol = new File(nomeZipRol);
/*ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(
compactadoTipoRol));*/
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream(leituraTipoRol.getAbsolutePath())));
out.write(arquivoTxtLinha.toString());
out.flush();
/*ZipUtil.adicionarArquivo(zos, leituraTipoRol);
zos.close();*/
//leituraTipoRol.delete();
out.close();
} catch (IOException e) {
String mensagem = e.getMessage();
String[] inicioMensagem = mensagem.split("\\.");
if (inicioMensagem != null
&& (inicioMensagem[0].equals("erro") || inicioMensagem[0]
.equals("atencao"))) {
throw new ControladorException(mensagem);
} else {
throw new ControladorException("erro.sistema", e);
}
} catch (Exception e) {
String mensagem = e.getMessage();
String[] inicioMensagem = mensagem.split("\\.");
if (inicioMensagem != null
&& (inicioMensagem[0].equals("erro") || inicioMensagem[0]
.equals("atencao"))) {
throw new ControladorException(mensagem);
} else {
throw new ControladorException("erro.sistema", e);
}
}
}
/**
* [UC00083] Gerar Dados para Leitura
*
* [SB0002] Gerar Rela��o(ROL) em TXT
*
* Cria o objeto Imovel apartir da pesquisa
*
* @param Object[] arrayImoveis
*
* @return Imovel
*
* @author Rafael Francisco Pinto, Raphael Rossiter
* @date 19/01/2007, 27/09/2007
*
* @throws ControladorException
*/
protected Imovel criarImovelApartirDadosPorLeituraConvencional(
Object[] arrayImoveis) {
// instancia um im�vel
Imovel imovel = new Imovel();
if (arrayImoveis[0] != null) {
// seta o id no imovel
imovel.setId((Integer) arrayImoveis[0]);
}
if (arrayImoveis[1] != null) {
// instancia uma localidade para ser setado no im�vel
Localidade localidade = new Localidade();
localidade.setId((Integer) arrayImoveis[1]);
localidade.setDescricao((String) arrayImoveis[30]);
imovel.setLocalidade(localidade);
}
if (arrayImoveis[2] != null) {
// instancia um setor comercial para ser setado no
// im�vel
SetorComercial setorComercial = new SetorComercial();
setorComercial.setCodigo(Integer.parseInt(arrayImoveis[2]
.toString()));
imovel.setSetorComercial(setorComercial);
}
Quadra quadra = new Quadra();
if (arrayImoveis[3] != null) {
// instancia uma quadra para ser setado no im�vel
Integer numeroQuadra = (Integer) arrayImoveis[3];
quadra.setNumeroQuadra(numeroQuadra);
imovel.setQuadra(quadra);
}
if (arrayImoveis[4] != null) {
// seta o lote no im�vel
imovel.setLote(Short.parseShort(arrayImoveis[4].toString()));
}
if (arrayImoveis[5] != null) {
// seta o lote no im�vel
imovel.setSubLote(Short.parseShort(arrayImoveis[5].toString()));
}
if (arrayImoveis[34] != null) {
// seta numero sequencial rota
imovel.setNumeroSequencialRota((Integer) arrayImoveis[34]);
}
if (arrayImoveis[6] != null) {
// instancia uma imovel perfil para ser setado no
// im�vel
ImovelPerfil imovelPerfil = new ImovelPerfil();
imovelPerfil.setId((Integer) arrayImoveis[6]);
imovel.setImovelPerfil(imovelPerfil);
}
LigacaoAgua ligacaoAgua = new LigacaoAgua();
if (arrayImoveis[7] != null) {
// instancia uma liga��o agua para ser setado no
// im�vel
ligacaoAgua.setId((Integer) arrayImoveis[7]);
ligacaoAgua.setNumeroLacre((String) arrayImoveis[32]);
}
// instancia um hidrometro instala��o historico para ser
// colocado na ligacao agua
HidrometroInstalacaoHistorico hidrometroInstalacaoHistoricoLigacaoAgua = new HidrometroInstalacaoHistorico();
if (arrayImoveis[8] != null) {
hidrometroInstalacaoHistoricoLigacaoAgua
.setId((Integer) arrayImoveis[8]);
MedicaoTipo medicaoTipo = new MedicaoTipo();
medicaoTipo.setId((Integer) arrayImoveis[26]);
hidrometroInstalacaoHistoricoLigacaoAgua
.setMedicaoTipo(medicaoTipo);
if (arrayImoveis[33] != null) {
Hidrometro hidrometro = new Hidrometro();
hidrometro.setNumero((String) arrayImoveis[33]);
if (arrayImoveis[42] != null){
hidrometro.setNumeroDigitosLeitura((Short) arrayImoveis[42]);
}
hidrometroInstalacaoHistoricoLigacaoAgua
.setHidrometro(hidrometro);
}
ligacaoAgua
.setHidrometroInstalacaoHistorico(hidrometroInstalacaoHistoricoLigacaoAgua);
}
imovel.setLigacaoAgua(ligacaoAgua);
// //instancia um hidrometro instala��o historico para
// ser colocado no imovel
HidrometroInstalacaoHistorico hidrometroInstalacaoHistoricoImovel = new HidrometroInstalacaoHistorico();
if (arrayImoveis[9] != null) {
hidrometroInstalacaoHistoricoImovel
.setId((Integer) arrayImoveis[9]);
MedicaoTipo medicaoTipo = new MedicaoTipo();
medicaoTipo.setId((Integer) arrayImoveis[27]);
hidrometroInstalacaoHistoricoImovel.setMedicaoTipo(medicaoTipo);
if (arrayImoveis[36] != null) {
Hidrometro hidrometro = new Hidrometro();
hidrometro.setNumero((String) arrayImoveis[36]);
if (arrayImoveis[43] != null){
hidrometro.setNumeroDigitosLeitura((Short) arrayImoveis[43]);
}
hidrometroInstalacaoHistoricoImovel.setHidrometro(hidrometro);
}
imovel
.setHidrometroInstalacaoHistorico(hidrometroInstalacaoHistoricoImovel);
}
// instancia a rota
Rota rotaImovel = new Rota();
if (arrayImoveis[10] != null) {
// seta o id da rota
rotaImovel.setId((Integer) arrayImoveis[10]);
}
if (arrayImoveis[11] != null) {
// seta o indicador fiscalizador suprimido na rota
rotaImovel.setIndicadorFiscalizarSuprimido(Short
.parseShort(arrayImoveis[11].toString()));
}
if (arrayImoveis[12] != null) {
// seta o indicador fiscalizador cortado na rota
rotaImovel.setIndicadorFiscalizarCortado(Short
.parseShort(arrayImoveis[12].toString()));
}
if (arrayImoveis[13] != null) {
// seta o indicador gerar fiscalizacao na rota
rotaImovel.setIndicadorGerarFiscalizacao(Short
.parseShort(arrayImoveis[13].toString()));
}
if (arrayImoveis[14] != null) {
// seta o indicador fgerar falsa faixa na rota
rotaImovel.setIndicadorGerarFalsaFaixa(Short
.parseShort(arrayImoveis[14].toString()));
}
if (arrayImoveis[15] != null) {
// seta o percentual geracao fiscalizacao na rota
rotaImovel
.setPercentualGeracaoFiscalizacao((BigDecimal) (arrayImoveis[15]));
}
if (arrayImoveis[16] != null) {
// seta o percentual geracao faixa falsa na rota
rotaImovel
.setPercentualGeracaoFaixaFalsa((BigDecimal) (arrayImoveis[16]));
}
if (arrayImoveis[35] != null) {
// seta o codigo da rota
rotaImovel.setCodigo((Short) (arrayImoveis[35]));
}
// instancia a empresa
Empresa empresa = new Empresa();
if (arrayImoveis[17] != null) {
// seta o id na empresa
empresa.setId((Integer) arrayImoveis[17]);
}
if (arrayImoveis[18] != null) {
// seta a descri��o abreviada na empresa
empresa.setDescricaoAbreviada(arrayImoveis[18].toString());
}
if (arrayImoveis[19] != null) {
// seta email da empresa
empresa.setEmail(arrayImoveis[19].toString());
}
// seta a empresa na rota
rotaImovel.setEmpresa(empresa);
// instancia o faturamento
FaturamentoGrupo faturamentoGrupo = new FaturamentoGrupo();
if (arrayImoveis[20] != null) {
// seta o id no faturamentGrupo
faturamentoGrupo.setId((Integer) arrayImoveis[20]);
}
if (arrayImoveis[21] != null) {
// seta o descri��o no faturamentGrupo
faturamentoGrupo.setDescricao((String) arrayImoveis[21]);
}
// seta o faturamento na rota
rotaImovel.setFaturamentoGrupo(faturamentoGrupo);
if (arrayImoveis[22] != null) {
// instancia a liga��o esgoto situa��o
LeituraTipo leituraTipo = new LeituraTipo();
// seta o id na liga��o esgoto situa��o
leituraTipo.setId((Integer) arrayImoveis[22]);
// seta a liga��o esgoto situa��o no imovel
rotaImovel.setLeituraTipo(leituraTipo);
}
// seta a rota na quadra
quadra.setRota(rotaImovel);
// seta a quadra no imovel
imovel.setQuadra(quadra);
if (arrayImoveis[23] != null) {
// instancia a liga��o agua situa��o
LigacaoAguaSituacao ligacaoAguaSituacao = new LigacaoAguaSituacao();
// seta o id na liga��o agua situa��o
ligacaoAguaSituacao.setId((Integer) arrayImoveis[23]);
ligacaoAguaSituacao.setDescricao((String) arrayImoveis[31]);
ligacaoAguaSituacao.setDescricaoAbreviado((String) arrayImoveis[37]);
ligacaoAguaSituacao.setIndicadorFaturamentoSituacao((Short) arrayImoveis[46]);
// seta a liga��o agua situa��o no imovel
imovel.setLigacaoAguaSituacao(ligacaoAguaSituacao);
}
if (arrayImoveis[24] != null) {
// instancia a liga��o esgoto situa��o
LigacaoEsgotoSituacao ligacaoEsgotoSituacao = new LigacaoEsgotoSituacao();
// seta o id na liga��o esgoto situa��o
ligacaoEsgotoSituacao.setId((Integer) arrayImoveis[24]);
ligacaoEsgotoSituacao.setIndicadorFaturamentoSituacao((Short) arrayImoveis[47]);
// seta a liga��o esgoto situa��o no imovel
imovel.setLigacaoEsgotoSituacao(ligacaoEsgotoSituacao);
}
if (arrayImoveis[25] != null) {
// instancia o faturamento situacao tipo
FaturamentoSituacaoTipo faturamentoSituacaoTipo = new FaturamentoSituacaoTipo();
// seta o id no faturamento situacao tipo
faturamentoSituacaoTipo
.setIndicadorParalisacaoLeitura((Short) arrayImoveis[25]);
// seta a liga��o esgoto situa��o no imovel
imovel.setFaturamentoSituacaoTipo(faturamentoSituacaoTipo);
}
if (arrayImoveis[28] != null) {
// instancia o gerencia regional
GerenciaRegional gerenciaRegional = new GerenciaRegional();
// seta o id no faturamento situacao tipo
gerenciaRegional.setId((Integer) arrayImoveis[28]);
gerenciaRegional.setNome((String) arrayImoveis[29]);
// seta a liga��o esgoto situa��o no imovel
imovel.getLocalidade().setGerenciaRegional(gerenciaRegional);
}
if (arrayImoveis[38] != null){
//Logradouro Bairro
LogradouroBairro logradouroBairro = new LogradouroBairro();
//Logradouro
Logradouro logradouro = new Logradouro();
logradouro.setId((Integer) arrayImoveis[38]);
logradouro.setNome((String) arrayImoveis[39]);
if (arrayImoveis[45] != null){
LogradouroTipo logradouroTipo = new LogradouroTipo();
logradouroTipo.setDescricaoAbreviada((String) arrayImoveis[45]);
logradouro.setLogradouroTipo(logradouroTipo);
}
if (arrayImoveis[44] != null){
LogradouroTitulo logradouroTitulo = new LogradouroTitulo();
logradouroTitulo.setDescricaoAbreviada((String) arrayImoveis[44]);
logradouro.setLogradouroTitulo(logradouroTitulo);
}
logradouroBairro.setLogradouro(logradouro);
imovel.setLogradouroBairro(logradouroBairro);
}
if (arrayImoveis[40] != null){
//Numero Imovel
imovel.setNumeroImovel((String) arrayImoveis[40]);
}
if (arrayImoveis[41] != null){
//Complemento Imovel
imovel.setComplementoEndereco((String) arrayImoveis[41]);
}
if (arrayImoveis[48] != null){
//Bairro
Bairro bairro = new Bairro();
bairro.setId((Integer)arrayImoveis[48]);
imovel.getLogradouroBairro().setBairro(bairro);
}
if (arrayImoveis[49] != null){
//Nome Bairro
imovel.getLogradouroBairro().getBairro().setNome((String)arrayImoveis[49]);
}
return imovel;
}
/**
* [UC0083]- Gerar Dados para Leitura
*
*
* @date 10/07/2008
* @author R�mulo Aur�lio
*/
public void gerarDadosPorLeituraConvencional(Collection<Rota> colecaoRota,
Integer anoMesCorrente, Integer idGrupoFaturamentoRota,
SistemaParametro sistemaParametro, int idFuncionalidadeIniciada)
throws ControladorException {
int idUnidadeIniciada = 0;
Integer qtdMovimentoRoteiroEmpresa = 0;
try {
Integer idLeituraTipo = LeituraTipo.CONVENCIONAL;
// inicializa uma cole��o de movimentoRoteiroEmpresa
Collection<Object[]> objetosMovimentoRoteiroEmpresa = new ArrayList<Object[]>();
Iterator colecaoRotaIterator = colecaoRota.iterator();
while (colecaoRotaIterator.hasNext()) {
StringBuilder arquivoTxtLinha = new StringBuilder();
Rota rota = (Rota) colecaoRotaIterator.next();
// Registrar o in�cio do processamento da Unidade de Processamento
// do Batch
idUnidadeIniciada = getControladorBatch()
.iniciarUnidadeProcessamentoBatch(idFuncionalidadeIniciada,
UnidadeProcessamento.ROTA, rota.getId());
// cria o HEADER
// Ano m�s referencia informado
arquivoTxtLinha.append("" + anoMesCorrente);
// Leiturista
arquivoTxtLinha.append("0000");
// Data
arquivoTxtLinha.append(Util
.formatarDataSemBarraDDMMAAAA(new Date()));
// Brancos
arquivoTxtLinha.append(Util.completaString("", 94));
// fim da cria��o do HEADER
// recupera todos os im�veis da cole��o de rotas do tipo ROL
objetosMovimentoRoteiroEmpresa = repositorioMicromedicao
.pesquisarMovimentoRoteiroEmpresaParaLeituraPorColecaoRotaCAER(
rota, idLeituraTipo, anoMesCorrente);
if (objetosMovimentoRoteiroEmpresa != null
&& !objetosMovimentoRoteiroEmpresa.isEmpty()) {
qtdMovimentoRoteiroEmpresa = objetosMovimentoRoteiroEmpresa
.size();
boolean hidrometroSelecionado = false;
MovimentoRoteiroEmpresa movimentoRoteiroEmpresa = null;
Iterator objetosMovimentoRoteiroEmpresaIterator = objetosMovimentoRoteiroEmpresa
.iterator();
while (objetosMovimentoRoteiroEmpresaIterator.hasNext()) {
Object[] dadosMovimentoRoteiroEmpresa = (Object[]) objetosMovimentoRoteiroEmpresaIterator
.next();
movimentoRoteiroEmpresa = (MovimentoRoteiroEmpresa) dadosMovimentoRoteiroEmpresa[0];
Integer idQuadra = (Integer) dadosMovimentoRoteiroEmpresa[1];
String descricaoFaturamentoGrupo = (String) dadosMovimentoRoteiroEmpresa[2];
String descricaoAbreviadaEmpresa = (String) dadosMovimentoRoteiroEmpresa[3];
String emailEmpresa = (String) dadosMovimentoRoteiroEmpresa[4];
String descricaoLocalidade = (String) dadosMovimentoRoteiroEmpresa[5];
String descricaoAbreviadoLigacaoAguaSitucao = (String) dadosMovimentoRoteiroEmpresa[6];
String descricaoAbreviadoLigacaoEsgotoSitucao = (String) dadosMovimentoRoteiroEmpresa[7];
LigacaoAguaSituacao ligacaoAguaSituacao = new LigacaoAguaSituacao();
ligacaoAguaSituacao.setId(movimentoRoteiroEmpresa
.getLigacaoAguaSituacao().getId());
ligacaoAguaSituacao
.setDescricaoAbreviado(descricaoAbreviadoLigacaoAguaSitucao);
LigacaoEsgotoSituacao ligacaoEsgotoSituacao = new LigacaoEsgotoSituacao();
ligacaoEsgotoSituacao.setId(movimentoRoteiroEmpresa
.getLigacaoEsgotoSituacao().getId());
ligacaoEsgotoSituacao
.setDescricaoAbreviado(descricaoAbreviadoLigacaoEsgotoSitucao);
movimentoRoteiroEmpresa
.setLigacaoAguaSituacao(ligacaoAguaSituacao);
movimentoRoteiroEmpresa
.setLigacaoEsgotoSituacao(ligacaoEsgotoSituacao);
FaturamentoGrupo faturamentoGrupo = new FaturamentoGrupo();
faturamentoGrupo.setId(movimentoRoteiroEmpresa.getId());
faturamentoGrupo
.setDescricao(descricaoFaturamentoGrupo);
Quadra quadra = new Quadra();
quadra.setId(idQuadra);
Imovel imovel = new Imovel();
imovel.setId(movimentoRoteiroEmpresa.getImovel()
.getId());
imovel.setQuadra(quadra);
movimentoRoteiroEmpresa.setImovel(imovel);
Empresa empresa = new Empresa();
empresa.setId(movimentoRoteiroEmpresa.getEmpresa()
.getId());
empresa.setEmail(emailEmpresa);
empresa
.setDescricaoAbreviada(descricaoAbreviadaEmpresa);
movimentoRoteiroEmpresa.setEmpresa(empresa);
Localidade localidade = new Localidade();
localidade.setId(movimentoRoteiroEmpresa
.getLocalidade().getId());
localidade.setDescricao(descricaoLocalidade);
movimentoRoteiroEmpresa.setLocalidade(localidade);
gerarRelacaoTxt(arquivoTxtLinha,
movimentoRoteiroEmpresa, anoMesCorrente,
hidrometroSelecionado, sistemaParametro);
}
/*
*
* Gerar apenas um arquivo para todas as rotas
*/
this.inserirArquivoTextoRoteiroEmpresa(anoMesCorrente, rota
.getId(), qtdMovimentoRoteiroEmpresa,
idGrupoFaturamentoRota, arquivoTxtLinha, true);
}
// Gera o arquivo para o sistema legado
// this.gerarArquivoConvencional(anoMesCorrente,
// idGrupoFaturamentoRota, arquivoTxtLinhaSistemaLegado,
// null, true);
// atualiza a data e a hora da realiza��o da atividade com a
// data e
// a hora correntes
repositorioMicromedicao
.atualizarFaturamentoAtividadeCronograma(
idGrupoFaturamentoRota, anoMesCorrente);
// Encerra a unidade de Faturamento
getControladorBatch().encerrarUnidadeProcessamentoBatch(null,
idUnidadeIniciada, false);
}
// Encerra a unidade de Faturamento
/*getControladorBatch().encerrarUnidadeProcessamentoBatch(null,
idUnidadeIniciada, false);*/
} catch (Exception e) { // Este catch serve para interceptar
e.printStackTrace();
// qualquer exce��o que o processo batch
// venha a lan�ar e garantir que a unidade
// de processamento do batch ser� atualizada
// com o erro ocorrido
getControladorBatch().encerrarUnidadeProcessamentoBatch(e,
idUnidadeIniciada, true);
throw new EJBException(e);
}
}
/**
* [UC00083] Gerar Dados para Leitura
*
* [SB0005] Gerar Rela��o(ROL) em TXT - CAER
*
* @author S�vio Luiz
* @date 13/08/2007
*
* @param idRota
* @param idLeituraTipo
*
* @throws ErroRepositorioException
*/
protected boolean gerarRelacaoTxt(StringBuilder arquivoTxtLinha,
MovimentoRoteiroEmpresa movimentoRoteiroEmpresa, Integer anoMesCorrente,
boolean hidrometroSelecionado, SistemaParametro sistemaParametro) {
/*boolean ligacaoAgua = false;
boolean ligacaoPoco = false;
Imovel imovelParaSerGerado = new Imovel();
Short numeroDigitosHidrometro = null;*/
StringBuilder dadosHidrometro = new StringBuilder();
StringBuilder arquivoTxtLinhaAux = new StringBuilder();
// parte que coloca alguma dado para n�o entrar eu uma situa��o n�o
// desejada do metodo pesquisarFaixaEsperadaOuFalsa
dadosHidrometro.append("Qualquer dado");
Object[] dadosLinhaTxtHidSelecionaldo = new Object[2];
try {
if (movimentoRoteiroEmpresa != null) {
arquivoTxtLinhaAux.append(System.getProperty("line.separator"));
// id do imovel
if (movimentoRoteiroEmpresa.getImovel().getId() != null) {
arquivoTxtLinhaAux.append(Util.adicionarZerosEsquedaNumeroTruncando(
7, "" + movimentoRoteiroEmpresa.getImovel().getId()));
//imovelParaSerGerado.setId((Integer) arrayImoveisPorRota[0]);
} else {
arquivoTxtLinhaAux.append(Util.adicionarZerosEsquedaNumero(
7, ""));
}
// codigo da rota
if (movimentoRoteiroEmpresa.getCodigoRota() != null) {
arquivoTxtLinhaAux.append(Util.adicionarZerosEsquedaNumeroTruncando(
4, "" + movimentoRoteiroEmpresa.getCodigoRota()));
} else {
arquivoTxtLinhaAux.append(Util.adicionarZerosEsquedaNumeroTruncando(
4, ""));
}
// numero quadra
if (movimentoRoteiroEmpresa.getNumeroQuadra() != null) {
arquivoTxtLinhaAux.append(Util.adicionarZerosEsquedaNumeroTruncando(
4, "" + movimentoRoteiroEmpresa.getNumeroQuadra()));
} else {
arquivoTxtLinhaAux.append(Util.adicionarZerosEsquedaNumeroTruncando(
4, ""));
}
// lote do imovel
if (movimentoRoteiroEmpresa.getNumeroLoteImovel() != null) {
arquivoTxtLinhaAux.append(Util.adicionarZerosEsquedaNumeroTruncando(
3, "" + movimentoRoteiroEmpresa.getNumeroLoteImovel()));
} else {
arquivoTxtLinhaAux.append(Util.adicionarZerosEsquedaNumeroTruncando(
3, ""));
}
// situa��o de liga��o de agua
if (movimentoRoteiroEmpresa.getLigacaoAguaSituacao() != null) {
arquivoTxtLinhaAux.append(Util.adicionarZerosEsquedaNumeroTruncando(
3, "" + movimentoRoteiroEmpresa.getLigacaoAguaSituacao().getDescricaoAbreviado()));
} else {
arquivoTxtLinhaAux.append(Util.adicionarZerosEsquedaNumeroTruncando(
3, ""));
}
// id logradouro
if (movimentoRoteiroEmpresa.getLogradouro() != null) {
arquivoTxtLinhaAux.append(Util.adicionarZerosEsquedaNumeroTruncando(
4, "" + movimentoRoteiroEmpresa.getLogradouro().getId()));
} else {
arquivoTxtLinhaAux.append(Util.adicionarZerosEsquedaNumero(
4, ""));
}
// Nome do Logradouro, com a descri��o abreviada do titulo e tipo
// (MREM_DSABREVLOGRADOUROTITULO + MREM_DSABREVLOGRADOUROTIPO +
// MREM_NMLOGRADOURO da tabela MOVIMENTO_ROTEIRO_EMPRESA) Tam 25
// nome logradouro
if (movimentoRoteiroEmpresa.getNomeLogradouro() != null) {
String titulo = "";
if (movimentoRoteiroEmpresa
.getDescricaoAbreviadaLogradouroTitulo() != null) {
titulo = Util.completaString(movimentoRoteiroEmpresa
.getDescricaoAbreviadaLogradouroTitulo(),5);
}
String nomeLogradouroCompleto = titulo
+ Util.completaString(movimentoRoteiroEmpresa
.getDescricaoAbreviadaLogradouroTipo(),3)
+ movimentoRoteiroEmpresa.getNomeLogradouro();
arquivoTxtLinhaAux.append(Util.completaString(
nomeLogradouroCompleto, 25));
} else {
arquivoTxtLinhaAux.append(Util.completaString("", 25));
}
// numero do imovel
if (movimentoRoteiroEmpresa.getNumeroImovel() != null) {
arquivoTxtLinhaAux.append(Util.completaString(
"" + movimentoRoteiroEmpresa.getNumeroImovel(),5));
} else {
arquivoTxtLinhaAux.append(Util.completaString(""
, 5));
}
// complemento do imovel
if (movimentoRoteiroEmpresa.getComplementoEndereco() != null) {
arquivoTxtLinhaAux.append(Util.completaString(""
+ movimentoRoteiroEmpresa.getComplementoEndereco(), 3));
} else {
arquivoTxtLinhaAux.append(Util.completaString("", 3));
}
// numeroHidrometro
if (movimentoRoteiroEmpresa.getNumeroHidrometro() != null) {
arquivoTxtLinhaAux.append(Util.completaString(""
+ movimentoRoteiroEmpresa.getNumeroHidrometro(), 10));
} else {
arquivoTxtLinhaAux.append(Util.completaString("", 10));
}
// Leitura Minima
String faixaLeituraEsperadaInicial;
String faixaLeituraEsperadaFinal;
if (movimentoRoteiroEmpresa.getNumeroFaixaLeituraEsperadaInicial() != null) {
/*arquivoTxtLinhaAux.append(Util.adicionarZerosEsquedaNumeroTruncando(7, ""
+ movimentoRoteiroEmpresa.getNumeroFaixaLeituraEsperadaInicial()));*/
faixaLeituraEsperadaInicial = Util.adicionarZerosEsquedaNumeroTruncando(6, ""
+ movimentoRoteiroEmpresa.getNumeroFaixaLeituraEsperadaInicial());
} else {
faixaLeituraEsperadaInicial = Util.adicionarZerosEsquedaNumeroTruncando(6, "");
/*arquivoTxtLinhaAux.append(Util.adicionarZerosEsquedaNumeroTruncando(7, ""));*/
}
// Leitura Maxima
if (movimentoRoteiroEmpresa.getNumeroFaixaLeituraEsperadaFinal() != null) {
faixaLeituraEsperadaFinal = Util.adicionarZerosEsquedaNumeroTruncando(6, ""
+ movimentoRoteiroEmpresa.getNumeroFaixaLeituraEsperadaFinal());
/*arquivoTxtLinhaAux.append(Util.adicionarZerosEsquedaNumeroTruncando(7, ""
+ movimentoRoteiroEmpresa.getNumeroFaixaLeituraEsperadaFinal()));*/
} else {
faixaLeituraEsperadaFinal = Util.adicionarZerosEsquedaNumeroTruncando(6, "");
/*arquivoTxtLinhaAux.append(Util.adicionarZerosEsquedaNumeroTruncando(7, ""));*/
}
String faixaLeituraEsperada = Util.adicionarZerosEsquedaNumeroTruncando(14, ""
+ faixaLeituraEsperadaInicial + faixaLeituraEsperadaFinal) ;
arquivoTxtLinhaAux.append(faixaLeituraEsperada);
arquivoTxtLinhaAux.append(Util.adicionarZerosEsquedaNumeroTruncando(30, ""));
arquivoTxtLinha.append(arquivoTxtLinhaAux);
}
} catch (Exception e) { // Este catch serve para interceptar
e.printStackTrace();
throw new EJBException(e);
}
dadosLinhaTxtHidSelecionaldo[0] = arquivoTxtLinha;
dadosLinhaTxtHidSelecionaldo[1] = hidrometroSelecionado;
return hidrometroSelecionado;
}
/**
* @author R�mulo Aur�lio
* @date 15/07/2008
*
* @param imovelParaSerGerado
* @param anoMesCorrente
* @param sistemaParametro
* @throws ControladorException
*/
public void gerarDadosMovimentoRoteiroEmpresa(Imovel imovelParaSerGerado,
int anoMesCorrente, SistemaParametro sistemaParametro, Integer idLeituraTipo) throws ControladorException{
boolean ligacaoAgua = false;
boolean ligacaoPoco = false;
boolean hidrometroSelecionado = false;
if (imovelParaSerGerado.getLigacaoAgua() != null
&& imovelParaSerGerado.getLigacaoAgua().getId() != null
&& imovelParaSerGerado.getLigacaoAgua()
.getHidrometroInstalacaoHistorico() != null
&& imovelParaSerGerado.getLigacaoAgua()
.getHidrometroInstalacaoHistorico()
.getId() != null) {
ligacaoAgua = true;
}
if (imovelParaSerGerado
.getHidrometroInstalacaoHistorico() != null
&& imovelParaSerGerado
.getHidrometroInstalacaoHistorico()
.getId() != null) {
ligacaoPoco = true;
}
MovimentoRoteiroEmpresa movimentoRoteiroEmpresa = new MovimentoRoteiroEmpresa();
movimentoRoteiroEmpresa
.setAnoMesMovimento(anoMesCorrente);
if (imovelParaSerGerado.getQuadra() != null) {
// if (sistemaParametro.getIndicadorRoteiroEmpresa() == 1) {
if (imovelParaSerGerado.getQuadra().getRoteiroEmpresa() == null) {
// continue;
// }
if (imovelParaSerGerado.getQuadra() != null) {
if (imovelParaSerGerado.getQuadra().getRoteiroEmpresa() == null)
movimentoRoteiroEmpresa
.setRoteiroEmpresa(imovelParaSerGerado
.getQuadra().getRoteiroEmpresa());
movimentoRoteiroEmpresa.setNumeroQuadra(imovelParaSerGerado
.getQuadra().getNumeroQuadra());
if (imovelParaSerGerado.getQuadra().getRota() != null) {
// id do grupo de faturamento
movimentoRoteiroEmpresa
.setFaturamentoGrupo(imovelParaSerGerado
.getQuadra().getRota()
.getFaturamentoGrupo());
}
if (imovelParaSerGerado.getQuadra().getRoteiroEmpresa() != null) {
movimentoRoteiroEmpresa.setEmpresa(imovelParaSerGerado
.getQuadra().getRoteiroEmpresa().getEmpresa());
} else {
movimentoRoteiroEmpresa.setEmpresa(imovelParaSerGerado
.getQuadra().getRota().getEmpresa());
}
}
}
}
movimentoRoteiroEmpresa
.setLocalidade(imovelParaSerGerado
.getLocalidade());
movimentoRoteiroEmpresa
.setCodigoSetorComercial(imovelParaSerGerado
.getSetorComercial().getCodigo());
movimentoRoteiroEmpresa.setNumeroLoteImovel(""+imovelParaSerGerado.getLote());
movimentoRoteiroEmpresa.setNumeroSubloteImovel("" + imovelParaSerGerado.getSubLote());
movimentoRoteiroEmpresa
.setImovelPerfil(imovelParaSerGerado
.getImovelPerfil());
// caso seja tipo liga��o agua e po�o cria a string
// primeiro
// com
// tipo
// liga��o agua
if (ligacaoAgua && ligacaoPoco) {
if (imovelParaSerGerado.getLigacaoAgua() != null
&& imovelParaSerGerado.getLigacaoAgua()
.getHidrometroInstalacaoHistorico() != null
&& imovelParaSerGerado.getLigacaoAgua()
.getHidrometroInstalacaoHistorico()
.getId() != null
&& !imovelParaSerGerado.getLigacaoAgua()
.getHidrometroInstalacaoHistorico()
.getId().equals("")) {
movimentoRoteiroEmpresa
.setMedicaoTipo(imovelParaSerGerado
.getLigacaoAgua()
.getHidrometroInstalacaoHistorico()
.getMedicaoTipo());
}
// caso n�o seja
} else {
// caso seja tipo liga��o agua cria a string com
// tipo
// liga��o agua
if (ligacaoAgua) {
if (imovelParaSerGerado.getLigacaoAgua() != null
&& imovelParaSerGerado
.getLigacaoAgua()
.getHidrometroInstalacaoHistorico() != null
&& imovelParaSerGerado
.getLigacaoAgua()
.getHidrometroInstalacaoHistorico()
.getId() != null
&& !imovelParaSerGerado
.getLigacaoAgua()
.getHidrometroInstalacaoHistorico()
.getId().equals("")) {
movimentoRoteiroEmpresa
.setMedicaoTipo(imovelParaSerGerado
.getLigacaoAgua()
.getHidrometroInstalacaoHistorico()
.getMedicaoTipo());
}
} else {
// caso seja tipo liga��o po�o cria a string
// com
// tipo
// liga��o po�o
if (ligacaoPoco) {
if (imovelParaSerGerado
.getHidrometroInstalacaoHistorico() != null
&& imovelParaSerGerado
.getHidrometroInstalacaoHistorico()
.getId() != null
&& !imovelParaSerGerado
.getHidrometroInstalacaoHistorico()
.getId().equals("")) {
movimentoRoteiroEmpresa
.setMedicaoTipo(imovelParaSerGerado
.getHidrometroInstalacaoHistorico()
.getMedicaoTipo());
}
}
}
}
// Matricula do im�vel
movimentoRoteiroEmpresa.setImovel(imovelParaSerGerado);
// Perfil do imovel
movimentoRoteiroEmpresa
.setImovelPerfil(imovelParaSerGerado
.getImovelPerfil());
String nomeClienteUsuario = null;
try {
// Pesquisa o nome do cliente que tem o tipo de
// rela��o
// usu�rio.
nomeClienteUsuario = repositorioClienteImovel
.pesquisarNomeClientePorImovel(imovelParaSerGerado
.getId());
} catch (ErroRepositorioException e) {
throw new ControladorException("erro.sistema", e);
}
// nome do cliente usu�rio
movimentoRoteiroEmpresa.setNomeCliente(completaString(
nomeClienteUsuario, 50));
// Pesquisa o endere�o do imovel passando o id
String enderecoImovel = getControladorEndereco()
.pesquisarEnderecoFormatado(
imovelParaSerGerado.getId());
if (enderecoImovel != null
&& !enderecoImovel.equals("")) {
// endere�o do im�vel
movimentoRoteiroEmpresa
.setEnderecoImovel(completaString(
enderecoImovel, 100));
} else {
movimentoRoteiroEmpresa
.setEnderecoImovel(completaString("", 100));
}
// Dados do Hidrometro
// caso seja tipo liga��o agua e po�o cria a string
// primeiro
// com
// tipo
// liga��o agua
Short numeroDigitosHidrometro = null;
StringBuilder dadosHidrometro = null;
Integer capacidadeHidrometro = null;
Integer marcaHidrometro = null;
if (ligacaoAgua && ligacaoPoco) {
Object[] dadosHidrometroNumeroLeitura = pesquisarDadosHidrometroTipoLigacaoAgua(imovelParaSerGerado);
dadosHidrometro = (StringBuilder) dadosHidrometroNumeroLeitura[0];
numeroDigitosHidrometro = (Short) dadosHidrometroNumeroLeitura[1];
capacidadeHidrometro = (Integer) dadosHidrometroNumeroLeitura[2];
marcaHidrometro = (Integer) dadosHidrometroNumeroLeitura[3];
HidrometroCapacidade capacidade = new HidrometroCapacidade();
capacidade.setId(capacidadeHidrometro);
movimentoRoteiroEmpresa
.setHidrometroCapacidade(capacidade);
HidrometroMarca hidrometroMarca = new HidrometroMarca();
hidrometroMarca.setId(marcaHidrometro);
movimentoRoteiroEmpresa
.setHidrometroMarca(hidrometroMarca);
movimentoRoteiroEmpresa
.setNumeroHidrometro(completaString(
(String) dadosHidrometroNumeroLeitura[4],
10));
// caso n�o seja
} else {
// caso seja tipo liga��o agua cria a string com
// tipo
// liga��o agua
if (ligacaoAgua) {
Object[] dadosHidrometroNumeroLeitura = pesquisarDadosHidrometroTipoLigacaoAgua(imovelParaSerGerado);
dadosHidrometro = (StringBuilder) dadosHidrometroNumeroLeitura[0];
numeroDigitosHidrometro = (Short) dadosHidrometroNumeroLeitura[1];
capacidadeHidrometro = (Integer) dadosHidrometroNumeroLeitura[2];
marcaHidrometro = (Integer) dadosHidrometroNumeroLeitura[3];
HidrometroCapacidade capacidade = new HidrometroCapacidade();
capacidade.setId(capacidadeHidrometro);
movimentoRoteiroEmpresa
.setHidrometroCapacidade(capacidade);
HidrometroMarca hidrometroMarca = new HidrometroMarca();
hidrometroMarca.setId(marcaHidrometro);
movimentoRoteiroEmpresa
.setHidrometroMarca(hidrometroMarca);
movimentoRoteiroEmpresa
.setNumeroHidrometro(completaString(
(String) dadosHidrometroNumeroLeitura[4],
10));
// caso n�o seja
} else {
// caso seja tipo liga��o po�o cria a string
// com
// tipo
// liga��o po�o
if (ligacaoPoco) {
Object[] dadosHidrometroNumeroLeitura = pesquisarDadosHidrometroTipoPoco(imovelParaSerGerado);
dadosHidrometro = (StringBuilder) dadosHidrometroNumeroLeitura[0];
numeroDigitosHidrometro = (Short) dadosHidrometroNumeroLeitura[1];
capacidadeHidrometro = (Integer) dadosHidrometroNumeroLeitura[2];
marcaHidrometro = (Integer) dadosHidrometroNumeroLeitura[3];
HidrometroCapacidade capacidade = new HidrometroCapacidade();
capacidade.setId(capacidadeHidrometro);
movimentoRoteiroEmpresa
.setHidrometroCapacidade(capacidade);
HidrometroMarca hidrometroMarca = new HidrometroMarca();
hidrometroMarca.setId(marcaHidrometro);
movimentoRoteiroEmpresa
.setHidrometroMarca(hidrometroMarca);
movimentoRoteiroEmpresa
.setNumeroHidrometro(completaString(
(String) dadosHidrometroNumeroLeitura[4],
10));
// caso n�o seja nem um nem outro ent�o
// pode
// chamar
// qualquer um dos m�todos
// pois os dois fazem a verifica��o e
// retorna
// strings
// vazia e
// a data cpm zeros
} else {
Object[] dadosHidrometroNumeroLeitura = pesquisarDadosHidrometroTipoPoco(imovelParaSerGerado);
dadosHidrometro = (StringBuilder) dadosHidrometroNumeroLeitura[0];
numeroDigitosHidrometro = (Short) dadosHidrometroNumeroLeitura[1];
capacidadeHidrometro = (Integer) dadosHidrometroNumeroLeitura[2];
marcaHidrometro = (Integer) dadosHidrometroNumeroLeitura[3];
HidrometroCapacidade capacidade = new HidrometroCapacidade();
capacidade.setId(capacidadeHidrometro);
movimentoRoteiroEmpresa
.setHidrometroCapacidade(capacidade);
HidrometroMarca hidrometroMarca = new HidrometroMarca();
hidrometroMarca.setId(marcaHidrometro);
movimentoRoteiroEmpresa
.setHidrometroMarca(hidrometroMarca);
movimentoRoteiroEmpresa
.setNumeroHidrometro(completaString(
(String) dadosHidrometroNumeroLeitura[4],
10));
}
}
}
if (imovelParaSerGerado
.getHidrometroInstalacaoHistorico() != null) {
movimentoRoteiroEmpresa
.setHidrometroLocalInstalacao(imovelParaSerGerado
.getHidrometroInstalacaoHistorico()
.getHidrometroLocalInstalacao());
movimentoRoteiroEmpresa
.setDataInstalacaoHidrometro(imovelParaSerGerado
.getHidrometroInstalacaoHistorico()
.getDataInstalacao());
movimentoRoteiroEmpresa
.setHidrometroProtecao(imovelParaSerGerado
.getHidrometroInstalacaoHistorico()
.getHidrometroProtecao());
}
if (imovelParaSerGerado.getLigacaoAgua()
.getHidrometroInstalacaoHistorico() != null) {
movimentoRoteiroEmpresa
.setHidrometroLocalInstalacao(imovelParaSerGerado
.getLigacaoAgua()
.getHidrometroInstalacaoHistorico()
.getHidrometroLocalInstalacao());
movimentoRoteiroEmpresa
.setDataInstalacaoHidrometro(imovelParaSerGerado
.getLigacaoAgua()
.getHidrometroInstalacaoHistorico()
.getDataInstalacao());
movimentoRoteiroEmpresa
.setHidrometroProtecao(imovelParaSerGerado
.getLigacaoAgua()
.getHidrometroInstalacaoHistorico()
.getHidrometroProtecao());
}
// id da ligacao agua situa��o
if (imovelParaSerGerado.getLigacaoAguaSituacao() != null
&& imovelParaSerGerado.getLigacaoAguaSituacao()
.getId() != null) {
// Situa��o da liga��o de agua
movimentoRoteiroEmpresa
.setLigacaoAguaSituacao(imovelParaSerGerado
.getLigacaoAguaSituacao());
}
// id da ligacao esgoto situa��o
if (imovelParaSerGerado.getLigacaoEsgotoSituacao() != null
&& imovelParaSerGerado
.getLigacaoEsgotoSituacao().getId() != null) {
// Situa��o de liga��o esgoto
movimentoRoteiroEmpresa
.setLigacaoEsgotoSituacao(imovelParaSerGerado
.getLigacaoEsgotoSituacao());
}
// pega as descri��es das categorias do imovel
Categoria categoria = getControladorImovel()
.obterDescricoesCategoriaImovel(
imovelParaSerGerado);
// quantidade de economias
movimentoRoteiroEmpresa
.setDescricaoAbreviadaCategoriaImovel(categoria
.getDescricaoAbreviada());
// [UC0086 - Obter quantidade de economias]
int quantidadeEconomias = getControladorImovel()
.obterQuantidadeEconomias(imovelParaSerGerado);
// quantidade de economias
movimentoRoteiroEmpresa
.setQuantidadeEconomias(new Integer(
quantidadeEconomias).shortValue());
// Leitura anterior
Integer anoMesAnterior = Util
.subtrairData(anoMesCorrente);
String leituraAnterior = null;
Integer idMedicaoTipo = null;
MedicaoHistorico medicaoHistorico = null;
Object[] retorno = pesquisaLeituraAnterior(ligacaoAgua,
ligacaoPoco, anoMesAnterior,
imovelParaSerGerado);
// verifica se a leitura anterior � diferente de
// nula
if (retorno[0] != null) {
leituraAnterior = retorno[0].toString();
}
// verifica se a leitura situa��o atual � diferente
// de
// nula
if (retorno[1] != null) {
medicaoHistorico = (MedicaoHistorico) retorno[1];
}
// verifica se o id da medi��o tipo � diferente de
// nula
if (retorno[2] != null) {
idMedicaoTipo = (Integer) retorno[2];
}
// verifica se a leitura anterior � diferente de
// nula
// para
// ser
// jogado no arquivo
// txt
if (leituraAnterior != null) {
movimentoRoteiroEmpresa
.setNumeroLeituraAnterior(new Integer(
leituraAnterior));
// caso contrario coloca a string com zeros
}
// Faixa de leitura esperada
Object[] faixaInicialFinal = pesquisarFaixaEsperadaOuFalsaCelular(
imovelParaSerGerado, dadosHidrometro,
leituraAnterior, medicaoHistorico,
idMedicaoTipo, sistemaParametro,
hidrometroSelecionado, numeroDigitosHidrometro);
hidrometroSelecionado = Boolean
.parseBoolean(faixaInicialFinal[1].toString());
boolean faixaFalsaLeitura = Boolean
.parseBoolean(faixaInicialFinal[2].toString());
int faixaInicialEsperada = 0;
int faixaFinalEsperada = 0;
if (!faixaFalsaLeitura) {
faixaInicialEsperada = Integer
.parseInt(faixaInicialFinal[3].toString());
faixaFinalEsperada = Integer
.parseInt(faixaInicialFinal[4].toString());
}
movimentoRoteiroEmpresa
.setNumeroFaixaLeituraEsperadaInicial(faixaInicialEsperada);
movimentoRoteiroEmpresa
.setNumeroFaixaLeituraEsperadaFinal(faixaFinalEsperada);
movimentoRoteiroEmpresa.setUltimaAlteracao(new Date());
movimentoRoteiroEmpresa.setRota(imovelParaSerGerado
.getQuadra().getRota());
/**
* Obtem a colecao economias por categoria
*
*/
Collection colecaoSubCategoria = this
.getControladorImovel()
.obterQuantidadeEconomiasSubCategoria(
imovelParaSerGerado.getId());
// 1.10.1 - SubCategoria 01
// 1.10.2 - Quantidade 01
// 1.10.3 - SubCategoria 02
// 1.10.4 - Quantidade 02
if (colecaoSubCategoria != null
&& !colecaoSubCategoria.isEmpty()) {
Iterator itera = colecaoSubCategoria.iterator();
for (int i = 0; i < 2; i++) {
while (itera.hasNext()) {
Subcategoria subcategoria = (Subcategoria) itera
.next();
// tipoEconomia = categoria_id(1 posi��o) +
// subcategoria_codigo(3 posi��es)
if (i == 0) {
// C�digo da subcategoria do imovel
movimentoRoteiroEmpresa
.setCodigoSubcategoria1(subcategoria
.getCategoria().getId());
// qtdeEconomia
movimentoRoteiroEmpresa
.setQuantidadeEconomias(subcategoria
.getQuantidadeEconomias()
.shortValue());
} else {
// C�digo da 2 subcategoria do imovel
movimentoRoteiroEmpresa
.setCodigoSubcategoria2(subcategoria
.getCodigo());
// qtdeEconomia
movimentoRoteiroEmpresa
.setQuantidadeEconomias2(subcategoria
.getQuantidadeEconomias()
.shortValue());
}
}
}
}
// 1.11 - Consumo
Integer numeroConsumoFaturadoMes = null;
Integer anoMesFaturamento = sistemaParametro
.getAnoMesFaturamento();
try {
// 1.11.1 - Consumo 01
int anoMesSubtraido = Util.subtrairMesDoAnoMes(
anoMesFaturamento, 6);
numeroConsumoFaturadoMes = repositorioMicromedicao
.obterConsumoLigacaoAguaOuEsgotoDoImovelPeloTipoLogacao(
imovelParaSerGerado.getId(),
anoMesSubtraido,
LigacaoTipo.LIGACAO_AGUA);
// caso o numero consumo faturado do mes for
// diferente de nulo
if (numeroConsumoFaturadoMes != null) {
movimentoRoteiroEmpresa
.setNumeroConsumoFaturadoMenos6Meses(numeroConsumoFaturadoMes);
}
// 1.11.2 - Consumo 02
anoMesSubtraido = Util.subtrairMesDoAnoMes(
anoMesFaturamento, 5);
numeroConsumoFaturadoMes = repositorioMicromedicao
.obterConsumoLigacaoAguaOuEsgotoDoImovelPeloTipoLogacao(
imovelParaSerGerado.getId(),
anoMesSubtraido,
LigacaoTipo.LIGACAO_AGUA);
// caso o numero consumo faturado do mes for
// diferente de nulo
if (numeroConsumoFaturadoMes != null) {
movimentoRoteiroEmpresa
.setNumeroConsumoFaturadoMenos5Meses(numeroConsumoFaturadoMes);
}
// 1.11.3 - Consumo 03
anoMesSubtraido = Util.subtrairMesDoAnoMes(
anoMesFaturamento, 4);
numeroConsumoFaturadoMes = repositorioMicromedicao
.obterConsumoLigacaoAguaOuEsgotoDoImovelPeloTipoLogacao(
imovelParaSerGerado.getId(),
anoMesSubtraido,
LigacaoTipo.LIGACAO_AGUA);
// caso o numero consumo faturado do mes for
// diferente de nulo
if (numeroConsumoFaturadoMes != null) {
movimentoRoteiroEmpresa
.setNumeroConsumoFaturadoMenos4Meses(numeroConsumoFaturadoMes);
}
} catch (ErroRepositorioException e) {
throw new ControladorException("erro.sistema", e);
}
// 1.12 - Condi��o
String condicao = null;
try {
condicao = this.repositorioMicromedicao
.obterDescricaoConsumoTipo(
imovelParaSerGerado.getId(),
LigacaoTipo.LIGACAO_AGUA);
} catch (ErroRepositorioException e) {
throw new ControladorException("erro.sistema", e);
}
if (condicao != null) {
movimentoRoteiroEmpresa
.setDescricaoConsumoTipo("" + condicao);
}
// 1.13 - N�mero do Lacre
if (imovelParaSerGerado.getLigacaoAgua()
.getNumeroLacre() != null) {
movimentoRoteiroEmpresa
.setNumeroLacreLigacaoAgua(
""
+ imovelParaSerGerado
.getImovelPrincipal()
.getLigacaoAgua()
.getNumeroLacre());
}
// 1.14 - Sequencial da Rota
movimentoRoteiroEmpresa
.setNumeroSequencialRota(imovelParaSerGerado
.getNumeroSequencialRota());
// 1.15 - Consumo 04
int anoMesSubtraido = Util.subtrairMesDoAnoMes(
anoMesFaturamento, 3);
try {
numeroConsumoFaturadoMes = repositorioMicromedicao
.obterConsumoLigacaoAguaOuEsgotoDoImovelPeloTipoLogacao(
imovelParaSerGerado.getId(),
anoMesSubtraido,
LigacaoTipo.LIGACAO_AGUA);
} catch (ErroRepositorioException e1) {
e1.printStackTrace();
}
// caso o numero consumo faturado do mes for diferente
// de nulo
if (numeroConsumoFaturadoMes != null) {
movimentoRoteiroEmpresa
.setNumeroConsumoFaturadoMenos3Meses(numeroConsumoFaturadoMes);
}
// 1.16 - Consumo 05
anoMesSubtraido = Util.subtrairMesDoAnoMes(
anoMesFaturamento, 2);
try {
numeroConsumoFaturadoMes = repositorioMicromedicao
.obterConsumoLigacaoAguaOuEsgotoDoImovelPeloTipoLogacao(
imovelParaSerGerado.getId(),
anoMesSubtraido,
LigacaoTipo.LIGACAO_AGUA);
} catch (ErroRepositorioException e1) {
e1.printStackTrace();
}
// caso o numero consumo faturado do mes for diferente
// de nulo
if (numeroConsumoFaturadoMes != null) {
movimentoRoteiroEmpresa
.setNumeroConsumoFaturadoMenos2Meses(numeroConsumoFaturadoMes);
}
// 1.17 - Consumo 06
anoMesSubtraido = Util.subtrairMesDoAnoMes(
anoMesFaturamento, 1);
try {
numeroConsumoFaturadoMes = repositorioMicromedicao
.obterConsumoLigacaoAguaOuEsgotoDoImovelPeloTipoLogacao(
imovelParaSerGerado.getId(),
anoMesSubtraido,
LigacaoTipo.LIGACAO_AGUA);
} catch (ErroRepositorioException e1) {
e1.printStackTrace();
}
// caso o numero consumo faturado do mes for diferente
// de nulo
if (numeroConsumoFaturadoMes != null) {
movimentoRoteiroEmpresa
.setNumeroConsumoFaturadoMenos1Mes(numeroConsumoFaturadoMes);
}
// 1.18 - Consumo Medio
Integer numeroConsumoMedio = null;
try {
numeroConsumoMedio = this.repositorioMicromedicao
.pesquisarNumeroConsumoMedioImovel(
imovelParaSerGerado.getId(),
anoMesCorrente,
LigacaoTipo.LIGACAO_AGUA);
} catch (ErroRepositorioException e) {
throw new ControladorException("erro.sistema", e);
}
if (numeroConsumoMedio != null) {
movimentoRoteiroEmpresa
.setNumeroConsumoMedio(numeroConsumoMedio);
}
// 1.19 -Rota
movimentoRoteiroEmpresa
.setCodigoRota(imovelParaSerGerado.getQuadra()
.getRota().getCodigo());
// 1.20 - Codigo Logradouro
movimentoRoteiroEmpresa
.setLogradouro(imovelParaSerGerado
.getLogradouroBairro().getLogradouro());
// 1.21 - Nome do Logradouro
movimentoRoteiroEmpresa
.setNomeLogradouro(imovelParaSerGerado
.getLogradouroBairro().getLogradouro()
.getNome());
//?? Logradouro Titulo
if(imovelParaSerGerado
.getLogradouroBairro().getLogradouro().getLogradouroTitulo()!=null){
movimentoRoteiroEmpresa.setDescricaoAbreviadaLogradouroTitulo(imovelParaSerGerado
.getLogradouroBairro().getLogradouro().getLogradouroTitulo().getDescricaoAbreviada());
}
if(imovelParaSerGerado
.getLogradouroBairro().getLogradouro().getLogradouroTipo() !=null){
//?? Logradouro Tipo
movimentoRoteiroEmpresa.setDescricaoAbreviadaLogradouroTipo(Util.completaString(imovelParaSerGerado
.getLogradouroBairro().getLogradouro().getLogradouroTipo().getDescricaoAbreviada(),5));
}
// 1.22 - Numero do Imovel
movimentoRoteiroEmpresa
.setNumeroImovel(imovelParaSerGerado
.getNumeroImovel());
// 1.23 - Complemento
movimentoRoteiroEmpresa
.setComplementoEndereco(imovelParaSerGerado
.getComplementoEndereco());
// 1.24 - Nome do Bairro
movimentoRoteiroEmpresa
.setNomeBairro(imovelParaSerGerado
.getLogradouroBairro().getBairro()
.getNome());
// 1.25 - Id da Categoria
Categoria categoria1 = (Categoria) getControladorImovel()
.obterPrincipalCategoriaImovel(
imovelParaSerGerado.getId());
movimentoRoteiroEmpresa.setCategoriaPrincipal(categoria1);
// 1.1 Incricao do Imovel
movimentoRoteiroEmpresa
.setInscricaoImovel(imovelParaSerGerado
.getInscricaoFormatada());
// Id gerencia Regional
movimentoRoteiroEmpresa
.setGerenciaRegional(imovelParaSerGerado
.getLocalidade().getGerenciaRegional());
LeituraTipo leituraTipo = new LeituraTipo();
leituraTipo.setId(idLeituraTipo);
movimentoRoteiroEmpresa.setLeituraTipo(leituraTipo);
getControladorUtil().inserir(movimentoRoteiroEmpresa);
imovelParaSerGerado = null;
}
/**
* [UC0083] - Gerar Dados para Leitura Empresa
*
* @author R�mulo Aur�lio
* @date 09/07/2008
*
* @param anoMesFaturamento
* @param movimentoRoteiroEmpresa
* @param qtdImoveis
* @param arquivoTexto
* param nomeArquivo
*
*/
public void inserirArquivoTextoRoteiroEmpresa(Integer anoMesFaturamento,
Integer idRota, Integer qtdImoveis, Integer idGrupoFaturamentoRota,
StringBuilder arquivoTexto, boolean ehSistemaLegado)
throws ControladorException {
// Remove todos os dados para o anoMesFaturamento,
// idGrupoFaturamentoRota e idRota informado
boolean gerarArquivoTexto = true;
ArquivoTextoRoteiroEmpresa arquivo;
try {
arquivo = this.repositorioMicromedicao
.pesquisaArquivoTextoParaLeituristaPorRota(
anoMesFaturamento, idRota,
idGrupoFaturamentoRota);
} catch (ErroRepositorioException e1) {
throw new ControladorException("erro.sistema", e1);
}
if(arquivo!=null){
if(arquivo.getSituacaoTransmissaoLeitura().getId()
.compareTo(SituacaoTransmissaoLeitura.LIBERADO)==0){
this.getControladorUtil().remover(arquivo);
}else{
gerarArquivoTexto = false;
}
}
if(gerarArquivoTexto){
FiltroRota filtroRota = new FiltroRota();
filtroRota.adicionarCaminhoParaCarregamentoEntidade("setorComercial");
filtroRota
.adicionarCaminhoParaCarregamentoEntidade(FiltroRota.LOCALIDADE);
filtroRota
.adicionarCaminhoParaCarregamentoEntidade(FiltroRota.SETOR_COMERCIAL);
filtroRota
.adicionarCaminhoParaCarregamentoEntidade(FiltroRota.LEITURISTA);
filtroRota.adicionarParametro(new ParametroSimples(FiltroRota.ID_ROTA,
idRota));
Collection colecaoRota = this.getControladorUtil().pesquisar(
filtroRota, Rota.class.getName());
Rota rota = (Rota) Util.retonarObjetoDeColecao(colecaoRota);
String codigoSetorComercial = Util.adicionarZerosEsquedaNumero(2,
String.valueOf(rota.getSetorComercial().getCodigo()));
String codigoRota = Util.adicionarZerosEsquedaNumero(2, String
.valueOf(rota.getCodigo()));
String nomeArquivoRol;
String nomeZipRol = null;
if (ehSistemaLegado) {
nomeZipRol = "Rt";
}
String idGrupoFaturamentoRotaFormatado;
if (idGrupoFaturamentoRota.intValue() < 10) {
idGrupoFaturamentoRotaFormatado = "0"
+ idGrupoFaturamentoRota.toString();
} else {
idGrupoFaturamentoRotaFormatado = idGrupoFaturamentoRota.toString();
}
if (idRota != null) {
nomeArquivoRol = nomeZipRol + "_" + "G"
+ idGrupoFaturamentoRotaFormatado + "_"
+ codigoSetorComercial + "_" + codigoRota;
} else {
nomeArquivoRol = nomeZipRol + "_" + "G"
+ idGrupoFaturamentoRotaFormatado + "_" + anoMesFaturamento
+ "-";
}
ArquivoTextoRoteiroEmpresa arquivoTextoRoteiroEmpresa = new ArquivoTextoRoteiroEmpresa();
// ANO_MES_REFERENCIA
arquivoTextoRoteiroEmpresa.setAnoMesReferencia(anoMesFaturamento);
// FATURAMENTO_GRUPO
FaturamentoGrupo faturamentoGrupo = new FaturamentoGrupo();
faturamentoGrupo.setId(rota.getFaturamentoGrupo().getId());
arquivoTextoRoteiroEmpresa.setFaturamentoGrupo(faturamentoGrupo);
// EMPRESA
arquivoTextoRoteiroEmpresa.setEmpresa(rota.getEmpresa());
// LOCALIDADE
arquivoTextoRoteiroEmpresa.setLocalidade(rota.getSetorComercial()
.getLocalidade());
// C�DIGO DO SETOR COMERCIAL
arquivoTextoRoteiroEmpresa.setCodigoSetorComercial1(rota
.getSetorComercial().getCodigo());
// QUANTIDADE DE IM�VEIS
arquivoTextoRoteiroEmpresa.setQuantidadeImovel(qtdImoveis);
// NOME DO ARQUIVO
arquivoTextoRoteiroEmpresa.setNomeArquivo(nomeArquivoRol);
// INFORMA��ES LEITURISTA
if (rota.getLeiturista() != null) {
arquivoTextoRoteiroEmpresa.setLeiturista(rota.getLeiturista());
arquivoTextoRoteiroEmpresa.setCodigoLeiturista(rota.getLeiturista()
.getCodigoDDD());
arquivoTextoRoteiroEmpresa.setNumeroFoneLeiturista(rota
.getLeiturista().getNumeroFone());
arquivoTextoRoteiroEmpresa.setNumeroImei(rota.getLeiturista()
.getNumeroImei());
}
// MENOR E MAIOR N�MERO DA QUADRA PARA ROTA
Object[] intervalorNumeroQuadra = null;
try {
intervalorNumeroQuadra = this.repositorioFaturamento
.pesquisarIntervaloNumeroQuadraPorRota(rota.getId());
} catch (ErroRepositorioException e) {
sessionContext.setRollbackOnly();
throw new ControladorException("erro.sistema", e);
}
if (intervalorNumeroQuadra != null && intervalorNumeroQuadra[0] != null
&& intervalorNumeroQuadra[1] != null) {
arquivoTextoRoteiroEmpresa
.setNumeroQuadraInicial1((Integer) intervalorNumeroQuadra[0]);
arquivoTextoRoteiroEmpresa
.setNumeroQuadraFinal1((Integer) intervalorNumeroQuadra[1]);
} else {
// PARA OS CASOS DE ROTA ALTERNATIVA
arquivoTextoRoteiroEmpresa.setNumeroQuadraInicial1(0);
arquivoTextoRoteiroEmpresa.setNumeroQuadraFinal1(0);
}
// ARQUIVO TEMPOR�RIO GERADO PARA ROTA
byte[] arquivoTextoByte = null;
try {
arquivoTextoByte = IoUtil.transformarObjetoParaBytes(arquivoTexto);
} catch (IOException e) {
sessionContext.setRollbackOnly();
throw new ControladorException("erro.sistema", e);
}
arquivoTextoRoteiroEmpresa.setArquivoTexto(arquivoTextoByte);
// SITUACAO_TRANSMISSAO_LEITURA
SituacaoTransmissaoLeitura situacaoTransmissaoLeitura = new SituacaoTransmissaoLeitura();
situacaoTransmissaoLeitura.setId(SituacaoTransmissaoLeitura.LIBERADO);
arquivoTextoRoteiroEmpresa
.setSituacaoTransmissaoLeitura(situacaoTransmissaoLeitura);
ServicoTipoCelular servicoTipoCelular = new ServicoTipoCelular();
servicoTipoCelular.setId(ServicoTipoCelular.LEITURA);
arquivoTextoRoteiroEmpresa.setServicoTipoCelular(servicoTipoCelular);
// ROTA
arquivoTextoRoteiroEmpresa.setRota(rota);
// ULTIMA ALTERACAO
arquivoTextoRoteiroEmpresa.setUltimaAlteracao(new Date());
// INSERINDO NA BASE
this.getControladorUtil().inserir(arquivoTextoRoteiroEmpresa);
}
}
/**
* [UC00083] Gerar Dados para Leitura
*
* @author R�mulo Aur�lio
* @throws ControladorException
* @date 07/07/2008
*/
public Collection retornaImoveisPorRota(Rota rota, int numeroIndice,
SistemaParametro sistemaParametro) throws ControladorException {
Collection imoveisPorRota = new ArrayList();
try {
imoveisPorRota = repositorioMicromedicao
.pesquisarImoveisParaLeituraPorColecaoRotaCAER(rota, rota.getLeituraTipo().getId());
} catch (ErroRepositorioException e) {
e.printStackTrace();
}
return imoveisPorRota;
}
/**
* [UC00083] Gerar Dados para Leitura
*
* @author R�mulo Aur�lio
* @date 07/07/2008
*/
public Collection retornaImoveisPorRota(Rota rota,
SistemaParametro sistemaParametro) throws ControladorException {
/**
* [SB0004]-Recuperar Dados para inclusao na Tabela
*/
// inicializa uma cole��o de imoveis
Collection objetosImoveis = new ArrayList();
// cria uma cole��o de im�vel por rota
Collection imoveisPorRota = null;
imoveisPorRota = this.pesquisarImoveisPorRota(rota, sistemaParametro);
if (imoveisPorRota != null && !imoveisPorRota.isEmpty()) {
Iterator imovelporRotaIterator = imoveisPorRota.iterator();
while (imovelporRotaIterator.hasNext()) {
// cria um array de objetos para pegar os parametros de
// retorno da pesquisa
Object[] arrayImoveis = (Object[]) imovelporRotaIterator.next();
/*
* Alterado por Raphael Rossiter em 27/09/2007
*/
// Imovel imovel = this
// .criarImovelApartirDadosPorLeituraConvencional(arrayImoveisPorRota);
// instancia um im�vel
Imovel imovel = new Imovel();
if (arrayImoveis[0] != null) {
// seta o id no imovel
imovel.setId((Integer) arrayImoveis[0]);
}
if (arrayImoveis[1] != null) {
// instancia uma localidade para ser setado no im�vel
Localidade localidade = new Localidade();
localidade.setId((Integer) arrayImoveis[1]);
localidade.setDescricao((String) arrayImoveis[30]);
imovel.setLocalidade(localidade);
}
if (arrayImoveis[2] != null) {
// instancia um setor comercial para ser setado no
// im�vel
SetorComercial setorComercial = new SetorComercial();
setorComercial.setCodigo(Integer.parseInt(arrayImoveis[2]
.toString()));
imovel.setSetorComercial(setorComercial);
}
Quadra quadra = new Quadra();
if (arrayImoveis[3] != null) {
// instancia uma quadra para ser setado no im�vel
Integer numeroQuadra = (Integer) arrayImoveis[3];
quadra.setNumeroQuadra(numeroQuadra);
imovel.setQuadra(quadra);
}
if (arrayImoveis[4] != null) {
// seta o lote no im�vel
imovel
.setLote(Short.parseShort(arrayImoveis[4]
.toString()));
}
if (arrayImoveis[5] != null) {
// seta o lote no im�vel
imovel.setSubLote(Short.parseShort(arrayImoveis[5]
.toString()));
}
if (arrayImoveis[34] != null) {
// seta numero sequencial rota
imovel.setNumeroSequencialRota((Integer) arrayImoveis[34]);
}
if (arrayImoveis[6] != null) {
// instancia uma imovel perfil para ser setado no
// im�vel
ImovelPerfil imovelPerfil = new ImovelPerfil();
imovelPerfil.setId((Integer) arrayImoveis[6]);
imovel.setImovelPerfil(imovelPerfil);
}
LigacaoAgua ligacaoAgua = new LigacaoAgua();
if (arrayImoveis[7] != null) {
// instancia uma liga��o agua para ser setado no
// im�vel
ligacaoAgua.setId((Integer) arrayImoveis[7]);
ligacaoAgua.setNumeroLacre((String) arrayImoveis[32]);
}
// instancia um hidrometro instala��o historico para ser
// colocado na ligacao agua
HidrometroInstalacaoHistorico hidrometroInstalacaoHistoricoLigacaoAgua = new HidrometroInstalacaoHistorico();
if (arrayImoveis[8] != null) {
hidrometroInstalacaoHistoricoLigacaoAgua
.setId((Integer) arrayImoveis[8]);
MedicaoTipo medicaoTipo = new MedicaoTipo();
medicaoTipo.setId((Integer) arrayImoveis[26]);
hidrometroInstalacaoHistoricoLigacaoAgua
.setMedicaoTipo(medicaoTipo);
if (arrayImoveis[33] != null) {
Hidrometro hidrometro = new Hidrometro();
hidrometro.setNumero((String) arrayImoveis[33]);
if (arrayImoveis[42] != null) {
hidrometro
.setNumeroDigitosLeitura((Short) arrayImoveis[42]);
}
hidrometroInstalacaoHistoricoLigacaoAgua
.setHidrometro(hidrometro);
}
ligacaoAgua
.setHidrometroInstalacaoHistorico(hidrometroInstalacaoHistoricoLigacaoAgua);
}
imovel.setLigacaoAgua(ligacaoAgua);
// //instancia um hidrometro instala��o historico para
// ser colocado no imovel
HidrometroInstalacaoHistorico hidrometroInstalacaoHistoricoImovel = new HidrometroInstalacaoHistorico();
if (arrayImoveis[9] != null) {
hidrometroInstalacaoHistoricoImovel
.setId((Integer) arrayImoveis[9]);
MedicaoTipo medicaoTipo = new MedicaoTipo();
medicaoTipo.setId((Integer) arrayImoveis[27]);
hidrometroInstalacaoHistoricoImovel
.setMedicaoTipo(medicaoTipo);
if (arrayImoveis[36] != null) {
Hidrometro hidrometro = new Hidrometro();
hidrometro.setNumero((String) arrayImoveis[36]);
if (arrayImoveis[43] != null) {
hidrometro
.setNumeroDigitosLeitura((Short) arrayImoveis[43]);
}
hidrometroInstalacaoHistoricoImovel
.setHidrometro(hidrometro);
}
imovel
.setHidrometroInstalacaoHistorico(hidrometroInstalacaoHistoricoImovel);
}
// instancia a rota
Rota rotaImovel = new Rota();
if (arrayImoveis[10] != null) {
// seta o id da rota
rotaImovel.setId((Integer) arrayImoveis[10]);
}
if (arrayImoveis[11] != null) {
// seta o indicador fiscalizador suprimido na rota
rotaImovel.setIndicadorFiscalizarSuprimido(Short
.parseShort(arrayImoveis[11].toString()));
}
if (arrayImoveis[12] != null) {
// seta o indicador fiscalizador cortado na rota
rotaImovel.setIndicadorFiscalizarCortado(Short
.parseShort(arrayImoveis[12].toString()));
}
if (arrayImoveis[13] != null) {
// seta o indicador gerar fiscalizacao na rota
rotaImovel.setIndicadorGerarFiscalizacao(Short
.parseShort(arrayImoveis[13].toString()));
}
if (arrayImoveis[14] != null) {
// seta o indicador fgerar falsa faixa na rota
rotaImovel.setIndicadorGerarFalsaFaixa(Short
.parseShort(arrayImoveis[14].toString()));
}
if (arrayImoveis[15] != null) {
// seta o percentual geracao fiscalizacao na rota
rotaImovel
.setPercentualGeracaoFiscalizacao((BigDecimal) (arrayImoveis[15]));
}
if (arrayImoveis[16] != null) {
// seta o percentual geracao faixa falsa na rota
rotaImovel
.setPercentualGeracaoFaixaFalsa((BigDecimal) (arrayImoveis[16]));
}
if (arrayImoveis[35] != null) {
// seta o codigo da rota
rotaImovel.setCodigo((Short) (arrayImoveis[35]));
}
if(rota.getLeiturista() != null ){
rotaImovel.setLeiturista(rota.getLeiturista());
}
// instancia a empresa
Empresa empresa = new Empresa();
if (arrayImoveis[17] != null) {
// seta o id na empresa
empresa.setId((Integer) arrayImoveis[17]);
}
if (arrayImoveis[18] != null) {
// seta a descri��o abreviada na empresa
empresa.setDescricaoAbreviada(arrayImoveis[18].toString());
}
if (arrayImoveis[19] != null) {
// seta email da empresa
empresa.setEmail(arrayImoveis[19].toString());
}
// seta a empresa na rota
rotaImovel.setEmpresa(empresa);
// instancia o faturamento
FaturamentoGrupo faturamentoGrupo = new FaturamentoGrupo();
if (arrayImoveis[20] != null) {
// seta o id no faturamentGrupo
faturamentoGrupo.setId((Integer) arrayImoveis[20]);
}
if (arrayImoveis[21] != null) {
// seta o descri��o no faturamentGrupo
faturamentoGrupo.setDescricao((String) arrayImoveis[21]);
}
// seta o faturamento na rota
rotaImovel.setFaturamentoGrupo(faturamentoGrupo);
if (arrayImoveis[22] != null) {
// instancia a liga��o esgoto situa��o
LeituraTipo leituraTipo = new LeituraTipo();
// seta o id na liga��o esgoto situa��o
leituraTipo.setId((Integer) arrayImoveis[22]);
// seta a liga��o esgoto situa��o no imovel
rotaImovel.setLeituraTipo(leituraTipo);
}
// seta a rota na quadra
quadra.setRota(rotaImovel);
// seta a quadra no imovel
imovel.setQuadra(quadra);
if (arrayImoveis[23] != null) {
// instancia a liga��o agua situa��o
LigacaoAguaSituacao ligacaoAguaSituacao = new LigacaoAguaSituacao();
// seta o id na liga��o agua situa��o
ligacaoAguaSituacao.setId((Integer) arrayImoveis[23]);
ligacaoAguaSituacao.setDescricao((String) arrayImoveis[31]);
ligacaoAguaSituacao
.setDescricaoAbreviado((String) arrayImoveis[37]);
ligacaoAguaSituacao
.setIndicadorFaturamentoSituacao((Short) arrayImoveis[46]);
// seta a liga��o agua situa��o no imovel
imovel.setLigacaoAguaSituacao(ligacaoAguaSituacao);
}
if (arrayImoveis[24] != null) {
// instancia a liga��o esgoto situa��o
LigacaoEsgotoSituacao ligacaoEsgotoSituacao = new LigacaoEsgotoSituacao();
// seta o id na liga��o esgoto situa��o
ligacaoEsgotoSituacao.setId((Integer) arrayImoveis[24]);
ligacaoEsgotoSituacao
.setIndicadorFaturamentoSituacao((Short) arrayImoveis[47]);
// seta a liga��o esgoto situa��o no imovel
imovel.setLigacaoEsgotoSituacao(ligacaoEsgotoSituacao);
}
if (arrayImoveis[25] != null) {
// instancia o faturamento situacao tipo
FaturamentoSituacaoTipo faturamentoSituacaoTipo = new FaturamentoSituacaoTipo();
// seta o id no faturamento situacao tipo
faturamentoSituacaoTipo
.setIndicadorParalisacaoLeitura((Short) arrayImoveis[25]);
// seta a liga��o esgoto situa��o no imovel
imovel.setFaturamentoSituacaoTipo(faturamentoSituacaoTipo);
}
if (arrayImoveis[28] != null) {
// instancia o gerencia regional
GerenciaRegional gerenciaRegional = new GerenciaRegional();
// seta o id no faturamento situacao tipo
gerenciaRegional.setId((Integer) arrayImoveis[28]);
gerenciaRegional.setNome((String) arrayImoveis[29]);
// seta a liga��o esgoto situa��o no imovel
imovel.getLocalidade()
.setGerenciaRegional(gerenciaRegional);
}
if (arrayImoveis[38] != null) {
// Logradouro Bairro
LogradouroBairro logradouroBairro = new LogradouroBairro();
// Logradouro
Logradouro logradouro = new Logradouro();
logradouro.setId((Integer) arrayImoveis[38]);
logradouro.setNome((String) arrayImoveis[39]);
if (arrayImoveis[45] != null) {
LogradouroTipo logradouroTipo = new LogradouroTipo();
logradouroTipo
.setDescricaoAbreviada((String) arrayImoveis[45]);
logradouro.setLogradouroTipo(logradouroTipo);
}
if (arrayImoveis[44] != null) {
LogradouroTitulo logradouroTitulo = new LogradouroTitulo();
logradouroTitulo
.setDescricaoAbreviada((String) arrayImoveis[44]);
logradouro.setLogradouroTitulo(logradouroTitulo);
}
logradouroBairro.setLogradouro(logradouro);
imovel.setLogradouroBairro(logradouroBairro);
}
if (arrayImoveis[40] != null) {
// Numero Imovel
imovel.setNumeroImovel((String) arrayImoveis[40]);
}
if (arrayImoveis[41] != null) {
// Complemento Imovel
imovel.setComplementoEndereco((String) arrayImoveis[41]);
}
if (arrayImoveis[48] != null) {
// Bairro
Bairro bairro = new Bairro();
bairro.setId((Integer) arrayImoveis[48]);
imovel.getLogradouroBairro().setBairro(bairro);
}
if (arrayImoveis[49] != null) {
// Nome Bairro
imovel.getLogradouroBairro().getBairro().setNome(
(String) arrayImoveis[49]);
}
// adiciona na cole��o de imoveis
objetosImoveis.add(imovel);
arrayImoveis = null;
}
}
imoveisPorRota.clear();
imoveisPorRota = null;
return objetosImoveis;
}
/**
* [UC00083] Gerar Dados para Leitura
* @author R�mulo Aur�lio
* @throws ControladorException
* @date 07/07/2008
*/
public Collection pesquisarImoveisPorRota(Rota rota,
SistemaParametro sistemaParametro) throws ControladorException {
Collection imoveisPorRota = new ArrayList();
/*
* Caso a rota n�o esteja com o indicador de rota alternativa ativo; a pesquisa
* dos im�veis ser� feita a partir de sua quadra.
*/
if (!rota.getIndicadorRotaAlternativa().equals(ConstantesSistema.SIM)){
try {
// recupera todos os im�veis da cole��o de rotas do tipo ROL
imoveisPorRota = repositorioMicromedicao
.pesquisarImoveisParaLeituraPorColecaoRotaCAER(rota,
rota.getLeituraTipo().getId());
} catch (ErroRepositorioException e) {
e.printStackTrace();
}
}/*
* Caso contr�rio; a pesquisa dos im�veis ser� feita a partir da rota alternativa
* que estar� associada ao mesmo.
*/
else{
try {
imoveisPorRota = repositorioMicromedicao
.pesquisarImoveisPorRotaAlternativaCAER(rota, sistemaParametro.getNomeAbreviadoEmpresa());
} catch (ErroRepositorioException ex) {
sessionContext.setRollbackOnly();
throw new ControladorException("erro.sistema", ex);
}
}
return imoveisPorRota;
}
/**
* Author: R�mulo Aur�lio [UC0083] - Gerar Dados para Leitura
*
* @param objetosImoveis
* @return
*/
public Collection verificarImoveisParaSerGerados(Collection objetosImoveis) {
// Instancia uma cole��o que ser� usada para gerar o arquivo
// txt.
Collection<Imovel> imoveisParaSerGerados = new ArrayList();
Iterator imovelIterator = objetosImoveis.iterator();
while (imovelIterator.hasNext()) {
// Recupera o imovel da cole��o
Imovel imovel = (Imovel) imovelIterator.next();
// variavel respons�vel para entrar em uma das 4 condic�es
// abaixo
boolean achouImovel = false;
// [SF0002] - Verificar situa��o especial de faturamento
// caso no imovel o faturamento situa��o grupo seja diferente de
// nulo e
// igual a leitura
// n�o realizada ent�o n�o seleciona o imovel caso contrario
// seleciona.
if (imovel.getFaturamentoSituacaoTipo() == null
|| !imovel
.getFaturamentoSituacaoTipo()
.equals(
FaturamentoSituacaoTipo.INDICADOR_PARALIZACAO_LEITURA_NAO_REALIZADA)) {
if (!achouImovel) {
// modificado por Fl�vio Leonardo a pedido de Rosana,Aryed e
// Eduardo
// � pra sair no rol todos os imoveis que tiverem hidrometro
// independente do indicador de situacao do faturamento
// Verifica se a situa��o da liga��o agua � diferente de
// nulo
// Se for verifica se est� ligado ou cortado
// if (imovel.getLigacaoAguaSituacao() != null
// &&
// imovel.getLigacaoAguaSituacao().getIndicadorFaturamentoSituacao()
// != null
// &&
// (imovel.getLigacaoAguaSituacao().getIndicadorFaturamentoSituacao().equals(
// LigacaoAguaSituacao.FATURAMENTO_ATIVO))) {
// Se for ligado ou cortado ent�o
// Verifica se a liga��o agua � diferente de nulo
// se for verifica se o id da liga��o agua � igual
// ao id do imovel e se o id do hist�rico da instala��o do
// hidrometro
// � diferente de null
if (imovel.getLigacaoAgua() != null
&& imovel.getLigacaoAgua().getId() != null
&& (imovel.getLigacaoAgua().getId().equals(
imovel.getId())
&& imovel.getLigacaoAgua()
.getHidrometroInstalacaoHistorico() != null && imovel
.getLigacaoAgua()
.getHidrometroInstalacaoHistorico().getId() != null)) {
imoveisParaSerGerados.add(imovel);
achouImovel = true;
}
// }
}
if (!achouImovel) {
// Verifica se a situa��o da liga��o esgoto � diferente de
// nulo
// Se for verifica se est� ligado
if (imovel.getLigacaoEsgotoSituacao() != null
&& imovel.getLigacaoEsgotoSituacao()
.getIndicadorFaturamentoSituacao() != null
&& (imovel.getLigacaoEsgotoSituacao()
.getIndicadorFaturamentoSituacao()
.equals(LigacaoEsgotoSituacao.FATURAMENTO_ATIVO))) {
// Verifica se o id do hidrometro historico � diferente
// de
// nulo na tabela imovel
if (imovel.getHidrometroInstalacaoHistorico() != null
&& imovel.getHidrometroInstalacaoHistorico()
.getId() != null) {
imoveisParaSerGerados.add(imovel);
achouImovel = true;
}
}
}
if (!achouImovel) {
// Verifica se a situa��o da liga��o agua � diferente de
// nulo
// Se for verifica se est� suprimido
if (imovel.getLigacaoAguaSituacao() != null
&& imovel.getLigacaoAguaSituacao().getId() != null
&& imovel.getLigacaoAguaSituacao().getId().equals(
LigacaoAguaSituacao.SUPRIMIDO)) {
// verifica se o indicador de fiscaliza��o suprimido �
// diferente de nulo se for verifica se est� ativo
if (imovel.getQuadra().getRota()
.getIndicadorFiscalizarSuprimido() != null
&& imovel.getQuadra().getRota()
.getIndicadorFiscalizarSuprimido()
.equals(Rota.INDICADOR_SUPRIMIDO_ATIVO)) {
imoveisParaSerGerados.add(imovel);
achouImovel = true;
}
}
}
if (!achouImovel) {
// Verifica se a situa��o da liga��o agua � diferente de
// nulo Se for verifica se est� cortado
if ((imovel.getLigacaoAguaSituacao() != null && imovel
.getLigacaoAguaSituacao().getId() != null)
&& (imovel.getLigacaoAguaSituacao().getId()
.equals(LigacaoAguaSituacao.CORTADO))) {
// Se for cortado ent�o verifica se a liga��o agua �
// diferente de nulo
// se for verifica se o id da liga��o agua � igual ao id
// do
// imovel e se o id do hist�rico da instala��o do
// hidrometro
// � null
if (imovel.getLigacaoAgua() != null
&& imovel.getLigacaoAgua().getId() != null
&& (imovel.getLigacaoAgua().getId().equals(
imovel.getId()) && (imovel
.getLigacaoAgua()
.getHidrometroInstalacaoHistorico() == null || imovel
.getLigacaoAgua()
.getHidrometroInstalacaoHistorico()
.getId() == null))) {
// verifica se o indicador de fiscaliza��o cortado �
// diferente de nulo se for verifica se est� ativo
if (imovel.getQuadra().getRota()
.getIndicadorFiscalizarCortado() != null
&& imovel
.getQuadra()
.getRota()
.getIndicadorFiscalizarCortado()
.equals(
Rota.INDICADOR_CORTADO_ATIVO)) {
imoveisParaSerGerados.add(imovel);
achouImovel = true;
}
}
}
}
}
}
return imoveisParaSerGerados;
}
}