package gcom.gui.faturamento; import gcom.fachada.Fachada; import gcom.faturamento.FaturamentoAtividade; import gcom.faturamento.FaturamentoGrupo; import gcom.faturamento.FiltroFaturamentoAtividade; import gcom.faturamento.FiltroFaturamentoGrupo; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.util.ConstantesSistema; import gcom.util.Util; import gcom.util.filtro.ParametroSimples; 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; public class ExibirRotasNaoHabilitadasAction extends GcomAction { /** * * @param actionMapping * @param actionForm * @param httpServletRequest * @param httpServletResponse * @return */ public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { //Seta o mapeamento de retorno ActionForward retorno = actionMapping .findForward("exibirRotasNaoHabilitadas"); //Carrega a instancia da fachada Fachada fachada = Fachada.getInstancia(); //Carrega o objeto sessao HttpSession sessao = httpServletRequest.getSession(false); Collection colecaoFaturamentoGrupo; // Grupo de faturamento (Carregar cole��o) // [FS0001] - Verificar exist�ncia de dados if (sessao.getAttribute("colecaoGrupoFaturamento") == null) { FiltroFaturamentoGrupo filtroFaturamentoGrupo = new FiltroFaturamentoGrupo( FiltroFaturamentoGrupo.DESCRICAO); colecaoFaturamentoGrupo = fachada.pesquisar(filtroFaturamentoGrupo, FaturamentoGrupo.class.getName()); if (colecaoFaturamentoGrupo == null || colecaoFaturamentoGrupo.isEmpty()) { throw new ActionServletException( "atencao.pesquisa.nenhum_registro_tabela", null, "FATURAMENTO_GRUPO"); } else { sessao.setAttribute("colecaoGrupoFaturamento", colecaoFaturamentoGrupo); } } else { colecaoFaturamentoGrupo = (Collection) sessao .getAttribute("colecaoGrupoFaturamento"); } // Grupo selecionado String grupoFaturamentoJSP = httpServletRequest.getParameter("grupo"); // Atividade selecionado String atividadeFaturamentoJSP = httpServletRequest .getParameter("atividade"); FaturamentoGrupo faturamentoGrupo = obterFaturamentoGrupoSelecionado( grupoFaturamentoJSP, colecaoFaturamentoGrupo); // Lista as rotas "n�o habilitadas" do grupo // [FS0006] - Verificar exist�ncia de rotas para o grupo Collection colecaoRotasGrupo = fachada .verificarExistenciaRotaGrupo(faturamentoGrupo); //Obter objeto FaturamentoAtividade a partir do ID ------------------- FiltroFaturamentoAtividade filtroFaturamentoAtividade = new FiltroFaturamentoAtividade(); filtroFaturamentoAtividade.adicionarParametro(new ParametroSimples( FiltroFaturamentoAtividade.ID, atividadeFaturamentoJSP)); filtroFaturamentoAtividade.adicionarParametro(new ParametroSimples( FiltroFaturamentoAtividade.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); Collection colecaoFaturamentoAtividade = fachada.pesquisar( filtroFaturamentoAtividade, FaturamentoAtividade.class .getName()); FaturamentoAtividade faturamentoAtividade = (FaturamentoAtividade) Util .retonarObjetoDeColecao(colecaoFaturamentoAtividade); //-------------------------------------------------------------------- //[SB0002] - Verificar Situa��o da Atividade para a Rota Collection colecaoRotasSituacao = fachada .verificarSituacaoAtividadeRota(colecaoRotasGrupo, faturamentoAtividade, faturamentoGrupo, false); //[FS0007] - Verificar sele��o de pelo menos uma rota habilitada if (colecaoRotasSituacao == null || colecaoRotasSituacao.isEmpty()) { throw new ActionServletException( "atencao.pesquisa.nenhuma.rota_nao_habilitada_grupo"); } // Passa a colecao de rotas n�o habilitadas pela sess�o (Motivo: // pagina��o) httpServletRequest.setAttribute("colecaoRotasNaoHabilitadas", colecaoRotasSituacao); return retorno; } /** * Retorna o objeto FaturamentoGrupo selecionado * * @param id * @param colecao * @return */ private FaturamentoGrupo obterFaturamentoGrupoSelecionado(String id, Collection colecao) { FaturamentoGrupo retorno = null; Iterator colecaoIterator = colecao.iterator(); while (colecaoIterator.hasNext()) { retorno = (FaturamentoGrupo) colecaoIterator.next(); if (retorno.getId().equals(new Integer(id))) { break; } } return retorno; } }