package com.contabilidad.cuentas;

import com.contabilidad.EntConta.Catalogo;
import com.contabilidad.EntConta.CatalogoCuentas;
import com.contabilidad.FacadeConta.CuentasFacadeLocal;

import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

@ManagedBean(name = "bcuentas")
@ViewScoped
public class bcuentas implements Serializable {

    @EJB
    private CuentasFacadeLocal cfl;

    private List<Catalogo> listaCuentas;
    private Catalogo cuentaSelect;
    private Catalogo nuevaCuenta;

    private String numeroCuentaSelect;

    private String nombreCuentaSelect;
    private Integer nivelAnteroior;



    @PostConstruct
    public void init(){

        listaCuentas = new ArrayList<>();
        cuentaSelect = new Catalogo();
        nuevaCuenta = new Catalogo();

        listaCuentas.addAll(cfl.obtenerCuentasPrincipales());

    }

    public CuentasFacadeLocal getCfl() {
        return cfl;
    }

    public void setCfl(CuentasFacadeLocal cfl) {
        this.cfl = cfl;
    }

    public List<Catalogo> getListaCuentas() {
        return listaCuentas;
    }

    public void setListaCuentas(List<Catalogo> listaCuentas) {
        this.listaCuentas = listaCuentas;
    }

    public Catalogo getCuentaSelect() {
        return cuentaSelect;
    }

    public void setCuentaSelect(Catalogo cuentaSelect) {
        this.cuentaSelect = cuentaSelect;
    }

    public Catalogo getNuevaCuenta() {
        return nuevaCuenta;
    }

    public void setNuevaCuenta(Catalogo nuevaCuenta) {
        this.nuevaCuenta = nuevaCuenta;
    }

    public String getNumeroCuentaSelect() {
        return numeroCuentaSelect;
    }

    public void setNumeroCuentaSelect(String numeroCuentaSelect) {
        this.numeroCuentaSelect = numeroCuentaSelect;
    }

    public String getNombreCuentaSelect() {
        return nombreCuentaSelect;
    }

    public void setNombreCuentaSelect(String nombreCuentaSelect) {
        this.nombreCuentaSelect = nombreCuentaSelect;
    }

    public Integer getNivelAnteroior() {
        return nivelAnteroior;
    }

    public void setNivelAnteroior(Integer nivelAnteroior) {
        this.nivelAnteroior = nivelAnteroior;
    }

    public void regresarCuentaAnterior(){

    }

    public void obtenerSiguienteNivel(String gen, Catalogo cst){

        if(gen.isEmpty()){}

        listaCuentas = new ArrayList<>();
        listaCuentas.addAll(cfl.obtenerSiguienteNivel(gen));
        numeroCuentaSelect=cst.getCodigcuenta();
        nombreCuentaSelect= cst.getNombcuenta();

    }


    public bcuentas() {
    }
}
