package gcom.gui.seguranca.acesso; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.seguranca.acesso.FiltroGrupo; import gcom.seguranca.acesso.Grupo; import gcom.seguranca.acesso.usuario.FiltroUsuarioGrupo; import gcom.seguranca.acesso.usuario.UsuarioGrupo; import gcom.util.ConstantesSistema; import gcom.util.Util; import gcom.util.filtro.ParametroSimples; import gcom.util.filtro.ParametroSimplesDiferenteDe; import java.math.BigDecimal; 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; import org.apache.struts.validator.DynaValidatorForm; /** * Action respons�vel pela valida��o dos dados informados na primeira p�gina * do processo de atualizar grupo * * @author Pedro Alexandre, Mariana Victor * @date 03/07/2006, 10/01/2011 */ public class AtualizarGrupoDadosGeraisAction extends GcomAction { /** * <Breve descri��o sobre o caso de uso> * * [UC0279] - Manter Grupo * * @author Pedro Alexandre, Mariana Victor * @date 03/07/2006, 10/01/2011 * * @param actionMapping * @param actionForm * @param httpServletRequest * @param httpServletResponse * @return */ public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { //Recupera o form de atualizar grupo DynaValidatorForm atualizarGrupoActionForm = (DynaValidatorForm) actionForm; //Seta o mapeamento para a segunda p�gina do processo de atualizar grupo ActionForward retorno = actionMapping.findForward("atualizarGrupoAcessosGrupo"); //Obt�m uma inst�ncia da sess�o HttpSession sessao = httpServletRequest.getSession(false); //Recupera o grupo da sess�o e seta os dados da p�gina no grupo Grupo grupo = (Grupo) sessao.getAttribute("grupo"); grupo.setDescricao(""+atualizarGrupoActionForm.get("descricao")); grupo.setDescricaoAbreviada(""+atualizarGrupoActionForm.get("descricaoAbreviada")); grupo.setIndicadorSuperintendencia((Short)atualizarGrupoActionForm.get("indicadorSuperintendencia")); if(atualizarGrupoActionForm.get("diasExpiracaoSenha")!=null && !atualizarGrupoActionForm.get("diasExpiracaoSenha").toString().equals("")){ Integer numeroDiasExpiracaoSenha = new Integer(atualizarGrupoActionForm.get("diasExpiracaoSenha").toString()); if(numeroDiasExpiracaoSenha.compareTo(0)!=0){ grupo.setNumDiasExpiracaoSenha(numeroDiasExpiracaoSenha); }else{ grupo.setNumDiasExpiracaoSenha(null); } } if (atualizarGrupoActionForm.get("competenciaRetificacao") != null && !atualizarGrupoActionForm.get("competenciaRetificacao").toString().equals("")) { BigDecimal competenciaRetificacao = Util.formatarMoedaRealparaBigDecimal(atualizarGrupoActionForm.get("competenciaRetificacao").toString()); if(competenciaRetificacao.compareTo(BigDecimal.ZERO)!=0){ grupo.setCompetenciaRetificacao(competenciaRetificacao); }else{ grupo.setCompetenciaRetificacao(null); } } if(atualizarGrupoActionForm.get("mensagem")!=null && !atualizarGrupoActionForm.get("mensagem").equals("")){ grupo.setMensagem(atualizarGrupoActionForm.get("mensagem").toString()); } //[FS0002] - Verificar preenchimento dos campos if(grupo.getDescricao() == null){ throw new ActionServletException("atencao.naoinformado",null, "Descri��o do Grupo"); } //[FS0002] - Verificar preenchimento dos campos if(grupo.getDescricaoAbreviada() == null){ throw new ActionServletException("atencao.naoinformado",null, "Descri��o Abreviada do Grupo"); } //[FS002] - Verificar preenchimento dos campos if (grupo.getIndicadorSuperintendencia() == null){ throw new ActionServletException("atencao.naoinformado",null, "Indicador de Superintend�ncia"); } //[FS0001] - Verificar usu�rios vinculados do grupo if (grupo.getIndicadorUso().shortValue() == ConstantesSistema.SIM.shortValue() && (ConstantesSistema.NAO + "").equalsIgnoreCase(""+atualizarGrupoActionForm.get("indicadorUso"))) { FiltroUsuarioGrupo filtroUsuarioGrupo = new FiltroUsuarioGrupo(); filtroUsuarioGrupo.adicionarParametro(new ParametroSimples(FiltroUsuarioGrupo.GRUPO_ID, grupo.getId())); Collection colecaoUsuarioGrupo = Fachada.getInstancia().pesquisar(filtroUsuarioGrupo, UsuarioGrupo.class.getSimpleName()); if (colecaoUsuarioGrupo != null && !colecaoUsuarioGrupo.isEmpty()) { throw new ActionServletException("atencao.grupo.vinculo.usuario", null, grupo.getDescricao()); } grupo.setIndicadorUso(ConstantesSistema.NAO); } else { if (atualizarGrupoActionForm.get("indicadorUso").toString().equals(ConstantesSistema.SIM.toString())) { grupo.setIndicadorUso(ConstantesSistema.SIM); } else { grupo.setIndicadorUso(ConstantesSistema.NAO); } } //[FS0006] - Verificar exist�ncia da descri��o FiltroGrupo filtroGrupo = new FiltroGrupo(); filtroGrupo.adicionarParametro(new ParametroSimplesDiferenteDe(FiltroGrupo.ID,grupo.getId())); filtroGrupo.adicionarParametro(new ParametroSimples(FiltroGrupo.DESCRICAO, grupo.getDescricao())); Collection colecaoGrupo = Fachada.getInstancia().pesquisar(filtroGrupo, Grupo.class.getSimpleName()); if (colecaoGrupo != null && !colecaoGrupo.isEmpty()) { throw new ActionServletException("atencao.grupo.descricao_ja_existe",null,grupo.getDescricao()); } //Coloca o grupo atualizado na sess�o sessao.setAttribute("grupo",grupo); //Retorna o mapeamento contido na vari�vel "retorno" return retorno; } }