package gcom.gui.faturamento; import gcom.fachada.Fachada; import gcom.faturamento.FaturamentoGrupo; import gcom.faturamento.FiltroFaturamentoGrupo; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.util.ConstantesSistema; import gcom.util.Util; import gcom.util.filtro.ComparacaoTexto; import gcom.util.filtro.ComparacaoTextoCompleto; import gcom.util.filtro.ParametroSimples; import java.util.Collection; 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; /** * [UC0771]FILTRAR GRUPO DE FATURAMENTO * * @author Vin�cius Medeiros * @date 23/04/2008 */ public class FiltrarFaturamentoGrupoAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { ActionForward retorno = actionMapping .findForward("exibirManterFaturamentoGrupo"); HttpSession sessao = httpServletRequest.getSession(false); Fachada fachada = Fachada.getInstancia(); FiltrarFaturamentoGrupoActionForm filtrarFaturamentoGrupoActionForm = (FiltrarFaturamentoGrupoActionForm) actionForm; FiltroFaturamentoGrupo filtroFaturamentoGrupo = new FiltroFaturamentoGrupo(); boolean peloMenosUmParametroInformado = false; String id = filtrarFaturamentoGrupoActionForm.getId(); String descricao = filtrarFaturamentoGrupoActionForm.getDescricao(); String descricaoAbreviada = filtrarFaturamentoGrupoActionForm .getDescricaoAbreviada(); String anoMesReferencia = filtrarFaturamentoGrupoActionForm .getAnoMesReferencia(); String diaVencimento = filtrarFaturamentoGrupoActionForm .getDiaVencimento(); String indicadorVencimentoMesFatura = filtrarFaturamentoGrupoActionForm .getIndicadorVencimentoMesFatura(); String indicadorUso = filtrarFaturamentoGrupoActionForm .getIndicadorUso(); String tipoPesquisa = filtrarFaturamentoGrupoActionForm .getTipoPesquisa(); // ID if (id != null && !id.trim().equals("")) { //boolean achou = fachada.verificarExistenciaAgente(new Integer(id)); //if (achou) { peloMenosUmParametroInformado = true; filtroFaturamentoGrupo.adicionarParametro(new ParametroSimples( FiltroFaturamentoGrupo.ID, id)); //} } // Descricao if (descricao != null && !descricao.trim().equalsIgnoreCase("")) { peloMenosUmParametroInformado = true; if (tipoPesquisa != null && tipoPesquisa .equals(ConstantesSistema.TIPO_PESQUISA_COMPLETA .toString())) { filtroFaturamentoGrupo .adicionarParametro(new ComparacaoTextoCompleto( FiltroFaturamentoGrupo.DESCRICAO, descricao)); } else { filtroFaturamentoGrupo.adicionarParametro(new ComparacaoTexto( FiltroFaturamentoGrupo.DESCRICAO, descricao)); } } // Descricao Abreviada if (descricaoAbreviada != null && !descricaoAbreviada.trim().equalsIgnoreCase("")) { peloMenosUmParametroInformado = true; filtroFaturamentoGrupo .adicionarParametro(new ComparacaoTextoCompleto( FiltroFaturamentoGrupo.DESCRICAO_ABREVIADA, descricaoAbreviada)); } else { filtroFaturamentoGrupo.adicionarParametro(new ComparacaoTexto( FiltroFaturamentoGrupo.DESCRICAO_ABREVIADA, descricaoAbreviada)); } // Ano Mes Referencia if(anoMesReferencia != null && !anoMesReferencia.trim().equals("")){ String mes = anoMesReferencia.substring(0, 2); String ano = anoMesReferencia.substring(3, 7); String anoMes = ano+mes; peloMenosUmParametroInformado = true; filtroFaturamentoGrupo.adicionarParametro(new ParametroSimples( FiltroFaturamentoGrupo.ANO_MES_REFERENCIA, anoMes)); } // Dia Vencimento if (diaVencimento != null && !diaVencimento.trim().equalsIgnoreCase("")) { peloMenosUmParametroInformado = true; filtroFaturamentoGrupo.adicionarParametro(new ParametroSimples( FiltroFaturamentoGrupo.DIA_VENCIMENTO, diaVencimento)); } // Indicador Vencimento Mes Fatura if (indicadorVencimentoMesFatura != null && !indicadorVencimentoMesFatura.trim().equals("")) { peloMenosUmParametroInformado = true; filtroFaturamentoGrupo.adicionarParametro(new ParametroSimples( FiltroFaturamentoGrupo.INDICADOR_VENCIMENTO_MES_FATURA, indicadorVencimentoMesFatura)); } // Indicador uso if (indicadorUso != null && !indicadorUso.trim().equals("")) { peloMenosUmParametroInformado = true; filtroFaturamentoGrupo.adicionarParametro(new ParametroSimples( FiltroFaturamentoGrupo.INDICADOR_USO, indicadorUso)); } Collection<FaturamentoGrupo> colecaoFaturamentoGrupo = fachada .pesquisar(filtroFaturamentoGrupo, FaturamentoGrupo.class .getName()); // Verificar a existencia de um Grupo de Faturamento if (colecaoFaturamentoGrupo.isEmpty()) { throw new ActionServletException( "atencao.pesquisa_inexistente", null,"Grupo de Faturamento"); } // Filtragem sem parametros if (!peloMenosUmParametroInformado == true) { throw new ActionServletException( "atencao.filtro.nenhum_parametro_informado"); } // Pesquisa sem registros if (colecaoFaturamentoGrupo == null || colecaoFaturamentoGrupo.isEmpty()) { throw new ActionServletException( "atencao.pesquisa.nenhumresultado", null, "Grupo de Faturamento"); } else { httpServletRequest.setAttribute("colecaoFaturamentoGrupo", colecaoFaturamentoGrupo); FaturamentoGrupo faturamentoGrupo = new FaturamentoGrupo(); faturamentoGrupo = (FaturamentoGrupo) Util .retonarObjetoDeColecao(colecaoFaturamentoGrupo); String idRegistroAtualizacao = faturamentoGrupo.getId().toString(); sessao.setAttribute("idRegistroAtualizacao", idRegistroAtualizacao); } sessao.setAttribute("filtroFaturamentoGrupo", filtroFaturamentoGrupo); httpServletRequest.setAttribute("filtroFaturamentoGrupo", filtroFaturamentoGrupo); return retorno; } }