package gcom.gui.atendimentopublico.registroatendimento;
import gcom.cadastro.unidade.FiltroUnidadeOrganizacional;
import gcom.cadastro.unidade.UnidadeOrganizacional;
import gcom.fachada.Fachada;
import gcom.gui.GcomAction;
import gcom.seguranca.acesso.usuario.FiltroUsuario;
import gcom.seguranca.acesso.usuario.Usuario;
import gcom.util.Util;
import gcom.util.filtro.ParametroSimples;
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;
/**
* [UC0503]Tramitar Conjunto de Registro de Atendimento
*
* @author Ana Maria
* @date 10/01/2007
*/
public class ExibirRegistroAtendimentoTramitacaoPopupAction 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("registroAtendimentoTramitacaoPopup");
Fachada fachada = Fachada.getInstancia();
// Obt�m a sess�o
HttpSession sessao = httpServletRequest.getSession(false);
ConjuntoTramitacaoRaActionForm form = (ConjuntoTramitacaoRaActionForm) actionForm;
// Ids do Registro de Atendimento e das Unidades Organizacionais Origem
String[] ids = form.getIdRegistrosTramitacao();
//Usuario logado no sistema
Usuario usuario = (Usuario) sessao.getAttribute("usuarioLogado");
//[FS0002] Verificar as situa��es das OS associadas ao RA
//[FS0003] Verificar se o tipo de solicita��o � Tarifa Social
fachada.validarRATramitacao(ids, usuario.getId());
String primeiraVez = (String)httpServletRequest.getParameter("primeiraVez");
if(primeiraVez != null){
Date dataCorrente = new Date();
//Informa a data e a hora atual
form.setDataTramitacao(Util.formatarData(dataCorrente));
form.setHoraTramitacao(Util.formatarHoraSemSegundos(dataCorrente));
httpServletRequest.setAttribute("corUsuario", "valor");
form.setIdUsuarioResponsavel(usuario.getId().toString());
form.setDescricaoUsuarioResponsavel(usuario.getNomeUsuario());
httpServletRequest.setAttribute("nomeCampo", "idUsuarioResponsavel");
sessao.setAttribute("ids", ids);
}
//form.setIdRegistrosTramitacao(null);
//[FS0004] Verificar exist�ncia da unidade organizacional
String consultaUnidadeDestino = (String) httpServletRequest.getParameter("consultaUnidadeDestino");
if (consultaUnidadeDestino != null
&& !consultaUnidadeDestino.trim().equalsIgnoreCase("")
&& (Integer.parseInt(consultaUnidadeDestino)) == 1) {
// Filtro para obter o Unidade Superior ativo de id informado
FiltroUnidadeOrganizacional filtroUnidadeOrganizacional = new FiltroUnidadeOrganizacional();
filtroUnidadeOrganizacional.adicionarParametro(new ParametroSimples(
FiltroUnidadeOrganizacional.ID, new Integer(form.getIdUnidadeDestino())));
// Pesquisa de acordo com os par�metros informados no filtro
Collection colecaoUnidadeDestino = fachada.pesquisar(
filtroUnidadeOrganizacional, UnidadeOrganizacional.class.getName());
// Verifica se a pesquisa retornou algum objeto para a cole��o
if (colecaoUnidadeDestino != null && !colecaoUnidadeDestino.isEmpty()) {
// Obt�m o objeto da cole��o pesquisada
UnidadeOrganizacional unidadeDestino = (UnidadeOrganizacional) Util
.retonarObjetoDeColecao(colecaoUnidadeDestino);
// Exibe o c�digo e a descri��o pesquisa na p�gina
httpServletRequest.setAttribute("corUnidadeDestino", "valor");
form.setIdUnidadeDestino(unidadeDestino.getId().toString());
form.setDescricaoUnidadeDestino(unidadeDestino.getDescricao());
httpServletRequest.setAttribute("nomeCampo", "idUnidadeDestino");
} else {
// Exibe mensagem de c�digo inexiste e limpa o campo de c�digo
httpServletRequest.setAttribute("corUnidadeDestino","exception");
form.setIdUnidadeDestino("");
form.setDescricaoUnidadeDestino("UNIDADE ORGANIZACIONAL INEXISTENTE");
httpServletRequest.setAttribute("nomeCampo", "idUnidadeDestino");
}
}
//[FS0005] Verificar exist�ncia do usu�rio
String consultaUsuarioResponsavel = (String) httpServletRequest.getParameter("consultaUsuarioResponsavel");
if (consultaUsuarioResponsavel != null
&& !consultaUsuarioResponsavel.trim().equalsIgnoreCase("")
&& (Integer.parseInt(consultaUsuarioResponsavel)) == 1) {
// Filtro para obter o Unidade Superior ativo de id informado
FiltroUsuario filtroUsuario = new FiltroUsuario();
filtroUsuario.adicionarParametro(new ParametroSimples(
FiltroUsuario.ID, new Integer(form.getIdUsuarioResponsavel())));
// Pesquisa de acordo com os par�metros informados no filtro
Collection colecaoUsuarios = fachada.pesquisar(
filtroUsuario, Usuario.class.getName());
// Verifica se a pesquisa retornou algum objeto para a cole��o
if (colecaoUsuarios != null && !colecaoUsuarios.isEmpty()) {
// Obt�m o objeto da cole��o pesquisada
Usuario usuarioResponsavel = (Usuario) Util
.retonarObjetoDeColecao(colecaoUsuarios);
// Exibe o c�digo e a descri��o pesquisa na p�gina
httpServletRequest.setAttribute("corUsuario", "valor");
form.setIdUsuarioResponsavel(usuarioResponsavel.getId().toString());
form.setDescricaoUsuarioResponsavel(usuarioResponsavel.getNomeUsuario());
httpServletRequest.setAttribute("nomeCampo", "idUsuarioResponsavel");
} else {
// Exibe mensagem de c�digo inexiste e limpa o campo de c�digo
httpServletRequest.setAttribute("corUsuario","exception");
form.setIdUsuarioResponsavel("");
form.setDescricaoUsuarioResponsavel("USU�RIO RESPONS�VEL INEXISTENTE");
httpServletRequest.setAttribute("nomeCampo", "idUsuarioResponsavel");
}
}
//Recupera os dados do popup de unidade organizacional
if (httpServletRequest.getParameter("tipoConsulta") != null
&& !httpServletRequest.getParameter("tipoConsulta").equals("")) {
//Recupera os dados do popup de unidade organizacional
if (httpServletRequest.getParameter("tipoConsulta").equals(
"unidadeOrganizacional")) {
form.setIdUnidadeDestino(httpServletRequest.getParameter("idCampoEnviarDados"));
form.setDescricaoUnidadeDestino(httpServletRequest
.getParameter("descricaoCampoEnviarDados"));
}
//Recupera os dados do popup de usu�rio
if (httpServletRequest.getParameter("tipoConsulta").equals(
"usuario")) {
form.setIdUsuarioResponsavel(httpServletRequest.getParameter("idCampoEnviarDados"));
form.setDescricaoUsuarioResponsavel(httpServletRequest
.getParameter("descricaoCampoEnviarDados"));
}
}
return retorno;
}
}