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.HidrometroCapacidade; 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; public class AtualizarCapacidadeHidrometroAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { // Seta o retorno ActionForward retorno = actionMapping.findForward("telaSucesso"); // Obt�m a inst�ncia da fachada Fachada fachada = Fachada.getInstancia(); // Mudar isso quando tiver esquema de seguran�a HttpSession sessao = httpServletRequest.getSession(false); AtualizarCapacidadeHidrometroActionForm atualizarCapacidadeHidrometroActionForm = (AtualizarCapacidadeHidrometroActionForm) actionForm; HidrometroCapacidade hidrometroCapacidade = (HidrometroCapacidade) sessao .getAttribute("hidrometroCapacidadeAtualizar"); hidrometroCapacidade.setId(new Integer( atualizarCapacidadeHidrometroActionForm.getIdentificador())); hidrometroCapacidade .setDescricao(atualizarCapacidadeHidrometroActionForm .getDescricao()); hidrometroCapacidade .setDescricaoAbreviada(atualizarCapacidadeHidrometroActionForm .getAbreviatura()); hidrometroCapacidade.setLeituraMinimo(new Short( atualizarCapacidadeHidrometroActionForm.getNumMinimo())); hidrometroCapacidade.setLeituraMaximo((new Short( atualizarCapacidadeHidrometroActionForm.getNumMaximo()))); hidrometroCapacidade .setIndicadorUso(atualizarCapacidadeHidrometroActionForm .getIndicadoruso()); hidrometroCapacidade.setNumeroOrdem(new Short( atualizarCapacidadeHidrometroActionForm.getNumOrdem())); hidrometroCapacidade .setCodigoHidrometroCapacidade(atualizarCapacidadeHidrometroActionForm .getCodigo()); String numMinimo = atualizarCapacidadeHidrometroActionForm .getNumMinimo(); String numMaximo = atualizarCapacidadeHidrometroActionForm .getNumMaximo(); String codigo = atualizarCapacidadeHidrometroActionForm.getCodigo(); String numOrdem = atualizarCapacidadeHidrometroActionForm.getNumOrdem(); Collection colecaoPesquisa = null; // O numero maximo de digitos de leitura do hidr�metro � obrigat�rio. if (numMaximo != null && !numMaximo.equalsIgnoreCase("")) { if (new Integer(numMaximo).intValue() < new Integer(numMinimo) .intValue()) { throw new ActionServletException( "atencao.numero_minimo_nao_pode_ser_maior_que_numero_maximo", null, "Numero maximo de digitos de leitura do hidr�metro"); } hidrometroCapacidade.setLeituraMaximo(new Short(numMaximo)); } // Verificar exist�ncia do c�digo da Capacidade do Hidrometro que n�o seja ele mesmo FiltroHidrometroCapacidade filtroHidrometroCapacidade = new FiltroHidrometroCapacidade(); filtroHidrometroCapacidade.adicionarParametro(new ParametroSimples( FiltroHidrometroCapacidade.CODIGO_HIDROMETRO_CAPACIDADE, hidrometroCapacidade.getCodigoHidrometroCapacidade())); // Verificar exist�ncia da Capacidade do Hidrometro colecaoPesquisa = fachada.pesquisar(filtroHidrometroCapacidade, HidrometroCapacidade.class.getName()); if (colecaoPesquisa != null && !colecaoPesquisa.isEmpty()) { HidrometroCapacidade hidrometroCapacidadeBase = (HidrometroCapacidade) colecaoPesquisa .iterator().next(); if ((hidrometroCapacidadeBase.getId().intValue() != hidrometroCapacidade .getId().intValue()) && (hidrometroCapacidadeBase .getCodigoHidrometroCapacidade() .equalsIgnoreCase(hidrometroCapacidade .getCodigoHidrometroCapacidade()))) { // Capacidade de hidrometro j� existe throw new ActionServletException( "atencao.pesquisa_capacidade_do_hidrometro_ja_cadastrada", null, codigo); } } //Verifica a Existencia de um Numero de Ordem J� existente na base que n�o seja ele mesmo filtroHidrometroCapacidade = new FiltroHidrometroCapacidade(); filtroHidrometroCapacidade.adicionarParametro(new ParametroSimples( FiltroHidrometroCapacidade.NUMERO_ORDEM, hidrometroCapacidade.getNumeroOrdem())); // Verificar exist�ncia do numero de ordem da Capacidade do Hidrometro colecaoPesquisa = fachada.pesquisar(filtroHidrometroCapacidade, HidrometroCapacidade.class.getName()); if (colecaoPesquisa != null && !colecaoPesquisa.isEmpty()) { HidrometroCapacidade hidrometroCapacidadeBase = (HidrometroCapacidade) colecaoPesquisa .iterator().next(); if ((hidrometroCapacidadeBase.getId().intValue() != hidrometroCapacidade .getId().intValue()) && (hidrometroCapacidadeBase .getNumeroOrdem().toString() .equalsIgnoreCase(hidrometroCapacidade .getNumeroOrdem().toString()))) { // Numero de Ordem j� existe throw new ActionServletException( "atencao.pesquisa_numero_de_ordem_da_capacidade_do_hidrometro_ja_cadastrada", null, numOrdem); } } fachada.atualizarCapacidadeHidrometro(hidrometroCapacidade); montarPaginaSucesso(httpServletRequest, "Capacidade de Hidr�metro de c�digo " + hidrometroCapacidade.getId().toString() + " atualizado com sucesso.", "Realizar outra Manuten��o de Capacidade de Hid�metro", "exibirFiltrarCapacidadeHidrometroAction.do?menu=sim"); return retorno; } }