package gcom.gui.atendimentopublico.registroatendimento; import gcom.atendimentopublico.registroatendimento.FiltroSolicitacaoTipo; import gcom.atendimentopublico.registroatendimento.FiltroSolicitacaoTipoEspecificacao; import gcom.atendimentopublico.registroatendimento.SolicitacaoTipo; import gcom.atendimentopublico.registroatendimento.SolicitacaoTipoEspecificacao; import gcom.cadastro.localidade.FiltroLocalidade; import gcom.cadastro.localidade.Localidade; 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.ConstantesSistema; import gcom.util.Util; 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; /** * [UC1091] Informar Associa��o de Localidade com Especifica��o e Unidade * * @author Hugo Leonardo * * @date 29/11/2010 */ public class ExibirAssociarLocalidadeComEspecificacaoUnidadePopUpAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { // Seta o mapeamento de retorno ActionForward retorno = actionMapping.findForward("exibirAssociarLocalidadeComEspecificacaoUnidadePopUpAction"); HttpSession sessao = httpServletRequest.getSession(false); // Form ExibirInserirAssociacaoLocalidadeComEspecificacaoUnidadeActionForm form = (ExibirInserirAssociacaoLocalidadeComEspecificacaoUnidadeActionForm) actionForm; String tipoConsulta = httpServletRequest.getParameter("tipoConsulta"); String idUnidade = httpServletRequest.getParameter("idCampoEnviarDados"); String nomeUnidade = httpServletRequest.getParameter("descricaoCampoEnviarDados"); String consulta = httpServletRequest.getParameter("consulta"); String idLocalidade = httpServletRequest.getParameter("idLocalidade"); if(idLocalidade != null && !idLocalidade.equals("")){ FiltroLocalidade filtroLocalidade = new FiltroLocalidade(); filtroLocalidade.adicionarParametro(new ParametroSimples( FiltroLocalidade.ID, idLocalidade)); Collection<Localidade> localidadePesquisada = Fachada.getInstancia().pesquisar( filtroLocalidade, Localidade.class.getName()); if (localidadePesquisada != null && !localidadePesquisada.isEmpty()) { Localidade localidade = (Localidade) Util.retonarObjetoDeColecao(localidadePesquisada); form.setIdLocalidade("" + localidade.getId()); form.setNomeLocalidade( localidade.getDescricao()); } } if(tipoConsulta != null && tipoConsulta.equals("unidadeOrganizacional") && Util.verificarNaoVazio(idUnidade) && Util.verificarNaoVazio(nomeUnidade)){ form.setIdUnidadeAtendimento(idUnidade); form.setNomeUnidadeAtendimento(nomeUnidade); } // pesquisa Unidade de Atendimento if(Util.verificarNaoVazio(form.getIdUnidadeAtendimento())){ this.pesquisarUnidadeAtendimento(httpServletRequest, form); } // pesquisa Tipo Solicita��o if(sessao.getAttribute("colecaoTipoSolicitacao") == null){ this.pesquisarTipoSolicitacao(httpServletRequest, sessao); } // pesquisa Tipo Especifica��o if(consulta != null && consulta.equals("especificacao") && form.getIdTipoSolicitacao() != null && !form.getIdTipoSolicitacao().equals("") && !form.getIdTipoSolicitacao().equals("-1") ){ this.pesquisarSolicitacaoTipoEspecificacao(sessao, form); } return retorno; } /** * Pesquisar Solicita��o Tipo * * @author Hugo Leonardo * @date 29/11/2010 */ private void pesquisarTipoSolicitacao(HttpServletRequest httpServletRequest, HttpSession sessao) { FiltroSolicitacaoTipo filtroSolicitacaoTipo = new FiltroSolicitacaoTipo(); filtroSolicitacaoTipo.setConsultaSemLimites(true); filtroSolicitacaoTipo.setCampoOrderBy(FiltroSolicitacaoTipo.DESCRICAO); filtroSolicitacaoTipo.adicionarParametro( new ParametroSimples( FiltroSolicitacaoTipo.INDICADOR_USO, ConstantesSistema.SIM)); Collection colecaoTipoSolicitacao = Fachada.getInstancia().pesquisar( filtroSolicitacaoTipo, SolicitacaoTipo.class.getName()); if (colecaoTipoSolicitacao == null || colecaoTipoSolicitacao.isEmpty()) { throw new ActionServletException("atencao.naocadastrado", null, "Solicita��o Tipo"); } else { sessao.setAttribute("colecaoTipoSolicitacao", colecaoTipoSolicitacao); } } /** * Pesquisar Solicita��o Tipo Especifica��o * * @author Hugo Leonardo * @date 29/11/2010 */ private void pesquisarSolicitacaoTipoEspecificacao(HttpSession sessao, ExibirInserirAssociacaoLocalidadeComEspecificacaoUnidadeActionForm form) { FiltroSolicitacaoTipoEspecificacao filtroSolicitacaoTipoEspecificacao = new FiltroSolicitacaoTipoEspecificacao(); filtroSolicitacaoTipoEspecificacao.setConsultaSemLimites(true); filtroSolicitacaoTipoEspecificacao.adicionarParametro(new ParametroSimples( FiltroSolicitacaoTipoEspecificacao.SOLICITACAO_TIPO_ID, form.getIdTipoSolicitacao())); filtroSolicitacaoTipoEspecificacao.adicionarParametro( new ParametroSimples( FiltroSolicitacaoTipoEspecificacao.INDICADOR_USO, ConstantesSistema.SIM)); Collection colecaoSolicitacaoTipoEspecificacao = Fachada.getInstancia().pesquisar( filtroSolicitacaoTipoEspecificacao, SolicitacaoTipoEspecificacao.class.getName()); if (colecaoSolicitacaoTipoEspecificacao == null || colecaoSolicitacaoTipoEspecificacao.isEmpty()) { throw new ActionServletException("atencao.naocadastrado", null, "Solicita��o Tipo Especifica��o"); } else { sessao.setAttribute("colecaoSolicitacaoTipoEspecificacao", colecaoSolicitacaoTipoEspecificacao); } } /** * Pesquisar Unidade Atendimento * * @author Hugo Leonardo * @date 29/11/2010 */ private void pesquisarUnidadeAtendimento(HttpServletRequest httpServletRequest, ExibirInserirAssociacaoLocalidadeComEspecificacaoUnidadeActionForm form) { FiltroUnidadeOrganizacional filtroUnidadeOrganizacional = new FiltroUnidadeOrganizacional(); filtroUnidadeOrganizacional.adicionarParametro(new ParametroSimples( FiltroUnidadeOrganizacional.ID, form.getIdUnidadeAtendimento())); filtroUnidadeOrganizacional.adicionarParametro(new ParametroSimples( FiltroUnidadeOrganizacional.INDICADOR_USO, ConstantesSistema.SIM)); filtroUnidadeOrganizacional.adicionarParametro(new ParametroSimples( FiltroUnidadeOrganizacional.INDICADOR_TRAMITE, ConstantesSistema.SIM)); Collection<UnidadeOrganizacional> unidadePesquisada = Fachada.getInstancia().pesquisar( filtroUnidadeOrganizacional, UnidadeOrganizacional.class.getName()); if (unidadePesquisada != null && !unidadePesquisada.isEmpty()) { UnidadeOrganizacional unidadeOrganizacional = (UnidadeOrganizacional) Util.retonarObjetoDeColecao(unidadePesquisada); form.setIdUnidadeAtendimento("" + unidadeOrganizacional.getId()); form.setNomeUnidadeAtendimento( unidadeOrganizacional.getDescricao()); } else { form.setIdUnidadeAtendimento(""); form.setNomeUnidadeAtendimento("UNIDADE ATENDIMENTO INEXISTENTE"); httpServletRequest.setAttribute("unidadeAtendimentoInexistente",true); httpServletRequest.setAttribute("nomeCampo", "idUnidadeAtendimento"); } } }