package gcom.gui.micromedicao.hidrometro; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.micromedicao.MovimentoHidrometroHelper; import gcom.micromedicao.hidrometro.FiltroHidrometroLocalArmazenagem; import gcom.micromedicao.hidrometro.HidrometroLocalArmazenagem; import gcom.seguranca.acesso.usuario.Usuario; import gcom.util.ConstantesSistema; import gcom.util.filtro.ParametroSimples; import java.util.Calendar; import java.util.Collection; import java.util.GregorianCalendar; 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 */ public class ConfirmarMovimentarHidrometroAction 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("telaSucesso"); //Obt�m o action form ConfirmarMovimentarHidrometroActionForm confirmarMovimentarHidrometroActionForm = (ConfirmarMovimentarHidrometroActionForm) actionForm; //Obt�m a sess�o HttpSession sessao = httpServletRequest.getSession(false); Usuario usuario = (Usuario) sessao.getAttribute("usuarioLogado"); Fachada fachada = Fachada.getInstancia(); //Filtro para obter o local de armazenagem ativo de id informado FiltroHidrometroLocalArmazenagem filtroHidrometroLocalArmazenagem = new FiltroHidrometroLocalArmazenagem(); filtroHidrometroLocalArmazenagem .adicionarParametro(new ParametroSimples( FiltroHidrometroLocalArmazenagem.ID, new Integer( confirmarMovimentarHidrometroActionForm .getIdLocalArmazenagemDestino()), ParametroSimples.CONECTOR_AND)); filtroHidrometroLocalArmazenagem .adicionarParametro(new ParametroSimples( FiltroHidrometroLocalArmazenagem.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); //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()) { throw new ActionServletException( "atencao.pesquisa.hidrometro_local_armazenagem.inexistente"); } // Validando data de Movimenta��o Integer dia = new Integer(confirmarMovimentarHidrometroActionForm.getDataMovimentacao().substring(0, 2)); Integer mes = new Integer(confirmarMovimentarHidrometroActionForm.getDataMovimentacao().substring(3, 5)); Integer ano = new Integer(confirmarMovimentarHidrometroActionForm.getDataMovimentacao().substring(6, 10)); Calendar dataMovimentacao = new GregorianCalendar(); dataMovimentacao.set(Calendar.YEAR, ano); dataMovimentacao.set(Calendar.MONTH, mes); dataMovimentacao.set(Calendar.DATE, dia); Calendar dataLimite = new GregorianCalendar(); dataLimite.add(Calendar.DATE, -720); // caso a data de movimenta��o seja menor que 720 dias antes da data atual if (dataMovimentacao.before(dataLimite)) { throw new ActionServletException("atencao.data.movimentacao.nao.inferior.data.limite"); } String numeroHidrometrosSelecionados = (String) sessao .getAttribute("numeroHidrometrosSelecionados"); Collection colecaoHidrometroSelecionado = (Collection) sessao .getAttribute("colecaoHidrometroSelecionado"); //Verifica se a colecao vai para batch ou n�o. if ( !colecaoHidrometroSelecionado.equals("") && colecaoHidrometroSelecionado.size() < 500 ) { fachada.inserirAtualizarMovimentacaoHidrometroIds( colecaoHidrometroSelecionado, confirmarMovimentarHidrometroActionForm.getDataMovimentacao(), confirmarMovimentarHidrometroActionForm.getHoraMovimentacao(), confirmarMovimentarHidrometroActionForm .getIdLocalArmazenagemDestino(), confirmarMovimentarHidrometroActionForm .getIdMotivoMovimentacao(), confirmarMovimentarHidrometroActionForm.getParecer(), usuario); } else { MovimentoHidrometroHelper helper = new MovimentoHidrometroHelper(); helper.setColecaoHidrometroSelecionado( colecaoHidrometroSelecionado ); helper.setDataMovimentacao( confirmarMovimentarHidrometroActionForm.getDataMovimentacao() ); helper.setHoraMovimentacao( confirmarMovimentarHidrometroActionForm.getHoraMovimentacao() ); helper.setIdLocalArmazenagemDestino( confirmarMovimentarHidrometroActionForm .getIdLocalArmazenagemDestino() ); helper.setIdMotivoMovimentacao(confirmarMovimentarHidrometroActionForm.getIdMotivoMovimentacao() ); helper.setUsuario(usuario); fachada.inserirAtualizarMovimentacaoHidrometroIdsBatch( helper ); } if ( !colecaoHidrometroSelecionado.equals("") && colecaoHidrometroSelecionado.size() < 500 ) { //M�todo utilizado para montar a p�gina de sucesso montarPaginaSucesso(httpServletRequest, numeroHidrometrosSelecionados + " Hidr�metro(s) " + " movimentado(s) com sucesso.", "Movimentar outro(s) Hidr�metro(s)", "exibirFiltrarHidrometroAction.do?menu=sim&tela=movimentarHidrometro"); } else { //M�todo utilizado para montar a p�gina de sucesso batch montarPaginaSucesso(httpServletRequest, "Movimenta��o de Hidr�metros enviado para Processamento", "Voltar", "exibirFiltrarHidrometroAction.do?menu=sim&tela=movimentarHidrometro"); } //Remove objetos da sess�o sessao.removeAttribute("colecaoHidrometroSelecionado"); sessao.removeAttribute("codigoDescricaoLocalArmazenagemAtual"); sessao.removeAttribute("numeroHidrometrosSelecionados"); sessao.removeAttribute("ManutencaoRegistroActionForm"); sessao.removeAttribute("ConfirmarMovimentarHidrometroActionForm"); return retorno; } }