package gcom.gui.micromedicao; import gcom.cadastro.imovel.FiltroImovel; import gcom.cadastro.imovel.Imovel; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.micromedicao.FiltroLigacaoTipo; import gcom.micromedicao.bean.ConsultarHistoricoMedicaoIndividualizadaHelper; import gcom.micromedicao.consumo.LigacaoTipo; import gcom.util.ConstantesSistema; import gcom.util.Util; import gcom.util.filtro.ParametroSimples; import gcom.util.filtro.ParametroSimplesDiferenteDe; import java.util.ArrayList; import java.util.Calendar; import java.util.Collection; import java.util.GregorianCalendar; import java.util.Iterator; 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; /** * Atualizar Tipo de Rateio * * @author Rafael Santos, Pedro Alexandre * @since 11/01/2006, 23/01/2008 */ public class ExibirConsultarHistoricoMedicaoIndividualizadaAction 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("exibirConsultarHistoricoMedicaoIndividualizada"); Fachada fachada = Fachada.getInstancia(); HttpSession sessao = httpServletRequest.getSession(false); ConsultarHistoricoMedicaoIndividualizadaActionForm consultarHistoricoMedicaoIndividualizadaActionForm = (ConsultarHistoricoMedicaoIndividualizadaActionForm) actionForm; String codigoImovel = consultarHistoricoMedicaoIndividualizadaActionForm.getCodigoImovel(); // limpa para pesquisar outro imovel if (sessao.getAttribute("colecaoConsultarHistoricoMedicaoIndividualizada") != null) { sessao.removeAttribute("colecaoConsultarHistoricoMedicaoIndividualizada"); } // limpa para pesquisar outro imovel if (sessao.getAttribute("dadosImovel") != null) { sessao.removeAttribute("dadosImovel"); } httpServletRequest.getParameter("limparColecoes"); httpServletRequest.getAttribute("limparColecoes"); if (httpServletRequest.getParameter("limparColecoes") != null) { sessao.removeAttribute("colecaoConsultarHistoricoMedicaoIndividualizada"); sessao.removeAttribute("dadosImovel"); } else if (codigoImovel != null && !codigoImovel.trim().equalsIgnoreCase("")) { if (codigoImovel != null && !codigoImovel.trim().equals("")) { FiltroImovel filtroImovel = new FiltroImovel(); filtroImovel.adicionarParametro(new ParametroSimples(FiltroImovel.ID, codigoImovel)); filtroImovel.adicionarParametro(new ParametroSimplesDiferenteDe(FiltroImovel.INDICADOR_IMOVEL_EXCLUIDO,Imovel.IMOVEL_EXCLUIDO)); filtroImovel.adicionarCaminhoParaCarregamentoEntidade("logradouroCep.logradouro.logradouroTipo"); filtroImovel.adicionarCaminhoParaCarregamentoEntidade("logradouroCep.logradouro.logradouroTitulo"); filtroImovel.adicionarCaminhoParaCarregamentoEntidade("enderecoReferencia"); filtroImovel.adicionarCaminhoParaCarregamentoEntidade("logradouroBairro.bairro.municipio.unidadeFederacao"); filtroImovel.adicionarCaminhoParaCarregamentoEntidade("logradouroCep.cep"); filtroImovel.adicionarCaminhoParaCarregamentoEntidade("setorComercial"); filtroImovel.adicionarCaminhoParaCarregamentoEntidade("localidade"); filtroImovel.adicionarCaminhoParaCarregamentoEntidade("ligacaoAguaSituacao"); filtroImovel.adicionarCaminhoParaCarregamentoEntidade("ligacaoEsgotoSituacao"); filtroImovel.adicionarCaminhoParaCarregamentoEntidade("ligacaoAgua.hidrometroInstalacaoHistorico.rateioTipo"); filtroImovel.adicionarCaminhoParaCarregamentoEntidade("quadra.rota.faturamentoGrupo"); filtroImovel.adicionarCaminhoParaCarregamentoEntidade(FiltroImovel.LOGRADOURO_TIPO_PERIMETRO_INICIAL); filtroImovel.adicionarCaminhoParaCarregamentoEntidade(FiltroImovel.LOGRADOURO_TITULO_PERIMETRO_INICIAL); filtroImovel.adicionarCaminhoParaCarregamentoEntidade(FiltroImovel.LOGRADOURO_TIPO_PERIMETRO_FINAL); filtroImovel.adicionarCaminhoParaCarregamentoEntidade(FiltroImovel.LOGRADOURO_TITULO_PERIMETRO_FINAL); Collection<Imovel> imovelPesquisado = fachada.pesquisar(filtroImovel, Imovel.class.getName()); // [FS0002 - Verificar exist�ncia da matr�cula do im�vel if (imovelPesquisado != null && imovelPesquisado.isEmpty()) { consultarHistoricoMedicaoIndividualizadaActionForm.setCodigoImovel(""); consultarHistoricoMedicaoIndividualizadaActionForm.setDescricaoImovel("MATR�CULA INEXISTENTE"); httpServletRequest.setAttribute("matriculaInexistente",true); } else { Imovel imovelCondominio = imovelPesquisado.iterator().next(); consultarHistoricoMedicaoIndividualizadaActionForm.setDescricaoImovel(imovelCondominio.getInscricaoFormatada()); // [FS0001] - Verificar se o im�vel � um condom�nio if (imovelCondominio.getIndicadorImovelCondominio() != null && (imovelCondominio.getIndicadorImovelCondominio().shortValue() == Imovel.IMOVEL_NAO_CONDOMINIO.shortValue())) { throw new ActionServletException("atencao.imovel.nao_condominio"); } // [FS0001] - Verificar se o im�vel � um condom�nio if (imovelCondominio.getIndicadorImovelCondominio() == null) { throw new ActionServletException("atencao.imovel.nao_condominio"); } if (httpServletRequest.getParameter("pesquisaImovel") == null || httpServletRequest.getParameter("pesquisaImovel").equals("")) { String idTipoLigacao = consultarHistoricoMedicaoIndividualizadaActionForm.getIdTipoLigacao(); LigacaoTipo tipoLigacao = new LigacaoTipo(); tipoLigacao.setId(new Integer(idTipoLigacao)); String anoMes = consultarHistoricoMedicaoIndividualizadaActionForm.getMesAno(); boolean valida = Util.validarAnoMes(anoMes); if (valida) { throw new ActionServletException("atencao.invalid", null, "M�s/Ano do Faturamento"); } // [FS0007] Compara Ano M�s Refer�ncia com Ano Mes Atual if (anoMes != null && !anoMes.equalsIgnoreCase("")) { String mesReferencia = anoMes.substring(0, 2); String anoReferencia = anoMes.substring(3, 7); Calendar calendarAtual = new GregorianCalendar(); String mesAtual = (calendarAtual.get(Calendar.MONTH) + 1) + ""; String anoAtual = calendarAtual.get(Calendar.YEAR) + ""; if (mesAtual.length() == 1) { mesAtual = "0" + mesAtual; } boolean maior = Util.compararAnoMesReferencia(new Integer(anoReferencia + "" + mesReferencia), new Integer(anoAtual + "" + mesAtual), ">"); if (maior) { throw new ActionServletException("atencao.ano_mes.maior.ano_mes_atual"); } } // [FS0003] Validar m�s e ano refer�ncia if (anoMes != null && !anoMes.equalsIgnoreCase("")) { String mes = anoMes.substring(0, 2); if (new Integer(mes).intValue() > 12) { throw new ActionServletException("atencao.ano_mes.invalido", null,codigoImovel); } } String anoMesFaturamentoInformado = null; // [FS0004] - Verifica ano e m�s do faturamento if (anoMes != null && !anoMes.equalsIgnoreCase("")) { String mes = anoMes.substring(0, 2); String ano = anoMes.substring(3, 7); anoMesFaturamentoInformado = ano + mes; Calendar anoMesInformado = Calendar.getInstance(); anoMesInformado.set(Calendar.YEAR, new Integer(ano)); anoMesInformado.set(Calendar.MONTH,new Integer(mes) - 1); anoMesInformado.set(Calendar.DATE, 1); anoMes = imovelCondominio.getQuadra().getRota().getFaturamentoGrupo().getAnoMesReferencia() + ""; Calendar anoMesReferencia = Calendar.getInstance(); anoMesReferencia.set(Calendar.YEAR, new Integer(anoMes.substring(0, 4)).intValue()); anoMesReferencia.set(Calendar.MONTH, new Integer(anoMes.substring(4, 6)).intValue() - 1); anoMesReferencia.set(Calendar.DATE, 1); if (anoMesInformado.getTime().compareTo(anoMesReferencia.getTime()) > 0) { throw new ActionServletException("atencao.ano_mes.referencia.superior", null, codigoImovel); } } Collection colecaoConsultarHistoricoMedicaoIndividualizada = fachada.consultarHistoricoMedicaoIndividualizada(imovelCondominio, anoMesFaturamentoInformado, tipoLigacao); Collection colecaoConsultarHistoricoMedicaoIndivCondominio = new ArrayList(); for (Iterator iterator = colecaoConsultarHistoricoMedicaoIndividualizada.iterator(); iterator.hasNext();) { ConsultarHistoricoMedicaoIndividualizadaHelper consultarHistoricoMedCond = (ConsultarHistoricoMedicaoIndividualizadaHelper) iterator.next(); colecaoConsultarHistoricoMedicaoIndivCondominio.add(consultarHistoricoMedCond); colecaoConsultarHistoricoMedicaoIndividualizada.remove(consultarHistoricoMedCond); break; } if (colecaoConsultarHistoricoMedicaoIndividualizada != null && !colecaoConsultarHistoricoMedicaoIndividualizada.isEmpty()) { consultarHistoricoMedicaoIndividualizadaActionForm.setQuantidadeImoveisVinculados(colecaoConsultarHistoricoMedicaoIndividualizada.size() + ""); } else { consultarHistoricoMedicaoIndividualizadaActionForm.setQuantidadeImoveisVinculados("0"); } Collection dadosImovel = new ArrayList(); dadosImovel.add(imovelCondominio); sessao.setAttribute("colecaoConsultarHistoricoMedicaoIndividualizada", colecaoConsultarHistoricoMedicaoIndividualizada); sessao.setAttribute("colecaoConsultarHistoricoMedicaoIndivCondominio", colecaoConsultarHistoricoMedicaoIndivCondominio); sessao.setAttribute("dadosImovel", dadosImovel); } } } } else { FiltroLigacaoTipo filtroLigacaoTipo = new FiltroLigacaoTipo(); Collection colecaoLigacaoTipo = fachada.pesquisar(filtroLigacaoTipo,LigacaoTipo.class.getName()); sessao.setAttribute("colecaoLigacaoTipo",colecaoLigacaoTipo); consultarHistoricoMedicaoIndividualizadaActionForm.reset(actionMapping, httpServletRequest); consultarHistoricoMedicaoIndividualizadaActionForm.setIdTipoLigacao(ConstantesSistema.NUMERO_NAO_INFORMADO + ""); if (sessao.getAttribute("colecaoConsultarHistoricoMedicaoIndividualizada") != null) { sessao.removeAttribute("colecaoConsultarHistoricoMedicaoIndividualizada"); } if (sessao.getAttribute("dadosImovel") != null) { sessao.removeAttribute("dadosImovel"); } } return retorno; } }