package gcom.gui.atendimentopublico.ordemservico;
import gcom.atendimentopublico.ordemservico.FiltroOrdemServicoPavimento;
import gcom.atendimentopublico.ordemservico.OrdemServico;
import gcom.atendimentopublico.ordemservico.OrdemServicoPavimento;
import gcom.atendimentopublico.ordemservico.bean.OSPavimentoRetornoHelper;
import gcom.fachada.Fachada;
import gcom.gui.GcomAction;
import gcom.util.Util;
import gcom.util.filtro.ParametroSimples;
import java.util.Collection;
import java.util.Date;
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;
/**
* [UC1020] Exibir Ordens de Repavimenta��o em Processo de Aceite.
*
* @author Hugo Leonardo
* @date 17/05/2010
*/
public class ExibirAtualizarOrdemRepavimentacaoProcessoAceitePopupAction extends GcomAction {
/**
* < <Descri��o do m�todo>>
*
* @param actionMapping
* Descri��o do par�metro
* @param actionForm
* Descri��o do par�metro
* @param httpServletRequest
* Descri��o do par�metro
* @param httpServletResponse
* Descri��o do par�metro
* @return Descri��o do retorno
*/
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
// Seta a a��o de retorno
ActionForward retorno = actionMapping.findForward("exibirAtualizarOrdemRepavimentacaoProcessoAceitePopUp");
Fachada fachada = Fachada.getInstancia();
// Obt�m a sess�o
HttpSession sessao = httpServletRequest.getSession(false);
FiltrarOrdemRepavimentacaoProcessoAceiteActionForm form = (FiltrarOrdemRepavimentacaoProcessoAceiteActionForm) actionForm;
if ( sessao.getAttribute("numeroPaginasPesquisa") != null ) {
String paginaAtual = (String) sessao.getAttribute("numeroPaginasPesquisa");
form.setManterPaginaAux( paginaAtual );
}
form.setDataAceite("");
form.setIndicadorSituacaoAceite("");
form.setMotivo("");
Collection collOrdemServicoPavimento = (Collection) sessao.getAttribute("collOrdemServicoPavimentoAceite");
// Perguntar se posso encontrar apenas pelo numero da Os ?
String numeroOS = null;
Integer idOrdemServico = null;
if (httpServletRequest.getParameter("numeroOS") != null) {
numeroOS = httpServletRequest.getParameter("numeroOS");
idOrdemServico= Util.converterStringParaInteger(numeroOS);
if ( idOrdemServico != null ) {
FiltroOrdemServicoPavimento filtroOrdemServicoPavimento = new FiltroOrdemServicoPavimento();
filtroOrdemServicoPavimento.adicionarParametro(new ParametroSimples( FiltroOrdemServicoPavimento.ORDEM_SERVICO_ID,
idOrdemServico));
Collection colecaoOrdemServicoPavimento = fachada.pesquisar(filtroOrdemServicoPavimento,
OrdemServicoPavimento.class.getName());
OrdemServicoPavimento ordemServicoPavimento = (OrdemServicoPavimento)
Util.retonarObjetoDeColecao(colecaoOrdemServicoPavimento);
//SB0001
//1.1
if ( ordemServicoPavimento.getIndicadorAceite() != null ) {
form.setIndicadorSituacaoAceite("2");
form.setDataAceite(Util.formatarData(ordemServicoPavimento.getDataAceite()) );
form.setMotivo(ordemServicoPavimento.getDescricaoMotivoAceite());
} else {
form.setIndicadorSituacaoAceite("1");
form.setDataAceite(Util.formatarData(new Date()) );
}
}
}
if (httpServletRequest.getParameter("acao") != null &&
(httpServletRequest.getParameter("acao").equals("link")
|| httpServletRequest.getParameter("acao").equals("botao"))) {
OrdemServico os = fachada.pesquisarOrdemServico(idOrdemServico);
OrdemServicoPavimento ordemServicoPavimento = null;
if (sessao.getAttribute("collOrdemServicoPavimentoAceite") != null
&& !sessao.getAttribute("collOrdemServicoPavimentoAceite").equals("")) {
OSPavimentoRetornoHelper oSPavimentoRetornoHelper = null;
Iterator iterator = collOrdemServicoPavimento.iterator();
while (iterator.hasNext()) {
oSPavimentoRetornoHelper = (OSPavimentoRetornoHelper) iterator.next();
if(oSPavimentoRetornoHelper.getOrdemServico().getId().equals(os.getId())){
ordemServicoPavimento = oSPavimentoRetornoHelper.getOrdemServicoPavimento();
httpServletRequest.setAttribute("ordemServicoPavimentoAtualizar", ordemServicoPavimento);
sessao.setAttribute("ordemServicoPavimentoAtualizar", ordemServicoPavimento);
}
}
}
sessao.setAttribute("acao", "link");
}else if (httpServletRequest.getParameter("acao") != null &&
httpServletRequest.getParameter("acao").equals("aceitarOSConvergente") ) {
httpServletRequest.setAttribute("ordemServicoPavimentoAceitarOSConvergente", true);
httpServletRequest.setAttribute("OSConvergente", "true");
sessao.setAttribute("ordemServicoPavimentoAceitarOSConvergente", true);
}
if (httpServletRequest.getParameter("page.offset") != null
&& !httpServletRequest.getParameter("page.offset").equals("")) {
String numeroPagina = httpServletRequest.getParameter("page.offset");
form.setManterPaginaAux(numeroPagina);
}
return retorno;
}
}