com.iqtb.validacion.managedbean.MbSociosComerciales.java Source code

Java tutorial

Introduction

Here is the source code for com.iqtb.validacion.managedbean.MbSociosComerciales.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.iqtb.validacion.managedbean;

import com.iqtb.validacion.dao.DaoEmpresa;
import com.iqtb.validacion.dao.DaoSociosComerciales;
import com.iqtb.validacion.dao.DaoUsuario;
import com.iqtb.validacion.dto.HibernateUtil;
import com.iqtb.validacion.emun.BitacoraTipo;
import com.iqtb.validacion.pojo.Empresas;
import com.iqtb.validacion.pojo.SociosComerciales;
import com.iqtb.validacion.pojo.Usuarios;
import static com.iqtb.validacion.util.Bitacoras.registrarBitacora;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpServletRequest;
import org.apache.log4j.Logger;
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Projections;
import org.hibernate.criterion.Restrictions;
import org.primefaces.context.RequestContext;
import org.primefaces.model.LazyDataModel;
import org.primefaces.model.SortOrder;

/**
 *
 * @author danielromero
 */
@ManagedBean
@ViewScoped
public class MbSociosComerciales implements Serializable {

    private SociosComerciales socioComercial;
    private List<SociosComerciales> listaSocios;
    private List<SociosComerciales> sociosSeleccionados;
    private String empresaSeleccionada;
    private Empresas empresa;
    private Usuarios usuario;
    private SociosComerciales userSocio;
    private final String sessionUsuario;
    private FacesMessage msg;
    private String descBitacora;
    private LazyDataModel<SociosComerciales> socioDataList;
    private Session session;
    private Transaction tx;
    private DaoUsuario daoUsuario;
    private DaoEmpresa daoEmpresa;
    private DaoSociosComerciales daoSocioComercial;
    private static final Logger logger = Logger.getLogger(MbSociosComerciales.class);

    public MbSociosComerciales() {
        socioComercial = new SociosComerciales();
        userSocio = new SociosComerciales();
        sociosSeleccionados = new ArrayList<SociosComerciales>();
        empresa = new Empresas();
        usuario = new Usuarios();
        daoUsuario = new DaoUsuario();
        daoEmpresa = new DaoEmpresa();
        daoSocioComercial = new DaoSociosComerciales();

        FacesContext facesContext = FacesContext.getCurrentInstance();
        HttpServletRequest httpServletRequest = (HttpServletRequest) facesContext.getExternalContext().getRequest();
        empresaSeleccionada = (String) httpServletRequest.getSession().getAttribute("empresaSeleccionada");
        sessionUsuario = ((Usuarios) FacesContext.getCurrentInstance().getExternalContext().getSessionMap()
                .get("usuario")).getUserid();
        try {
            usuario = daoUsuario.getByUserid(sessionUsuario);
            empresa = daoEmpresa.getEmpresaByRFC(empresaSeleccionada);
            if (usuario.getIdSocioComercial() != null) {
                logger.info("Cargando userSocioComercial");
                userSocio = daoSocioComercial.getSocioComercialByID(usuario.getIdSocioComercial());
            }
        } catch (Exception e) {
            descBitacora = "[SOCIO_COMERCIAL - MbSociosComerciales] ERROR " + e.getMessage();
            registrarBitacora(null, null, null, descBitacora, BitacoraTipo.ERROR.name());
            logger.error(descBitacora);
        }
    }

    @PostConstruct
    public void init() {
        socioDataList = new LazyDataModel<SociosComerciales>() {
            private static final long serialVersionUID = 1L;

            @Override
            public List<SociosComerciales> load(int first, int pageSize, String sortField, SortOrder sortOrder,
                    Map<String, String> filters) {
                listaSocios = new ArrayList<SociosComerciales>();
                session = HibernateUtil.getSessionFactory().openSession();
                tx = session.beginTransaction();

                Criteria cr = session.createCriteria(SociosComerciales.class);
                Criteria crCount = session.createCriteria(SociosComerciales.class);
                crCount.setProjection(Projections.rowCount());
                cr.add(Restrictions.eq("idEmpresa", empresa.getIdEmpresa()));
                crCount.add(Restrictions.eq("idEmpresa", empresa.getIdEmpresa()));

                if (sortField != null && !sortField.isEmpty()) {
                    if (sortOrder.equals(SortOrder.ASCENDING)) {
                        cr.addOrder(Order.asc(sortField));
                    } else {
                        cr.addOrder(Order.desc(sortField));
                    }
                } else {
                    cr.addOrder(Order.desc("idSocioComercial"));
                }

                if (!filters.isEmpty()) {
                    Iterator it = filters.keySet().iterator();
                    while (it.hasNext()) {
                        String key = (String) it.next();
                        cr.add(Restrictions.like(key, "" + filters.get(key) + "%"));
                        crCount.add(Restrictions.like(key, "" + filters.get(key) + "%"));
                    }
                }
                Integer num = ((Long) crCount.uniqueResult()).intValue();
                this.setRowCount(num);
                cr.setFirstResult(first);
                cr.setMaxResults(pageSize + first);
                listaSocios = cr.list();
                if (session.isOpen()) {
                    session.clear();
                    session.close();
                }
                return listaSocios;
            }
        };
    }

    public void resetSocioComercial() {
        socioComercial = new SociosComerciales();
    }

    public void insertSocioComercial() {
        boolean insert = false;

        try {
            if (socioComercial.getNombre() != null && !socioComercial.getNombre().trim().isEmpty()) {
                if (socioComercial.getRfc() != null && !socioComercial.getRfc().trim().isEmpty()) {
                    if (socioComercial.getCalle() != null && !socioComercial.getCalle().trim().isEmpty()) {
                        if (daoSocioComercial.getSocioComercialByIdEmpresaRFC(empresa.getIdEmpresa(),
                                socioComercial.getRfc()) == null) {
                            socioComercial.setIdEmpresa(empresa.getIdEmpresa());
                            insert = daoSocioComercial.insertSocioComercial(socioComercial);
                            if (insert) {
                                descBitacora = "[SOCIOCOMERCIAL] " + usuario.getUserid()
                                        + " registro al socio Comercial " + socioComercial.getRfc()
                                        + " Para la empresa " + empresa.getRfc();
                                registrarBitacora(usuario.getIdUsuario(), null, empresa.getIdEmpresa(),
                                        descBitacora, "INFO");
                                msg = new FacesMessage(FacesMessage.SEVERITY_INFO, "Correcto",
                                        "Socio Comercial ha sido Registrado.");
                                logger.info("insertSocioComercial - " + usuario.getUserid()
                                        + " registro al socio comercial " + socioComercial.getRfc()
                                        + " Para la empresa " + empresa.getRfc());
                            } else {
                                descBitacora = "[SOCIOCOMERCIAL] " + usuario.getUserid()
                                        + " Error al registar los datos del socio comercial "
                                        + socioComercial.getRfc() + " Para la empresa " + empresa.getRfc();
                                registrarBitacora(usuario.getIdUsuario(), null, empresa.getIdEmpresa(),
                                        descBitacora, "ERROR");
                                msg = new FacesMessage(FacesMessage.SEVERITY_ERROR, "Error",
                                        "Error al registar los datos del socio comercial.");
                                logger.error(
                                        "insertSocioComercial - Error al registar los datos del socio comercial "
                                                + socioComercial.getRfc() + " Para la empresa " + empresa.getRfc());
                            }
                        } else {
                            logger.warn("insertSocioComercial - RFC " + socioComercial.getRfc()
                                    + " ya existe registrado para la empresa " + empresa.getRfc());
                            msg = new FacesMessage(FacesMessage.SEVERITY_ERROR, "Error",
                                    "Ya existe un socio comercial registrado con este RFC "
                                            + socioComercial.getRfc());
                        }
                    } else {
                        logger.warn("insertSocioComercial - Calle de la Empresa es requerido");
                        msg = new FacesMessage(FacesMessage.SEVERITY_ERROR, "Error",
                                "Por favor, ingrese un valor para Calle.");
                    }
                } else {
                    logger.warn("insertSocioComercial - RFC de la Empresa es requerido");
                    msg = new FacesMessage(FacesMessage.SEVERITY_ERROR, "Error",
                            "Por favor, ingrese un valor para RFC.");
                }
            } else {
                logger.warn("insertSocioComercial - Nombre de la Empresa es requerido");
                msg = new FacesMessage(FacesMessage.SEVERITY_ERROR, "Error",
                        "Por favor, ingrese un valor para Nombre.");
            }
        } catch (Exception e) {
            descBitacora = "[SOCIOCOMERCIAL] insertSocioComercial - ERROR: " + e.getMessage();
            registrarBitacora(usuario.getIdUsuario(), null, empresa.getIdEmpresa(), descBitacora, "ERROR");
            logger.error("insertSocioComercial " + usuario.getUserid() + " ERROR: " + e);
        }
        RequestContext context = RequestContext.getCurrentInstance();
        context.addCallbackParam("insert", insert);
        FacesContext.getCurrentInstance().addMessage(null, msg);
    }

    public void updateSocioComercial() {
        boolean update = false;

        try {
            if (socioComercial.getNombre() != null && !socioComercial.getNombre().trim().isEmpty()) {
                if (socioComercial.getCalle() != null && !socioComercial.getCalle().trim().isEmpty()) {
                    update = daoSocioComercial.updateSocioComercial(socioComercial);
                    if (update) {
                        descBitacora = "[SOCIOCOMERCIAL] " + usuario.getUserid() + " modifico al socio Comercial "
                                + socioComercial.getRfc() + " Para la empresa " + empresa.getRfc();
                        registrarBitacora(usuario.getIdUsuario(), null, empresa.getIdEmpresa(), descBitacora,
                                "INFO");
                        msg = new FacesMessage(FacesMessage.SEVERITY_INFO, "Correcto",
                                "Socio Comercial ha sido modificado.");
                        logger.info(
                                "updateSocioComercial - " + usuario.getUserid() + " modifico al socio comercial "
                                        + socioComercial.getRfc() + " Para la empresa " + empresa.getRfc());
                    } else {
                        descBitacora = "[SOCIOCOMERCIAL] " + usuario.getUserid()
                                + " Error al modificar los datos del socio comercial " + socioComercial.getRfc()
                                + " Para la empresa " + empresa.getRfc();
                        registrarBitacora(usuario.getIdUsuario(), null, empresa.getIdEmpresa(), descBitacora,
                                "ERROR");
                        msg = new FacesMessage(FacesMessage.SEVERITY_ERROR, "Error",
                                "Error al modificar los datos del socio comercial.");
                        logger.error("updateSocioComercial - Error al modificar los datos del socio comercial "
                                + socioComercial.getRfc() + " Para la empresa " + empresa.getRfc());
                    }
                } else {
                    msg = new FacesMessage(FacesMessage.SEVERITY_ERROR, "Error",
                            "Por favor, ingrese un valor para Calle.");
                    logger.warn("updateSocioComercial - Calle de la Empresa es requerido");
                }
            } else {
                msg = new FacesMessage(FacesMessage.SEVERITY_ERROR, "Error",
                        "Por favor, ingrese un valor para Nombre.");
                logger.warn("updateSocioComercial - Nombre de la Empresa es requerido");
            }
        } catch (Exception e) {
            descBitacora = "[SOCIOCOMERCIAL] updateSocioComercial - ERROR: " + e.getMessage();
            registrarBitacora(usuario.getIdUsuario(), null, empresa.getIdEmpresa(), descBitacora, "ERROR");
            msg = new FacesMessage(FacesMessage.SEVERITY_ERROR, "Error",
                    "Ocurrio un error modificando el socio Comercial " + socioComercial.getRfc());
            logger.error("updateSocioComercial " + usuario.getUserid() + " ERROR: " + e);
        }

        RequestContext context = RequestContext.getCurrentInstance();
        context.addCallbackParam("update", update);
        FacesContext.getCurrentInstance().addMessage(null, msg);
    }

    public void deleteSociosComerciales() {
        int num = 0;
        for (SociosComerciales sc : sociosSeleccionados) {
            socioComercial = sc;
            try {
                if (daoSocioComercial.deleteSocioComercial(socioComercial)) {
                    num++;
                    descBitacora = usuario.getUserid() + " elimino al socio comercial " + socioComercial.getRfc();
                    registrarBitacora(usuario.getIdUsuario(), null, empresa.getIdEmpresa(), descBitacora, "INFO");
                    logger.info(usuario.getUserid() + " deleteSociosComerciales - Socio comercial"
                            + socioComercial.getRfc() + " ha sido eliminado");
                    msg = new FacesMessage(FacesMessage.SEVERITY_INFO, "Correcto",
                            num + " Socio(s) comercial(es) eliminado(s)");
                } else {
                    descBitacora = usuario.getUserid() + " Error eliminando socio comercial "
                            + socioComercial.getRfc();
                    registrarBitacora(usuario.getIdUsuario(), null, empresa.getIdEmpresa(), descBitacora, "ERROR");
                    msg = new FacesMessage(FacesMessage.SEVERITY_ERROR, "Error",
                            "Error al intentar eliminar Socio Comercial " + socioComercial.getRfc());
                    logger.error("Usuario " + usuario.getUserid()
                            + " deleteSociosComerciales - Error al intentar eliminar Socio Comercial id "
                            + socioComercial.getIdSocioComercial() + " rfc " + socioComercial.getRfc());
                }
            } catch (Exception e) {
                descBitacora = usuario.getUserid() + " deleteSociosComerciales ERROR " + e.getMessage();
                registrarBitacora(usuario.getIdUsuario(), null, empresa.getIdEmpresa(), descBitacora, "ERROR");
                msg = new FacesMessage(FacesMessage.SEVERITY_ERROR, "Error",
                        "Ocurrio un error al intentar eliminar el socio Comercial id "
                                + socioComercial.getIdSocioComercial() + " rfc " + socioComercial.getRfc());
                logger.error(usuario.getUserid() + " deleteSociosComerciales - ERROR " + e);
            }
        }
        FacesContext.getCurrentInstance().addMessage(null, msg);
    }

    public String existeSeleccionSocio() {
        FacesContext facesContext = FacesContext.getCurrentInstance();
        Map params = facesContext.getExternalContext().getRequestParameterMap();

        String parametro = (String) params.get("nombreParametro");

        boolean estadoSocio = false;
        if (this.sociosSeleccionados.isEmpty()) {
            msg = new FacesMessage(FacesMessage.SEVERITY_WARN, "Precaucin",
                    "Por favor, seleccione un socio comercial.");
            FacesContext.getCurrentInstance().addMessage(null, msg);
        } else {
            if (parametro != null) {
                if (parametro.equals("eliminar")) {
                    estadoSocio = true;
                }
            } else if (sociosSeleccionados.size() > 1) {
                msg = new FacesMessage(FacesMessage.SEVERITY_WARN, "Precaucin",
                        "Por favor, seleccione solo un socio comercial.");
                FacesContext.getCurrentInstance().addMessage(null, msg);
            } else {
                for (SociosComerciales socio : sociosSeleccionados) {
                    socioComercial = socio;
                }
                estadoSocio = true;
            }
        }
        RequestContext context = RequestContext.getCurrentInstance();
        context.addCallbackParam("estadoSocio", estadoSocio);

        return "/Socios/sociosComerciales?faces-redirect=true";
    }

    public void updateUserSocio() {
        boolean updateSocio = false;

        try {
            if (userSocio.getNombre() != null && !userSocio.getNombre().trim().isEmpty()) {
                if (userSocio.getRfc() != null && !userSocio.getRfc().trim().isEmpty()) {
                    if (userSocio.getCalle() != null && !userSocio.getCalle().trim().isEmpty()) {
                        updateSocio = daoSocioComercial.updateSocioComercial(userSocio);
                        if (updateSocio) {
                            descBitacora = usuario.getUserid() + " modifico sus datos como socio comercial "
                                    + userSocio.getRfc();
                            registrarBitacora(usuario.getIdUsuario(), null, empresa.getIdEmpresa(), descBitacora,
                                    "INFO");
                            logger.info("updateUserSocio - " + usuario.getUserid()
                                    + ". ha modificado sus datos como socio comercial " + userSocio.getRfc());
                            msg = new FacesMessage(FacesMessage.SEVERITY_INFO, "Correcto",
                                    "Los datos se han modificado exitosamente.");
                        } else {
                            descBitacora = "Usuario: " + usuario.getUserid()
                                    + ". Error modificando sus datos como socio comercial " + userSocio.getRfc();
                            registrarBitacora(usuario.getIdUsuario(), null, empresa.getIdEmpresa(), descBitacora,
                                    "ERROR");
                            logger.error("updateUserSocio - " + usuario.getUserid()
                                    + ". Error modificado sus datos como socio comercial " + userSocio.getRfc());
                            msg = new FacesMessage(FacesMessage.SEVERITY_ERROR, "Error",
                                    "Ha ocurrido un error modificando los datos.");
                        }
                    } else {
                        msg = new FacesMessage(FacesMessage.SEVERITY_ERROR, "Error",
                                "Por favor, introduzca un valor para Calle.");
                    }
                } else {
                    msg = new FacesMessage(FacesMessage.SEVERITY_ERROR, "Error",
                            "Por favor, introduzca un valor para RFC.");
                }
            } else {
                msg = new FacesMessage(FacesMessage.SEVERITY_ERROR, "Error",
                        "Por favor, introduzca un valor para Nombre.");
            }
        } catch (Exception e) {
            descBitacora = "updateUserSocio - ERROR: " + e.getMessage();
            registrarBitacora(usuario.getIdUsuario(), null, empresa.getIdEmpresa(), descBitacora, "ERROR");
            logger.error(usuario.getUserid() + ". updateUserSocio - ERROR: " + e);
        }
        RequestContext context = RequestContext.getCurrentInstance();
        context.addCallbackParam("updateSocio", updateSocio);
        FacesContext.getCurrentInstance().addMessage(null, this.msg);
    }

    public String reloadSocios() {
        return "/Socios/sociosComerciales?faces-redirect=true";
    }

    public SociosComerciales getSocioComercial() {
        return socioComercial;
    }

    public void setSocioComercial(SociosComerciales socioComercial) {
        this.socioComercial = socioComercial;
    }

    public List<SociosComerciales> getSociosSeleccionados() {
        return sociosSeleccionados;
    }

    public void setSociosSeleccionados(List<SociosComerciales> sociosSeleccionados) {
        this.sociosSeleccionados = sociosSeleccionados;
    }

    public SociosComerciales getUserSocio() {
        return userSocio;
    }

    public void setUserSocio(SociosComerciales userSocio) {
        this.userSocio = userSocio;
    }

    public String getEmpresaSeleccionada() {
        return empresaSeleccionada;
    }

    public LazyDataModel<SociosComerciales> getSocioDataList() {
        return socioDataList;
    }

    public void setSocioDataList(LazyDataModel<SociosComerciales> socioDataList) {
        this.socioDataList = socioDataList;
    }

}