package gcom.gui.micromedicao.hidrometro;
import gcom.fachada.Fachada;
import gcom.gui.GcomAction;
import gcom.micromedicao.hidrometro.FiltroHidrometroLocalArmazenagem;
import gcom.micromedicao.hidrometro.FiltroHidrometroMotivoMovimentacao;
import gcom.micromedicao.hidrometro.HidrometroLocalArmazenagem;
import gcom.micromedicao.hidrometro.HidrometroMotivoMovimentacao;
import gcom.seguranca.acesso.usuario.FiltroUsuario;
import gcom.seguranca.acesso.usuario.Usuario;
import gcom.util.ConstantesSistema;
import gcom.util.Util;
import gcom.util.filtro.ParametroSimples;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Collection;
import java.util.GregorianCalendar;
import java.util.List;
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;
/**
* < <Descri��o da Classe>>
*
* @author Fernanda Paiva
* @created 23 de Janeiro de 2006
*/
public class ExibirFiltrarMovimentacaoHidrometroAction 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) {
// Obt�m o action form
HidrometroActionForm hidrometroActionForm = (HidrometroActionForm) actionForm;
String tela = (String) httpServletRequest.getParameter("tela");
String limparCampos = (String) httpServletRequest.getParameter("limparCampos");
// Seta a a��o de retorno
ActionForward retorno = actionMapping
.findForward("filtrarMovimentacaoHidrometro");
// Obt�m a sess�o
HttpSession sessao = httpServletRequest.getSession(false);
String localArmazenagemOrigem = hidrometroActionForm
.getLocalArmazenagemOrigem();
String localArmazenagemDestino = hidrometroActionForm
.getLocalArmazenagemDestino();
String usuario = hidrometroActionForm
.getUsuario();
// Obt�m a facahda
Fachada fachada = Fachada.getInstancia();
// Obt�m o objetoCosulta vindo no request
String objetoConsulta = (String) httpServletRequest
.getParameter("objetoConsulta");
// Obt�m o objetoCosulta vindo no request
String tipo = (String) httpServletRequest
.getParameter("tipo");
// Carregar a data corrente do sistema
SimpleDateFormat formatoData = new SimpleDateFormat("dd/MM/yyyy");
Calendar dataCorrente = new GregorianCalendar();
//Data Corrente
httpServletRequest.setAttribute("dataAtual", formatoData.format(dataCorrente.getTime()));
// Verifica se o objeto � diferente de nulo
if (objetoConsulta != null
&& !objetoConsulta.trim().equalsIgnoreCase("")
&& (Integer.parseInt(objetoConsulta)) == 1) {
// Filtro para obter o local de armazenagem ativo de id informado
FiltroHidrometroLocalArmazenagem filtroHidrometroLocalArmazenagem = new FiltroHidrometroLocalArmazenagem();
if (localArmazenagemOrigem != null && Integer.parseInt(tipo) == 1) {
filtroHidrometroLocalArmazenagem
.adicionarParametro(new ParametroSimples(
FiltroHidrometroLocalArmazenagem.ID ,
new Integer(hidrometroActionForm
.getLocalArmazenagemOrigem()),
ParametroSimples.CONECTOR_AND));
} else if (localArmazenagemDestino != null && Integer.parseInt(tipo) == 2) {
filtroHidrometroLocalArmazenagem
.adicionarParametro(new ParametroSimples(
FiltroHidrometroLocalArmazenagem.ID,
new Integer(hidrometroActionForm
.getLocalArmazenagemDestino()),
ParametroSimples.CONECTOR_AND));
}
filtroHidrometroLocalArmazenagem
.adicionarParametro(new ParametroSimples(
FiltroHidrometroLocalArmazenagem.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
filtroHidrometroLocalArmazenagem
.setCampoOrderBy( FiltroHidrometroLocalArmazenagem.DESCRICAO);
// Pesquisa de acordo com os par�metros informados no filtro
Collection colecaoHidrometroLocalArmazenagem = fachada.pesquisar(
filtroHidrometroLocalArmazenagem,
HidrometroLocalArmazenagem.class.getName());
// Verifica se a pesquisa retornou algum objeto para a cole��o
if (colecaoHidrometroLocalArmazenagem != null
&& !colecaoHidrometroLocalArmazenagem.isEmpty()) {
// Obt�m o objeto da cole��o pesquisada
HidrometroLocalArmazenagem hidrometroLocalArmazenagem = (HidrometroLocalArmazenagem) Util
.retonarObjetoDeColecao(colecaoHidrometroLocalArmazenagem);
if(localArmazenagemOrigem != null && Integer.parseInt(tipo) == 1){
// Exibe o c�digo e a descri��o pesquisa na p�gina
httpServletRequest.setAttribute("corLocalArmazenagemOrigem", "valor");
}else{
if(localArmazenagemDestino != null && Integer.parseInt(tipo) == 2){
// Exibe o c�digo e a descri��o pesquisa na p�gina
httpServletRequest.setAttribute("corLocalArmazenagemDestino", "valor");
}
}
if (localArmazenagemOrigem != null && Integer.parseInt(tipo) == 1) {
hidrometroActionForm
.setLocalArmazenagemOrigem(hidrometroLocalArmazenagem
.getId().toString());
hidrometroActionForm
.setLocalArmazenagemDescricaoOrigem(hidrometroLocalArmazenagem
.getDescricao());
}
if (localArmazenagemDestino != null && Integer.parseInt(tipo) == 2) {
hidrometroActionForm
.setLocalArmazenagemDestino(hidrometroLocalArmazenagem
.getId().toString());
hidrometroActionForm
.setLocalArmazenagemDescricaoDestino(hidrometroLocalArmazenagem
.getDescricao());
}
} else {
if (localArmazenagemOrigem != null
&& !localArmazenagemOrigem.equals("") && Integer.parseInt(tipo) == 1) {
hidrometroActionForm
.setLocalArmazenagemDescricaoOrigem(ConstantesSistema.CODIGO_LOCAL_ARMAZENAGEM_INEXISTENTE);
hidrometroActionForm
.setLocalArmazenagemOrigem("");
// Exibe mensagem de c�digo inexiste e limpa o campo de
// c�digo
httpServletRequest.setAttribute("corLocalArmazenagemOrigem",
"exception");
}
if (localArmazenagemDestino != null
&& !localArmazenagemDestino.equals("") && Integer.parseInt(tipo) == 2) {
hidrometroActionForm
.setLocalArmazenagemDescricaoDestino(ConstantesSistema.CODIGO_LOCAL_ARMAZENAGEM_INEXISTENTE);
hidrometroActionForm
.setLocalArmazenagemDestino("");
// Exibe mensagem de c�digo inexiste e limpa o campo de
// c�digo
httpServletRequest.setAttribute("corLocalArmazenagemDestino",
"exception");
}
}
}
// Pesquisa Usuario
if(usuario != null && !usuario.equals("")){
FiltroUsuario filtroUsuario = new FiltroUsuario();
filtroUsuario.adicionarParametro(new ParametroSimples(FiltroUsuario.ID, usuario));
Collection colecaoUsuario = fachada.pesquisar(
filtroUsuario,Usuario.class.getName());
if (colecaoUsuario != null && !colecaoUsuario.isEmpty()) {
httpServletRequest.setAttribute("corUsuario", "valor");
// O imovel foi encontrado
hidrometroActionForm.setUsuario(""
+ ((Usuario) ((List) colecaoUsuario).get(0)).getId());
hidrometroActionForm.setNomeUsuario(""
+ ((Usuario) ((List) colecaoUsuario).get(0)).getNomeUsuario());
} else {
httpServletRequest.setAttribute("corUsuario","exception");
hidrometroActionForm
.setNomeUsuario(ConstantesSistema.USUARIO_INEXISTENTE);
}
}
if (sessao.getAttribute("colecaoHidrometroMotivoMovimentacao") == null) {
// Filtro de hidr�metro motivo movimentacao para obter todas os
// motivo ativas
FiltroHidrometroMotivoMovimentacao filtroHidrometroMotivoMovimentacao = new FiltroHidrometroMotivoMovimentacao();
filtroHidrometroMotivoMovimentacao
.adicionarParametro(new ParametroSimples(
FiltroHidrometroMotivoMovimentacao.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
filtroHidrometroMotivoMovimentacao
.setCampoOrderBy(FiltroHidrometroMotivoMovimentacao.DESCRICAO);
// Pesquisa a cole��o de classe metrol�gica
Collection colecaoHidrometroMotivoMovimentacao = fachada.pesquisar(
filtroHidrometroMotivoMovimentacao,
HidrometroMotivoMovimentacao.class.getName());
// Envia as cole��es na sess�o
sessao.setAttribute("colecaoHidrometroMotivoMovimentacao",
colecaoHidrometroMotivoMovimentacao);
}
if(limparCampos != null)
{
hidrometroActionForm.reset(actionMapping, httpServletRequest);
limparCampos = null;
}
sessao.setAttribute("tela", tela);
return retorno;
}
}