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.util.ConstantesSistema;
import gcom.util.Util;
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;
import org.apache.struts.validator.DynaValidatorForm;
/**
* Action respons�vel por validar os dados informados na p�gina de inserir grupo
* e por criar um grupo com a descri��o e a descri��o abreviada informadas.
*
* @author Pedro Alexandre, Mariana Victor
* @date 15/06/2006, 10/01/2011
*/
public class InserirGrupoDadosGeraisAction extends GcomAction {
/**
* <Breve descri��o sobre o caso de uso>
*
* [UC0278] Inserir Grupo
*
* @author Pedro Alexandre, Mariana Victor
* @date 15/06/2006, 10/01/2011
*
* @param actionMapping
* @param actionForm
* @param httpServletRequest
* @param httpServletResponse
* @return
*/
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm,
HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
//Seta o mapeamento de retorno para a p�gina de definir acesso do grupo
ActionForward retorno = actionMapping.findForward("inserirGrupoAcessosGrupo");
//Recupera o form
DynaValidatorForm grupoActionForm = (DynaValidatorForm) actionForm;
//Cria uma inst�ncia da sess�o
HttpSession sessao = httpServletRequest.getSession(false);
/* Cria o grupo e seta os dados informados
* para depois usar esse grupo gerado nas
* outras p�ginas.
*/
Grupo grupo = new Grupo();
grupo.setDescricao((String)grupoActionForm.get("descricao"));
grupo.setDescricaoAbreviada((String)grupoActionForm.get("descricaoAbreviada"));
grupo.setIndicadorUso(ConstantesSistema.SIM);
grupo.setIndicadorSuperintendencia((Short)grupoActionForm.get("indicadorSuperintendencia"));
if(grupoActionForm.get("diasExpiracaoSenha")!=null
&& !grupoActionForm.get("diasExpiracaoSenha").toString().equals("")){
grupo.setNumDiasExpiracaoSenha(new Integer(grupoActionForm.get("diasExpiracaoSenha").toString()));
}
if(grupoActionForm.get("mensagem")!=null
&& !grupoActionForm.get("mensagem").equals("")){
grupo.setMensagem(grupoActionForm.get("mensagem").toString());
}
if(grupoActionForm.get("competenciaRetificacao")!=null
&& !grupoActionForm.get("competenciaRetificacao").toString().equals("")
&& !grupoActionForm.get("competenciaRetificacao").toString().equals("0")){
grupo.setCompetenciaRetificacao(Util.formatarMoedaRealparaBigDecimal(grupoActionForm.get("competenciaRetificacao").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 exist�ncia da descri��o
FiltroGrupo filtroGrupo = new FiltroGrupo();
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 na sess�oo grupo gerado com as informa��es informadas
sessao.setAttribute("grupo",grupo);
//Retorna o mapemaneto na vari�vel "retorno"
return retorno;
}
}