package bean;

import beans.ClienteFacadeLocal;
import beans.CuentaCorrienteFacadeLocal;
import entities.Cliente;
import entities.CuentaCorriente;
import entities.DepositoCuentaCorriente;
import entities.GiroCuentaCorriente;
import entities.TransferenciaCuentaCorriente;
import java.io.Serializable;
import javax.ejb.EJB;
import javax.enterprise.context.SessionScoped;
import javax.faces.context.FacesContext;
import javax.inject.Named;

@Named(value = "cuentaCorrienteBean")
@SessionScoped
public class CuentaCorrienteBean implements Serializable{
  @EJB
  private CuentaCorrienteFacadeLocal cuentaCorrienteFacade;
  @EJB
  private ClienteFacadeLocal clienteFacade;
  
  private CuentaCorriente cuentaCorriente;
  private Cliente cliente;
  
  public String edit() {
    return "admin_cliente_view";
  }
  
  public String gotoDepositar() {
    FacesContext context = FacesContext.getCurrentInstance();
    DepositoBean db = context.getApplication().evaluateExpressionGet(context, "#{depositoBean}", DepositoBean.class);
    db.setCuentaCorriente(cuentaCorriente);
    return "cliente_cuenta_corriente_depositar";
  }
  
  public String gotoDeleteDeposito(DepositoCuentaCorriente deposito) {
    FacesContext context = FacesContext.getCurrentInstance();
    DepositoBean db = context.getApplication().evaluateExpressionGet(context, "#{depositoBean}", DepositoBean.class);
    db.setCuentaCorriente(cuentaCorriente);
    db.setDepositoCuentaCorriente(deposito);
    return "admin_cuenta_corriente_delete_deposito";
  }
  
  
  public String gotoGirar() {
    FacesContext context = FacesContext.getCurrentInstance();
    GiroBean gb = context.getApplication().evaluateExpressionGet(context, "#{giroBean}", GiroBean.class);
    gb.setCuentaCorriente(cuentaCorriente);
    return "cliente_cuenta_corriente_girar";
  }
  
  public String gotoDeleteGiro(GiroCuentaCorriente giro) {
    FacesContext context = FacesContext.getCurrentInstance();
    GiroBean gb = context.getApplication().evaluateExpressionGet(context, "#{giroBean}", GiroBean.class);
    gb.setCuentaCorriente(cuentaCorriente);
    gb.setGiroCuentaCorriente(giro);
    return "admin_cuenta_corriente_delete_giro";
  }
  public String gotoTransferir() {
    FacesContext context = FacesContext.getCurrentInstance();
    TransferenciaBean tb = context.getApplication().evaluateExpressionGet(context, "#{transferenciaBean}", TransferenciaBean.class);
    tb.setCuentaCorriente(cuentaCorriente);
    return "cliente_cuenta_corriente_transferir";
  }
  
  public String gotoDeleteTransferencia(TransferenciaCuentaCorriente transferencia) {
    FacesContext context = FacesContext.getCurrentInstance();
    TransferenciaBean tb = context.getApplication().evaluateExpressionGet(context, "#{transferenciaBean}", TransferenciaBean.class);
    tb.setCuentaCorriente(cuentaCorriente);
    tb.setTransferenciaCuentaCorriente(transferencia);
    return "admin_cuenta_corriente_delete_transferencia";
  }

  public CuentaCorriente getCuentaCorriente() {
    return cuentaCorriente;
  }

  public void setCuentaCorriente(CuentaCorriente cuentaCorriente) {
    this.cuentaCorriente = cuentaCorriente;
  }

  public Cliente getCliente() {
    return cliente;
  }

  public void setCliente(Cliente cliente) {
    this.cliente = cliente;
  }
  
  
}
