package gcom.gui.micromedicao;
import gcom.cadastro.imovel.Categoria;
import gcom.cadastro.imovel.FiltroImovel;
import gcom.cadastro.imovel.FiltroImovelSubCategoria;
import gcom.cadastro.imovel.Imovel;
import gcom.cadastro.imovel.ImovelSubcategoria;
import gcom.cadastro.imovel.bean.ImovelMicromedicao;
import gcom.fachada.Fachada;
import gcom.faturamento.FaturamentoGrupo;
import gcom.gui.GcomAction;
import gcom.micromedicao.medicao.FiltroMedicaoHistoricoSql;
import gcom.micromedicao.medicao.MedicaoHistorico;
import gcom.micromedicao.medicao.MedicaoTipo;
import gcom.util.ControladorException;
import gcom.util.Util;
import gcom.util.filtro.ParametroSimples;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
public class ExibirDadosAnaliseMedicaoConsumoAction extends GcomAction {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
// Seta o mapeamento de retorno
ActionForward retorno = actionMapping
.findForward("dadosAnaliseMedicaoConsumo");
LeituraConsumoActionForm leituraConsumoActionForm = new LeituraConsumoActionForm();
Fachada fachada = Fachada.getInstancia();
// Mudar isso quando tiver esquema de seguran�a
HttpSession sessao = httpServletRequest.getSession(false);
sessao.removeAttribute("leituraConsumoActionForm");
String codigoImovel = httpServletRequest
.getParameter("idRegistroAtualizacao");
String idMedicaoTipo = httpServletRequest
.getParameter("medicaoTipo");
FaturamentoGrupo faturamentoGrupo = (FaturamentoGrupo)sessao.getAttribute("faturamentoGrupo");
int quantidadeTotalPaginas = 0;
if (sessao.getAttribute("totalRegistros") != null
&& !sessao.getAttribute("totalRegistros").equals("")) {
int totalRegistros = (Integer) sessao
.getAttribute("totalRegistros");
quantidadeTotalPaginas = ((Double) Math.ceil(Double.parseDouble(""
+ totalRegistros) / 10)).intValue();
}
FiltroMedicaoHistoricoSql filtroMedicaoHistoricoSql = new FiltroMedicaoHistoricoSql();
int numeroPaginasPesquisa = 0;
if (sessao.getAttribute("numeroPaginasPesquisa") != null
&& !sessao.getAttribute("numeroPaginasPesquisa").equals("")) {
numeroPaginasPesquisa = (Integer) sessao
.getAttribute("numeroPaginasPesquisa");
}
if (sessao.getAttribute("filtroMedicaoHistoricoSql") != null) {
filtroMedicaoHistoricoSql = (FiltroMedicaoHistoricoSql) sessao
.getAttribute("filtroMedicaoHistoricoSql");
}
int index = 0;
if (sessao.getAttribute("index") != null) {
index = (Integer) sessao.getAttribute("index");
}
Collection colecaoIdsImovel = (Collection) sessao
.getAttribute("colecaoImovelMedicao");
// verifica se � a primeira vez.Se for ent�o pesquisa o index do id do
// imovel na cole��o para n�o precisar ficar rodando a cole��o toda vez
// que o usu�rio quiser o imovel anterior ou o proximo imovel
if (codigoImovel != null && !codigoImovel.equals("")) {
int i = 0;
Iterator iterator = colecaoIdsImovel.iterator();
while (iterator.hasNext()) {
ImovelMicromedicao imovelMicromedicao = (ImovelMicromedicao) iterator
.next();
if (!imovelMicromedicao.getImovel().getId().equals(
new Integer(codigoImovel))) {
i = i + 1;
} else {
break;
}
}
index = i;
sessao.setAttribute("index", index);
// caso n�o seja a primeira vez ent�o, dependendo do parametro que
// foi passado, recupera o id do im�vel para ser pesquisado
} else {
if (httpServletRequest.getParameter("imovelAnterior") != null) {
index = index - 1;
}
if (httpServletRequest.getParameter("proximoImovel") != null) {
index = index + 1;
}
// caso
if (index == colecaoIdsImovel.size() || index == -1) {
if (index == colecaoIdsImovel.size()) {
numeroPaginasPesquisa = numeroPaginasPesquisa + 1;
index = 0;
colecaoIdsImovel = fachada.filtrarExcecoesLeiturasConsumos(faturamentoGrupo,
filtroMedicaoHistoricoSql, numeroPaginasPesquisa,false, faturamentoGrupo.getAnoMesReferencia()+"",
(String)sessao.getAttribute("valorAguaEsgotoInicial"), (String)sessao.getAttribute("valorAguaEsgotoFinal"));
} else {
if (index == -1 && numeroPaginasPesquisa != 0) {
numeroPaginasPesquisa = numeroPaginasPesquisa - 1;
colecaoIdsImovel = fachada
.filtrarExcecoesLeiturasConsumos(faturamentoGrupo,
filtroMedicaoHistoricoSql,
numeroPaginasPesquisa, false, faturamentoGrupo.getAnoMesReferencia()+"",
(String)sessao.getAttribute("valorAguaEsgotoInicial"), (String)sessao.getAttribute("valorAguaEsgotoFinal"));
index = colecaoIdsImovel.size() - 1;
}
}
sessao.setAttribute("numeroPaginasPesquisa",
numeroPaginasPesquisa);
sessao.setAttribute("colecaoImovelMedicao", colecaoIdsImovel);
if (colecaoIdsImovel != null && !colecaoIdsImovel.isEmpty()) {
// recupera o id do imovel
codigoImovel = ((ImovelMicromedicao) ((List) colecaoIdsImovel)
.get(index)).getImovel().getId().toString();
if(((ImovelMicromedicao) ((List) colecaoIdsImovel)
.get(index)).getMedicaoHistorico().getMedicaoTipo() != null){
idMedicaoTipo = ((ImovelMicromedicao) ((List) colecaoIdsImovel)
.get(index)).getMedicaoHistorico().getMedicaoTipo().getId().toString();
}
sessao.setAttribute("index", index);
}
} else {
// recupera o id do imovel
codigoImovel = ((ImovelMicromedicao) ((List) colecaoIdsImovel)
.get(index)).getImovel().getId().toString();
if(((ImovelMicromedicao) ((List) colecaoIdsImovel)
.get(index)).getMedicaoHistorico().getMedicaoTipo() != null
&& ((ImovelMicromedicao) ((List) colecaoIdsImovel)
.get(index)).getMedicaoHistorico().getMedicaoTipo().getId() != null){
idMedicaoTipo = ((ImovelMicromedicao) ((List) colecaoIdsImovel)
.get(index)).getMedicaoHistorico().getMedicaoTipo().getId().toString();
}
sessao.setAttribute("index", index);
}
}
// -------Parte que trata do c�digo quando o usu�rio tecla enter
// caso seja o id do municipio
int consumoMedioHidrometro = 0;
if (codigoImovel != null && !codigoImovel.equals("")) {
Object[] parmClienteImovel = null;
// ---- Carrega objetos ligados a cliente
//Integer anoMesfaturamentoGrupo = null;
boolean ligacaoAgua = false;
if(idMedicaoTipo != null && idMedicaoTipo.trim().equals("" + MedicaoTipo.LIGACAO_AGUA)){
ligacaoAgua = true;
}
Collection parmsclienteImovel = fachada
.pesquiarImovelExcecoesApresentaDados(new Integer(
codigoImovel), ligacaoAgua);
if (!parmsclienteImovel.isEmpty()) {
parmClienteImovel = (Object[]) parmsclienteImovel.iterator()
.next();
// ---- Seta os atributos
leituraConsumoActionForm.setImovel(codigoImovel);
// id faturamento grupo
if (parmClienteImovel[0] != null) {
leituraConsumoActionForm
.setGrupoFaturamento(((Integer) parmClienteImovel[0])
.toString());
}
// ano mes faturamento grupo
if (parmClienteImovel[1] != null) {
String anoMes = ((Integer) parmClienteImovel[1]).toString();
//anoMesfaturamentoGrupo = (Integer) parmClienteImovel[1];
String ano = anoMes.substring(0, 4);
String mes = anoMes.substring(4, 6);
leituraConsumoActionForm.setMesAnoFaturamentoCorrente(mes
+ "/" + ano);
}
leituraConsumoActionForm
.setIdImovelSubstituirConsumo(codigoImovel);
// nome empresa
if (parmClienteImovel[2] != null) {
leituraConsumoActionForm
.setEmpresaLeitura((String) parmClienteImovel[2]);
}
//Rota e Seq de Rota
FiltroImovel filtroImovel = new FiltroImovel();
filtroImovel.adicionarCaminhoParaCarregamentoEntidade("quadra.rota");
filtroImovel.adicionarParametro(new ParametroSimples(FiltroImovel.ID, new Integer(codigoImovel)));
Collection imoveis = fachada.pesquisar(filtroImovel, Imovel.class.getName());
if(!imoveis.isEmpty()){
Imovel imovel = (Imovel) imoveis.iterator().next();
leituraConsumoActionForm.setRota(imovel.getQuadra().getRota().getCodigo() + "");
leituraConsumoActionForm.setSeqRota(imovel.getNumeroSequencialRota().toString());
}
String inscricaoFormatada = fachada
.pesquisarInscricaoImovel(new Integer(codigoImovel));
leituraConsumoActionForm
.setInscricaoImovel(inscricaoFormatada != null ? inscricaoFormatada
: "");
String enderecoFormatado = null;
try {
enderecoFormatado = fachada
.pesquisarEnderecoFormatado(new Integer(
codigoImovel));
} catch (NumberFormatException e) {
e.printStackTrace();
} catch (ControladorException e) {
e.printStackTrace();
}
leituraConsumoActionForm
.setEnderecoFormatado(enderecoFormatado != null ? enderecoFormatado
: "");
// imovel condom�nio
if (parmClienteImovel[3] != null) {
leituraConsumoActionForm
.setIndicadorImovelCondominio(((Short) parmClienteImovel[3])
.toString().trim().equals("1") ? "Sim" : "N�o");
}
// descri��o liga��o agua situa��o
if (parmClienteImovel[4] != null) {
leituraConsumoActionForm
.setLigacaoEsgotoSituacao(((String) parmClienteImovel[4])
.toString());
}
// descri��o liga��o esgoto situa��o
if (parmClienteImovel[5] != null) {
leituraConsumoActionForm
.setLigacaoAguaSituacao(((String) parmClienteImovel[5])
.toString());
}
// nome cliente
if (parmClienteImovel[6] != null) {
leituraConsumoActionForm
.setClienteNome(((String) parmClienteImovel[6])
.toString());
}
// cpf do cliente for diferente de null
if (parmClienteImovel[7] != null) {
leituraConsumoActionForm
.setClienteCpfCnpj(((String) parmClienteImovel[7])
.toString());
} else {
// sen�o cnpj do cliente for null
if (parmClienteImovel[8] != null) {
leituraConsumoActionForm
.setClienteCpfCnpj(((String) parmClienteImovel[8])
.toString());
}
}
// numero do hidrometro
if (parmClienteImovel[9] != null) {
leituraConsumoActionForm
.setNumeroHidrometro(((String) parmClienteImovel[9])
.toString());
}
// data de instala��o de hidrometro
if (parmClienteImovel[10] != null) {
leituraConsumoActionForm.setInstalacaoHidrometro(Util
.formatarData((Date) parmClienteImovel[10]));
}
// descri��o hidrometro capacidade
if (parmClienteImovel[11] != null) {
leituraConsumoActionForm
.setCapacidadeHidrometro((String) parmClienteImovel[11]);
}
// descri��o hidrometro tipo
if (parmClienteImovel[12] != null) {
leituraConsumoActionForm
.setTipoHidrometro((String) parmClienteImovel[12]);
}
// descri��o hidrometro marca
if (parmClienteImovel[13] != null) {
leituraConsumoActionForm
.setMarcaHidrometro((String) parmClienteImovel[13]);
}
// descri��o hidrometro local instala��o
if (parmClienteImovel[14] != null) {
leituraConsumoActionForm
.setLocalInstalacaoHidrometro((String) parmClienteImovel[14]);
}
// descri��o hidrometro diametro
if (parmClienteImovel[15] != null) {
leituraConsumoActionForm
.setDiametroHidrometro((String) parmClienteImovel[15]);
}
// descri��o hidrometro prote��o
if (parmClienteImovel[16] != null) {
leituraConsumoActionForm
.setProtecaoHidrometro((String) parmClienteImovel[16]);
}
// indicador cavalete do hidrometro instala��o hist�rico
if (parmClienteImovel[17] != null) {
Short icCavalete = (Short) parmClienteImovel[17];
if (icCavalete != null && icCavalete == 1) {
leituraConsumoActionForm.setIndicadorCavalete("Sim");
} else {
leituraConsumoActionForm.setIndicadorCavalete("N�o");
}
}
// ano fabrica��o do hidrometro
if (parmClienteImovel[18] != null) {
leituraConsumoActionForm
.setAnoFabricacao(((Short) parmClienteImovel[18])
.toString());
}
// descri��o imovel perfil
if (parmClienteImovel[19] != null) {
leituraConsumoActionForm
.setPerfilImovel((String) parmClienteImovel[19]);
}
// data liga��o agua
if (parmClienteImovel[20] != null) {
leituraConsumoActionForm.setDataLigacaoAgua(Util
.formatarData((Date) parmClienteImovel[20]));
}
// data corte agua
if (parmClienteImovel[21] != null) {
leituraConsumoActionForm.setDataCorteAgua(Util
.formatarData((Date) parmClienteImovel[21]));
}
// data religa��o agua
if (parmClienteImovel[22] != null) {
leituraConsumoActionForm.setDataReligacaoAgua(Util
.formatarData((Date) parmClienteImovel[22]));
}
// data supress�o agua
if (parmClienteImovel[23] != null) {
leituraConsumoActionForm.setDataSupressaoAgua(Util
.formatarData((Date) parmClienteImovel[23]));
}
// data restabelecimento agua
if (parmClienteImovel[35] != null) {
leituraConsumoActionForm.setDataRestabelecimentoAgua(Util
.formatarData((Date) parmClienteImovel[35]));
}
// descri��o liga��o agua diametro
if (parmClienteImovel[24] != null) {
leituraConsumoActionForm
.setDescricaoLigacaoAguaDiametro((String) parmClienteImovel[24]);
}
// descri��o liga��o agua material
if (parmClienteImovel[25] != null) {
leituraConsumoActionForm
.setDescricaoLigacaoAguaMaterial((String) parmClienteImovel[25]);
}
// numero consumo m�nimo agua
if (parmClienteImovel[26] != null) {
leituraConsumoActionForm
.setNumeroConsumominimoAgua(((Integer) parmClienteImovel[26])
.toString());
}
// Perfil de liga��o
if (parmClienteImovel[36] != null) {
leituraConsumoActionForm
.setDescricaoligacaoAguaPerfil((String) parmClienteImovel[36]);
}
// data liga��o esgoto
if (parmClienteImovel[27] != null) {
leituraConsumoActionForm.setDataLigacaoEsgoto(Util
.formatarData((Date) parmClienteImovel[27]));
}
// descri��o liga��o esgoto diametro
if (parmClienteImovel[28] != null) {
leituraConsumoActionForm
.setDescricaoLigacaoEsgotoDiametro((String) parmClienteImovel[28]);
}
// descri��o liga��o esgoto material
if (parmClienteImovel[29] != null) {
leituraConsumoActionForm
.setDescricaoLigacaoEsgotoMaterial((String) parmClienteImovel[29]);
}
// descri��o liga��o esgoto perfil
if (parmClienteImovel[30] != null) {
leituraConsumoActionForm
.setDescricaoligacaoEsgotoPerfil((String) parmClienteImovel[30]);
}
// numero consumo m�nimo esgoto
if (parmClienteImovel[31] != null) {
leituraConsumoActionForm
.setNumeroConsumominimoEsgoto(((Integer) parmClienteImovel[31])
.toString());
}
// percentual liga��o esgoto
if (parmClienteImovel[32] != null) {
leituraConsumoActionForm
.setPercentualEsgoto((Util
.formatarMoedaReal((BigDecimal) parmClienteImovel[32])));
}
// percentual coleta liga��o esgoto
if (parmClienteImovel[33] != null) {
leituraConsumoActionForm
.setPercentualAguaConsumidaColetada((Util
.formatarMoedaReal((BigDecimal) parmClienteImovel[33])));
}
// descri��o tipo po�o
if (parmClienteImovel[34] != null) {
leituraConsumoActionForm
.setDescricaoPocoTipo((String) parmClienteImovel[34]);
}
// descri��o tipo po�o
if (parmClienteImovel[37] != null) {
leituraConsumoActionForm
.setIdLigacaoEsgoto(((Integer) parmClienteImovel[37])
.toString());
}
//id Liga��o Agua
if (parmClienteImovel[38] != null) {
leituraConsumoActionForm
.setIdLigacaoAgua(((Integer) parmClienteImovel[38])
.toString());
}
//id Liga��o Agua Situa��o
if (parmClienteImovel[39] != null) {
leituraConsumoActionForm
.setIdLigacaoAguaSituacao(((Integer) parmClienteImovel[39])
.toString());
}
//id imovel condominio
if (parmClienteImovel[40] != null) {
leituraConsumoActionForm
.setImovelCondominio(((Integer) parmClienteImovel[40])
.toString());
}
}
// --- OBTER DESCRICAO DO IMOVEL
Imovel imovelDescricaoCategoria = new Imovel();
imovelDescricaoCategoria.setId(new Integer(codigoImovel));
Categoria categoria = (Categoria) fachada
.obterDescricoesCategoriaImovel(imovelDescricaoCategoria);
leituraConsumoActionForm.setCategoriaImovel(categoria
.getDescricaoAbreviada());
// --- OBTER QUANTIDADE DE ECONOMIAS
int qtdEconomias = fachada
.obterQuantidadeEconomias(imovelDescricaoCategoria);
leituraConsumoActionForm.setQuantidadeEconomia("" + qtdEconomias);
Object[] parmMedicaoHistorico = null;
// ---- Carrega objetos ligados a cliente
Collection parmsMedicaoHistorico = fachada
.pesquiarMedicaoConsumoHistoricoExcecoesApresentaDados(faturamentoGrupo,new Integer(
codigoImovel), ligacaoAgua);
if (!parmsclienteImovel.isEmpty()) {
parmMedicaoHistorico = (Object[]) parmsMedicaoHistorico
.iterator().next();
// ---- Seta os atributos
// descri��o tipo medicao
if (parmMedicaoHistorico[0] != null) {
leituraConsumoActionForm
.setTipoMedicao((String) parmMedicaoHistorico[0]);
}
MedicaoTipo medicaoTipo = new MedicaoTipo();
// id tipo medicao
if (parmMedicaoHistorico[1] != null) {
leituraConsumoActionForm
.setIdTipoMedicao(((Integer) parmMedicaoHistorico[1])
.toString());
medicaoTipo.setId((Integer) parmMedicaoHistorico[1]);
}
// data leitura anterior
Date dataLeituraAnterior = null;
if (parmMedicaoHistorico[2] != null) {
dataLeituraAnterior = (Date) parmMedicaoHistorico[2];
}
// data leitura atual faturada
Date dtLeituraAtualFaturada = null;
if (parmMedicaoHistorico[3] != null) {
dtLeituraAtualFaturada = (Date) parmMedicaoHistorico[3];
}
// --- fim variavel
int diasConsumo = 0;
if (dataLeituraAnterior != null
&& dtLeituraAtualFaturada != null) {
diasConsumo = gcom.util.Util
.obterQuantidadeDiasEntreDuasDatas(
dataLeituraAnterior, dtLeituraAtualFaturada);
}
leituraConsumoActionForm.setDiasConsumo("" + diasConsumo);
if (dataLeituraAnterior != null) {
leituraConsumoActionForm.setDtLeituraAnterior(Util
.formatarData(dataLeituraAnterior));
}
// leitura anterior faturamento
if (parmMedicaoHistorico[5] != null) {
leituraConsumoActionForm
.setLeituraAnterior(((Integer) parmMedicaoHistorico[5])
.toString());
}
// data leitura atual informada
if (parmMedicaoHistorico[6] != null) {
leituraConsumoActionForm.setDtLeituraInformada((Util
.formatarData((Date) parmMedicaoHistorico[6])));
}
// leitura atual informada
if (parmMedicaoHistorico[7] != null) {
leituraConsumoActionForm
.setLeituraAtualInformada(((Integer) parmMedicaoHistorico[7])
.toString());
}
// data leitura faturada
if (dtLeituraAtualFaturada != null) {
leituraConsumoActionForm.setDtLeituraFaturada(Util
.formatarData(dtLeituraAtualFaturada));
}
// leitura atual faturamento
if (parmMedicaoHistorico[4] != null) {
leituraConsumoActionForm
.setLeituraAnterior(((Integer) parmMedicaoHistorico[4])
.toString());
}
// descri��o leitura situa��o atual
if (parmMedicaoHistorico[8] != null) {
leituraConsumoActionForm
.setSituacaoLeituraAtual(((String) parmMedicaoHistorico[8])
.toString());
}
// data leitura atual faturamento
if (parmMedicaoHistorico[9] != null) {
leituraConsumoActionForm.setDtLeituraFaturada((Util
.formatarData((Date) parmMedicaoHistorico[9])));
}
// leitura atual faturamento
if (parmMedicaoHistorico[10] != null) {
leituraConsumoActionForm
.setLeituraAtualFaturada(((Integer) parmMedicaoHistorico[10])
.toString());
}
// id funcion�rio
if (parmMedicaoHistorico[11] != null) {
leituraConsumoActionForm
.setCodigoFuncionario(((Integer) parmMedicaoHistorico[11])
.toString());
}
// descri��o leitura anormalidade informada
if (parmMedicaoHistorico[12] != null) {
leituraConsumoActionForm
.setAnormalidadeLeituraInformada((String) parmMedicaoHistorico[12]);
}
// descri��o leitura anormalidade faturamento
if (parmMedicaoHistorico[13] != null) {
leituraConsumoActionForm
.setAnormalidadeLeituraFaturada((String) parmMedicaoHistorico[13]);
}
// numero consumo mes
if (parmMedicaoHistorico[14] != null) {
leituraConsumoActionForm
.setConsumoMedido(((Integer) parmMedicaoHistorico[14])
.toString());
}
int consumoFaturado = 0;
// numero consumo fatura mes
if (parmMedicaoHistorico[15] != null) {
consumoFaturado = (Integer) parmMedicaoHistorico[15];
leituraConsumoActionForm
.setConsumoFaturado(((Integer) parmMedicaoHistorico[15])
.toString());
}
// numero consumo rateio
if (parmMedicaoHistorico[16] != null) {
leituraConsumoActionForm
.setConsumoRateio(((Integer) parmMedicaoHistorico[16])
.toString());
}
// descri��o abreviada consumo anormalidade
if (parmMedicaoHistorico[17] != null) {
leituraConsumoActionForm
.setAnormalidadeConsumo((String) parmMedicaoHistorico[17]);
}
// descri��o abreviada consumo tipo
if (parmMedicaoHistorico[18] != null) {
leituraConsumoActionForm
.setConsumoTipo((String) parmMedicaoHistorico[18]);
}
// consumo m�dio do hidrometro
if (parmMedicaoHistorico[19] != null) {
leituraConsumoActionForm
.setConsumoMedioHidrometro(((Integer) parmMedicaoHistorico[19])
.toString());
consumoMedioHidrometro = (Integer) parmMedicaoHistorico[19];
}
// consumo medio do imovel
if (parmMedicaoHistorico[20] != null) {
leituraConsumoActionForm
.setConsumoMedioImovel(((Integer) parmMedicaoHistorico[20])
.toString());
}
// consumo mes esgoto
if (parmMedicaoHistorico[21] != null) {
leituraConsumoActionForm
.setConsumoMesEsgoto(((Integer) parmMedicaoHistorico[21])
.toString());
}
if (consumoFaturado != 0 && consumoMedioHidrometro != 0) {
int operacaoSubMult = (consumoFaturado - consumoMedioHidrometro) * 100;
BigDecimal percentual = new BigDecimal(operacaoSubMult)
.divide(new BigDecimal(consumoMedioHidrometro), 2,
BigDecimal.ROUND_HALF_UP);
String valorPercentual = "" + percentual;
leituraConsumoActionForm.setPercentualVariacao(""
+ valorPercentual.replace(".", ",") + "%");
}
}
Collection<MedicaoHistorico> medicoesHistorico = new ArrayList();
Collection<ImovelMicromedicao> imoveisMicromedicao = new ArrayList();
if(leituraConsumoActionForm
.getIdTipoMedicao() != null && leituraConsumoActionForm
.getIdTipoMedicao().trim().equals(MedicaoTipo.LIGACAO_AGUA.toString())){
httpServletRequest.setAttribute("habilitaConsumoEsgoto", true);
}
//========= Obter Consumo m�dio do Im�vel ===============================
Imovel imovel = new Imovel();
imovel.setId(new Integer(codigoImovel));
if(leituraConsumoActionForm.getIdLigacaoAgua() != null){
ligacaoAgua = true;
}
if(idMedicaoTipo != null && idMedicaoTipo.equals(MedicaoTipo.POCO.toString())){
ligacaoAgua = false;
}
medicoesHistorico = fachada.carregarDadosMedicao(new Integer(
codigoImovel), ligacaoAgua);
Collection imoveisMicromedicaoCarregamento = null;
if (medicoesHistorico != null && !medicoesHistorico.isEmpty()) {
Iterator iteratorMedicaoHistorico = medicoesHistorico
.iterator();
while (iteratorMedicaoHistorico.hasNext()) {
MedicaoHistorico medicaoHistoricoConsumo = (MedicaoHistorico) iteratorMedicaoHistorico
.next();
if (medicaoHistoricoConsumo.getAnoMesReferencia() != 0) {
imoveisMicromedicaoCarregamento = fachada
.carregarDadosConsumo(
new Integer(codigoImovel),
medicaoHistoricoConsumo
.getAnoMesReferencia(), ligacaoAgua);
if (imoveisMicromedicaoCarregamento != null) {
imoveisMicromedicao
.addAll(imoveisMicromedicaoCarregamento);
}
}
}
// Organizar a cole��o de Conta
if (medicoesHistorico != null
&& !medicoesHistorico.isEmpty()) {
Collections.sort((List) medicoesHistorico,
new Comparator() {
public int compare(Object a, Object b) {
int retorno = 0;
Integer anoMesReferencia1 = ((MedicaoHistorico) a).getAnoMesReferencia();
Integer anoMesReferencia2 = ((MedicaoHistorico) b).getAnoMesReferencia();
if(anoMesReferencia1.compareTo(anoMesReferencia2) == 1){
retorno = -1;
}else if(anoMesReferencia1.compareTo(anoMesReferencia2) == -1){
retorno = 1;
}
return retorno;
}
});
}
// coloca a colecao de medicao historico no request
sessao.setAttribute("medicoesHistoricos", medicoesHistorico);
// coloca colecao de consumo historico no request
// Organizar a cole��o de Conta
if (imoveisMicromedicao != null
&& !imoveisMicromedicao.isEmpty()) {
Collections.sort((List) imoveisMicromedicao,
new Comparator() {
public int compare(Object a, Object b) {
int retorno = 0;
Integer anoMesReferencia1 = ((ImovelMicromedicao) a).getConsumoHistorico()
.getReferenciaFaturamento();
Integer anoMesReferencia2 = ((ImovelMicromedicao) b).getConsumoHistorico()
.getReferenciaFaturamento();
if(anoMesReferencia1.compareTo(anoMesReferencia2) == 1){
retorno = -1;
}else if(anoMesReferencia1.compareTo(anoMesReferencia2) == -1){
retorno = 1;
}
return retorno;
}
});
}
sessao.setAttribute("imoveisMicromedicao", imoveisMicromedicao);
}
Collection colecaoImovelSubcategoria = null;
FiltroImovelSubCategoria filtroImovelSubCategoria = new FiltroImovelSubCategoria();
filtroImovelSubCategoria
.adicionarCaminhoParaCarregamentoEntidade("comp_id.subcategoria.categoria");
filtroImovelSubCategoria
.adicionarCaminhoParaCarregamentoEntidade("comp_id.subcategoria");
filtroImovelSubCategoria.adicionarParametro(new ParametroSimples(
FiltroImovelSubCategoria.IMOVEL_ID, codigoImovel));
colecaoImovelSubcategoria = fachada.pesquisar(
filtroImovelSubCategoria, ImovelSubcategoria.class
.getName());
sessao.setAttribute("colecaoImovelSubcategoria",
colecaoImovelSubcategoria);
}
// caso venha do substituir ou do alterar
httpServletRequest.setAttribute("sucesso", httpServletRequest
.getAttribute("sucesso"));
sessao.setAttribute("leituraConsumoActionForm",
leituraConsumoActionForm);
if (index == 0 && numeroPaginasPesquisa == 0) {
httpServletRequest.setAttribute("desabilitaBotaoAnterior", 1);
}
if (index >= (colecaoIdsImovel.size() - 1)
&& numeroPaginasPesquisa == (quantidadeTotalPaginas - 1)) {
httpServletRequest.setAttribute("desabilitaBotaoProximo", 1);
}
return retorno;
}
}