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.EnvioEmail;
import gcom.cadastro.empresa.Empresa;
import gcom.cadastro.imovel.Categoria;
import gcom.cadastro.imovel.Imovel;
import gcom.cadastro.imovel.ImovelPerfil;
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.hidrometro.HidrometroInstalacaoHistorico;
import gcom.micromedicao.leitura.LeituraTipo;
import gcom.micromedicao.medicao.MedicaoHistorico;
import gcom.micromedicao.medicao.MedicaoTipo;
import gcom.util.ControladorException;
import gcom.util.ErroRepositorioException;
import gcom.util.Util;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collection;
import java.util.GregorianCalendar;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
import javax.ejb.EJBException;
import javax.ejb.SessionBean;
/**
* Controlador Faturamento COMPESA
*
* @author Raphael Rossiter
* @date 25/07/2006
*/
public class ControladorMicromedicaoCOMPESASEJB extends ControladorMicromedicao implements SessionBean {
private static final long serialVersionUID = 1L;
//==============================================================================================================
// M�TODOS EXCLUSIVOS DA COMPESA
//==============================================================================================================
/**
* [UC0083] - Gerar Dados para Leitura [SF0001] - Gerar Arquivo Convencional
* ou Rela��o Autor: S�vio Luiz, Pedro Alexandre Data: 21/12/2005,
* 15/10/2007
*/
/**
* @param colecaoRota
* @param anoMesCorrente
* @param idGrupoFaturamentoRota
* @param idFuncionalidadeIniciada
* @return
* @throws ControladorException
*/
public Collection gerarDadosPorLeituraMicroColetor(Collection colecaoRota,
Integer anoMesCorrente, Integer idGrupoFaturamentoRota,SistemaParametro sistemaParametro,
int idFuncionalidadeIniciada) throws ControladorException {
int idUnidadeIniciada = 0;
try {
Integer idLeituraTipo = LeituraTipo.MICROCOLETOR;
// -------------------------
//
// Registrar o in�cio do processamento da Unidade de
// Processamento
// do Batch
//
// -------------------------
// idUnidadeIniciada = getControladorBatch()
// .iniciarUnidadeProcessamentoBatch(idFuncionalidadeIniciada,
// UnidadeProcessamento.FUNCIONALIDADE, 0);
int numeroIndice = 0;
int quantidadeRegistrosPesquisa = 1000;
boolean flagTerminou = false;
/*SistemaParametro sistemaParametro = null;
try {
sistemaParametro = repositorioUtil
.pesquisarParametrosDoSistema();
} catch (ErroRepositorioException e) {
throw new ControladorException("erro.sistema", e);
} */
// inicializa uma cole��o de imoveis
Collection objetosImoveis = new ArrayList();
EnvioEmail envioEmail = getControladorCadastro()
.pesquisarEnvioEmail(
EnvioEmail.GERAR_DADOS_PARA_LEITURA_MICRO_COLETOR);
while (!flagTerminou) {
// cria uma cole��o de im�vel por rota
Collection imoveisPorRota = null;
try {
// recupera todos os im�veis da cole��o de rotas do tipo
// convencional
imoveisPorRota = repositorioMicromedicao
.pesquisarImoveisPorRotaOrdenadoPorInscricao(
colecaoRota, idLeituraTipo, numeroIndice, sistemaParametro.getNomeAbreviadoEmpresa());
} catch (ErroRepositorioException e) {
throw new ControladorException("erro.sistema", e);
}
if (imoveisPorRota != null && !imoveisPorRota.isEmpty()) {
if (imoveisPorRota.size() < quantidadeRegistrosPesquisa) {
flagTerminou = true;
} else {
numeroIndice = numeroIndice
+ quantidadeRegistrosPesquisa;
}
Iterator imovelporRotaIterator = imoveisPorRota.iterator();
while (imovelporRotaIterator.hasNext()) {
// cria um array de objetos para pegar os parametros
// de
// retorno da pesquisa
Object[] arrayImoveisPorRota = (Object[]) imovelporRotaIterator
.next();
// instancia um im�vel
Imovel imovel = new Imovel();
if (arrayImoveisPorRota[0] != null) {
// seta o id no imovel
imovel.setId((Integer) arrayImoveisPorRota[0]);
}
if (arrayImoveisPorRota[1] != null) {
// instancia uma localidade para ser setado no
// im�vel
Localidade localidade = new Localidade();
localidade.setId((Integer) arrayImoveisPorRota[1]);
imovel.setLocalidade(localidade);
}
if (arrayImoveisPorRota[2] != null) {
// instancia um setor comercial para ser setado
// no
// im�vel
SetorComercial setorComercial = new SetorComercial();
setorComercial
.setCodigo(Integer
.parseInt(arrayImoveisPorRota[2]
.toString()));
imovel.setSetorComercial(setorComercial);
}
Quadra quadra = new Quadra();
if (arrayImoveisPorRota[3] != null) {
// instancia uma quadra para ser setado no
// im�vel
Integer numeroQuadra = (Integer) arrayImoveisPorRota[3];
quadra.setNumeroQuadra(numeroQuadra);
imovel.setQuadra(quadra);
}
if (arrayImoveisPorRota[4] != null) {
// seta o lote no im�vel
imovel.setLote(Short
.parseShort(arrayImoveisPorRota[4]
.toString()));
}
if (arrayImoveisPorRota[5] != null) {
// seta o lote no im�vel
imovel.setSubLote(Short
.parseShort(arrayImoveisPorRota[5]
.toString()));
}
if (arrayImoveisPorRota[6] != null) {
// instancia uma imovel perfil para ser setado
// no
// im�vel
ImovelPerfil imovelPerfil = new ImovelPerfil();
imovelPerfil
.setId((Integer) arrayImoveisPorRota[6]);
imovel.setImovelPerfil(imovelPerfil);
}
LigacaoAgua ligacaoAgua = new LigacaoAgua();
if (arrayImoveisPorRota[7] != null) {
// instancia uma liga��o agua para ser setado no
// im�vel
ligacaoAgua.setId((Integer) arrayImoveisPorRota[7]);
}
// instancia um hidrometro instala��o historico para
// ser
// colocado na ligacao agua
HidrometroInstalacaoHistorico hidrometroInstalacaoHistoricoLigacaoAgua = new HidrometroInstalacaoHistorico();
if (arrayImoveisPorRota[8] != null) {
hidrometroInstalacaoHistoricoLigacaoAgua
.setId((Integer) arrayImoveisPorRota[8]);
MedicaoTipo medicaoTipo = new MedicaoTipo();
medicaoTipo
.setId((Integer) arrayImoveisPorRota[26]);
hidrometroInstalacaoHistoricoLigacaoAgua
.setMedicaoTipo(medicaoTipo);
ligacaoAgua
.setHidrometroInstalacaoHistorico(hidrometroInstalacaoHistoricoLigacaoAgua);
}
imovel.setLigacaoAgua(ligacaoAgua);
// //instancia um hidrometro instala��o historico
// para
// ser colocado no imovel
HidrometroInstalacaoHistorico hidrometroInstalacaoHistoricoImovel = new HidrometroInstalacaoHistorico();
if (arrayImoveisPorRota[9] != null) {
hidrometroInstalacaoHistoricoImovel
.setId((Integer) arrayImoveisPorRota[9]);
MedicaoTipo medicaoTipo = new MedicaoTipo();
medicaoTipo
.setId((Integer) arrayImoveisPorRota[27]);
hidrometroInstalacaoHistoricoImovel
.setMedicaoTipo(medicaoTipo);
imovel
.setHidrometroInstalacaoHistorico(hidrometroInstalacaoHistoricoImovel);
}
// instancia a rota
Rota rotaImovel = new Rota();
if (arrayImoveisPorRota[10] != null) {
// seta o id da rota
rotaImovel.setId((Integer) arrayImoveisPorRota[10]);
}
if (arrayImoveisPorRota[11] != null) {
// seta o indicador fiscalizador suprimido na
// rota
rotaImovel.setIndicadorFiscalizarSuprimido(Short
.parseShort(arrayImoveisPorRota[11]
.toString()));
}
if (arrayImoveisPorRota[12] != null) {
// seta o indicador fiscalizador cortado na rota
rotaImovel.setIndicadorFiscalizarCortado(Short
.parseShort(arrayImoveisPorRota[12]
.toString()));
}
if (arrayImoveisPorRota[13] != null) {
// seta o indicador gerar fiscalizacao na rota
rotaImovel.setIndicadorGerarFiscalizacao(Short
.parseShort(arrayImoveisPorRota[13]
.toString()));
}
if (arrayImoveisPorRota[14] != null) {
// seta o indicador fgerar falsa faixa na rota
rotaImovel.setIndicadorGerarFalsaFaixa(Short
.parseShort(arrayImoveisPorRota[14]
.toString()));
}
if (arrayImoveisPorRota[15] != null) {
// seta o percentual geracao fiscalizacao na
// rota
rotaImovel
.setPercentualGeracaoFiscalizacao((BigDecimal) (arrayImoveisPorRota[15]));
}
if (arrayImoveisPorRota[16] != null) {
// seta o percentual geracao faixa falsa na rota
rotaImovel
.setPercentualGeracaoFaixaFalsa((BigDecimal) (arrayImoveisPorRota[16]));
}
// instancia a empresa
Empresa empresa = new Empresa();
if (arrayImoveisPorRota[17] != null) {
// seta o id na empresa
empresa.setId((Integer) arrayImoveisPorRota[17]);
}
if (arrayImoveisPorRota[18] != null) {
// seta a descri��o abreviada na empresa
empresa
.setDescricaoAbreviada(arrayImoveisPorRota[18]
.toString());
}
if (arrayImoveisPorRota[19] != null) {
// seta email da empresa
empresa
.setEmail(arrayImoveisPorRota[19]
.toString());
}
if (arrayImoveisPorRota[28] != null) {
// seta email da empresa
empresa.setDescricao(arrayImoveisPorRota[28]
.toString());
}
// seta a empresa na rota
rotaImovel.setEmpresa(empresa);
// instancia o faturamento
FaturamentoGrupo faturamentoGrupo = new FaturamentoGrupo();
if (arrayImoveisPorRota[20] != null) {
// seta o id no faturamentGrupo
faturamentoGrupo
.setId((Integer) arrayImoveisPorRota[20]);
}
if (arrayImoveisPorRota[21] != null) {
// seta o descri��o no faturamentGrupo
faturamentoGrupo
.setDescricao((String) arrayImoveisPorRota[21]);
}
// seta o faturamento na rota
rotaImovel.setFaturamentoGrupo(faturamentoGrupo);
if (arrayImoveisPorRota[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) arrayImoveisPorRota[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 (arrayImoveisPorRota[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) arrayImoveisPorRota[23]);
ligacaoAguaSituacao
.setIndicadorFaturamentoSituacao((Short) arrayImoveisPorRota[33]);
// seta a liga��o agua situa��o no imovel
imovel.setLigacaoAguaSituacao(ligacaoAguaSituacao);
}
if (arrayImoveisPorRota[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) arrayImoveisPorRota[24]);
ligacaoEsgotoSituacao
.setIndicadorFaturamentoSituacao((Short) arrayImoveisPorRota[34]);
// seta a liga��o esgoto situa��o no imovel
imovel
.setLigacaoEsgotoSituacao(ligacaoEsgotoSituacao);
}
if (arrayImoveisPorRota[25] != null) {
// instancia o faturamento situacao tipo
FaturamentoSituacaoTipo faturamentoSituacaoTipo = new FaturamentoSituacaoTipo();
// seta o id no faturamento situacao tipo
faturamentoSituacaoTipo
.setIndicadorParalisacaoLeitura((Short) arrayImoveisPorRota[25]);
// seta a liga��o esgoto situa��o no imovel
imovel
.setFaturamentoSituacaoTipo(faturamentoSituacaoTipo);
}
// adiciona na cole��o de imoveis
objetosImoveis.add(imovel);
}
} else {
flagTerminou = true;
}
}
// 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 Autor:
* S�vio Luiz Data: 21/12/2005
*/
// 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) {
// 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;
}
}
}
}
}
}
String idGrupoFaturamento = null;
if (imoveisParaSerGerados != null
&& !imoveisParaSerGerados.isEmpty()) {
String nomeEmpresaAbreviado = null;
// pega o id da empresa do objeto imovel.
Integer idEmpresaOld = null;
// cria uma variavel do tipo boolean para saber se � a mesma
// empresa
// ou
// outra empresa.
boolean mesmaEmpresa = false;
// � usado para na faixa falsa saber se o hidrometro foi
// selecionado
// ou
// n�o
boolean hidrometroSelecionado = false;
// � usado para criar o header do arquivo de leitura
boolean headerArquivo = true;
boolean headerFiscalizacao = true;
Integer quantidadeRegistros = 0;
Integer quantidadeImoveis = 0;
Integer quantidadeRegistrosFiscalizacao = 0;
String quantidadeRegistrosString = null;
String quantidadeRegistrosFiscalizacaoString = null;
// String quantidadeRegistrosFiscalizacaoString = null;
StringBuilder arquivoTxt = new StringBuilder();
StringBuilder arquivoHeaderFiscalizacao = new StringBuilder();
StringBuilder arquivoTxtFiscalizacao = new StringBuilder();
// cria as strings para mandar para o email
String emailReceptor = null;
String emailRemetente = null;
String tituloMensagem = null;
String corpoMensagem = null;
Calendar dataCalendar = new GregorianCalendar();
String ano = null;
String mes = null;
String dia = null;
ListIterator imovelParaSerGeradoIterator = ((List) imoveisParaSerGerados)
.listIterator(0);
Imovel imovelParaSerGerado = null;
// ListIterator imovelParaSerGeradoIterator = (ListIterator)
// imoveisParaSerGerados
// .iterator();
while (imovelParaSerGeradoIterator.hasNext()) {
boolean ligacaoAgua = false;
boolean ligacaoPoco = false;
// cria uma string builder para adicionar no arquivo que
// ser�
// mandado para a empresa
// como tamb�m para ser adicionado no arquivo de
// fiscaliza��o.
StringBuilder arquivoTxtLinha = new StringBuilder();
imovelParaSerGerado = (Imovel) imovelParaSerGeradoIterator
.next();
// se for para criar o header do arquivo
if (headerArquivo) {
//*******************************************
// -------------------------
//
// Registrar o in�cio do processamento da Unidade de
// Processamento
// do Batch
//
// -------------------------
idUnidadeIniciada = getControladorBatch()
.iniciarUnidadeProcessamentoBatch(idFuncionalidadeIniciada,
UnidadeProcessamento.ROTA, imovelParaSerGerado.getQuadra()
.getRota().getId());
// pega o id da empresa do objeto imovel.
idEmpresaOld = imovelParaSerGerado.getQuadra()
.getRota().getEmpresa().getId();
nomeEmpresaAbreviado = completaString(
imovelParaSerGerado.getQuadra().getRota()
.getEmpresa().getDescricaoAbreviada(),
1);
idGrupoFaturamento = completaString(imovelParaSerGerado
.getQuadra().getRota().getFaturamentoGrupo()
.getId().toString(), 2);
ano = "" + dataCalendar.get(Calendar.YEAR);
mes = "" + (dataCalendar.get(Calendar.MONTH) + 1);
dia = "" + dataCalendar.get(Calendar.DAY_OF_MONTH);
mes = Util.adicionarZerosEsquedaNumero(2, mes);
dia = Util.adicionarZerosEsquedaNumero(2, dia);
arquivoTxt.append(nomeEmpresaAbreviado + "T"
+ idGrupoFaturamento + anoMesCorrente + dia
+ mes + ano + "000000");
// manda o header do arquivo para falso
headerArquivo = false;
arquivoHeaderFiscalizacao.append(arquivoTxt);
arquivoTxt.append(System.getProperty("line.separator"));
}
// Verifica se a empresa da rota que est� na cole��o � igual
// a
// empresa anterior
if (imovelParaSerGerado.getQuadra().getRota().getEmpresa()
.getId().equals(idEmpresaOld)) {
mesmaEmpresa = true;
} else {
mesmaEmpresa = false;
}
if (mesmaEmpresa) {
// incrementa a quantidade de registros
quantidadeRegistros = quantidadeRegistros + 1;
quantidadeImoveis = quantidadeImoveis + 1;
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;
}
// inscri��o do imovel
arquivoTxtLinha.append(Util
.adicionarZerosEsquedaNumero(3, ""
+ imovelParaSerGerado.getLocalidade()
.getId()));
arquivoTxtLinha.append(Util
.adicionarZerosEsquedaNumero(3, ""
+ imovelParaSerGerado
.getSetorComercial()
.getCodigo()));
arquivoTxtLinha.append(Util
.adicionarZerosEsquedaNumero(3, ""
+ imovelParaSerGerado.getQuadra()
.getNumeroQuadra()));
arquivoTxtLinha.append(Util
.adicionarZerosEsquedaNumero(4, ""
+ +imovelParaSerGerado.getLote()));
arquivoTxtLinha.append(Util
.adicionarZerosEsquedaNumero(3, ""
+ imovelParaSerGerado.getSubLote()));
// 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("")) {
arquivoTxtLinha
.append(Util
.completaString(
""
+ imovelParaSerGerado
.getLigacaoAgua()
.getHidrometroInstalacaoHistorico()
.getMedicaoTipo()
.getId(),
1));
}
// 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("")) {
arquivoTxtLinha
.append(Util
.completaString(
""
+ imovelParaSerGerado
.getLigacaoAgua()
.getHidrometroInstalacaoHistorico()
.getMedicaoTipo()
.getId(),
1));
}
} 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("")) {
arquivoTxtLinha
.append(Util
.completaString(
""
+ imovelParaSerGerado
.getHidrometroInstalacaoHistorico()
.getMedicaoTipo()
.getId(),
1));
}
}
}
}
// id do grupo de faturamento
arquivoTxtLinha
.append(Util.adicionarZerosEsquedaNumero(2, ""
+ imovelParaSerGerado.getQuadra()
.getRota()
.getFaturamentoGrupo().getId()));
// matricula do im�vel
arquivoTxtLinha.append(Util
.adicionarZerosEsquedaNumero(8, ""
+ +imovelParaSerGerado.getId()));
// id do perfil do imovel
arquivoTxtLinha.append(Util
.adicionarZerosEsquedaNumero(1, ""
+ imovelParaSerGerado.getImovelPerfil()
.getId()));
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
arquivoTxtLinha.append(completaString(
nomeClienteUsuario, 25));
// 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
arquivoTxtLinha.append(completaString(
enderecoImovel, 50));
} else {
arquivoTxtLinha.append(completaString("", 50));
}
// 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;
if (ligacaoAgua && ligacaoPoco) {
Object[] dadosHidroemtroNumeroLeitura = pesquisarDadosHidrometroTipoLigacaoAgua(imovelParaSerGerado);
dadosHidrometro = (StringBuilder) dadosHidroemtroNumeroLeitura[0];
numeroDigitosHidrometro = (Short) dadosHidroemtroNumeroLeitura[1];
arquivoTxtLinha.append(dadosHidrometro);
// caso n�o seja
} else {
// caso seja tipo liga��o agua cria a string com
// tipo
// liga��o agua
if (ligacaoAgua) {
Object[] dadosHidroemtroNumeroLeitura = pesquisarDadosHidrometroTipoLigacaoAgua(imovelParaSerGerado);
dadosHidrometro = (StringBuilder) dadosHidroemtroNumeroLeitura[0];
numeroDigitosHidrometro = (Short) dadosHidroemtroNumeroLeitura[1];
arquivoTxtLinha.append(dadosHidrometro);
// caso n�o seja
} else {
// caso seja tipo liga��o po�o cria a string com
// tipo
// liga��o po�o
if (ligacaoPoco) {
Object[] dadosHidroemtroNumeroLeitura = pesquisarDadosHidrometroTipoPoco(imovelParaSerGerado);
dadosHidrometro = (StringBuilder) dadosHidroemtroNumeroLeitura[0];
numeroDigitosHidrometro = (Short) dadosHidroemtroNumeroLeitura[1];
arquivoTxtLinha.append(dadosHidrometro);
// 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[] dadosHidroemtroNumeroLeitura = pesquisarDadosHidrometroTipoPoco(imovelParaSerGerado);
dadosHidrometro = (StringBuilder) dadosHidroemtroNumeroLeitura[0];
numeroDigitosHidrometro = (Short) dadosHidroemtroNumeroLeitura[1];
arquivoTxtLinha.append(dadosHidrometro);
}
}
}
// id da ligacao agua situa��o
if (imovelParaSerGerado.getLigacaoAguaSituacao() != null
&& imovelParaSerGerado.getLigacaoAguaSituacao()
.getId() != null) {
// Situa��o da liga��o de agua
arquivoTxtLinha.append(completaString(""
+ imovelParaSerGerado
.getLigacaoAguaSituacao().getId(),
1));
} else {
// Situa��o da liga��o de agua
arquivoTxtLinha.append(completaString("", 1));
}
// id da ligacao esgoto situa��o
if (imovelParaSerGerado.getLigacaoEsgotoSituacao() != null
&& imovelParaSerGerado
.getLigacaoEsgotoSituacao().getId() != null) {
// Situa��o de liga��o esgoto
arquivoTxtLinha.append(completaString(
""
+ imovelParaSerGerado
.getLigacaoEsgotoSituacao()
.getId(), 1));
} else {
// Situa��o de liga��o esgoto
arquivoTxtLinha.append(completaString("", 1));
}
// pega as descri��es das categorias do imovel
Categoria categoria = getControladorImovel()
.obterDescricoesCategoriaImovel(
imovelParaSerGerado);
// quantidade de economias
arquivoTxtLinha.append(completaString(categoria
.getDescricaoAbreviada(), 3));
// [UC0086 - Obter quantidade de economias]
int quantidadeEconomias = getControladorImovel()
.obterQuantidadeEconomias(imovelParaSerGerado);
// quantidade de economias
arquivoTxtLinha.append(Util
.adicionarZerosEsquedaNumero(3, ""
+ quantidadeEconomias));
// 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) {
arquivoTxtLinha.append(Util
.adicionarZerosEsquedaNumero(6, ""
+ leituraAnterior));
// caso contrario coloca a string com zeros
} else {
arquivoTxtLinha.append(Util
.adicionarZerosEsquedaNumero(6, ""));
}
// Faixa de leitura esperada
Object[] faixaInicialFinal = pesquisarFaixaEsperadaOuFalsa(
imovelParaSerGerado, dadosHidrometro,
leituraAnterior, medicaoHistorico,
idMedicaoTipo, sistemaParametro,
hidrometroSelecionado, numeroDigitosHidrometro);
StringBuilder faixaInicialFinalString = (StringBuilder) faixaInicialFinal[0];
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());
}
arquivoTxtLinha.append(faixaInicialFinalString);
arquivoTxt.append(arquivoTxtLinha);
// Gerar Fiscaliza��o de leitura
// Rota rota1 =
// imovelParaSerGerado.getQuadra().getRota();
Short indicadorLeituraParametro = sistemaParametro
.getIndicadorUsoFiscalizadorLeitura();
Short indicadorGerarFiscalizacao = imovelParaSerGerado
.getQuadra().getRota()
.getIndicadorGerarFiscalizacao();
boolean gerarArquivoFiscalizacao = false;
if (indicadorLeituraParametro
.equals(SistemaParametro.INDICADOR_USO_FISCALIZADOR_LEITURA_SISTEMA_PARAMETRO)
|| indicadorLeituraParametro
.equals(SistemaParametro.INDICADOR_USO_FISCALIZADOR_LEITURA_ROTA)) {
if (indicadorGerarFiscalizacao != null
&& indicadorGerarFiscalizacao
.equals(Rota.INDICADOR_GERAR_FISCALIZACAO)) {
if (headerFiscalizacao) {
arquivoTxtFiscalizacao
.append(arquivoHeaderFiscalizacao);
arquivoTxtFiscalizacao.append(System
.getProperty("line.separator"));
}
headerFiscalizacao = false;
quantidadeRegistrosFiscalizacao = quantidadeRegistrosFiscalizacao + 1;
gerarArquivoFiscalizacao = true;
// caso seja indicado que seja gerado
// fiscaliza��o
// de
// leitura
// verifica se foi gerado a faixa falsa se foi
// ent�o pega o txt da leitura (arquivoTxt)
// mudando
// so a
// faixa de leitura
// para a esperada.
if (faixaFalsaLeitura) {
arquivoTxtLinha.replace(139, 145, Util
.adicionarZerosEsquedaNumero(6, ""
+ faixaInicialEsperada));
arquivoTxtLinha.replace(145, 151, Util
.adicionarZerosEsquedaNumero(6, ""
+ faixaFinalEsperada));
arquivoTxtFiscalizacao
.append(arquivoTxtLinha);
} else {
arquivoTxtFiscalizacao
.append(arquivoTxtLinha);
}
arquivoTxtFiscalizacao.append(System
.getProperty("line.separator"));
}
}
arquivoTxt.append(System.getProperty("line.separator"));
// caso seja liga��o de agua e de po�o ent�o �
// necessario
// criar
// duas linhas txt
// uma para agua e outra para po�o mudando s� os dados
// do
// hidrometro
if (ligacaoAgua && ligacaoPoco) {
// cria uma variavel para pegar os dados do
// arquivoTxt
StringBuilder arquivoTxtLigacaoPoco = new StringBuilder();
arquivoTxtLigacaoPoco.append(arquivoTxtLinha);
// dados do hidrometro tipo poco
Object[] dadosHidroemtroNumeroLeitura = pesquisarDadosHidrometroTipoPoco(imovelParaSerGerado);
dadosHidrometro = (StringBuilder) dadosHidroemtroNumeroLeitura[0];
numeroDigitosHidrometro = (Short) dadosHidroemtroNumeroLeitura[1];
// muda os dados do hidrometro do arquivoTxt para os
// dados
// do hidrometro
// tipo po�o
arquivoTxtLigacaoPoco.replace(103, 125,
dadosHidrometro.toString());
if (imovelParaSerGerado
.getHidrometroInstalacaoHistorico().getId() != null
&& imovelParaSerGerado
.getHidrometroInstalacaoHistorico()
.getId().equals("")) {
arquivoTxtLigacaoPoco
.replace(
16,
17,
""
+ imovelParaSerGerado
.getHidrometroInstalacaoHistorico()
.getMedicaoTipo()
.getId());
}
// Leitura anterior
// liga��o agua recebe falso, pois ja foi calculado
// para
// tipo agua e agora � preciso
// ver a leitura anterior do tipo poco
ligacaoAgua = false;
String leituraAnteriorTipoPoco = null;
Object[] retornoTipoPoco = pesquisaLeituraAnterior(
ligacaoAgua, ligacaoPoco, anoMesAnterior,
imovelParaSerGerado);
// verifica se a leitura anterior � diferente de
// nula
if (retornoTipoPoco[0] != null) {
leituraAnteriorTipoPoco = retornoTipoPoco[0]
.toString();
}
// verifica se a medicao historico � diferente de
// nula
if (retornoTipoPoco[1] != null) {
medicaoHistorico = (MedicaoHistorico) retornoTipoPoco[1];
}
// verifica se o id da medi��o tipo � diferente de
// nula
if (retornoTipoPoco[2] != null) {
idMedicaoTipo = (Integer) retornoTipoPoco[2];
}
// verifica se a leitura anterior � diferente de
// nula
// para
// ser
// jogado no arquivo
// txt
if (leituraAnteriorTipoPoco != null) {
// muda os dados do hidrometro para os dados do
// hidrometro tipo po�o
arquivoTxtLigacaoPoco.replace(133, 139,
leituraAnteriorTipoPoco);
} else {
// muda os dados do hidrometro para os dados do
// hidrometro tipo po�o
arquivoTxtLigacaoPoco.replace(133, 139, Util
.adicionarZerosEsquedaNumero(6, ""));
}
// Faixa de leitura esperada
Object[] faixaInicialFinalTipoPoco = pesquisarFaixaEsperadaOuFalsa(
imovelParaSerGerado, dadosHidrometro,
leituraAnteriorTipoPoco, medicaoHistorico,
idMedicaoTipo, sistemaParametro,
hidrometroSelecionado,
numeroDigitosHidrometro);
faixaInicialFinalString = (StringBuilder) faixaInicialFinalTipoPoco[0];
hidrometroSelecionado = Boolean
.parseBoolean(faixaInicialFinal[1]
.toString());
faixaFalsaLeitura = Boolean
.parseBoolean(faixaInicialFinal[2]
.toString());
faixaInicialEsperada = 0;
faixaFinalEsperada = 0;
if (faixaFalsaLeitura) {
faixaInicialEsperada = Integer
.parseInt(faixaInicialFinal[3]
.toString());
faixaFinalEsperada = Integer
.parseInt(faixaInicialFinal[4]
.toString());
}
// muda os dados do hidrometro para os dados do
// hidrometro tipo po�o
arquivoTxtLigacaoPoco.replace(139, 151,
faixaInicialFinalString.toString());
arquivoTxt.append(arquivoTxtLigacaoPoco);
arquivoTxt.append(System
.getProperty("line.separator"));
quantidadeRegistros = quantidadeRegistros + 1;
// Gerar Fiscaliza��o de leitura
// caso seja indicado que seja gerado fiscaliza��o
// de
// leitura
// verifica se foi gerado a faixa falsa se foi
// ent�o pega o txt da leitura (arquivoTxt) mudando
// so a
// faixa de leitura
// para a esperada.
if (gerarArquivoFiscalizacao) {
quantidadeRegistrosFiscalizacao = quantidadeRegistrosFiscalizacao + 1;
if (faixaInicialEsperada != 0
&& faixaFinalEsperada != 0) {
arquivoTxtLigacaoPoco.replace(139, 145,
Util.adicionarZerosEsquedaNumero(6,
"" + faixaInicialEsperada));
arquivoTxtLigacaoPoco.replace(145, 151,
Util.adicionarZerosEsquedaNumero(6,
"" + faixaFinalEsperada));
arquivoTxtFiscalizacao
.append(arquivoTxtLigacaoPoco);
} else {
arquivoTxtFiscalizacao
.append(arquivoTxtLigacaoPoco);
}
arquivoTxtFiscalizacao.append(System
.getProperty("line.separator"));
}
}
} else {
// cria o header final da string para mandar para a
// empresa.
Imovel ultimoImovelEmpresa = (Imovel) ((List) imoveisParaSerGerados)
.get(quantidadeImoveis - 1);
ano = "" + dataCalendar.get(Calendar.YEAR);
mes = "" + (dataCalendar.get(Calendar.MONTH) + 1);
dia = "" + dataCalendar.get(Calendar.DAY_OF_MONTH);
mes = Util.adicionarZerosEsquedaNumero(2, mes);
dia = Util.adicionarZerosEsquedaNumero(2, dia);
nomeEmpresaAbreviado = completaString(
ultimoImovelEmpresa.getQuadra().getRota()
.getEmpresa().getDescricaoAbreviada(),
1);
idGrupoFaturamento = completaString(ultimoImovelEmpresa
.getQuadra().getRota().getFaturamentoGrupo()
.getId().toString(), 2);
quantidadeRegistrosString = Util
.adicionarZerosEsquedaNumero(6, ""
+ quantidadeRegistros);
quantidadeRegistrosFiscalizacaoString = Util
.adicionarZerosEsquedaNumero(6, ""
+ quantidadeRegistrosFiscalizacao);
arquivoTxt.append(nomeEmpresaAbreviado + "T"
+ idGrupoFaturamento + anoMesCorrente + dia
+ mes + ano + quantidadeRegistrosString);
if (!headerFiscalizacao) {
/* quantidadeRegistrosFiscalizacaoString = */Util
.adicionarZerosEsquedaNumero(6, ""
+ quantidadeRegistrosFiscalizacao);
arquivoTxtFiscalizacao.append(nomeEmpresaAbreviado
+ "T" + idGrupoFaturamento + anoMesCorrente
+ dia + mes + ano
+ quantidadeRegistrosFiscalizacaoString);
headerFiscalizacao = true;
}
// manda o header do arquivo para true,pois agora ser�
// outra
// empresa e precisa-se de um outro header
headerArquivo = true;
headerFiscalizacao = true;
if (imovelParaSerGerado.getQuadra().getRota()
.getEmpresa().getEmail() != null) {
emailReceptor = imovelParaSerGerado.getQuadra()
.getRota().getEmpresa().getEmail().trim();
} else {
emailReceptor = envioEmail.getEmailReceptor();
}
if (sistemaParametro.getDescricaoEmail() != null) {
emailRemetente = sistemaParametro
.getDescricaoEmail().trim();
} else {
emailRemetente = envioEmail.getEmailReceptor();
}
tituloMensagem = imovelParaSerGerado.getQuadra()
.getRota().getFaturamentoGrupo().getDescricao();
corpoMensagem = imovelParaSerGerado.getQuadra()
.getRota().getFaturamentoGrupo().getDescricao();
String nomeArquivo = ultimoImovelEmpresa.getQuadra()
.getRota().getEmpresa().getDescricao()
+ "_GR" + idGrupoFaturamento + ano + mes;
if (arquivoTxt != null && arquivoTxt.length() != 0) {
// chama o metodo que cria o txt e manda para o
// e-mail
// arquivo de leitura que ser� mandado para a
// empresa.
mandaArquivoLeituraEmail(arquivoTxt, emailReceptor,
emailRemetente, tituloMensagem,
corpoMensagem, nomeArquivo);
}
if (arquivoTxtFiscalizacao != null
&& arquivoTxtFiscalizacao.length() != 0) {
// chama o metodo que cria o txt e manda para o
// e-mail
// arquivo de leitura de fiscaliza��o que ser�
// mandado
// para
// a
// compesa.
mandaArquivoLeituraEmail(arquivoTxtFiscalizacao,
emailReceptor, emailRemetente,
tituloMensagem + " - FISCALIZACAO LEITURA",
corpoMensagem, nomeArquivo);
}
// pega o id da empresa do objeto imovel.
idEmpresaOld = imovelParaSerGerado.getQuadra()
.getRota().getEmpresa().getId();
// manda a string para formar o txt e mandar para o
// e-mail
// retorna o iterator para criar a primeira linha do
// proximo
// txt.
imovelParaSerGeradoIterator.previous();
// cria outra string para come�ar a criar o txt.
// limpa os campos para serem usados na pr�xima empresa
arquivoTxt = new StringBuilder();
quantidadeRegistros = 0;
quantidadeRegistrosFiscalizacao = 0;
arquivoTxtFiscalizacao = new StringBuilder();
arquivoHeaderFiscalizacao = new StringBuilder();
}
// Encerra a unidade de Faturamento
getControladorBatch().encerrarUnidadeProcessamentoBatch(null,
idUnidadeIniciada, false);
}
// cria o header final da ultima string para mandar para a
// empresa
Imovel ultimoImovelEmpresa = (Imovel) ((List) imoveisParaSerGerados)
.get(quantidadeImoveis - 1);
ano = "" + dataCalendar.get(Calendar.YEAR);
mes = "" + (dataCalendar.get(Calendar.MONTH) + 1);
dia = "" + dataCalendar.get(Calendar.DAY_OF_MONTH);
mes = Util.adicionarZerosEsquedaNumero(2, "" + mes);
dia = Util.adicionarZerosEsquedaNumero(2, "" + dia);
nomeEmpresaAbreviado = completaString(ultimoImovelEmpresa
.getQuadra().getRota().getEmpresa()
.getDescricaoAbreviada(), 1);
idGrupoFaturamento = completaString(ultimoImovelEmpresa
.getQuadra().getRota().getFaturamentoGrupo().getId()
.toString(), 2);
quantidadeRegistrosString = Util.adicionarZerosEsquedaNumero(6,
"" + quantidadeRegistros);
arquivoTxt.append(nomeEmpresaAbreviado + "T"
+ idGrupoFaturamento + anoMesCorrente + dia + mes + ano
+ quantidadeRegistrosString);
if (!headerFiscalizacao) {
quantidadeRegistrosFiscalizacaoString = Util
.adicionarZerosEsquedaNumero(6, ""
+ quantidadeRegistrosFiscalizacao);
arquivoTxtFiscalizacao.append(nomeEmpresaAbreviado + "T"
+ idGrupoFaturamento + anoMesCorrente + ano + mes
+ dia + quantidadeRegistrosFiscalizacaoString);
headerFiscalizacao = true;
}
if (imovelParaSerGerado.getQuadra().getRota().getEmpresa()
.getEmail() != null) {
emailReceptor = imovelParaSerGerado.getQuadra().getRota()
.getEmpresa().getEmail().trim();
} else {
emailReceptor = envioEmail.getEmailReceptor();
}
if (sistemaParametro.getDescricaoEmail() != null) {
emailRemetente = sistemaParametro.getDescricaoEmail()
.trim();
} else {
emailRemetente = envioEmail.getEmailRemetente();
}
tituloMensagem = imovelParaSerGerado.getQuadra().getRota()
.getFaturamentoGrupo().getDescricao();
corpoMensagem = imovelParaSerGerado.getQuadra().getRota()
.getFaturamentoGrupo().getDescricao();
String nomeArquivo = ultimoImovelEmpresa.getQuadra().getRota()
.getEmpresa().getDescricao()
+ "_GR" + idGrupoFaturamento + ano + mes;
// chama o metodo que cria o txt e manda para o e-mail
// arquivo de leitura que ser� mandado para a empresa.
if (arquivoTxt != null && arquivoTxt.length() != 0) {
mandaArquivoLeituraEmail(arquivoTxt, emailReceptor,
emailRemetente, tituloMensagem, corpoMensagem,
nomeArquivo);
}
// chama o metodo que cria o txt e manda para o e-mail
// arquivo de leitura de fiscaliza��o que ser� mandado para a
// compesa.
if (arquivoTxtFiscalizacao != null
&& arquivoTxtFiscalizacao.length() != 0) {
mandaArquivoLeituraEmail(arquivoTxtFiscalizacao,
emailReceptor, emailRemetente,
tituloMensagem + " - FISCALIZACAO LEITURA",
corpoMensagem, nomeArquivo);
}
}
// atualiza a data e a hora da realiza��o da atividade com a data e
// a hora correntes
try {
repositorioMicromedicao
.atualizarFaturamentoAtividadeCronograma(
idGrupoFaturamentoRota, anoMesCorrente);
} catch (ErroRepositorioException e) {
throw new ControladorException("erro.sistema", e);
}
} catch (Exception e) { // Este catch serve para interceptar
// 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
e.printStackTrace();
getControladorBatch().encerrarUnidadeProcessamentoBatch(e,
idUnidadeIniciada, true);
throw new EJBException(e);
}
return null;
}
}