/* * This file is part of SGEA - Sistema de Gestão de Eventos Acadêmicos - TADS IFNMG Campus Januária. * * SGEA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * SGEA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with SGEA. If not, see <http://www.gnu.org/licenses/>. */ package br.edu.ifnmg.GerenciamentoEventos.Apresentacao; import br.edu.ifnmg.DomainModel.Pessoa; import br.edu.ifnmg.DomainModel.Services.PerfilRepositorio; import br.edu.ifnmg.GerenciamentoEventos.Aplicacao.ControllerBase; import br.edu.ifnmg.GerenciamentoEventos.DomainModel.Atividade; import br.edu.ifnmg.GerenciamentoEventos.DomainModel.ConflitoHorarioException; import br.edu.ifnmg.GerenciamentoEventos.DomainModel.Evento; import br.edu.ifnmg.GerenciamentoEventos.DomainModel.Inscricao; import br.edu.ifnmg.GerenciamentoEventos.DomainModel.InscricaoItem; import br.edu.ifnmg.GerenciamentoEventos.DomainModel.InscricaoStatus; import br.edu.ifnmg.GerenciamentoEventos.DomainModel.LimiteInscricoesExcedidoException; import br.edu.ifnmg.GerenciamentoEventos.DomainModel.Servicos.AtividadeRepositorio; import br.edu.ifnmg.GerenciamentoEventos.DomainModel.Servicos.EventoRepositorio; import br.edu.ifnmg.GerenciamentoEventos.DomainModel.Servicos.InscricaoConfirmacaoService; import br.edu.ifnmg.GerenciamentoEventos.DomainModel.Servicos.InscricaoRepositorio; import br.edu.ifnmg.GerenciamentoEventos.DomainModel.Servicos.InscricaoService; import br.edu.ifnmg.GerenciamentoEventos.DomainModel.Servicos.PessoaRepositorioLocal; import javax.inject.Named; import java.io.Serializable; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; import javax.ejb.EJB; import javax.enterprise.context.RequestScoped; /** * * @author petronio */ @Named(value = "credenciamentoController") @RequestScoped public class CredenciamentoController extends ControllerBase implements Serializable { /** * Creates a new instance of FuncionarioBean */ public CredenciamentoController() { } @EJB InscricaoRepositorio dao; @EJB EventoRepositorio daoEvt; @EJB InscricaoConfirmacaoService serv; @EJB InscricaoService inscServ; @EJB PessoaRepositorioLocal daoPessoa; @EJB PerfilRepositorio daoPerfil; @EJB AtividadeRepositorio daoAtividade; Long id; Inscricao inscricao; Pessoa pessoa; Evento evento; Atividade atividade; public String buscar(){ inscricao = dao.Abrir(getId()); return "credenciamentoConfirmacao.xhtml"; } public List<Inscricao> autoCompletar(String query) { return dao.Buscar(getEvento(), query); } public void confirmarPresenca(){ if(getInscricao() == null){ MensagemErro("ERRO", "Inscrição não encontrada!"); return; } if(serv.confirmarPresenca(getInscricao())){ Mensagem("Sucesso!", "Presença confirmada com êxito!"); } } public void credenciarPresenca(){ credenciar(); confirmarPresenca(); } public void credenciar(){ if(getInscricao() == null){ MensagemErro("ERRO", "Inscrição não encontrada!"); return; } if(serv.confirmar(getInscricao(), getUsuarioCorrente())){ Mensagem("Sucesso!", "Inscrição confirmada com êxito!"); } } public void credenciar(Inscricao insc){ if(insc == null){ MensagemErro("ERRO", "Inscrição não encontrada!"); return; } if(serv.confirmar(insc, getUsuarioCorrente())){ Mensagem("Sucesso!", "Inscrição confirmada com êxito!"); } } public void checaEventoPadrao() { String evt = getConfiguracao("EVENTO_PADRAO"); if (evt != null) { setSessao("credEvento", evt); } } public Long getId() { if(id == null){ String tmp = getSessao("credInsc"); if(tmp != null) id = Long.parseLong(tmp); else id = 0L; } return id; } public void setId(Long id) { if(id != null) this.id = id; else this.id = 0L; setSessao("credInsc", id.toString()); } public Inscricao getInscricao() { if(inscricao == null){ inscricao = (Inscricao)getSessao("credInsc", dao); } return inscricao; } public void setInscricao(Inscricao inscricao) { this.inscricao = inscricao; if(inscricao != null) { setId(inscricao.getId()); setEvento(inscricao.getEvento()); } } public void cancelar(InscricaoItem i){ i.setStatus(InscricaoStatus.Cancelada); dao.Salvar(i.getInscricao()); } public String cadastrar() { pessoa.setPerfil(daoPerfil.getPadrao()); pessoa.setSenha("123"); if(daoPessoa.Salvar(pessoa)){ return "credenciamentoInscricao.xhtml"; } MensagemErro("Erro ao cadastrar! Tente novamente", "Erro"); return ""; } public String inscrever() { Inscricao tmp = inscServ.inscrever(getEvento(), getPessoa()); if(tmp != null){ setInscricao(tmp); return "credenciamentoConfirmacao.xhtml"; } MensagemErro("Erro ao cadastrar! Tente novamente", "Erro"); return ""; } public String inscreverAtividade() { try { if(inscServ.inscrever(getInscricao(), getAtividade(), getPessoa()) != null){ return "credenciamentoConfirmacao.xhtml"; } MensagemErro("Erro ao cadastrar! Tente novamente", "Erro"); } catch (ConflitoHorarioException ex) { MensagemErro("Erro ao cadastrar! Tente novamente", "O participante já possui outra atividade no horário!"); } catch (LimiteInscricoesExcedidoException ex) { MensagemErro("Erro ao cadastrar! Tente novamente", "O Limite de Inscrições para essa atividade foi atingido!"); } return ""; } public String novaPessoa() { setPessoa(null); return "credenciamentoCadastro.xhtml"; } public Evento getEvento() { if(evento == null){ evento = (Evento)getSessao("credEvento", daoEvt); if(evento == null){ checaEventoPadrao(); evento = (Evento)getSessao("credEvento", daoEvt); } } return evento; } public void setEvento(Evento evento) { this.evento = evento; setSessao("credEvento", evento); } public Pessoa getPessoa() { if(pessoa == null){ pessoa = (Pessoa)getSessao("credpessoa", daoPessoa); if(pessoa == null) pessoa = new Pessoa(); } return pessoa; } public void setPessoa(Pessoa pessoa) { if(pessoa != null){ setSessao("credpessoa", pessoa); } this.pessoa = pessoa; } public Atividade getAtividade() { if(atividade == null){ atividade = (Atividade)getSessao("credatividade", daoAtividade); if(atividade == null) atividade = new Atividade(); } return atividade; } public void setAtividade(Atividade atividade) { if(atividade != null){ setSessao("credatividade", atividade); } this.atividade = atividade; } }