package br.com.ufrj.msi2.netuno.bean;
import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpSession;
import br.com.ufrj.msi2.netuno.attributes.Attributes;
import br.com.ufrj.msi2.netuno.contratacao.servicos.ContratacaoService;
import br.com.ufrj.msi2.netuno.modelo.entidades.CPF;
import br.com.ufrj.msi2.netuno.modelo.entidades.Contratante;
import br.com.ufrj.msi2.netuno.modelo.exceptions.ResultadoNaoEncontradoException;
@ManagedBean(name="atendenteController")
@ViewScoped
public class AtendenteControllerBean extends MBean {
@EJB
ContratacaoService contratacaoService;
@ManagedProperty(value="#{atendenteModel}")
private AtendenteModelBean atendenteModelBean;
@PostConstruct
public void construct() {
atendenteModelBean.setCpf(new CPF());
}
/**
* Busca contratante com o CPF digitado pelo atendente. Caso encontre, redireciona para tela de contrata��o.
* @return String de navega��o.
*/
public String verificarCPF() {
try {
Contratante contratante = this.contratacaoService.recuperaContratantePorCPF(atendenteModelBean.getCpf());
HttpSession session = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(true);
session.setAttribute(Attributes.SessionAttributes.CONTRATANTE.toString(), contratante);
session.setAttribute(Attributes.SessionAttributes.VIAATENDENTE.toString(), "atendente");
return "contratacao";
} catch (ResultadoNaoEncontradoException e) {
super.sendMessage(null, FacesMessage.SEVERITY_ERROR, "Contratante n�o encontrado.", null);
e.printStackTrace();
}
return null;
}
/**
* Redireciona para a tela de cadastro de contratante.
* @return String de navega��o
*/
public String irCadastro() {
return "novoContratante";
}
public ContratacaoService getContratacaoService() {
return contratacaoService;
}
public AtendenteModelBean getAtendenteModelBean() {
return atendenteModelBean;
}
public void setContratacaoService(ContratacaoService contratacaoService) {
this.contratacaoService = contratacaoService;
}
public void setAtendenteModelBean(AtendenteModelBean atendenteModelBean) {
this.atendenteModelBean = atendenteModelBean;
}
}