package gcom.gui.micromedicao.hidrometro;
import gcom.cadastro.localidade.FiltroLocalidade;
import gcom.cadastro.localidade.FiltroQuadra;
import gcom.cadastro.localidade.FiltroSetorComercial;
import gcom.cadastro.localidade.Localidade;
import gcom.cadastro.localidade.Quadra;
import gcom.cadastro.localidade.SetorComercial;
import gcom.fachada.Fachada;
import gcom.gui.GcomAction;
import gcom.micromedicao.hidrometro.FiltroHidrometroCapacidade;
import gcom.micromedicao.hidrometro.FiltroHidrometroClasseMetrologica;
import gcom.micromedicao.hidrometro.FiltroHidrometroDiametro;
import gcom.micromedicao.hidrometro.FiltroHidrometroLocalArmazenagem;
import gcom.micromedicao.hidrometro.FiltroHidrometroMarca;
import gcom.micromedicao.hidrometro.FiltroHidrometroRelojoaria;
import gcom.micromedicao.hidrometro.FiltroHidrometroSituacao;
import gcom.micromedicao.hidrometro.FiltroHidrometroTipo;
import gcom.micromedicao.hidrometro.HidrometroCapacidade;
import gcom.micromedicao.hidrometro.HidrometroClasseMetrologica;
import gcom.micromedicao.hidrometro.HidrometroDiametro;
import gcom.micromedicao.hidrometro.HidrometroLocalArmazenagem;
import gcom.micromedicao.hidrometro.HidrometroMarca;
import gcom.micromedicao.hidrometro.HidrometroRelojoaria;
import gcom.micromedicao.hidrometro.HidrometroSituacao;
import gcom.micromedicao.hidrometro.HidrometroTipo;
import gcom.util.ConstantesSistema;
import gcom.util.Util;
import gcom.util.filtro.ParametroSimples;
import java.util.Collection;
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 Administrador
* @created 1 de Setembro de 2005
*/
public class ExibirFiltrarHidrometroAction 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;
Collection colecaoHidrometroCapacidade = null;
String tela = (String) httpServletRequest.getParameter("tela");
// Seta a a��o de retorno
ActionForward retorno = actionMapping.findForward("filtrarHidrometro");
// Obt�m a sess�o
HttpSession sessao = httpServletRequest.getSession(false);
// Obt�m a facahda
Fachada fachada = Fachada.getInstancia();
// Obt�m o objetoCosulta vindo na sess�o
String objetoConsulta = (String) httpServletRequest
.getParameter("objetoConsulta");
// 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();
filtroHidrometroLocalArmazenagem
.adicionarParametro(new ParametroSimples(
FiltroHidrometroLocalArmazenagem.ID, new Integer(
hidrometroActionForm
.getIdLocalArmazenagem()),
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);
// Exibe o c�digo e a descri��o pesquisa na p�gina
httpServletRequest.setAttribute("corLocalArmazenagem", "valor");
hidrometroActionForm
.setIdLocalArmazenagem(hidrometroLocalArmazenagem
.getId().toString());
hidrometroActionForm
.setLocalArmazenagemDescricao(hidrometroLocalArmazenagem
.getDescricao());
httpServletRequest.setAttribute("nomeCampo", "fixo");
} else {
// Exibe mensagem de c�digo inexiste e limpa o campo de c�digo
httpServletRequest.setAttribute("corLocalArmazenagem",
"exception");
hidrometroActionForm.setIdLocalArmazenagem("");
hidrometroActionForm
.setLocalArmazenagemDescricao("LOCAL DE ARMAZENAGEM INEXISTENTE");
httpServletRequest.setAttribute("nomeCampo",
"idLocalArmazenagem");
}
// Verifica se os objetos est�o na sess�o
} // CRC-1671 / Analista:Rosana
// Verifica se a situacao do hidrometro = instalado
// e libera os campos de localidade, setor e quadra para o filtro
else if (httpServletRequest.getParameter("situacao") != null) {
if (hidrometroActionForm.getIdHidrometroSituacao() != null
&& !hidrometroActionForm.getIdHidrometroSituacao().equals(
"-1")) {
if (hidrometroActionForm.getIdHidrometroSituacao().equals(
HidrometroSituacao.INSTALADO.toString())) {
if (hidrometroActionForm.getIdLocalidade() != null
&& !hidrometroActionForm.getIdLocalidade().equals("")) {
this.pesquisarLocalidade(hidrometroActionForm, httpServletRequest);
if (hidrometroActionForm.getCodigoSetorComercial() != null
&& !hidrometroActionForm.getCodigoSetorComercial().equals(
"")) {
this.pesquisarSetorComercial(hidrometroActionForm,
httpServletRequest);
}
if (hidrometroActionForm.getNumeroQuadra() != null
&& !hidrometroActionForm.getNumeroQuadra().equals("")) {
this.pesquisarQuadra(hidrometroActionForm, httpServletRequest);
}
}
sessao.setAttribute("instalado", true);
}else{
hidrometroActionForm.setIdLocalidade("");
hidrometroActionForm.setNomeLocalidade("");
hidrometroActionForm.setIdSetorComercial("");
hidrometroActionForm.setCodigoSetorComercial("");
hidrometroActionForm.setNomeSetorComercial("");
hidrometroActionForm.setNumeroQuadra("");
hidrometroActionForm.setIdQuadra("");
sessao.removeAttribute("instalado");
}
}else{
sessao.removeAttribute("instalado");
hidrometroActionForm.setIdLocalidade("");
hidrometroActionForm.setNomeLocalidade("");
hidrometroActionForm.setIdSetorComercial("");
hidrometroActionForm.setCodigoSetorComercial("");
hidrometroActionForm.setNomeSetorComercial("");
hidrometroActionForm.setNumeroQuadra("");
hidrometroActionForm.setIdQuadra("");
}
}else{
sessao.setAttribute("tela", tela);
}
if (sessao.getAttribute("colecaoHidrometroClasseMetrologica") == null
&& sessao.getAttribute("colecaoHidrometroMarca") == null
&& sessao.getAttribute("colecaoHidrometroDiametro") == null
&& sessao.getAttribute("colecaoHidrometroCapacidade") == null
&& sessao.getAttribute("colecaoHidrometroTipo") == null
&& sessao.getAttribute("colecaoHidrometroRelojoaria") == null) {
hidrometroActionForm.setIndicadorMacromedidor("-1");
// Filtro de hidr�metro classe metrol�gica para obter todas as
// classes metrol�gicas ativas
FiltroHidrometroClasseMetrologica filtroHidrometroClasseMetrologica = new FiltroHidrometroClasseMetrologica();
filtroHidrometroClasseMetrologica
.adicionarParametro(new ParametroSimples(
FiltroHidrometroClasseMetrologica.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
filtroHidrometroClasseMetrologica
.setCampoOrderBy(FiltroHidrometroClasseMetrologica.DESCRICAO);
// Pesquisa a cole��o de classe metrol�gica
Collection colecaoHidrometroClasseMetrologica = fachada.pesquisar(
filtroHidrometroClasseMetrologica,
HidrometroClasseMetrologica.class.getName());
// Filtro de hidr�metro marca para obter todas as marcas de
// hidr�metros ativas
FiltroHidrometroMarca filtroHidrometroMarca = new FiltroHidrometroMarca();
filtroHidrometroMarca.adicionarParametro(new ParametroSimples(
FiltroHidrometroMarca.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
filtroHidrometroMarca
.setCampoOrderBy(FiltroHidrometroMarca.DESCRICAO);
// Pesquisa a cole��o de hidr�metro marca
Collection colecaoHidrometroMarca = fachada.pesquisar(
filtroHidrometroMarca, HidrometroMarca.class.getName());
// Filtro de hidr�metro di�metro para obter todos os di�metros de
// hidr�metros ativos
FiltroHidrometroDiametro filtroHidrometroDiametro = new FiltroHidrometroDiametro();
filtroHidrometroDiametro.adicionarParametro(new ParametroSimples(
FiltroHidrometroDiametro.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
filtroHidrometroDiametro
.setCampoOrderBy(FiltroHidrometroDiametro.NUMERO_ORDEM);
// Pesquisa a cole��o de hidr�metro capacidade
Collection colecaoHidrometroDiametro = fachada.pesquisar(
filtroHidrometroDiametro, HidrometroDiametro.class
.getName());
// Filtro de hidr�metro capacidade para obter todos as capacidade de
// hidr�metros ativas
FiltroHidrometroCapacidade filtroHidrometroCapacidade = new FiltroHidrometroCapacidade();
filtroHidrometroCapacidade.adicionarParametro(new ParametroSimples(
FiltroHidrometroCapacidade.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
filtroHidrometroCapacidade
.setCampoOrderBy(FiltroHidrometroCapacidade.NUMERO_ORDEM);
// Pesquisa a cole��o de hidr�metro capacidade
colecaoHidrometroCapacidade = fachada.pesquisar(
filtroHidrometroCapacidade, HidrometroCapacidade.class
.getName());
// Filtro de hidr�metro tipo para obter todos os tipos de
// hidr�metros ativos
FiltroHidrometroTipo filtroHidrometroTipo = new FiltroHidrometroTipo();
filtroHidrometroTipo.adicionarParametro(new ParametroSimples(
FiltroHidrometroTipo.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
filtroHidrometroTipo
.setCampoOrderBy(FiltroHidrometroTipo.DESCRICAO);
// Pesquisa a cole��o de hidr�metro tipo
Collection colecaoHidrometroTipo = fachada.pesquisar(
filtroHidrometroTipo, HidrometroTipo.class.getName());
// Filtro de hidr�metro situa��o para obter todos os tipos de
// hidr�metros ativos
FiltroHidrometroSituacao filtroHidrometroSituacao = new FiltroHidrometroSituacao();
filtroHidrometroSituacao.adicionarParametro(new ParametroSimples(
FiltroHidrometroSituacao.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
filtroHidrometroSituacao
.setCampoOrderBy(FiltroHidrometroTipo.DESCRICAO);
// Pesquisa a cole��o de hidr�metro tipo
Collection colecaoHidrometroSituacao = fachada.pesquisar(
filtroHidrometroSituacao, HidrometroSituacao.class
.getName());
// Filtro de hidr�metro relojoaria para obter todos os tipos de
// hidr�metros relojoaria ativos
FiltroHidrometroRelojoaria filtroHidrometroRelojoaria = new FiltroHidrometroRelojoaria();
filtroHidrometroRelojoaria.adicionarParametro(new ParametroSimples(
FiltroHidrometroRelojoaria.INDICADOR_USO,
ConstantesSistema.INDICADOR_USO_ATIVO));
filtroHidrometroRelojoaria
.setCampoOrderBy(FiltroHidrometroRelojoaria.DESCRICAO);
// Pesquisa a cole��o de hidr�metro tipo
Collection colecaoHidrometroRelojoaria = fachada.pesquisar(
filtroHidrometroRelojoaria, HidrometroRelojoaria.class.getName());
// hidrometroActionForm
// .setIndicadorMacromedidor(Hidrometro.INDICADOR_COMERCIAL
// .toString());
// Envia as cole��es na sess�o
sessao.setAttribute("colecaoHidrometroClasseMetrologica",
colecaoHidrometroClasseMetrologica);
sessao.setAttribute("colecaoHidrometroMarca",
colecaoHidrometroMarca);
sessao.setAttribute("colecaoHidrometroDiametro",
colecaoHidrometroDiametro);
sessao.setAttribute("colecaoHidrometroCapacidade",
colecaoHidrometroCapacidade);
sessao.setAttribute("colecaoHidrometroSituacao",
colecaoHidrometroSituacao);
sessao.setAttribute("colecaoHidrometroRelojoaria",
colecaoHidrometroRelojoaria);
sessao.setAttribute("colecaoHidrometroTipo", colecaoHidrometroTipo);
}
httpServletRequest.removeAttribute("i");
String atualizar = httpServletRequest.getParameter("atualizar");
String menu = httpServletRequest.getParameter("menu");
if (atualizar == null && menu == null){
boolean i = true;
httpServletRequest.setAttribute("i",i);
}
httpServletRequest.setAttribute("nomeCampo","numeroHidrometro");
return retorno;
}
private void pesquisarLocalidade(HidrometroActionForm hidrometroActionForm,
HttpServletRequest httpServletRequest){
Collection colecaoPesquisa;
FiltroLocalidade filtroLocalidade = new FiltroLocalidade();
filtroLocalidade.adicionarParametro(new ParametroSimples(
FiltroLocalidade.ID, hidrometroActionForm.getIdLocalidade()));
filtroLocalidade.adicionarParametro(new ParametroSimples(
FiltroLocalidade.INDICADORUSO,
ConstantesSistema.INDICADOR_USO_ATIVO));
// Retorna localidade
colecaoPesquisa = this.getFachada().pesquisar(filtroLocalidade,
Localidade.class.getName());
if (colecaoPesquisa == null || colecaoPesquisa.isEmpty()) {
// Localidade nao encontrada
// Limpa os campos localidadeOrigemID e nomeLocalidadeOrigem do
// formul�rio
hidrometroActionForm.setIdLocalidade("");
hidrometroActionForm
.setNomeLocalidade("LOCALIDADE INEXISTENTE");
httpServletRequest.setAttribute("corLocalidade",
"exception");
httpServletRequest.setAttribute("nomeCampo",
"idLocalidade");
}else{
Localidade objetoLocalidade = (Localidade) Util
.retonarObjetoDeColecao(colecaoPesquisa);
hidrometroActionForm.setIdLocalidade(String
.valueOf(objetoLocalidade.getId()));
hidrometroActionForm
.setNomeLocalidade(objetoLocalidade.getDescricao());
httpServletRequest.setAttribute("corLocalidade", "valor");
httpServletRequest.setAttribute("nomeCampo",
"codigoSetorComercial");
}
}
private void pesquisarSetorComercial(HidrometroActionForm hidrometroActionForm,
HttpServletRequest httpServletRequest){
Collection colecaoPesquisa = null;
FiltroSetorComercial filtroSetorComercial = new FiltroSetorComercial();
// O campo localidadeOrigemID ser� obrigat�rio
if (hidrometroActionForm.getIdLocalidade() != null
&& !hidrometroActionForm.getIdLocalidade().trim().equalsIgnoreCase("")) {
// Adiciona o id da localidade que est� no formul�rio para
// compor a pesquisa.
filtroSetorComercial.adicionarParametro(new ParametroSimples(
FiltroSetorComercial.ID_LOCALIDADE, hidrometroActionForm.getIdLocalidade()));
// Adiciona o c�digo do setor comercial que esta no formul�rio
// para compor a pesquisa.
filtroSetorComercial.adicionarParametro(new ParametroSimples(
FiltroSetorComercial.CODIGO_SETOR_COMERCIAL,
hidrometroActionForm.getCodigoSetorComercial()));
filtroSetorComercial.adicionarParametro(new ParametroSimples(
FiltroSetorComercial.INDICADORUSO,
ConstantesSistema.INDICADOR_USO_ATIVO));
// Retorna setorComercial
colecaoPesquisa = this.getFachada().pesquisar(filtroSetorComercial,
SetorComercial.class.getName());
if (colecaoPesquisa == null || colecaoPesquisa.isEmpty()) {
// Setor Comercial nao encontrado
// Limpa os campos setorComercialOrigemCD,
// nomeSetorComercialOrigem e setorComercialOrigemID do
// formul�rio
hidrometroActionForm.setIdSetorComercial("");
hidrometroActionForm
.setCodigoSetorComercial("");
hidrometroActionForm
.setNomeSetorComercial("Setor comercial inexistente.");
httpServletRequest.setAttribute("corSetorComercial",
"exception");
httpServletRequest.setAttribute("nomeCampo",
"codigoSetorComercial");
} else {
SetorComercial objetoSetorComercial = (SetorComercial) Util
.retonarObjetoDeColecao(colecaoPesquisa);
hidrometroActionForm.setIdSetorComercial(String
.valueOf(objetoSetorComercial.getId()));
hidrometroActionForm
.setCodigoSetorComercial(String
.valueOf(objetoSetorComercial.getCodigo()));
hidrometroActionForm
.setNomeSetorComercial(objetoSetorComercial
.getDescricao());
httpServletRequest.setAttribute("corSetorComercial",
"valor");
httpServletRequest.setAttribute("nomeCampo",
"numeroQuadra");
}
} else {
// Limpa o campo setorComercialOrigemCD do formul�rio
hidrometroActionForm
.setCodigoSetorComercial("");
hidrometroActionForm
.setNomeSetorComercial("Informe a localidade");
httpServletRequest.setAttribute("corSetorComercial",
"exception");
}
}
private void pesquisarQuadra(HidrometroActionForm hidrometroActionForm,
HttpServletRequest httpServletRequest) {
Collection colecaoPesquisa = null;
FiltroQuadra filtroQuadra = new FiltroQuadra();
if (hidrometroActionForm.getCodigoSetorComercial() != null
&& !hidrometroActionForm.getCodigoSetorComercial().trim()
.equalsIgnoreCase("")
&& hidrometroActionForm.getIdSetorComercial() != null
&& !hidrometroActionForm.getIdSetorComercial().trim()
.equalsIgnoreCase("")) {
// Adiciona o id do setor comercial que est� no formul�rio para
// compor a pesquisa.
filtroQuadra.adicionarParametro(new ParametroSimples(
FiltroQuadra.ID_SETORCOMERCIAL, hidrometroActionForm
.getIdSetorComercial()));
// Adiciona o n�mero da quadra que esta no formul�rio para
// compor a pesquisa.
filtroQuadra.adicionarParametro(new ParametroSimples(
FiltroQuadra.NUMERO_QUADRA, hidrometroActionForm
.getNumeroQuadra()));
filtroQuadra.adicionarParametro(new ParametroSimples(
FiltroQuadra.INDICADORUSO,
ConstantesSistema.INDICADOR_USO_ATIVO));
// Retorna quadra
colecaoPesquisa = this.getFachada().pesquisar(filtroQuadra,
Quadra.class.getName());
if (colecaoPesquisa == null || colecaoPesquisa.isEmpty()) {
// Quadra nao encontrada
// Limpa os campos quadraOrigemNM e quadraOrigemID do
// formul�rio
hidrometroActionForm.setNumeroQuadra("");
hidrometroActionForm.setIdQuadra("");
// Mensagem de tela
hidrometroActionForm.setQuadraMensagem("QUADRA INEXISTENTE.");
httpServletRequest.setAttribute("corQuadra", "exception");
httpServletRequest.setAttribute("nomeCampo", "numeroQuadra");
} else {
Quadra objetoQuadra = (Quadra) Util
.retonarObjetoDeColecao(colecaoPesquisa);
hidrometroActionForm.setNumeroQuadra(String
.valueOf(objetoQuadra.getNumeroQuadra()));
hidrometroActionForm.setIdQuadra(String.valueOf(objetoQuadra
.getId()));
httpServletRequest.setAttribute("corQuadra", "valor");
}
} else {
// Limpa o campo quadraOrigemNM do formul�rio
hidrometroActionForm.setNumeroQuadra("");
hidrometroActionForm
.setQuadraMensagem("Informe o setor comercial.");
httpServletRequest.setAttribute("corQuadra", "exception");
httpServletRequest
.setAttribute("nomeCampo", "codigoSetorComercial");
}
}
}