package gcom.gui.atendimentopublico.ordemservico; import gcom.atendimentopublico.ordemservico.ArquivoTextoAcompanhamentoServico; import gcom.atendimentopublico.ordemservico.FiltroAcompanhamentoArquivoRoteiro; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.micromedicao.SituacaoTransmissaoLeitura; import gcom.util.Util; import gcom.util.filtro.ParametroSimples; import java.util.Collection; import java.util.Iterator; import java.util.Vector; 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 Atualizar o Arquivo Texto do Acompanhamento de Arquivos de Roteiro * * @author Th�lio Ara�jo * @date 28/07/2011 * */ public class AtualizarAcompanhamentoArqRoteiroAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { // Seta o retorno ActionForward retorno = actionMapping.findForward("telaSucesso"); // Obt�m a inst�ncia da fachada Fachada fachada = Fachada.getInstancia(); HttpSession sessao = this.getSessao(httpServletRequest); Integer situacaoNova = null; String descricaoSituacaoNova = ""; AcompanharRoteiroProgramacaoOrdemServicoActionForm acompanhamentoArquivosRoteiroActionForm = (AcompanharRoteiroProgramacaoOrdemServicoActionForm) actionForm; // Saber se vai liberar ou nao liberar String atualizar = (String) httpServletRequest.getParameter("atualizar"); if(atualizar == null){ atualizar = (String) sessao.getAttribute("atualizar"); } if (atualizar.equals("2")) { situacaoNova = SituacaoTransmissaoLeitura.LIBERADO; descricaoSituacaoNova = "LIBERADO"; } else if (atualizar.equals("3")) { situacaoNova = SituacaoTransmissaoLeitura.EM_CAMPO; descricaoSituacaoNova = "EM CAMPO"; } else if (atualizar.equals("4")) { situacaoNova = SituacaoTransmissaoLeitura.TRANSMITIDO; descricaoSituacaoNova = "FINALIZADO"; } if (acompanhamentoArquivosRoteiroActionForm.getIdsRegistros() != null) { Vector<Integer> vetorIdsRegistros = new Vector<Integer>(); for (int i = 0; i < acompanhamentoArquivosRoteiroActionForm .getIdsRegistros().length; i++) { FiltroAcompanhamentoArquivoRoteiro filtroAcompanhamentoArquivoRoteiro = new FiltroAcompanhamentoArquivoRoteiro(); filtroAcompanhamentoArquivoRoteiro.adicionarParametro(new ParametroSimples(FiltroAcompanhamentoArquivoRoteiro.ID, acompanhamentoArquivosRoteiroActionForm.getIdsRegistros()[i])); Collection<?> colecao = fachada.pesquisar(filtroAcompanhamentoArquivoRoteiro, ArquivoTextoAcompanhamentoServico.class.getName()); if (colecao != null && !colecao.isEmpty()){ Iterator<?> colecaoIt = colecao.iterator(); while (colecaoIt.hasNext()){ ArquivoTextoAcompanhamentoServico arquivoTextoAcompanhamentoServico = (ArquivoTextoAcompanhamentoServico) colecaoIt.next(); if (descricaoSituacaoNova == "LIBERADO" && (arquivoTextoAcompanhamentoServico.getSituacaoTransmissaoLeitura().getId().equals(SituacaoTransmissaoLeitura.LIBERADO) || arquivoTextoAcompanhamentoServico.getSituacaoTransmissaoLeitura().getId().equals(SituacaoTransmissaoLeitura.TRANSMITIDO))){ throw new ActionServletException( "atencao.nao_possivel.liberar_arquivo", null, descricaoSituacaoNova); }else if (descricaoSituacaoNova == "EM CAMPO" && arquivoTextoAcompanhamentoServico.getSituacaoTransmissaoLeitura().getId().equals(SituacaoTransmissaoLeitura.EM_CAMPO)){ throw new ActionServletException( "atencao.nao_possivel.em_campo_arquivo", null, descricaoSituacaoNova); }else if (descricaoSituacaoNova == "FINALIZADO" && (arquivoTextoAcompanhamentoServico.getSituacaoTransmissaoLeitura().getId().equals(SituacaoTransmissaoLeitura.LIBERADO) || arquivoTextoAcompanhamentoServico.getSituacaoTransmissaoLeitura().getId().equals(SituacaoTransmissaoLeitura.TRANSMITIDO))){ throw new ActionServletException( "atencao.nao_possivel.finalizar_arquivo", null, descricaoSituacaoNova); } } } if (situacaoNova != Util.converterStringParaInteger(acompanhamentoArquivosRoteiroActionForm.getIdsRegistros()[i])){ vetorIdsRegistros.add(new Integer(acompanhamentoArquivosRoteiroActionForm .getIdsRegistros()[i])); } } fachada.atualizarListaArquivoTextoAcompArqRoteiro(vetorIdsRegistros, situacaoNova); } else { throw new ActionServletException( "atencao.nenhum_arquivo_mudar_situacao", null, descricaoSituacaoNova); } montarPaginaSucesso(httpServletRequest, "Situa��o do arquivo alterada para " + descricaoSituacaoNova.toLowerCase() + " com sucesso.", "Realizar um novo acompanhamento de arquivos de roteiro", "selecionarAcompanhamentoArquivosRoteiroAction.do"); return retorno; } }