Hibernate “在线监听器” }捕获(例外e){ if(this.transaccion!=null){ this.transacion.rollback(); FacesContext.getCurrentInstance().addMessage(空,新的Faces

Hibernate “在线监听器” }捕获(例外e){ if(this.transaccion!=null){ this.transacion.rollback(); FacesContext.getCurrentInstance().addMessage(空,新的Faces,hibernate,jsf,primefaces,Hibernate,Jsf,Primefaces,“在线监听器” }捕获(例外e){ if(this.transaccion!=null){ this.transacion.rollback(); FacesContext.getCurrentInstance().addMessage(空,新的FacesMessage(FacesMessage.SEVERITY_错误,“Ocurrióun错误”,“描述:+e.getMessage())); } } 最后{ 如果(this.sesion!=null){ 这个.sesion.clear(); th

“在线监听器” }捕获(例外e){ if(this.transaccion!=null){ this.transacion.rollback(); FacesContext.getCurrentInstance().addMessage(空,新的FacesMessage(FacesMessage.SEVERITY_错误,“Ocurrióun错误”,“描述:+e.getMessage())); } } 最后{ 如果(this.sesion!=null){ 这个.sesion.clear(); this.sesion.close(); } } } 公共真空母线槽(int idVale){ this.sesion=null; this.transaccion=null; 试一试{ this.sesion=HibernateUtil.getSessionFactory().openSession(); this.transacion=this.sesion.beginTransaction(); DaoVale daoV=新的DaoVale(); this.vale=daoV.buscarPorCodigo(this.sesion,idVale); RequestContext.getCurrentInstance().update(“frmEditarVale:editarVale”); RequestContext.getCurrentInstance().execute(“PF('dialogoEditarVale').show()”); this.transaccion.commit(); FacesContext.getCurrentInstance().addMessage(空,新的FacesMessage(FacesMessage.SEVERITY_INFO,“Registro”,“Se guardaron Satisfactriamente los cambios”); //RequestContext.getCurrentInstance().execute(“limpiarFormulario('frmregistrarComburstible')); //this.vale=new Vales();//Esto reemplaza a a la función javascript de borrado de campos del formulario,debido a que al instancea un new objeto,viene con atributos limpios //return“/vales/valealta”;//在返回的过程中,你可以看到坎比奥斯的“动作”要求你的动作,或者“动作监听器” }捕获(例外e){ if(this.transaccion!=null){ this.transacion.rollback(); FacesContext.getCurrentInstance().addMessage(空,新的FacesMessage(FacesMessage.SEVERITY_错误,“Ocurrióun错误”,“描述:+e.getMessage())); } } 最后{ 如果(this.sesion!=null){ 这个.sesion.clear(); this.sesion.close(); } } } 巴斯卡瓦莱巴加公共空间(国际河谷){ this.sesion=null; this.transaccion=null; 试一试{ this.sesion=HibernateUtil.getSessionFactory().openSession(); this.transacion=this.sesion.beginTransaction(); DaoVale daoV=新的DaoVale(); this.vale=daoV.buscarPorCodigo(this.sesion,idVale); //System.out.println(“idbuscado para la baja:+this.vale.getIdvale()); RequestContext.getCurrentInstance().update(“frmBajaVale:bajaVale”); RequestContext.getCurrentInstance().execute(“PF('dialogoBajaVale').show()”); this.transaccion.commit(); FacesContext.getCurrentInstance().addMessage(空,新的FacesMessage(FacesMessage.SEVERITY_INFO,“Registro”,“Se dio de baja Satisfactoriante el Registro”); }捕获(例外e){ if(this.transaccion!=null){ this.transacion.rollback(); FacesContext.getCurrentInstance().addMessage(空,新的FacesMessage(FacesMessage.SEVERITY_错误,“Ocurrióun错误”,“描述:+e.getMessage())); } } 最后{ 如果(this.sesion!=null){ 这个.sesion.clear(); this.sesion.close(); } } } public void bajaVale()引发异常{ //安特年代的公共弦乐,在坎比奥的“空虚”中,在坎比奥的“行动”中,需要卡德纳的“行动听众” this.sesion=null; this.transaccion=null; 试一试{ this.sesion=HibernateUtil.getSessionFactory().openSession(); this.transacion=this.sesion.beginTransaction(); Timestamp fechaActual=新的时间戳(System.currentTimeMillis()); 这是塞塔努拉多谷(真); 该值为setFechaAnulacion(fechaActual); //System.out.println(“idde Baja:+this.vale.getIdvale()); DaoVale daoV=新的DaoVale(); daoV.darBaja(this.sesion,this.vale); this.transaccion.commit(); FacesContext.getCurrentInstance().addMessage(空,新的FacesMessage(FacesMessage.SEVERITY_INFO,“Baja”,“Se dio de Baja Satisfactoriante el registro”); }捕获(例外e){ if(this.transaccion!=null){ this.transacion.rollback(); FacesContext.getCurrentInstance().addMessage(空,新的FacesMessage(FacesMessage.SEVERITY_错误,“Ocurrióun错误”,“描述:+e.getMessage())); } } 最后{ 如果(this.sesion!=null){ 这个.sesion.clear(); this.sesion.close(); } } } 公共谷{ 返回谷; } 公共空谷谷(谷谷谷){ this.vale=vale; } 公共列表getListaVales(){ 返回列表; } 公共无效设置列表变量(列表列表变量){ this.listaVales=listaVales; } 公共MbMovil getMbMovil(){ 返回mbMovil; } 公共无效设置MbMovil(MbMovil MbMovil){ this.mbMovil=mbMovil; } public int getIdvale(){ 返回idvale; } 公共无效设置idvale(内部idvale){ this.idvale=idvale; } 公共选择{ 返回选择器; } 公共无效设置(Choferes chofer){ this.chofer=chofer; } 公共可燃物{ 返回可燃物; } 公共场所可燃物(可燃物){ 可燃物=可燃物; } 公共担保人{ 返回保护区; } 公共无效设置guardia(Guardias guardia){ this.guardia=guardia; } 公共电影{ 返回运动; } 公共无效设置移动(移动文件移动){ this.movil=movil; } 公共Proveedores getProveedor(){ 返回校准器; } 公共无效设置验证人(验证人验证人){ this.provedor=provedor; } 公开日期:getFechaEmision(){ 回粪; } 公共无效设置采血(采血日期){ this.fechaEmision=fechaEmision; } 公共int GetKimmoros(){ 返回公里数; } 公共空间设置公里数(国际公里数){ 这个.km=km; } 公开短片{ 返回litros; } 塞利特罗公共空间
CREATE TABLE public.vales
(
  idvale integer NOT NULL DEFAULT nextval(('public.vales_idvale_seq'::text)::regclass),
  fechaemision timestamp without time zone NOT NULL,
  idguardia integer,
  idchofer integer,
  idproveedor integer,
  kilometros integer NOT NULL,
  idcombustible smallint,
  idmovil smallint,
  litros smallint,
  anulado boolean NOT NULL DEFAULT false,
  fechaanulacion timestamp without time zone,
  idguardiaanula integer,
  CONSTRAINT pk_vales PRIMARY KEY (idvale)
  WITH (FILLFACTOR=90),
  CONSTRAINT fk_vales_choferes FOREIGN KEY (idchofer)
      REFERENCES public.choferes (idchofer) MATCH SIMPLE
      ON UPDATE RESTRICT ON DELETE RESTRICT,
  CONSTRAINT fk_vales_guardias FOREIGN KEY (idguardia)
      REFERENCES public.guardias (idguardia) MATCH SIMPLE
      ON UPDATE RESTRICT ON DELETE RESTRICT,
  CONSTRAINT fk_vales_moviles FOREIGN KEY (idmovil)
      REFERENCES public.moviles (idmovil) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION,
  CONSTRAINT fk_vales_proveedores FOREIGN KEY (idproveedor)
      REFERENCES public.proveedores (idproveedor) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION,
  CONSTRAINT pk_vales_combustibles FOREIGN KEY (idcombustible)
      REFERENCES public.combustibles (idcombustible) MATCH SIMPLE
      ON UPDATE RESTRICT ON DELETE RESTRICT
import Daos.DaoVale;
import HibernateUtil.HibernateUtil;
import Pojos.Choferes;
import Pojos.Combustibles;
import Pojos.Guardias;
import Pojos.Moviles;
import Pojos.Proveedores;
import Pojos.Vales;
import java.io.Serializable;
import java.sql.Timestamp;
import java.util.Date;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.primefaces.context.RequestContext;

/**
 *
 * @author Gustavo
 */
@ManagedBean
@ViewScoped
public class MbVale implements Serializable{
private Vales vale;
private List<Vales> listaVales;
private Session sesion;
private Transaction transaccion;

@ManagedProperty("#{mbMovil}")
private MbMovil mbMovil;


private int idvale;
private Choferes chofer;
private Combustibles combustible;
private Guardias guardia;
private Moviles movil;
private Proveedores proveedor;
private Date fechaEmision;
private int kilometros;
private Short litros;
private boolean anulado;
private Date fechaAnulacion;
private int idGuardiaAnula;


/**
 * Creates a new instance of MbVales
 */
public MbVale() {
    this.vale = new Vales();
}

public void registrar() throws Exception{
    //Antes era public String, pero se cambió a "void" ya que en la vista se cambió el "action" que requiere una cadena, por "actionListener"
    this.sesion = null;
    this.transaccion = null;

    try{

        this.sesion = HibernateUtil.getSessionFactory().openSession();
        this.transaccion = this.sesion.beginTransaction();

        Timestamp fechaActual = new Timestamp(System.currentTimeMillis());
        this.vale.setFechaEmision(fechaActual);

        System.out.println("Entró al método Registrar");

        DaoVale daoV = new DaoVale();
        daoV.registrar(this.sesion, this.vale);

        this.transaccion.commit();

        FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Registro","Se registró satisfactoriamente el vale"));

        //RequestContext.getCurrentInstance().execute("limpiarFormulario('frmRegistrarCombustible')");
        this.vale = new Vales();  //Esto reemplaza a la función javascript de borrado de campos del formulario, debido a que al instanciar un nuevo objeto, viene con sus atributos limpios

        //return "/vales/valealta"; //Se reemplaza el return, ya que en la vista se cambió el "action" que requiere una cadena, por "actionListener"


    }catch(Exception e){
        if(this.transaccion != null){
            this.transaccion.rollback();
            FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "Ocurrió un error","Descripcion: " + e.getMessage()));
        }
        return;  //Se reemplaza el return "null", ya que en la vista se cambió el "action" que requiere una cadena, por "actionListener"
    }
    finally{
        if(this.sesion != null){
            this.sesion.clear();
            this.sesion.close();
        } 
    }

}

public List<Vales> getTodos(){

    this.sesion = null;
    this.transaccion = null;

    try{

        DaoVale daoV = new DaoVale();

        this.sesion = HibernateUtil.getSessionFactory().openSession();
        this.transaccion = this.sesion.beginTransaction();

        this.listaVales = daoV.verTodos(this.sesion);

        this.transaccion.commit();

        return listaVales;

    }catch(Exception e){
        if(this.transaccion != null){
            this.transaccion.rollback();
        }
        return null;
    }finally{
        if(this.sesion != null){
            this.sesion.clear();
            this.sesion.close();
        }
    }
}

public void modificarVale() throws Exception{
    //Antes era public String, pero se cambió a "void" ya que en la vista se cambió el "action" que requiere una cadena, por "actionListener"
    this.sesion = null;
    this.transaccion = null;

    try{

        this.sesion = HibernateUtil.getSessionFactory().openSession();
        this.transaccion = this.sesion.beginTransaction();

        DaoVale daoV = new DaoVale();
        daoV.modificar(this.sesion, this.vale);

        //System.out.println("IdCombustible: " + this.vale.getIdvale());

        this.transaccion.commit();

        FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Registro","Se guardaron satisfactoriamente los cambios"));

        //RequestContext.getCurrentInstance().execute("limpiarFormulario('frmRegistrarCombustible')");
        //this.vale = new Vales();  //Esto reemplaza a la función javascript de borrado de campos del formulario, debido a que al instanciar un nuevo objeto, viene con sus atributos limpios

        //return "/vales/valealta"; //Se reemplaza el return, ya que en la vista se cambió el "action" que requiere una cadena, por "actionListener"


    }catch(Exception e){
        if(this.transaccion != null){
            this.transaccion.rollback();
            FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "Ocurrió un error","Descripcion: " + e.getMessage()));
        }
    }
    finally{
        if(this.sesion != null){
            this.sesion.clear();
            this.sesion.close();
        } 
    }

}

public void buscarValeEditar(int idVale){
    this.sesion = null;
    this.transaccion = null;

    try{

        this.sesion = HibernateUtil.getSessionFactory().openSession();
        this.transaccion = this.sesion.beginTransaction();

        DaoVale daoV = new DaoVale();

        this.vale = daoV.buscarPorCodigo(this.sesion, idVale);

        RequestContext.getCurrentInstance().update("frmEditarVale:editarVale");
        RequestContext.getCurrentInstance().execute("PF('dialogoEditarVale').show()");

        this.transaccion.commit();


        FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Registro","Se guardaron satisfactoriamente los cambios"));

        //RequestContext.getCurrentInstance().execute("limpiarFormulario('frmRegistrarCombustible')");
        //this.vale = new Vales();  //Esto reemplaza a la función javascript de borrado de campos del formulario, debido a que al instanciar un nuevo objeto, viene con sus atributos limpios

        //return "/vales/valealta"; //Se reemplaza el return, ya que en la vista se cambió el "action" que requiere una cadena, por "actionListener"


    }catch(Exception e){
        if(this.transaccion != null){
            this.transaccion.rollback();
            FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "Ocurrió un error","Descripcion: " + e.getMessage()));
        }
    }
    finally{
        if(this.sesion != null){
            this.sesion.clear();
            this.sesion.close();
        } 
    }
}

public void buscarValeBaja(int idVale){
    this.sesion = null;
    this.transaccion = null;

    try{

        this.sesion = HibernateUtil.getSessionFactory().openSession();
        this.transaccion = this.sesion.beginTransaction();

        DaoVale daoV = new DaoVale();

        this.vale = daoV.buscarPorCodigo(this.sesion, idVale);

        //System.out.println("IdCombustible buscado para la baja: " + this.vale.getIdvale());

        RequestContext.getCurrentInstance().update("frmBajaVale:bajaVale");
        RequestContext.getCurrentInstance().execute("PF('dialogoBajaVale').show()");

        this.transaccion.commit();


        FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Registro","Se dio de baja satisfactoriamente el registro"));        

    }catch(Exception e){
        if(this.transaccion != null){
            this.transaccion.rollback();
            FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "Ocurrió un error","Descripcion: " + e.getMessage()));
        }
    }
    finally{
        if(this.sesion != null){
            this.sesion.clear();
            this.sesion.close();
        } 
    }
}

public void bajaVale() throws Exception{
    //Antes era public String, pero se cambió a "void" ya que en la vista se cambió el "action" que requiere una cadena, por "actionListener"
    this.sesion = null;
    this.transaccion = null;

    try{

        this.sesion = HibernateUtil.getSessionFactory().openSession();
        this.transaccion = this.sesion.beginTransaction();

        Timestamp fechaActual = new Timestamp(System.currentTimeMillis());

        this.vale.setAnulado(true);
        this.vale.setFechaAnulacion(fechaActual);

        //System.out.println("IdCombustible de Baja: " + this.vale.getIdvale());

        DaoVale daoV = new DaoVale();
        daoV.darBaja(this.sesion, this.vale);

        this.transaccion.commit();

        FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Baja","Se dio de baja satisfactoriamente el registro"));

    }catch(Exception e){
        if(this.transaccion != null){
            this.transaccion.rollback();
            FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "Ocurrió un error","Descripcion: " + e.getMessage()));
        }
    }
    finally{
        if(this.sesion != null){
            this.sesion.clear();
            this.sesion.close();
        } 
    }

}

public Vales getVale() {
    return vale;
}

public void setVale(Vales vale) {
    this.vale = vale;
}

public List<Vales> getListaVales() {
    return listaVales;
}

public void setListaVales(List<Vales> listaVales) {
    this.listaVales = listaVales;
}

public MbMovil getMbMovil() {
    return mbMovil;
}

public void setMbMovil(MbMovil mbMovil) {
    this.mbMovil = mbMovil;
}

public int getIdvale() {
    return idvale;
}

public void setIdvale(int idvale) {
    this.idvale = idvale;
}

public Choferes getChofer() {
    return chofer;
}

public void setChofer(Choferes chofer) {
    this.chofer = chofer;
}

public Combustibles getCombustible() {
    return combustible;
}

public void setCombustible(Combustibles combustible) {
    this.combustible = combustible;
}

public Guardias getGuardia() {
    return guardia;
}

public void setGuardia(Guardias guardia) {
    this.guardia = guardia;
}

public Moviles getMovil() {
    return movil;
}

public void setMovil(Moviles movil) {
    this.movil = movil;
}

public Proveedores getProveedor() {
    return proveedor;
}

public void setProveedor(Proveedores proveedor) {
    this.proveedor = proveedor;
}

public Date getFechaEmision() {
    return fechaEmision;
}

public void setFechaEmision(Date fechaEmision) {
    this.fechaEmision = fechaEmision;
}

public int getKilometros() {
    return kilometros;
}

public void setKilometros(int kilometros) {
    this.kilometros = kilometros;
}

public Short getLitros() {
    return litros;
}

public void setLitros(Short litros) {
    this.litros = litros;
}

public boolean isAnulado() {
    return anulado;
}

public void setAnulado(boolean anulado) {
    this.anulado = anulado;
}

public Date getFechaAnulacion() {
    return fechaAnulacion;
}

public void setFechaAnulacion(Date fechaAnulacion) {
    this.fechaAnulacion = fechaAnulacion;
}

public int getIdGuardiaAnula() {
    return idGuardiaAnula;
}

public void setIdGuardiaAnula(int idGuardiaAnula) {
    this.idGuardiaAnula = idGuardiaAnula;
}




}
    <h:form id="frmAltaVale">
        <p:dialog header="Nuevo Vale" widgetVar="dialogoNuevoVale" resizable="false" width="900" showEffect="explode" hideEffect="explode" >
            <p:panelGrid id="nuevoVale" columns="3">
                <p:outputLabel value="Número de Vale:" for="txtIdentificador"/>
                <p:outputLabel id="txtIdentificador" value="#{mbVale.vale.idVale}">
                <!--<f:validator validatorId="validadorVacio"/>-->
                </p:outputLabel>
                <p:message for="txtIdentificador"/>
                <p:outputLabel for="txtMovil" value="Móvil:"/>
                <p:selectOneMenu id="txtMovil" value="#{mbMovil.movil.idmovil}" style="width:175px">
                    <f:selectItem itemLabel="Seleccionar" itemValue="" />
                    <f:selectItems value="#{mbMovil.todos}" var="mov" itemValue ="#{mov.idmovil}" itemLabel = "#{mov.descripcion}"/>
                </p:selectOneMenu>
                <p:message for="txtMovil"/>
                <p:outputLabel for="txtChofer" value="Chofer:" />
                    <p:selectOneMenu id="txtChofer" value="#{mbChofer.chofer.idchofer}" style="width:175px">
                    <f:selectItem itemLabel="Seleccionar" itemValue="" />
                    <f:selectItems value="#{mbChofer.todos}" var="chof" itemValue ="#{chof.idchofer}" itemLabel = "#{chof.nombre}"/>
                    </p:selectOneMenu>
                <p:message for="txtChofer"/>
                <p:outputLabel for="txtCombustible" value="Combustible:" />
                    <p:selectOneMenu id="txtCombustible" value="#{mbCombustible.combustible.idcombustible}" style="width:175px">
                    <f:selectItem itemLabel="Seleccionar" itemValue="" />
                    <f:selectItems value="#{mbCombustible.todos}" var="comb" itemValue ="#{comb.idcombustible}" itemLabel = "#{comb.descripcion}"/>
                   </p:selectOneMenu>
                <p:message for="txtCombustible"/>
                <p:outputLabel for="txtProveedor" value="Proveedor:" />
                    <p:selectOneMenu id="txtProveedor" value="#{mbProveedor.proveedor.idproveedor}" style="width:175px">
                    <f:selectItem itemLabel="Seleccionar" itemValue="" />
                    <f:selectItems value="#{mbProveedor.todos}" var="prov" itemValue ="#{prov.idproveedor}" itemLabel = "#{prov.descripcion}"/>
                </p:selectOneMenu>
                <p:message for="txtProveedor"/>
                <p:outputLabel value="Kilómetros:" for="txtKilometros"/>
                <p:inputText id="txtKilometros" label="Nombre" value="#{mbVale.vale.kilometros}">
                    <f:validator validatorId="validadorVacio"/>
                </p:inputText>
                <p:message for="txtKilometros"/>
                <p:outputLabel value="Litros:" for="txtLitros"/>
                <p:inputText id="txtLitros" label="Nombre" value="#{mbVale.vale.litros}">
                    <f:validator validatorId="validadorVacio"/>
                </p:inputText>
                <p:message for="txtLitros"/>
                <p:commandButton value="Registrar Vale" actionListener="#{mbVale.registrar()}" update="nuevoVale,:frmListaVales"/>
          </p:panelGrid>
      </p:dialog>
  </h:form>