package gcom.gui.atendimentopublico.registroatendimento; import gcom.atendimentopublico.ordemservico.FiltroServicoTipo; import gcom.atendimentopublico.ordemservico.ServicoTipo; import gcom.atendimentopublico.registroatendimento.EspecificacaoImovelSituacao; import gcom.atendimentopublico.registroatendimento.SolicitacaoTipo; import gcom.atendimentopublico.registroatendimento.SolicitacaoTipoEspecificacao; 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.filtro.ParametroSimples; import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; import java.util.List; 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 22/11/2006 */ public class ExibirAtualizarAdicionarSolicitacaoEspecificacaoTipoServicoAction extends GcomAction { /** * Description of the Method * * @param actionMapping * Description of the Parameter * @param actionForm * Description of the Parameter * @param httpServletRequest * Description of the Parameter * @param httpServletResponse * Description of the Parameter * @return Description of the Return Value */ public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { // Mudar isso quando tiver esquema de seguran�a HttpSession sessao = httpServletRequest.getSession(false); // Set no mapeamento de retorno ActionForward retorno = actionMapping .findForward("atualizarAdicionarSolicitacaoEspecificacaoTipoServico"); AtualizarAdicionarSolicitacaoEspecificacaoActionForm atualizarAdicionarSolicitacaoEspecificacaoActionForm = (AtualizarAdicionarSolicitacaoEspecificacaoActionForm) actionForm; sessao.setAttribute( "atualizarAdicionarSolicitacaoEspecificacaoActionForm", atualizarAdicionarSolicitacaoEspecificacaoActionForm); // Obt�m a inst�ncia da Fachada Fachada fachada = Fachada.getInstancia(); // pega os dados do form para nao ter perdas qdo votarmos a tela // anterior if (sessao.getAttribute("solicitacaoTipoEspecificacao") == null) { SolicitacaoTipoEspecificacao solicitacaoTipoEspecificacao = new SolicitacaoTipoEspecificacao(); if (atualizarAdicionarSolicitacaoEspecificacaoActionForm .getPrazoPrevisaoAtendimento() != null && !atualizarAdicionarSolicitacaoEspecificacaoActionForm .getPrazoPrevisaoAtendimento().equals("")) { // Prazo de previs�o de atendimento solicitacaoTipoEspecificacao.setDiasPrazo(new Integer( atualizarAdicionarSolicitacaoEspecificacaoActionForm .getPrazoPrevisaoAtendimento())); } // Descri��o da especifica��o solicitacaoTipoEspecificacao .setDescricao(atualizarAdicionarSolicitacaoEspecificacaoActionForm .getDescricaoSolicitacao()); // Pavimento de cal�ada obrigat�rio if (atualizarAdicionarSolicitacaoEspecificacaoActionForm .getIndicadorPavimentoCalcada() != null && !atualizarAdicionarSolicitacaoEspecificacaoActionForm .getIndicadorPavimentoCalcada().equals("")) { solicitacaoTipoEspecificacao .setIndicadorPavimentoCalcada(new Short( atualizarAdicionarSolicitacaoEspecificacaoActionForm .getIndicadorPavimentoCalcada())); } // Pavimento de rua obrigat�rio if (atualizarAdicionarSolicitacaoEspecificacaoActionForm .getIndicadorPavimentoRua() != null && !atualizarAdicionarSolicitacaoEspecificacaoActionForm .getIndicadorPavimentoRua().equals("")) { solicitacaoTipoEspecificacao .setIndicadorPavimentoRua(new Short( atualizarAdicionarSolicitacaoEspecificacaoActionForm .getIndicadorPavimentoRua())); } // refere-se a liga��o de agua if (atualizarAdicionarSolicitacaoEspecificacaoActionForm .getIndicadorLigacaoAgua() != null && !atualizarAdicionarSolicitacaoEspecificacaoActionForm .getIndicadorLigacaoAgua().equals("")) { solicitacaoTipoEspecificacao.setIndicadorLigacaoAgua(new Short( atualizarAdicionarSolicitacaoEspecificacaoActionForm .getIndicadorLigacaoAgua())); } // Cobran�a de material if (atualizarAdicionarSolicitacaoEspecificacaoActionForm .getIndicadorCobrancaMaterial() != null && !atualizarAdicionarSolicitacaoEspecificacaoActionForm .getIndicadorCobrancaMaterial().equals("")) { solicitacaoTipoEspecificacao .setIndicadorCobrancaMaterial(new Integer( atualizarAdicionarSolicitacaoEspecificacaoActionForm .getIndicadorCobrancaMaterial())); } // Matricula do im�vel obrigat�rio if (atualizarAdicionarSolicitacaoEspecificacaoActionForm .getIndicadorMatriculaImovel() != null && !atualizarAdicionarSolicitacaoEspecificacaoActionForm .getIndicadorMatriculaImovel().equals("")) { solicitacaoTipoEspecificacao.setIndicadorMatricula(new Integer( atualizarAdicionarSolicitacaoEspecificacaoActionForm .getIndicadorMatriculaImovel())); } // Parecer de encerramento obrigat�rio if (atualizarAdicionarSolicitacaoEspecificacaoActionForm .getIndicadorParecerEncerramento() != null && !atualizarAdicionarSolicitacaoEspecificacaoActionForm .getIndicadorParecerEncerramento().equals("")) { solicitacaoTipoEspecificacao .setIndicadorParecerEncerramento(new Integer( atualizarAdicionarSolicitacaoEspecificacaoActionForm .getIndicadorParecerEncerramento())); } // Gera d�bito if (atualizarAdicionarSolicitacaoEspecificacaoActionForm .getIndicadorGerarDebito() != null && !atualizarAdicionarSolicitacaoEspecificacaoActionForm .getIndicadorGerarDebito().equals("")) { solicitacaoTipoEspecificacao .setIndicadorGeracaoDebito(new Integer( atualizarAdicionarSolicitacaoEspecificacaoActionForm .getIndicadorGerarDebito())); } // Gera Cr�dito if (atualizarAdicionarSolicitacaoEspecificacaoActionForm .getIndicadorGerarCredito() != null && !atualizarAdicionarSolicitacaoEspecificacaoActionForm .getIndicadorGerarCredito().equals("")) { solicitacaoTipoEspecificacao .setIndicadorGeracaoCredito(new Integer( atualizarAdicionarSolicitacaoEspecificacaoActionForm .getIndicadorGerarCredito())); } // Unidade inicial tramita��o if (atualizarAdicionarSolicitacaoEspecificacaoActionForm .getIdUnidadeTramitacao() != null && !atualizarAdicionarSolicitacaoEspecificacaoActionForm .getIdUnidadeTramitacao().equals("")) { // Verifica se o c�digo foi modificado if (atualizarAdicionarSolicitacaoEspecificacaoActionForm .getDescricaoUnidadeTramitacao() == null || atualizarAdicionarSolicitacaoEspecificacaoActionForm .getDescricaoUnidadeTramitacao().trim().equals( "")) { FiltroUnidadeOrganizacional filtroUnidadeOrganizacional = new FiltroUnidadeOrganizacional(); filtroUnidadeOrganizacional .adicionarParametro(new ParametroSimples( FiltroUnidadeOrganizacional.ID, atualizarAdicionarSolicitacaoEspecificacaoActionForm .getIdUnidadeTramitacao())); filtroUnidadeOrganizacional .adicionarParametro(new ParametroSimples( FiltroUnidadeOrganizacional.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); Collection unidadeOrganizacionalEncontrado = fachada .pesquisar(filtroUnidadeOrganizacional, UnidadeOrganizacional.class.getName()); if (unidadeOrganizacionalEncontrado != null && !unidadeOrganizacionalEncontrado.isEmpty()) { UnidadeOrganizacional uinidadeOrganizacional = (UnidadeOrganizacional) ((List) unidadeOrganizacionalEncontrado) .get(0); solicitacaoTipoEspecificacao .setUnidadeOrganizacional(uinidadeOrganizacional); } else { throw new ActionServletException( "atencao.pesquisa_inexistente", null, "Unidade Organizacional"); } } else { UnidadeOrganizacional unidadeOrganizacional = new UnidadeOrganizacional(); unidadeOrganizacional.setId(new Integer( atualizarAdicionarSolicitacaoEspecificacaoActionForm .getIdUnidadeTramitacao())); solicitacaoTipoEspecificacao .setUnidadeOrganizacional(unidadeOrganizacional); } } // id do tipo da solicita��o gerada if (atualizarAdicionarSolicitacaoEspecificacaoActionForm .getIdServicoOS() != null && !atualizarAdicionarSolicitacaoEspecificacaoActionForm .getIdServicoOS().equals("")) { // Verifica se o c�digo foi modificado if (atualizarAdicionarSolicitacaoEspecificacaoActionForm .getDescricaoServicoOS() == null || atualizarAdicionarSolicitacaoEspecificacaoActionForm .getDescricaoServicoOS().trim().equals("")) { FiltroServicoTipo filtroServicoTipo = new FiltroServicoTipo(); filtroServicoTipo.adicionarParametro(new ParametroSimples( FiltroServicoTipo.ID, atualizarAdicionarSolicitacaoEspecificacaoActionForm .getIdServicoOS())); Collection servicoTipoEncontrado = fachada.pesquisar( filtroServicoTipo, ServicoTipo.class.getName()); if (servicoTipoEncontrado != null && !servicoTipoEncontrado.isEmpty()) { // [SF0003] - Validar Tipo Servi�o fachada.verificarServicoTipoReferencia(new Integer( atualizarAdicionarSolicitacaoEspecificacaoActionForm .getIdServicoOS())); ServicoTipo servicoTipo = (ServicoTipo) ((List) servicoTipoEncontrado) .get(0); solicitacaoTipoEspecificacao .setServicoTipo(servicoTipo); } else { throw new ActionServletException( "atencao.pesquisa_inexistente", null, "Servi�o Tipo"); } } else { ServicoTipo servicoTipo = new ServicoTipo(); servicoTipo.setId(new Integer( atualizarAdicionarSolicitacaoEspecificacaoActionForm .getIdServicoOS())); solicitacaoTipoEspecificacao.setServicoTipo(servicoTipo); } } // Gera ordem de servi�o if (atualizarAdicionarSolicitacaoEspecificacaoActionForm .getIndicadorGeraOrdemServico() != null && !atualizarAdicionarSolicitacaoEspecificacaoActionForm .getIndicadorGeraOrdemServico().equals("")) { solicitacaoTipoEspecificacao .setIndicadorGeracaoOrdemServico(new Short( atualizarAdicionarSolicitacaoEspecificacaoActionForm .getIndicadorGeraOrdemServico())); } // Cliente Obrigat�rio if (atualizarAdicionarSolicitacaoEspecificacaoActionForm .getIndicadorCliente() != null && !atualizarAdicionarSolicitacaoEspecificacaoActionForm .getIndicadorCliente().equals("")) { solicitacaoTipoEspecificacao.setIndicadorCliente(new Short( atualizarAdicionarSolicitacaoEspecificacaoActionForm .getIndicadorCliente())); } // Situa��o imovel if (atualizarAdicionarSolicitacaoEspecificacaoActionForm .getIdSituacaoImovel() != null && !atualizarAdicionarSolicitacaoEspecificacaoActionForm .getIdSituacaoImovel().equals("")) { EspecificacaoImovelSituacao especificacaoImovelSituacao = new EspecificacaoImovelSituacao(); especificacaoImovelSituacao.setId(new Integer( atualizarAdicionarSolicitacaoEspecificacaoActionForm .getIdSituacaoImovel())); solicitacaoTipoEspecificacao .setEspecificacaoImovelSituacao(especificacaoImovelSituacao); } Collection colecaoEspecificacaoServicoTipo = (Collection) sessao .getAttribute("colecaoEspecificacaoServicoTipo"); // recupera a cole��o de especificacao servico tipo if (colecaoEspecificacaoServicoTipo != null && !colecaoEspecificacaoServicoTipo.isEmpty()) { Collection colecao = new ArrayList(); colecao.addAll(colecaoEspecificacaoServicoTipo); // [SF0004] - Validar Valor Ordem de Servi�o 2� parte fachada.verificarOrdemExecucaoForaOrdem(colecao); solicitacaoTipoEspecificacao .setEspecificacaoServicoTipos(new HashSet( colecaoEspecificacaoServicoTipo)); // sessao.removeAttribute("colecaoEspecificacaoServicoTipo"); } // indicador de uso ativo solicitacaoTipoEspecificacao.setIndicadorUso(new Short( ConstantesSistema.INDICADOR_USO_ATIVO)); SolicitacaoTipo solicitacaoTipo = new SolicitacaoTipo(); solicitacaoTipo = (SolicitacaoTipo) sessao .getAttribute("solicitacaoTipoAtualizar"); solicitacaoTipoEspecificacao.setSolicitacaoTipo(solicitacaoTipo); sessao.setAttribute("solicitacaoTipoEspecificacao", solicitacaoTipoEspecificacao); } // caso exista o parametro ent�o limpa a sess�o e o form if (httpServletRequest.getParameter("limpaSessao") != null && !httpServletRequest.getParameter("limpaSessao").equals("")) { atualizarAdicionarSolicitacaoEspecificacaoActionForm .setDescricaoTipoServico(""); atualizarAdicionarSolicitacaoEspecificacaoActionForm .setIdTipoServico(""); atualizarAdicionarSolicitacaoEspecificacaoActionForm .setOrdemExecucao(""); } // recupera o caminho de retorno passado como parametro no jsp que chama // essa funcionalidade if (httpServletRequest.getParameter("retornarTelaPopup") != null) { sessao.setAttribute("retornarTelaPopup", httpServletRequest .getParameter("retornarTelaPopup")); } // Verifica se o tipoConsulta � diferente de nulo ou vazio.Nesse caso � // quando um o retorno da consulta vem para o action ao inves de ir // direto para o jsp if (httpServletRequest.getParameter("tipoConsulta") != null && !httpServletRequest.getParameter("tipoConsulta").equals("")) { // verifica se retornou da pesquisa de tipo de servi�o if (httpServletRequest.getParameter("tipoConsulta").equals( "tipoServico")) { atualizarAdicionarSolicitacaoEspecificacaoActionForm .setIdTipoServico(httpServletRequest .getParameter("idCampoEnviarDados")); atualizarAdicionarSolicitacaoEspecificacaoActionForm .setDescricaoTipoServico(httpServletRequest .getParameter("descricaoCampoEnviarDados")); } } // -------Parte que trata do c�digo quando o usu�rio tecla enter String idTipoServico = (String) atualizarAdicionarSolicitacaoEspecificacaoActionForm .getIdTipoServico(); String descricaoServico = atualizarAdicionarSolicitacaoEspecificacaoActionForm .getDescricaoTipoServico(); // Verifica se o c�digo foi digitado pela primeira vez ou se foi // modificado if (idTipoServico != null && !idTipoServico.trim().equals("") && (descricaoServico == null || descricaoServico.trim().equals( ""))) { FiltroServicoTipo filtroServicoTipo = new FiltroServicoTipo(); filtroServicoTipo.adicionarParametro(new ParametroSimples( FiltroServicoTipo.ID, idTipoServico)); Collection servicoTipoEncontrado = fachada.pesquisar( filtroServicoTipo, ServicoTipo.class.getName()); if (servicoTipoEncontrado != null && !servicoTipoEncontrado.isEmpty()) { atualizarAdicionarSolicitacaoEspecificacaoActionForm .setIdTipoServico("" + ((ServicoTipo) ((List) servicoTipoEncontrado) .get(0)).getId()); atualizarAdicionarSolicitacaoEspecificacaoActionForm .setDescricaoTipoServico(((ServicoTipo) ((List) servicoTipoEncontrado) .get(0)).getDescricao()); httpServletRequest.setAttribute("idTipoServicoNaoEncontrado", "true"); httpServletRequest.setAttribute("nomeCampo", "ordemExecucao"); } else { atualizarAdicionarSolicitacaoEspecificacaoActionForm .setIdTipoServico(""); httpServletRequest.setAttribute("nomeCampo", "idServicoOS"); httpServletRequest.setAttribute("idTipoServicoNaoEncontrado", "exception"); atualizarAdicionarSolicitacaoEspecificacaoActionForm .setDescricaoTipoServico("Tipo Servi�o Inexistente"); } } sessao.removeAttribute("caminhoRetornoTelaPesquisaServicoTipo"); // -------Fim da Parte que trata do c�digo quando o usu�rio tecla enter return retorno; } }