package gcom.gui.micromedicao; 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.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.micromedicao.ConsumoMinimoArea; import gcom.micromedicao.FiltroConsumoMinimoArea; import gcom.util.ConstantesSistema; 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 javax.servlet.http.HttpSession; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; /** * Descri��o da classe * * @author R�mulo Aur�lio * @date 12/05/2008 */ public class ExibirInformarConsumoAreaAction extends GcomAction { /** * Este caso de uso permite a inclus�o ou altera��o de um novo consumo pela * �rea * * [UC0781] Informar Consumo por �rea * * * @author R�mulo Aur�lio * @date 12/05/2008 * * @param actionMapping * @param actionForm * @param httpServletRequest * @param httpServletResponse * @return */ public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { ActionForward retorno = actionMapping .findForward("exibirInformarConsumoArea"); Fachada fachada = Fachada.getInstancia(); HttpSession sessao = httpServletRequest.getSession(false); InformarConsumoAreaActionForm form = (InformarConsumoAreaActionForm) actionForm; this.carregarDadosTela(fachada, httpServletRequest, sessao, form); if (httpServletRequest.getParameter("consultar") != null) { String ano = form.getMesAnoReferencia().substring(3, 7); String mes = form.getMesAnoReferencia().substring(0, 2); String anoMesInformado = ano + mes; this.pesquisarConsumoMinimoArea(form, anoMesInformado, sessao, fachada, httpServletRequest); } if (httpServletRequest.getParameter("desfazer") != null && httpServletRequest.getParameter("desfazer") .equalsIgnoreCase("S")) { // -------------- bt DESFAZER --------------- form.setMesAnoReferencia(""); form.setCategoria("-1"); form.setSubCategoria("-1"); sessao.setAttribute("colecaoConsumoMinimoArea", new ArrayList()); // ------------- bt DESFAZER --------------- } // --------------Remover ConsumoMinimoArea------------- if (httpServletRequest.getParameter("remover") != null) { httpServletRequest.setAttribute("adicionar", true); httpServletRequest.setAttribute("informar", true); Collection colecaoConsumoMinimoArea = (Collection) sessao .getAttribute("colecaoConsumoMinimoArea"); if (colecaoConsumoMinimoArea != null && !colecaoConsumoMinimoArea.isEmpty()) { int posicao = new Integer(httpServletRequest .getParameter("remover")).intValue(); int index = 0; Iterator colecaoConsumoMinimoAreaIterator = colecaoConsumoMinimoArea .iterator(); while (colecaoConsumoMinimoAreaIterator.hasNext()) { index++; ConsumoMinimoArea consumoMinimoArea = (ConsumoMinimoArea) colecaoConsumoMinimoAreaIterator .next(); if (index == posicao) { colecaoConsumoMinimoArea.remove(consumoMinimoArea); sessao.setAttribute("colecaoConsumoMinimoArea", colecaoConsumoMinimoArea); break; } } } } // --------------Remover ConsumoMinimoArea------------- return retorno; } void pesquisarConsumoMinimoArea(InformarConsumoAreaActionForm form, String anoMesInformado, HttpSession sessao, Fachada fachada, HttpServletRequest httpServletRequest) { Collection colecaoConsumoMinimoArea; sessao.removeAttribute("colecaoConsumoMinimoArea"); sessao.setAttribute("categoria", form.getCategoria()); sessao.setAttribute("subCategoria", form.getSubCategoria()); sessao.setAttribute("mesAnoReferencia", form.getMesAnoReferencia()); Integer anoMesInformadoInteiro = new Integer(anoMesInformado); Integer qtde; /** * [FS0005] - Validar ano maior ou igual */ qtde = fachada .pesquisarAnoMesReferenciaMenorAnoMesReferenciaFaturamentoGrupo(anoMesInformadoInteiro .intValue()); if (qtde == 0) { httpServletRequest.removeAttribute("adicionar"); httpServletRequest.removeAttribute("informar"); } else { httpServletRequest.setAttribute("adicionar", true); //httpServletRequest.setAttribute("informar", true); } /** * [FS0005] - FIM- Validar ano maior ou igual */ FiltroConsumoMinimoArea filtroConsumoMinimoArea = new FiltroConsumoMinimoArea(); filtroConsumoMinimoArea.adicionarParametro(new ParametroSimples( FiltroConsumoMinimoArea.ANO_MES_REFERENCIA, anoMesInformadoInteiro)); filtroConsumoMinimoArea.adicionarParametro(new ParametroSimples( FiltroConsumoMinimoArea.CATEGORIA, form.getCategoria())); filtroConsumoMinimoArea.adicionarParametro(new ParametroSimples( FiltroConsumoMinimoArea.SUBCATEGORIA, form.getSubCategoria())); filtroConsumoMinimoArea.adicionarParametro(new ParametroSimples( FiltroConsumoMinimoArea.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); filtroConsumoMinimoArea.setCampoOrderBy(FiltroConsumoMinimoArea.NUMERO_AREA_FINAL); filtroConsumoMinimoArea .adicionarCaminhoParaCarregamentoEntidade(FiltroConsumoMinimoArea.CATEGORIA); filtroConsumoMinimoArea .adicionarCaminhoParaCarregamentoEntidade(FiltroConsumoMinimoArea.SUBCATEGORIA); colecaoConsumoMinimoArea = fachada.pesquisar(filtroConsumoMinimoArea, ConsumoMinimoArea.class.getName()); if ((colecaoConsumoMinimoArea == null) || (colecaoConsumoMinimoArea.isEmpty())) { colecaoConsumoMinimoArea = new ArrayList(); } sessao.setAttribute("colecaoConsumoMinimoArea", colecaoConsumoMinimoArea); Collection colecaoConsumoMinimoAreaBase = fachada.pesquisar(filtroConsumoMinimoArea, ConsumoMinimoArea.class.getName()); if ((colecaoConsumoMinimoArea == null) || (colecaoConsumoMinimoArea.isEmpty())) { colecaoConsumoMinimoArea = new ArrayList(); } sessao.setAttribute("colecaoConsumoMinimoAreaBase", colecaoConsumoMinimoAreaBase); } void carregarDadosTela(Fachada fachada, HttpServletRequest httpServletRequest, HttpSession sessao, InformarConsumoAreaActionForm form) { FiltroCategoria filtroCategoria = new FiltroCategoria(); filtroCategoria.setCampoOrderBy(FiltroCategoria.DESCRICAO); // Verifica se os dados foram informados da tabela existem e joga numa // colecao Collection<Categoria> colecaoCategoria = fachada.pesquisar( filtroCategoria, Categoria.class.getName()); if (colecaoCategoria == null || colecaoCategoria.isEmpty()) { throw new ActionServletException( "atencao.entidade_sem_dados_para_selecao", null, "Categoria"); } httpServletRequest.setAttribute("colecaoCategoria", colecaoCategoria); Collection<Subcategoria> colecaoSubcategoria = new ArrayList(); if (form.getCategoria() != null) { if (!form.getCategoria().equalsIgnoreCase("-1")) { FiltroSubCategoria filtroSubcategoria = new FiltroSubCategoria(); filtroSubcategoria.adicionarParametro(new ParametroSimples( FiltroSubCategoria.CATEGORIA_ID, form.getCategoria())); filtroSubcategoria .setCampoOrderBy(FiltroSubCategoria.DESCRICAO); // Verifica se os dados foram informados da tabela existem e // joga // numa // colecao colecaoSubcategoria = fachada.pesquisar(filtroSubcategoria, Subcategoria.class.getName()); if (colecaoSubcategoria == null || colecaoSubcategoria.isEmpty()) { throw new ActionServletException( "atencao.entidade_sem_dados_para_selecao", null, "Subcategoria"); } } } httpServletRequest.setAttribute("colecaoSubcategoria", colecaoSubcategoria); Collection<ConsumoMinimoArea> colecaoConsumoMinimoArea; if (sessao.getAttribute("colecaoConsumoMinimoArea") != null) { colecaoConsumoMinimoArea = (Collection) sessao .getAttribute("colecaoConsumoMinimoArea"); } else { colecaoConsumoMinimoArea = new ArrayList(); } sessao.setAttribute("colecaoConsumoMinimoArea", colecaoConsumoMinimoArea); if(sessao.getAttribute("adicionar")!= null){ httpServletRequest.setAttribute("adicionar",true); } if(sessao.getAttribute("informar")!= null){ httpServletRequest.setAttribute("informar",true); } } }