/*
 * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
 * Click nbfs://nbhost/SystemFileSystem/Templates/JSF/JSFManagedBean.java to edit this template
 */
package xforce.vista;

import javax.inject.Named;
import javax.enterprise.context.SessionScoped;
import java.io.Serializable;
import java.util.List;
import javax.ejb.EJB;
import org.primefaces.PrimeFaces;
import xforce.bl.EstadosBLLocal;
import xforce.modelo.Estados;
import xforce.msg.Mensaje;

/**
 *
 * @author Samuel Gamez
 */
@Named(value = "demoBeanEstados")
@SessionScoped
public class DemoBeanEstados implements Serializable {

    @EJB
    private EstadosBLLocal estadosBL;

    /**
     * Creates a new instance of DemoBeanEstados
     */
    public DemoBeanEstados() {
    }

    private Estados estados = new Estados();

    private String titulo;

    private boolean nuevo;

    public List<Estados> getEstados() {
        return estadosBL.buscarValidos(true);
    }

    public Estados getEstado() {
        return estados;
    }

    public void setEstado(Estados estados) {
        this.estados = estados;
    }

    public String getTitulo() {
        return titulo;
    }

    public void setTitulo(String titulo) {
        this.titulo = titulo;
    }

    public String agregarEstados() {

        Mensaje mensaje = estadosBL.agregar(estados);

        switch (mensaje) {
            case SIN_ERROR:
                estados = new Estados();
                PrimeFaces.current().ajax().update("marcaTable:messages");
                PrimeFaces.current().ajax().update("userTable:messages");
                PrimeFaces.current().ajax().update("productoTable:messages");
                return null;//"productoLista?faces-redirect=true"; // Redirecciona a la lista de productos
            case ELEMENTO_DUPLICADO:
                return null;
            case CAMPOS_INCOMPLETOS:
                return null;
            case DATOS_INCORRECTOS:
                return null;
            default:
                return null;
        }

    }

    public void eliminarEstados(Estados estados) {
        nuevo = false;
        this.estados = estados;
        estadosBL.eliminar(estados);
        PrimeFaces.current().ajax().update("marcaTable:messages");
        PrimeFaces.current().ajax().update("userTable:messages");
        PrimeFaces.current().ajax().update("productoTable:messages");

    }
    
    public void prepararNuevo() {
        nuevo = true;
        estados = new Estados();
    }
}