package gcom.gui.portal; import gcom.atendimentopublico.registroatendimento.FiltroSolicitacaoTipoEspecificacao; import gcom.atendimentopublico.registroatendimento.SolicitacaoTipo; import gcom.atendimentopublico.registroatendimento.SolicitacaoTipoEspecificacao; import gcom.atendimentopublico.registroatendimento.bean.DefinirDataPrevistaUnidadeDestinoEspecificacaoHelper; import gcom.fachada.Fachada; import gcom.gui.GcomAction; import gcom.util.ConstantesSistema; import gcom.util.ControladorException; import gcom.util.Util; import gcom.util.filtro.ParametroSimples; import java.util.ArrayList; import java.util.Collection; import java.util.Date; 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; /** * <p> * Classe Respons�vel por exibir o formul�rio de cadastro para solicita��o de * servi�os na Loja Virtual da Compesa * </p> * * @author Magno Gouveia * @date 28/06/2011 */ public class ExibirInserirSolicitacaoServicosPortalAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { ActionForward retorno = actionMapping.findForward("exibirInserirSolicitacaoServicosPortal"); HttpSession sessao = httpServletRequest.getSession(false); httpServletRequest.setAttribute("voltarServicos", true); Fachada fachada = Fachada.getInstancia(); InserirSolicitacaoServicosPortalActionForm form = (InserirSolicitacaoServicosPortalActionForm) actionForm; if (httpServletRequest.getParameter("init") != null && httpServletRequest.getParameter("init").equals("1")) { form.reset(); sessao.removeAttribute("dataPrevista"); } // 2.1.3 Integer matricula = (Integer) sessao.getAttribute("matricula"); if (!Util.verificarIdNaoVazio(matricula.toString())) { httpServletRequest.setAttribute("exception", "Matr�cula inv�lida ou vazia!"); return retorno; // throw new ActionServletException("atencao.entidade_sem_dados_para_selecao", null, "MATRICULA INVALIDA OU VAZIA"); } // FiltroImovel filtroImovel = new FiltroImovel(); // filtroImovel.adicionarCaminhoParaCarregamentoEntidade(FiltroImovel.UNIDADE_FEDERACAO); // filtroImovel.adicionarCaminhoParaCarregamentoEntidade(FiltroImovel.LOGRADOURO_CEP); // filtroImovel.adicionarCaminhoParaCarregamentoEntidade(FiltroImovel.LOGRADOURO_TIPO); // filtroImovel.adicionarCaminhoParaCarregamentoEntidade(FiltroImovel.ENDERECO_REFERENCIA); // filtroImovel.adicionarParametro(new ParametroSimples(FiltroImovel.ID, matricula)); // // Collection colecaoImoveis = fachada.pesquisar(filtroImovel, Imovel.class.getName()); // Imovel imovel = (Imovel) Util.retonarObjetoDeColecao(colecaoImoveis); String enderecoFormatado = null; try { enderecoFormatado = this.getFachada().pesquisarEnderecoFormatado(matricula); } catch (ControladorException e) { httpServletRequest.setAttribute("exception", "Erro no sistema!"); return retorno; // throw new ActionServletException("erro.sistema"); } if (enderecoFormatado != null) { sessao.setAttribute("enderecoImovel", enderecoFormatado); } // 2.2.4 Tipo Solicita��o Collection<Object[]> objectsSolicitacaoTipo = fachada.pesquisarSolicitacaoTipoLojaVirtual(); Collection<SolicitacaoTipo> colecaoSolicitacaoTipo = new ArrayList(); if (!Util.isVazioOrNulo(objectsSolicitacaoTipo)) { for (Object[] tipo : objectsSolicitacaoTipo) { SolicitacaoTipo solicitacaoTipo = new SolicitacaoTipo(); solicitacaoTipo.setId(Integer.parseInt(((Short) tipo[0]).toString())); solicitacaoTipo.setDescricao((String) tipo[1]); colecaoSolicitacaoTipo.add(solicitacaoTipo); } sessao.setAttribute("colecaoSolicitacaoTipo", colecaoSolicitacaoTipo); } else { httpServletRequest.setAttribute("exception", "Nenhum tipo de solicita��o encontrado!"); return retorno; // throw new ActionServletException("atencao.entidade_sem_dados_para_selecao", null, "SOLICITACAO_TIPO"); } // 2.2.5 Tipo de Especifica��o if (Util.verificarIdNaoVazio(form.getSolicitacaoTipo())) { FiltroSolicitacaoTipoEspecificacao filtroSolicitacaoTipoEspecificacao = new FiltroSolicitacaoTipoEspecificacao(FiltroSolicitacaoTipoEspecificacao.DESCRICAO); filtroSolicitacaoTipoEspecificacao.adicionarParametro(new ParametroSimples(FiltroSolicitacaoTipoEspecificacao.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); filtroSolicitacaoTipoEspecificacao.adicionarParametro(new ParametroSimples(FiltroSolicitacaoTipoEspecificacao.INDICADOR_LOJA_VIRTUAL, ConstantesSistema.INDICADOR_USO_ATIVO)); filtroSolicitacaoTipoEspecificacao.adicionarParametro(new ParametroSimples(FiltroSolicitacaoTipoEspecificacao.SOLICITACAO_TIPO_ID, new Integer(form.getSolicitacaoTipo()))); Collection colecaoEspecificacao = fachada.pesquisar(filtroSolicitacaoTipoEspecificacao, SolicitacaoTipoEspecificacao.class.getName()); if (!Util.isVazioOrNulo(colecaoEspecificacao)) { sessao.setAttribute("colecaoEspecificacao", colecaoEspecificacao); } else { httpServletRequest.setAttribute("exception", "Nenhuma especifica��o encontrada!"); return retorno; // throw new ActionServletException("atencao.entidade_sem_dados_para_selecao", null, "SOLICITACAO_TIPO_ESPECIFICACAO"); } } // Calcula a data prevista para o atendimento a solicita��o Date dataPrevista = null; if(Util.verificarIdNaoVazio(form.getEspecificacao())){ DefinirDataPrevistaUnidadeDestinoEspecificacaoHelper definirDataPrevistaUnidadeDestinoEspecificacaoHelper = fachada .definirDataPrevistaUnidadeDestinoEspecificacao(new Date(), Integer.parseInt(form.getEspecificacao())); dataPrevista = Util .formatarDataFinal(definirDataPrevistaUnidadeDestinoEspecificacaoHelper .getDataPrevista()); sessao.setAttribute("dataPrevista", Util.formatarData(dataPrevista)); } sessao.setAttribute("dataSolicitacao", Util.formatarData(new Date())); if (form.getNomeSolicitante() == null) form.setNomeSolicitante(""); if (form.getEmail() == null) form.setEmail(""); if (form.getObservacoes() == null) form.setObservacoes(""); if (form.getPontoReferencia() == null) form.setPontoReferencia(""); return retorno; } }