package gcom.gui.atendimentopublico.ordemservico; import gcom.atendimentopublico.ordemservico.Equipe; import gcom.atendimentopublico.ordemservico.FiltroEquipe; import gcom.atendimentopublico.ordemservico.FiltroServicoPerfilTipo; import gcom.atendimentopublico.ordemservico.ServicoPerfilTipo; import gcom.cadastro.unidade.FiltroUnidadeOrganizacional; import gcom.cadastro.unidade.UnidadeOrganizacional; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; 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; /** * Exibe a pesquisa de equipe * * @author Leonardo Regis * @date 31/07/2006 */ public class ExibirPesquisarEquipeAction extends GcomAction { /** * Efetua pesquisa de equipe * * [UC0377] Pesquisar Equipe * * * @author Leonardo Regis * @date 31/07/2006 * * @param actionMapping * @param actionForm * @param httpServletRequest * @param httpServletResponse * @return */ public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { HttpSession sessao = httpServletRequest.getSession(false); PesquisarEquipeActionForm pesquisarEquipeActionForm = (PesquisarEquipeActionForm) actionForm; ActionForward retorno = actionMapping.findForward("equipePesquisar"); Fachada fachada = Fachada.getInstancia(); // Filtro Unidade Organizacional if (pesquisarEquipeActionForm.getUnidadeOrganizacionalId() != null && !pesquisarEquipeActionForm.getUnidadeOrganizacionalId().trim().equals("")) { getUnidadeOrganizacional(pesquisarEquipeActionForm, fachada); } //Filtro Tipo Perfil if (pesquisarEquipeActionForm.getTipoPerfilServicoId() != null && !pesquisarEquipeActionForm.getTipoPerfilServicoId().trim().equals("")) { getTipoPerfilServico(pesquisarEquipeActionForm, fachada); } // Equipe FiltroEquipe filtroEquipe = new FiltroEquipe(); Collection<Equipe> colecaoEquipe = fachada.pesquisar(filtroEquipe, Equipe.class.getName()); if (colecaoEquipe == null || colecaoEquipe.isEmpty()) { throw new ActionServletException("atencao.entidade_sem_dados_para_selecao", null,"Equipe"); } httpServletRequest.setAttribute("colecaoEquipe", colecaoEquipe); if (httpServletRequest.getParameter("caminhoRetornoTelaPesquisa") != null) { sessao.setAttribute("caminhoRetornoTelaPesquisaEquipe", httpServletRequest.getParameter("caminhoRetornoTelaPesquisa")); } return retorno; } /** * Recupera Tipo Perfil Servi�o * * @author Leonardo Regis * @date 01/08/2006 * * @param pesquisarEquipeActionForm * @param equipeComponentes */ private void getTipoPerfilServico(PesquisarEquipeActionForm pesquisarEquipeActionForm, Fachada fachada) { // [F0002] Valida Tipo Perfil Servi�o if (isValidateTipoPerfilServico(pesquisarEquipeActionForm)) { // Filtra FiltroServicoPerfilTipo filtroServicoPerfilTipo = new FiltroServicoPerfilTipo(); filtroServicoPerfilTipo.adicionarParametro(new ParametroSimples(FiltroServicoPerfilTipo.ID, pesquisarEquipeActionForm.getTipoPerfilServicoId())); // Recupera Collection colecaoServicoPerfilTipo = fachada.pesquisar(filtroServicoPerfilTipo, ServicoPerfilTipo.class.getName()); if (colecaoServicoPerfilTipo != null && !colecaoServicoPerfilTipo.isEmpty()) { ServicoPerfilTipo servicoPerfilTipo = (ServicoPerfilTipo) colecaoServicoPerfilTipo.iterator().next(); pesquisarEquipeActionForm.setTipoPerfilServicoDescricao(servicoPerfilTipo.getDescricao()); } else { pesquisarEquipeActionForm.setTipoPerfilServicoDescricao("Tipo Perfil Servi�o inexistente"); } pesquisarEquipeActionForm.setValidaTipoPerfilServico("false"); } } /** * Recupera Unidade Organizacional * * @author Leonardo Regis * @date 01/08/2006 * * @param pesquisarEquipeActionForm * @param equipeComponentes */ private void getUnidadeOrganizacional(PesquisarEquipeActionForm pesquisarEquipeActionForm, Fachada fachada) { // [F0001] Valida Unidade Organizacional if (isValidateUnidadeOrganizacional(pesquisarEquipeActionForm)) { // Filtra Unidade Organizacional FiltroUnidadeOrganizacional filtroUnidadeOrganizacional = new FiltroUnidadeOrganizacional(); filtroUnidadeOrganizacional.adicionarParametro(new ParametroSimples(FiltroUnidadeOrganizacional.ID, pesquisarEquipeActionForm.getUnidadeOrganizacionalId())); // Recupera Unidade Organizacional Collection colecaoUnidadeOrganizacional = fachada.pesquisar(filtroUnidadeOrganizacional, UnidadeOrganizacional.class.getName()); if (colecaoUnidadeOrganizacional != null && !colecaoUnidadeOrganizacional.isEmpty()) { UnidadeOrganizacional unidadeOrganizacional = (UnidadeOrganizacional) colecaoUnidadeOrganizacional.iterator().next(); pesquisarEquipeActionForm.setUnidadeOrganizacionalDescricao(unidadeOrganizacional.getDescricao()); } else { pesquisarEquipeActionForm.setUnidadeOrganizacionalDescricao("Unidade Organizacional inexistente"); } pesquisarEquipeActionForm.setValidaUnidadeOrganizacional("false"); } } /** * * Valida Unidade Organizacional * * @author Leonardo Regis * @date 01/08/2006 * * @return est� validando unidade organizacional? */ private boolean isValidateUnidadeOrganizacional(PesquisarEquipeActionForm form) { boolean toReturn = false; if (form.getValidaUnidadeOrganizacional().equalsIgnoreCase("true")) { toReturn = true; } return toReturn; } /** * * Valida Tipo de Perfil do Servi�o * * @author Leonardo Regis * @date 01/08/2006 * * @return est� validando tipo de perfil do servi�o? */ private boolean isValidateTipoPerfilServico(PesquisarEquipeActionForm form) { boolean toReturn = false; if (form.getValidaTipoPerfilServico().equalsIgnoreCase("true")) { toReturn = true; } return toReturn; } }