package gcom.gui.micromedicao; import gcom.atendimentopublico.ligacaoagua.FiltroLigacaoAgua; import gcom.atendimentopublico.ligacaoagua.LigacaoAgua; import gcom.cadastro.imovel.bean.ImovelMicromedicao; import gcom.fachada.Fachada; import gcom.gui.GcomAction; import gcom.micromedicao.consumo.ConsumoHistorico; import gcom.micromedicao.consumo.FiltroConsumoHistorico; import gcom.micromedicao.medicao.FiltroMedicaoHistorico; import gcom.micromedicao.medicao.MedicaoHistorico; import gcom.micromedicao.medicao.MedicaoTipo; import gcom.util.Util; import gcom.util.filtro.ParametroSimples; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; /** * Action respons�vel pela pre-exibi��o da pagina de inserir bairro * * @author S�vio Luiz * @created 28 de Junho de 2004 */ public class ExibirConsultarHistoricoMedicaoConsumoAction extends GcomAction { /** * Description of the Method * * @param actionMapping * Description of the Parameter * @param actionForm * Description of the Parameter * @param httpServletRequest * Description of the Parameter * @param httpServletResponse * Description of the Parameter * @return Description of the Return Value */ public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { ActionForward retorno = actionMapping.findForward("consultarHistoricoMedicaoConsumo"); LeituraConsumoActionForm leituraConsumoActionForm = (LeituraConsumoActionForm) actionForm; Fachada fachada = Fachada.getInstancia(); // Mudar isso quando tiver esquema de seguran�a //HttpSession sessao = httpServletRequest.getSession(false); String codigoImovel = leituraConsumoActionForm.getImovel(); Collection<MedicaoHistorico> medicoesHistorico = new ArrayList(); Collection<ImovelMicromedicao> imoveisMicromedicao = new ArrayList(); FiltroMedicaoHistorico filtroMedicaoHistorico = new FiltroMedicaoHistorico(); FiltroConsumoHistorico filtroConsumoHistorico = new FiltroConsumoHistorico(); //MedicaoHistorico filtroMedicaoHistorico.adicionarCaminhoParaCarregamentoEntidade("imovel"); filtroMedicaoHistorico.adicionarCaminhoParaCarregamentoEntidade("leituraAnormalidadeFaturamento"); filtroMedicaoHistorico.adicionarCaminhoParaCarregamentoEntidade("leituraAnormalidadeInformada"); filtroMedicaoHistorico.adicionarCaminhoParaCarregamentoEntidade("leituraSituacaoAtual"); filtroMedicaoHistorico.adicionarCaminhoParaCarregamentoEntidade("ligacaoAgua"); //Consumo Historico filtroConsumoHistorico.adicionarCaminhoParaCarregamentoEntidade("imovel"); filtroConsumoHistorico.adicionarCaminhoParaCarregamentoEntidade("consumoTipo"); filtroConsumoHistorico.adicionarCaminhoParaCarregamentoEntidade("consumoAnormalidade"); FiltroLigacaoAgua filtroLigacaoAgua = new FiltroLigacaoAgua(); filtroLigacaoAgua.adicionarCaminhoParaCarregamentoEntidade("imovel"); filtroLigacaoAgua.adicionarParametro(new ParametroSimples(FiltroLigacaoAgua.ID, codigoImovel)); Collection<LigacaoAgua> ligacoesAgua = fachada.pesquisar(filtroLigacaoAgua, LigacaoAgua.class.getName()); filtroMedicaoHistorico.adicionarParametro(new ParametroSimples(FiltroMedicaoHistorico.IMOVEL_ID, codigoImovel, ParametroSimples.CONECTOR_OR)); filtroMedicaoHistorico.adicionarParametro(new ParametroSimples( FiltroMedicaoHistorico.LIGACAO_AGUA_ID, codigoImovel)); filtroMedicaoHistorico.setCampoOrderBy(FiltroMedicaoHistorico.ANO_MES_REFERENCIA_FATURAMENTO); if(!ligacoesAgua.isEmpty()){ filtroMedicaoHistorico.adicionarParametro(new ParametroSimples(FiltroMedicaoHistorico.MEDICAO_TIPO_ID, MedicaoTipo.LIGACAO_AGUA)); }else{ filtroMedicaoHistorico.adicionarParametro(new ParametroSimples(FiltroMedicaoHistorico.MEDICAO_TIPO_ID, MedicaoTipo.POCO)); } medicoesHistorico = fachada.pesquisar(filtroMedicaoHistorico, MedicaoHistorico.class.getName()); if(!medicoesHistorico.isEmpty()){ Iterator iteratorMedicaoHistorico = medicoesHistorico.iterator(); while(iteratorMedicaoHistorico.hasNext()){ MedicaoHistorico medicaoHistoricoConsumo = (MedicaoHistorico)iteratorMedicaoHistorico.next(); if(medicaoHistoricoConsumo.getAnoMesReferencia()!= 0){ filtroConsumoHistorico.limparListaParametros(); filtroConsumoHistorico.adicionarParametro(new ParametroSimples(FiltroConsumoHistorico.ANO_MES_FATURAMENTO, medicaoHistoricoConsumo.getAnoMesReferencia())); filtroConsumoHistorico.adicionarParametro(new ParametroSimples(FiltroConsumoHistorico.IMOVEL_ID, codigoImovel)); filtroConsumoHistorico.setCampoOrderBy(FiltroConsumoHistorico.ANO_MES_FATURAMENTO); Collection<ConsumoHistorico> collectionConsumoHistorico = fachada.pesquisar(filtroConsumoHistorico, ConsumoHistorico.class.getName()); if(!collectionConsumoHistorico.isEmpty()){ ConsumoHistorico consumoHistoricoNovo = (ConsumoHistorico) collectionConsumoHistorico.iterator().next(); ImovelMicromedicao imovelMicromedicao = new ImovelMicromedicao(); imovelMicromedicao.setConsumoHistorico(consumoHistoricoNovo); imovelMicromedicao.setMedicaoHistorico(medicaoHistoricoConsumo); //if(!imoveisMicromedicao.contains(imovelMicromedicao)){ imoveisMicromedicao.add(imovelMicromedicao); //} //obtem qtd de dias do consumo if(medicaoHistoricoConsumo.getDataLeituraAnteriorFaturamento() != null && medicaoHistoricoConsumo.getDataLeituraAtualFaturamento() != null){ int qtdDias = Util.obterQuantidadeDiasEntreDuasDatas(medicaoHistoricoConsumo.getDataLeituraAnteriorFaturamento(), medicaoHistoricoConsumo.getDataLeituraAtualFaturamento()); imovelMicromedicao.setQtdDias("" + qtdDias); } } } } //coloca a colecao de medicao historico no request httpServletRequest.setAttribute("medicoesHistoricos", medicoesHistorico); //coloca colecao de consumo historico no request httpServletRequest.setAttribute("imoveisMicromedicao", imoveisMicromedicao); } //sessao.setAttribute("leituraConsumoActionForm", leituraConsumoActionForm); return retorno; } }