package gcom.gui.micromedicao.hidrometro; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.micromedicao.hidrometro.FiltroHidrometroCapacidade; import gcom.micromedicao.hidrometro.FiltroHidrometroClasseMetrologica; import gcom.micromedicao.hidrometro.FiltroHidrometroDiametro; import gcom.micromedicao.hidrometro.FiltroHidrometroMarca; 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.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 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; /** * Action respons�vel pela pre-exibi��o da atualiza��o do conjunto de hidrometro * * @author S�vio Luiz * @created 14 de Setembro de 2005 */ public class ExibirAtualizarConjuntoHidrometroAction extends GcomAction { /** * Description of the Method * * @param actionMapping * Description of the Parameter * @param actionForm * Description of the Parameter * @param httpServletRequest * Description of the Parameter * @param httpServletResponse * Description of the Parameter * @return Description of the Return Value */ public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { ActionForward retorno = actionMapping .findForward("atualizarConjuntoHidrometro"); // Obt�m o action form HidrometroActionForm hidrometroActionForm = (HidrometroActionForm) actionForm; // Obt�m a sess�o HttpSession sessao = httpServletRequest.getSession(false); Collection colecaoHidrometroCapacidade = null; /* * if(sessao.getAttribute("colecaoHidrometroCapacidade")!= null && * !sessao.getAttribute("colecaoHidrometroCapacidade").equals("")){ * colecaoHidrometroCapacidade = * (Collection)sessao.getAttribute("colecaoHidrometroCapacidade"); } */ // Filtro de hidr�metro capacidade para obter capacidade de hidr�metro // de acordo com o id FiltroHidrometroCapacidade filtroHidrometroCapacidadeNumeroDigitos = new FiltroHidrometroCapacidade(); String fixo = (String) sessao.getAttribute("fixo"); String faixaInicial = (String) sessao.getAttribute("faixaInicial"); String faixaFinal = (String) sessao.getAttribute("faixaFinal"); // Obt�m a facahda Fachada fachada = Fachada.getInstancia(); Collection hidrometros = fachada.pesquisarNumeroHidrometroFaixa(fixo,faixaInicial,faixaFinal); // caso o pesquisa intervalo seja diferente de nulo ent�o veio do // hidrometro_atualizar_conjunto // e n�o ser� necessario verificar novamente se o conjunto de // hidrometros // est�o com o mesmo valor String pesquisaIntervaloPorCapacidade = httpServletRequest .getParameter("pesquisaIntervalo"); if (pesquisaIntervaloPorCapacidade == null || pesquisaIntervaloPorCapacidade.equals("")) { // Verifica se os objetos est�o na sess�o if (hidrometros != null && !hidrometros.isEmpty()) { Iterator hidrometroIterator = hidrometros.iterator(); boolean primeiraVez = true; Hidrometro primeiroHidrometro = null; while (hidrometroIterator.hasNext()) { if (primeiraVez) { primeiraVez = false; primeiroHidrometro = (Hidrometro) hidrometroIterator .next(); // seta os valores no form sessao.setAttribute("hidrometro", primeiroHidrometro); hidrometroActionForm.setFixo(fixo); hidrometroActionForm.setFaixaFinal(faixaFinal); hidrometroActionForm.setFaixaInicial(faixaInicial); hidrometroActionForm .setAnoFabricacao(formatarResultado("" + primeiroHidrometro.getAnoFabricacao())); SimpleDateFormat dataFormatoAtual = new SimpleDateFormat( "dd/MM/yyyy"); // joga em dataInicial a parte da data String dataAquisicao = dataFormatoAtual .format(primeiroHidrometro.getDataAquisicao()); hidrometroActionForm .setDataAquisicao(formatarResultado(dataAquisicao)); hidrometroActionForm .setIdHidrometroCapacidade(formatarResultado("" + primeiroHidrometro .getHidrometroCapacidade() .getId())); hidrometroActionForm .setIdHidrometroClasseMetrologica(formatarResultado("" + primeiroHidrometro .getHidrometroClasseMetrologica() .getId())); hidrometroActionForm .setIdHidrometroDiametro(formatarResultado("" + primeiroHidrometro .getHidrometroDiametro() .getId())); hidrometroActionForm .setIdHidrometroMarca(formatarResultado("" + primeiroHidrometro .getHidrometroMarca().getId())); hidrometroActionForm .setIdHidrometroTipo(formatarResultado("" + primeiroHidrometro .getHidrometroTipo().getId())); hidrometroActionForm .setIndicadorMacromedidor(formatarResultado("" + primeiroHidrometro .getIndicadorMacromedidor())); hidrometroActionForm .setIdNumeroDigitosLeitura(formatarResultado("" + primeiroHidrometro .getNumeroDigitosLeitura())); if(primeiroHidrometro.getHidrometroRelojoaria() != null && !primeiroHidrometro.getHidrometroRelojoaria().equals("")){ hidrometroActionForm .setIdHidrometroRelojoaria(formatarResultado("" + primeiroHidrometro .getHidrometroRelojoaria().getId())); }else{ hidrometroActionForm .setIdHidrometroRelojoaria(""); } //Vazao Transicao if (primeiroHidrometro.getVazaoTransicao() != null ) { hidrometroActionForm .setVazaoTransicao( "" + Util.formatarMoedaReal(primeiroHidrometro.getVazaoTransicao())) ; } else { hidrometroActionForm.setVazaoTransicao( "" ); } //Vazao Nominal if (primeiroHidrometro.getVazaoNominal() != null ) { hidrometroActionForm .setVazaoNominal( "" + Util.formatarMoedaReal(primeiroHidrometro.getVazaoNominal())); } else { hidrometroActionForm.setVazaoNominal( "" ); } //Vazao Minima if (primeiroHidrometro.getVazaoMinima() != null ) { hidrometroActionForm .setVazaoMinima( "" + Util.formatarMoedaReal(primeiroHidrometro.getVazaoMinima())) ; } else { hidrometroActionForm.setVazaoMinima( "" ); } //Nota Fiscal if(primeiroHidrometro.getNotaFiscal() != null ) { hidrometroActionForm .setNotaFiscal( "" + primeiroHidrometro.getNotaFiscal() ) ; } else { hidrometroActionForm.setNotaFiscal( "" ); } //Tempo Garantia Anos if(primeiroHidrometro.getTempoGarantiaAnos() != null ) { hidrometroActionForm .setTempoGarantiaAnos( "" + primeiroHidrometro.getTempoGarantiaAnos() ) ; } else { hidrometroActionForm.setTempoGarantiaAnos( "" ) ; } } else { Hidrometro hidrometro = (Hidrometro) hidrometroIterator .next(); // Caso as informa��es de data de aquisi��o, ano de // fabrica��o, finalidade da medi��o do hidr�metro, // classe metrol�gica, marca, di�metro, capacidade e // tipo // n�o sejam todas iguais if (!primeiroHidrometro.equalsHidrometro(hidrometro)) { throw new ActionServletException( "atencao.faixa.nao.uniformidade"); } } } // 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.DESCRICAO); // 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.DESCRICAO); // 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()); // 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); // Verifica se a cole��o de hidrometro capacidade � diferente de // null // if (colecaoHidrometroCapacidade != null // && !colecaoHidrometroCapacidade.isEmpty()) { // // // Obt�m o primeiro objeto da collection // Iterator colecaoHidrometroCapacidadeIterator = colecaoHidrometroCapacidade // .iterator(); // HidrometroCapacidade hidrometroCapacidade = (HidrometroCapacidade) colecaoHidrometroCapacidadeIterator // .next(); // Filtra pelo primeiro objeto da collection filtroHidrometroCapacidadeNumeroDigitos .adicionarParametro(new ParametroSimples( FiltroHidrometroCapacidade.ID, primeiroHidrometro.getHidrometroCapacidade().getId())); // } } } else { // Filtra pelo id selecionado no combobox filtroHidrometroCapacidadeNumeroDigitos .adicionarParametro(new ParametroSimples( FiltroHidrometroCapacidade.ID, new Integer( hidrometroActionForm .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); // 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++) { colecaoIntervalo.add(new Integer(leituraMinimo.intValue() + i)); } // Envia pela sess�o sessao.setAttribute("colecaoIntervalo", colecaoIntervalo); 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 ""; } } }