package gcom.gui.atendimentopublico.registroatendimento;
import gcom.atendimentopublico.registroatendimento.FiltroRegistroAtendimentoSolicitante;
import gcom.atendimentopublico.registroatendimento.RegistroAtendimentoSolicitante;
import gcom.fachada.Fachada;
import gcom.gui.GcomAction;
import gcom.util.filtro.ParametroSimples;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
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;
/**
* Esta classe tem por finalidade exibir para o usu�rio a tela que receber� os
* par�metros para realiza��o da atualiza��o de um R.A (Aba n� 03 - Dados do
* solicitante)
*
* @author S�vio Luiz
* @date 10/08/2006
*/
public class ExibirAtualizarRegistroAtendimentoDadosSolicitanteAction extends
GcomAction {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
ActionForward retorno = actionMapping
.findForward("atualizarRegistroAtendimentoDadosSolicitante");
AtualizarRegistroAtendimentoActionForm atualizarRegistroAtendimentoActionForm = (AtualizarRegistroAtendimentoActionForm) actionForm;
HttpSession sessao = httpServletRequest.getSession(false);
// caso a escolha seja de remover o registro de atendimento solicitante
if (httpServletRequest.getParameter("idRASolicitante") != null) {
// recupera o id do solicitante para ser removido
long idRASolicitante = Long.parseLong(httpServletRequest
.getParameter("idRASolicitante"));
// cria ou recupera a cole��o de RA solicitante removidos
Collection colecaoRASolicitanteRemovidas = null;
if (sessao.getAttribute("colecaoRASolicitanteRemovidas") != null) {
colecaoRASolicitanteRemovidas = (Collection) sessao
.getAttribute("colecaoRASolicitanteRemovidas");
} else {
colecaoRASolicitanteRemovidas = new ArrayList();
}
// recupera a cole��o de RA solicitante
Collection colecaoRASolicitante = (Collection) sessao
.getAttribute("colecaoRASolicitante");
Iterator iteratorRASolicitante = colecaoRASolicitante.iterator();
while (iteratorRASolicitante.hasNext()) {
RegistroAtendimentoSolicitante registroAtendimentoSolicitante = (RegistroAtendimentoSolicitante) iteratorRASolicitante
.next();
if (registroAtendimentoSolicitante.getUltimaAlteracao()
.getTime() == idRASolicitante) {
if (registroAtendimentoSolicitante.getID() != null
&& !registroAtendimentoSolicitante.getID().equals(
"")) {
colecaoRASolicitanteRemovidas
.add(registroAtendimentoSolicitante);
}
iteratorRASolicitante.remove();
break;
}
}
sessao.setAttribute("colecaoRASolicitanteRemovidas",
colecaoRASolicitanteRemovidas);
}
Fachada fachada = Fachada.getInstancia();
// caso seja a primeira vez ent�o pesquisa a cole��o de solicitante
if (sessao.getAttribute("colecaoRASolicitante") == null) {
FiltroRegistroAtendimentoSolicitante filtroRegistroAtendimentoSolicitante = new FiltroRegistroAtendimentoSolicitante();
filtroRegistroAtendimentoSolicitante.adicionarCaminhoParaCarregamentoEntidade("unidadeOrganizacional");
filtroRegistroAtendimentoSolicitante.adicionarCaminhoParaCarregamentoEntidade("cliente");
filtroRegistroAtendimentoSolicitante.adicionarCaminhoParaCarregamentoEntidade("funcionario");
filtroRegistroAtendimentoSolicitante.adicionarCaminhoParaCarregamentoEntidade("perimetroInicial.logradouroTipo");
filtroRegistroAtendimentoSolicitante.adicionarCaminhoParaCarregamentoEntidade("perimetroInicial.logradouroTitulo");
filtroRegistroAtendimentoSolicitante.adicionarCaminhoParaCarregamentoEntidade("perimetroFinal.logradouroTipo");
filtroRegistroAtendimentoSolicitante.adicionarCaminhoParaCarregamentoEntidade("perimetroFinal.logradouroTitulo");
filtroRegistroAtendimentoSolicitante
.adicionarParametro(new ParametroSimples(
FiltroRegistroAtendimentoSolicitante.REGISTRO_ATENDIMENTO_ID,
atualizarRegistroAtendimentoActionForm
.getNumeroRA()));
Collection colecaoRASolicitante = fachada.pesquisar(
filtroRegistroAtendimentoSolicitante,
RegistroAtendimentoSolicitante.class.getName());
/*Collection colecaoRASolicitanteComNome = null;
if (colecaoRASolicitante != null && !colecaoRASolicitante.isEmpty()) {
Iterator iteRASolicitante = colecaoRASolicitante.iterator();
colecaoRASolicitanteComNome = new ArrayList();
while (iteRASolicitante.hasNext()) {
RegistroAtendimentoSolicitante registroAtendimentoSolicitante = (RegistroAtendimentoSolicitante) iteRASolicitante
.next();
String nomeRASolicitante = fachada
.obterNomeSolicitanteRA(registroAtendimentoSolicitante
.getID());
registroAtendimentoSolicitante
.setSolicitante(nomeRASolicitante);
colecaoRASolicitanteComNome
.add(registroAtendimentoSolicitante);
}
}*/
sessao.setAttribute("colecaoRASolicitante",
colecaoRASolicitante);
}
return retorno;
}
}