package gcom.gui.micromedicao.hidrometro; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.micromedicao.hidrometro.FiltroHidrometro; import gcom.micromedicao.hidrometro.FiltroHidrometroCapacidade; import gcom.micromedicao.hidrometro.FiltroHidrometroClasseMetrologica; import gcom.micromedicao.hidrometro.FiltroHidrometroDiametro; import gcom.micromedicao.hidrometro.FiltroHidrometroMarca; import gcom.micromedicao.hidrometro.FiltroHidrometroRelojoaria; import gcom.micromedicao.hidrometro.FiltroHidrometroTipo; import gcom.micromedicao.hidrometro.Hidrometro; import gcom.micromedicao.hidrometro.HidrometroCapacidade; import gcom.micromedicao.hidrometro.HidrometroClasseMetrologica; import gcom.micromedicao.hidrometro.HidrometroDiametro; import gcom.micromedicao.hidrometro.HidrometroMarca; import gcom.micromedicao.hidrometro.HidrometroRelojoaria; import gcom.micromedicao.hidrometro.HidrometroTipo; import gcom.util.ConstantesSistema; import gcom.util.Util; import gcom.util.filtro.ParametroSimples; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; 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 Administrador * @created 13 de Setembro de 2005 */ public class ExibirAtualizarHidrometroAction 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) { ActionForward retorno = actionMapping .findForward("atualizarHidrometro"); //Obt�m o action form AtualizarHidrometroActionForm atualizarHidrometroActionForm = (AtualizarHidrometroActionForm) actionForm; Collection colecaoHidrometroCapacidade = null; //Obt�m a sess�o HttpSession sessao = httpServletRequest.getSession(false); String idHidrometro = httpServletRequest .getParameter("idRegistroAtualizacao"); if (idHidrometro == null){ if (httpServletRequest.getAttribute("idRegistroAtualizacao") == null){ idHidrometro = (String) sessao.getAttribute("idHidrometro"); }else{ idHidrometro = (String) httpServletRequest.getAttribute("idRegistroAtualizacao").toString(); } } else { sessao.setAttribute("i", true); } //Obt�m a facahda Fachada fachada = Fachada.getInstancia(); Hidrometro hidrometro = null; //Verifica se os objetos est�o na sess�o if (idHidrometro != null && !idHidrometro.equals("")) { FiltroHidrometro filtroHidrometro = new FiltroHidrometro(); filtroHidrometro.adicionarParametro(new ParametroSimples( FiltroHidrometro.ID, idHidrometro)); filtroHidrometro.adicionarCaminhoParaCarregamentoEntidade("hidrometroRelojoaria"); Collection hidrometros = fachada.pesquisar(filtroHidrometro, Hidrometro.class.getName()); if (hidrometros != null && !hidrometros.isEmpty()) { hidrometro = (Hidrometro) ((List) hidrometros) .get(0); sessao.setAttribute("hidrometro", hidrometro); atualizarHidrometroActionForm .setNumeroHidrometro(formatarResultado(hidrometro .getNumero())); atualizarHidrometroActionForm.setAnoFabricacao(formatarResultado("" + hidrometro.getAnoFabricacao())); SimpleDateFormat dataFormatoAtual = new SimpleDateFormat( "dd/MM/yyyy"); //joga em dataInicial a parte da data String dataAquisicao = dataFormatoAtual.format(hidrometro .getDataAquisicao()); atualizarHidrometroActionForm .setDataAquisicao(formatarResultado(dataAquisicao)); atualizarHidrometroActionForm .setIdHidrometroCapacidade(formatarResultado("" + hidrometro.getHidrometroCapacidade().getId())); atualizarHidrometroActionForm .setIdHidrometroClasseMetrologica(formatarResultado("" + hidrometro.getHidrometroClasseMetrologica() .getId())); atualizarHidrometroActionForm .setIdHidrometroDiametro(formatarResultado("" + hidrometro.getHidrometroDiametro().getId())); atualizarHidrometroActionForm.setIdHidrometroMarca(formatarResultado("" + hidrometro.getHidrometroMarca().getId())); atualizarHidrometroActionForm.setIdHidrometroTipo(formatarResultado("" + hidrometro.getHidrometroTipo().getId())); atualizarHidrometroActionForm .setIndicadorMacromedidor(formatarResultado("" + hidrometro.getIndicadorMacromedidor())); atualizarHidrometroActionForm .setIdNumeroDigitosLeitura(formatarResultado("" + hidrometro.getNumeroDigitosLeitura())); if(hidrometro.getHidrometroRelojoaria() != null && !hidrometro.getHidrometroRelojoaria().equals("")){ atualizarHidrometroActionForm.setIdHidrometroRelojoaria(formatarResultado("" + hidrometro.getHidrometroRelojoaria().getId())); }else{ atualizarHidrometroActionForm.setIdHidrometroRelojoaria(""); } atualizarHidrometroActionForm .setVazaoTransicao(""+ Util.formatarMoedaReal(hidrometro.getVazaoTransicao())) ; atualizarHidrometroActionForm .setVazaoNominal(""+ Util.formatarMoedaReal(hidrometro.getVazaoNominal())); atualizarHidrometroActionForm .setVazaoMinima(""+ Util.formatarMoedaReal(hidrometro.getVazaoMinima())) ; atualizarHidrometroActionForm .setNotaFiscal( formatarResultado(""+ hidrometro.getNotaFiscal() ) ) ; atualizarHidrometroActionForm .setTempoGarantiaAnos( formatarResultado( "" + hidrometro.getTempoGarantiaAnos() ) ) ; // Im�vel em que o hidr�metro est� instalado String idImovel = fachada.pesquisarImovelHidrometroInstalado(hidrometro.getId()); atualizarHidrometroActionForm.setIdImovel(idImovel); } else { throw new ActionServletException("atencao.atualizacao.timestamp"); } //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 relojoaria para obter todos os 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()); //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("colecaoHidrometroTipo", colecaoHidrometroTipo); sessao.setAttribute("colecaoHidrometroRelojoaria", colecaoHidrometroRelojoaria); } //Filtro de hidr�metro capacidade para obter capacidade de hidr�metro // de acordo com o id FiltroHidrometroCapacidade filtroHidrometroCapacidadeNumeroDigitos = new FiltroHidrometroCapacidade(); //Verifica se a cole��o de hidrometro capacidade � diferente de null if (colecaoHidrometroCapacidade != null && !colecaoHidrometroCapacidade.isEmpty()) { //Obt�m o primeiro objeto da collection HidrometroCapacidade hidrometroCapacidade = null; if(hidrometro != null && hidrometro.getHidrometroCapacidade() != null){ hidrometroCapacidade = (HidrometroCapacidade) hidrometro.getHidrometroCapacidade(); }else{ Iterator colecaoHidrometroCapacidadeIterator = colecaoHidrometroCapacidade.iterator(); hidrometroCapacidade = (HidrometroCapacidade)colecaoHidrometroCapacidadeIterator.next(); } //Filtra pelo primeiro objeto da collection filtroHidrometroCapacidadeNumeroDigitos .adicionarParametro(new ParametroSimples( FiltroHidrometroCapacidade.ID, hidrometroCapacidade .getId())); } else { //Filtra pelo id selecionado no combobox filtroHidrometroCapacidadeNumeroDigitos .adicionarParametro(new ParametroSimples( FiltroHidrometroCapacidade.ID, new Integer( atualizarHidrometroActionForm .getIdHidrometroCapacidade()))); } //Pesquisa o n�mero de d�gitos de acordo com o filtro Collection colecaoHidrometroCapacidadeNumeroDigitos = fachada .pesquisar(filtroHidrometroCapacidadeNumeroDigitos, HidrometroCapacidade.class.getName()); //Retorna o objeto pesquisado HidrometroCapacidade hidrometroCapacidadeNumeroDigitos = (HidrometroCapacidade) Util .retonarObjetoDeColecao(colecaoHidrometroCapacidadeNumeroDigitos); if(hidrometroCapacidadeNumeroDigitos != null && !hidrometroCapacidadeNumeroDigitos.equals("")) { //Obt�m as leituras Integer leituraMinimo = new Integer(hidrometroCapacidadeNumeroDigitos .getLeituraMinimo().toString()); Integer leituraMaximo = new Integer(hidrometroCapacidadeNumeroDigitos .getLeituraMaximo().toString()); //Obt�m a quantidade da diferen�a int quantidade = (leituraMaximo.intValue() - leituraMinimo.intValue()) + 1; Collection colecaoIntervalo = new ArrayList(); //Adiciona a quantidade da diferen�a na cole��o for (int i = 0; i < quantidade; i++) { Hidrometro hidrometroDigitos = new Hidrometro(); Integer numero = leituraMinimo.intValue() + i; hidrometroDigitos.setNumeroDigitosLeitura(new Short(numero+ "")); colecaoIntervalo.add(hidrometroDigitos); } // Envia pela sess�o sessao.setAttribute("colecaoIntervalo", colecaoIntervalo); } // caso ainda n�o tenha sido setado o nome campo(na primeira vez) if (httpServletRequest.getParameter("manter") != null){ sessao.setAttribute("manter", "manter"); } atualizarHidrometroActionForm.setIdHidrometro(idHidrometro); return retorno; } /** * < <Descri��o do m�todo>> * * @param parametro * Descri��o do par�metro * @return Descri��o do retorno */ private String formatarResultado(String parametro) { if (parametro != null && !parametro.trim().equals("")) { if (parametro.equals("null")) { return ""; } else { return parametro.trim(); } } else { return ""; } } }