package gcom.gui.micromedicao; import gcom.cadastro.localidade.FiltroSetorComercial; import gcom.cadastro.localidade.Localidade; import gcom.cadastro.localidade.SetorComercial; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.util.Util; import gcom.util.filtro.ParametroSimples; import java.util.Collection; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; /** * <p> * [UC0936] Informar Leitura por Rota * </p> * <p> * Respons�vel pela exibi��o dos dados * </p> * * @author Thiago Nascimento, Magno Gouveia * @since , 01/09/2011 */ public class ExibirInformarLeituraRotaAction extends GcomAction { @Override public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { ActionForward retorno = actionMapping.findForward("InformarLeituraRotaAction"); InformarLeituraRotaActionForm form = (InformarLeituraRotaActionForm) actionForm; Fachada fachada = Fachada.getInstancia(); if (httpServletRequest.getParameter("menu") != null && httpServletRequest.getParameter("menu").equals("sim")) { form.setIdLocalidade(""); form.setLocalidadeDescricao(""); form.setCodigoSetorComercial(""); form.setSetorComercialDescricao(""); form.setRota(""); form.setBloquearCampos(""); form.setTipo("1"); } 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"); } // -------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"); } } verificaExistenciaCodSetorComercial(idDigitadoEnterLocalidade, idDigitadoEnterSetorComercial, form, httpServletRequest, fachada); return retorno; } private void verificaExistenciaCodLocalidade(String idDigitadoEnterLocalidade, InformarLeituraRotaActionForm 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, InformarLeituraRotaActionForm 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"); httpServletRequest.setAttribute("nomeCampo", "rota"); } else { // o setor comercial n�o foi encontrado form.setCodigoSetorComercial(""); httpServletRequest.setAttribute("idSetorComercialNaoEncontrada", "exception"); form.setSetorComercialDescricao("SETOR COMERCIAL INEXISTENTE"); } } } }