package gcom.gui.micromedicao; import gcom.cadastro.empresa.Empresa; import gcom.cadastro.empresa.FiltroEmpresa; import gcom.cadastro.localidade.FiltroSetorComercial; import gcom.cadastro.localidade.Localidade; import gcom.cadastro.localidade.SetorComercial; 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.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; /** * Action para exibir a pesquisa por rota da p�gina Informar Leitura por Rota * * @author Thiago Nascimento * */ public class ExibirPesquisarInformarRotaLeituraAction extends GcomAction { @Override public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { ActionForward retorno = actionMapping.findForward("ExibirPesquisarRotaAction"); PesquisarRotaActionForm form = (PesquisarRotaActionForm) actionForm; Fachada fachada = Fachada.getInstancia(); HttpSession sessao = httpServletRequest.getSession(false); if (httpServletRequest.getParameter("limparForm") != null && httpServletRequest.getParameter("limparForm").equals("sim")) { form.setIdGrupoFaturamento("" + ConstantesSistema.NUMERO_NAO_INFORMADO); form.setIdLocalidade(""); form.setLocalidadeDescricao(""); form.setCodigoSetorComercial(""); form.setSetorComercialDescricao(""); form.setCodigoRota(""); form.setEmpresaLeituristica("" + ConstantesSistema.NUMERO_NAO_INFORMADO); form.setIndicadorUso("3"); form.setBloquearCampos(""); sessao.removeAttribute("bloquearSetorComercial"); sessao.removeAttribute("caminhoRetornoTelaPesquisa"); } form.setIndicadorRotaAlternativa(ConstantesSistema.NAO_CONFIRMADA); String idEmpresaLeituristica = httpServletRequest.getParameter("idEmpresaLeituristicaRecebida"); if (idEmpresaLeituristica != null) { sessao.setAttribute("idEmpresaLeituristicaRecebida", idEmpresaLeituristica); form.setEmpresaLeituristica(idEmpresaLeituristica); } if (httpServletRequest.getParameter("idLocalidade") != null && !httpServletRequest.getParameter("idLocalidade").equals("")) { form.setIdLocalidade("" + httpServletRequest.getParameter("idLocalidade")); } if (httpServletRequest.getParameter("codigoSetorComercial") != null && !httpServletRequest.getParameter("codigoSetorComercial").equals("")) { form.setCodigoSetorComercial("" + httpServletRequest.getParameter("codigoSetorComercial")); } if (httpServletRequest.getParameter("bloquearCampos") != null && !httpServletRequest.getParameter("bloquearCampos").equals("")) { form.setBloquearCampos("sim"); } // Pesquisando grupo de faturamento FiltroFaturamentoGrupo filtroFaturamentoGrupo = new FiltroFaturamentoGrupo(); filtroFaturamentoGrupo.setCampoOrderBy(FiltroFaturamentoGrupo.DESCRICAO_ABREVIADA); Collection<FaturamentoGrupo> collectionFaturamentoGrupo = fachada.pesquisar(filtroFaturamentoGrupo, FaturamentoGrupo.class.getName()); sessao.setAttribute("collectionFaturamentoGrupo", collectionFaturamentoGrupo); // Fim de pesquisando grupo de faturamento // Pesquisando empresa leitur�stica FiltroEmpresa filtroEmpresa = new FiltroEmpresa(); filtroEmpresa.setCampoOrderBy(FiltroEmpresa.DESCRICAO); Collection<Empresa> collectionEmpresa = fachada.pesquisar(filtroEmpresa, Empresa.class.getName()); sessao.setAttribute("collectionEmpresa", collectionEmpresa); // Fim de pesquisando empresa leitur�stica // -------Parte que trata do c�digo quando o usu�rio tecla enter String idDigitadoEnterLocalidade = form.getIdLocalidade(); if (idDigitadoEnterLocalidade != null && !idDigitadoEnterLocalidade.equalsIgnoreCase("") && Util.validarValorNaoNumerico(idDigitadoEnterLocalidade)) { // Localidade n�o num�rico. httpServletRequest.setAttribute("nomeCampo", "idLocalidade"); throw new ActionServletException("atencao.nao.numerico", null, "Localidade "); } verificaExistenciaCodLocalidade(idDigitadoEnterLocalidade, form, httpServletRequest, fachada); String idDigitadoEnterSetorComercial = form.getCodigoSetorComercial(); if (idDigitadoEnterSetorComercial != null && !idDigitadoEnterSetorComercial.equalsIgnoreCase("") && Util.validarValorNaoNumerico(idDigitadoEnterSetorComercial)) { // Setor Comercial n�o num�rico. httpServletRequest.setAttribute("nomeCampo", "codigoSetorComercial"); throw new ActionServletException("atencao.nao.numerico", null, "Setor Comercial "); } if (httpServletRequest.getParameter("tipoConsulta") != null && !httpServletRequest.getParameter("tipoConsulta").equals("")) { // Verifica se o tipo da consulta � de Localidade // se for os parametros de enviarDadosParametros ser�o mandados para // a pagina rota_pesuisar.jsp if (httpServletRequest.getParameter("tipoConsulta").equals("localidade")) { form.setIdLocalidade(httpServletRequest.getParameter("idCampoEnviarDados")); form.setLocalidadeDescricao(httpServletRequest.getParameter("descricaoCampoEnviarDados")); httpServletRequest.setAttribute("nomeCampo", "codigoSetorComercial"); } else if (httpServletRequest.getParameter("tipoConsulta").equals("setorComercial")) { form.setCodigoSetorComercial(httpServletRequest.getParameter("idCampoEnviarDados")); form.setSetorComercialDescricao(httpServletRequest.getParameter("descricaoCampoEnviarDados")); httpServletRequest.setAttribute("nomeCampo", "codigoRota"); } } if (httpServletRequest.getParameter("idSetorComercial") != null && !httpServletRequest.getParameter("idSetorComercial").trim().equals("")) { String idSetorComercial = httpServletRequest.getParameter("idSetorComercial"); FiltroSetorComercial filtroSetorComercial = new FiltroSetorComercial(); filtroSetorComercial.adicionarCaminhoParaCarregamentoEntidade(FiltroSetorComercial.LOCALIDADE); filtroSetorComercial.adicionarParametro(new ParametroSimples(FiltroSetorComercial.ID, idSetorComercial)); Collection colecaoSetorComercial = fachada.pesquisar(filtroSetorComercial, SetorComercial.class.getName()); if (colecaoSetorComercial != null && !colecaoSetorComercial.isEmpty()) { SetorComercial setorComercial = (SetorComercial) Util.retonarObjetoDeColecao(colecaoSetorComercial); form.setCodigoSetorComercial("" + setorComercial.getCodigo()); form.setSetorComercialDescricao(setorComercial.getDescricao()); form.setIdLocalidade(setorComercial.getLocalidade().getId().toString()); form.setLocalidadeDescricao(setorComercial.getLocalidade().getDescricao()); form.setBloquearCampos("Sim"); } } // envia uma flag que ser� verificado no quadra_resultado_pesquisa.jsp // para saber se ir� usar o enviar dados ou o enviar dados parametros if (httpServletRequest.getParameter("caminhoRetornoTelaPesquisa") != null) { sessao.setAttribute("caminhoRetornoTelaPesquisaQuadra", httpServletRequest.getParameter("caminhoRetornoTelaPesquisa")); } verificaExistenciaCodSetorComercial(idDigitadoEnterLocalidade, idDigitadoEnterSetorComercial, form, httpServletRequest, fachada); // -------Fim de parte que trata do c�digo quando o usu�rio tecla enter if (httpServletRequest.getParameter("destinoRota") != null) { if (httpServletRequest.getParameter("destinoRota").equals("Inicial")) { sessao.setAttribute("destinoRota", "Inicial"); } else { sessao.setAttribute("destinoRota", "Final"); } } if (httpServletRequest.getParameter("idFaturamentoGrupo") != null) { if (!httpServletRequest.getParameter("idFaturamentoGrupo").equals("-1")) { form.setIdGrupoFaturamento(httpServletRequest.getParameter("idFaturamentoGrupo")); } else { sessao.removeAttribute("idFaturamentoGrupo"); } } return retorno; } private void verificaExistenciaCodLocalidade(String idDigitadoEnterLocalidade, PesquisarRotaActionForm form, HttpServletRequest httpServletRequest, Fachada fachada) { // Verifica se o c�digo da Localidade foi digitado if (idDigitadoEnterLocalidade != null && !idDigitadoEnterLocalidade.trim().equals("") && Integer.parseInt(idDigitadoEnterLocalidade) > 0) { // Recupera a localidade informada pelo usu�rio Localidade localidadeEncontrada = fachada.pesquisarLocalidadeDigitada(new Integer(idDigitadoEnterLocalidade)); // Caso a localidade informada pelo usu�rio esteja cadastrada no // sistema // Seta os dados da localidade no form // Caso contr�rio seta as informa��es da localidade para vazio // e indica ao usu�rio que a localidade n�o existe if (localidadeEncontrada != null) { // a localidade foi encontrada form.setIdLocalidade("" + (localidadeEncontrada.getId())); form.setLocalidadeDescricao(localidadeEncontrada.getDescricao()); httpServletRequest.setAttribute("idLocalidadeNaoEncontrada", "true"); httpServletRequest.setAttribute("nomeCampo", "codigoSetorComercial"); } else { // a localidade n�o foi encontrada form.setIdLocalidade(""); httpServletRequest.setAttribute("idLocalidadeNaoEncontrada", "exception"); form.setLocalidadeDescricao("LOCALIDADE INEXISTENTE"); } } } private void verificaExistenciaCodSetorComercial(String idDigitadoEnterLocalidade, String idDigitadoEnterSetorComercial, PesquisarRotaActionForm form, HttpServletRequest httpServletRequest, Fachada fachada) { // Verifica se o c�digo do Setor Comercial foi digitado if ((idDigitadoEnterSetorComercial != null && !idDigitadoEnterSetorComercial.toString().trim().equalsIgnoreCase("")) && (idDigitadoEnterLocalidade != null && !idDigitadoEnterLocalidade.toString().trim().equalsIgnoreCase(""))) { FiltroSetorComercial filtroSetorComercial = new FiltroSetorComercial(); if (idDigitadoEnterLocalidade != null && !idDigitadoEnterLocalidade.toString().trim().equalsIgnoreCase("")) { filtroSetorComercial.adicionarParametro(new ParametroSimples(FiltroSetorComercial.ID_LOCALIDADE, new Integer(idDigitadoEnterLocalidade))); } filtroSetorComercial.adicionarParametro(new ParametroSimples(FiltroSetorComercial.CODIGO_SETOR_COMERCIAL, new Integer(idDigitadoEnterSetorComercial))); Collection<SetorComercial> setorComerciais = fachada.pesquisar(filtroSetorComercial, SetorComercial.class.getName()); if (setorComerciais != null && !setorComerciais.isEmpty()) { // o setor comercial foi encontrado SetorComercial setorComercialEncontrado = (SetorComercial) Util.retonarObjetoDeColecao(setorComerciais); form.setCodigoSetorComercial("" + (setorComercialEncontrado.getCodigo())); form.setSetorComercialDescricao(setorComercialEncontrado.getDescricao()); httpServletRequest.setAttribute("idSetorComercialNaoEncontrada", "true"); } else { // o setor comercial n�o foi encontrado form.setCodigoSetorComercial(""); httpServletRequest.setAttribute("idSetorComercialNaoEncontrada", "exception"); form.setSetorComercialDescricao("SETOR COMERCIAL INEXISTENTE"); } } } }