package gcom.gui.micromedicao;
import gcom.atendimentopublico.ligacaoagua.LigacaoAguaSituacao;
import gcom.cadastro.imovel.FiltroImovel;
import gcom.cadastro.imovel.Imovel;
import gcom.cadastro.imovel.ImovelPerfil;
import gcom.cadastro.imovel.bean.ImovelMicromedicao;
import gcom.cadastro.localidade.FiltroLocalidade;
import gcom.cadastro.localidade.Localidade;
import gcom.fachada.Fachada;
import gcom.faturamento.FaturamentoGrupo;
import gcom.faturamento.FiltroMotivoInterferenciaTipo;
import gcom.faturamento.FiltroMovimentoContaPrefaturada;
import gcom.faturamento.MotivoInterferenciaTipo;
import gcom.faturamento.MovimentoContaPrefaturada;
import gcom.faturamento.conta.Conta;
import gcom.faturamento.debito.DebitoCreditoSituacao;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.micromedicao.FiltroReleituraMobile;
import gcom.micromedicao.ReleituraMobile;
import gcom.micromedicao.SituacaoTransmissaoLeitura;
import gcom.micromedicao.bean.CalculoConsumoHelper;
import gcom.micromedicao.leitura.FiltroLeituraAnormalidade;
import gcom.micromedicao.leitura.LeituraAnormalidade;
import gcom.micromedicao.leitura.LeituraTipo;
import gcom.micromedicao.medicao.FiltroMedicaoHistoricoSql;
import gcom.micromedicao.medicao.MedicaoHistorico;
import gcom.micromedicao.medicao.MedicaoTipo;
import gcom.seguranca.acesso.usuario.Usuario;
import gcom.seguranca.acesso.usuario.UsuarioAbrangencia;
import gcom.util.ConstantesSistema;
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.HashMap;
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 ExibirDadosAnaliseExcecoesLeituraResumidoAction extends GcomAction {
@SuppressWarnings({ "rawtypes", "unchecked" })
public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
ActionForward retorno = actionMapping.findForward("dadosAnaliseMedicaoConsumoResumo");
LeituraConsumoActionForm leituraConsumoActionForm = (LeituraConsumoActionForm) actionForm;
Fachada fachada = Fachada.getInstancia();
HttpSession sessao = httpServletRequest.getSession(false);
Usuario usuarioLogado = this.getUsuarioLogado(httpServletRequest);
FaturamentoGrupo faturamentoGrupo = (FaturamentoGrupo)sessao.getAttribute("faturamentoGrupo");
String mesAnoPesquisa = (String) sessao.getAttribute("mesAnoPesquisa");
if(possuiAnormalidade(httpServletRequest, leituraConsumoActionForm)){
String codigoAnormalidadeLeituraDigitadoEnter = leituraConsumoActionForm.getIdAnormalidade();
FiltroLeituraAnormalidade filtroLeituraAnormalidade = new FiltroLeituraAnormalidade();
filtroLeituraAnormalidade.adicionarParametro(new ParametroSimples(FiltroLeituraAnormalidade.ID, codigoAnormalidadeLeituraDigitadoEnter));
Collection anormalidadeLeituraEncontrada = fachada.pesquisar(filtroLeituraAnormalidade, LeituraAnormalidade.class.getName());
if (anormalidadeLeituraEncontrada != null && !anormalidadeLeituraEncontrada.isEmpty()) {
leituraConsumoActionForm.setIdAnormalidade("" + ((LeituraAnormalidade) ((List) anormalidadeLeituraEncontrada).get(0)).getId());
leituraConsumoActionForm.setDescricaoAnormalidade(((LeituraAnormalidade) ((List) anormalidadeLeituraEncontrada).get(0)).getDescricao());
leituraConsumoActionForm.setIndicadorLeitura("" + ((LeituraAnormalidade) ((List) anormalidadeLeituraEncontrada).get(0)).getIndicadorLeitura());
} else {
leituraConsumoActionForm.setIdAnormalidade("");
httpServletRequest.setAttribute("idAnormalidadeNaoEncontrada", "true");
leituraConsumoActionForm.setDescricaoAnormalidade("Anormalidade de leitura inexistente");
httpServletRequest.setAttribute("nomeCampo","idAnormalidade");
leituraConsumoActionForm.setIndicadorLeitura("");
}
} else {
leituraConsumoActionForm = limparLeituraConsumo(leituraConsumoActionForm);
String codigoImovel = httpServletRequest.getParameter("idRegistroAtualizacao");
if(httpServletRequest.getParameter("consultaImovelLista") != null){
Collection colecaoTeste = (Collection)sessao.getAttribute("colecaoIdsImovelTotal");
Iterator iteratorTeste = colecaoTeste.iterator();
int contem = 0;
while(iteratorTeste.hasNext()){
ImovelMicromedicao imovelMicromedicaoTeste = (ImovelMicromedicao)iteratorTeste.next();
Integer codigoImovelTeste = imovelMicromedicaoTeste.getImovel().getId();
if(codigoImovel.equals(codigoImovelTeste.toString())){
contem = 1;
break;
}
}
if(contem != 1){
throw new ActionServletException("atencao.pesquisa.nenhumresultado");
}
}
String idMedicaoTipo = httpServletRequest.getParameter("medicaoTipo");
FiltroMedicaoHistoricoSql filtroMedicaoHistoricoSql = new FiltroMedicaoHistoricoSql();
if (sessao.getAttribute("filtroMedicaoHistoricoSql") != null) {
filtroMedicaoHistoricoSql = (FiltroMedicaoHistoricoSql) sessao.getAttribute("filtroMedicaoHistoricoSql");
}
Integer totalRegistros = obterTotalRegistros(fachada, sessao, faturamentoGrupo, filtroMedicaoHistoricoSql);
int numeroPaginasPesquisa = 0;
if (sessao.getAttribute("numeroPaginasPesquisa") != null && !sessao.getAttribute("numeroPaginasPesquisa").equals("")) {
numeroPaginasPesquisa = (Integer) sessao.getAttribute("numeroPaginasPesquisa");
}
int index = 0;
if (sessao.getAttribute("index") != null) {
index = (Integer) sessao.getAttribute("index");
}
Collection colecaoIdsImovel = obterColecaoIdsImovel(fachada, sessao, faturamentoGrupo, filtroMedicaoHistoricoSql, totalRegistros);
Imovel imovelAtual = ((ImovelMicromedicao) ((List) colecaoIdsImovel).get(index)).getImovel();
String observacao = (String)httpServletRequest.getParameter("observacao");
adicionarObjetosSelecionadosColecoes(httpServletRequest, sessao, imovelAtual, observacao);
sessao.setAttribute("analisado", "");
sessao.setAttribute("gerarAviso", "");
sessao.setAttribute("gerarOS", "");
sessao.setAttribute("gerarRelatorio", "");
sessao.setAttribute("observacao", "");
// Atualiza os dados de medi��o hist�rico colocando como analisado
if (sessao.getAttribute("habilitaCampos") == null) {
String analisado = httpServletRequest.getParameter("analisado");
if (analisado != null && !analisado.trim().equals("")) {
MedicaoHistorico medicaoHistorico = ((ImovelMicromedicao) ((List) colecaoIdsImovel).get(index)).getMedicaoHistorico();
if (medicaoHistorico.getIndicadorAnalisado().equals(MedicaoHistorico.INDICADOR_ANALISADO_NAO)) {
fachada.atualizarIndicadorAnalisadoMedicaoHistorico(medicaoHistorico.getId(), usuarioLogado);
medicaoHistorico.setUsuarioAlteracao(usuarioLogado);
medicaoHistorico.setIndicadorAnalisado(MedicaoHistorico.INDICADOR_ANALISADO_SIM);
}
}
}
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);
} else {
if (httpServletRequest.getParameter("imovelAnterior") != null) {
index = index - 1;
limparFormPaginacao(leituraConsumoActionForm);
} else if (httpServletRequest.getParameter("proximoImovel") != null) {
index = index + 1;
limparFormPaginacao(leituraConsumoActionForm);
}
if (index == colecaoIdsImovel.size() || index == -1) {
if (colecaoIdsImovel != null && !colecaoIdsImovel.isEmpty()) {
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 {
codigoImovel = ((ImovelMicromedicao) ((List) colecaoIdsImovel).get(index)).getImovel().getId().toString();
if(((ImovelMicromedicao) ((List) colecaoIdsImovel).get(index)).getMedicaoHistorico().getMedicaoTipo() != null){
if(((ImovelMicromedicao) ((List) colecaoIdsImovel).get(index)).getMedicaoHistorico().getMedicaoTipo().getId() != null){
idMedicaoTipo = ((ImovelMicromedicao) ((List) colecaoIdsImovel).get(index)).getMedicaoHistorico().getMedicaoTipo().getId().toString();
}
}
sessao.setAttribute("index", index);
}
}
imovelAtual = ((ImovelMicromedicao) ((List) colecaoIdsImovel).get(index)).getImovel();
ImovelPerfil imovelPerfil = fachada.recuperaPerfilImovel(new Integer(codigoImovel));
MovimentoContaPrefaturada movimentoContaPrefaturada = obterMovimentoContaPreFaturada(fachada, mesAnoPesquisa, codigoImovel, idMedicaoTipo);
Imovel imovelFiltro = null;
if (codigoImovel != null && !codigoImovel.equals("") ) {
imovelFiltro = obterImovel(fachada, codigoImovel);
if(imovelFiltro != null){
if (imovelFiltro.getRotaAlternativa() != null){
leituraConsumoActionForm.setRota(imovelFiltro.getRotaAlternativa().getCodigo() + "");
}
else{
leituraConsumoActionForm.setRota(imovelFiltro.getQuadra().getRota().getCodigo() + "");
}
if (imovelFiltro.getNumeroSequencialRota() != null) {
leituraConsumoActionForm.setSeqRota(imovelFiltro.getNumeroSequencialRota().toString());
}
}
}
boolean existeContaPreFaturada = false;
Integer idDebitoCreditoSituacaoAtualDaConta = fachada.pesquisarDebitoCreditoSituacaoAtualDaConta(new Integer(codigoImovel), Util.formatarMesAnoComBarraParaAnoMes(mesAnoPesquisa));
if(idDebitoCreditoSituacaoAtualDaConta != null){
existeContaPreFaturada = true;
}
boolean desabilitaAtualizarImovel = true;
if(isTipoLeituraImpressaoSimultanea(imovelAtual, imovelPerfil)){
//Caso o tipo de leitura da rota do im�vel seja LEIT.E ENTR.SIMULTAN (tabela ROTA), ent�o desabilita os campos de atualiza��o da tela.
desabilitaAtualizarImovel = true;
}
if(existeContaPreFaturada){
//Caso a conta esteja como pr�-faturada (DCST_IDATUAL=9) habilitar os campos para altera��o da conta
desabilitaAtualizarImovel = false;
}
if(movimentoContaPrefaturada != null){
//Caso o im�vel n�o esteja em MOVIMENTO_CONTA_PREFATURADA para o ano/m�s de referencia ou MCPF_ICEMISSAOCONTA esteja como 2, habilitar campos para altera��o
if(movimentoContaPrefaturada.getIndicadorEmissaoConta().compareTo(ConstantesSistema.NAO) == 0){
desabilitaAtualizarImovel = false;
}
}else{
desabilitaAtualizarImovel = false;
}
if(isImovelCondominio(imovelFiltro)){
//Caso o im�vel seja condom�nio, n�o permitir alterar
desabilitaAtualizarImovel = true;
}
//Caso o imovel possua conta com situa��o diferente de pre-faturada para referencia informada, n�o sera possivel atualizar a medi��o
boolean imovelPossuiContaDiferentePreFaturada = fachada.pesquisarContaDoImovelDiferentePreFaturada(new Integer(codigoImovel), Util.formatarMesAnoComBarraParaAnoMes(mesAnoPesquisa));
if ( imovelPossuiContaDiferentePreFaturada ) {
desabilitaAtualizarImovel = true;
}
httpServletRequest.setAttribute("desabilitaAtualizarImovel",desabilitaAtualizarImovel);
verificarAbrangenciaUsuario(httpServletRequest, usuarioLogado, imovelAtual);
Collection colecaoFaturamentoSituacaoEspecial = fachada.pesquisarSituacaoEspecialFaturamentoVigente(imovelAtual.getId(), Util.formatarMesAnoComBarraParaAnoMes(mesAnoPesquisa));
httpServletRequest.setAttribute("colecaoFaturamentoSituacaoEspecial", colecaoFaturamentoSituacaoEspecial);
Collection colecaoImoveisGerarAviso = (Collection) sessao.getAttribute("colecaoImoveisGerarAviso");
if (colecaoImoveisGerarAviso != null && colecaoImoveisGerarAviso.contains(imovelAtual.getId())) {
sessao.setAttribute("gerarAviso", "1");
}
Collection colecaoImoveisGerarOS = (Collection) sessao.getAttribute("colecaoImoveisGerarOS");
HashMap<Integer, String> colecaoObservacaoOS = (HashMap<Integer, String>) sessao.getAttribute("colecaoObservacaoOS");
if (colecaoImoveisGerarOS != null && colecaoImoveisGerarOS.contains(imovelAtual)) {
sessao.setAttribute("gerarOS", "1");
String observacao2 = colecaoObservacaoOS.get(imovelAtual.getId());
sessao.setAttribute("observacao", observacao2);
leituraConsumoActionForm.setObservacao(observacao2);
}
Collection colecaoImoveisGerarRelatorio = (Collection) sessao.getAttribute("colecaoImoveisGerarRelatorio");
if (colecaoImoveisGerarRelatorio != null && colecaoImoveisGerarRelatorio.contains(imovelAtual)) {
sessao.setAttribute("gerarRelatorio", "1");
}
sessao.setAttribute("indiceImovel", ""+(index+1));
if (codigoImovel != null && !codigoImovel.equals("") ) {
boolean ligacaoAgua = false;
if(idMedicaoTipo != null && idMedicaoTipo.trim().equals("" + MedicaoTipo.LIGACAO_AGUA)){
ligacaoAgua = true;
}
sessao.setAttribute("ligacaoAgua", ligacaoAgua);
sessao.setAttribute("tipoMedicao", idMedicaoTipo);
// Cria as istancias dos objetos q receberam os dados q iram compor a tela
ImovelMicromedicao imovelMicromedicaoDadosResumo = new ImovelMicromedicao();
ImovelMicromedicao imovelMicromedicaoMedicaoResumo = new ImovelMicromedicao();
imovelMicromedicaoDadosResumo = fachada.pesquiarImovelExcecoesApresentaDadosResumido(new Integer(codigoImovel), ligacaoAgua);
imovelMicromedicaoMedicaoResumo = fachada.carregarDadosMedicaoResumido(new Integer(codigoImovel), ligacaoAgua, Util.formatarMesAnoParaAnoMesSemBarra((String)sessao.getAttribute("mesAnoPesquisa")));
String mesAnoDigitado = Util.formatarMesAnoParaAnoMesSemBarra((String)sessao.getAttribute("mesAnoPesquisa"));
if(imovelMicromedicaoDadosResumo.getImovel() != null &&
imovelMicromedicaoDadosResumo.getImovel().getHidrometroInstalacaoHistorico() != null){
leituraConsumoActionForm.setInstalacaoHidrometro(Util.formatarData(imovelMicromedicaoDadosResumo.getImovel().getHidrometroInstalacaoHistorico().getDataInstalacao()));
}else{
leituraConsumoActionForm.setInstalacaoHidrometro("");
}
imovelMicromedicaoDadosResumo.getImovel().setId(new Integer(codigoImovel));
sessao.setAttribute("imovelMicromedicaoDadosResumo",imovelMicromedicaoDadosResumo);
sessao.setAttribute("idImovel", codigoImovel);
sessao.setAttribute("imovelMicromedicaoCarregaMedicaoResumo", imovelMicromedicaoMedicaoResumo);
if(imovelPossuiPoco(imovelMicromedicaoDadosResumo)){
sessao.setAttribute("poco",true);
}else{
sessao.removeAttribute("poco");
}
Imovel imovel = new Imovel(new Integer(codigoImovel));
sessao.setAttribute("categoria", fachada.obterDescricoesCategoriaImovel(imovel));
sessao.setAttribute("inscricaoFormatada", fachada.pesquisarInscricaoImovel(new Integer(codigoImovel)));
Collection colecaoMedicaoHistorico = fachada.carregarDadosMedicaoResumo(new Integer(codigoImovel), ligacaoAgua);
Collection imoveisMicromedicaoCarregamento = null;
Collection colecaoImovelMicromedicao = new ArrayList();
MedicaoHistorico medicaoHistoricoAnoMesAtual = new MedicaoHistorico();
ImovelMicromedicao imovelMicromedicaoConsumo = new ImovelMicromedicao();
MedicaoHistorico medicaoHistorico = ((ImovelMicromedicao) ((List) colecaoIdsImovel).get(index)).getMedicaoHistorico();
if (medicaoHistorico.getIndicadorAnalisado() != null){
leituraConsumoActionForm.setAnalisado(medicaoHistorico.getIndicadorAnalisado().toString());
sessao.setAttribute("analisado", medicaoHistorico.getIndicadorAnalisado().toString());
}
if (medicaoHistorico.getUsuarioAlteracao() != null) {
leituraConsumoActionForm.setLoginUsuario(medicaoHistorico.getUsuarioAlteracao().getLogin());
leituraConsumoActionForm.setNomeUsuario(medicaoHistorico.getUsuarioAlteracao().getNomeUsuario());
}else{
leituraConsumoActionForm.setLoginUsuario("");
leituraConsumoActionForm.setNomeUsuario("");
}
if (medicaoHistorico.getLeituraCampo() != null) {
leituraConsumoActionForm.setLeituraCampo(medicaoHistorico.getLeituraCampo().toString());
}else{
leituraConsumoActionForm.setLeituraCampo("");
}
if (medicaoHistorico.getLeiturista().getCliente() != null) {
leituraConsumoActionForm.setNomeLeiturista(medicaoHistorico.getLeiturista().getCliente().getNome());
} else if (medicaoHistorico.getLeiturista().getFuncionario() != null) {
leituraConsumoActionForm.setNomeLeiturista(medicaoHistorico.getLeiturista().getFuncionario().getNome());
}
if (imovelMicromedicaoMedicaoResumo.getMedicaoHistorico().getMotivoInterferenciaTipo() != null){
leituraConsumoActionForm.setMotivoInterferenciaTipo(
imovelMicromedicaoMedicaoResumo.getMedicaoHistorico().getMotivoInterferenciaTipo().getId());
}
// Carrega o combo de calculo de consumo
Collection<CalculoConsumoHelper> colecaoCalculoConsumo = carregarComboCalculoConsumo(medicaoHistorico, imovel, Util.formatarMesAnoComBarraParaAnoMes(mesAnoPesquisa));
sessao.setAttribute("colecaoCalculoConsumo", colecaoCalculoConsumo);
leituraConsumoActionForm.setCalculoConsumo("" + ConstantesSistema.NUMERO_NAO_INFORMADO);
if (colecaoMedicaoHistorico != null && !colecaoMedicaoHistorico.isEmpty()) {
Iterator iteratorMedicaoHistorico = colecaoMedicaoHistorico
.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) {
ImovelMicromedicao imovelMicromedicao = (ImovelMicromedicao)imoveisMicromedicaoCarregamento.iterator().next();
if(imovelMicromedicao.getMedicaoHistorico() != null && imovelMicromedicao.getMedicaoHistorico().getNumeroConsumoMes() != null){
medicaoHistoricoConsumo.setNumeroConsumoMes(imovelMicromedicao.getMedicaoHistorico().getNumeroConsumoMes());
}
if(Util.formatarMesAnoComBarraParaAnoMes(mesAnoPesquisa) == medicaoHistoricoConsumo.getAnoMesReferencia()){
if (imovelMicromedicao.getConsumoHistorico().getNumeroConsumoFaturadoMes() != null) {
leituraConsumoActionForm.setConsumo(imovelMicromedicao.getConsumoHistorico().getNumeroConsumoFaturadoMes().toString());
} else {
leituraConsumoActionForm.setConsumo("");
}
if (imovelMicromedicao.getConsumoHistorico().getConsumoMedio() != null) {
leituraConsumoActionForm.setConsumoMedioImovel(imovelMicromedicao.getConsumoHistorico().getConsumoMedio().toString());
} else {
leituraConsumoActionForm.setConsumoMedioImovel("");
}
if(imovelMicromedicao.getConsumoHistorico().getConsumoRateio() != null){
leituraConsumoActionForm.setRateio(imovelMicromedicao.getConsumoHistorico().getConsumoRateio().toString());
}
}
imovelMicromedicao.setMedicaoHistorico(medicaoHistoricoConsumo);
colecaoImovelMicromedicao.add(imovelMicromedicao);
}
if(mesAnoDigitado.equals(medicaoHistoricoConsumo.getAnoMesReferencia()+"")){
medicaoHistoricoAnoMesAtual = medicaoHistoricoConsumo;
sessao.setAttribute("medicaoHistoricoAnoMesAtual", medicaoHistoricoAnoMesAtual);
if (imoveisMicromedicaoCarregamento != null){
imovelMicromedicaoConsumo = (ImovelMicromedicao)imoveisMicromedicaoCarregamento.iterator().next();
if(imovelMicromedicaoConsumo.getQtdDias() != null){
leituraConsumoActionForm.setDiasConsumo(imovelMicromedicaoConsumo.getQtdDias());
}
if(imovelMicromedicaoMedicaoResumo.getMedicaoHistorico().getDataLeituraAnteriorFaturamento() != null){
leituraConsumoActionForm.setDataLeituraAnteriorFaturamento(Util.formatarData(imovelMicromedicaoMedicaoResumo.getMedicaoHistorico().getDataLeituraAnteriorFaturamento()));
}else{
leituraConsumoActionForm.setDataLeituraAnteriorFaturamento("");
}
if(imovelMicromedicaoMedicaoResumo.getMedicaoHistorico().getDataLeituraAtualInformada() != null){
leituraConsumoActionForm.setDataLeituraAtualInformada(Util.formatarData(imovelMicromedicaoMedicaoResumo.getMedicaoHistorico().getDataLeituraAtualInformada()));
}else{
leituraConsumoActionForm.setDataLeituraAtualInformada("");
}
if(imovelMicromedicaoMedicaoResumo.getMedicaoHistorico().getConsumoMedioHidrometro() != null){
leituraConsumoActionForm.setConsumoMedioHidrometro(imovelMicromedicaoMedicaoResumo.getMedicaoHistorico().getConsumoMedioHidrometro()+"");
}else{
leituraConsumoActionForm.setConsumoMedioHidrometro("");
}
if(medicaoHistoricoAnoMesAtual.getDataLeituraAtualFaturamento() != null){
leituraConsumoActionForm.setDataLeituraAtualFaturamento(Util.formatarData(medicaoHistoricoAnoMesAtual.getDataLeituraAtualFaturamento()));
}else{
leituraConsumoActionForm.setDataLeituraAtualFaturamento("");
}
leituraConsumoActionForm
.setLeituraAnteriorFaturamento(imovelMicromedicaoMedicaoResumo
.getMedicaoHistorico()
.getLeituraAnteriorFaturamento()
+ "");
if(medicaoHistoricoAnoMesAtual.getLeituraAtualInformada() != null){
leituraConsumoActionForm.setLeituraAtualInformada(medicaoHistoricoAnoMesAtual.getLeituraAtualInformada() + "");
}else{
leituraConsumoActionForm.setLeituraAtualInformada("");
}
leituraConsumoActionForm.setLeituraAtualFaturada(medicaoHistoricoAnoMesAtual.getLeituraAtualFaturamento() + "");
if(medicaoHistoricoAnoMesAtual.getLeituraSituacaoAtual() != null){
leituraConsumoActionForm.setLeituraSituacaoAtual(medicaoHistoricoAnoMesAtual.getLeituraSituacaoAtual().getDescricao());
}
if(medicaoHistoricoAnoMesAtual.getFuncionario() != null){
leituraConsumoActionForm.setIdFuncionario(medicaoHistoricoAnoMesAtual.getFuncionario().getId().toString());
}
if(imovelMicromedicaoMedicaoResumo.getMedicaoHistorico().getNumeroConsumoInformado() != null){
leituraConsumoActionForm.setConsumoInformado(imovelMicromedicaoMedicaoResumo.getMedicaoHistorico().getNumeroConsumoInformado().toString());
} else {
leituraConsumoActionForm.setConsumoInformado("");
}
if (medicaoHistoricoConsumo.getNumeroConsumoMes() != null) {
leituraConsumoActionForm.setMedido(medicaoHistoricoConsumo.getNumeroConsumoMes()+"");
} else {
leituraConsumoActionForm.setMedido("");
}
if(imovelMicromedicaoMedicaoResumo.getMedicaoHistorico() != null
&& imovelMicromedicaoMedicaoResumo.getMedicaoHistorico().getLeituraAnormalidadeFaturamento() != null
&& imovelMicromedicaoMedicaoResumo.getMedicaoHistorico().getLeituraAnormalidadeFaturamento().getId() != null){
LeituraAnormalidade leituraAnormalidade = obterAnormalidadeLeituraEncontrada(fachada, imovelMicromedicaoMedicaoResumo);
if (leituraAnormalidade != null) {
imovelMicromedicaoMedicaoResumo.getMedicaoHistorico().setLeituraAnormalidadeFaturamento(leituraAnormalidade);
leituraConsumoActionForm.setIdAnormalidade(""+ leituraAnormalidade.getId());
leituraConsumoActionForm.setDescricaoAnormalidade(leituraAnormalidade.getDescricao());
leituraConsumoActionForm.setIndicadorLeitura("" + leituraAnormalidade.getIndicadorLeitura());
}
}
leituraConsumoActionForm.setConfirmacao(httpServletRequest.getParameter("confirmacao"));
sessao.setAttribute("imovelMicromedicaoConsumo", imovelMicromedicaoConsumo);
//% Var.Consumo
if (imovelMicromedicaoConsumo.getConsumoHistorico().getNumeroConsumoFaturadoMes() != null
&& imovelMicromedicaoConsumo.getConsumoHistorico().getNumeroConsumoFaturadoMes() != 0
&& imovelMicromedicaoConsumo.getConsumoHistorico().getConsumoMedio() != null
&& imovelMicromedicaoConsumo.getConsumoHistorico().getConsumoMedio() != 0) {
int operacaoSubMult = (imovelMicromedicaoConsumo.getConsumoHistorico().getNumeroConsumoFaturadoMes() - imovelMicromedicaoConsumo.getConsumoHistorico().getConsumoMedio()) * 100;
BigDecimal percentual = new BigDecimal(operacaoSubMult)
.divide(new BigDecimal(imovelMicromedicaoConsumo.getConsumoHistorico().getConsumoMedio()), 2,
BigDecimal.ROUND_HALF_UP);
String valorPercentual = "" + percentual;
leituraConsumoActionForm.setVarConsumo(valorPercentual.replace(".", ",") + "%");
}
}
if(imovelMicromedicaoConsumo.getConsumoHistorico() != null
&& imovelMicromedicaoConsumo.getConsumoHistorico().getConsumoAnormalidade() != null){
leituraConsumoActionForm.setConsumoAnormalidadeAbreviada(imovelMicromedicaoConsumo.getConsumoHistorico().getConsumoAnormalidade().getDescricaoAbreviada());
leituraConsumoActionForm.setAnormalidadeConsumo(imovelMicromedicaoConsumo.getConsumoHistorico().getConsumoAnormalidade().getDescricao());
}else if(imovelMicromedicaoConsumo.getConsumoHistoricoEsgoto()!= null
&& imovelMicromedicaoConsumo.getConsumoHistoricoEsgoto().getConsumoAnormalidade() != null){
leituraConsumoActionForm.setAnormalidadeConsumo(imovelMicromedicaoConsumo.getConsumoHistoricoEsgoto().getConsumoAnormalidade().getDescricao());
}
iteratorMedicaoHistorico.remove();
}
}
}
// Organizar a cole��o de Conta
if (colecaoImovelMicromedicao != null && !colecaoImovelMicromedicao.isEmpty()) {
Collections.sort((List) colecaoImovelMicromedicao, new Comparator() {
public int compare(Object a, Object b) {
int retorno = 0;
Integer anoMesReferencia1 = ((ImovelMicromedicao) a).getMedicaoHistorico().getAnoMesReferencia();
Integer anoMesReferencia2 = ((ImovelMicromedicao) b).getMedicaoHistorico().getAnoMesReferencia();
if(anoMesReferencia1.compareTo(anoMesReferencia2) == 1){
retorno = -1;
}else if(anoMesReferencia1.compareTo(anoMesReferencia2) == -1){
retorno = 1;
}
return retorno;
}
});
}
sessao.setAttribute("medicoesHistoricos", colecaoMedicaoHistorico);
sessao.setAttribute("imoveisMicromedicao", colecaoImovelMicromedicao);
}
if ( httpServletRequest.getParameter("solicitarReleitura") != null ){
fachada.solicitarReleitura( codigoImovel, usuarioLogado );
httpServletRequest.setAttribute("mensagemReleitura", "Releitura do im�vel foi solicitada com sucesso.");
}
if ( fachada.releituraJaRealizada( codigoImovel ) ){
httpServletRequest.setAttribute( "releituraJaRealizada", Boolean.TRUE );
}
if (verificarRotaFinalizada(imovelFiltro.getQuadra().getRota().getId(), mesAnoPesquisa)){
httpServletRequest.setAttribute( "rotaFinalizada", Boolean.TRUE );
httpServletRequest.setAttribute( "solicitarReleitura", Boolean.TRUE );
}
if (verificarReleitura(Util.formatarMesAnoComBarraParaAnoMes(mesAnoPesquisa), imovelFiltro.getId())){
httpServletRequest.setAttribute( "solicitarReleitura", Boolean.TRUE );
}
}
sessao.setAttribute("leituraConsumoActionForm", leituraConsumoActionForm);
if (index == 0 && numeroPaginasPesquisa == 0) {
sessao.setAttribute("desabilitaBotaoAnterior", 1);
}else{
sessao.removeAttribute("desabilitaBotaoAnterior");
}
if (index >= (colecaoIdsImovel.size() - 1)) {
sessao.setAttribute("desabilitaBotaoProximo", 1);
}else{
sessao.removeAttribute("desabilitaBotaoProximo");
}
Integer anoMes = Util.formatarMesAnoComBarraParaAnoMes(mesAnoPesquisa);
if (imovelAtual.getQuadra().getRota().getLeituraTipo().getId().intValue() != LeituraTipo.LEITURA_E_ENTRADA_SIMULTANEA.intValue()) {
if (!isFaturamentoGrupoAberto(Util.formatarMesAnoComBarraParaAnoMes(mesAnoPesquisa), faturamentoGrupo)) {
verificarAbrangenciaUsuario(httpServletRequest, usuarioLogado, imovelAtual);
desabilitaAtualizarImovel = true;
} else if (!imovelAtual.getLigacaoAguaSituacao().getId().equals(LigacaoAguaSituacao.LIGADO)) {
httpServletRequest.setAttribute("habilitaCampos", false);
desabilitaAtualizarImovel = true;
}
}
else if(isTipoLeituraImpressaoSimultanea(imovelAtual, imovelPerfil)) {
if (isFaturamentoGrupoAberto(Util.formatarMesAnoComBarraParaAnoMes(mesAnoPesquisa), faturamentoGrupo)
&& imovelPossuiMedicaoHistorico(idMedicaoTipo, imovelAtual, anoMes)
&& imovelPossuiConta(imovelAtual, anoMes, DebitoCreditoSituacao.PRE_FATURADA)
&& imovelPossuiContaImpressaoSimultaneaGerada(imovelAtual, anoMes)){
desabilitaAtualizarImovel = false;
} else {
httpServletRequest.setAttribute("habilitaCampos", false);
desabilitaAtualizarImovel = true;
}
}
httpServletRequest.setAttribute("desabilitaAtualizarImovel",desabilitaAtualizarImovel);
}
FiltroMotivoInterferenciaTipo filtroMotivoInterferenciaTipo = new FiltroMotivoInterferenciaTipo();
filtroMotivoInterferenciaTipo.adicionarParametro(new ParametroSimples(
FiltroMotivoInterferenciaTipo.INDICADOR_USO, ConstantesSistema.SIM));
Collection colecaoMotivoInterferenciaTipo = fachada.pesquisar(filtroMotivoInterferenciaTipo, MotivoInterferenciaTipo.class.getName());
if (colecaoMotivoInterferenciaTipo!= null && !colecaoMotivoInterferenciaTipo.isEmpty()){
sessao.setAttribute("colecaoMotivoInterferenciaTipo", colecaoMotivoInterferenciaTipo);
}
return retorno;
}
private boolean imovelPossuiContaImpressaoSimultaneaGerada(Imovel imovelAtual, Integer anoMes) {
MovimentoContaPrefaturada mcpf = this.getFachada().obterMovimentoImovel(imovelAtual.getId(), anoMes);
if ((mcpf != null && mcpf.getId() != null
&& mcpf.getIndicadorEmissaoConta().shortValue() == ConstantesSistema.NAO.shortValue()
&& mcpf.getIndicadorGeracaoConta().shortValue() == ConstantesSistema.NAO.shortValue())
|| mcpf == null) {
return true;
} else {
return false;
}
}
private boolean imovelPossuiConta(Imovel imovelAtual, Integer anoMes, Integer idSituacao) {
Conta conta = this.getFachada().obterContaImovel(imovelAtual.getId(), anoMes);
if(conta != null && conta.getId() != null && conta.getDebitoCreditoSituacaoAtual().getId().equals(idSituacao)) {
return true;
} else {
return false;
}
}
private boolean imovelPossuiMedicaoHistorico(String idMedicaoTipo, Imovel imovelAtual, Integer anoMes) {
MedicaoHistorico medicaoHistorico = this.getFachada().pesquisarMedicaoHistorico(imovelAtual.getId(), anoMes, new Integer(idMedicaoTipo));
if (medicaoHistorico != null && medicaoHistorico.getId() != null) {
return true;
} else {
return false;
}
}
private boolean imovelPossuiPoco(
ImovelMicromedicao imovelMicromedicaoDadosResumo) {
return imovelMicromedicaoDadosResumo.getImovel() != null
&& imovelMicromedicaoDadosResumo.getImovel().getPocoTipo() != null
&& imovelMicromedicaoDadosResumo.getImovel().getPocoTipo().getId() != null
&& imovelMicromedicaoDadosResumo.getImovel().getPocoTipo().getId() != 0;
}
private boolean isImovelCondominio(Imovel imovelFiltro) {
return imovelFiltro != null && ( imovelFiltro.getImovelCondominio() != null || imovelFiltro.getIndicadorImovelCondominio().compareTo(ConstantesSistema.SIM) == 0 );
}
private boolean isTipoLeituraImpressaoSimultanea(Imovel imovelAtual,
ImovelPerfil imovelPerfil) {
return imovelAtual.getQuadra().getRota().getLeituraTipo().getId().intValue() == LeituraTipo.LEITURA_E_ENTRADA_SIMULTANEA.intValue() &&
imovelPerfil.getIndicadorGerarDadosLeitura().intValue() == ConstantesSistema.INDICADOR_USO_ATIVO.intValue();
}
@SuppressWarnings("rawtypes")
private Imovel obterImovel(Fachada fachada, String codigoImovel) {
Imovel imovel = null;
FiltroImovel filtroImovel = new FiltroImovel();
filtroImovel.adicionarCaminhoParaCarregamentoEntidade("quadra.rota");
filtroImovel.adicionarCaminhoParaCarregamentoEntidade("rotaAlternativa");
filtroImovel.adicionarParametro(new ParametroSimples(FiltroImovel.ID, new Integer(codigoImovel)));
Collection imoveis = fachada.pesquisar(filtroImovel, Imovel.class.getName());
if(!imoveis.isEmpty()){
imovel = (Imovel) imoveis.iterator().next();
}
return imovel;
}
@SuppressWarnings({ "rawtypes", "unchecked" })
private MovimentoContaPrefaturada obterMovimentoContaPreFaturada(Fachada fachada, String mesAnoPesquisa, String codigoImovel, String idMedicaoTipo) {
MovimentoContaPrefaturada mcpf = null;
FiltroMovimentoContaPrefaturada filtroMovimentoContaPrefaturada = new FiltroMovimentoContaPrefaturada();
filtroMovimentoContaPrefaturada.adicionarParametro(new ParametroSimples(FiltroMovimentoContaPrefaturada.MATRICULA, codigoImovel));
filtroMovimentoContaPrefaturada.adicionarParametro(new ParametroSimples(FiltroMovimentoContaPrefaturada.ID_MEDICAO_TIPO, idMedicaoTipo));
filtroMovimentoContaPrefaturada.adicionarParametro(new ParametroSimples(FiltroMovimentoContaPrefaturada.ANO_MES_REFERENCIA_PRE_FATURAMENTO, Util.formatarMesAnoComBarraParaAnoMes(mesAnoPesquisa)));
Collection colecaoMovimentoContaPF = fachada.pesquisar(filtroMovimentoContaPrefaturada, MovimentoContaPrefaturada.class.getName());
if(!Util.isVazioOrNulo(colecaoMovimentoContaPF)){
mcpf = (MovimentoContaPrefaturada) colecaoMovimentoContaPF.iterator().next();
}
return mcpf;
}
private void limparFormPaginacao(
LeituraConsumoActionForm leituraConsumoActionForm) {
leituraConsumoActionForm.setAnalisado("");
leituraConsumoActionForm.setGerarAviso("");
leituraConsumoActionForm.setGerarOS("");
leituraConsumoActionForm.setGerarRelatorio("");
leituraConsumoActionForm.setMotivoInterferenciaTipo(-1);
}
@SuppressWarnings("rawtypes")
private Collection obterColecaoIdsImovel(Fachada fachada, HttpSession sessao, FaturamentoGrupo faturamentoGrupo,
FiltroMedicaoHistoricoSql filtroMedicaoHistoricoSql, Integer totalRegistros) {
Collection colecaoIdsImovel;
if(sessao.getAttribute("colecaoIdsImovelTotal") != null){
colecaoIdsImovel = (Collection)sessao.getAttribute("colecaoIdsImovelTotal");
}else{
colecaoIdsImovel = fachada.filtrarExcecoesLeiturasConsumos(faturamentoGrupo,
filtroMedicaoHistoricoSql, totalRegistros, true, (String)sessao.getAttribute("mesAnoPesquisa"),
(String)sessao.getAttribute("valorAguaEsgotoInicial"), (String)sessao.getAttribute("valorAguaEsgotoFinal"));
sessao.setAttribute("colecaoIdsImovelTotal", colecaoIdsImovel);
}
return colecaoIdsImovel;
}
private Integer obterTotalRegistros(Fachada fachada, HttpSession sessao, FaturamentoGrupo faturamentoGrupo, FiltroMedicaoHistoricoSql filtroMedicaoHistoricoSql) {
Integer totalRegistros = null;
if (sessao.getAttribute("totalRegistros") != null && !sessao.getAttribute("totalRegistros").equals("")) {
totalRegistros = (Integer) sessao.getAttribute("totalRegistros");
} else {
totalRegistros = fachada.filtrarExcecoesLeiturasConsumosCount(faturamentoGrupo, filtroMedicaoHistoricoSql,
(String) sessao.getAttribute("mesAnoPesquisa"),
(String)sessao.getAttribute("valorAguaEsgotoInicial"),
(String)sessao.getAttribute("valorAguaEsgotoFinal"));
sessao.setAttribute("totalRegistros", totalRegistros);
}
if (totalRegistros == 0) {
throw new ActionServletException("atencao.pesquisa.nenhumresultado");
}
return totalRegistros;
}
private LeituraConsumoActionForm limparLeituraConsumo(LeituraConsumoActionForm leituraConsumoActionForm) {
leituraConsumoActionForm.setDataLeituraAnteriorFaturamento("");
leituraConsumoActionForm.setDataLeituraAtualFaturamento("");
leituraConsumoActionForm.setDataLeituraAtualInformada("");
leituraConsumoActionForm.setConsumo("");
leituraConsumoActionForm.setLeituraAnterior("");
leituraConsumoActionForm.setLeituraAnteriorFaturamento("");
leituraConsumoActionForm.setLeituraAtualFaturada("");
leituraConsumoActionForm.setLeituraAtualInformada("");
leituraConsumoActionForm.setIdAnormalidade("");
leituraConsumoActionForm.setDescricaoAnormalidade("");
leituraConsumoActionForm.setIndicadorLeitura("");
leituraConsumoActionForm.setConsumoMedioImovel("");
leituraConsumoActionForm.setDiasConsumo("");
leituraConsumoActionForm.setVarConsumo("");
leituraConsumoActionForm.setLeituraSituacaoAtual("");
leituraConsumoActionForm.setIdFuncionario("");
leituraConsumoActionForm.setConsumoInformado("");
leituraConsumoActionForm.setConsumoTipo("");
leituraConsumoActionForm.setConsumoAnormalidadeAbreviada("");
leituraConsumoActionForm.setMedido("");
leituraConsumoActionForm.setMotivoInterferenciaTipo(-1);
leituraConsumoActionForm.setObservacao("");
return leituraConsumoActionForm;
}
private boolean possuiAnormalidade(HttpServletRequest httpServletRequest,
LeituraConsumoActionForm leituraConsumoActionForm) {
return leituraConsumoActionForm.getIdAnormalidade() != null && !leituraConsumoActionForm.getIdAnormalidade().trim().equals("")
&& httpServletRequest.getParameter("pesquisarAnormalidade") != null;
}
@SuppressWarnings({ "rawtypes", "unchecked" })
private LeituraAnormalidade obterAnormalidadeLeituraEncontrada(Fachada fachada, ImovelMicromedicao imovelMicromedicaoMedicaoResumo) {
LeituraAnormalidade leituraAnormalidade = null;
FiltroLeituraAnormalidade filtroLeituraAnormalidade = new FiltroLeituraAnormalidade();
filtroLeituraAnormalidade.adicionarParametro(new ParametroSimples(FiltroLeituraAnormalidade.ID,
imovelMicromedicaoMedicaoResumo.getMedicaoHistorico().getLeituraAnormalidadeFaturamento().getId()));
Collection anormalidadeLeituraEncontrada = fachada.pesquisar(filtroLeituraAnormalidade, LeituraAnormalidade.class.getName());
if (anormalidadeLeituraEncontrada != null && !anormalidadeLeituraEncontrada.isEmpty()) {
leituraAnormalidade = (LeituraAnormalidade) Util.retonarObjetoDeColecao(anormalidadeLeituraEncontrada);
}
return leituraAnormalidade;
}
private boolean isFaturamentoGrupoAberto(Integer anoMesConsulta, FaturamentoGrupo grupoFaturamento) {
if (anoMesConsulta >= grupoFaturamento.getAnoMesReferencia())
return true;
else
return false;
}
@SuppressWarnings({ "rawtypes", "unchecked" })
private void verificarAbrangenciaUsuario(HttpServletRequest httpServletRequest, Usuario usuarioLogado, Imovel imovelAtual) {
Fachada fachada = Fachada.getInstancia();
if (usuarioLogado.getUsuarioAbrangencia().getId().equals(UsuarioAbrangencia.LOCALIDADE)) {
if (!usuarioLogado.getLocalidade().getId().equals(imovelAtual.getLocalidade().getId())) {
httpServletRequest.setAttribute("habilitaCampos", true);
}
} else if (usuarioLogado.getUsuarioAbrangencia().getId().equals(UsuarioAbrangencia.GERENCIA_REGIONAL)) {
FiltroLocalidade filtroLocalidade = new FiltroLocalidade();
filtroLocalidade.adicionarParametro(new ParametroSimples(FiltroLocalidade.ID, imovelAtual.getLocalidade().getId()));
Collection colecaoLocalidade = fachada.pesquisar(filtroLocalidade, Localidade.class.getName());
Localidade localidade = (Localidade) Util.retonarObjetoDeColecao(colecaoLocalidade);
if (!usuarioLogado.getGerenciaRegional().getId().equals(localidade.getGerenciaRegional().getId())) {
httpServletRequest.setAttribute("habilitaCampos", true);
}
} else if (usuarioLogado.getUsuarioAbrangencia().getId().equals(UsuarioAbrangencia.UNIDADE_NEGOCIO)) {
FiltroLocalidade filtroLocalidade = new FiltroLocalidade();
filtroLocalidade.adicionarParametro(new ParametroSimples(FiltroLocalidade.ID, imovelAtual.getLocalidade().getId()));
Collection colecaoLocalidade = fachada.pesquisar(filtroLocalidade, Localidade.class.getName());
Localidade localidade = (Localidade) Util.retonarObjetoDeColecao(colecaoLocalidade);
if (!usuarioLogado.getUnidadeNegocio().getId().equals(localidade.getUnidadeNegocio().getId())) {
httpServletRequest.setAttribute("habilitaCampos", true);
}
} else if (usuarioLogado.getUsuarioAbrangencia().getId().equals(UsuarioAbrangencia.ELO_POLO)) {
FiltroLocalidade filtroLocalidade = new FiltroLocalidade();
filtroLocalidade.adicionarParametro(new ParametroSimples(FiltroLocalidade.ID, imovelAtual.getLocalidade().getId()));
Collection colecaoLocalidade = fachada.pesquisar(filtroLocalidade, Localidade.class.getName());
Localidade localidade = (Localidade) Util.retonarObjetoDeColecao(colecaoLocalidade);
if (!usuarioLogado.getLocalidadeElo().getId().equals(localidade.getLocalidade().getId())) {
httpServletRequest.setAttribute("habilitaCampos", true);
}
}
}
@SuppressWarnings({ "unchecked", "rawtypes" })
private void adicionarObjetosSelecionadosColecoes(HttpServletRequest httpServletRequest, HttpSession sessao, Imovel imovel, String observacao) {
String gerarAviso = httpServletRequest.getParameter("gerarAviso");
String gerarOS = httpServletRequest.getParameter("gerarOS");
String gerarRelatorio = httpServletRequest.getParameter("gerarRelatorio");
Collection colecaoImoveisGerarAviso = (Collection) sessao.getAttribute("colecaoImoveisGerarAviso");
Collection colecaoImoveisGerarOS = (Collection) sessao.getAttribute("colecaoImoveisGerarOS");
Collection colecaoImoveisGerarRelatorio = (Collection) sessao.getAttribute("colecaoImoveisGerarRelatorio");
HashMap<Integer, String> colecaoObservacaoOS = (HashMap<Integer, String>) sessao.getAttribute("colecaoObservacaoOS");
if (gerarAviso != null && !gerarAviso.trim().equals("")) {
if (colecaoImoveisGerarAviso == null) {
colecaoImoveisGerarAviso = new ArrayList();
}
if (!colecaoImoveisGerarAviso.contains(imovel.getId())) {
colecaoImoveisGerarAviso.add(imovel.getId());
} else {
sessao.setAttribute("gerarAviso", "1");
}
sessao.setAttribute("colecaoImoveisGerarAviso", colecaoImoveisGerarAviso);
}
// Caso n�o esteja selecionado, verifica se ele estava na cole��o e remove-o
else {
if (colecaoImoveisGerarAviso != null && !colecaoImoveisGerarAviso.isEmpty()) {
if (colecaoImoveisGerarAviso.contains(imovel.getId())) {
colecaoImoveisGerarAviso.remove(imovel.getId());
sessao.setAttribute("colecaoImoveisGerarAviso", colecaoImoveisGerarAviso);
}
}
}
// Verifica se o usu�rio selecionou este im�vel para gera��o de OS
if (gerarOS != null && !gerarOS.trim().equals("")) {
if (colecaoImoveisGerarOS == null) {
colecaoImoveisGerarOS = new ArrayList();
colecaoObservacaoOS = new HashMap<Integer, String>();
}
if (!colecaoImoveisGerarOS.contains(imovel)) {
colecaoImoveisGerarOS.add(imovel);
colecaoObservacaoOS.put(imovel.getId(),observacao);
}
sessao.setAttribute("observacao", observacao);
sessao.setAttribute("colecaoImoveisGerarOS", colecaoImoveisGerarOS);
sessao.setAttribute("colecaoObservacaoOS", colecaoObservacaoOS);
}
// Caso n�o esteja selecionado, verifica se ele estava na cole��o e remove-o
else {
if (colecaoImoveisGerarOS != null && !colecaoImoveisGerarOS.isEmpty()) {
if (colecaoImoveisGerarOS.contains(imovel)) {
colecaoImoveisGerarOS.remove(imovel);
colecaoObservacaoOS.remove(imovel.getId());
sessao.setAttribute("colecaoImoveisGerarOS", colecaoImoveisGerarOS);
sessao.setAttribute("colecaoObservacaoOS", colecaoObservacaoOS);
}
}
}
// Verifica se o usu�rio selecionou este im�vel para gera��o do relat�rio
if (gerarRelatorio != null && !gerarRelatorio.trim().equals("")) {
if (colecaoImoveisGerarRelatorio == null) {
colecaoImoveisGerarRelatorio = new ArrayList();
}
if (!colecaoImoveisGerarRelatorio.contains(imovel.getId())) {
colecaoImoveisGerarRelatorio.add(imovel.getId());
}
sessao.setAttribute("colecaoImoveisGerarRelatorio", colecaoImoveisGerarRelatorio);
}
// Caso n�o esteja selecionado, verifica se ele estava na cole��o e remove-o
else {
if (colecaoImoveisGerarRelatorio != null && !colecaoImoveisGerarRelatorio.isEmpty()) {
if (colecaoImoveisGerarRelatorio.contains(imovel.getId())) {
colecaoImoveisGerarRelatorio.remove(imovel.getId());
sessao.setAttribute("colecaoImoveisGerarRelatorio", colecaoImoveisGerarRelatorio);
}
}
}
}
@SuppressWarnings({ "rawtypes", "unchecked" })
private Collection<CalculoConsumoHelper> carregarComboCalculoConsumo(MedicaoHistorico medicaoHistorico, Imovel imovel, Integer anoMesReferencia) {
Fachada fachada = Fachada.getInstancia();
Collection<CalculoConsumoHelper> retorno = new ArrayList<CalculoConsumoHelper>();
FiltroImovel filtroImovel = new FiltroImovel();
filtroImovel.adicionarCaminhoParaCarregamentoEntidade(FiltroImovel.CONSUMO_TARIFA);
filtroImovel.adicionarParametro(new ParametroSimples(FiltroImovel.ID, imovel.getId()));
Collection colecaoImoveis = fachada.pesquisar(filtroImovel, Imovel.class.getName());
imovel = (Imovel) Util.retonarObjetoDeColecao(colecaoImoveis);
// Consumo M�dio
CalculoConsumoHelper calculoConsumoMedio = new CalculoConsumoHelper();
calculoConsumoMedio.setDescricao("MEDIA");
calculoConsumoMedio.setConsumo(medicaoHistorico.getConsumoMedioHidrometro());
retorno.add(calculoConsumoMedio);
// Consumo M�nimo
CalculoConsumoHelper calculoConsumoMinimo = new CalculoConsumoHelper();
Integer consumoMinimo = fachada.obterConsumoMinimoLigacao(imovel, null);
calculoConsumoMinimo.setDescricao("MINIMO");
calculoConsumoMinimo.setConsumo(consumoMinimo);
retorno.add(calculoConsumoMinimo);
// Consumo N�o Medido
CalculoConsumoHelper calculoConsumoNaoMedido = new CalculoConsumoHelper();
Integer consumoNaoMedido = fachada.obterConsumoNaoMedidoSemTarifa(imovel.getId(), anoMesReferencia);
calculoConsumoNaoMedido.setDescricao("N MED.");
calculoConsumoNaoMedido.setConsumo(consumoNaoMedido);
retorno.add(calculoConsumoNaoMedido);
return retorno;
}
private boolean verificarRotaFinalizada(Integer idRota, String mesAnoPesquisa) {
Fachada fachada = Fachada.getInstancia();
Integer anoMesFaturamento = Util.formatarMesAnoComBarraParaAnoMes(mesAnoPesquisa);
Object[] dadosArquivoTextoRoteiroEmpresa =
fachada.pesquisarArquivoTextoRoteiroEmpresa( idRota, anoMesFaturamento);
if (dadosArquivoTextoRoteiroEmpresa != null){
Integer idSituacaoTransmissaoLeitura = (Integer)dadosArquivoTextoRoteiroEmpresa[1];
if( !idSituacaoTransmissaoLeitura.equals( SituacaoTransmissaoLeitura.DISPONIVEL ) &&
!idSituacaoTransmissaoLeitura.equals( SituacaoTransmissaoLeitura.LIBERADO ) &&
!idSituacaoTransmissaoLeitura.equals( SituacaoTransmissaoLeitura.EM_CAMPO ) &&
!idSituacaoTransmissaoLeitura.equals( SituacaoTransmissaoLeitura.FINALIZADO_NAO_TRANSMITIDO ) ){
return true;
}
}
return false;
}
@SuppressWarnings("unchecked")
private boolean verificarReleitura(Integer anoMesFaturamento, Integer idImovel) {
Fachada fachada = Fachada.getInstancia();
FiltroReleituraMobile filtroReleituraMobile = new FiltroReleituraMobile();
filtroReleituraMobile.adicionarParametro(new ParametroSimples(FiltroReleituraMobile.ANO_MES_FATURAMENTO, anoMesFaturamento));
filtroReleituraMobile.adicionarParametro(new ParametroSimples(FiltroReleituraMobile.ID_IMOVEL, idImovel));
Collection<ReleituraMobile> colecaoReleituraMobile = fachada.pesquisar( filtroReleituraMobile, ReleituraMobile.class.getName());
if (colecaoReleituraMobile != null && !colecaoReleituraMobile.isEmpty()){
return true;
}
return false;
}
}