package gcom.faturamento;
import gcom.arrecadacao.ControladorArrecadacaoLocal;
import gcom.arrecadacao.ControladorArrecadacaoLocalHome;
import gcom.atendimentopublico.ligacaoagua.LigacaoAgua;
import gcom.atendimentopublico.ligacaoagua.LigacaoAguaSituacao;
import gcom.atendimentopublico.ligacaoesgoto.LigacaoEsgoto;
import gcom.atendimentopublico.ligacaoesgoto.LigacaoEsgotoSituacao;
import gcom.batch.ControladorBatchLocal;
import gcom.batch.ControladorBatchLocalHome;
import gcom.cadastro.cliente.Cliente;
import gcom.cadastro.cliente.ClienteConta;
import gcom.cadastro.cliente.ClienteImovel;
import gcom.cadastro.cliente.ClienteRelacaoTipo;
import gcom.cadastro.cliente.FiltroCliente;
import gcom.cadastro.endereco.ControladorEnderecoLocal;
import gcom.cadastro.endereco.ControladorEnderecoLocalHome;
import gcom.cadastro.endereco.Logradouro;
import gcom.cadastro.endereco.LogradouroBairro;
import gcom.cadastro.geografico.Bairro;
import gcom.cadastro.imovel.Categoria;
import gcom.cadastro.imovel.ControladorImovelLocal;
import gcom.cadastro.imovel.ControladorImovelLocalHome;
import gcom.cadastro.imovel.Imovel;
import gcom.cadastro.imovel.ImovelContaEnvio;
import gcom.cadastro.imovel.ImovelPerfil;
import gcom.cadastro.imovel.PocoTipo;
import gcom.cadastro.imovel.Subcategoria;
import gcom.cadastro.localidade.FiltroLocalidade;
import gcom.cadastro.localidade.FiltroQuadraFace;
import gcom.cadastro.localidade.GerenciaRegional;
import gcom.cadastro.localidade.Localidade;
import gcom.cadastro.localidade.Quadra;
import gcom.cadastro.localidade.QuadraFace;
import gcom.cadastro.localidade.SetorComercial;
import gcom.cadastro.sistemaparametro.SistemaParametro;
import gcom.cobranca.CobrancaDocumento;
import gcom.cobranca.CobrancaDocumentoItem;
import gcom.cobranca.ControladorCobrancaLocal;
import gcom.cobranca.ControladorCobrancaLocalHome;
import gcom.cobranca.IRepositorioCobranca;
import gcom.cobranca.bean.CalcularValorDataVencimentoAnteriorHelper;
import gcom.fachada.Fachada;
import gcom.faturamento.bean.EmitirContaHelper;
import gcom.faturamento.consumotarifa.ConsumoTarifa;
import gcom.faturamento.conta.Conta;
import gcom.faturamento.credito.CreditoRealizado;
import gcom.faturamento.debito.DebitoCobrado;
import gcom.micromedicao.ArquivoTextoRoteiroEmpresa;
import gcom.micromedicao.ArquivoTextoRoteiroEmpresaDivisao;
import gcom.micromedicao.ControladorMicromedicaoLocal;
import gcom.micromedicao.ControladorMicromedicaoLocalHome;
import gcom.micromedicao.FiltroArquivoTextoRoteiroEmpresa;
import gcom.micromedicao.FiltroRota;
import gcom.micromedicao.Leiturista;
import gcom.micromedicao.Rota;
import gcom.micromedicao.ServicoTipoCelular;
import gcom.micromedicao.SituacaoTransmissaoLeitura;
import gcom.micromedicao.consumo.ConsumoAnormalidade;
import gcom.micromedicao.consumo.ConsumoAnormalidadeAcao;
import gcom.micromedicao.consumo.ConsumoHistorico;
import gcom.micromedicao.consumo.FiltroConsumoAnormalidade;
import gcom.micromedicao.consumo.FiltroConsumoAnormalidadeAcao;
import gcom.micromedicao.consumo.LigacaoTipo;
import gcom.micromedicao.hidrometro.Hidrometro;
import gcom.micromedicao.hidrometro.HidrometroInstalacaoHistorico;
import gcom.micromedicao.hidrometro.HidrometroLocalInstalacao;
import gcom.micromedicao.hidrometro.HidrometroProtecao;
import gcom.micromedicao.leitura.FiltroLeituraAnormalidade;
import gcom.micromedicao.leitura.LeituraAnormalidade;
import gcom.micromedicao.leitura.LeituraSituacao;
import gcom.micromedicao.medicao.FiltroMedicaoHistorico;
import gcom.micromedicao.medicao.MedicaoHistorico;
import gcom.micromedicao.medicao.MedicaoTipo;
import gcom.seguranca.acesso.usuario.Usuario;
import gcom.util.ConstantesJNDI;
import gcom.util.ConstantesSistema;
import gcom.util.ControladorException;
import gcom.util.ControladorUtilLocal;
import gcom.util.ControladorUtilLocalHome;
import gcom.util.Criptografia;
import gcom.util.ErroCriptografiaException;
import gcom.util.ErroRepositorioException;
import gcom.util.ServiceLocator;
import gcom.util.ServiceLocatorException;
import gcom.util.SistemaException;
import gcom.util.Util;
import gcom.util.ZipUtil;
import gcom.util.filtro.ParametroNaoNulo;
import gcom.util.filtro.ParametroNulo;
import gcom.util.filtro.ParametroSimples;
import java.io.BufferedWriter;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
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.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import java.util.zip.GZIPOutputStream;
import javax.ejb.CreateException;
import javax.ejb.SessionContext;
/**
* Esta classe tem como finalidade encapsular o caso de uso [UC0745] -
* GerarArquivoTextoFaturamento, gerando maior facilidade na manuten��o do
* mesmo.
*
* @author Raphael Rossiter
* @date 30/04/2008
*/
public class UC0745GerarArquivoTextoFaturamento {
private static UC0745GerarArquivoTextoFaturamento instancia;
private IRepositorioFaturamento repositorioFaturamento;
private IRepositorioCobranca repositorioCobranca;
private SessionContext sessionContext;
private UC0745GerarArquivoTextoFaturamento(
IRepositorioFaturamento repositorioFaturamento,
SessionContext sessionContext,
IRepositorioCobranca repositorioCobranca) {
this.repositorioFaturamento = repositorioFaturamento;
this.repositorioCobranca = repositorioCobranca;
this.sessionContext = sessionContext;
}
public static UC0745GerarArquivoTextoFaturamento getInstancia(
IRepositorioFaturamento repositorioFaturamento,
SessionContext sessionContext,
IRepositorioCobranca repositorioCobranca) {
if (instancia == null) {
instancia = new UC0745GerarArquivoTextoFaturamento(
repositorioFaturamento, sessionContext, repositorioCobranca);
}
return instancia;
}
/**
* Controlador Util
*
* @author Raphael Rossiter
* @date 30/04/2008
*
* @return ControladorUtilLocal
*/
private ControladorUtilLocal getControladorUtil() {
ControladorUtilLocalHome localHome = null;
ControladorUtilLocal local = null;
ServiceLocator locator = null;
try {
locator = ServiceLocator.getInstancia();
localHome = (ControladorUtilLocalHome) locator
.getLocalHome(ConstantesJNDI.CONTROLADOR_UTIL_SEJB);
// guarda a referencia de um objeto capaz de fazer chamadas �
// objetos remotamente
local = localHome.create();
return local;
} catch (CreateException e) {
throw new SistemaException(e);
} catch (ServiceLocatorException e) {
throw new SistemaException(e);
}
}
/**
* Controlador Endereco
*
* @author Raphael Rossiter
* @date 30/04/2008
*
* @return ControladorEnderecoLocal
*/
private ControladorEnderecoLocal getControladorEndereco() {
ControladorEnderecoLocalHome localHome = null;
ControladorEnderecoLocal local = null;
ServiceLocator locator = null;
try {
locator = ServiceLocator.getInstancia();
localHome = (ControladorEnderecoLocalHome) locator
.getLocalHome(ConstantesJNDI.CONTROLADOR_ENDERECO_SEJB);
// guarda a referencia de um objeto capaz de fazer chamadas �
// objetos remotamente
local = localHome.create();
return local;
} catch (CreateException e) {
throw new SistemaException(e);
} catch (ServiceLocatorException e) {
throw new SistemaException(e);
}
}
/**
* Controlador Imovel
*
* @author Raphael Rossiter
* @date 30/04/2008
*
* @return ControladorImovelLocal
*/
protected ControladorImovelLocal getControladorImovel() {
ControladorImovelLocalHome localHome = null;
ControladorImovelLocal local = null;
ServiceLocator locator = null;
try {
locator = ServiceLocator.getInstancia();
localHome = (ControladorImovelLocalHome) locator
.getLocalHome(ConstantesJNDI.CONTROLADOR_IMOVEL_SEJB);
// guarda a referencia de um objeto capaz de fazer chamadas �
// objetos remotamente
local = localHome.create();
return local;
} catch (CreateException e) {
throw new SistemaException(e);
} catch (ServiceLocatorException e) {
throw new SistemaException(e);
}
}
/**
* Controlador Faturamento
*
* @author Raphael Rossiter
* @date 30/04/2008
*
* @return ControladorFaturamentoLocal
*/
private ControladorFaturamentoLocal getControladorFaturamento() {
ControladorFaturamentoLocalHome localHome = null;
ControladorFaturamentoLocal local = null;
ServiceLocator locator = null;
try {
locator = ServiceLocator.getInstancia();
localHome = (ControladorFaturamentoLocalHome) locator
.getLocalHomePorEmpresa(ConstantesJNDI.CONTROLADOR_FATURAMENTO_SEJB);
// guarda a referencia de um objeto capaz de fazer chamadas �
// objetos remotamente
local = localHome.create();
return local;
} catch (CreateException e) {
throw new SistemaException(e);
} catch (ServiceLocatorException e) {
throw new SistemaException(e);
}
}
/**
* Controlador Micromedicao
*
* @author Raphael Rossiter
* @date 30/04/2008
*
* @return ControladorMicromedicaoLocal
*/
protected ControladorMicromedicaoLocal getControladorMicromedicao() {
ControladorMicromedicaoLocalHome localHome = null;
ControladorMicromedicaoLocal local = null;
ServiceLocator locator = null;
try {
locator = ServiceLocator.getInstancia();
localHome = (ControladorMicromedicaoLocalHome) locator
.getLocalHomePorEmpresa(ConstantesJNDI.CONTROLADOR_MICROMEDICAO_SEJB);
// guarda a referencia de um objeto capaz de fazer chamadas �
// objetos remotamente
local = localHome.create();
return local;
} catch (CreateException e) {
throw new SistemaException(e);
} catch (ServiceLocatorException e) {
throw new SistemaException(e);
}
}
/**
* Controlador Cobranca
*
* @author Raphael Rossiter
* @date 30/04/2008
*
* @return ControladorCobrancaLocal
*/
protected ControladorCobrancaLocal getControladorCobranca() {
ControladorCobrancaLocalHome localHome = null;
ControladorCobrancaLocal local = null;
ServiceLocator locator = null;
try {
locator = ServiceLocator.getInstancia();
localHome = (ControladorCobrancaLocalHome) locator
.getLocalHomePorEmpresa(ConstantesJNDI.CONTROLADOR_COBRANCA_SEJB);
// guarda a referencia de um objeto capaz de fazer chamadas �
// objetos remotamente
local = localHome.create();
return local;
} catch (CreateException e) {
throw new SistemaException(e);
} catch (ServiceLocatorException e) {
throw new SistemaException(e);
}
}
/**
* Controlador Arrecadacao
*
* @author Raphael Rossiter
* @date 30/04/2008
*
* @return ControladorArrecadacaoLocal
*/
private ControladorArrecadacaoLocal getControladorArrecadacao() {
ControladorArrecadacaoLocalHome localHome = null;
ControladorArrecadacaoLocal local = null;
ServiceLocator locator = null;
try {
locator = ServiceLocator.getInstancia();
localHome = (ControladorArrecadacaoLocalHome) locator
.getLocalHomePorEmpresa(ConstantesJNDI.CONTROLADOR_ARRECADACAO_SEJB);
local = localHome.create();
return local;
} catch (CreateException e) {
throw new SistemaException(e);
} catch (ServiceLocatorException e) {
throw new SistemaException(e);
}
}
/**
* Controlador Batch
*
* @author hugo Leonardo
* @date 16/06/2010
*
* @return ControladorBatchLocal
*/
protected ControladorBatchLocal getControladorBatch() {
ControladorBatchLocalHome localHome = null;
ControladorBatchLocal local = null;
// pega a inst�ncia do ServiceLocator.
ServiceLocator locator = null;
try {
locator = ServiceLocator.getInstancia();
localHome = (ControladorBatchLocalHome) locator
.getLocalHome(ConstantesJNDI.CONTROLADOR_BATCH_SEJB);
// guarda a referencia de um objeto capaz de fazer chamadas �
// objetos remotamente
local = localHome.create();
return local;
} catch (CreateException e) {
throw new SistemaException(e);
} catch (ServiceLocatorException e) {
throw new SistemaException(e);
}
}
/**
* [UC0745] - Gerar Arquivo Texto para Faturamento
*
* [FS0005] - Verificar exist�ncia do arquivo texto por rota
*
* @author Raphael Rossiter, Hugo Leonardo
* @date 17/04/2008, 16/06/2010
*
* @param idRota
* @param anoMesReferencia
* @return boolean
* @throws ControladorException
*/
public boolean verificarExistenciaArquivoTextoRota(Integer idRota,
Integer anoMesReferencia) throws ControladorException {
boolean retorno = true;
Object[] dadosArquivoTextoRoteiroEmpresa = null;
try {
dadosArquivoTextoRoteiroEmpresa = repositorioFaturamento
.pesquisarArquivoTextoRoteiroEmpresa(idRota,
anoMesReferencia);
/*
* Caso j� exista um arquivo texto para rota e m�s de referencia
* informados e com situa��o da transmiss�o de leitura igual a
* dispon�vel: Remover o registro encontrado.
*/
if (dadosArquivoTextoRoteiroEmpresa != null) {
Integer idArquivoTexto = (Integer) dadosArquivoTextoRoteiroEmpresa[0];
Integer idSituacaoTransmissaoLeitura = (Integer) dadosArquivoTextoRoteiroEmpresa[1];
if (idSituacaoTransmissaoLeitura
.equals(SituacaoTransmissaoLeitura.DISPONIVEL)) {
// REMOVENDO REGISTRO
this.repositorioFaturamento
.deletaArquivoTextoRoteiroEmpresaDivisao(idArquivoTexto);
repositorioFaturamento
.deletarArquivoTextoRoteiroEmpresa(idArquivoTexto);
} else {
retorno = false;
}
}
} catch (ErroRepositorioException e) {
// sessionContext.setRollbackOnly();
throw new ControladorException("erro.sistema", e);
}
return retorno;
}
/**
* [UC0745] - Gerar Arquivo Texto para Faturamento
*
* [FS0002] - Verificar Situa��o Especial de Faturamento
*
* @author Raphael Rossiter
* @date 17/04/2008
*
* @param idRota
* @param numeroPaginas
* @param quantidadeRegistros
* @throws ControladorException
*/
@SuppressWarnings({ "unchecked", "rawtypes" })
public Object[] pesquisarImovelGerarArquivoTextoFaturamento(Rota rota,
int numeroIndice, int quantidadeRegistros,
SistemaParametro sistemaParametro,
FaturamentoGrupo faturamentoGrupo, Integer idImovelCondominio)
throws ControladorException {
Object[] retorno = new Object[2];
Collection colecaoImoveis = null;
int quantidadeImoveis = 0;
Collection imoveis;
Rota rotaAtual = rota;
if (idImovelCondominio != null && !idImovelCondominio.equals("")) {
rotaAtual = null;
}
/*
* 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 {
imoveis = repositorioFaturamento
.pesquisarImovelGerarArquivoTextoFaturamento(rotaAtual,
numeroIndice, quantidadeRegistros,
sistemaParametro, idImovelCondominio);
} catch (ErroRepositorioException ex) {
sessionContext.setRollbackOnly();
throw new ControladorException("erro.sistema", ex);
}
}
/*
* Caso contr�rio; a pesquisa dos im�veis ser� feita a partir da rota
* alternativa que estar� associada ao mesmo.
*/
else {
try {
imoveis = repositorioFaturamento
.pesquisarImovelGerarArquivoTextoFaturamentoPorRotaAlternativa(
rota, numeroIndice, quantidadeRegistros,
sistemaParametro, idImovelCondominio);
} catch (ErroRepositorioException ex) {
sessionContext.setRollbackOnly();
throw new ControladorException("erro.sistema", ex);
}
}
// Carregando os dados dos im�veis selecionados
if (imoveis != null && !imoveis.isEmpty()) {
Iterator iteratorImoveis = imoveis.iterator();
colecaoImoveis = new ArrayList();
quantidadeImoveis = imoveis.size();
Imovel imovel = null;
while (iteratorImoveis.hasNext()) {
Object[] arrayImovel = (Object[]) iteratorImoveis.next();
imovel = new Imovel();
// ID
imovel.setId((Integer) arrayImovel[23]);
// GERENCIA REGIONAL E LOCALIDADE
GerenciaRegional gerenciaRegional = new GerenciaRegional();
gerenciaRegional.setNome((String) arrayImovel[0]);
gerenciaRegional.setId((Integer) arrayImovel[28]);
Localidade localidade = new Localidade();
localidade.setId((Integer) arrayImovel[1]);
localidade.setDescricao((String) arrayImovel[2]);
localidade.setGerenciaRegional(gerenciaRegional);
imovel.setLocalidade(localidade);
// SETOR_COMERCIAL
SetorComercial setorComercial = new SetorComercial();
setorComercial.setCodigo((Integer) arrayImovel[5]);
if (arrayImovel[26] != null) {
setorComercial.setId((Integer) arrayImovel[26]);
}
imovel.setSetorComercial(setorComercial);
// LEITURISTA
if (arrayImovel[39] != null) {
Leiturista leiturista = rota.getLeiturista();
if (arrayImovel[59] != null) {
Usuario usuario = new Usuario();
usuario.setLogin((String) arrayImovel[59]);
usuario.setSenha((String) arrayImovel[60]);
leiturista.setUsuario(usuario);
}
rota.setLeiturista(leiturista);
}
// GRUPO
rota.setFaturamentoGrupo(faturamentoGrupo);
Quadra quadra = new Quadra();
quadra.setNumeroQuadra((Integer) arrayImovel[6]);
quadra.setRota(rota);
imovel.setQuadra(quadra);
// QUADRA FACE
if (arrayImovel[41] != null) {
QuadraFace quadraFace = new QuadraFace();
quadraFace.setId((Integer) arrayImovel[41]);
if (arrayImovel[42] != null) {
quadraFace
.setNumeroQuadraFace((Integer) arrayImovel[42]);
}
imovel.setQuadraFace(quadraFace);
}
// SEQUENCIAL DA ROTA
if (arrayImovel[27] != null) {
imovel.setNumeroSequencialRota((Integer) arrayImovel[27]);
}
// LOTE E SUBLOTE
imovel.setLote((Short) arrayImovel[7]);
imovel.setSubLote((Short) arrayImovel[8]);
// IMOVEL_NOME E CLIENTES: USUARIO E RESPONSAVEL
imovel.setNomeImovel((String) arrayImovel[3]);
Set colecaoClienteImovel = new HashSet();
if (arrayImovel[4] != null) {
ClienteRelacaoTipo clienteRelacaoTipo = new ClienteRelacaoTipo();
clienteRelacaoTipo.setId(ClienteRelacaoTipo.USUARIO
.intValue());
Cliente clienteUsuario = new Cliente();
clienteUsuario.setNome((String) arrayImovel[10]);
if (arrayImovel[32] != null) {
clienteUsuario.setCpf((String) arrayImovel[32]);
}
if (arrayImovel[33] != null) {
clienteUsuario.setCnpj((String) arrayImovel[33]);
}
clienteUsuario.setId((Integer) arrayImovel[74]);
ClienteImovel clienteImovel = new ClienteImovel();
clienteImovel.setCliente(clienteUsuario);
clienteImovel.setClienteRelacaoTipo(clienteRelacaoTipo);
clienteImovel
.setIndicadorNomeConta((Short) arrayImovel[75]);
colecaoClienteImovel.add(clienteImovel);
}
if (arrayImovel[9] != null) {
ClienteRelacaoTipo clienteRelacaoTipo = new ClienteRelacaoTipo();
clienteRelacaoTipo.setId(ClienteRelacaoTipo.RESPONSAVEL
.intValue());
Cliente clienteResponsavel = new Cliente();
clienteResponsavel.setId((Integer) arrayImovel[9]);
clienteResponsavel.setNome((String) arrayImovel[10]);
clienteResponsavel.setId((Integer) arrayImovel[72]);
ClienteImovel clienteImovel = new ClienteImovel();
clienteImovel.setCliente(clienteResponsavel);
clienteImovel.setClienteRelacaoTipo(clienteRelacaoTipo);
clienteImovel
.setIndicadorNomeConta((Short) arrayImovel[73]);
colecaoClienteImovel.add(clienteImovel);
}
if (colecaoClienteImovel.size() > 0) {
imovel.setClienteImoveis(colecaoClienteImovel);
}
// LIGACAO_AGUA_SITUACAO
if (arrayImovel[11] != null) {
LigacaoAguaSituacao ligacaoAguaSituacao = new LigacaoAguaSituacao();
ligacaoAguaSituacao.setId((Integer) arrayImovel[11]);
ligacaoAguaSituacao
.setIndicadorFaturamentoSituacao((Short) arrayImovel[29]);
ligacaoAguaSituacao
.setIndicadorAbastecimento((Short) arrayImovel[36]);
ligacaoAguaSituacao.setDescricao((String) arrayImovel[38]);
ligacaoAguaSituacao
.setIndicadorConsumoReal((Short) arrayImovel[66]);
ligacaoAguaSituacao
.setNumeroDiasCorte((Integer) arrayImovel[67]);
imovel.setLigacaoAguaSituacao(ligacaoAguaSituacao);
}
// LIGACAO_ESGOTO_SITUACAO
if (arrayImovel[12] != null) {
LigacaoEsgotoSituacao ligacaoEsgotoSituacao = new LigacaoEsgotoSituacao();
ligacaoEsgotoSituacao.setId((Integer) arrayImovel[12]);
ligacaoEsgotoSituacao
.setIndicadorFaturamentoSituacao((Short) arrayImovel[30]);
imovel.setLigacaoEsgotoSituacao(ligacaoEsgotoSituacao);
}
// LIGACAO_ESGOTO - ConsumoMinimo
LigacaoEsgoto ligacaoEsgoto = null;
if (arrayImovel[14] != null) {
ligacaoEsgoto = new LigacaoEsgoto();
ligacaoEsgoto.setConsumoMinimo((Integer) arrayImovel[14]);
// LIGACAO_ESGOTO - DataLigacao
if (arrayImovel[71] != null) {
ligacaoEsgoto.setDataLigacao((Date) arrayImovel[71]);
}
}
// LIGACAO_ESGOTO - Percentual
if (arrayImovel[15] != null) {
if (ligacaoEsgoto != null) {
ligacaoEsgoto
.setPercentualAguaConsumidaColetada((BigDecimal) arrayImovel[15]);
} else {
ligacaoEsgoto = new LigacaoEsgoto();
ligacaoEsgoto
.setPercentualAguaConsumidaColetada((BigDecimal) arrayImovel[15]);
}
}
// percentual alternativo
if (arrayImovel[63] != null) {
if (ligacaoEsgoto != null) {
ligacaoEsgoto
.setPercentualAlternativo((BigDecimal) arrayImovel[63]);
} else {
ligacaoEsgoto = new LigacaoEsgoto();
ligacaoEsgoto
.setPercentualAlternativo((BigDecimal) arrayImovel[63]);
}
}
// consumo percentual alternativo
if (arrayImovel[64] != null) {
if (ligacaoEsgoto != null) {
ligacaoEsgoto
.setNumeroConsumoPercentualAlternativo((Integer) arrayImovel[64]);
} else {
ligacaoEsgoto = new LigacaoEsgoto();
ligacaoEsgoto
.setNumeroConsumoPercentualAlternativo((Integer) arrayImovel[64]);
}
}
imovel.setLigacaoEsgoto(ligacaoEsgoto);
// FATURAMENTO_SITUACAO_TIPO
if (arrayImovel[61] != null) {
FaturamentoSituacaoTipo faturamentoSituacaoTipo = new FaturamentoSituacaoTipo();
faturamentoSituacaoTipo.setId((Integer) arrayImovel[61]);
faturamentoSituacaoTipo
.setIndicadorParalisacaoFaturamento((Short) arrayImovel[16]);
faturamentoSituacaoTipo
.setIndicadorValidoAgua((Short) arrayImovel[17]);
faturamentoSituacaoTipo
.setIndicadorValidoEsgoto((Short) arrayImovel[18]);
faturamentoSituacaoTipo
.setIndicadorParalisacaoLeitura((Short) arrayImovel[65]);
imovel.setFaturamentoSituacaoTipo(faturamentoSituacaoTipo);
}
// IMOVEL_CONDOMINIO
if (arrayImovel[19] != null) {
Imovel imovelCondominio = new Imovel();
imovelCondominio.setId((Integer) arrayImovel[19]);
imovel.setImovelCondominio(imovelCondominio);
}
// INDICADOR_IMOVEL_CONDOMINIO
imovel.setIndicadorImovelCondominio((Short) arrayImovel[20]);
// IMOVEL_PERFIL
ImovelPerfil imovelPerfil = new ImovelPerfil();
imovelPerfil.setId((Integer) arrayImovel[21]);
imovel.setImovelPerfil(imovelPerfil);
// CONSUMO_TARIFA
ConsumoTarifa consumoTarifa = new ConsumoTarifa();
consumoTarifa.setId((Integer) arrayImovel[22]);
if (arrayImovel[25] != null) {
TarifaTipoCalculo tarifaTipoCalculo = new TarifaTipoCalculo();
tarifaTipoCalculo.setId((Integer) arrayImovel[25]);
consumoTarifa.setTarifaTipoCalculo(tarifaTipoCalculo);
}
imovel.setConsumoTarifa(consumoTarifa);
// POCO_TIPO
if (arrayImovel[24] != null) {
PocoTipo pocoTipo = new PocoTipo();
pocoTipo.setId((Integer) arrayImovel[24]);
imovel.setPocoTipo(pocoTipo);
}
// IMOVEL_CONTA_ENVIO
if (arrayImovel[31] != null) {
ImovelContaEnvio imovelContaEnvio = new ImovelContaEnvio();
imovelContaEnvio.setId((Integer) arrayImovel[31]);
imovel.setImovelContaEnvio(imovelContaEnvio);
}
boolean existeHidrometroAgua = false;
if (arrayImovel[37] != null) {
LigacaoAgua ligacaoAgua = new LigacaoAgua();
ligacaoAgua.setId((Integer) arrayImovel[37]);
if (arrayImovel[13] != null) {
ligacaoAgua
.setNumeroConsumoMinimoAgua((Integer) arrayImovel[13]);
}
if (arrayImovel[34] != null) {
HidrometroInstalacaoHistorico hidrometroInstalacaoHistorico = new HidrometroInstalacaoHistorico();
hidrometroInstalacaoHistorico
.setId((Integer) arrayImovel[34]);
// MEDICAO TIPO AGUA
if (arrayImovel[44] != null) {
MedicaoTipo medicaoTipo = new MedicaoTipo();
medicaoTipo.setId((Integer) arrayImovel[44]);
hidrometroInstalacaoHistorico
.setMedicaoTipo(medicaoTipo);
}
// LOCAL INSTALACAO
if (arrayImovel[53] != null) {
HidrometroLocalInstalacao hidrometroLocalInstalacao = new HidrometroLocalInstalacao();
hidrometroLocalInstalacao
.setId((Integer) arrayImovel[53]);
hidrometroInstalacaoHistorico
.setHidrometroLocalInstalacao(hidrometroLocalInstalacao);
}
// DATA INSTALACAO
if (arrayImovel[54] != null) {
hidrometroInstalacaoHistorico
.setDataInstalacao((Date) arrayImovel[54]);
}
// HIDROMETRO PROTECAO
if (arrayImovel[55] != null) {
HidrometroProtecao hidrometroProtecao = new HidrometroProtecao();
hidrometroProtecao.setId((Integer) arrayImovel[55]);
hidrometroInstalacaoHistorico
.setHidrometroProtecao(hidrometroProtecao);
}
existeHidrometroAgua = true;
ligacaoAgua
.setHidrometroInstalacaoHistorico(hidrometroInstalacaoHistorico);
if (arrayImovel[70] != null) {
ligacaoAgua.setDataLigacao((Date) arrayImovel[70]);
}
}
// NUMERO DO LACRE
if (arrayImovel[46] != null) {
ligacaoAgua.setNumeroLacre((String) arrayImovel[46]);
}
ligacaoAgua.setDataCorte((Date) arrayImovel[68]);
imovel.setLigacaoAgua(ligacaoAgua);
}
boolean existeHidrometroPoco = false;
if (arrayImovel[35] != null) {
HidrometroInstalacaoHistorico hidrometroInstalacaoHistorico = new HidrometroInstalacaoHistorico();
hidrometroInstalacaoHistorico
.setId((Integer) arrayImovel[35]);
// MEDICAO TIPO AGUA
if (arrayImovel[45] != null) {
MedicaoTipo medicaoTipo = new MedicaoTipo();
medicaoTipo.setId((Integer) arrayImovel[45]);
hidrometroInstalacaoHistorico
.setMedicaoTipo(medicaoTipo);
}
// LOCAL INSTALACAO
if (arrayImovel[56] != null) {
HidrometroLocalInstalacao hidrometroLocalInstalacao = new HidrometroLocalInstalacao();
hidrometroLocalInstalacao
.setId((Integer) arrayImovel[56]);
hidrometroInstalacaoHistorico
.setHidrometroLocalInstalacao(hidrometroLocalInstalacao);
}
// DATA INSTALACAO
if (arrayImovel[57] != null) {
hidrometroInstalacaoHistorico
.setDataInstalacao((Date) arrayImovel[57]);
}
// HIDROMETRO PROTECAO
if (arrayImovel[58] != null) {
HidrometroProtecao hidrometroProtecao = new HidrometroProtecao();
hidrometroProtecao.setId((Integer) arrayImovel[58]);
hidrometroInstalacaoHistorico
.setHidrometroProtecao(hidrometroProtecao);
}
imovel.setHidrometroInstalacaoHistorico(hidrometroInstalacaoHistorico);
existeHidrometroAgua = true;
}
// NUMERO DE MORADORES
if (arrayImovel[43] != null) {
imovel.setNumeroMorador((Short) arrayImovel[43]);
}
// LOGRADOURO BAIRRO
if (arrayImovel[47] != null) {
LogradouroBairro logradouroBairro = new LogradouroBairro();
logradouroBairro.setId((Integer) arrayImovel[47]);
// LOGRADOURO
if (arrayImovel[48] != null) {
Logradouro logradouro = new Logradouro();
logradouro.setId((Integer) arrayImovel[48]);
logradouro.setNome((String) arrayImovel[49]);
logradouroBairro.setLogradouro(logradouro);
}
// BAIRRO
if (arrayImovel[50] != null) {
Bairro bairro = new Bairro();
bairro.setNome((String) arrayImovel[50]);
logradouroBairro.setBairro(bairro);
}
imovel.setLogradouroBairro(logradouroBairro);
}
// NUMERO DO IMOVEL
if (arrayImovel[51] != null) {
imovel.setNumeroImovel((String) arrayImovel[51]);
}
// COMPLEMENTO ENDERECO
if (arrayImovel[52] != null) {
imovel.setComplementoEndereco((String) arrayImovel[52]);
}
// CODIGO D�BITO AUTOM�TICO
if (arrayImovel[62] != null) {
imovel.setCodigoDebitoAutomatico((Integer) arrayImovel[62]);
}
if (arrayImovel[69] != null) {
imovel.setIndicadorImovelAreaComum((Short) arrayImovel[69]);
}
boolean emitir = true;
if (!sistemaParametro.getCodigoEmpresaFebraban().equals(
SistemaParametro.CODIGO_EMPRESA_FEBRABAN_COSANPA)) {
if (sistemaParametro.getCodigoEmpresaFebraban().equals(
SistemaParametro.CODIGO_EMPRESA_FEBRABAN_CAERN)) {
if (imovel.getImovelContaEnvio() != null
&& (imovel.getImovelContaEnvio().getId()
.equals(ImovelContaEnvio.ENVIAR_CLIENTE_RESPONSAVEL_FINAL_GRUPO))) {
emitir = false;
}
} else {
// SE N�O FOR CAERN, ENT�O � COMPESA OU CAER
if (imovel.getImovelContaEnvio() != null
&& (imovel
.getImovelContaEnvio()
.getId()
.equals(ImovelContaEnvio.ENVIAR_CLIENTE_RESPONSAVEL)
|| imovel
.getImovelContaEnvio()
.getId()
.equals(ImovelContaEnvio.NAO_PAGAVEL_IMOVEL_PAGAVEL_RESPONSAVEL)
|| imovel
.getImovelContaEnvio()
.getId()
.equals(ImovelContaEnvio.ENVIAR_CONTA_BRAILLE) || imovel
.getImovelContaEnvio()
.getId()
.equals(ImovelContaEnvio.ENVIAR_CONTA_BRAILLE_RESPONSAVEL))) {
emitir = false;
}
}
}
if ((imovel.getImovelCondominio() != null
&& imovel.getImovelCondominio().getId() != null && !imovel
.getImovelCondominio().getId().equals(""))
|| imovel.getIndicadorImovelCondominio().equals(
ConstantesSistema.SIM)) {
emitir = true;
}
// caso seja para emtir ou seja medido de �gua ou po�o
if (emitir || existeHidrometroAgua || existeHidrometroPoco) {
colecaoImoveis.add(imovel);
}
}
}
retorno[0] = colecaoImoveis;
retorno[1] = quantidadeImoveis;
if (imoveis != null) {
imoveis.clear();
imoveis = null;
}
return retorno;
}
/**
* [UC0745] - Gerar Arquivo Texto para Faturamento
*
* @author Raphael Rossiter
* @date 23/04/2008
*
* @param imovel
* @param anoMesReferencia
* @return Conta
* @throws ControladorException
*/
@SuppressWarnings({ "unchecked", "rawtypes" })
public Conta pesquisarContaGerarArquivoTextoFaturamento(Imovel imovel,
Integer anoMesReferencia, Integer idFaturamentoGrupo)
throws ControladorException {
Conta conta = null;
Object[] arrayConta = null;
try {
arrayConta = repositorioFaturamento
.pesquisarContaGerarArquivoTextoFaturamento(imovel.getId(),
anoMesReferencia, idFaturamentoGrupo);
} catch (ErroRepositorioException ex) {
sessionContext.setRollbackOnly();
throw new ControladorException("erro.sistema", ex);
}
if (arrayConta != null) {
conta = new Conta();
// ID
conta.setId((Integer) arrayConta[18]);
// GERENCIA REGIONAL E LOCALIDADE
GerenciaRegional gerenciaRegional = new GerenciaRegional();
gerenciaRegional.setNome((String) arrayConta[0]);
gerenciaRegional.setId((Integer) arrayConta[20]);
Localidade localidade = new Localidade();
localidade.setId((Integer) arrayConta[1]);
localidade.setDescricao((String) arrayConta[2]);
localidade.setGerenciaRegional(gerenciaRegional);
conta.setLocalidade(localidade);
// SETOR_COMERCIAL
conta.setCodigoSetorComercial((Integer) arrayConta[4]);
// QUADRA
conta.setQuadra((Integer) arrayConta[5]);
// LOTE E SUBLOTE
conta.setLote((Short) arrayConta[6]);
conta.setSubLote((Short) arrayConta[7]);
// CLIENTES: USUARIO E RESPONSAVEL
Set colecaoClienteConta = new HashSet();
if (arrayConta[3] != null) {
ClienteRelacaoTipo clienteRelacaoTipo = new ClienteRelacaoTipo();
clienteRelacaoTipo.setId(ClienteRelacaoTipo.USUARIO.intValue());
Cliente clienteUsuario = new Cliente();
clienteUsuario.setNome((String) arrayConta[3]);
if (arrayConta[24] != null) {
clienteUsuario.setCpf((String) arrayConta[24]);
}
if (arrayConta[25] != null) {
clienteUsuario.setCnpj((String) arrayConta[25]);
}
ClienteConta clienteConta = new ClienteConta();
clienteConta.setCliente(clienteUsuario);
clienteConta.setClienteRelacaoTipo(clienteRelacaoTipo);
colecaoClienteConta.add(clienteConta);
}
if (arrayConta[8] != null) {
ClienteRelacaoTipo clienteRelacaoTipo = new ClienteRelacaoTipo();
clienteRelacaoTipo.setId(ClienteRelacaoTipo.RESPONSAVEL
.intValue());
Cliente clienteResponsavel = new Cliente();
clienteResponsavel.setId((Integer) arrayConta[8]);
clienteResponsavel.setNome((String) arrayConta[9]);
ClienteConta clienteConta = new ClienteConta();
clienteConta.setCliente(clienteResponsavel);
clienteConta.setClienteRelacaoTipo(clienteRelacaoTipo);
colecaoClienteConta.add(clienteConta);
}
if (colecaoClienteConta.size() > 0) {
conta.setClienteContas(colecaoClienteConta);
}
// LIGACAO_AGUA_SITUACAO
if (arrayConta[10] != null) {
LigacaoAguaSituacao ligacaoAguaSituacao = new LigacaoAguaSituacao();
ligacaoAguaSituacao.setId((Integer) arrayConta[10]);
ligacaoAguaSituacao
.setIndicadorFaturamentoSituacao((Short) arrayConta[21]);
conta.setLigacaoAguaSituacao(ligacaoAguaSituacao);
}
// LIGACAO_ESGOTO_SITUACAO
if (arrayConta[11] != null) {
LigacaoEsgotoSituacao ligacaoEsgotoSituacao = new LigacaoEsgotoSituacao();
ligacaoEsgotoSituacao.setId((Integer) arrayConta[11]);
ligacaoEsgotoSituacao
.setIndicadorFaturamentoSituacao((Short) arrayConta[22]);
conta.setLigacaoEsgotoSituacao(ligacaoEsgotoSituacao);
}
// DATA_VENCIMENTO
conta.setDataVencimentoConta((Date) arrayConta[12]);
// DATA_VALIDADE
conta.setDataValidadeConta((Date) arrayConta[13]);
// DIGITO_VERIFICADOR
conta.setDigitoVerificadorConta((Short) arrayConta[14]);
// PERCENTUAL_ESGOTO
conta.setPercentualEsgoto((BigDecimal) arrayConta[15]);
// IMOVEL_PERFIL
ImovelPerfil imovelPerfil = new ImovelPerfil();
imovelPerfil.setId((Integer) arrayConta[16]);
conta.setImovelPerfil(imovelPerfil);
// CONSUMO_TARIFA
ConsumoTarifa consumoTarifa = new ConsumoTarifa();
consumoTarifa.setId((Integer) arrayConta[17]);
conta.setConsumoTarifa(consumoTarifa);
// REFERENCIA
conta.setReferencia((Integer) arrayConta[19]);
// IMOVEL
conta.setImovel(imovel);
}
return conta;
}
/**
* [UC0745] - Gerar Arquivo Texto para Faturamento
*
* [SB0001] - Gerar Arquivo Texto
*
* @author Raphael Rossiter
* @date 24/04/2008
*
* @param imovel
* @param conta
* @param anoMesReferencia
* @return StringBuilder
* @throws ControladorException
*/
public Object[] gerarArquivoTexto(Imovel imovel, Conta conta,
Integer anoMesReferencia, Rota rota,
FaturamentoGrupo faturamentoGrupo,
SistemaParametro sistemaParametro, Date dataComando)
throws ControladorException {
StringBuilder arquivoTexto = new StringBuilder();
int quantidadeLinhas = 0;
Date dataEmissao = Util.subtrairNumeroDiasDeUmaData(dataComando, 10);
CobrancaDocumento cobrancaDocumento = null;
try {
cobrancaDocumento = repositorioCobranca
.pesquisarCobrancaDocumentoImpressaoSimultanea(dataEmissao,
imovel.getId());
} catch (ErroRepositorioException ex) {
sessionContext.setRollbackOnly();
throw new ControladorException("erro.sistema", ex);
}
Object[] retorno = new Object[2];
// REGISTRO_TIPO_01
arquivoTexto.append(this.gerarArquivoTextoRegistroTipo01(imovel, conta,
anoMesReferencia, rota, faturamentoGrupo, sistemaParametro,
cobrancaDocumento));
quantidadeLinhas = quantidadeLinhas + 1;
// REGISTRO_TIPO_02
Object[] tipo2 = this.gerarArquivoTextoRegistroTipo02(imovel, conta,
sistemaParametro);
arquivoTexto.append(tipo2[0]);
int quantidadeTipo2 = (Integer) tipo2[1];
quantidadeLinhas = quantidadeLinhas + quantidadeTipo2;
// REGISTRO_TIPO_03
Object[] tipo3 = this.gerarArquivoTextoRegistroTipo03(imovel,
anoMesReferencia);
arquivoTexto.append(tipo3[0]);
int quantidadeTipo3 = (Integer) tipo3[1];
quantidadeLinhas = quantidadeLinhas + quantidadeTipo3;
// REGISTRO_TIPO_04
Object[] tipo4 = this.gerarArquivoTextoRegistroTipo04(conta);
arquivoTexto.append(tipo4[0]);
int quantidadeTipo4 = (Integer) tipo4[1];
quantidadeLinhas = quantidadeLinhas + quantidadeTipo4;
// REGISTRO_TIPO_05
Object[] tipo5 = this.gerarArquivoTextoRegistroTipo05(conta);
arquivoTexto.append(tipo5[0]);
int quantidadeTipo5 = (Integer) tipo5[1];
quantidadeLinhas = quantidadeLinhas + quantidadeTipo5;
// REGISTRO_TIPO_06
Object[] tipo6 = this.gerarArquivoTextoRegistroTipo06(conta);
arquivoTexto.append(tipo6[0]);
int quantidadeTipo6 = (Integer) tipo6[1];
quantidadeLinhas = quantidadeLinhas + quantidadeTipo6;
// REGISTRO_TIPO_07
Object[] tipo7 = this.gerarArquivoTextoRegistroTipo07(imovel,
sistemaParametro, cobrancaDocumento);
arquivoTexto.append(tipo7[0]);
int quantidadeTipo7 = (Integer) tipo7[1];
quantidadeLinhas = quantidadeLinhas + quantidadeTipo7;
// REGISTRO_TIPO_08
Object[] tipo8 = this.gerarArquivoTextoRegistroTipo08(imovel,
anoMesReferencia, sistemaParametro);
arquivoTexto.append(tipo8[0]);
int quantidadeTipo8 = (Integer) tipo8[1];
quantidadeLinhas = quantidadeLinhas + quantidadeTipo8;
// Parte dos dados das tarifas e faixas
// REGISTRO_TIPO_09 e TIPO_10
Object[] registroTipo9e10 = gerarArquivoTextoRegistroDadosTarifa09(
imovel, sistemaParametro, anoMesReferencia, faturamentoGrupo);
arquivoTexto.append(registroTipo9e10[0]);
int quantidadeTipo9 = (Integer) registroTipo9e10[1];
quantidadeLinhas = quantidadeLinhas + quantidadeTipo9;
retorno[0] = arquivoTexto;
retorno[1] = quantidadeLinhas;
return retorno;
}
/**
* [UC0745] - Gerar Arquivo Texto para Faturamento
* [SB0001] - Gerar Arquivo Texto - Registro Tipo 01
*/
@SuppressWarnings({ "rawtypes", "unchecked" })
public StringBuilder gerarArquivoTextoRegistroTipo01(Imovel imovel, Conta conta, Integer anoMesReferencia, Rota rota,
FaturamentoGrupo faturamentoGrupo, SistemaParametro sistemaParametro, CobrancaDocumento cobrancaDocumento) throws ControladorException {
StringBuilder arquivoTextoRegistroTipo01 = new StringBuilder();
Cliente clienteUsuario = null;
Cliente clienteResponsavel = null;
String nomeGerenciaRegional = null;
Integer idGerenciaRegional = null;
String descricaoLocalidade = null;
Set colecaoClienteImovelOUConta = null;
String inscricaoImovel = null;
String idLigacaoAguaSituacao = null;
String idLigacaoEsgotoSituacao = null;
String idImovelPerfil = null;
Integer idLocalidade = null;
Integer idSetorComercial = null;
Integer numeroSequencialRota = null;
Integer idQuadraFace = null;
Short indicadorFaturamentoSituacaoAgua = null;
Short indicadorFaturamentoSituacaoEsgoto = null;
short indicadorParalisacaoFaturamentoAgua = 2;
short indicadorParalisacaoFaturamentoEsgoto = 2;
if (conta != null) {
nomeGerenciaRegional = conta.getLocalidade().getGerenciaRegional().getNome();
idGerenciaRegional = conta.getLocalidade().getGerenciaRegional().getId();
idLocalidade = conta.getLocalidade().getId();
if (conta.getImovel() != null && conta.getImovel().getSetorComercial() != null) {
idSetorComercial = conta.getImovel().getSetorComercial().getId();
}
if (conta.getImovel() != null && conta.getImovel().getNumeroSequencialRota() != null) {
numeroSequencialRota = conta.getImovel().getNumeroSequencialRota();
}
descricaoLocalidade = conta.getLocalidade().getDescricao();
colecaoClienteImovelOUConta = conta.getClienteContas();
// MONTANDO INSCRI��O DO IMOVEL A PARTIR DA CONTA
Imovel imovelInscricao = new Imovel();
imovelInscricao.setLocalidade(conta.getLocalidade());
SetorComercial setorComercial = new SetorComercial();
setorComercial.setCodigo(conta.getCodigoSetorComercial());
imovelInscricao.setSetorComercial(setorComercial);
Quadra quadra = new Quadra();
quadra.setNumeroQuadra(conta.getQuadra());
imovelInscricao.setQuadra(quadra);
imovelInscricao.setLote(conta.getLote());
imovelInscricao.setSubLote(conta.getSubLote());
inscricaoImovel = imovelInscricao.getInscricaoFormatadaSemPonto();
idLigacaoAguaSituacao = conta.getLigacaoAguaSituacao().getId().toString();
indicadorFaturamentoSituacaoAgua = conta.getLigacaoAguaSituacao().getIndicadorFaturamentoSituacao();
idLigacaoEsgotoSituacao = conta.getLigacaoEsgotoSituacao().getId().toString();
indicadorFaturamentoSituacaoEsgoto = conta.getLigacaoEsgotoSituacao().getIndicadorFaturamentoSituacao();
idImovelPerfil = conta.getImovelPerfil().getId().toString();
} else {
nomeGerenciaRegional = imovel.getLocalidade().getGerenciaRegional().getNome();
idGerenciaRegional = imovel.getLocalidade().getGerenciaRegional().getId();
idLocalidade = imovel.getLocalidade().getId();
if (imovel.getSetorComercial() != null) {
idSetorComercial = imovel.getSetorComercial().getId();
}
if (imovel.getNumeroSequencialRota() != null) {
numeroSequencialRota = imovel.getNumeroSequencialRota();
}
descricaoLocalidade = imovel.getLocalidade().getDescricao();
colecaoClienteImovelOUConta = imovel.getClienteImoveis();
inscricaoImovel = imovel.getInscricaoFormatadaSemPonto();
idLigacaoAguaSituacao = imovel.getLigacaoAguaSituacao().getId().toString();
indicadorFaturamentoSituacaoAgua = imovel.getLigacaoAguaSituacao().getIndicadorFaturamentoSituacao();
idLigacaoEsgotoSituacao = imovel.getLigacaoEsgotoSituacao().getId().toString();
indicadorFaturamentoSituacaoEsgoto = imovel.getLigacaoEsgotoSituacao().getIndicadorFaturamentoSituacao();
idImovelPerfil = imovel.getImovelPerfil().getId().toString();
}
if (imovel.getQuadraFace() != null) {
idQuadraFace = imovel.getQuadraFace().getId();
}
// TIPO DO REGISTRO
arquivoTextoRegistroTipo01.append("01");
System.out.println("Montando arquivo do im�vel " + imovel.getId());
// MATR�CULA DO IM�VEL
arquivoTextoRegistroTipo01.append(Util.adicionarZerosEsquedaNumero(9, imovel.getId().toString()));
// NOME DA GER�NCIA REGIONAL
arquivoTextoRegistroTipo01.append(Util.completaString(nomeGerenciaRegional, 25));
// DESCRI��O DA LOCALIDADE
arquivoTextoRegistroTipo01.append(Util.completaString(descricaoLocalidade, 25));
Iterator iteratorClienteImovelOUConta = colecaoClienteImovelOUConta.iterator();
Cliente clienteNomeConta = null;
if (colecaoClienteImovelOUConta != null && !colecaoClienteImovelOUConta.isEmpty()) {
while (iteratorClienteImovelOUConta.hasNext()) {
Object clienteImovelOUConta = iteratorClienteImovelOUConta.next();
ClienteRelacaoTipo clienteRelacaoTipo = null;
Cliente cliente = null;
if (clienteImovelOUConta instanceof ClienteImovel) {
ClienteImovel clienteImovel = (ClienteImovel) clienteImovelOUConta;
clienteRelacaoTipo = ((ClienteImovel) clienteImovelOUConta).getClienteRelacaoTipo();
FiltroCliente filtroCliente = new FiltroCliente();
filtroCliente.adicionarParametro(new ParametroSimples(FiltroCliente.ID, new Integer(clienteImovel.getCliente().getId())));
Collection clientes = Fachada.getInstancia().pesquisarCliente(filtroCliente);
if (!clientes.isEmpty()) {
cliente = (Cliente) clientes.iterator().next();
}
if (clienteImovel.getIndicadorNomeConta().equals(ConstantesSistema.SIM)) {
clienteNomeConta = cliente;
}
} else {
clienteRelacaoTipo = ((ClienteConta) clienteImovelOUConta).getClienteRelacaoTipo();
cliente = ((ClienteConta) clienteImovelOUConta).getCliente();
}
if (clienteRelacaoTipo.getId().equals(ClienteRelacaoTipo.USUARIO.intValue())) {
clienteUsuario = cliente;
} else {
clienteResponsavel = cliente;
}
}
}
// NOME DO IM�VEL OU NOME DO CLIENTE USU�RIO
if (clienteUsuario != null) {
arquivoTextoRegistroTipo01.append(Util.completaString(clienteUsuario.getNome(), 30));
} else {
arquivoTextoRegistroTipo01.append(Util.completaString("", 30));
}
// DATA DE VENCIMENTO E DATA DE VALIDADE DA CONTA
if (conta != null) {
arquivoTextoRegistroTipo01.append(Util.formatarDataAAAAMMDD(conta.getDataVencimentoConta()));
arquivoTextoRegistroTipo01.append(Util.formatarDataAAAAMMDD(conta.getDataValidadeConta()));
} else {
arquivoTextoRegistroTipo01.append(Util.completaString("", 16));
}
// INSCRI��O DO IM�VEL
arquivoTextoRegistroTipo01.append(Util.completaString(inscricaoImovel, 17));
// ENDERE�O DO IM�VEL
String enderecoImovel = getControladorEndereco().pesquisarEnderecoFormatado(imovel.getId());
arquivoTextoRegistroTipo01.append(Util.completaString(enderecoImovel == null ? "" : enderecoImovel, 70));
// M�S/ANO DE REFER�NCIA DA CONTA E DIGITO VERIFICADOR
if (conta != null) {
arquivoTextoRegistroTipo01.append("" + conta.getReferencia());
arquivoTextoRegistroTipo01.append(conta.getDigitoVerificadorConta());
} else {
arquivoTextoRegistroTipo01.append(Util.completaString("", 7));
}
// CLIENTE RESPONS�VEL - C�DIGO, NOME E ENDERE�O
if (clienteResponsavel != null) {
if (clienteNomeConta != null) {
arquivoTextoRegistroTipo01.append(Util.adicionarZerosEsquedaNumero(9, clienteNomeConta.getId().toString()));
arquivoTextoRegistroTipo01.append(Util.completaString(clienteNomeConta.getNome(), 25));
} else {
arquivoTextoRegistroTipo01.append(Util.adicionarZerosEsquedaNumero(9, clienteResponsavel.getId().toString()));
arquivoTextoRegistroTipo01.append(Util.completaString(clienteResponsavel.getNome(), 25));
}
if (imovel.getImovelContaEnvio().getId().equals(ImovelContaEnvio.ENVIAR_IMOVEL)) {
arquivoTextoRegistroTipo01.append(Util.completaString(enderecoImovel == null ? "" : enderecoImovel, 75));
} else {
String enderecoCorrespondencia = getControladorEndereco().pesquisarEnderecoClienteAbreviado(clienteResponsavel.getId());
arquivoTextoRegistroTipo01.append(Util.completaString(enderecoCorrespondencia == null ? "" : enderecoCorrespondencia, 75));
}
} else {
arquivoTextoRegistroTipo01.append(Util.completaString("", 109));
}
// LIGACAO_SITUACAO_AGUA
arquivoTextoRegistroTipo01.append(idLigacaoAguaSituacao);
// LIGACAO_SITUACAO_ESGOTO
arquivoTextoRegistroTipo01.append(idLigacaoEsgotoSituacao);
// BANCO E AG�NCIA
Object[] parmsDebitoAutomatico = this.getControladorArrecadacao().pesquisarParmsDebitoAutomatico(imovel.getId());
if (parmsDebitoAutomatico != null) {
// NOME DO BANCO
if (parmsDebitoAutomatico[0] != null) {
arquivoTextoRegistroTipo01.append(Util.completaString((String) parmsDebitoAutomatico[0], 15));
} else {
arquivoTextoRegistroTipo01.append(Util.completaString("", 15));
}
// C�DIGO DA AG�NCIA
arquivoTextoRegistroTipo01.append(Util.completaString((String) parmsDebitoAutomatico[1], 5));
} else {
arquivoTextoRegistroTipo01.append(Util.completaString("", 20));
}
// MATR�CULA DO IM�VEL CONDOM�NIO
if (imovel.getImovelCondominio() != null) {
arquivoTextoRegistroTipo01.append(Util.adicionarZerosEsquedaNumero(9, imovel.getImovelCondominio().getId().toString()));
} else {
arquivoTextoRegistroTipo01.append(Util.completaString("", 9));
}
// INDICADOR IM�VEL CONDOM�NIO
arquivoTextoRegistroTipo01.append(imovel.getIndicadorImovelCondominio().toString());
// IMOVEL_PERFIL
arquivoTextoRegistroTipo01.append(Util.adicionarZerosEsquedaNumero(2, idImovelPerfil));
MedicaoTipo medicao = new MedicaoTipo(MedicaoTipo.LIGACAO_AGUA);
boolean houveIntslacaoHidrometro = this.getControladorMicromedicao().verificarInstalacaoSubstituicaoHidrometro(imovel.getId(), medicao);
// CONSUMO M�DIO DO IM�VEL
int[] consumoMedioLigacaoAgua = this.getControladorMicromedicao().obterVolumeMedioAguaEsgoto(imovel.getId(), faturamentoGrupo.getAnoMesReferencia(),
LigacaoTipo.LIGACAO_AGUA, houveIntslacaoHidrometro);
arquivoTextoRegistroTipo01.append(Util.adicionarZerosEsquedaNumero(6, String.valueOf(consumoMedioLigacaoAgua[0])));
// INDICADOR_FATURAMENTO_ESGOTO
arquivoTextoRegistroTipo01.append(indicadorFaturamentoSituacaoAgua.toString());
// INDICADOR_FATURAMENTO_ESGOTO
arquivoTextoRegistroTipo01.append(indicadorFaturamentoSituacaoEsgoto.toString());
// INDICADOR_EMISSAO_CONTA
Short indicadorEmissaoConta = new Short("1");
boolean naoEmitir = false;
if (sistemaParametro.getCodigoEmpresaFebraban().equals(SistemaParametro.CODIGO_EMPRESA_FEBRABAN_CAERN)
|| sistemaParametro.getCodigoEmpresaFebraban().equals(SistemaParametro.CODIGO_EMPRESA_FEBRABAN_COSANPA)) {
if (imovel.getImovelContaEnvio() != null && (imovel.getImovelContaEnvio().getId().equals(ImovelContaEnvio.ENVIAR_CLIENTE_RESPONSAVEL_FINAL_GRUPO))) {
naoEmitir = true;
}
} else {
if (imovel.getImovelContaEnvio() != null
&& (imovel.getImovelContaEnvio().getId().equals(ImovelContaEnvio.ENVIAR_CLIENTE_RESPONSAVEL)
|| imovel.getImovelContaEnvio().getId().equals(ImovelContaEnvio.NAO_PAGAVEL_IMOVEL_PAGAVEL_RESPONSAVEL)
|| imovel.getImovelContaEnvio().getId().equals(ImovelContaEnvio.ENVIAR_CONTA_BRAILLE) || imovel.getImovelContaEnvio().getId()
.equals(ImovelContaEnvio.ENVIAR_CONTA_BRAILLE_RESPONSAVEL))) {
naoEmitir = true;
}
}
if (clienteResponsavel != null && naoEmitir) {
indicadorEmissaoConta = new Short("2");
}
arquivoTextoRegistroTipo01.append(indicadorEmissaoConta.toString());
// CONSUMO_MINIMO_AGUA
if (imovel.getLigacaoAgua() != null && imovel.getLigacaoAgua().getNumeroConsumoMinimoAgua() != null
&& !imovel.getLigacaoAgua().getNumeroConsumoMinimoAgua().equals("")) {
arquivoTextoRegistroTipo01.append(Util.adicionarZerosEsquedaNumero(6, imovel.getLigacaoAgua().getNumeroConsumoMinimoAgua().toString()));
} else {
arquivoTextoRegistroTipo01.append(Util.completaString("", 6));
}
// CONSUMO_MINIMO_ESGOTO
if (imovel.getLigacaoEsgoto() != null && imovel.getLigacaoEsgoto().getConsumoMinimo() != null) {
arquivoTextoRegistroTipo01.append(Util.adicionarZerosEsquedaNumero(6, imovel.getLigacaoEsgoto().getConsumoMinimo().toString()));
} else {
arquivoTextoRegistroTipo01.append(Util.completaString("", 6));
}
// PERCENTUAL_ESGOTO_LIGACAO
if (imovel.getLigacaoEsgoto() != null && imovel.getLigacaoEsgoto().getPercentualAguaConsumidaColetada() != null) {
arquivoTextoRegistroTipo01.append(Util.adicionarZerosEsquedaNumero(6, Util.formatarBigDecimalComPonto(imovel.getLigacaoEsgoto().getPercentualAguaConsumidaColetada())));
} else {
arquivoTextoRegistroTipo01.append(Util.adicionarZerosEsquedaNumero(6, "0"));
}
// PERCENTUAL_ESGOTO_COBRANCA
BigDecimal percentualEsgoto = this.getControladorFaturamento().verificarPercentualEsgotoAlternativo(imovel, null);
if (percentualEsgoto != null) {
arquivoTextoRegistroTipo01.append(Util.adicionarZerosEsquedaNumero(6, Util.formatarBigDecimalComPonto(percentualEsgoto)));
} else {
arquivoTextoRegistroTipo01.append(Util.adicionarZerosEsquedaNumero(6, "0"));
}
// TIPO_PO�O
if (imovel.getPocoTipo() != null) {
arquivoTextoRegistroTipo01.append(imovel.getPocoTipo().getId().toString());
} else {
arquivoTextoRegistroTipo01.append(Util.completaString("", 1));
}
// CONSUMO_TARIFA
arquivoTextoRegistroTipo01.append(Util.adicionarZerosEsquedaNumero(2, imovel.getConsumoTarifa().getId().toString()));
// CATEGORIA PRINCIPAL
Collection colecaoCategoria = null;
// Obt�m a quantidade de economias por categoria
colecaoCategoria = getControladorImovel().obterQuantidadeEconomiasCategoria(imovel);
int consumoReferenciaAltoConsumo = 0;
int consumoReferenciaEstouroConsumo = 0;
int consumoReferenciaBaixoConsumo = 0;
int consumoMaximoEstouroConsumo = 0;
int maiorQuantidadeEconomia = 0;
BigDecimal vezesMediaAltoConsumo = new BigDecimal(0);
BigDecimal vezesMediaEstouroConsumo = new BigDecimal(0);
BigDecimal percentualDeterminacaoBaixoConsumo = new BigDecimal(0);
Iterator colecaoCategoriaIterator = colecaoCategoria.iterator();
while (colecaoCategoriaIterator.hasNext()) {
Categoria categoria = (Categoria) colecaoCategoriaIterator.next();
consumoReferenciaAltoConsumo = consumoReferenciaAltoConsumo + (categoria.getConsumoAlto().intValue() * categoria.getQuantidadeEconomiasCategoria().intValue());
consumoReferenciaEstouroConsumo = consumoReferenciaEstouroConsumo + (categoria.getConsumoEstouro().intValue() * categoria.getQuantidadeEconomiasCategoria().intValue());
consumoMaximoEstouroConsumo = consumoMaximoEstouroConsumo + (categoria.getNumeroConsumoMaximoEc().intValue() * categoria.getQuantidadeEconomiasCategoria().intValue());
consumoReferenciaBaixoConsumo = consumoReferenciaBaixoConsumo + (categoria.getMediaBaixoConsumo().intValue() * categoria.getQuantidadeEconomiasCategoria().intValue());
// Obt�m a maior quantidade de economias e a vezes m�dia de estouro
if (maiorQuantidadeEconomia < categoria.getQuantidadeEconomiasCategoria().intValue()) {
maiorQuantidadeEconomia = categoria.getQuantidadeEconomiasCategoria().intValue();
vezesMediaAltoConsumo = categoria.getVezesMediaAltoConsumo();
vezesMediaEstouroConsumo = categoria.getVezesMediaEstouro();
percentualDeterminacaoBaixoConsumo = categoria.getPorcentagemMediaBaixoConsumo();
}
}
// CONSUMO_REFERENCIA_ESTOURO_CONSUMO
if (consumoReferenciaEstouroConsumo <= 999999) {
arquivoTextoRegistroTipo01.append(Util.adicionarZerosEsquedaNumero(6, consumoReferenciaEstouroConsumo + ""));
} else {
arquivoTextoRegistroTipo01.append("999999");
}
// CONSUMO_REFERENCIA_ALTO_CONSUMO
if (consumoReferenciaAltoConsumo <= 999999) {
arquivoTextoRegistroTipo01.append(Util.adicionarZerosEsquedaNumero(6, consumoReferenciaAltoConsumo + ""));
} else {
arquivoTextoRegistroTipo01.append("999999");
}
// CONSUMO_MEDIA_BAIXO_CONSUMO
if (consumoReferenciaBaixoConsumo <= 999999) {
arquivoTextoRegistroTipo01.append(Util.adicionarZerosEsquedaNumero(6, consumoReferenciaBaixoConsumo + ""));
} else {
arquivoTextoRegistroTipo01.append("999999");
}
// FATOR_MULTIPLICACAO_MEDIA_ESTOURO_CONSUMO
if (vezesMediaEstouroConsumo != null) {
arquivoTextoRegistroTipo01.append(Util.completaString(vezesMediaEstouroConsumo.toString(), 4));
} else {
arquivoTextoRegistroTipo01.append(Util.completaString("", 4));
}
// FATOR_MULTIPLICACAO_MEDIA_ALTO_CONSUMO
if (vezesMediaAltoConsumo != null) {
arquivoTextoRegistroTipo01.append(Util.completaString(vezesMediaAltoConsumo.toString(), 4));
} else {
arquivoTextoRegistroTipo01.append(Util.completaString("", 4));
}
// PERCENTUAL_DETERMINACAO_BAIXO_CONSUMO
if (percentualDeterminacaoBaixoConsumo != null) {
arquivoTextoRegistroTipo01.append(Util.adicionarZerosEsquedaNumero(6, Util.formatarBigDecimalComPonto(percentualDeterminacaoBaixoConsumo)));
} else {
arquivoTextoRegistroTipo01.append(Util.adicionarZerosEsquedaNumero(6, "0"));
}
// CONSUMO_MAXIMO_COBRANCA_ESTOURO_CONSUMO
if (consumoMaximoEstouroConsumo <= 999999) {
arquivoTextoRegistroTipo01.append(Util.adicionarZerosEsquedaNumero(6, consumoMaximoEstouroConsumo + ""));
} else {
arquivoTextoRegistroTipo01.append("999999");
}
// FATURAMENTO_GRUPO
arquivoTextoRegistroTipo01.append(Util.adicionarZerosEsquedaNumero(3, faturamentoGrupo.getId().toString()));
// CODIGO_ROTA
arquivoTextoRegistroTipo01.append(Util.adicionarZerosEsquedaNumero(7, rota.getCodigo().toString()));
// C�DIGO DA CONTA
if (conta != null) {
arquivoTextoRegistroTipo01.append(Util.adicionarZerosEsquedaNumero(9, conta.getId().toString()));
} else {
arquivoTextoRegistroTipo01.append(Util.completaString("", 9));
}
// TIPO DO C�LCULO DA TARIFA
if (imovel.getConsumoTarifa() != null && imovel.getConsumoTarifa().getTarifaTipoCalculo() != null) {
arquivoTextoRegistroTipo01.append(Util.adicionarZerosEsquedaNumero(2, "" + imovel.getConsumoTarifa().getTarifaTipoCalculo().getId()));
}
// ENDERE�O ATENDIMENTO - 1� Parte
FiltroLocalidade filtroLocalidade = new FiltroLocalidade();
filtroLocalidade.adicionarParametro(new ParametroSimples(FiltroLocalidade.ID, idLocalidade));
filtroLocalidade.adicionarCaminhoParaCarregamentoEntidade("logradouroCep");
filtroLocalidade.adicionarCaminhoParaCarregamentoEntidade("logradouroCep.cep");
filtroLocalidade.adicionarCaminhoParaCarregamentoEntidade("logradouroCep.logradouro");
filtroLocalidade.adicionarCaminhoParaCarregamentoEntidade("logradouroCep.logradouro.logradouroTipo");
filtroLocalidade.adicionarCaminhoParaCarregamentoEntidade("logradouroCep.logradouro.logradouroTitulo");
filtroLocalidade.adicionarCaminhoParaCarregamentoEntidade("enderecoReferencia");
filtroLocalidade.adicionarCaminhoParaCarregamentoEntidade("logradouroBairro");
filtroLocalidade.adicionarCaminhoParaCarregamentoEntidade("logradouroBairro.bairro");
filtroLocalidade.adicionarCaminhoParaCarregamentoEntidade("logradouroBairro.bairro.municipio");
filtroLocalidade.adicionarCaminhoParaCarregamentoEntidade("logradouroBairro.bairro.municipio.unidadeFederacao");
filtroLocalidade.adicionarCaminhoParaCarregamentoEntidade("enderecoReferencia");
Collection cLocalidade = (Collection) getControladorUtil().pesquisar(filtroLocalidade, Localidade.class.getName());
Localidade localidade = (Localidade) cLocalidade.iterator().next();
String descricaoAtendimento = localidade.getEnderecoFormatadoTituloAbreviado();
arquivoTextoRegistroTipo01.append(Util.completaString(descricaoAtendimento, 70));
// ENDERE�O ATENDIMENTO - 2� Parte
String dddMunicipio = "";
if (localidade.getLogradouroBairro() != null && localidade.getLogradouroBairro().getBairro() != null
&& localidade.getLogradouroBairro().getBairro().getMunicipio() != null
&& localidade.getLogradouroBairro().getBairro().getMunicipio().getDdd() != null) {
dddMunicipio = "" + localidade.getLogradouroBairro().getBairro().getMunicipio().getDdd();
}
String fome = "";
if (localidade.getFone() != null) {
fome = localidade.getFone();
}
arquivoTextoRegistroTipo01.append(Util.completaString(dddMunicipio + fome, 11));
// SEQUENCIAL DA ROTA
if (numeroSequencialRota != null) {
arquivoTextoRegistroTipo01.append(Util.adicionarZerosEsquedaNumero(9, "" + numeroSequencialRota));
} else {
arquivoTextoRegistroTipo01.append(Util.adicionarZerosEsquedaNumero(9, ""));
}
// MENSAGEM DA CONTA EM 3 PARTES
EmitirContaHelper emitirContaHelper = new EmitirContaHelper();
emitirContaHelper.setAmReferencia(faturamentoGrupo.getAnoMesReferencia());
emitirContaHelper.setAnoMesFaturamentoGrupo(faturamentoGrupo.getAnoMesReferencia());
emitirContaHelper.setIdFaturamentoGrupo(faturamentoGrupo.getId());
emitirContaHelper.setIdGerenciaRegional(idGerenciaRegional);
emitirContaHelper.setIdLocalidade(idLocalidade);
emitirContaHelper.setIdSetorComercial(idSetorComercial);
emitirContaHelper.setIdImovel(imovel.getId());
// Caso a empresa seja a CAER
if (sistemaParametro.getCodigoEmpresaFebraban().equals(SistemaParametro.CODIGO_EMPRESA_FEBRABAN_CAER)) {
String[] mensagemContaDividida = getControladorFaturamento().obterMensagemConta(emitirContaHelper, sistemaParametro, 4, null);
if (mensagemContaDividida != null) {
// Parte 1
arquivoTextoRegistroTipo01.append(Util.completaString(mensagemContaDividida[0], 60));
// Parte 2
arquivoTextoRegistroTipo01.append(Util.completaString(mensagemContaDividida[1], 60));
// Parte 3
arquivoTextoRegistroTipo01.append(Util.completaString(mensagemContaDividida[2], 60));
// Parte 4
arquivoTextoRegistroTipo01.append(Util.completaString(mensagemContaDividida[3], 60));
// Parte 5
arquivoTextoRegistroTipo01.append(Util.completaString(mensagemContaDividida[4], 60));
} else {
arquivoTextoRegistroTipo01.append(Util.completaString("", 300));
}
} else {
String[] mensagemContaDividida = getControladorFaturamento().obterMensagemConta3Partes(emitirContaHelper, sistemaParametro);
if (mensagemContaDividida != null) {
// Parte 1
arquivoTextoRegistroTipo01.append(Util.completaString(mensagemContaDividida[0], 100));
// Parte 2
arquivoTextoRegistroTipo01.append(Util.completaString(mensagemContaDividida[1], 100));
// Parte 3
arquivoTextoRegistroTipo01.append(Util.completaString(mensagemContaDividida[2], 100));
} else {
arquivoTextoRegistroTipo01.append(Util.completaString("", 300));
}
}
// QUITA��O ANUAL DE D�BITOS
arquivoTextoRegistroTipo01.append(Util.completaString(getControladorFaturamento().obterMsgQuitacaoDebitos(imovel, anoMesReferencia), 120));
// QUALIDADE DA �GUA
Integer anoMesReferenciaQualidadeAgua = null;
if (sistemaParametro.getNomeEmpresa() != null && sistemaParametro.getNomeEmpresa().equals(SistemaParametro.EMPRESA_COMPESA)) {
anoMesReferenciaQualidadeAgua = Util.subtraiAteSeisMesesAnoMesReferencia(faturamentoGrupo.getAnoMesReferencia(), 1);
} else {
anoMesReferenciaQualidadeAgua = faturamentoGrupo.getAnoMesReferencia();
}
arquivoTextoRegistroTipo01 = arquivoTextoRegistroTipo01.append(gerarArquivoTextoQualidadeAgua(idLocalidade, idSetorComercial, anoMesReferenciaQualidadeAgua, idQuadraFace));
// CONSUMO MINIMO IM�VEL
Integer consumoMinimoImovel = getControladorMicromedicao().obterConsumoMinimoLigacao(imovel, null);
if (consumoMinimoImovel != null) {
arquivoTextoRegistroTipo01.append(Util.adicionarZerosEsquedaNumero(6, "" + consumoMinimoImovel));
} else {
arquivoTextoRegistroTipo01.append(Util.adicionarZerosEsquedaNumero(6, ""));
}
// CONSUMO MINIMO IM�VEL N�O MEDIDO
arquivoTextoRegistroTipo01.append(Util.adicionarZerosEsquedaNumero(6, "" + getControladorMicromedicao().obterConsumoNaoMedido(imovel)));
// DOCUMENTO DE COBRAN�A
if (cobrancaDocumento != null && !cobrancaDocumento.equals("")) {
arquivoTextoRegistroTipo01.append(Util.completaString(cobrancaDocumento.getId() + "", 9));
String representacaoNumericaCodBarra = this.getControladorArrecadacao().obterRepresentacaoNumericaCodigoBarra(5, cobrancaDocumento.getValorDocumento(),
cobrancaDocumento.getLocalidade().getId(), cobrancaDocumento.getImovel().getId(), null, null, null, null,
String.valueOf(cobrancaDocumento.getNumeroSequenciaDocumento()), cobrancaDocumento.getDocumentoTipo().getId(), null, null, null);
arquivoTextoRegistroTipo01.append(representacaoNumericaCodBarra);
} else {
arquivoTextoRegistroTipo01.append(Util.completaString("", 57));
}
// CPF ou CNPJ do CLIENTE
String cpfCnpj = "";
if (clienteUsuario != null && !clienteUsuario.equals("")) {
if (clienteUsuario.getCpf() != null && !clienteUsuario.getCpf().equals("")) {
cpfCnpj = clienteUsuario.getCpf();
} else {
if (clienteUsuario.getCnpj() != null && !clienteUsuario.getCnpj().equals("")) {
cpfCnpj = clienteUsuario.getCnpj();
}
}
}
arquivoTextoRegistroTipo01.append(Util.completaString(cpfCnpj, 18));
// GERA AS COLUNAS DA SITUA��O ESPECIAL DE FATURAMENTO
arquivoTextoRegistroTipo01.append(gerarDadosSituacaoEspecialFaturamento(imovel, faturamentoGrupo));
// DATA LEITURA ANTERIOR FATURAMENTO
Integer anoMesFaturamentoAnterior = Util.subtrairMesDoAnoMes(anoMesReferencia, 1);
Date dataLeituraAnteriorFaturamento = null;
try {
dataLeituraAnteriorFaturamento = (Date) repositorioFaturamento.pesquisarFaturamentoAtividadeCronogramaDataPrevista(faturamentoGrupo.getId(),FaturamentoAtividade.EFETUAR_LEITURA, anoMesFaturamentoAnterior);
} catch (ErroRepositorioException ex) {
sessionContext.setRollbackOnly();
throw new ControladorException("erro.sistema", ex);
}
if (dataLeituraAnteriorFaturamento == null || dataLeituraAnteriorFaturamento.equals("")) {
dataLeituraAnteriorFaturamento = Util.subtrairNumeroDiasDeUmaData(new Date(), 30);
}
arquivoTextoRegistroTipo01.append(Util.formatarDataAAAAMMDD(dataLeituraAnteriorFaturamento));
// INDICADOR ABASTECIMENTO
if (imovel.getLigacaoAguaSituacao() != null && !imovel.getLigacaoAguaSituacao().equals("")) {
arquivoTextoRegistroTipo01.append(Util.completaString(imovel.getLigacaoAguaSituacao().getIndicadorAbastecimento() + "", 1));
} else {
arquivoTextoRegistroTipo01.append(Util.completaString("", 1));
}
// IMOVEL SAZONAL
boolean imovelSazonal = false;
Collection colecaoCategoriaOUSubcategoria = this.getControladorImovel().obterQuantidadeEconomiasSubCategoria(imovel.getId());
Iterator itSubcategoria = colecaoCategoriaOUSubcategoria.iterator();
while (itSubcategoria.hasNext()) {
Subcategoria subcategoria = (Subcategoria) itSubcategoria.next();
if (subcategoria.getIndicadorSazonalidade().equals(ConstantesSistema.SIM)) {
imovelSazonal = true;
break;
}
}
arquivoTextoRegistroTipo01.append(imovelSazonal ? "1" : "2");
// Verificar se � para faturar pela situa��o especial de faturamento
if (imovel.getFaturamentoSituacaoTipo() != null && !imovel.getFaturamentoSituacaoTipo().equals("")) {
FiltroFaturamentoSituacaoHistorico filtroFaturamentoSituacaoHistorico = new FiltroFaturamentoSituacaoHistorico();
filtroFaturamentoSituacaoHistorico.adicionarParametro(new ParametroSimples(FiltroFaturamentoSituacaoHistorico.ID_IMOVEL, imovel.getId()));
filtroFaturamentoSituacaoHistorico.adicionarParametro(new ParametroNulo(FiltroFaturamentoSituacaoHistorico.ANO_MES_FATURAMENTO_RETIRADA));
Collection<FaturamentoSituacaoHistorico> colFiltroFaturamentoSituacaoHistorico = this.getControladorUtil().pesquisar(filtroFaturamentoSituacaoHistorico, FaturamentoSituacaoHistorico.class.getName());
FaturamentoSituacaoHistorico faturamentoSituacaoHistorico = (FaturamentoSituacaoHistorico) Util
.retonarObjetoDeColecao(colFiltroFaturamentoSituacaoHistorico);
if ((faturamentoSituacaoHistorico != null
&& faturamentoGrupo.getAnoMesReferencia() >= faturamentoSituacaoHistorico.getAnoMesFaturamentoSituacaoInicio() && faturamentoGrupo
.getAnoMesReferencia() <= faturamentoSituacaoHistorico.getAnoMesFaturamentoSituacaoFim())) {
if (imovel.getFaturamentoSituacaoTipo().getIndicadorParalisacaoFaturamento() != null
&& imovel.getFaturamentoSituacaoTipo().getIndicadorParalisacaoFaturamento().equals(ConstantesSistema.INDICADOR_USO_ATIVO)
&& imovel.getFaturamentoSituacaoTipo().getIndicadorValidoAgua().equals(ConstantesSistema.INDICADOR_USO_ATIVO)) {
indicadorParalisacaoFaturamentoAgua = 1;
}
if (imovel.getFaturamentoSituacaoTipo().getIndicadorParalisacaoFaturamento() != null
&& imovel.getFaturamentoSituacaoTipo().getIndicadorParalisacaoFaturamento().equals(ConstantesSistema.INDICADOR_USO_ATIVO)
&& imovel.getFaturamentoSituacaoTipo().getIndicadorValidoEsgoto().equals(ConstantesSistema.INDICADOR_USO_ATIVO)) {
indicadorParalisacaoFaturamentoEsgoto = 1;
}
}
}
// INDICADOR_PARALIZA��O_�GUA
arquivoTextoRegistroTipo01.append("" + indicadorParalisacaoFaturamentoAgua);
// INDICADOR_PARALIZA��O_ESGOTO
arquivoTextoRegistroTipo01.append("" + indicadorParalisacaoFaturamentoEsgoto);
//C�DIGO DO D�BITO AUTOM�TICO
if (imovel.getCodigoDebitoAutomatico() != null && !imovel.getCodigoDebitoAutomatico().equals("")) {
arquivoTextoRegistroTipo01.append(Util.completaString("" + imovel.getCodigoDebitoAutomatico(), 9));
} else {
arquivoTextoRegistroTipo01.append(Util.completaString("", 9));
}
// PERCENTUAL_ALTERNATIVO_ESGOTO_LIGACAO
if (imovel.getLigacaoEsgoto() != null && imovel.getLigacaoEsgoto().getPercentualAlternativo() != null) {
arquivoTextoRegistroTipo01.append(Util.adicionarZerosEsquedaNumero(6,Util.formatarBigDecimalComPonto(imovel.getLigacaoEsgoto().getPercentualAlternativo())));
} else {
arquivoTextoRegistroTipo01.append(Util.completaString("", 6));
}
// CONSUMO_PERCENTUAL_ALTERNATIVO_ESGOTO
if (imovel.getLigacaoEsgoto() != null && imovel.getLigacaoEsgoto().getNumeroConsumoPercentualAlternativo() != null) {
arquivoTextoRegistroTipo01.append(Util.adicionarZerosEsquedaNumero(6, imovel.getLigacaoEsgoto().getNumeroConsumoPercentualAlternativo().toString()));
} else {
arquivoTextoRegistroTipo01.append(Util.completaString("", 6));
}
// DATA DA EMISS�O DO DOCUMENTO DE COBRANCA
if (cobrancaDocumento != null) {
arquivoTextoRegistroTipo01.append(Util.formatarDataAAAAMMDD(cobrancaDocumento.getEmissao()));
} else {
arquivoTextoRegistroTipo01.append(Util.completaString("", 8));
}
arquivoTextoRegistroTipo01.append(System.getProperty("line.separator"));
return arquivoTextoRegistroTipo01;
}
/**
* [UC0745] - Gerar Arquivo Texto para Faturamento
*
* [SB0001] - Gerar Arquivo Texto - Registro Tipo 02
*
* @author Raphael Rossiter
* @date 24/04/2008
*
* @param imovel
* @param conta
* @return StringBuilder
* @throws ControladorException
*/
@SuppressWarnings("rawtypes")
public Object[] gerarArquivoTextoRegistroTipo02(Imovel imovel, Conta conta,
SistemaParametro sistemaParametro) throws ControladorException {
StringBuilder arquivoTextoRegistroTipo02 = new StringBuilder();
int quantidadeLinhas = 0;
Object[] retorno = new Object[2];
short icTarifaCategoria = sistemaParametro
.getIndicadorTarifaCategoria();
if (icTarifaCategoria == SistemaParametro.INDICADOR_TARIFA_CATEGORIA) {
Collection colecaoCategoria = null;
if (conta != null) {
// PESQUISANDO A PARTIR DA TABELA CONTA_CATEGORIA
colecaoCategoria = this.getControladorImovel()
.obterQuantidadeEconomiasContaCategoria(conta);
} else {
// PESQUISANDO A PARTIR DA TABELA IMOVEL_SUBCATEGORIA
colecaoCategoria = this.getControladorImovel()
.obterQuantidadeEconomiasCategoria(imovel);
}
if (colecaoCategoria != null && !colecaoCategoria.isEmpty()) {
Iterator iterator = colecaoCategoria.iterator();
while (iterator.hasNext()) {
Categoria categoria = (Categoria) iterator.next();
quantidadeLinhas = quantidadeLinhas + 1;
// TIPO DO REGISTRO
arquivoTextoRegistroTipo02.append("02");
// MATR�CULA DO IM�VEL
arquivoTextoRegistroTipo02.append(Util
.adicionarZerosEsquedaNumero(9, imovel.getId()
.toString()));
// CODIGO_CATEGORIA
arquivoTextoRegistroTipo02.append(categoria.getId()
.toString());
// DESCRICAO_CATEGORIA
arquivoTextoRegistroTipo02.append(Util.completaString(
categoria.getDescricao(), 15));
// CODIGO_SUBCATEGORIA
arquivoTextoRegistroTipo02.append(Util
.adicionarZerosEsquedaNumero(3, "0"));
// DESCRICAO_SUBCATEGORIA
arquivoTextoRegistroTipo02.append(Util.completaString("",
50));
// QUANTIDADE_ECONOMIAS_SUBCATEGORIA
arquivoTextoRegistroTipo02
.append(Util.adicionarZerosEsquedaNumero(
4,
""
+ categoria
.getQuantidadeEconomiasCategoria()));
// DESCRICAO_ABREVIADA_CATEGORIA
arquivoTextoRegistroTipo02.append(Util.completaString(
categoria.getDescricaoAbreviada(), 3));
// DESCRICAO_ABREVIADA_SUBCATEGORIA
arquivoTextoRegistroTipo02.append(Util.completaString("",
20));
// FATOR ECONOMIAS
String fatorEconomias = "";
if (categoria.getFatorEconomias() != null) {
fatorEconomias = categoria.getFatorEconomias()
.toString();
}
arquivoTextoRegistroTipo02.append(Util.completaString(
fatorEconomias, 2));
arquivoTextoRegistroTipo02.append(System
.getProperty("line.separator"));
}
}
} else {
Collection colecaoSubcategoria = null;
if (conta != null) {
// PESQUISANDO A PARTIR DA TABELA CONTA_CATEGORIA
colecaoSubcategoria = this.getControladorImovel()
.obterQuantidadeEconomiasContaCategoriaPorSubcategoria(
conta.getId());
} else {
// PESQUISANDO A PARTIR DA TABELA IMOVEL_SUBCATEGORIA
colecaoSubcategoria = this.getControladorImovel()
.obterQuantidadeEconomiasSubCategoria(imovel.getId());
}
if (colecaoSubcategoria != null && !colecaoSubcategoria.isEmpty()) {
Iterator iterator = colecaoSubcategoria.iterator();
while (iterator.hasNext()) {
Subcategoria subcategoria = (Subcategoria) iterator.next();
quantidadeLinhas = quantidadeLinhas + 1;
// TIPO DO REGISTRO
arquivoTextoRegistroTipo02.append("02");
// MATR�CULA DO IM�VEL
arquivoTextoRegistroTipo02.append(Util
.adicionarZerosEsquedaNumero(9, imovel.getId()
.toString()));
// CODIGO_CATEGORIA
arquivoTextoRegistroTipo02.append(subcategoria
.getCategoria().getId().toString());
// DESCRICAO_CATEGORIA
arquivoTextoRegistroTipo02.append(Util.completaString(
subcategoria.getCategoria().getDescricao(), 15));
// CODIGO_SUBCATEGORIA
arquivoTextoRegistroTipo02.append(Util
.adicionarZerosEsquedaNumero(3, subcategoria
.getId().toString()));
// DESCRICAO_SUBCATEGORIA
arquivoTextoRegistroTipo02.append(Util.completaString(
subcategoria.getDescricao(), 50));
// QUANTIDADE_ECONOMIAS_SUBCATEGORIA
arquivoTextoRegistroTipo02
.append(Util.adicionarZerosEsquedaNumero(4, ""
+ subcategoria.getQuantidadeEconomias()));
// DESCRICAO_ABREVIADA_CATEGORIA
arquivoTextoRegistroTipo02.append(Util
.completaString(subcategoria.getCategoria()
.getDescricaoAbreviada(), 3));
// DESCRICAO_ABREVIADA_SUBCATEGORIA
arquivoTextoRegistroTipo02.append(Util.completaString(
subcategoria.getDescricaoAbreviada(), 20));
// FATOR ECONOMIAS
String fatorEconomias = "";
if (subcategoria.getCategoria().getFatorEconomias() != null) {
fatorEconomias = subcategoria.getCategoria()
.getFatorEconomias().toString();
}
arquivoTextoRegistroTipo02.append(Util.completaString(
fatorEconomias, 2));
arquivoTextoRegistroTipo02.append(System
.getProperty("line.separator"));
}
}
}
retorno[0] = arquivoTextoRegistroTipo02;
retorno[1] = quantidadeLinhas;
return retorno;
}
/**
* [UC0745] - Gerar Arquivo Texto para Faturamento
*
* [SB0001] - Gerar Arquivo Texto - Registro Tipo 03
*
* @author Raphael Rossiter
* @date 24/04/2008
*
* @param imovel
* @param anoMesReferencia
* @return StringBuilder
* @throws ControladorException
*/
@SuppressWarnings("rawtypes")
public Object[] gerarArquivoTextoRegistroTipo03(Imovel imovel,
Integer anoMesReferencia) throws ControladorException {
StringBuilder arquivoTextoRegistroTipo03 = new StringBuilder();
int quantidadeLinhas = 0;
Object[] retorno = new Object[2];
// Para cada im�vel obter os 6 �ltimos consumos e medi��es anteriores.
// Integer anoMesReferenciaFim =
// Util.subtrairMesDoAnoMes(anoMesReferencia, 1);
// Integer anoMesReferenciaInicio =
// Util.subtrairMesDoAnoMes(anoMesReferencia, 6);
Collection colecaoConsumoHistorico = this.getControladorMicromedicao()
.obterUltimosConsumosImovel(imovel);
if (colecaoConsumoHistorico != null
&& !colecaoConsumoHistorico.isEmpty()) {
Iterator iterator = colecaoConsumoHistorico.iterator();
while (iterator.hasNext()) {
ConsumoHistorico consumoHistorico = (ConsumoHistorico) iterator
.next();
quantidadeLinhas = quantidadeLinhas + 1;
// TIPO DO REGISTRO
arquivoTextoRegistroTipo03.append("03");
// MATR�CULA DO IM�VEL
arquivoTextoRegistroTipo03.append(Util
.adicionarZerosEsquedaNumero(9, imovel.getId()
.toString()));
// LICAGAO_TIPO
arquivoTextoRegistroTipo03.append(String
.valueOf(consumoHistorico.getLigacaoTipo().getId()
.toString()));
// ANO_MES_FATURAMENTO
arquivoTextoRegistroTipo03.append(String
.valueOf(consumoHistorico.getReferenciaFaturamento()));
// CONSUMO_FATURADO_MES
if (consumoHistorico.getNumeroConsumoFaturadoMes() != null) {
arquivoTextoRegistroTipo03.append(Util
.adicionarZerosEsquedaNumero(6, consumoHistorico
.getNumeroConsumoFaturadoMes().toString()));
} else {
arquivoTextoRegistroTipo03.append(Util
.adicionarZerosEsquedaNumero(6, "0"));
}
// ANORMALIDADE_LEITURA
Integer idLeituraAnormalidadeFaturamento = this
.getControladorMicromedicao()
.obterLeituraAnormalidadeFaturamentoMedicaoHistorico(
consumoHistorico);
if (idLeituraAnormalidadeFaturamento != null) {
arquivoTextoRegistroTipo03
.append(Util
.adicionarZerosEsquedaNumero(2,
idLeituraAnormalidadeFaturamento
.toString()));
} else {
arquivoTextoRegistroTipo03.append(Util
.adicionarZerosEsquedaNumero(2, "0"));
}
// ANORMALIDADE_CONSUMO
if (consumoHistorico.getConsumoAnormalidade() != null) {
arquivoTextoRegistroTipo03.append(Util
.adicionarZerosEsquedaNumero(2, consumoHistorico
.getConsumoAnormalidade().getId()
.toString()));
} else {
arquivoTextoRegistroTipo03.append(Util
.adicionarZerosEsquedaNumero(2, "0"));
}
arquivoTextoRegistroTipo03.append(System
.getProperty("line.separator"));
}
}
retorno[0] = arquivoTextoRegistroTipo03;
retorno[1] = quantidadeLinhas;
return retorno;
}
/**
* [UC0745] - Gerar Arquivo Texto para Faturamento
*
* [SB0001] - Gerar Arquivo Texto - Registro Tipo 04 [SB0002] - Obter dados
* dos servi�os e parcelamento
*
* @author Raphael Rossiter
* @date 28/04/2008
*
* @param conta
* @return StringBuilder
* @throws ControladorException
*/
@SuppressWarnings("rawtypes")
public Object[] gerarArquivoTextoRegistroTipo04(Conta conta)
throws ControladorException {
StringBuilder arquivoTextoRegistroTipo04 = new StringBuilder();
int quantidadeLinhas = 0;
Object[] retorno = new Object[2];
if (conta != null) {
// [SB0002] - Obter dados dos servi�os e parcelamento - PARTE I
// -----------------------------------------------------------------------------------------
// Object[] debitoCobradoDeParcelamento = null;
// try {
// CRC4428 - Vivianne Sousa - 14/06/2010
/**
* Data: 13/05/2011
*
* Altera��o para que no caso do im�vel ter um ou mais parcelamento
* ativos, todos sejam passados para o arquivo de rota
* */
Collection colecaoDebitoCobradoDeParcelamento = this
.getControladorFaturamento()
.pesquisarDebitoCobradoDeParcelamentoIS(conta);
// } catch (ErroRepositorioException e) {
// sessionContext.setRollbackOnly();
// throw new ControladorException("erro.sistema", e);
// }
if (colecaoDebitoCobradoDeParcelamento != null
&& !colecaoDebitoCobradoDeParcelamento.isEmpty()) {
Iterator iterator = colecaoDebitoCobradoDeParcelamento
.iterator();
while (iterator.hasNext()) {
Object[] arrayDebitoCobrado = (Object[]) iterator.next();
quantidadeLinhas = quantidadeLinhas + 1;
// TIPO DO REGISTRO
arquivoTextoRegistroTipo04.append("04");
// MATR�CULA DO IM�VEL
arquivoTextoRegistroTipo04.append(Util
.adicionarZerosEsquedaNumero(9, conta.getImovel()
.getId().toString()));
// DESCRICAO_SERVICO_PARCELAMENTO
/*
* Troca de 2 para 3 o tamanho da string, logo
* se o numero de parcelas for 12 e for a presta��o 4,
* ficar� 004/012. Com isso padroniza o tamanho da cadeia,
* atendendo os casos que o parcelamento possua 3 caracter
*/
arquivoTextoRegistroTipo04
.append(Util
.completaStringComEspacoADireitaCondicaoTamanhoMaximo(
"PARCELAMENTO DE DEBITOS PARCELA "
+ Util.adicionarZerosEsquedaNumero(
3,
String.valueOf(arrayDebitoCobrado[0]))
+ "/"
+ Util.adicionarZerosEsquedaNumero(
3,
String.valueOf(arrayDebitoCobrado[1])),
90));
// VALOR_SERVICO_PARCELAMENTO
arquivoTextoRegistroTipo04
.append(Util.adicionarZerosEsquedaNumero(
14,
Util.formatarBigDecimalComPonto((BigDecimal) arrayDebitoCobrado[2])));
arquivoTextoRegistroTipo04
.append(Util
.completaString(
(arrayDebitoCobrado[3] != null ? arrayDebitoCobrado[3]
: "")
+ "", 6));
arquivoTextoRegistroTipo04.append(System
.getProperty("line.separator"));
}
}
// FIM - [SB0002] - Obter dados dos servi�os e parcelamento - PARTE
// I
// -----------------------------------------------------------------------------------------
// [SB0002] - Obter dados dos servi�os e parcelamento - PARTE II
// -----------------------------------------------------------------------------------------
// Collection colecaoDebitoCobradoNaoParcelamento = null;
// try {
// CRC4428 - Vivianne Sousa - 14/06/2010
Collection colecaoDebitoCobradoNaoParcelamento = this
.getControladorFaturamento()
.pesquisarDebitoCobradoNaoParcelamento(conta);
// } catch (ErroRepositorioException e) {
// sessionContext.setRollbackOnly();
// throw new ControladorException("erro.sistema", e);
// }
if (colecaoDebitoCobradoNaoParcelamento != null
&& !colecaoDebitoCobradoNaoParcelamento.isEmpty()) {
Iterator iterator = colecaoDebitoCobradoNaoParcelamento
.iterator();
DebitoCobrado debitoCobradoAnterior = null;
DebitoCobrado debitoCobradoAtual = null;
BigDecimal valorPrestacaoAcumulado = BigDecimal.ZERO;
String anoMesAcumulado = "";
Integer qtdAnoMesDistintos = 0;
while (iterator.hasNext()) {
debitoCobradoAtual = (DebitoCobrado) iterator.next();
if (debitoCobradoAnterior == null) {
debitoCobradoAnterior = debitoCobradoAtual;
if (debitoCobradoAnterior.getAnoMesReferenciaDebito() != null) {
// ACUMULA O VALOR DA PRESTA��O PARA OS D�BITOS DE
// MESMO TIPO
valorPrestacaoAcumulado = debitoCobradoAnterior
.getValorPrestacao();
// ACUMULA A QUANTIDADE DE ANO/M�S DISTINTOS PARA O
// MESMO TIPO DE D�BITO
qtdAnoMesDistintos++;
// CONCATENANDO OS ANO/M�S DOS DEBITOS DE MESMO TIPO
anoMesAcumulado = Util
.formatarAnoMesParaMesAno(debitoCobradoAnterior
.getAnoMesReferenciaDebito());
} else {
quantidadeLinhas = quantidadeLinhas + 1;
// GERANDO - [SB0002] - Obter dados dos servi�os e
// parcelamento - PARTE II
arquivoTextoRegistroTipo04.append(this
.obterDadosServicosParcelamentosParteII(
conta, debitoCobradoAnterior, 1,
"", debitoCobradoAnterior
.getValorPrestacao()));
}
} else if (debitoCobradoAnterior != null
&& debitoCobradoAnterior
.getDebitoTipo()
.getId()
.equals(debitoCobradoAtual.getDebitoTipo()
.getId())) {
debitoCobradoAnterior = debitoCobradoAtual;
if (debitoCobradoAnterior.getAnoMesReferenciaDebito() != null) {
// ACUMULA O VALOR DA PRESTA��O PARA OS D�BITOS DE
// MESMO TIPO
valorPrestacaoAcumulado = valorPrestacaoAcumulado
.add(debitoCobradoAtual.getValorPrestacao());
// ACUMULA A QUANTIDADE DE ANO/M�S DISTINTOS PARA O
// MESMO TIPO DE D�BITO
qtdAnoMesDistintos++;
// CONCATENANDO OS ANO/M�S DOS DEBITOS DE MESMO TIPO
anoMesAcumulado = anoMesAcumulado
+ " "
+ Util.formatarAnoMesParaMesAno(debitoCobradoAtual
.getAnoMesReferenciaDebito());
} else {
quantidadeLinhas = quantidadeLinhas + 1;
// GERANDO - [SB0002] - Obter dados dos servi�os e
// parcelamento - PARTE II
arquivoTextoRegistroTipo04.append(this
.obterDadosServicosParcelamentosParteII(
conta, debitoCobradoAnterior, 1,
"", debitoCobradoAnterior
.getValorPrestacao()));
}
} else {
if (qtdAnoMesDistintos > 0) {
quantidadeLinhas = quantidadeLinhas + 1;
// GERANDO - [SB0002] - Obter dados dos servi�os e
// parcelamento - PARTE II
arquivoTextoRegistroTipo04.append(this
.obterDadosServicosParcelamentosParteII(
conta, debitoCobradoAnterior,
qtdAnoMesDistintos,
anoMesAcumulado,
valorPrestacaoAcumulado));
}
debitoCobradoAnterior = debitoCobradoAtual;
qtdAnoMesDistintos = 0;
if (debitoCobradoAnterior.getAnoMesReferenciaDebito() != null) {
// INICIALIZANDO O VALOR DA PRESTA��O PARA OS
// D�BITOS DE MESMO TIPO
valorPrestacaoAcumulado = debitoCobradoAnterior
.getValorPrestacao();
// ACUMULA A QUANTIDADE DE ANO/M�S DISTINTOS PARA O
// MESMO TIPO DE D�BITO
qtdAnoMesDistintos = 1;
// CONCATENANDO OS ANO/M�S DOS DEBITOS DE MESMO TIPO
anoMesAcumulado = Util
.formatarAnoMesParaMesAno(debitoCobradoAnterior
.getAnoMesReferenciaDebito());
} else {
quantidadeLinhas = quantidadeLinhas + 1;
// GERANDO - [SB0002] - Obter dados dos servi�os e
// parcelamento - PARTE II
arquivoTextoRegistroTipo04.append(this
.obterDadosServicosParcelamentosParteII(
conta, debitoCobradoAnterior, 1,
"", debitoCobradoAnterior
.getValorPrestacao()));
}
}
}
if (qtdAnoMesDistintos > 0) {
quantidadeLinhas = quantidadeLinhas + 1;
// GERANDO - [SB0002] - Obter dados dos servi�os e
// parcelamento - PARTE II
arquivoTextoRegistroTipo04.append(this
.obterDadosServicosParcelamentosParteII(conta,
debitoCobradoAnterior, qtdAnoMesDistintos,
anoMesAcumulado, valorPrestacaoAcumulado));
}
}
// FIM - [SB0002] - Obter dados dos servi�os e parcelamento - PARTE
// II
// -----------------------------------------------------------------------------------------
}
retorno[0] = arquivoTextoRegistroTipo04;
retorno[1] = quantidadeLinhas;
return retorno;
}
/**
* [UC0745] - Gerar Arquivo Texto para Faturamento
*
* [SB0001] - Gerar Arquivo Texto - Registro Tipo 04 [SB0002] - Obter dados
* dos servi�os e parcelamento - PARTE II
*
* @author Raphael Rossiter
* @date 28/04/2008
*
* @param conta
* @param debitoCobrado
* @param qtdAnoMesDistintos
* @param anoMesAcumulado
* @param valorPrestacaoAcumulado
* @return StringBuilder
* @throws ControladorException
*/
public StringBuilder obterDadosServicosParcelamentosParteII(Conta conta,
DebitoCobrado debitoCobrado, Integer qtdAnoMesDistintos,
String anoMesAcumulado, BigDecimal valorPrestacaoAcumulado)
throws ControladorException {
StringBuilder arquivoTextoRegistroTipo04 = new StringBuilder();
// TIPO DO REGISTRO
arquivoTextoRegistroTipo04.append("04");
// MATR�CULA DO IM�VEL
arquivoTextoRegistroTipo04.append(Util.adicionarZerosEsquedaNumero(9,
conta.getImovel().getId().toString()));
if (qtdAnoMesDistintos > 1) {
/*
* Caso a lista dos meses de refer�ncia distintos do grupo de tipo
* de d�bitos esteja preenchida
*/
if (qtdAnoMesDistintos > 5) {
// DESCRICAO_SERVICO_PARCELAMENTO
arquivoTextoRegistroTipo04.append(Util.completaString(
debitoCobrado.getDebitoTipo().getDescricao() + " "
+ anoMesAcumulado + " E OUTRAS", 90));
} else {
// DESCRICAO_SERVICO_PARCELAMENTO
arquivoTextoRegistroTipo04.append(Util.completaString(
debitoCobrado.getDebitoTipo().getDescricao() + " "
+ anoMesAcumulado, 90));
}
// VALOR_SERVICO_PARCELAMENTO
arquivoTextoRegistroTipo04.append(Util.adicionarZerosEsquedaNumero(
14,
Util.formatarBigDecimalComPonto(valorPrestacaoAcumulado)));
if (debitoCobrado.getDebitoTipo() != null
&& debitoCobrado.getDebitoTipo().getCodigoConstante() != null) {
arquivoTextoRegistroTipo04.append(Util
.completaString(debitoCobrado.getDebitoTipo()
.getCodigoConstante() + "", 6));
} else {
arquivoTextoRegistroTipo04.append(Util.completaString("", 6));
}
arquivoTextoRegistroTipo04.append(System
.getProperty("line.separator"));
} else {
if (anoMesAcumulado == null || anoMesAcumulado.equals("")) {
// Caso contr�rio formata o n�mero da parcela do d�bito.
// DESCRICAO_SERVICO_PARCELAMENTO
/**
* Data: 08/02/2011
*
* Altera��o do numero de presta��es de 2 para 3 caracteres. E
* mudan�a da string de 90 para 60, para corre��o do
* deslocamento dos caracteres, que enviava o valor incorreto de
* parcelamento para o IS.
*/
arquivoTextoRegistroTipo04.append(Util.completaString(
debitoCobrado.getDebitoTipo().getDescricao()
+ " PARCELA "
+ Util.adicionarZerosEsquedaNumero(3, String
.valueOf(debitoCobrado
.getNumeroPrestacaoDebito()))
+ "/"
+ Util.adicionarZerosEsquedaNumero(3, String
.valueOf(debitoCobrado
.getNumeroPrestacao())), 90));
} else {
// DESCRICAO_SERVICO_PARCELAMENTO
arquivoTextoRegistroTipo04.append(Util.completaString(
debitoCobrado.getDebitoTipo().getDescricao() + " "
+ anoMesAcumulado, 90));
}
// VALOR_SERVICO_PARCELAMENTO
arquivoTextoRegistroTipo04.append(Util.adicionarZerosEsquedaNumero(
14, Util.formatarBigDecimalComPonto(debitoCobrado
.getValorPrestacao())));
if (debitoCobrado.getDebitoTipo() != null
&& debitoCobrado.getDebitoTipo().getCodigoConstante() != null) {
arquivoTextoRegistroTipo04.append(Util
.completaString(debitoCobrado.getDebitoTipo()
.getCodigoConstante() + "", 6));
} else {
arquivoTextoRegistroTipo04.append(Util.completaString("", 6));
}
arquivoTextoRegistroTipo04.append(System
.getProperty("line.separator"));
}
return arquivoTextoRegistroTipo04;
}
/**
* [UC0745] - Gerar Arquivo Texto para Faturamento
*
* [SB0001] - Gerar Arquivo Texto - Registro Tipo 05 [SB0003] - Obter dados
* dos cr�ditos realizados
*
* @author Raphael Rossiter
* @date 29/04/2008
*
* @param conta
* @return StringBuilder
* @throws ControladorException
*/
@SuppressWarnings("rawtypes")
public Object[] gerarArquivoTextoRegistroTipo05(Conta conta)
throws ControladorException {
StringBuilder arquivoTextoRegistroTipo05 = new StringBuilder();
int quantidadeLinhas = 0;
Object[] retorno = new Object[2];
if (conta != null) {
// [SB0003] - Obter dados dos cr�ditos realizados
Collection colecaoCreditoRealizado = null;
try {
colecaoCreditoRealizado = this.repositorioFaturamento
.pesquisarCreditoRealizado(conta);
} catch (ErroRepositorioException e) {
sessionContext.setRollbackOnly();
throw new ControladorException("erro.sistema", e);
}
if (colecaoCreditoRealizado != null
&& !colecaoCreditoRealizado.isEmpty()) {
Iterator iterator = colecaoCreditoRealizado.iterator();
CreditoRealizado creditoRealizadoAnterior = null;
CreditoRealizado creditoRealizadoAtual = null;
BigDecimal valorCreditoAcumulado = BigDecimal.ZERO;
String anoMesAcumulado = "";
Integer qtdAnoMesDistintos = 0;
while (iterator.hasNext()) {
creditoRealizadoAtual = (CreditoRealizado) iterator.next();
if (creditoRealizadoAnterior == null) {
creditoRealizadoAnterior = creditoRealizadoAtual;
if (creditoRealizadoAnterior
.getAnoMesReferenciaCredito() != null) {
// ACUMULA O VALOR DOS CR�DITOS DE MESMO TIPO
valorCreditoAcumulado = creditoRealizadoAnterior
.getValorCredito();
// ACUMULA A QUANTIDADE DE ANO/M�S DISTINTOS PARA O
// MESMO TIPO DE CR�DITO
qtdAnoMesDistintos++;
// CONCATENANDO OS ANO/M�S DOS CR�DITOS DE MESMO
// TIPO
anoMesAcumulado = Util
.formatarAnoMesParaMesAno(creditoRealizadoAnterior
.getAnoMesReferenciaCredito());
} else {
quantidadeLinhas = quantidadeLinhas + 1;
// GERANDO - [SB0003] - Obter dados dos cr�ditos
// realizados
arquivoTextoRegistroTipo05.append(this
.obterDadosCreditosRealizados(conta,
creditoRealizadoAnterior, 1, "",
creditoRealizadoAnterior
.getValorCredito()));
}
} else if (creditoRealizadoAnterior != null
&& creditoRealizadoAnterior
.getCreditoTipo()
.getId()
.equals(creditoRealizadoAtual
.getCreditoTipo().getId())) {
creditoRealizadoAnterior = creditoRealizadoAtual;
if (creditoRealizadoAnterior
.getAnoMesReferenciaCredito() != null) {
// ACUMULA O VALOR DOS CR�DITOS DE MESMO TIPO
valorCreditoAcumulado = valorCreditoAcumulado
.add(creditoRealizadoAtual
.getValorCredito());
// ACUMULA A QUANTIDADE DE ANO/M�S DISTINTOS PARA O
// MESMO TIPO DE CR�DITO
qtdAnoMesDistintos++;
// CONCATENANDO OS ANO/M�S DOS CR�DITOS DE MESMO
// TIPO
anoMesAcumulado = anoMesAcumulado
+ " "
+ Util.formatarAnoMesParaMesAno(creditoRealizadoAtual
.getAnoMesReferenciaCredito());
} else {
quantidadeLinhas = quantidadeLinhas + 1;
// GERANDO - [SB0003] - Obter dados dos cr�ditos
// realizados
arquivoTextoRegistroTipo05.append(this
.obterDadosCreditosRealizados(conta,
creditoRealizadoAnterior, 1, "",
creditoRealizadoAnterior
.getValorCredito()));
}
} else {
if (qtdAnoMesDistintos > 0) {
quantidadeLinhas = quantidadeLinhas + 1;
// GERANDO - [SB0003] - Obter dados dos cr�ditos
// realizados
arquivoTextoRegistroTipo05.append(this
.obterDadosCreditosRealizados(conta,
creditoRealizadoAnterior,
qtdAnoMesDistintos,
anoMesAcumulado,
valorCreditoAcumulado));
}
creditoRealizadoAnterior = creditoRealizadoAtual;
qtdAnoMesDistintos = 0;
if (creditoRealizadoAnterior
.getAnoMesReferenciaCredito() != null) {
// INICIALIZANDO O VALOR DA PRESTA��O PARA OS
// D�BITOS DE MESMO TIPO
valorCreditoAcumulado = creditoRealizadoAnterior
.getValorCredito();
// INICIALIZANDO A QUANTIDADE DE ANO/M�S DISTINTOS
// PARA O MESMO TIPO DE CR�DITO
qtdAnoMesDistintos = 1;
// CONCATENANDO OS ANO/M�S DOS CR�DITOS DE MESMO
// TIPO
anoMesAcumulado = Util
.formatarAnoMesParaMesAno(creditoRealizadoAnterior
.getAnoMesReferenciaCredito());
} else {
quantidadeLinhas = quantidadeLinhas + 1;
// GERANDO - [SB0003] - Obter dados dos cr�ditos
// realizados
arquivoTextoRegistroTipo05.append(this
.obterDadosCreditosRealizados(conta,
creditoRealizadoAnterior, 1, "",
creditoRealizadoAnterior
.getValorCredito()));
}
}
}
if (qtdAnoMesDistintos > 0) {
quantidadeLinhas = quantidadeLinhas + 1;
// GERANDO - [SB0003] - Obter dados dos cr�ditos realizados
arquivoTextoRegistroTipo05.append(this
.obterDadosCreditosRealizados(conta,
creditoRealizadoAnterior,
qtdAnoMesDistintos, anoMesAcumulado,
valorCreditoAcumulado));
}
}
}
retorno[0] = arquivoTextoRegistroTipo05;
retorno[1] = quantidadeLinhas;
return retorno;
}
/**
* [UC0745] - Gerar Arquivo Texto para Faturamento
*
* [SB0001] - Gerar Arquivo Texto - Registro Tipo 05 [SB0003] - Obter dados
* dos cr�ditos realizados
*
* @author Raphael Rossiter
* @date 29/04/2008
*
* @param conta
* @param creditoRealizado
* @param qtdAnoMesDistintos
* @param anoMesAcumulado
* @param valorCreditoAcumulado
* @return StringBuilder
* @throws ControladorException
*/
public StringBuilder obterDadosCreditosRealizados(Conta conta,
CreditoRealizado creditoRealizado, Integer qtdAnoMesDistintos,
String anoMesAcumulado, BigDecimal valorCreditoAcumulado)
throws ControladorException {
StringBuilder arquivoTextoRegistroTipo05 = new StringBuilder();
// TIPO DO REGISTRO
arquivoTextoRegistroTipo05.append("05");
// MATR�CULA DO IM�VEL
arquivoTextoRegistroTipo05.append(Util.adicionarZerosEsquedaNumero(9,
conta.getImovel().getId().toString()));
if (qtdAnoMesDistintos > 1) {
/*
* Caso a lista dos meses de refer�ncia distintos do grupo de tipo
* de cr�ditos esteja preenchida
*/
if (qtdAnoMesDistintos > 5) {
// DESCRICAO_CREDITO
arquivoTextoRegistroTipo05.append(Util.completaString(
creditoRealizado.getCreditoTipo().getDescricao() + " "
+ anoMesAcumulado + " E OUTRAS", 90));
} else {
// DESCRICAO_CREDITO
arquivoTextoRegistroTipo05.append(Util.completaString(
creditoRealizado.getCreditoTipo().getDescricao() + " "
+ anoMesAcumulado, 90));
}
// VALOR_CREDITO
arquivoTextoRegistroTipo05
.append(Util.adicionarZerosEsquedaNumero(14, Util
.formatarBigDecimalComPonto(valorCreditoAcumulado)));
if (creditoRealizado.getCreditoTipo() != null
&& creditoRealizado.getCreditoTipo().getCodigoConstante() != null) {
arquivoTextoRegistroTipo05.append(Util.completaString(
creditoRealizado.getCreditoTipo().getCodigoConstante()
+ "", 6));
}
/*
* Adi��o de uma condi��o para que o id do cr�dito
* seja repassado para o arquivo txt
*/
else if (creditoRealizado.getCreditoTipo() != null) {
arquivoTextoRegistroTipo05.append(Util.completaString(
creditoRealizado.getCreditoTipo().getId() + "", 6));
} else {
arquivoTextoRegistroTipo05.append(Util.completaString("", 6));
}
arquivoTextoRegistroTipo05.append(System
.getProperty("line.separator"));
} else {
// Caso contr�rio formata o n�mero da parcela do cr�dito.
if (anoMesAcumulado == null || anoMesAcumulado.equals("")) {
// DESCRICAO_CREDITO
arquivoTextoRegistroTipo05.append(Util.completaString(
creditoRealizado.getCreditoTipo().getDescricao()
+ " PARCELA "
+ Util.adicionarZerosEsquedaNumero(2, String
.valueOf(creditoRealizado
.getNumeroPrestacaoCredito()))
+ "/"
+ Util.adicionarZerosEsquedaNumero(2, String
.valueOf(creditoRealizado
.getNumeroPrestacao())), 90));
} else {
// DESCRICAO_SERVICO_PARCELAMENTO
arquivoTextoRegistroTipo05.append(Util.completaString(
creditoRealizado.getCreditoTipo().getDescricao() + " "
+ anoMesAcumulado, 90));
}
// VALOR_CREDITO
arquivoTextoRegistroTipo05.append(Util.adicionarZerosEsquedaNumero(
14, Util.formatarBigDecimalComPonto(creditoRealizado
.getValorCredito())));
if (creditoRealizado.getCreditoTipo() != null
&& creditoRealizado.getCreditoTipo().getCodigoConstante() != null) {
arquivoTextoRegistroTipo05.append(Util.completaString(
creditoRealizado.getCreditoTipo().getCodigoConstante()
+ "", 6));
}
/*
* Adi��o de uma condi��o para que o id do cr�dito
* seja repassado para o arquivo txt
*/
else if (creditoRealizado.getCreditoTipo() != null) {
arquivoTextoRegistroTipo05.append(Util.completaString(
creditoRealizado.getCreditoTipo().getId() + "", 6));
} else {
arquivoTextoRegistroTipo05.append(Util.completaString("", 6));
}
arquivoTextoRegistroTipo05.append(System
.getProperty("line.separator"));
}
return arquivoTextoRegistroTipo05;
}
/**
* [UC0745] - Gerar Arquivo Texto para Faturamento
*
* [SB0001] - Gerar Arquivo Texto - Registro Tipo 06 [SB0004] - Gerar linhas
* dos impostos retidos
*
* @author Raphael Rossiter
* @date 29/04/2008
*
* @param conta
* @return StringBuilder
* @throws ControladorException
*/
@SuppressWarnings("rawtypes")
public Object[] gerarArquivoTextoRegistroTipo06(Conta conta)
throws ControladorException {
StringBuilder arquivoTextoRegistroTipo06 = new StringBuilder();
int quantidadeLinhas = 0;
Object[] retorno = new Object[2];
if (conta != null) {
// [SB0004] - Gerar linhas dos impostos retidos
Collection colecaoImpostosRetidos = null;
try {
colecaoImpostosRetidos = this.repositorioFaturamento
.pesquisarParmsContaImpostosDeduzidos(conta.getId());
} catch (ErroRepositorioException e) {
sessionContext.setRollbackOnly();
throw new ControladorException("erro.sistema", e);
}
if (colecaoImpostosRetidos != null
&& !colecaoImpostosRetidos.isEmpty()) {
Iterator iterator = colecaoImpostosRetidos.iterator();
while (iterator.hasNext()) {
Object[] arrayImpostos = (Object[]) iterator.next();
quantidadeLinhas = quantidadeLinhas + 1;
// TIPO DO REGISTRO
arquivoTextoRegistroTipo06.append("06");
// MATR�CULA DO IM�VEL
arquivoTextoRegistroTipo06.append(Util
.adicionarZerosEsquedaNumero(9, conta.getImovel()
.getId().toString()));
// ID_IMPOSTO_TIPO
arquivoTextoRegistroTipo06.append(String
.valueOf(arrayImpostos[3]));
// DESCRICAO_IMPOSTO
arquivoTextoRegistroTipo06.append(Util.completaString(
String.valueOf(arrayImpostos[0]), 15));
// PERCENTUAL_ALIQUOTA
arquivoTextoRegistroTipo06
.append(Util.adicionarZerosEsquedaNumero(
6,
Util.formatarBigDecimalComPonto((BigDecimal) arrayImpostos[1])));
arquivoTextoRegistroTipo06.append(System
.getProperty("line.separator"));
}
}
}
retorno[0] = arquivoTextoRegistroTipo06;
retorno[1] = quantidadeLinhas;
return retorno;
}
/**
* [UC0745] - Gerar Arquivo Texto para Faturamento
*
* [SB0001] - Gerar Arquivo Texto - Registro Tipo 07 [SB0005] - Obter dados
* da conta em aberto
*
* @author Raphael Rossiter
* @date 29/04/2008
*
* @param conta
* @return StringBuilder
* @throws ControladorException
*/
public Object[] gerarArquivoTextoRegistroTipo07(Imovel imovel,
SistemaParametro sistemaParametro,
CobrancaDocumento cobrancaDocumento) throws ControladorException {
StringBuilder arquivoTextoRegistroTipo07 = new StringBuilder();
int quantidadeLinhas = 0;
Object[] retorno = new Object[2];
if (cobrancaDocumento != null && !cobrancaDocumento.equals("")) {
retorno = formatarCobrancaDocumentoItemParaImpressaoSimultanea(
imovel.getId(), cobrancaDocumento, 17);
} else {
retorno[0] = arquivoTextoRegistroTipo07;
retorno[1] = quantidadeLinhas;
}
// if (conta != null){
//
// //[SB0005] - Obter dados da conta em aberto
// String referenciaInicial = "190001";
//
// //PARM_AMREFERENCIAFATURAMENTO da tabela SISTEMA_PARAMETROS menos 1
// m�s.
// String referenciaFinal =
// String.valueOf(Util.subtrairMesDoAnoMes(sistemaParametro
// .getAnoMesFaturamento(), 1));
//
// Date dataVencimentoInicial = Util.criarData(1, 1, 1900);
//
// /*
// * Data referente ao �ltimo dia do ano/m�s de refer�ncia da
// arrecada��o (PARM_AMREFERENCIAARRECADACAO
// * da tabela SISTEMA_PARAMETROS) menos 1 m�s.
// */
// Integer anoMesArrecadacaoMenos1Mes =
// Util.subtrairMesDoAnoMes(sistemaParametro
// .getAnoMesArrecadacao(), 1);
//
// Integer ano = Util.obterAno(anoMesArrecadacaoMenos1Mes);
// Integer mes = Util.obterMes(anoMesArrecadacaoMenos1Mes);
//
// Date dataVencimentoFinal =
// Util.criarData(Integer.parseInt(Util.obterUltimoDiaMes(mes, ano)),
// mes, ano);
//
// //[UC0067] Obter D�bito do Im�vel ou Cliente
// ObterDebitoImovelOuClienteHelper imovelDebitos =
// this.getControladorCobranca()
// .obterDebitoImovelOuCliente(1, conta.getImovel().getId().toString(),
// null, null, referenciaInicial,
// referenciaFinal, dataVencimentoInicial, dataVencimentoFinal, 1, 2, 2,
// 2, 2, 1, 1, true);
//
// if (imovelDebitos.getColecaoContasValores() != null &&
// !imovelDebitos.getColecaoContasValores().isEmpty()){
//
// Iterator iterator =
// imovelDebitos.getColecaoContasValores().iterator();
//
// while(iterator.hasNext()){
//
// ContaValoresHelper contaValoresHelper = (ContaValoresHelper)
// iterator.next();
//
// quantidadeLinhas = quantidadeLinhas + 1;
// //TIPO DO REGISTRO
// arquivoTextoRegistroTipo07.append("07");
//
// //MATR�CULA DO IM�VEL
// arquivoTextoRegistroTipo07.append(Util.adicionarZerosEsquedaNumero(9,
// conta
// .getImovel().getId().toString()));
//
// //ANO/MES DE REFERENCIA DA CONTA
// arquivoTextoRegistroTipo07.append(String.valueOf(contaValoresHelper.getConta().getReferencia()));
//
// //VALOR DA CONTA
// arquivoTextoRegistroTipo07.append(Util.adicionarZerosEsquedaNumero(
// 14,
// Util.formatarBigDecimalComPonto(contaValoresHelper.getConta().getValorTotalContaBigDecimal())));
//
// //DATA DE VENCIMENTO
// arquivoTextoRegistroTipo07.append(Util.formatarDataAAAAMMDD(contaValoresHelper.getConta()
// .getDataVencimentoConta()));
//
// //VALOR ACR�SCIMOS IMPONTUALIDADE
// arquivoTextoRegistroTipo07.append(Util.adicionarZerosEsquedaNumero(
// 14,
// Util.formatarBigDecimalComPonto(contaValoresHelper.getValorTotalContaValores())));
//
//
// arquivoTextoRegistroTipo07.append(System.getProperty("line.separator"));
// }
// }
// }
return retorno;
}
/**
* [UC0745] - Gerar Arquivo Texto para Faturamento
*
* [SB0001] - Gerar Arquivo Texto - Registro Tipo 08 [SB0006] - Obter dados
* dos tipos de medi��o
*
* @author Raphael Rossiter
* @date 02/05/2008
*
* @param imovel
* @param anoMesReferencia
* @param sistemaParametro
* @return StringBuilder
* @throws ControladorException
*/
@SuppressWarnings({ "unchecked", "rawtypes" })
public Object[] gerarArquivoTextoRegistroTipo08(Imovel imovel,
Integer anoMesReferencia, SistemaParametro sistemaParametro)
throws ControladorException {
StringBuilder arquivoTextoRegistroTipo08 = new StringBuilder();
int quantidadeLinhas = 0;
Object[] retorno = new Object[2];
Date dataLigacao = null;
Date dataInstalacaoHidrometro = null;
// [SB0006] - Obter dados dos tipos de medi��o
Integer anoMesReferenciaAnterior = Util.subtrairMesDoAnoMes(
anoMesReferencia, 1);
Collection colecaoDadosMedicaoHistorico = this
.getControladorMicromedicao().obterDadosTiposMedicao(imovel,
anoMesReferenciaAnterior);
if (colecaoDadosMedicaoHistorico != null
&& !colecaoDadosMedicaoHistorico.isEmpty()) {
Iterator iterator = colecaoDadosMedicaoHistorico.iterator();
while (iterator.hasNext()) {
Object[] arrayMedicaoHistorico = (Object[]) iterator.next();
MedicaoHistorico medicaoHistorico = new MedicaoHistorico();
Hidrometro hidrometro = null;
quantidadeLinhas = quantidadeLinhas + 1;
// TIPO DO REGISTRO
arquivoTextoRegistroTipo08.append("08");
// MATR�CULA DO IM�VEL
arquivoTextoRegistroTipo08.append(Util
.adicionarZerosEsquedaNumero(9, imovel.getId()
.toString()));
// TIPO DE MEDI��O
MedicaoTipo medicaoTipo = new MedicaoTipo();
if (arrayMedicaoHistorico[7] != null
&& !((Integer) arrayMedicaoHistorico[7]).equals(0)) {
medicaoTipo.setId(MedicaoTipo.LIGACAO_AGUA);
arquivoTextoRegistroTipo08.append(MedicaoTipo.LIGACAO_AGUA
.toString());
} else {
medicaoTipo.setId(MedicaoTipo.POCO);
arquivoTextoRegistroTipo08.append(MedicaoTipo.POCO
.toString());
}
// N�MERO DO HIDR�METRO
if (arrayMedicaoHistorico[0] != null) {
hidrometro = new Hidrometro();
hidrometro.setNumero(String
.valueOf(arrayMedicaoHistorico[0]));
arquivoTextoRegistroTipo08.append(Util.completaString(
hidrometro.getNumero(), 11));
} else {
arquivoTextoRegistroTipo08.append(Util.completaString("",
11));
}
// DATA INSTALA��O HIDR�METRO
if (arrayMedicaoHistorico[2] != null) {
dataInstalacaoHidrometro = (Date) arrayMedicaoHistorico[2];
arquivoTextoRegistroTipo08.append(Util
.formatarDataAAAAMMDD(dataInstalacaoHidrometro));
} else {
arquivoTextoRegistroTipo08.append(Util
.completaString("", 8));
}
// N�MERO DE D�GITOS DE LEITURA
if (arrayMedicaoHistorico[1] != null) {
hidrometro
.setNumeroDigitosLeitura((Short) arrayMedicaoHistorico[1]);
arquivoTextoRegistroTipo08.append(hidrometro
.getNumeroDigitosLeitura().toString());
} else {
arquivoTextoRegistroTipo08.append(Util
.completaString("", 1));
}
// LEITURA ANTERIOR FATURADA
Integer leituraAnteriorFaturada = (Integer) arrayMedicaoHistorico[3];
String filtroPoTipoMedicao = "";
// LEITURA ANTERIOR INFORMADA
Integer leituraAnteriorInformada = null;
if (arrayMedicaoHistorico[12] != null) {
leituraAnteriorInformada = (Integer) arrayMedicaoHistorico[12];
}
/**
* Adicionando campos da data de ligacao
*/
if (medicaoTipo.getId().intValue() == MedicaoTipo.LIGACAO_AGUA
.intValue()) {
dataLigacao = imovel.getLigacaoAgua().getDataLigacao();
filtroPoTipoMedicao = FiltroMedicaoHistorico.LIGACAO_AGUA_ID;
} else {
dataLigacao = imovel.getLigacaoEsgoto().getDataLigacao();
filtroPoTipoMedicao = FiltroMedicaoHistorico.IMOVEL_ID;
}
Date dataLeituraAnteriorFaturamento = null;
Date dataLeituraAnteriorInformada = null;
// Verifica se existe medi��o historico para o m�s ano atual.
FiltroMedicaoHistorico filtroMedicaoHistorico = new FiltroMedicaoHistorico();
filtroMedicaoHistorico.adicionarParametro(new ParametroSimples(
filtroPoTipoMedicao, imovel.getId()));
filtroMedicaoHistorico.adicionarParametro(new ParametroSimples(
FiltroMedicaoHistorico.ANO_MES_REFERENCIA_FATURAMENTO,
anoMesReferencia));
Collection<MedicaoHistorico> colMedicaoHistoricoMenos1Mes = getControladorUtil()
.pesquisar(filtroMedicaoHistorico,
MedicaoHistorico.class.getName());
MedicaoHistorico medicaoHistoricoAtual = (MedicaoHistorico) Util
.retonarObjetoDeColecao(colMedicaoHistoricoMenos1Mes);
if (medicaoHistoricoAtual != null
&& !medicaoHistoricoAtual.equals("")) {
leituraAnteriorFaturada = medicaoHistoricoAtual
.getLeituraAnteriorFaturamento();
leituraAnteriorInformada = medicaoHistoricoAtual
.getLeituraAnteriorInformada();
dataLeituraAnteriorFaturamento = medicaoHistoricoAtual
.getDataLeituraAnteriorFaturamento();
dataLeituraAnteriorInformada = medicaoHistoricoAtual
.getDataLeituraAtualInformada();
}
medicaoHistorico
.setLeituraAnteriorFaturamento(leituraAnteriorFaturada);
if (leituraAnteriorInformada != null) {
medicaoHistorico
.setLeituraAnteriorInformada(leituraAnteriorInformada);
}
arquivoTextoRegistroTipo08.append(Util
.adicionarZerosEsquedaNumero(7,
leituraAnteriorFaturada.toString()));
// DATA DA LEITURA ANTERIOR FATURADA
if (dataLeituraAnteriorFaturamento != null
&& !dataLeituraAnteriorFaturamento.equals("")) {
arquivoTextoRegistroTipo08
.append(Util
.formatarDataAAAAMMDD(dataLeituraAnteriorFaturamento));
} else {
if (arrayMedicaoHistorico[4] != null) {
arquivoTextoRegistroTipo08
.append(Util
.formatarDataAAAAMMDD((Date) arrayMedicaoHistorico[4]));
} else {
arquivoTextoRegistroTipo08.append(Util.completaString(
"", 8));
}
}
// LEITURA SITUACAO ANTERIOR
if (arrayMedicaoHistorico[5] != null) {
LeituraSituacao leituraSituacao = new LeituraSituacao();
leituraSituacao.setId((Integer) arrayMedicaoHistorico[5]);
arquivoTextoRegistroTipo08.append(leituraSituacao.getId()
.toString());
medicaoHistorico.setLeituraSituacaoAtual(leituraSituacao);
} else {
arquivoTextoRegistroTipo08.append(Util
.completaString("", 1));
}
// CONSUMO M�DIO HIDR�METRO
// [UC0068] - Obter Consumo M�dio do Hidr�metro
/*
* int[] consumoMedioHidrometro =
* this.getControladorMicromedicao()
* .obterConsumoMedioImovel(imovel, sistemaParametro);
*/
sistemaParametro.setAnoMesFaturamento(anoMesReferencia);
/**
* Alterando o c�lculo da m�dia
*/
boolean houveIntslacaoHidrometro = this
.getControladorMicromedicao()
.verificarInstalacaoSubstituicaoHidrometro(
imovel.getId(), medicaoTipo);
int[] consumoMedioHidrometro = this
.getControladorMicromedicao()
.obterVolumeMedioAguaEsgoto(imovel.getId(),
anoMesReferencia, medicaoTipo.getId(), houveIntslacaoHidrometro);
// [SB0007] - Obter dados do limite de leitura esperada
Integer[] faixaLeitura = this.obterDadosLimiteLeituraEsperada(
imovel, hidrometro, consumoMedioHidrometro[0],
medicaoHistorico, sistemaParametro);
// LIMITE INFERIOR FAIXA LEITURA ESPERADA
arquivoTextoRegistroTipo08.append(Util
.adicionarZerosEsquedaNumero(7,
faixaLeitura[0].toString()));
// LIMITE SUPERIOR FAIXA LEITURA ESPERADA
arquivoTextoRegistroTipo08.append(Util
.adicionarZerosEsquedaNumero(7,
faixaLeitura[1].toString()));
// CONSUMO M�DIO HIDR�METRO
arquivoTextoRegistroTipo08.append(Util
.adicionarZerosEsquedaNumero(6,
String.valueOf(consumoMedioHidrometro[0])));
// DESCRI��O LOCAL INSTALA��O DO HIDROMETRO
if (arrayMedicaoHistorico[9] != null) {
arquivoTextoRegistroTipo08.append(Util.completaString(""
+ arrayMedicaoHistorico[9], 20));
} else {
arquivoTextoRegistroTipo08.append(Util.completaString("",
20));
}
// LEITURA ANTERIOR INFORMADA
if (leituraAnteriorInformada != null) {
arquivoTextoRegistroTipo08.append(Util
.adicionarZerosEsquedaNumero(7,
leituraAnteriorInformada.toString()));
} else {
arquivoTextoRegistroTipo08.append(Util
.completaString("", 7));
}
// DATA DA LEITURA ANTERIOR INFORMADA
/**
* Altera��o para enviar na rota a data da
* leitura anterior informada
* */
if (dataLeituraAnteriorInformada != null
&& !dataLeituraAnteriorInformada.equals("")) {
arquivoTextoRegistroTipo08
.append(Util
.formatarDataAAAAMMDD(dataLeituraAnteriorInformada));
} else {
if (arrayMedicaoHistorico[10] != null) {
arquivoTextoRegistroTipo08
.append(Util
.formatarDataAAAAMMDD((Date) arrayMedicaoHistorico[10]));
} else {
arquivoTextoRegistroTipo08.append(Util.completaString(
"", 8));
}
}
/**
* Adicionando a data da ligacao de agua do imovel
*/
arquivoTextoRegistroTipo08.append(Util.formatarDataAAAAMMDD(dataLigacao));
// TIPO DE RATEIO
if (arrayMedicaoHistorico[11] != null) {
arquivoTextoRegistroTipo08
.append(((Integer) arrayMedicaoHistorico[11])
.toString());
} else {
arquivoTextoRegistroTipo08.append(" ");
}
// LEITURA INSTALA��O HIDROMETRO
if (arrayMedicaoHistorico[3] != null) {
arquivoTextoRegistroTipo08.append(Util
.adicionarZerosEsquedaNumero(7,
arrayMedicaoHistorico[3].toString()));
} else {
arquivoTextoRegistroTipo08.append(Util
.completaString("", 7));
}
// INDICADOR PARALISAR LEITURA
if (imovel.getFaturamentoSituacaoTipo() != null) {
FiltroFaturamentoSituacaoHistorico filtroFaturamentoSituacaoHistorico = new FiltroFaturamentoSituacaoHistorico();
filtroFaturamentoSituacaoHistorico
.adicionarParametro(new ParametroSimples(
FiltroFaturamentoSituacaoHistorico.ID_IMOVEL,
imovel.getId()));
filtroFaturamentoSituacaoHistorico
.adicionarParametro(new ParametroNulo(
FiltroFaturamentoSituacaoHistorico.ANO_MES_FATURAMENTO_RETIRADA));
Collection<FaturamentoSituacaoHistorico> colFiltroFaturamentoSituacaoHistorico = this
.getControladorUtil().pesquisar(
filtroFaturamentoSituacaoHistorico,
FaturamentoSituacaoHistorico.class
.getName());
FaturamentoSituacaoHistorico faturamentoSituacaoHistorico = (FaturamentoSituacaoHistorico) Util
.retonarObjetoDeColecao(colFiltroFaturamentoSituacaoHistorico);
if ((faturamentoSituacaoHistorico != null
&& anoMesReferencia >= faturamentoSituacaoHistorico
.getAnoMesFaturamentoSituacaoInicio() && anoMesReferencia <= faturamentoSituacaoHistorico
.getAnoMesFaturamentoSituacaoFim())) {
// FTST_ICLEITURAPARALISACAO=1
if (imovel.getFaturamentoSituacaoTipo()
.getIndicadorParalisacaoLeitura()
.equals(new Short("1"))) {
if ((medicaoTipo.getId().equals(
MedicaoTipo.LIGACAO_AGUA) && imovel
.getFaturamentoSituacaoTipo()
.getIndicadorValidoAgua()
.equals(ConstantesSistema.INDICADOR_USO_ATIVO))
|| (medicaoTipo.getId().equals(
MedicaoTipo.POCO) && imovel
.getFaturamentoSituacaoTipo()
.getIndicadorValidoEsgoto()
.equals(ConstantesSistema.INDICADOR_USO_ATIVO))) {
}
}
}
}
arquivoTextoRegistroTipo08.append(System
.getProperty("line.separator"));
}
}
retorno[0] = arquivoTextoRegistroTipo08;
retorno[1] = quantidadeLinhas;
return retorno;
}
/**
* [UC0745] - Gerar Arquivo Texto para Faturamento
*
* [SB0001] - Gerar Arquivo Texto - Registro Tipo 08 [SB0007] - Obter dados
* do limite de leitura esperada
*
* @author Raphael Rossiter
* @date 30/04/2008
*
* @param imovel
* @param hidrometro
* @param consumoMedioHidrometro
* @param medicaoHistorico
* @param sistemaParametro
* @return Integer[]
* @throws ControladorException
*/
public Integer[] obterDadosLimiteLeituraEsperada(Imovel imovel,
Hidrometro hidrometro, Integer consumoMedioHidrometro,
MedicaoHistorico medicaoHistorico, SistemaParametro sistemaParametro)
throws ControladorException {
Integer[] retorno = new Integer[2];
/*
* Caso o im�vel n�o possua hidr�metro instalado para o tipo de medi��o:
* Gravar a faixa de leitura esperada com zero.
*/
if (hidrometro == null) {
retorno[0] = 0;
retorno[1] = 0;
} else {
// [UC0086] - Calcular Faixa de Leitura Esperada
int[] faixaLeituraEsperada = this
.getControladorMicromedicao().calcularFaixaLeituraEsperada(
consumoMedioHidrometro, null, hidrometro,
medicaoHistorico.getLeituraAnteriorFaturamento());
/*
* Caso esteja indicado nos par�metros do sistema que n�o seja
* gerado faixa falsa (PARM_ICGERACAOFAIXAFALSA=2 na tabela
* SISTEMA_PARAMETRO) ou que seja gerado de acordo com a rota
* (PARM_ICGERACAOFAIXAFALSA=3 na tabela SISTEMA_PARAMETRO) e esteja
* indicado na rota que n�o seja gerado faixa falsa
* (ROTA_ICGERACAOFAIXAFALSA=2): Gravar a faixa de leitura esperada.
*/
if ((sistemaParametro.getIndicadorFaixaFalsa() != null && sistemaParametro
.getIndicadorFaixaFalsa().equals(
ConstantesSistema.GERAR_FAIXA_FALSA_DESATIVO))
|| (sistemaParametro.getIndicadorFaixaFalsa() != null
&& sistemaParametro
.getIndicadorFaixaFalsa()
.equals(ConstantesSistema.GERAR_FAIXA_FALSA_ROTA)
&& imovel.getQuadra().getRota()
.getIndicadorGerarFalsaFaixa() != null && imovel
.getQuadra()
.getRota()
.getIndicadorGerarFalsaFaixa()
.equals(ConstantesSistema.GERAR_FAIXA_FALSA_DESATIVO))) {
retorno[0] = faixaLeituraEsperada[0];
retorno[1] = faixaLeituraEsperada[1];
} else {
// [UC0087] - Calcular Faixa de Leitura Falsa
Object[] faixaLeituraFalsa = this.getControladorMicromedicao()
.calcularFaixaLeituraFalsa(
imovel,
consumoMedioHidrometro.intValue(),
medicaoHistorico
.getLeituraAnteriorFaturamento(),
medicaoHistorico, true, hidrometro);
/*
* Caso o hidr�metro n�o tenha sido selecionado para faixa de
* leitura falsa: Gravar a faixa de leitura esperada. Caso
* contr�rio: gravar a faixa de leitura falsa
*/
boolean hidrometroSelecionado = Boolean
.parseBoolean(faixaLeituraFalsa[2].toString());
if (hidrometroSelecionado) {
retorno[0] = Integer.parseInt(faixaLeituraFalsa[0]
.toString());
retorno[1] = Integer.parseInt(faixaLeituraFalsa[1]
.toString());
} else {
retorno[0] = faixaLeituraEsperada[0];
retorno[1] = faixaLeituraEsperada[1];
}
}
}
return retorno;
}
/**
* [UC0745] - Gerar Arquivo Texto para Faturamento
*
* @author Raphael Rossiter
* @date 02/05/2008
*
* @param anoMesFaturamento
* @param faturamentoGrupo
* @param rota
* @param imovel
* @param qtdImoveis
* @param arquivoTexto
* @throws ControladorException
* @return idArquivoTextoRoteiroEmpresa
*/
@SuppressWarnings({ "resource", "unchecked" })
public Integer inserirArquivoTextoRoteiroEmpresa(Integer anoMesFaturamento,
FaturamentoGrupo faturamentoGrupo, Rota rota, Imovel imovel,
Integer qtdImoveis, StringBuilder arquivoTexto,
Boolean apenasNaoEnviados,
boolean rotaSoComImoveisInformativos) throws ControladorException {
ArquivoTextoRoteiroEmpresa arquivoTextoRoteiroEmpresa = null;
if (!apenasNaoEnviados) {
arquivoTextoRoteiroEmpresa = new ArquivoTextoRoteiroEmpresa();
} else {
FiltroArquivoTextoRoteiroEmpresa filtro = new FiltroArquivoTextoRoteiroEmpresa();
filtro.adicionarParametro(new ParametroSimples(
FiltroArquivoTextoRoteiroEmpresa.ROTA_ID, rota.getId()));
filtro.adicionarParametro(new ParametroSimples(
FiltroArquivoTextoRoteiroEmpresa.ANO_MES_REFERENCIA,
anoMesFaturamento));
Collection<ArquivoTextoRoteiroEmpresa> colArquivoTextoRoteiroEmpresa = Fachada
.getInstancia().pesquisar(filtro,
ArquivoTextoRoteiroEmpresa.class.getName());
arquivoTextoRoteiroEmpresa = (ArquivoTextoRoteiroEmpresa) Util
.retonarObjetoDeColecao(colArquivoTextoRoteiroEmpresa);
}
Rota rotaAlternativa = null;
if (rota.getIndicadorRotaAlternativa().equals(ConstantesSistema.SIM)) {
FiltroRota filtroRota = new FiltroRota();
filtroRota.adicionarParametro(new ParametroSimples(
FiltroRota.ID_ROTA, rota.getId()));
filtroRota
.adicionarCaminhoParaCarregamentoEntidade("setorComercial");
filtroRota
.adicionarCaminhoParaCarregamentoEntidade("setorComercial.localidade");
filtroRota.adicionarCaminhoParaCarregamentoEntidade("leiturista");
Collection<Rota> colRotas = Fachada.getInstancia().pesquisar(
filtroRota, Rota.class.getName());
rotaAlternativa = (Rota) Util.retonarObjetoDeColecao(colRotas);
}
String nomeArquivoTexto = "";
if (rotaAlternativa != null) {
// NOME DO ARQUIVO
// [FS0006] - Nome do arquivo texto
nomeArquivoTexto = "G"
+ Util.adicionarZerosEsquedaNumero(3,
faturamentoGrupo.getId() + "")
+ Util.adicionarZerosEsquedaNumero(3, rotaAlternativa
.getSetorComercial().getLocalidade().getId()
+ "")
+ Util.adicionarZerosEsquedaNumero(3, rotaAlternativa
.getSetorComercial().getCodigo() + "")
+ Util.adicionarZerosEsquedaNumero(4,
rotaAlternativa.getCodigo() + "")
+ Util.adicionarZerosEsquedaNumero(6, anoMesFaturamento
+ "");
} else {
// NOME DO ARQUIVO
// [FS0006] - Nome do arquivo texto
nomeArquivoTexto = "G"
+ Util.adicionarZerosEsquedaNumero(3,
faturamentoGrupo.getId() + "")
+ Util.adicionarZerosEsquedaNumero(3, imovel
.getLocalidade().getId() + "")
+ Util.adicionarZerosEsquedaNumero(3, imovel
.getSetorComercial().getCodigo() + "")
+ Util.adicionarZerosEsquedaNumero(4, rota.getCodigo() + "")
+ Util.adicionarZerosEsquedaNumero(6, anoMesFaturamento
+ "");
}
// ARQUIVO TEMPOR�RIO GERADO PARA ROTA
ByteArrayOutputStream baosArquivoZip = new ByteArrayOutputStream();
GZIPOutputStream zos = null;
BufferedWriter out = null;
try {
// arquivoTexto =
// new StringBuilder( Util.reencodeString(
// arquivoTexto.toString(), "UTF-8" ) );
// Convertemos o StringBuilder em um vetor de array
// arquivoTextoByte =
// IoUtil.transformarObjetoParaBytes(arquivoTexto);
File compactado = new File(getControladorUtil().getCaminhoDownloadArquivos("faturamento") + nomeArquivoTexto + ".tar.gz");
zos = new GZIPOutputStream(new FileOutputStream(compactado));
File leitura = new File(getControladorUtil().getCaminhoDownloadArquivos("faturamento") + nomeArquivoTexto + ".txt");
out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(leitura.getAbsolutePath())));
out.write(arquivoTexto.toString());
out.flush();
ZipUtil.adicionarArquivo(zos, leitura);
zos.close();
FileInputStream inputStream = new FileInputStream(compactado);
// Escrevemos aos poucos
int INPUT_BUFFER_SIZE = 1024;
byte[] temp = new byte[INPUT_BUFFER_SIZE];
int numBytesRead = 0;
while ((numBytesRead = inputStream.read(temp, 0, INPUT_BUFFER_SIZE)) != -1) {
baosArquivoZip.write(temp, 0, numBytesRead);
}
if (!apenasNaoEnviados) {
arquivoTextoRoteiroEmpresa.setArquivoTexto(baosArquivoZip
.toByteArray());
} else {
arquivoTextoRoteiroEmpresa
.setArquivoTextoNaoRecebido(baosArquivoZip
.toByteArray());
this.getControladorUtil().atualizar(arquivoTextoRoteiroEmpresa);
}
// Fechamos o inputStream
inputStream.close();
baosArquivoZip.close();
inputStream = null;
compactado.delete();
leitura.delete();
} catch (IOException e) {
sessionContext.setRollbackOnly();
throw new ControladorException("erro.sistema", e);
}
if (!apenasNaoEnviados) {
Object[] intervalorNumeroQuadra = null;
// ANO_MES_REFERENCIA
arquivoTextoRoteiroEmpresa.setAnoMesReferencia(anoMesFaturamento);
// FATURAMENTO_GRUPO
arquivoTextoRoteiroEmpresa.setFaturamentoGrupo(faturamentoGrupo);
if (rotaAlternativa != null) {
// EMPRESA
arquivoTextoRoteiroEmpresa.setEmpresa(rotaAlternativa
.getEmpresa());
// LOCALIDADE
arquivoTextoRoteiroEmpresa.setLocalidade(rotaAlternativa
.getSetorComercial().getLocalidade());
// C�DIGO DO SETOR COMERCIAL
arquivoTextoRoteiroEmpresa
.setCodigoSetorComercial1(rotaAlternativa
.getSetorComercial().getCodigo());
try {
intervalorNumeroQuadra = this.repositorioFaturamento
.pesquisarIntervaloNumeroQuadraPorRota(rotaAlternativa
.getId());
} catch (ErroRepositorioException e) {
sessionContext.setRollbackOnly();
throw new ControladorException("erro.sistema", e);
}
// ROTA
arquivoTextoRoteiroEmpresa.setRota(rotaAlternativa);
} else {
// EMPRESA
arquivoTextoRoteiroEmpresa.setEmpresa(rota.getEmpresa());
// LOCALIDADE
arquivoTextoRoteiroEmpresa
.setLocalidade(imovel.getLocalidade());
// C�DIGO DO SETOR COMERCIAL
arquivoTextoRoteiroEmpresa.setCodigoSetorComercial1(imovel
.getSetorComercial().getCodigo());
try {
intervalorNumeroQuadra = this.repositorioFaturamento
.pesquisarIntervaloNumeroQuadraPorRota(rota.getId());
} catch (ErroRepositorioException e) {
sessionContext.setRollbackOnly();
throw new ControladorException("erro.sistema", e);
}
// ROTA
arquivoTextoRoteiroEmpresa.setRota(rota);
}
// N�MERO SEQUENCIA DE LEITURA
if (rota.getNumeroSequenciaLeitura() != null
&& !rota.getNumeroSequenciaLeitura().equals("")) {
if (rotaAlternativa != null) {
arquivoTextoRoteiroEmpresa
.setNumeroSequenciaLeitura(rotaAlternativa
.getNumeroSequenciaLeitura());
} else {
arquivoTextoRoteiroEmpresa.setNumeroSequenciaLeitura(rota
.getNumeroSequenciaLeitura());
}
}
// MENOR E MAIOR N�MERO DA QUADRA PARA ROTA
/**
*
* Alteracao para inserir numero da quadra zero quando for
* rota alternativa (pois rota alternativa n�o tem referencia
* para quadra)
*/
if (intervalorNumeroQuadra != null && intervalorNumeroQuadra[0] != null) {
arquivoTextoRoteiroEmpresa.setNumeroQuadraInicial1((Integer) intervalorNumeroQuadra[0]);
} else {
arquivoTextoRoteiroEmpresa.setNumeroQuadraInicial1(0);
}
if ( intervalorNumeroQuadra != null && intervalorNumeroQuadra[1] != null) {
arquivoTextoRoteiroEmpresa.setNumeroQuadraFinal1((Integer) intervalorNumeroQuadra[1]);
} else {
arquivoTextoRoteiroEmpresa.setNumeroQuadraFinal1(0);
}
// QUANTIDADE DE IM�VEIS
arquivoTextoRoteiroEmpresa.setQuantidadeImovel(qtdImoveis);
arquivoTextoRoteiroEmpresa.setNomeArquivo(nomeArquivoTexto + ".gz");
// INFORMA��ES LEITURISTA
if (rotaAlternativa != null
&& rotaAlternativa.getLeiturista() != null) {
arquivoTextoRoteiroEmpresa.setLeiturista(rotaAlternativa
.getLeiturista());
arquivoTextoRoteiroEmpresa.setCodigoLeiturista(rotaAlternativa
.getLeiturista().getCodigoDDD());
arquivoTextoRoteiroEmpresa
.setNumeroFoneLeiturista(rotaAlternativa
.getLeiturista().getNumeroFone());
if (rota.getNumeroLimiteImoveis() == null) {
arquivoTextoRoteiroEmpresa.setNumeroImei(rotaAlternativa
.getLeiturista().getNumeroImei());
} else if (rota.getNumeroLimiteImoveis() != null
&& qtdImoveis >= 250) {
arquivoTextoRoteiroEmpresa.setNumeroImei(null);
}
} else if (rota.getLeiturista() != null) {
arquivoTextoRoteiroEmpresa.setLeiturista(rota.getLeiturista());
arquivoTextoRoteiroEmpresa.setCodigoLeiturista(rota
.getLeiturista().getCodigoDDD());
arquivoTextoRoteiroEmpresa.setNumeroFoneLeiturista(rota
.getLeiturista().getNumeroFone());
if (rota.getNumeroLimiteImoveis() == null) {
arquivoTextoRoteiroEmpresa.setNumeroImei(rota
.getLeiturista().getNumeroImei());
} else if (rota.getNumeroLimiteImoveis() != null
&& qtdImoveis >= 250) {
arquivoTextoRoteiroEmpresa.setNumeroImei(null);
}
}
/*
* Caso rota contenha apenas im�veis informativos, insere com situa��o TRANSMITIDO
* */
SituacaoTransmissaoLeitura situacaoTransmissaoLeitura = new SituacaoTransmissaoLeitura();
if (rotaSoComImoveisInformativos) {
situacaoTransmissaoLeitura
.setId(SituacaoTransmissaoLeitura.TRANSMITIDO);
}
else{
situacaoTransmissaoLeitura.setId(SituacaoTransmissaoLeitura.DISPONIVEL);
}
arquivoTextoRoteiroEmpresa
.setSituacaoTransmissaoLeitura(situacaoTransmissaoLeitura);
// ULTIMA ALTERACAO
arquivoTextoRoteiroEmpresa.setUltimaAlteracao(new Date());
// ULTIMA ALTERACAO
arquivoTextoRoteiroEmpresa.setUltimaAlteracao(new Date());
// TIPO DO SERVICO CELULAR
ServicoTipoCelular servicoTipoCelular = new ServicoTipoCelular();
servicoTipoCelular.setId(ServicoTipoCelular.IMPRESSAO_SIMULTANEA);
arquivoTextoRoteiroEmpresa
.setServicoTipoCelular(servicoTipoCelular);
// INSERINDO NA BASE
return (Integer) this.getControladorUtil().inserir(
arquivoTextoRoteiroEmpresa);
}
return -1;
}
/**
* [UC0745] - Gerar Arquivo Texto para Faturamento
*
* [SB0001] - Gerar Arquivo Texto - Registro Tipo 09
*
* @author S�vio Luiz
* @date 02/07/2009
*
* @param imovel
* @param anoMesReferencia
* @param sistemaParametro
* @return StringBuilder
* @throws ControladorException
*/
@SuppressWarnings({ "unchecked", "rawtypes" })
public Object[] gerarArquivoTextoRegistroDadosTarifa09(Imovel imovel,
SistemaParametro sistemaParametro, Integer anoMesReferencia,
FaturamentoGrupo faturamentoGrupo) throws ControladorException {
StringBuilder arquivoTextoRegistroDadosTarifa09 = new StringBuilder();
int quantidadeLinhas = 0;
Object[] retorno = new Object[2];
Collection idsConsumoTarifaCategoria = new ArrayList();
// verifica qual o tipo de calculo da tarifa
FiltroTarifaTipoCalculo filtroTarifaTipoCalculo = new FiltroTarifaTipoCalculo();
filtroTarifaTipoCalculo.adicionarParametro(new ParametroSimples(
FiltroTarifaTipoCalculo.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
Collection collTarifaTipoCalculo = getControladorUtil().pesquisar(
filtroTarifaTipoCalculo, TarifaTipoCalculo.class.getName());
TarifaTipoCalculo tarifaTipoCalculo = (TarifaTipoCalculo) Util
.retonarObjetoDeColecao(collTarifaTipoCalculo);
Short indicadorTarifaCategoria = sistemaParametro
.getIndicadorTarifaCategoria();
try {
// PESQUISANDO A PARTIR DA TABELA IMOVEL_SUBCATEGORIA
Collection dadosCategoria = this.getControladorImovel()
.pesquisarCategoriaSubcategoriaImovel(imovel.getId());
Collection colecaoCatSub = new ArrayList();
// caso indique que seja para calcular pela categoria
if (indicadorTarifaCategoria
.equals(SistemaParametro.INDICADOR_TARIFA_CATEGORIA)) {
Iterator ite = dadosCategoria.iterator();
Integer idCategoriaAnterior = null;
Object[] dadosCatSub = null;
// recupera as categorias e coloca a subcategoria como 0.
while (ite.hasNext()) {
dadosCatSub = (Object[]) ite.next();
Object[] dadosCatSubNovo = new Object[2];
if (idCategoriaAnterior == null
|| idCategoriaAnterior
.equals((Integer) dadosCatSub[0])) {
if (idCategoriaAnterior == null) {
dadosCatSubNovo[0] = dadosCatSub[0];
dadosCatSubNovo[1] = 0;
colecaoCatSub.add(dadosCatSubNovo);
}
idCategoriaAnterior = (Integer) dadosCatSub[0];
} else {
dadosCatSubNovo[0] = dadosCatSub[0];
dadosCatSubNovo[1] = 0;
colecaoCatSub.add(dadosCatSubNovo);
idCategoriaAnterior = (Integer) dadosCatSub[0];
}
}
} else {
colecaoCatSub.addAll(dadosCategoria);
}
Collection<Object[]> colecaoDadosTarifa = new ArrayList();
if (tarifaTipoCalculo != null
&& tarifaTipoCalculo.getId().equals(
TarifaTipoCalculo.CALCULO_POR_REFERENCIA)) {
Date dataFaturamento = Util.criarData(1,
Util.obterMes(anoMesReferencia),
Util.obterAno(anoMesReferencia));
Collection<Object[]> colecaoDadosMaiorTarifa = repositorioFaturamento
.pesquisarDadosConsumoMaiorTarifaVigenciaPorTarifa(
dataFaturamento, imovel.getConsumoTarifa()
.getId());
if (colecaoDadosMaiorTarifa != null
&& !colecaoDadosMaiorTarifa.equals("")) {
for (Object[] dadosTarifaMaior : colecaoDadosMaiorTarifa) {
if (dadosTarifaMaior[0] != null
&& dadosTarifaMaior[1] != null) {
Iterator ite = colecaoCatSub.iterator();
Collection<Object[]> colecaoDadosTarifaPartes = null;
while (ite.hasNext()) {
Object[] dadosCatSub = (Object[]) ite.next();
colecaoDadosTarifaPartes = repositorioFaturamento
.pesquisarDadosConsumoTarifaVigencia(
(Date) dadosTarifaMaior[1],
(Integer) dadosTarifaMaior[0],
(Integer) dadosCatSub[0],
(Integer) dadosCatSub[1]);
if (colecaoDadosTarifaPartes == null
|| colecaoDadosTarifaPartes.isEmpty()) {
colecaoDadosTarifaPartes = repositorioFaturamento
.pesquisarDadosConsumoTarifaVigencia(
(Date) dadosTarifaMaior[1],
(Integer) dadosTarifaMaior[0],
(Integer) dadosCatSub[0], 0);
}
boolean mesmoConsumoTarifaCategoria = false;
if (colecaoDadosTarifa != null
&& !colecaoDadosTarifa.isEmpty()) {
for (Object[] dadosTarifaCategoria : colecaoDadosTarifa) {
Integer idConsumoTarifaCategoria = (Integer) dadosTarifaCategoria[0];
if (colecaoDadosTarifaPartes != null
&& !colecaoDadosTarifaPartes
.isEmpty()) {
for (Object[] dadosTarifaCategoriaPartes : colecaoDadosTarifaPartes) {
Integer idConsumoTarifaCategoriaPartes = (Integer) dadosTarifaCategoriaPartes[0];
if (idConsumoTarifaCategoria
.equals(idConsumoTarifaCategoriaPartes)) {
mesmoConsumoTarifaCategoria = true;
break;
}
}
}
}
}
if (!mesmoConsumoTarifaCategoria) {
colecaoDadosTarifa
.addAll(colecaoDadosTarifaPartes);
}
}
}
}
}
} else {
Integer anoMesReferenciaAnterior = Util.subtrairMesDoAnoMes(
anoMesReferencia, 1);
Date dataLeituraAnterior = this.getControladorMicromedicao()
.pesquisarMaiorDataLeituraImoveis(imovel.getId(),
anoMesReferenciaAnterior);
// caso n�o tenha a data de leitura anterior, pegar a data
// prevista do cronograma anterior
if (dataLeituraAnterior == null
|| dataLeituraAnterior.equals("")) {
FaturamentoAtividade faturamentoAtividade = new FaturamentoAtividade();
faturamentoAtividade
.setId(FaturamentoAtividade.GERAR_ARQUIVO_LEITURA);
Object[] datasCronogramaAnterior = repositorioFaturamento
.obterDataPrevistaRealizadaFaturamentoAtividadeCronograma(
faturamentoGrupo, anoMesReferenciaAnterior,
faturamentoAtividade);
if (datasCronogramaAnterior != null) {
dataLeituraAnterior = (Date) datasCronogramaAnterior[0];
} else {
Object[] datasCronogramaAtual = repositorioFaturamento
.obterDataPrevistaRealizadaFaturamentoAtividadeCronograma(
faturamentoGrupo, anoMesReferencia,
faturamentoAtividade);
dataLeituraAnterior = Util.subtrairNumeroDiasDeUmaData((Date) datasCronogramaAtual[0], 30);
}
}
Iterator ite = colecaoCatSub.iterator();
boolean dataVigenciaIgualAnterior = false;
Collection colecaoDadosTarifaProporcional = null;
while (ite.hasNext()) {
Object[] dadosCatSub = (Object[]) ite.next();
// consulta as vigencias entre a data de leitura anterior e
// atual
colecaoDadosTarifaProporcional = repositorioFaturamento
.pesquisarDadosConsumoTarifaVigenciaProporcional(
dataLeituraAnterior, imovel
.getConsumoTarifa().getId(),
(Integer) dadosCatSub[0],
(Integer) dadosCatSub[1]);
// caso exista e a data de leitura anterior n�o seja igual a
// data de vigencia
// n�o procura mais tarifa para esse im�vel
if (colecaoDadosTarifaProporcional != null
&& !colecaoDadosTarifaProporcional.isEmpty()) {
Iterator iteProporcional = colecaoDadosTarifaProporcional
.iterator();
while (iteProporcional.hasNext()) {
Object[] dadosProporcional = (Object[]) iteProporcional
.next();
if (dadosProporcional[2] != null) {
Date dataVigencia = (Date) dadosProporcional[2];
if (Util.compararData(dataLeituraAnterior,
dataVigencia) == 0) {
dataVigenciaIgualAnterior = true;
break;
}
}
}
// Caso n�o tenha encontrado nenhuma tarifa proporcional
// ou a data de vigencia da tarifa
// seja igual a data anterior da leitura
if (colecaoDadosTarifaProporcional == null
|| colecaoDadosTarifaProporcional.isEmpty()
|| !dataVigenciaIgualAnterior) {
// pesquisa a tarifa com a maior data de vigencia
// que seja menor que
// a data de leitura anterior
Collection<Object[]> colecaoDadosMaiorTarifa = repositorioFaturamento
.pesquisarDadosConsumoMaiorTarifaVigenciaPorTarifa(
dataLeituraAnterior, imovel
.getConsumoTarifa().getId());
if (colecaoDadosMaiorTarifa != null
&& !colecaoDadosMaiorTarifa.equals("")) {
for (Object[] dadosTarifaMaior : colecaoDadosMaiorTarifa) {
if (dadosTarifaMaior[0] != null
&& dadosTarifaMaior[1] != null) {
Collection<Object[]> colecaoDadosTarifaPartes = null;
colecaoDadosTarifaPartes = repositorioFaturamento
.pesquisarDadosConsumoTarifaVigencia(
(Date) dadosTarifaMaior[1],
(Integer) dadosTarifaMaior[0],
(Integer) dadosCatSub[0],
(Integer) dadosCatSub[1]);
if (colecaoDadosTarifaPartes == null
|| colecaoDadosTarifaPartes
.isEmpty()) {
colecaoDadosTarifaPartes = repositorioFaturamento
.pesquisarDadosConsumoTarifaVigencia(
(Date) dadosTarifaMaior[1],
(Integer) dadosTarifaMaior[0],
(Integer) dadosCatSub[0],
0);
}
boolean mesmoConsumoTarifaCategoria = false;
if (colecaoDadosTarifa != null
&& !colecaoDadosTarifa
.isEmpty()) {
for (Object[] dadosTarifaCategoria : colecaoDadosTarifa) {
Integer idConsumoTarifaCategoria = (Integer) dadosTarifaCategoria[0];
if (colecaoDadosTarifaPartes != null
&& !colecaoDadosTarifaPartes
.isEmpty()) {
for (Object[] dadosTarifaCategoriaPartes : colecaoDadosTarifaPartes) {
Integer idConsumoTarifaCategoriaPartes = (Integer) dadosTarifaCategoriaPartes[0];
if (idConsumoTarifaCategoria
.equals(idConsumoTarifaCategoriaPartes)) {
mesmoConsumoTarifaCategoria = true;
break;
}
}
}
}
}
if (!mesmoConsumoTarifaCategoria) {
colecaoDadosTarifa
.addAll(colecaoDadosTarifaPartes);
}
}
}
}
}
// coloca a cole��o de vigencia proporcial caso exista
// s� � colocado nesse momento, para ficar ordenado pela
// data
// de vigencia
if (colecaoDadosTarifaProporcional != null
&& !colecaoDadosTarifaProporcional.isEmpty()) {
colecaoDadosTarifa
.addAll(colecaoDadosTarifaProporcional);
}
} else {
// Caso n�o tenha encontrado nenhuma tarifa proporcional
// ou a data de vigencia da tarifa
// seja igual a data anterior da leitura
// pesquisa a tarifa com a maior data de vigencia que
// seja menor que
// a data de leitura anterior
Collection<Object[]> colecaoDadosMaiorTarifa = repositorioFaturamento
.pesquisarDadosConsumoMaiorTarifaVigenciaPorTarifa(
dataLeituraAnterior, imovel
.getConsumoTarifa().getId());
if (colecaoDadosMaiorTarifa != null
&& !colecaoDadosMaiorTarifa.equals("")) {
for (Object[] dadosTarifaMaior : colecaoDadosMaiorTarifa) {
if (dadosTarifaMaior[0] != null
&& dadosTarifaMaior[1] != null) {
Collection<Object[]> colecaoDadosTarifaPartes = null;
colecaoDadosTarifaPartes = repositorioFaturamento
.pesquisarDadosConsumoTarifaVigencia(
(Date) dadosTarifaMaior[1],
(Integer) dadosTarifaMaior[0],
(Integer) dadosCatSub[0],
(Integer) dadosCatSub[1]);
if (colecaoDadosTarifaPartes == null
|| colecaoDadosTarifaPartes
.isEmpty()) {
colecaoDadosTarifaPartes = repositorioFaturamento
.pesquisarDadosConsumoTarifaVigencia(
(Date) dadosTarifaMaior[1],
(Integer) dadosTarifaMaior[0],
(Integer) dadosCatSub[0],
0);
}
boolean mesmoConsumoTarifaCategoria = false;
if (colecaoDadosTarifa != null
&& !colecaoDadosTarifa.isEmpty()) {
for (Object[] dadosTarifaCategoria : colecaoDadosTarifa) {
Integer idConsumoTarifaCategoria = (Integer) dadosTarifaCategoria[0];
if (colecaoDadosTarifaPartes != null
&& !colecaoDadosTarifaPartes
.isEmpty()) {
for (Object[] dadosTarifaCategoriaPartes : colecaoDadosTarifaPartes) {
Integer idConsumoTarifaCategoriaPartes = (Integer) dadosTarifaCategoriaPartes[0];
if (idConsumoTarifaCategoria
.equals(idConsumoTarifaCategoriaPartes)) {
mesmoConsumoTarifaCategoria = true;
break;
}
}
}
}
}
if (!mesmoConsumoTarifaCategoria) {
colecaoDadosTarifa
.addAll(colecaoDadosTarifaPartes);
}
}
}
}
}
}
}
if (colecaoDadosTarifa != null && !colecaoDadosTarifa.isEmpty()) {
for (Object[] dadosTarifa : colecaoDadosTarifa) {
quantidadeLinhas = quantidadeLinhas + 1;
arquivoTextoRegistroDadosTarifa09.append("09");
if (dadosTarifa[0] != null) {
idsConsumoTarifaCategoria.add((Integer) dadosTarifa[0]);
}
// C�digo da Tarifa
if (dadosTarifa[1] != null) {
arquivoTextoRegistroDadosTarifa09.append(Util
.adicionarZerosEsquedaNumero(2, ""
+ dadosTarifa[1]));
} else {
arquivoTextoRegistroDadosTarifa09.append(Util
.adicionarZerosEsquedaNumero(2, ""));
}
// Data de Vigencia
if (dadosTarifa[2] != null) {
Date dataVigencia = (Date) dadosTarifa[2];
arquivoTextoRegistroDadosTarifa09.append(Util
.formatarDataAAAAMMDD(dataVigencia));
} else {
arquivoTextoRegistroDadosTarifa09.append(Util
.adicionarZerosEsquedaNumero(8, ""));
}
// C�digo da Categoria
if (dadosTarifa[3] != null) {
arquivoTextoRegistroDadosTarifa09.append(Util
.adicionarZerosEsquedaNumero(1, ""
+ dadosTarifa[3]));
} else {
arquivoTextoRegistroDadosTarifa09.append(Util
.adicionarZerosEsquedaNumero(1, ""));
}
// C�digo da Subcategoria
if (indicadorTarifaCategoria.equals(ConstantesSistema.NAO)
&& dadosTarifa[4] != null) {
arquivoTextoRegistroDadosTarifa09.append(Util
.adicionarZerosEsquedaNumero(3, ""
+ dadosTarifa[4]));
} else {
arquivoTextoRegistroDadosTarifa09.append(Util
.completaString("", 3));
}
// Consumo m�nimo
if (dadosTarifa[5] != null) {
arquivoTextoRegistroDadosTarifa09.append(Util
.adicionarZerosEsquedaNumero(6, ""
+ dadosTarifa[5]));
} else {
arquivoTextoRegistroDadosTarifa09.append(Util
.adicionarZerosEsquedaNumero(6, ""));
}
// Tarifa m�nima
if (dadosTarifa[6] != null) {
arquivoTextoRegistroDadosTarifa09
.append(Util.adicionarZerosEsquedaNumero(
14,
Util.formatarBigDecimalComPonto((BigDecimal) dadosTarifa[6])));
} else {
arquivoTextoRegistroDadosTarifa09.append(Util
.adicionarZerosEsquedaNumero(14, ""));
}
arquivoTextoRegistroDadosTarifa09.append(System
.getProperty("line.separator"));
}
Object[] tarifaFaixa10 = gerarArquivoTextoRegistroDadosTarifaFaixa10(
idsConsumoTarifaCategoria, indicadorTarifaCategoria);
// Inseri as faixas das tarifas
arquivoTextoRegistroDadosTarifa09.append(tarifaFaixa10[0]);
int quantidadeLinhasRegistroTipo10 = (Integer) tarifaFaixa10[1];
quantidadeLinhas = quantidadeLinhas
+ quantidadeLinhasRegistroTipo10;
}
} catch (ErroRepositorioException e) {
sessionContext.setRollbackOnly();
throw new ControladorException("erro.sistema", e);
}
retorno[0] = arquivoTextoRegistroDadosTarifa09;
retorno[1] = quantidadeLinhas;
return retorno;
}
/**
* [UC0745] - Gerar Arquivo Texto para Faturamento
*
* [SB0001] - Gerar Arquivo Texto - Registro Tipo 10
*
* @author S�vio Luiz
* @date 02/07/2009
*
* @param imovel
* @param anoMesReferencia
* @param sistemaParametro
* @return StringBuilder
* @throws ControladorException
*/
@SuppressWarnings({ "unchecked", "rawtypes" })
public Object[] gerarArquivoTextoRegistroDadosTarifaFaixa10(
Collection idsConsumoTarifaCategoria, Short indicadorTarifaCategoria)
throws ControladorException {
StringBuilder arquivoTextoRegistroDadosTarifaFaixa10 = new StringBuilder();
int quantidadeLinhas = 0;
Object[] retorno = new Object[2];
Collection<Object[]> colecaoDadosTarifaFaixa = null;
try {
colecaoDadosTarifaFaixa = repositorioFaturamento
.pesquisarDadosConsumoTarifaFaixa(idsConsumoTarifaCategoria);
} catch (ErroRepositorioException e) {
sessionContext.setRollbackOnly();
throw new ControladorException("erro.sistema", e);
}
if (colecaoDadosTarifaFaixa != null
&& !colecaoDadosTarifaFaixa.isEmpty()) {
int count = colecaoDadosTarifaFaixa.size();
for (Object[] dadosTarifa : colecaoDadosTarifaFaixa) {
quantidadeLinhas = quantidadeLinhas + 1;
arquivoTextoRegistroDadosTarifaFaixa10.append("10");
count--;
// C�digo da Tarifa
if (dadosTarifa[0] != null) {
arquivoTextoRegistroDadosTarifaFaixa10
.append(Util.adicionarZerosEsquedaNumero(2, ""
+ dadosTarifa[0]));
} else {
arquivoTextoRegistroDadosTarifaFaixa10.append(Util
.adicionarZerosEsquedaNumero(2, ""));
}
// Data de Vigencia
if (dadosTarifa[1] != null) {
Date dataVigencia = (Date) dadosTarifa[1];
arquivoTextoRegistroDadosTarifaFaixa10.append(Util
.formatarDataAAAAMMDD(dataVigencia));
} else {
arquivoTextoRegistroDadosTarifaFaixa10.append(Util
.adicionarZerosEsquedaNumero(8, ""));
}
// C�digo da Categoria
if (dadosTarifa[2] != null) {
arquivoTextoRegistroDadosTarifaFaixa10
.append(Util.adicionarZerosEsquedaNumero(1, ""
+ dadosTarifa[2]));
} else {
arquivoTextoRegistroDadosTarifaFaixa10.append(Util
.adicionarZerosEsquedaNumero(1, ""));
}
// C�digo da Subcategoria
if (indicadorTarifaCategoria.equals(ConstantesSistema.NAO)
&& dadosTarifa[3] != null) {
arquivoTextoRegistroDadosTarifaFaixa10
.append(Util.adicionarZerosEsquedaNumero(3, ""
+ dadosTarifa[3]));
} else {
arquivoTextoRegistroDadosTarifaFaixa10.append(Util
.completaString("", 3));
}
// Limite Inicial da Faixa
if (dadosTarifa[4] != null) {
arquivoTextoRegistroDadosTarifaFaixa10
.append(Util.adicionarZerosEsquedaNumero(6, ""
+ dadosTarifa[4]));
} else {
arquivoTextoRegistroDadosTarifaFaixa10.append(Util
.adicionarZerosEsquedaNumero(6, ""));
}
// Limite Final da Faixa
if (dadosTarifa[5] != null) {
arquivoTextoRegistroDadosTarifaFaixa10
.append(Util.adicionarZerosEsquedaNumero(6, ""
+ dadosTarifa[5]));
} else {
arquivoTextoRegistroDadosTarifaFaixa10.append(Util
.adicionarZerosEsquedaNumero(6, ""));
}
// Valor do m3 na Faixa
if (dadosTarifa[6] != null) {
arquivoTextoRegistroDadosTarifaFaixa10
.append(Util.adicionarZerosEsquedaNumero(
14,
Util.formatarBigDecimalComPonto((BigDecimal) dadosTarifa[6])));
} else {
arquivoTextoRegistroDadosTarifaFaixa10.append(Util
.adicionarZerosEsquedaNumero(14, ""));
}
if (count != 0) {
arquivoTextoRegistroDadosTarifaFaixa10.append(System
.getProperty("line.separator"));
}
}
}
retorno[0] = arquivoTextoRegistroDadosTarifaFaixa10;
retorno[1] = quantidadeLinhas;
return retorno;
}
/**
* [UC0745] - Gerar Arquivo Texto para Faturamento
*
* Formata a parte de padr�o da qualidade da �gua e a qualidade da �gua
*
* @author S�vio Luiz
* @date 13/07/2009
*
* @param imovel
* @param anoMesReferencia
* @param sistemaParametro
* @return StringBuilder
* @throws ControladorException
*/
@SuppressWarnings({ "rawtypes", "unchecked" })
public StringBuilder gerarArquivoTextoQualidadeAgua(Integer idLocalidade,
Integer idSetor, Integer anoMesReferencia, Integer idQuadraFace)
throws ControladorException {
StringBuilder arquivoTextoQualidadeAgua = new StringBuilder();
// Pesquisa Dados Qualidade �gua Padr�o
FiltroQualidadeAguaPadrao filtroQualidadeAguaPadrao = new FiltroQualidadeAguaPadrao();
Collection colecaoQualidadeAguaPadrao = null;
colecaoQualidadeAguaPadrao = getControladorUtil().pesquisar(
filtroQualidadeAguaPadrao, QualidadeAguaPadrao.class.getName());
if (colecaoQualidadeAguaPadrao != null
&& !colecaoQualidadeAguaPadrao.isEmpty()) {
QualidadeAguaPadrao qualidadeAguaPadrao = (QualidadeAguaPadrao) colecaoQualidadeAguaPadrao
.iterator().next();
if (qualidadeAguaPadrao != null) {
// Turbidez
if (qualidadeAguaPadrao.getDescricaoPadraoTurbidez() != null) {
arquivoTextoQualidadeAgua.append(Util.completaString(
qualidadeAguaPadrao.getDescricaoPadraoTurbidez(),
20));
} else {
arquivoTextoQualidadeAgua.append(Util
.completaString("", 20));
}
// PH
if (qualidadeAguaPadrao.getDescricaoPadraoPh() != null) {
arquivoTextoQualidadeAgua.append(Util.completaString(
qualidadeAguaPadrao.getDescricaoPadraoPh(), 20));
} else {
arquivoTextoQualidadeAgua.append(Util
.completaString("", 20));
}
// Cor
if (qualidadeAguaPadrao.getDescricaoPadraoCor() != null) {
arquivoTextoQualidadeAgua.append(Util.completaString(
qualidadeAguaPadrao.getDescricaoPadraoCor(), 20));
} else {
arquivoTextoQualidadeAgua.append(Util
.completaString("", 20));
}
// Cloro
if (qualidadeAguaPadrao.getDescricaoPadraoCloro() != null) {
arquivoTextoQualidadeAgua.append(Util.completaString(
qualidadeAguaPadrao.getDescricaoPadraoCloro(), 20));
} else {
arquivoTextoQualidadeAgua.append(Util
.completaString("", 20));
}
// Fluor
if (qualidadeAguaPadrao.getDescricaoPadraoFluor() != null) {
arquivoTextoQualidadeAgua.append(Util.completaString(
qualidadeAguaPadrao.getDescricaoPadraoFluor(), 20));
} else {
arquivoTextoQualidadeAgua.append(Util
.completaString("", 20));
}
// Ferro
if (qualidadeAguaPadrao.getDescricaoPadraoFerro() != null) {
arquivoTextoQualidadeAgua.append(Util.completaString(
qualidadeAguaPadrao.getDescricaoPadraoFerro(), 20));
} else {
arquivoTextoQualidadeAgua.append(Util
.completaString("", 20));
}
// Coliformes Totais
if (qualidadeAguaPadrao.getDescricaoPadraoColiformesTotais() != null) {
arquivoTextoQualidadeAgua.append(Util.completaString(
qualidadeAguaPadrao
.getDescricaoPadraoColiformesTotais(), 20));
} else {
arquivoTextoQualidadeAgua.append(Util
.completaString("", 20));
}
// Coliformes Fecais
if (qualidadeAguaPadrao.getDescricaoPadraoColiformesFecais() != null) {
arquivoTextoQualidadeAgua.append(Util.completaString(
qualidadeAguaPadrao
.getDescricaoPadraoColiformesFecais(), 20));
} else {
arquivoTextoQualidadeAgua.append(Util
.completaString("", 20));
}
// Nitrato
if (qualidadeAguaPadrao.getDescricaoNitrato() != null) {
arquivoTextoQualidadeAgua.append(Util.completaString(
qualidadeAguaPadrao.getDescricaoNitrato(), 20));
} else {
arquivoTextoQualidadeAgua.append(Util
.completaString("", 20));
}
// Coliformes Termo Tolerantes
if (qualidadeAguaPadrao
.getDescricaoPadraoColiformesTermotolerantes() != null) {
arquivoTextoQualidadeAgua
.append(Util.completaString(
qualidadeAguaPadrao
.getDescricaoPadraoColiformesTermotolerantes(),
20));
} else {
arquivoTextoQualidadeAgua.append(Util
.completaString("", 20));
}
} else {
arquivoTextoQualidadeAgua.append(Util.completaString("", 200));
}
} else {
arquivoTextoQualidadeAgua.append(Util.completaString("", 200));
}
// Pesquisa Dados Qualidade �gua
FiltroQualidadeAgua filtroQualidadeAgua = new FiltroQualidadeAgua();
Collection colecaoQualidadeAgua = null;
/**
* Adi��o da consulta quando a empresa utiliza o sistema
* de abastecimento para registro da qualidade da �gua
* */
FiltroQuadraFace filtroQuadraFace = new FiltroQuadraFace();
filtroQuadraFace.adicionarParametro(new ParametroSimples(
FiltroQuadraFace.ID, idQuadraFace));
filtroQuadraFace
.adicionarCaminhoParaCarregamentoEntidade("distritoOperacional");
filtroQuadraFace
.adicionarCaminhoParaCarregamentoEntidade("distritoOperacional.setorAbastecimento");
filtroQuadraFace
.adicionarCaminhoParaCarregamentoEntidade("distritoOperacional.setorAbastecimento.sistemaAbastecimento");
filtroQuadraFace
.adicionarCaminhoParaCarregamentoEntidade("distritoOperacional.setorAbastecimento.sistemaAbastecimento.fonteCaptacao");
filtroQuadraFace
.adicionarCaminhoParaCarregamentoEntidade("distritoOperacional.setorAbastecimento.sistemaAbastecimento.fonteCaptacao.tipoCaptacao");
Collection colecaoQudraFace = getControladorUtil().pesquisar(
filtroQuadraFace, QuadraFace.class.getName());
QuadraFace quadraFace = (QuadraFace) Util
.retonarObjetoDeColecao(colecaoQudraFace);
if (quadraFace.getDistritoOperacional() != null
&& quadraFace.getDistritoOperacional().getSetorAbastecimento() != null
&& quadraFace.getDistritoOperacional().getSetorAbastecimento()
.getSistemaAbastecimento() != null) {
filtroQualidadeAgua.adicionarParametro(new ParametroSimples(
FiltroQualidadeAgua.SISTEMA_ABASTECIMENTO, quadraFace
.getDistritoOperacional().getSetorAbastecimento()
.getSistemaAbastecimento().getId()));
filtroQualidadeAgua.adicionarParametro(new ParametroSimples(
FiltroQualidadeAgua.ANO_MES_REFERENCIA, anoMesReferencia));
filtroQualidadeAgua
.adicionarCaminhoParaCarregamentoEntidade("fonteCaptacao");
filtroQualidadeAgua
.adicionarCaminhoParaCarregamentoEntidade("fonteCaptacao.tipoCaptacao");
colecaoQualidadeAgua = getControladorUtil().pesquisar(
filtroQualidadeAgua, QualidadeAgua.class.getName());
}
if (colecaoQualidadeAgua == null || colecaoQualidadeAgua.isEmpty()) {
filtroQualidadeAgua.adicionarParametro(new ParametroSimples(
FiltroQualidadeAgua.LOCALIDADE_ID, idLocalidade));
filtroQualidadeAgua.adicionarParametro(new ParametroSimples(
FiltroQualidadeAgua.SETOR_COMERCIAL_ID, idSetor));
filtroQualidadeAgua.adicionarParametro(new ParametroSimples(
FiltroQualidadeAgua.ANO_MES_REFERENCIA, anoMesReferencia));
filtroQualidadeAgua
.adicionarCaminhoParaCarregamentoEntidade("fonteCaptacao");
colecaoQualidadeAgua = getControladorUtil().pesquisar(
filtroQualidadeAgua, QualidadeAgua.class.getName());
}
if (colecaoQualidadeAgua == null || colecaoQualidadeAgua.isEmpty()) {
filtroQualidadeAgua.limparListaParametros();
colecaoQualidadeAgua = null;
filtroQualidadeAgua.adicionarParametro(new ParametroSimples(
FiltroQualidadeAgua.LOCALIDADE_ID, idLocalidade));
filtroQualidadeAgua.adicionarParametro(new ParametroNulo(
FiltroQualidadeAgua.SETOR_COMERCIAL_ID));
filtroQualidadeAgua.adicionarParametro(new ParametroSimples(
FiltroQualidadeAgua.ANO_MES_REFERENCIA, anoMesReferencia));
filtroQualidadeAgua
.adicionarCaminhoParaCarregamentoEntidade("fonteCaptacao");
colecaoQualidadeAgua = getControladorUtil().pesquisar(
filtroQualidadeAgua, QualidadeAgua.class.getName());
}
if (colecaoQualidadeAgua == null || colecaoQualidadeAgua.isEmpty()) {
filtroQualidadeAgua.limparListaParametros();
colecaoQualidadeAgua = null;
filtroQualidadeAgua.adicionarParametro(new ParametroNulo(
FiltroQualidadeAgua.LOCALIDADE_ID));
filtroQualidadeAgua.adicionarParametro(new ParametroNulo(
FiltroQualidadeAgua.SETOR_COMERCIAL_ID));
filtroQualidadeAgua.adicionarParametro(new ParametroSimples(
FiltroQualidadeAgua.ANO_MES_REFERENCIA, anoMesReferencia));
filtroQualidadeAgua
.adicionarCaminhoParaCarregamentoEntidade("fonteCaptacao");
colecaoQualidadeAgua = getControladorUtil().pesquisar(
filtroQualidadeAgua, QualidadeAgua.class.getName());
}
if (colecaoQualidadeAgua != null && !colecaoQualidadeAgua.isEmpty()) {
QualidadeAgua qualidadeAgua = (QualidadeAgua) colecaoQualidadeAgua
.iterator().next();
// m�s e ano de refer�ncia
if (qualidadeAgua.getAnoMesReferencia() != null) {
arquivoTextoQualidadeAgua.append(Util.completaString(Util
.formatarAnoMesParaMesAnoSemBarra(qualidadeAgua
.getAnoMesReferencia()), 6));
} else {
arquivoTextoQualidadeAgua.append(Util.completaString("", 6));
}
// cloro
if (qualidadeAgua.getNumeroCloroResidual() != null
&& !qualidadeAgua.getNumeroCloroResidual().equals(0)) {
arquivoTextoQualidadeAgua.append(Util.completaString(
qualidadeAgua.getNumeroCloroResidual().toString(), 5));
} else {
arquivoTextoQualidadeAgua.append(Util.completaString("", 5));
}
// turbidez
if (qualidadeAgua.getNumeroIndiceTurbidez() != null
&& !qualidadeAgua.getNumeroIndiceTurbidez().equals(0)) {
arquivoTextoQualidadeAgua.append(Util.completaString(
qualidadeAgua.getNumeroIndiceTurbidez().toString(), 5));
} else {
arquivoTextoQualidadeAgua.append(Util.completaString(" ", 5));
}
// ph
if (qualidadeAgua.getNumeroIndicePh() != null
&& !qualidadeAgua.getNumeroIndicePh().equals(0)) {
arquivoTextoQualidadeAgua.append(Util.completaString(
qualidadeAgua.getNumeroIndicePh().toString(), 5));
} else {
arquivoTextoQualidadeAgua.append(Util.completaString(" ", 5));
}
// Cor
if (qualidadeAgua.getNumeroIndiceCor() != null
&& !qualidadeAgua.getNumeroIndiceCor().equals(0)) {
arquivoTextoQualidadeAgua.append(Util.completaString(
qualidadeAgua.getNumeroIndiceCor().toString(), 5));
} else {
arquivoTextoQualidadeAgua.append(Util.completaString(" ", 5));
}
// fluor
if (qualidadeAgua.getNumeroIndiceFluor() != null
&& !qualidadeAgua.getNumeroIndiceFluor().equals(0)) {
arquivoTextoQualidadeAgua.append(Util.completaString(
qualidadeAgua.getNumeroIndiceFluor().toString(), 5));
} else {
arquivoTextoQualidadeAgua.append(Util.completaString(" ", 5));
}
// ferro
if (qualidadeAgua.getNumeroIndiceFerro() != null
&& !qualidadeAgua.getNumeroIndiceFerro().equals(0)) {
arquivoTextoQualidadeAgua.append(Util.completaString(
qualidadeAgua.getNumeroIndiceFerro().toString(), 5));
} else {
arquivoTextoQualidadeAgua.append(Util.completaString(" ", 5));
}
// Coliformes Totais
if (qualidadeAgua.getNumeroIndiceColiformesTotais() != null
&& !qualidadeAgua.getNumeroIndiceColiformesTotais().equals(
0)) {
arquivoTextoQualidadeAgua.append(Util.completaString(
qualidadeAgua.getNumeroIndiceColiformesTotais()
.toString(), 5));
} else {
arquivoTextoQualidadeAgua.append(Util.completaString(" ", 5));
}
// Coliformes Fecais
if (qualidadeAgua.getNumeroIndiceColiformesFecais() != null
&& !qualidadeAgua.getNumeroIndiceColiformesFecais().equals(
0)) {
arquivoTextoQualidadeAgua.append(Util.completaString(
qualidadeAgua.getNumeroIndiceColiformesFecais()
.toString(), 5));
} else {
arquivoTextoQualidadeAgua.append(Util.completaString(" ", 5));
}
// nitrato
if (qualidadeAgua.getNumeroNitrato() != null
&& !qualidadeAgua.getNumeroNitrato().equals(0)) {
arquivoTextoQualidadeAgua.append(Util.completaString(
qualidadeAgua.getNumeroNitrato().toString(), 5));
} else {
arquivoTextoQualidadeAgua.append(Util.completaString(" ", 5));
}
// Coliformes Termo Tolerantes
if (qualidadeAgua.getNumeroIndiceColiformesTermotolerantes() != null
&& !qualidadeAgua
.getNumeroIndiceColiformesTermotolerantes().equals(
0)) {
arquivoTextoQualidadeAgua.append(Util.completaString(
qualidadeAgua
.getNumeroIndiceColiformesTermotolerantes()
.toString(), 5));
} else {
arquivoTextoQualidadeAgua.append(Util.completaString(" ", 5));
}
// fonte
if (qualidadeAgua.getFonteCaptacao() != null) {
arquivoTextoQualidadeAgua.append(Util.completaString(
qualidadeAgua.getFonteCaptacao().getDescricao(), 30));
} else {
arquivoTextoQualidadeAgua.append(Util.completaString(" ", 30));
}
// Exigidas
if (qualidadeAgua.getQuantidadeTurbidezExigidas() != null) {
arquivoTextoQualidadeAgua.append(Util.completaString(
qualidadeAgua.getQuantidadeTurbidezExigidas() + "", 6));
} else {
arquivoTextoQualidadeAgua.append(Util.completaString(" ", 6));
}
if (qualidadeAgua.getQuantidadeCorExigidas() != null) {
arquivoTextoQualidadeAgua.append(Util.completaString(
qualidadeAgua.getQuantidadeCorExigidas() + "", 6));
} else {
arquivoTextoQualidadeAgua.append(Util.completaString(" ", 6));
}
if (qualidadeAgua.getQuantidadeCloroExigidas() != null) {
arquivoTextoQualidadeAgua.append(Util.completaString(
qualidadeAgua.getQuantidadeCloroExigidas() + "", 6));
} else {
arquivoTextoQualidadeAgua.append(Util.completaString(" ", 6));
}
if (qualidadeAgua.getQuantidadeFluorExigidas() != null) {
arquivoTextoQualidadeAgua.append(Util.completaString(
qualidadeAgua.getQuantidadeFluorExigidas() + "", 6));
} else {
arquivoTextoQualidadeAgua.append(Util.completaString(" ", 6));
}
if (qualidadeAgua.getQuantidadeColiformesTotaisExigidas() != null) {
arquivoTextoQualidadeAgua.append(Util.completaString(
qualidadeAgua.getQuantidadeColiformesTotaisExigidas()
+ "", 6));
} else {
arquivoTextoQualidadeAgua.append(Util.completaString(" ", 6));
}
if (qualidadeAgua.getQuantidadeColiformesFecaisExigidas() != null) {
arquivoTextoQualidadeAgua.append(Util.completaString(
qualidadeAgua.getQuantidadeColiformesFecaisExigidas()
+ "", 6));
} else {
arquivoTextoQualidadeAgua.append(Util.completaString(" ", 6));
}
if (qualidadeAgua.getQuantidadeColiformesTermotolerantesExigidas() != null) {
arquivoTextoQualidadeAgua
.append(Util.completaString(
qualidadeAgua
.getQuantidadeColiformesTermotolerantesExigidas()
+ "", 6));
} else {
arquivoTextoQualidadeAgua.append(Util.completaString(" ", 6));
}
// Analisadas
if (qualidadeAgua.getQuantidadeTurbidezAnalisadas() != null) {
arquivoTextoQualidadeAgua
.append(Util.completaString(
qualidadeAgua.getQuantidadeTurbidezAnalisadas()
+ "", 6));
} else {
arquivoTextoQualidadeAgua.append(Util.completaString(" ", 6));
}
if (qualidadeAgua.getQuantidadeCorAnalisadas() != null) {
arquivoTextoQualidadeAgua.append(Util.completaString(
qualidadeAgua.getQuantidadeCorAnalisadas() + "", 6));
} else {
arquivoTextoQualidadeAgua.append(Util.completaString(" ", 6));
}
if (qualidadeAgua.getQuantidadeCloroAnalisadas() != null) {
arquivoTextoQualidadeAgua.append(Util.completaString(
qualidadeAgua.getQuantidadeCloroAnalisadas() + "", 6));
} else {
arquivoTextoQualidadeAgua.append(Util.completaString(" ", 6));
}
if (qualidadeAgua.getQuantidadeFluorAnalisadas() != null) {
arquivoTextoQualidadeAgua.append(Util.completaString(
qualidadeAgua.getQuantidadeFluorAnalisadas() + "", 6));
} else {
arquivoTextoQualidadeAgua.append(Util.completaString(" ", 6));
}
if (qualidadeAgua.getQuantidadeColiformesTotaisAnalisadas() != null) {
arquivoTextoQualidadeAgua.append(Util.completaString(
qualidadeAgua.getQuantidadeColiformesTotaisAnalisadas()
+ "", 6));
} else {
arquivoTextoQualidadeAgua.append(Util.completaString(" ", 6));
}
if (qualidadeAgua.getQuantidadeColiformesFecaisAnalisadas() != null) {
arquivoTextoQualidadeAgua.append(Util.completaString(
qualidadeAgua.getQuantidadeColiformesFecaisAnalisadas()
+ "", 6));
} else {
arquivoTextoQualidadeAgua.append(Util.completaString(" ", 6));
}
if (qualidadeAgua
.getQuantidadeColiformesTermotolerantesAnalisadas() != null) {
arquivoTextoQualidadeAgua
.append(Util.completaString(
qualidadeAgua
.getQuantidadeColiformesTermotolerantesAnalisadas()
+ "", 6));
} else {
arquivoTextoQualidadeAgua.append(Util.completaString(" ", 6));
}
// Em Conformidade
if (qualidadeAgua.getQuantidadeTurbidezConforme() != null) {
arquivoTextoQualidadeAgua.append(Util.completaString(
qualidadeAgua.getQuantidadeTurbidezConforme() + "", 6));
} else {
arquivoTextoQualidadeAgua.append(Util.completaString(" ", 6));
}
if (qualidadeAgua.getQuantidadeCorConforme() != null) {
arquivoTextoQualidadeAgua.append(Util.completaString(
qualidadeAgua.getQuantidadeCorConforme() + "", 6));
} else {
arquivoTextoQualidadeAgua.append(Util.completaString(" ", 6));
}
if (qualidadeAgua.getQuantidadeCloroConforme() != null) {
arquivoTextoQualidadeAgua.append(Util.completaString(
qualidadeAgua.getQuantidadeCloroConforme() + "", 6));
} else {
arquivoTextoQualidadeAgua.append(Util.completaString(" ", 6));
}
if (qualidadeAgua.getQuantidadeFluorConforme() != null) {
arquivoTextoQualidadeAgua.append(Util.completaString(
qualidadeAgua.getQuantidadeFluorConforme() + "", 6));
} else {
arquivoTextoQualidadeAgua.append(Util.completaString(" ", 6));
}
if (qualidadeAgua.getQuantidadeColiformesTotaisConforme() != null) {
arquivoTextoQualidadeAgua.append(Util.completaString(
qualidadeAgua.getQuantidadeColiformesTotaisConforme()
+ "", 6));
} else {
arquivoTextoQualidadeAgua.append(Util.completaString(" ", 6));
}
if (qualidadeAgua.getQuantidadeColiformesFecaisConforme() != null) {
arquivoTextoQualidadeAgua.append(Util.completaString(
qualidadeAgua.getQuantidadeColiformesFecaisConforme()
+ "", 6));
} else {
arquivoTextoQualidadeAgua.append(Util.completaString(" ", 6));
}
if (qualidadeAgua.getQuantidadeColiformesTermotolerantesConforme() != null) {
arquivoTextoQualidadeAgua
.append(Util.completaString(
qualidadeAgua
.getQuantidadeColiformesTermotolerantesConforme()
+ "", 6));
} else {
arquivoTextoQualidadeAgua.append(Util.completaString(" ", 6));
}
} else {
arquivoTextoQualidadeAgua.append(Util.completaString("", 212));
}
return arquivoTextoQualidadeAgua;
}
@SuppressWarnings({ "rawtypes", "unchecked" })
private Object[] formatarCobrancaDocumentoItemParaImpressaoSimultanea(
Integer idImovel, CobrancaDocumento cobrancaDocumento,
int quantidadeContas) throws ControladorException {
Object[] retorno = new Object[2];
StringBuilder arquivoTextoRegistroTipo07 = new StringBuilder();
int quantidadeLinhas = 0;
if (cobrancaDocumento != null && !cobrancaDocumento.equals("")) {
Collection colecaoCobrancaDocumentoItemConta = null;
try {
colecaoCobrancaDocumentoItemConta = repositorioCobranca
.selecionarCobrancaDocumentoItemReferenteConta(cobrancaDocumento);
} catch (ErroRepositorioException e) {
sessionContext.setRollbackOnly();
throw new ControladorException("erro.sistema", e);
}
if (colecaoCobrancaDocumentoItemConta != null
&& !colecaoCobrancaDocumentoItemConta.isEmpty()) {
int countImpressao = colecaoCobrancaDocumentoItemConta.size()
- (quantidadeContas - 1);
if (colecaoCobrancaDocumentoItemConta.size() > quantidadeContas) {
// indicadorEstouro = 1;
CalcularValorDataVencimentoAnteriorHelper contaValoresHelper = getControladorCobranca()
.calcularValorDataVencimentoAnterior(
colecaoCobrancaDocumentoItemConta,
quantidadeContas);
quantidadeLinhas = quantidadeLinhas + 1;
// TIPO DO REGISTRO
arquivoTextoRegistroTipo07.append("07");
// MATR�CULA DO IM�VEL
arquivoTextoRegistroTipo07
.append(Util.adicionarZerosEsquedaNumero(9,
idImovel.toString()));
// ANO/MES DE REFERENCIA DA CONTA
arquivoTextoRegistroTipo07.append("DB.ATE");
// VALOR DA CONTA
arquivoTextoRegistroTipo07
.append(Util.adicionarZerosEsquedaNumero(
14,
Util.formatarBigDecimalComPonto(contaValoresHelper
.getValorAnterior())));
// DATA DE VENCIMENTO
arquivoTextoRegistroTipo07.append(Util
.formatarDataAAAAMMDD(contaValoresHelper
.getDataVencimentoAnterior()));
// VALOR ACR�SCIMOS IMPONTUALIDADE
arquivoTextoRegistroTipo07
.append(Util.adicionarZerosEsquedaNumero(
14,
Util.formatarBigDecimalComPonto(contaValoresHelper
.getValorAcrescimosAnterior())));
arquivoTextoRegistroTipo07.append(System
.getProperty("line.separator"));
}
if (countImpressao <= 1) {
Iterator iteratorColecaoCobrancaDocumentoItem = colecaoCobrancaDocumentoItemConta
.iterator();
CobrancaDocumentoItem cobrancaDocumentoItem = null;
while (iteratorColecaoCobrancaDocumentoItem.hasNext()) {
cobrancaDocumentoItem = (CobrancaDocumentoItem) iteratorColecaoCobrancaDocumentoItem
.next();
quantidadeLinhas = quantidadeLinhas + 1;
// TIPO DO REGISTRO
arquivoTextoRegistroTipo07.append("07");
// MATR�CULA DO IM�VEL
arquivoTextoRegistroTipo07.append(Util
.adicionarZerosEsquedaNumero(9,
idImovel.toString()));
// ANO/MES DE REFERENCIA DA CONTA
arquivoTextoRegistroTipo07.append(cobrancaDocumentoItem
.getContaGeral().getConta().getReferencia());
// VALOR DA CONTA
arquivoTextoRegistroTipo07
.append(Util.adicionarZerosEsquedaNumero(
14,
Util.formatarBigDecimalComPonto(cobrancaDocumentoItem
.getValorItemCobrado())));
// DATA DE VENCIMENTO
arquivoTextoRegistroTipo07.append(Util
.formatarDataAAAAMMDD(cobrancaDocumentoItem
.getContaGeral().getConta()
.getDataVencimentoConta()));
// VALOR ACR�SCIMOS IMPONTUALIDADE
arquivoTextoRegistroTipo07
.append(Util.adicionarZerosEsquedaNumero(
14,
Util.formatarBigDecimalComPonto(cobrancaDocumentoItem
.getValorAcrescimos())));
arquivoTextoRegistroTipo07.append(System
.getProperty("line.separator"));
}
} else {
CobrancaDocumentoItem cobrancaDocumentoItem = null;
while (countImpressao < colecaoCobrancaDocumentoItemConta
.size()) {
cobrancaDocumentoItem = (CobrancaDocumentoItem) ((List) colecaoCobrancaDocumentoItemConta)
.get(countImpressao);
quantidadeLinhas = quantidadeLinhas + 1;
// TIPO DO REGISTRO
arquivoTextoRegistroTipo07.append("07");
// MATR�CULA DO IM�VEL
arquivoTextoRegistroTipo07.append(Util
.adicionarZerosEsquedaNumero(9,
idImovel.toString()));
// ANO/MES DE REFERENCIA DA CONTA
arquivoTextoRegistroTipo07.append(cobrancaDocumentoItem
.getContaGeral().getConta().getReferencia());
// VALOR DA CONTA
arquivoTextoRegistroTipo07
.append(Util.adicionarZerosEsquedaNumero(
14,
Util.formatarBigDecimalComPonto(cobrancaDocumentoItem
.getValorItemCobrado())));
// DATA DE VENCIMENTO
arquivoTextoRegistroTipo07.append(Util
.formatarDataAAAAMMDD(cobrancaDocumentoItem
.getContaGeral().getConta()
.getDataVencimentoConta()));
// VALOR ACR�SCIMOS IMPONTUALIDADE
arquivoTextoRegistroTipo07
.append(Util.adicionarZerosEsquedaNumero(
14,
Util.formatarBigDecimalComPonto(cobrancaDocumentoItem
.getValorAcrescimos())));
arquivoTextoRegistroTipo07.append(System
.getProperty("line.separator"));
countImpressao++;
}
}
}
}
retorno[0] = arquivoTextoRegistroTipo07;
retorno[1] = quantidadeLinhas;
return retorno;
}
/**
* [UC0745] - Gerar Arquivo Texto para Faturamento
*
* [SB0001] - Gerar Arquivo Texto - Registro Tipo 11
*
* @author S�vio Luiz
* @date 25/11/2009
*
* @param imovel
* @param conta
* @param anoMesReferencia
* @return StringBuilder
* @throws ControladorException
*/
public StringBuilder gerarArquivoTextoRegistroTipo11(
SistemaParametro sistemaParametro, Imovel imovel,
Integer sequenciaRota, Integer anoMesFaturamento)
throws ControladorException {
StringBuilder arquivoTextoRegistroTipo11 = new StringBuilder();
// TIPO DO REGISTRO
arquivoTextoRegistroTipo11.append("11");
// C�digo da empresa febraban
arquivoTextoRegistroTipo11.append(Util.adicionarZerosEsquedaNumero(4,
"" + sistemaParametro.getCodigoEmpresaFebraban()));
// DATA DE REFER�NCIA DA ARRECADA��O
Integer anoMesArrecadacao = sistemaParametro.getAnoMesArrecadacao();
Date dataReferenciaArrecadacao = Util.criarData(
new Integer(Util.obterUltimoDiaMes(
Util.obterMes(anoMesArrecadacao),
Util.obterAno(anoMesArrecadacao))),
Util.obterMes(anoMesArrecadacao),
Util.obterAno(anoMesArrecadacao));
arquivoTextoRegistroTipo11.append(Util
.formatarDataAAAAMMDD(dataReferenciaArrecadacao));
/**
* Adicionando informa��o da refer�ncia do faturamento
*/
arquivoTextoRegistroTipo11.append(anoMesFaturamento);
// Telefone 0800
String fome0800 = sistemaParametro.getNumero0800Empresa();
arquivoTextoRegistroTipo11.append(Util.completaString(fome0800, 12));
// CNPJ da Empresa
if (sistemaParametro.getCnpjEmpresa() != null) {
arquivoTextoRegistroTipo11.append(Util.adicionarZerosEsquedaNumero(
14, sistemaParametro.getCnpjEmpresa()));
} else {
arquivoTextoRegistroTipo11.append(Util.adicionarZerosEsquedaNumero(
14, ""));
}
// Inscri��o Estadual da Empresa
if (sistemaParametro.getInscricaoEstadual() != null) {
arquivoTextoRegistroTipo11.append(Util.adicionarZerosEsquedaNumero(
20, sistemaParametro.getInscricaoEstadual()));
} else {
arquivoTextoRegistroTipo11.append(Util.adicionarZerosEsquedaNumero(
20, ""));
}
// VALOR M�NIMO EMISS�O CONTA
arquivoTextoRegistroTipo11.append(Util.adicionarZerosEsquedaNumero(14,
Util.formatarBigDecimalComPonto(sistemaParametro
.getValorMinimoEmissaoConta())));
// PERCENTUAL TOLER�NCIA PARA RATEIO
arquivoTextoRegistroTipo11.append(Util.adicionarZerosEsquedaNumero(4,
Util.formatarBigDecimalComPonto(sistemaParametro
.getPercentualToleranciaRateio())));
// DECREMENTO M�XIMO DE CONSUMO POR ECONOMIA
arquivoTextoRegistroTipo11.append(Util.adicionarZerosEsquedaNumero(6,
"" + sistemaParametro.getDecrementoMaximoConsumoRateio()));
// ICCREMENTO M�XIMO DE CONSUMO POR ECONOMIA
arquivoTextoRegistroTipo11.append(Util.adicionarZerosEsquedaNumero(6,
"" + sistemaParametro.getIncrementoMaximoConsumoRateio()));
// INDICADOR TARIFA CATEGORIA
arquivoTextoRegistroTipo11.append(Util.adicionarZerosEsquedaNumero(1,
"" + sistemaParametro.getIndicadorTarifaCategoria()));
// ENTRA NO PR�XIMA VERS�O
// Verifica se o existe usu�rio para leiturista
Rota rota = null;
if (imovel != null && imovel.getRotaAlternativa() != null) {
rota = imovel.getRotaAlternativa();
} else if (imovel != null && imovel.getQuadra() != null) {
rota = imovel.getQuadra().getRota();
}
if (rota != null && rota.getLeiturista() != null
&& rota.getLeiturista().getUsuario() != null
&& !rota.getLeiturista().getUsuario().equals("")) {
Usuario usuario = rota.getLeiturista().getUsuario();
if (usuario.getLogin() != null && !usuario.getLogin().equals("")) {
// LOGIN LEITURISTA
arquivoTextoRegistroTipo11.append(Util.completaString(
usuario.getLogin(), 11));
// SENHA LEITURISTA
String senhaCriptografada = usuario.getSenha();
if (senhaCriptografada != null
&& !senhaCriptografada.equals("")) {
arquivoTextoRegistroTipo11.append(Util.completaString(
senhaCriptografada, 40));
} else {
arquivoTextoRegistroTipo11.append(Util.completaString("",
40));
}
} else {
// LOGIN LEITURISTA
arquivoTextoRegistroTipo11.append(Util.completaString("gcom",
11));
// SENHA LEITURISTA
String senhaGerada = "senha";
String senhaCriptografada = null;
try {
senhaCriptografada = Criptografia
.encriptarSenha(senhaGerada);
} catch (ErroCriptografiaException e1) {
throw new ControladorException("erro.criptografia.senha");
}
arquivoTextoRegistroTipo11.append(Util.completaString(
senhaCriptografada, 40));
}
} else {
// LOGIN LEITURISTA
arquivoTextoRegistroTipo11.append(Util.completaString("gcom", 11));
// SENHA LEITURISTA
String senhaGerada = "senha";
String senhaCriptografada = null;
try {
senhaCriptografada = Criptografia.encriptarSenha(senhaGerada);
} catch (ErroCriptografiaException e1) {
throw new ControladorException("erro.criptografia.senha");
}
arquivoTextoRegistroTipo11.append(Util.completaString(
senhaCriptografada, 40));
}
if (rota != null) {
// DATA AJUSTE DE LEITURA
if (rota.getDataAjusteLeitura() != null
&& !rota.getDataAjusteLeitura().equals("")) {
arquivoTextoRegistroTipo11.append(Util
.formatarDataAAAAMMDD(rota.getDataAjusteLeitura()));
} else {
arquivoTextoRegistroTipo11.append(Util.completaString("", 8));
}
// INDICADOR AJUSTE DE CONSUMO
if (rota.getIndicadorAjusteConsumo() != null
&& !rota.getIndicadorAjusteConsumo().equals("")) {
arquivoTextoRegistroTipo11.append(rota
.getIndicadorAjusteConsumo());
} else {
arquivoTextoRegistroTipo11.append(Util.completaString("", 1));
}
// INDICADOR TRANSMIS�O OFFLINE
if (rota.getIndicadorTransmissaoOffline() != null
&& !rota.getIndicadorTransmissaoOffline().equals("")) {
arquivoTextoRegistroTipo11.append(rota
.getIndicadorTransmissaoOffline());
} else {
arquivoTextoRegistroTipo11.append(Util.completaString("", 1));
}
} else {
arquivoTextoRegistroTipo11.append(Util.completaString("", 10));
}
// VERS�O DO CELULAR
if (sistemaParametro.getVersaoCelular() != null
&& !sistemaParametro.getVersaoCelular().equals("")) {
arquivoTextoRegistroTipo11.append(Util.completaString(
sistemaParametro.getVersaoCelular(), 10));
} else {
arquivoTextoRegistroTipo11.append(Util.completaString("", 10));
}
// INDICADOR BLOQUEIO CONTA MOBILE
if (sistemaParametro.getIndicadorBloqueioContaMobile() != null
&& !sistemaParametro.getIndicadorBloqueioContaMobile().equals(
"")) {
arquivoTextoRegistroTipo11
.append(Util.adicionarZerosEsquedaNumero(
1,
""
+ sistemaParametro
.getIndicadorBloqueioContaMobile()));
} else {
arquivoTextoRegistroTipo11.append(Util.adicionarZerosEsquedaNumero(
1, ""));
}
// INDICADOR DE ROTA DE MARCA��O
if (rota.getIndicadorSequencialLeitura() == null) {
arquivoTextoRegistroTipo11.append(Util.adicionarZerosEsquedaNumero(
1, "" + ConstantesSistema.NAO));
} else {
arquivoTextoRegistroTipo11.append(Util.adicionarZerosEsquedaNumero(
1, "" + rota.getIndicadorSequencialLeitura()));
}
// QUANTIDADE DE DIAS DE CONSUMO
long numeroDiasConsumoAjuste = getControladorFaturamento().obterDiferencaDiasCronogramas(
sistemaParametro.getAnoMesFaturamento(), rota, FaturamentoAtividade.EFETUAR_LEITURA);
arquivoTextoRegistroTipo11.append(Util.adicionarZerosEsquedaNumero(2,""+ numeroDiasConsumoAjuste ));
// MODULO DIGITO VERIFICADOR
Short moduloVerificador = ConstantesSistema.MODULO_VERIFICADOR_10;
if (sistemaParametro.getNumeroModuloDigitoVerificador() != null
&& sistemaParametro.getNumeroModuloDigitoVerificador()
.compareTo(ConstantesSistema.MODULO_VERIFICADOR_11) == 0) {
moduloVerificador = ConstantesSistema.MODULO_VERIFICADOR_11;
}
arquivoTextoRegistroTipo11.append(Util.completaString(""
+ moduloVerificador, 2));
// verifica se o campo n�mero de dias para bloqueio � diferente de nulo,
// caso n�o seja a quantidade de dias ser� 30.
int diasBloqueioCelular = 30;
if (sistemaParametro.getNumeroDiasBloqueioCelular() != null) {
diasBloqueioCelular = sistemaParametro
.getNumeroDiasBloqueioCelular();
}
// DATA INICIO PARA BLOQUEIO
Date dataInicioBloqueio = Util.subtrairNumeroDiasDeUmaData(new Date(),
diasBloqueioCelular);
arquivoTextoRegistroTipo11.append(Util
.formatarDataAAAAMMDD(dataInicioBloqueio));
// DATA FIM PARA BLOQUEIO
Date dataFimBloqueio = Util.adicionarNumeroDiasDeUmaData(new Date(),
diasBloqueioCelular);
arquivoTextoRegistroTipo11.append(Util
.formatarDataAAAAMMDD(dataFimBloqueio));
/*
* Alteracao para enviar o codigo da rota, pois ao essa
* informacao � necessaria ao finalizar rotas alternativas, pois n�o �
* possivel localizar as rotas pelo setor original, somente pelo setor
* alternativo e essa informa��o n�o � gerada na rota.
*/
// ID DA ROTA
arquivoTextoRegistroTipo11.append(Util.adicionarZerosEsquedaNumero(4,
"" + rota.getId()));
// CAMPO QUE INDICA SE A ROTA � DIVIDIDA
/**
* Adicionando o numero sequencial da rota, caso seja uma
* rota dividida
*/
if (sequenciaRota != null) {
arquivoTextoRegistroTipo11.append(Util.adicionarZerosEsquedaNumero(
2, sequenciaRota.toString()));
} else {
arquivoTextoRegistroTipo11.append(Util.adicionarZerosEsquedaNumero(
2, ""));
}
/**
* Pamela Gatinho - 24/01/2013 Adicionando o indicador
* para calcular a rota pela media
*/
// if (rota.getIndicadorCalculoMedia() != null) {
// arquivoTextoRegistroTipo11.append(Util.adicionarZerosEsquedaNumero(2,rota.getIndicadorCalculoMedia().toString()));
// } else {
// arquivoTextoRegistroTipo11.append(Util.adicionarZerosEsquedaNumero(2,""));
// }
return arquivoTextoRegistroTipo11;
}
@SuppressWarnings({ "unchecked", "rawtypes" })
private StringBuilder gerarDadosSituacaoEspecialFaturamento(Imovel imovel,
FaturamentoGrupo faturamentoGrupo) throws ControladorException {
StringBuilder arquivoTextoRegistroTipo01 = new StringBuilder();
if (imovel.getFaturamentoSituacaoTipo() != null
&& imovel.getFaturamentoSituacaoTipo().getId() != null
&& !imovel.getFaturamentoSituacaoTipo().getId().equals("")) {
FiltroFaturamentoSituacaoHistorico filtroFaturamentoSituacaoHistorico = new FiltroFaturamentoSituacaoHistorico();
filtroFaturamentoSituacaoHistorico
.adicionarParametro(new ParametroSimples(
FiltroFaturamentoSituacaoHistorico.ID_IMOVEL,
imovel.getId()));
filtroFaturamentoSituacaoHistorico
.adicionarParametro(new ParametroNulo(
FiltroFaturamentoSituacaoHistorico.ANO_MES_FATURAMENTO_RETIRADA));
Collection<FaturamentoSituacaoHistorico> colFiltroFaturamentoSituacaoHistorico = this
.getControladorUtil().pesquisar(
filtroFaturamentoSituacaoHistorico,
FaturamentoSituacaoHistorico.class.getName());
FaturamentoSituacaoHistorico faturamentoSituacaoHistorico = (FaturamentoSituacaoHistorico) Util
.retonarObjetoDeColecao(colFiltroFaturamentoSituacaoHistorico);
// Verificamos se anomesreferencia do grupo que esta sendo faturado
// est� entre o os meses inicial e final do
// FATURAMENTO_SITUACAO_HISTORICO
if (faturamentoSituacaoHistorico != null
&& faturamentoGrupo != null
&& faturamentoGrupo.getAnoMesReferencia() >= faturamentoSituacaoHistorico
.getAnoMesFaturamentoSituacaoInicio()
&& faturamentoGrupo.getAnoMesReferencia() <= faturamentoSituacaoHistorico
.getAnoMesFaturamentoSituacaoFim()) {
Collection colecaoFaturamentoSituacaoTipo = null;
// Pesquisa a anormalidade de leitura de faturamento
colecaoFaturamentoSituacaoTipo = getControladorMicromedicao()
.pesquisarFaturamentoSituacaoTipo(
imovel.getFaturamentoSituacaoTipo());
// Obt�m a leitura anormalidade
FaturamentoSituacaoTipo faturamentoSituacaoTipo = getControladorMicromedicao()
.obterFaturamentoSituacaoTipo(
colecaoFaturamentoSituacaoTipo);
// TIPO DA SITUA��O ESPECIAL DE FATURAMENTO
arquivoTextoRegistroTipo01.append(Util
.adicionarZerosEsquedaNumero(2, ""
+ imovel.getFaturamentoSituacaoTipo().getId()));
// ID DA LEITURA DE ANORMALIDADE DE CONSUMO SEM LEITURA
if (faturamentoSituacaoTipo
.getLeituraAnormalidadeConsumoSemLeitura() != null
&& !faturamentoSituacaoTipo
.getLeituraAnormalidadeConsumoSemLeitura()
.equals("")) {
arquivoTextoRegistroTipo01
.append(Util
.adicionarZerosEsquedaNumero(
2,
""
+ faturamentoSituacaoTipo
.getLeituraAnormalidadeConsumoSemLeitura()
.getId()));
} else {
arquivoTextoRegistroTipo01.append(Util
.completaString("", 2));
}
// ID DA LEITURA DE ANORMALIDADE DE CONSUMO COM LEITURA
if (faturamentoSituacaoTipo
.getLeituraAnormalidadeConsumoComLeitura() != null
&& !faturamentoSituacaoTipo
.getLeituraAnormalidadeConsumoComLeitura()
.equals("")) {
arquivoTextoRegistroTipo01
.append(Util
.adicionarZerosEsquedaNumero(
2,
""
+ faturamentoSituacaoTipo
.getLeituraAnormalidadeConsumoComLeitura()
.getId()));
} else {
arquivoTextoRegistroTipo01.append(Util
.completaString("", 2));
}
// ID DA LEITURA DE ANORMALIDADE DE LEITURA SEM LEITURA
if (faturamentoSituacaoTipo
.getLeituraAnormalidadeLeituraSemLeitura() != null
&& !faturamentoSituacaoTipo
.getLeituraAnormalidadeLeituraSemLeitura()
.equals("")) {
arquivoTextoRegistroTipo01
.append(Util
.adicionarZerosEsquedaNumero(
2,
""
+ faturamentoSituacaoTipo
.getLeituraAnormalidadeLeituraSemLeitura()
.getId()));
} else {
arquivoTextoRegistroTipo01.append(Util
.completaString("", 2));
}
// ID DA LEITURA DE ANORMALIDADE DE LEITURA COM LEITURA
if (faturamentoSituacaoTipo
.getLeituraAnormalidadeLeituraComLeitura() != null
&& !faturamentoSituacaoTipo
.getLeituraAnormalidadeLeituraComLeitura()
.equals("")) {
arquivoTextoRegistroTipo01
.append(Util
.adicionarZerosEsquedaNumero(
2,
""
+ faturamentoSituacaoTipo
.getLeituraAnormalidadeLeituraComLeitura()
.getId()));
} else {
arquivoTextoRegistroTipo01.append(Util
.completaString("", 2));
}
// CONSUMO �GUA MEDIDO DO HIST�RICO DE FATURAMENTO
if (faturamentoSituacaoHistorico.getNumeroConsumoAguaMedido() != null
&& !faturamentoSituacaoHistorico
.getNumeroConsumoAguaMedido().equals("")) {
arquivoTextoRegistroTipo01
.append(Util.adicionarZerosEsquedaNumero(
6,
""
+ faturamentoSituacaoHistorico
.getNumeroConsumoAguaMedido()));
} else {
arquivoTextoRegistroTipo01.append(Util
.completaString("", 6));
}
// CONSUMO �GUA N�O MEDIDO DO HIST�RICO DE FATURAMENTO
if (faturamentoSituacaoHistorico
.getNumeroConsumoAguaNaoMedido() != null
&& !faturamentoSituacaoHistorico
.getNumeroConsumoAguaNaoMedido().equals("")) {
arquivoTextoRegistroTipo01
.append(Util.adicionarZerosEsquedaNumero(
6,
""
+ faturamentoSituacaoHistorico
.getNumeroConsumoAguaNaoMedido()));
} else {
arquivoTextoRegistroTipo01.append(Util
.completaString("", 6));
}
// VOLUME ESGOTO MEDIDO DO HIST�RICO DE FATURAMENTO
if (faturamentoSituacaoHistorico.getNumeroVolumeEsgotoMedido() != null
&& !faturamentoSituacaoHistorico
.getNumeroVolumeEsgotoMedido().equals("")) {
arquivoTextoRegistroTipo01
.append(Util.adicionarZerosEsquedaNumero(
6,
""
+ faturamentoSituacaoHistorico
.getNumeroVolumeEsgotoMedido()));
} else {
arquivoTextoRegistroTipo01.append(Util
.completaString("", 6));
}
// VOLUME ESGOTO N�O MEDIDO DO HIST�RICO DE FATURAMENTO
if (faturamentoSituacaoHistorico
.getNumeroVolumeEsgotoNaoMedido() != null
&& !faturamentoSituacaoHistorico
.getNumeroVolumeEsgotoNaoMedido().equals("")) {
arquivoTextoRegistroTipo01
.append(Util.adicionarZerosEsquedaNumero(
6,
""
+ faturamentoSituacaoHistorico
.getNumeroVolumeEsgotoNaoMedido()));
} else {
arquivoTextoRegistroTipo01.append(Util
.completaString("", 6));
}
// INDICADOR VALIDA �GUA
arquivoTextoRegistroTipo01.append(Util.completaString(""
+ imovel.getFaturamentoSituacaoTipo()
.getIndicadorValidoAgua(), 1));
// INDICADOR VALIDA ESGOTO
arquivoTextoRegistroTipo01.append(Util.completaString(""
+ imovel.getFaturamentoSituacaoTipo()
.getIndicadorValidoEsgoto(), 1));
} else {
// TIPO DA SITUA��O ESPECIAL DE FATURAMENTO
arquivoTextoRegistroTipo01.append(Util.completaString("", 2));
// ID DA LEITURA DE ANORMALIDADE DE CONSUMO SEM LEITURA
arquivoTextoRegistroTipo01.append(Util.completaString("", 2));
// ID DA LEITURA DE ANORMALIDADE DE CONSUMO COM LEITURA
arquivoTextoRegistroTipo01.append(Util.completaString("", 2));
// ID DA LEITURA DE ANORMALIDADE DE LEITURA SEM LEITURA
arquivoTextoRegistroTipo01.append(Util.completaString("", 2));
// ID DA LEITURA DE ANORMALIDADE DE LEITURA COM LEITURA
arquivoTextoRegistroTipo01.append(Util.completaString("", 2));
// CONSUMO �GUA MEDIDO DO HIST�RICO DE FATURAMENTO
arquivoTextoRegistroTipo01.append(Util.completaString("", 6));
// CONSUMO �GUA N�O MEDIDO DO HIST�RICO DE FATURAMENTO
arquivoTextoRegistroTipo01.append(Util.completaString("", 6));
// VOLUME ESGOTO MEDIDO DO HIST�RICO DE FATURAMENTO
arquivoTextoRegistroTipo01.append(Util.completaString("", 6));
// VOLUME ESGOTO N�O MEDIDO DO HIST�RICO DE FATURAMENTO
arquivoTextoRegistroTipo01.append(Util.completaString("", 6));
// INDICADOR VALIDA �GUA
arquivoTextoRegistroTipo01.append(Util.completaString("", 1));
// INDICADOR VALIDA ESGOTO
arquivoTextoRegistroTipo01.append(Util.completaString("", 1));
}
} else {
// TIPO DA SITUA��O ESPECIAL DE FATURAMENTO
arquivoTextoRegistroTipo01.append(Util.completaString("", 2));
// ID DA LEITURA DE ANORMALIDADE DE CONSUMO SEM LEITURA
arquivoTextoRegistroTipo01.append(Util.completaString("", 2));
// ID DA LEITURA DE ANORMALIDADE DE CONSUMO COM LEITURA
arquivoTextoRegistroTipo01.append(Util.completaString("", 2));
// ID DA LEITURA DE ANORMALIDADE DE LEITURA SEM LEITURA
arquivoTextoRegistroTipo01.append(Util.completaString("", 2));
// ID DA LEITURA DE ANORMALIDADE DE LEITURA COM LEITURA
arquivoTextoRegistroTipo01.append(Util.completaString("", 2));
// CONSUMO �GUA MEDIDO DO HIST�RICO DE FATURAMENTO
arquivoTextoRegistroTipo01.append(Util.completaString("", 6));
// CONSUMO �GUA N�O MEDIDO DO HIST�RICO DE FATURAMENTO
arquivoTextoRegistroTipo01.append(Util.completaString("", 6));
// VOLUME ESGOTO MEDIDO DO HIST�RICO DE FATURAMENTO
arquivoTextoRegistroTipo01.append(Util.completaString("", 6));
// VOLUME ESGOTO N�O MEDIDO DO HIST�RICO DE FATURAMENTO
arquivoTextoRegistroTipo01.append(Util.completaString("", 6));
// INDICADOR VALIDA �GUA
arquivoTextoRegistroTipo01.append(Util.completaString("", 1));
// INDICADOR VALIDA ESGOTO
arquivoTextoRegistroTipo01.append(Util.completaString("", 1));
}
return arquivoTextoRegistroTipo01;
}
/**
* [UC0745] - Gerar Arquivo Texto para Faturamento
*
* [SB0001] - Gerar Arquivo Texto - Registro Tipo 12
*
* @author S�vio Luiz
* @date 18/12/2009
*
* @param imovel
* @param conta
* @param anoMesReferencia
* @return StringBuilder
* @throws ControladorException
*/
@SuppressWarnings("rawtypes")
public Object[] gerarArquivoTextoRegistroTipo12()
throws ControladorException {
StringBuilder arquivoTextoRegistroTipo12 = new StringBuilder();
int quantidadeLinhas = 0;
Object[] retorno = new Object[2];
FiltroConsumoAnormalidadeAcao filtroConsumoAnormalidadeAcao = new FiltroConsumoAnormalidadeAcao();
filtroConsumoAnormalidadeAcao.adicionarParametro(new ParametroSimples(
FiltroConsumoAnormalidadeAcao.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
Collection colecaoConsumoAnormalidadeAcao = getControladorUtil()
.pesquisar(filtroConsumoAnormalidadeAcao,
ConsumoAnormalidadeAcao.class.getName());
if (colecaoConsumoAnormalidadeAcao != null
&& !colecaoConsumoAnormalidadeAcao.isEmpty()) {
int count = colecaoConsumoAnormalidadeAcao.size();
Iterator itConsumoAnormalidadeAcao = colecaoConsumoAnormalidadeAcao
.iterator();
while (itConsumoAnormalidadeAcao.hasNext()) {
quantidadeLinhas = quantidadeLinhas + 1;
count--;
ConsumoAnormalidadeAcao consumoAnormalidadeAcao = (ConsumoAnormalidadeAcao) itConsumoAnormalidadeAcao
.next();
// TIPO DO REGISTRO
arquivoTextoRegistroTipo12.append("12");
// Id do consumo Anormalidade
if (consumoAnormalidadeAcao.getConsumoAnormalidade() != null
&& consumoAnormalidadeAcao.getConsumoAnormalidade()
.getId() != null) {
arquivoTextoRegistroTipo12.append(Util
.adicionarZerosEsquedaNumero(2, ""
+ consumoAnormalidadeAcao
.getConsumoAnormalidade().getId()));
} else {
arquivoTextoRegistroTipo12.append(Util
.adicionarZerosEsquedaNumero(2, ""));
}
// Id da categoria
if (consumoAnormalidadeAcao.getCategoria() != null
&& consumoAnormalidadeAcao.getCategoria().getId() != null
&& !consumoAnormalidadeAcao.getCategoria().getId()
.equals("")) {
arquivoTextoRegistroTipo12.append(Util
.adicionarZerosEsquedaNumero(2, ""
+ consumoAnormalidadeAcao.getCategoria()
.getId()));
} else {
arquivoTextoRegistroTipo12.append(Util
.completaString("", 2));
}
// Id do im�vel perfil
if (consumoAnormalidadeAcao.getImovelPerfil() != null
&& consumoAnormalidadeAcao.getImovelPerfil().getId() != null
&& !consumoAnormalidadeAcao.getImovelPerfil().getId()
.equals("")) {
arquivoTextoRegistroTipo12.append(Util
.adicionarZerosEsquedaNumero(2, ""
+ consumoAnormalidadeAcao.getImovelPerfil()
.getId()));
} else {
arquivoTextoRegistroTipo12.append(Util
.completaString("", 2));
}
// Id da leitura anormalidade consumo do primeiro m�s
if (consumoAnormalidadeAcao.getLeituraAnormalidadeConsumoMes1() != null
&& consumoAnormalidadeAcao
.getLeituraAnormalidadeConsumoMes1().getId() != null) {
arquivoTextoRegistroTipo12
.append(Util
.adicionarZerosEsquedaNumero(
2,
""
+ consumoAnormalidadeAcao
.getLeituraAnormalidadeConsumoMes1()
.getId()));
} else {
arquivoTextoRegistroTipo12.append(Util
.adicionarZerosEsquedaNumero(2, ""));
}
// Id da leitura anormalidade consumo do segundo m�s
if (consumoAnormalidadeAcao.getLeituraAnormalidadeConsumoMes2() != null
&& consumoAnormalidadeAcao
.getLeituraAnormalidadeConsumoMes2().getId() != null) {
arquivoTextoRegistroTipo12
.append(Util
.adicionarZerosEsquedaNumero(
2,
""
+ consumoAnormalidadeAcao
.getLeituraAnormalidadeConsumoMes2()
.getId()));
} else {
arquivoTextoRegistroTipo12.append(Util
.adicionarZerosEsquedaNumero(2, ""));
}
// Id da leitura anormalidade consumo do terceiro m�s
if (consumoAnormalidadeAcao.getLeituraAnormalidadeConsumoMes3() != null
&& consumoAnormalidadeAcao
.getLeituraAnormalidadeConsumoMes3().getId() != null) {
arquivoTextoRegistroTipo12
.append(Util
.adicionarZerosEsquedaNumero(
2,
""
+ consumoAnormalidadeAcao
.getLeituraAnormalidadeConsumoMes3()
.getId()));
} else {
arquivoTextoRegistroTipo12.append(Util
.adicionarZerosEsquedaNumero(2, ""));
}
// Fator de consumo do primeiro m�s
if (consumoAnormalidadeAcao.getNumerofatorConsumoMes1() != null
&& !consumoAnormalidadeAcao.getNumerofatorConsumoMes1()
.equals("")) {
arquivoTextoRegistroTipo12
.append(Util.adicionarZerosEsquedaNumero(
4,
""
+ consumoAnormalidadeAcao
.getNumerofatorConsumoMes1()));
} else {
arquivoTextoRegistroTipo12.append(Util
.adicionarZerosEsquedaNumero(4, ""));
}
// Fator de consumo do segundo m�s
if (consumoAnormalidadeAcao.getNumerofatorConsumoMes2() != null
&& !consumoAnormalidadeAcao.getNumerofatorConsumoMes2()
.equals("")) {
arquivoTextoRegistroTipo12
.append(Util.adicionarZerosEsquedaNumero(
4,
""
+ consumoAnormalidadeAcao
.getNumerofatorConsumoMes2()));
} else {
arquivoTextoRegistroTipo12.append(Util
.adicionarZerosEsquedaNumero(4, ""));
}
// Fator de consumo do terceiro m�s
if (consumoAnormalidadeAcao.getNumerofatorConsumoMes3() != null
&& !consumoAnormalidadeAcao.getNumerofatorConsumoMes3()
.equals("")) {
arquivoTextoRegistroTipo12
.append(Util.adicionarZerosEsquedaNumero(
4,
""
+ consumoAnormalidadeAcao
.getNumerofatorConsumoMes3()));
} else {
arquivoTextoRegistroTipo12.append(Util
.adicionarZerosEsquedaNumero(4, ""));
}
// Mensagem da conta m�s 1
if (consumoAnormalidadeAcao.getDescricaoContaMensagemMes1() != null
&& !consumoAnormalidadeAcao
.getDescricaoContaMensagemMes1().equals("")) {
arquivoTextoRegistroTipo12.append(Util.completaString(
consumoAnormalidadeAcao
.getDescricaoContaMensagemMes1(), 120));
} else {
arquivoTextoRegistroTipo12.append(Util.completaString("",
120));
}
// Mensagem da conta m�s 2
if (consumoAnormalidadeAcao.getDescricaoContaMensagemMes2() != null
&& !consumoAnormalidadeAcao
.getDescricaoContaMensagemMes2().equals("")) {
arquivoTextoRegistroTipo12.append(Util.completaString(
consumoAnormalidadeAcao
.getDescricaoContaMensagemMes2(), 120));
} else {
arquivoTextoRegistroTipo12.append(Util.completaString("",
120));
}
// Mensagem da conta m�s 3
if (consumoAnormalidadeAcao.getDescricaoContaMensagemMes3() != null
&& !consumoAnormalidadeAcao
.getDescricaoContaMensagemMes3().equals("")) {
arquivoTextoRegistroTipo12.append(Util.completaString(
consumoAnormalidadeAcao
.getDescricaoContaMensagemMes3(), 120));
} else {
arquivoTextoRegistroTipo12.append(Util.completaString("",
120));
}
if (count != 0) {
arquivoTextoRegistroTipo12.append(System
.getProperty("line.separator"));
}
}
}
retorno[0] = arquivoTextoRegistroTipo12;
retorno[1] = quantidadeLinhas;
return retorno;
}
/**
* [UC0745] - Gerar Arquivo Texto para Faturamento
*
* [SB0001] - Gerar Arquivo Texto - Registro Tipo 13
*
* @author S�vio Luiz
* @date 18/12/2009
*
* @param imovel
* @param conta
* @param anoMesReferencia
* @return StringBuilder
* @throws ControladorException
*/
@SuppressWarnings("rawtypes")
public Object[] gerarArquivoTextoRegistroTipo13()
throws ControladorException {
StringBuilder arquivoTextoRegistroTipo13 = new StringBuilder();
int quantidadeLinhas = 0;
Object[] retorno = new Object[2];
FiltroConsumoAnormalidade filtroConsumoAnormalidade = new FiltroConsumoAnormalidade();
filtroConsumoAnormalidade.adicionarParametro(new ParametroSimples(
FiltroConsumoAnormalidade.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
filtroConsumoAnormalidade.adicionarParametro(new ParametroNaoNulo(
FiltroConsumoAnormalidade.MENSAGEM_CONTA));
Collection colecaoConsumoAnormalidade = getControladorUtil().pesquisar(
filtroConsumoAnormalidade, ConsumoAnormalidade.class.getName());
if (colecaoConsumoAnormalidade != null
&& !colecaoConsumoAnormalidade.isEmpty()) {
int count = colecaoConsumoAnormalidade.size();
Iterator itConsumoAnormalidade = colecaoConsumoAnormalidade
.iterator();
while (itConsumoAnormalidade.hasNext()) {
quantidadeLinhas = quantidadeLinhas + 1;
count--;
ConsumoAnormalidade consumoAnormalidade = (ConsumoAnormalidade) itConsumoAnormalidade
.next();
// TIPO DO REGISTRO
arquivoTextoRegistroTipo13.append("13");
// Id do consumo Anormalidade
if (consumoAnormalidade.getId() != null
&& !consumoAnormalidade.getId().equals("")) {
arquivoTextoRegistroTipo13.append(Util
.adicionarZerosEsquedaNumero(2, ""
+ consumoAnormalidade.getId()));
} else {
arquivoTextoRegistroTipo13.append(Util
.adicionarZerosEsquedaNumero(2, ""));
}
// mensagem consumo Anormalidade
if (consumoAnormalidade.getMensagemConta() != null
&& !consumoAnormalidade.getMensagemConta().equals("")) {
arquivoTextoRegistroTipo13.append(Util.completaString(""
+ consumoAnormalidade.getMensagemConta(), 120));
} else {
arquivoTextoRegistroTipo13.append(Util.completaString("",
120));
}
if (count != 0) {
arquivoTextoRegistroTipo13.append(System
.getProperty("line.separator"));
}
}
}
retorno[0] = arquivoTextoRegistroTipo13;
retorno[1] = quantidadeLinhas;
return retorno;
}
/**
* [UC0745] - Gerar Arquivo Texto para Faturamento
*
* [SB0001] - Gerar Arquivo Texto - Registro Tipo 14 (Leitura Anormalidade)
*
* @author S�vio Luiz
* @date 18/12/2009
*
* @param imovel
* @param conta
* @param anoMesReferencia
* @return StringBuilder
* @throws ControladorException
*/
@SuppressWarnings("rawtypes")
public Object[] gerarArquivoTextoRegistroTipo14()
throws ControladorException {
StringBuilder arquivoTextoRegistroTipo14 = new StringBuilder();
int quantidadeLinhas = 0;
Object[] retorno = new Object[2];
FiltroLeituraAnormalidade filtroLeituraAnormalidade = new FiltroLeituraAnormalidade(
FiltroLeituraAnormalidade.ID);
filtroLeituraAnormalidade.adicionarParametro(new ParametroSimples(
FiltroLeituraAnormalidade.INDICADOR_IMPRESSAO_SIMULTANEA,
ConstantesSistema.SIM));
Collection colecaoLeituraAnormalidade = getControladorUtil().pesquisar(
filtroLeituraAnormalidade, LeituraAnormalidade.class.getName());
if (colecaoLeituraAnormalidade != null
&& !colecaoLeituraAnormalidade.isEmpty()) {
int count = colecaoLeituraAnormalidade.size();
Iterator itLeituraAnormalidade = colecaoLeituraAnormalidade
.iterator();
while (itLeituraAnormalidade.hasNext()) {
quantidadeLinhas = quantidadeLinhas + 1;
count--;
LeituraAnormalidade leituraAnormalidade = (LeituraAnormalidade) itLeituraAnormalidade
.next();
// TIPO DO REGISTRO
arquivoTextoRegistroTipo14.append("14");
// Id da leitura Anormalidade
if (leituraAnormalidade.getId() != null
&& !leituraAnormalidade.getId().equals("")) {
arquivoTextoRegistroTipo14.append(Util
.adicionarZerosEsquedaNumero(3, ""
+ leituraAnormalidade.getId()));
} else {
arquivoTextoRegistroTipo14.append(Util
.adicionarZerosEsquedaNumero(3, ""));
}
// descri��o da leitura Anormalidade
if (leituraAnormalidade.getDescricao() != null
&& !leituraAnormalidade.getDescricao().equals("")) {
arquivoTextoRegistroTipo14.append(Util.completaString(""
+ leituraAnormalidade.getDescricao(), 25));
} else {
arquivoTextoRegistroTipo14.append(Util.completaString("",
25));
}
// INDICADOR ACEITA LEITURA
if (leituraAnormalidade.getIndicadorLeitura() != null
&& !leituraAnormalidade.getIndicadorLeitura()
.equals("")) {
arquivoTextoRegistroTipo14.append(Util.completaString(""
+ leituraAnormalidade.getIndicadorLeitura(), 1));
} else {
arquivoTextoRegistroTipo14.append(Util
.completaString("", 1));
}
// ID Consumo a cobrar com leitura
if (leituraAnormalidade
.getLeituraAnormalidadeConsumoComleitura() != null
&& !leituraAnormalidade
.getLeituraAnormalidadeConsumoComleitura()
.equals("")) {
arquivoTextoRegistroTipo14.append(Util.completaString(""
+ leituraAnormalidade
.getLeituraAnormalidadeConsumoComleitura()
.getId(), 2));
} else {
arquivoTextoRegistroTipo14.append(Util
.completaString("", 2));
}
// ID Consumo a cobrar sem leitura
if (leituraAnormalidade
.getLeituraAnormalidadeConsumoSemleitura() != null
&& !leituraAnormalidade
.getLeituraAnormalidadeConsumoSemleitura()
.equals("")) {
arquivoTextoRegistroTipo14.append(Util.completaString(""
+ leituraAnormalidade
.getLeituraAnormalidadeConsumoSemleitura()
.getId(), 2));
} else {
arquivoTextoRegistroTipo14.append(Util
.completaString("", 2));
}
// ID Leitura anormalidade leitura com leitura
if (leituraAnormalidade
.getLeituraAnormalidadeLeituraComleitura() != null
&& !leituraAnormalidade
.getLeituraAnormalidadeLeituraComleitura()
.equals("")) {
arquivoTextoRegistroTipo14.append(Util.completaString(""
+ leituraAnormalidade
.getLeituraAnormalidadeLeituraComleitura()
.getId(), 2));
} else {
arquivoTextoRegistroTipo14.append(Util
.completaString("", 2));
}
// ID Leitura anormalidade leitura sem leitura
if (leituraAnormalidade
.getLeituraAnormalidadeLeituraSemleitura() != null
&& !leituraAnormalidade
.getLeituraAnormalidadeLeituraSemleitura()
.equals("")) {
arquivoTextoRegistroTipo14.append(Util.completaString(""
+ leituraAnormalidade
.getLeituraAnormalidadeLeituraSemleitura()
.getId(), 2));
} else {
arquivoTextoRegistroTipo14.append(Util
.completaString("", 2));
}
// Indicador de uso
if (leituraAnormalidade.getIndicadorUso() != null
&& !leituraAnormalidade.getIndicadorUso().equals("")) {
arquivoTextoRegistroTipo14.append(Util.completaString(""
+ leituraAnormalidade.getIndicadorUso(), 1));
} else {
arquivoTextoRegistroTipo14.append(Util
.completaString("", 1));
}
// numero fator sem leitura
if (leituraAnormalidade.getNumeroFatorSemLeitura() != null
&& !leituraAnormalidade.getNumeroFatorSemLeitura()
.equals("")) {
arquivoTextoRegistroTipo14
.append(Util.completaString(
""
+ leituraAnormalidade
.getNumeroFatorSemLeitura(),
4));
} else {
arquivoTextoRegistroTipo14.append(Util
.completaString("", 4));
}
// numero fator com leitura
if (leituraAnormalidade.getNumeroFatorComLeitura() != null
&& !leituraAnormalidade.getNumeroFatorComLeitura()
.equals("")) {
arquivoTextoRegistroTipo14
.append(Util.completaString(
""
+ leituraAnormalidade
.getNumeroFatorComLeitura(),
4));
} else {
arquivoTextoRegistroTipo14.append(Util
.completaString("", 4));
}
if (count != 0) {
arquivoTextoRegistroTipo14.append(System
.getProperty("line.separator"));
}
}
}
retorno[0] = arquivoTextoRegistroTipo14;
retorno[1] = quantidadeLinhas;
return retorno;
}
/**
* [UC0745] - Gerar Arquivo Texto Dividido para Faturamento
*
* @author Hugo Leonardo
* @date 01/06/2010
*
* @param anoMesFaturamento
* @param faturamentoGrupo
* @param rota
* @param imovel
* @param qtdImoveis
* @param arquivoTexto
* @throws ControladorException
*/
@SuppressWarnings("resource")
public ArquivoTextoRoteiroEmpresaDivisao inserirArquivoTextoRoteiroEmpresaDivisao(
Integer anoMesFaturamento, FaturamentoGrupo faturamentoGrupo,
Rota rota, Imovel imovel, Integer qtdImoveis,
StringBuilder arquivoTexto) throws ControladorException {
ArquivoTextoRoteiroEmpresaDivisao arquivoTextoRoteiroEmpresaDivisao = new ArquivoTextoRoteiroEmpresaDivisao();
// QUANTIDADE DE IM�VEIS
arquivoTextoRoteiroEmpresaDivisao.setQuantidadeImovel(qtdImoveis);
// NOME DO ARQUIVO
// [FS0006] - Nome do arquivo texto
String nomeArquivoTexto = "G"
+ Util.adicionarZerosEsquedaNumero(3, faturamentoGrupo.getId()
+ "")
+ Util.adicionarZerosEsquedaNumero(3, imovel.getLocalidade()
.getId() + "")
+ Util.adicionarZerosEsquedaNumero(3, imovel
.getSetorComercial().getCodigo() + "")
+ Util.adicionarZerosEsquedaNumero(4, rota.getCodigo() + "")
+ Util.adicionarZerosEsquedaNumero(6, anoMesFaturamento + "");
arquivoTextoRoteiroEmpresaDivisao.setNomeArquivo(nomeArquivoTexto
+ ".gz");
// INFORMA��ES LEITURISTA
if (rota.getLeiturista() != null) {
arquivoTextoRoteiroEmpresaDivisao.setLeiturista(rota
.getLeiturista());
arquivoTextoRoteiroEmpresaDivisao.setNumeroImei(rota
.getLeiturista().getNumeroImei());
}
// ARQUIVO TEMPOR�RIO GERADO PARA ROTA
ByteArrayOutputStream baosArquivoZip = new ByteArrayOutputStream();
GZIPOutputStream zos = null;
BufferedWriter out = null;
try {
// arquivoTexto =
// new StringBuilder( Util.reencodeString( arquivoTexto.toString(),
// "UTF-8" ) );
// Convertemos o StringBuilder em um vetor de array
// arquivoTextoByte =
// IoUtil.transformarObjetoParaBytes(arquivoTexto);
File compactado = new File(getControladorUtil().getCaminhoDownloadArquivos("faturamento") + nomeArquivoTexto + ".tar.gz");
zos = new GZIPOutputStream(new FileOutputStream(compactado));
File leitura = new File(getControladorUtil().getCaminhoDownloadArquivos("faturamento") + nomeArquivoTexto + ".txt");
out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(leitura.getAbsolutePath())));
out.write(arquivoTexto.toString());
out.flush();
ZipUtil.adicionarArquivo(zos, leitura);
zos.close();
FileInputStream inputStream = new FileInputStream(compactado);
// Escrevemos aos poucos
int INPUT_BUFFER_SIZE = 1024;
byte[] temp = new byte[INPUT_BUFFER_SIZE];
int numBytesRead = 0;
while ((numBytesRead = inputStream.read(temp, 0, INPUT_BUFFER_SIZE)) != -1) {
baosArquivoZip.write(temp, 0, numBytesRead);
}
arquivoTextoRoteiroEmpresaDivisao.setArquivoTexto(baosArquivoZip
.toByteArray());
// Fechamos o inputStream
inputStream.close();
baosArquivoZip.close();
inputStream = null;
compactado.delete();
leitura.delete();
} catch (IOException e) {
sessionContext.setRollbackOnly();
throw new ControladorException("erro.sistema", e);
}
// SITUACAO_TRANSMISSAO_LEITURA
SituacaoTransmissaoLeitura situacaoTransmissaoLeitura = new SituacaoTransmissaoLeitura();
situacaoTransmissaoLeitura.setId(SituacaoTransmissaoLeitura.DISPONIVEL);
arquivoTextoRoteiroEmpresaDivisao
.setSituacaoTransmissaoLeitura(situacaoTransmissaoLeitura);
// ULTIMA ALTERACAO
arquivoTextoRoteiroEmpresaDivisao.setUltimaAlteracao(new Date());
// INSERINDO NA BASE
// this.getControladorUtil().inserir(arquivoTextoRoteiroEmpresaDivisao);
return arquivoTextoRoteiroEmpresaDivisao;
}
/**
* [UC0745] - Gerar Arquivo Texto para Faturamento
*
* @author Raphael Rossiter
* @date 30/08/2011
*
* @param idImovelMacro
* @param anoMesReferencia
* @return Integer
* @throws ErroRepositorioException
*/
public Integer pesquisarMovimentoContaPrefaturadaArquivoTextoFaturamento(
Integer idImovelMacro, Integer anoMesReferencia)
throws ControladorException {
Integer qtdMovimentoContaPrefaturada = null;
try {
qtdMovimentoContaPrefaturada = repositorioFaturamento
.pesquisarMovimentoContaPrefaturadaArquivoTextoFaturamento(
idImovelMacro, anoMesReferencia);
} catch (ErroRepositorioException ex) {
sessionContext.setRollbackOnly();
throw new ControladorException("erro.sistema", ex);
}
return qtdMovimentoContaPrefaturada;
}
}