package br.com.ufrj.msi2.netuno.bean;
import javax.annotation.PostConstruct;
import javax.ejb.EJB;
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.Contratante;
import br.com.ufrj.msi2.netuno.modelo.entidades.Contrato;
@ManagedBean(name="verContratosController")
@ViewScoped
public class VerContratosControllerBean extends MBean {
@EJB
ContratacaoService contratacaoService;
@ManagedProperty(value="#{verContratosModel}")
private VerContratosModelBean verContratosModelBean;
@PostConstruct
public void construct() {
HttpSession session = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(true);
Contratante contratante = (Contratante) session.getAttribute(Attributes.SessionAttributes.LOGIN.toString());
verContratosModelBean.setContratante(contratante);
verContratosModelBean.setListaContratos(this.contratacaoService.recuperaContratosAbertosPorContratante(contratante));
}
/**
* Atualiza lista de contratos de acordo com filtro escolhido pelo usu�rio.
*/
public void trocarTabela() {
switch (this.verContratosModelBean.getTipoContratoExibido()) {
case 1:
verContratosModelBean.setListaContratos(this.contratacaoService.recuperaContratosAbertosPorContratante(verContratosModelBean.getContratante()));
break;
case 2:
verContratosModelBean.setListaContratos(this.contratacaoService.recuperaContratosFechadosPorContratante(verContratosModelBean.getContratante()));
break;
default:
break;
}
}
/**
* Salva contratante na sess�o e redireciona para tela de contrata��o.
* @return String de navega��o para a tela de contrata��o.
*/
public String novoContrato() {
HttpSession session = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(true);
session.setAttribute(Attributes.SessionAttributes.CONTRATANTE.toString(), verContratosModelBean.getContratante());
if(session.getAttribute(Attributes.SessionAttributes.CONTRATO.toString()) != null) {
session.removeAttribute(Attributes.SessionAttributes.CONTRATO.toString());
}
return "contratacao";
}
/**
* Salva contratante e contrato na sess�o, al�m do par�metro CarregaCargas
* @param contrato cujos detalhes ser�o vistos
* @return String de navega��o para a tela de contrata��o.
*/
public String verDetalhes(Contrato contrato) {
HttpSession session = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(true);
session.setAttribute(Attributes.SessionAttributes.CONTRATANTE.toString(), verContratosModelBean.getContratante());
session.setAttribute(Attributes.SessionAttributes.CONTRATO.toString(), contrato);
session.setAttribute(Attributes.SessionAttributes.CARREGACARGAS.toString(), "carrega");
return "contratacao";
}
public VerContratosModelBean getVerContratosModelBean() {
return verContratosModelBean;
}
public void setVerContratosModelBean(VerContratosModelBean verContratosModelBean) {
this.verContratosModelBean = verContratosModelBean;
}
public ContratacaoService getContratacaoService() {
return contratacaoService;
}
public void setContratacaoService(ContratacaoService contratacaoService) {
this.contratacaoService = contratacaoService;
}
}