package gcom.gui.faturamento.consumotarifa; import gcom.cadastro.imovel.Categoria; import gcom.cadastro.imovel.FiltroCategoria; import gcom.cadastro.imovel.FiltroSubCategoria; import gcom.cadastro.imovel.Subcategoria; import gcom.fachada.Fachada; import gcom.faturamento.consumotarifa.ConsumoTarifaFaixa; import gcom.faturamento.consumotarifa.FiltroConsumoTarifaFaixa; import gcom.gui.GcomAction; import gcom.gui.faturamento.consumotarifa.bean.CategoriaFaixaConsumoTarifaHelper; import gcom.util.ConstantesSistema; import gcom.util.Util; import gcom.util.filtro.ParametroSimples; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.Comparator; 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 ExibirManterCategoriaConsumoTarifaSubCategoriaAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { // Seta o mapeamento de retorno ActionForward retorno = actionMapping .findForward("manterCategoriaConsumoTarifaSubCategoria"); Fachada fachada = Fachada.getInstancia(); // Mudar isso quando tiver esquema de seguran�a HttpSession sessao = httpServletRequest.getSession(false); // ----------------FILTRO CATEGORIAS DE ESTABELECIMENTO - PROPULAR // DROPDOWN ------ CategoriaFaixaConsumoTarifaHelper categoriaFaixaConsumoTarifaHelperAtualizacao = null; if ("sim".equals(httpServletRequest.getParameter("trava"))) { httpServletRequest.setAttribute("travar", "true"); sessao.setAttribute("trava", "sim"); sessao.setAttribute("novaCategoria", "nao"); } else if((httpServletRequest.getParameter("trava") != null) && !("sim".equals(httpServletRequest.getParameter("trava"))) ){ httpServletRequest.setAttribute("travar", "false"); sessao.setAttribute("novaCategoria", "sim"); } if (sessao.getAttribute("p1") != null){ sessao.removeAttribute("p1"); } if (sessao.getAttribute("p2") != null){ sessao.removeAttribute("p2"); } if (sessao.getAttribute("p3") != null){ sessao.removeAttribute("p3"); } if (httpServletRequest.getParameter("posicao") != null && !httpServletRequest.getParameter("posicao").equalsIgnoreCase("")) { categoriaFaixaConsumoTarifaHelperAtualizacao = pesquisarPosicaoCategoria( Long.parseLong(httpServletRequest.getParameter("posicao")), (Collection) sessao.getAttribute("colecaoCategoria")); sessao.setAttribute("categoriaFaixaConsumoTarifaHelperAtualizacao", categoriaFaixaConsumoTarifaHelperAtualizacao); sessao.setAttribute("p1", httpServletRequest.getParameter("posicao")); sessao.setAttribute("p2", httpServletRequest.getParameter("idCategoriaEscolhida")); sessao.setAttribute("p3", httpServletRequest.getParameter("idSubCategoria")); } if (httpServletRequest.getAttribute("parametroVigencia") != null) { String Vigencia = (String) httpServletRequest .getAttribute("parametroVigencia"); sessao.setAttribute("Vigencia", Vigencia); } FiltroCategoria filtroCategoria = new FiltroCategoria(); //FiltroConsumoTarifaCategoria filtroConsumoTarifaCategoria = new FiltroConsumoTarifaCategoria(); InserirCategoriaConsumoTarifaActionForm inserirCategoriaConsumoTarifaActionForm = new InserirCategoriaConsumoTarifaActionForm(); if ((sessao.getAttribute("valorMinimo") != null) && (!sessao.getAttribute("valorMinimo").equals(""))) { inserirCategoriaConsumoTarifaActionForm .setValorTarifaMinima((String) sessao .getAttribute("valorMinimo")); } if ((sessao.getAttribute("consumoMinimo") != null) && (!sessao.getAttribute("consumoMinimo").equals(""))) { inserirCategoriaConsumoTarifaActionForm .setConsumoMinimo((String) sessao .getAttribute("consumoMinimo")); } filtroCategoria.adicionarParametro(new ParametroSimples( FiltroCategoria.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); filtroCategoria.setCampoOrderBy(FiltroCategoria.DESCRICAO); if (categoriaFaixaConsumoTarifaHelperAtualizacao != null) { inserirCategoriaConsumoTarifaActionForm .setSlcCategoria("" + categoriaFaixaConsumoTarifaHelperAtualizacao .getConsumoTarifaCategoria().getCategoria() .getId()); inserirCategoriaConsumoTarifaActionForm.setConsumoMinimo("" + categoriaFaixaConsumoTarifaHelperAtualizacao .getConsumoTarifaCategoria() .getNumeroConsumoMinimo()); inserirCategoriaConsumoTarifaActionForm .setValorTarifaMinima(Util .formatarMoedaReal(categoriaFaixaConsumoTarifaHelperAtualizacao .getConsumoTarifaCategoria() .getValorTarifaMinima())); if (categoriaFaixaConsumoTarifaHelperAtualizacao.getColecaoFaixas() == null || categoriaFaixaConsumoTarifaHelperAtualizacao .getColecaoFaixas().isEmpty()) { FiltroConsumoTarifaFaixa filtroConsumoTarifaFaixa = new FiltroConsumoTarifaFaixa(); filtroConsumoTarifaFaixa .adicionarParametro(new ParametroSimples( FiltroConsumoTarifaFaixa.CONSUMO_TARIFA_CATEGORIA_ID, categoriaFaixaConsumoTarifaHelperAtualizacao .getConsumoTarifaCategoria().getId())); Collection colecaoFaixa = fachada.pesquisar( filtroConsumoTarifaFaixa, ConsumoTarifaFaixa.class .getName()); List listColecaoFaixa = new ArrayList(); listColecaoFaixa.addAll(colecaoFaixa); Collections.sort((List) listColecaoFaixa, new Comparator() { public int compare(Object a, Object b) { Integer codigo1 = ((ConsumoTarifaFaixa) a) .getNumeroConsumoFaixaFim(); Integer codigo2 = ((ConsumoTarifaFaixa) b) .getNumeroConsumoFaixaFim(); return codigo1.compareTo(codigo2); } }); sessao.setAttribute("colecaoFaixa", listColecaoFaixa); } else { Collection colecaoFaixa = categoriaFaixaConsumoTarifaHelperAtualizacao .getColecaoFaixas(); List listColecaoFaixa = new ArrayList(); listColecaoFaixa.addAll(colecaoFaixa); Collections.sort(listColecaoFaixa, new Comparator() { public int compare(Object a, Object b) { Integer codigo1 = ((ConsumoTarifaFaixa) a) .getNumeroConsumoFaixaFim(); Integer codigo2 = ((ConsumoTarifaFaixa) b) .getNumeroConsumoFaixaFim(); return codigo1.compareTo(codigo2); } }); sessao.setAttribute("colecaoFaixa", listColecaoFaixa); } } sessao.setAttribute("InserirCategoriaConsumoTarifaActionForm", inserirCategoriaConsumoTarifaActionForm); Collection colecaoCategoriaLista = fachada.pesquisar(filtroCategoria, Categoria.class.getName()); sessao.setAttribute("colecaoCategoriaLista", colecaoCategoriaLista); String idCategoria = ""; if (httpServletRequest.getParameter("idCategoriaEscolhida") != null) { idCategoria = httpServletRequest.getParameter("idCategoriaEscolhida"); } else if (httpServletRequest.getParameter("idCategoria") != null){ idCategoria = httpServletRequest.getParameter("idCategoria"); } if (idCategoria != null && !idCategoria.equals("")){ FiltroSubCategoria filtroSubCategoria = new FiltroSubCategoria(); filtroSubCategoria.adicionarParametro(new ParametroSimples( FiltroSubCategoria.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); filtroSubCategoria.adicionarParametro(new ParametroSimples( FiltroSubCategoria.CATEGORIA_ID, idCategoria)); filtroSubCategoria.adicionarCaminhoParaCarregamentoEntidade("categoria"); filtroSubCategoria.setCampoOrderBy(FiltroSubCategoria.DESCRICAO); Collection colecaoSubCategoriaLista = fachada.pesquisar(filtroSubCategoria, Subcategoria.class.getName()); sessao.setAttribute("colecaoSubCategoriaLista", colecaoSubCategoriaLista); } if (!idCategoria.equalsIgnoreCase("")){ inserirCategoriaConsumoTarifaActionForm.setSlcCategoria(idCategoria); } if (inserirCategoriaConsumoTarifaActionForm.getSlcSubCategoria() != null && !inserirCategoriaConsumoTarifaActionForm.getSlcSubCategoria().equalsIgnoreCase("-1")){ inserirCategoriaConsumoTarifaActionForm.setSlcSubCategoria( inserirCategoriaConsumoTarifaActionForm.getSlcSubCategoria()); } else if (httpServletRequest.getParameter("idSubCategoria") != null){ inserirCategoriaConsumoTarifaActionForm.setSlcSubCategoria( httpServletRequest.getParameter("idSubCategoria")); } if ((httpServletRequest.getParameter("limpa") != null) && (httpServletRequest.getParameter("limpa").equals("1"))) { sessao.removeAttribute("InserirCategoriaConsumoTarifaActionForm"); sessao.removeAttribute("valorMinimo"); sessao.removeAttribute("consumoMinimo"); sessao.removeAttribute("colecaoFaixa"); sessao.setAttribute("novaCategoria", "sim"); inserirCategoriaConsumoTarifaActionForm.setSlcCategoria("-1"); inserirCategoriaConsumoTarifaActionForm.setSlcSubCategoria("-1"); sessao.removeAttribute("subcategoriaSelected"); sessao.removeAttribute("categoriaSelected"); sessao.removeAttribute("colecaoSubCategoriaLista"); } return retorno; } private CategoriaFaixaConsumoTarifaHelper pesquisarPosicaoCategoria( long posicao, Collection colecaoCategoriaSessao) { CategoriaFaixaConsumoTarifaHelper retorno = null; if (colecaoCategoriaSessao != null) { Iterator colecaoConsumoTarifaCategoriaIterator = colecaoCategoriaSessao .iterator(); while (colecaoConsumoTarifaCategoriaIterator.hasNext()) { CategoriaFaixaConsumoTarifaHelper categoriaFaixaConsumoTarifaHelper = (CategoriaFaixaConsumoTarifaHelper) colecaoConsumoTarifaCategoriaIterator .next(); if (obterTimestampIdObjeto(categoriaFaixaConsumoTarifaHelper .getConsumoTarifaCategoria()) == posicao) { retorno = categoriaFaixaConsumoTarifaHelper; break; } } } return retorno; } }