/*
* 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.GerenciamentoEventos.Aplicacao.ControllerBase;
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.Servicos.EventoRepositorio;
import br.edu.ifnmg.GerenciamentoEventos.DomainModel.Servicos.InscricaoConfirmacaoService;
import br.edu.ifnmg.GerenciamentoEventos.DomainModel.Servicos.InscricaoRepositorio;
import javax.inject.Named;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import javax.ejb.EJB;
import javax.enterprise.context.SessionScoped;
/**
*
* @author petronio
*/
@Named(value = "credenciamentoBlocoController")
@SessionScoped
public class CredenciamentoBlocoController
extends ControllerBase
implements Serializable {
/**
* Creates a new instance of FuncionarioBean
*/
public CredenciamentoBlocoController() {
inscricoes = new ArrayList<>();
valor = new BigDecimal("0.00");
}
@EJB
InscricaoRepositorio dao;
@EJB
EventoRepositorio daoEvt;
@EJB
InscricaoConfirmacaoService serv;
Long id;
Inscricao inscricao;
BigDecimal valor;
List<Inscricao> inscricoes;
Evento evento;
public void buscar(){
inscricao = dao.Abrir(getId());
add();
}
public List<Inscricao> autoCompletar(String query) {
return dao.Buscar(getEvento(), query);
}
public void credenciar(){
if(serv.confirmar(getEvento(), inscricoes, getUsuarioCorrente())){
Mensagem("Sucesso!", "Inscrição confirmada com êxito!");
limpar();
}
}
public void limpar() {
inscricoes = new ArrayList<>();
valor = new BigDecimal("0.00");
}
public void checaEventoPadrao() {
String evt = getConfiguracao("EVENTO_PADRAO");
if (evt != null) {
evento = daoEvt.Abrir(Long.parseLong(evt));
}
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Inscricao getInscricao() {
return inscricao;
}
public void setInscricao(Inscricao inscricao) {
this.inscricao = inscricao;
}
public Evento getEvento() {
if(evento == null){
checaEventoPadrao();
}
return evento;
}
public void setEvento(Evento evento) {
this.evento = evento;
}
public void cancelar(InscricaoItem i){
i.setStatus(InscricaoStatus.Cancelada);
dao.Salvar(i.getInscricao());
}
public void add() {
inscricoes.add(inscricao);
BigDecimal tmp = inscricao.getValorTotal();
valor = valor.add(tmp);
}
public void remove() {
inscricoes.remove(getInscricao());
BigDecimal tmp = inscricao.getValorTotal();
valor = valor.subtract(tmp);
}
public BigDecimal getValor() {
return valor;
}
public void setValor(BigDecimal valor) {
this.valor = valor;
}
public List<Inscricao> getInscricoes() {
return inscricoes;
}
public void setInscricoes(List<Inscricao> inscricoes) {
this.inscricoes = inscricoes;
}
}